重构项目页面结构

This commit is contained in:
Searchstars
2024-12-07 19:34:42 +08:00
parent 198e9a88bb
commit 9f77b1f630
66 changed files with 251 additions and 225 deletions
+9 -1
View File
@@ -1,3 +1,5 @@
const path = require('path');
module.exports = {
webpack: {
module: {
@@ -10,8 +12,14 @@ module.exports = {
},
],
},
],
]
},
resolve: {
alias: {
'@components': path.resolve(__dirname, 'src/components'),
'@less': path.resolve(__dirname, 'src/less')
}
}
},
cli: {
"enable-custom-component": true,
+5 -2
View File
@@ -1,7 +1,10 @@
export const BilibiliClientArticleMethods = {
// 获取专栏网页HTML(需要过parser才能使用)
async getArticle(this: any, cvid: string): Promise<any> {
const url = `https://www.bilibili.com/read/${cvid}`;
async getArticle(this: any, cvid: string, useNewOpusArticle = true): Promise<any> {
var url = `https://www.bilibili.com/read/${cvid}`;
if(!useNewOpusArticle){
url += "?jump_opus=1"
}
const response = await this.getRequest(url, "text");
return response.data;
Binary file not shown.

After

Width:  |  Height:  |  Size: 138 KiB

+1 -1
View File
@@ -31,7 +31,7 @@ export default {
</script>
<style lang="less">
@import '../../less/global.less';
@import '@less/global.less';
.articlebg {
width: 72%;
@@ -114,7 +114,7 @@ export default {
</script>
<style lang="less">
@import '../../less/global.less';
@import '@less/global.less';
.img {
border-radius: 30px;
@@ -43,7 +43,7 @@ export default {
</script>
<style lang="less">
@import '../../less/global.less';
@import '@less/global.less';
.featurebtn {
width: 322px;
@@ -33,7 +33,7 @@ export default {
</script>
<style lang="less">
@import '../../less/global.less';
@import '@less/global.less';
.pagechanger-container {
bottom: 22px;
@@ -20,7 +20,7 @@ export default {
</script>
<style lang="less">
@import '../../less/global.less';
@import '@less/global.less';
.sendbox {
width: 284px;
@@ -54,7 +54,7 @@ export default {
</script>
<style lang="less">
@import '../../less/global.less';
@import '@less/global.less';
.inputpanel {
position: absolute;
+3 -3
View File
@@ -1,5 +1,5 @@
<import name="html-renderer" src="./HtmlRenderer.ux"></import>
<import name="online-image" src="../../components/BetterOnlineImage/BetterOnlineImage.ux"></import>
<import name="online-image" src="@components/BetterOnlineImage/BetterOnlineImage.ux"></import>
<template>
<div class="compbase">
@@ -85,7 +85,7 @@ export default {
openImage(evt) {
console.log("[html-renderer] image clicked. openImage src=" + evt.detail.src)
router.push({
uri: "pages/picturedetail",
uri: "pages/tools/picturedetail",
params: {
img_uri: evt.detail.src
}
@@ -95,7 +95,7 @@ export default {
</script>
<style lang="less">
@import '../../less/global.less';
@import '@less/global.less';
.compbase {
flex-direction: column;
+1 -1
View File
@@ -50,7 +50,7 @@ export default {
</script>
<style lang="less">
@import '../../less/global.less';
@import '@less/global.less';
.reply {
width: 319px;
+6 -4
View File
@@ -32,10 +32,12 @@ export default {
useRowLayout: false
},
SwitchPage() {
var pagename = router.getState().name.split("/")
router.push({
uri: "pages/arealist",
uri: "pages/app/arealist",
params: {
lastpage: router.getState().name.split("/")[1]
lastpage: pagename[pagename.length - 1]
}
})
},
@@ -50,7 +52,7 @@ export default {
</script>
<style lang="less">
@import "../../less/global.less";
@import "@less/global.less";
.comp-root {
flex-direction: column;
@@ -71,6 +73,6 @@ export default {
.bar-row {
margin-top: 10px;
margin-left: 15px;
margin-left: 100px;
}
</style>
+5 -7
View File
@@ -6,13 +6,11 @@
<text class="timetxt" style="transform: rotate(-6.4deg); margin-bottom: 6px">
{{ hourLow }}
</text>
<text class="timetxt" style="padding: 4px; min-width: 10px; margin-bottom: 10px; justify-content: center">
:
</text>
<text class="timetxt" style="transform: rotate(6.4deg); margin-bottom: 10px">
<text class="timetxt" style="padding: 0px; min-width: 10px; margin-bottom: 10px; justify-content: center">:</text>
<text class="timetxt" style="transform: rotate(6.4deg); margin-bottom: 7px">
{{ minuteHigh }}
</text>
<text class="timetxt" style="transform: rotate(12.8deg); margin-bottom: 7.5px">
<text class="timetxt" style="transform: rotate(12.8deg); margin-bottom: 6px">
{{ minuteLow }}
</text>
</div>
@@ -52,7 +50,7 @@ export default {
const deviceInfo = this.$app.$def.DEVICE_INFO
if (deviceInfo.screenWidth <= 450) {
this.compStyle["right"] = "15px"
this.compStyle["right"] = "100px"
this.useRectTime = true
}
}
@@ -60,7 +58,7 @@ export default {
</script>
<style lang="less">
@import "../../less/global.less";
@import "@less/global.less";
.time-comp {
flex-direction: row;
+2 -2
View File
@@ -41,7 +41,7 @@ export default {
</script>
<style lang="less">
@import '../../less/global.less';
@import '@less/global.less';
.comp-root {
flex-direction: column;
@@ -63,6 +63,6 @@ export default {
.bar-row {
justify-content: flex-start;
margin-top: 10px;
margin-left: 15px;
margin-left: 100px;
}
</style>
+1 -1
View File
@@ -45,7 +45,7 @@ export default {
</script>
<style lang="less">
@import '../../less/global.less';
@import '@less/global.less';
.user {
background-color: #262626af;
+13 -6
View File
@@ -39,7 +39,7 @@ export default {
},
OpenVideo(bvid) {
router.push({
uri: "pages/videodetail",
uri: "pages/video/videodetail",
params: {bvid}
})
},
@@ -65,13 +65,20 @@ export default {
const deviceInfo = this.$app.$def.DEVICE_INFO;
if (deviceInfo.screenWidth <= 450 || this.video.title.length > 25){
this.useColumnTitle = true;
if (deviceInfo.screenWidth <= 450){
this.SetOnlineImageSize(220, 120);
this.SetOnlineImageLoadSize(146, 80);
// 手环Pro 系列
if (deviceInfo.screenWidth <= 380){
this.SetOnlineImageSize(200, 150);
this.SetOnlineImageLoadSize(100, 75);
}
// RW系列
else if (deviceInfo.screenWidth <= 450){
this.SetOnlineImageSize(265, 150);
this.SetOnlineImageLoadSize(265, 150);
}
// 圆屏系列
else{
this.SetOnlineImageSize(300, 150);
this.SetOnlineImageLoadSize(200, 100);
this.SetOnlineImageLoadSize(300, 150);
}
}
}
@@ -79,7 +86,7 @@ export default {
</script>
<style lang="less">
@import '../../less/global.less';
@import '@less/global.less';
.vid {
margin-top: 10px;
+2 -1
View File
@@ -1,6 +1,7 @@
{
"about": {
"title": "关于应用",
"projectOwnerShip": "项目归属",
"developers": "参与开发的人员",
"moreResources": "更多资源请访问",
"disclaimer": "免责声明"
@@ -74,7 +75,7 @@
},
"prepage": {
"loadingTip": "正在加载账号数据...",
"gotProblems": "遇到问题?重新登录"
"gotProblems": "重新登录"
},
"replytools": {
"title": "评论",
+2 -2
View File
@@ -6,11 +6,11 @@ export async function Jump() {
success: async (bilibili_account) => {
if (bilibili_account.length < 1) {
router.replace({
uri: "pages/login"
uri: "pages/app/entry/login"
})
} else {
router.replace({
uri: "pages/prepage"
uri: "pages/app/entry/prepage"
})
}
}
+30 -30
View File
@@ -27,93 +27,93 @@
"backgroundColor": "#000000"
},
"router": {
"entry": "pages/splash",
"entry": "pages/app/entry/splash",
"pages": {
"pages/splash": {
"pages/app/entry/splash": {
"component": "splash"
},
"pages/login": {
"pages/app/entry/login": {
"component": "login"
},
"pages/main": {
"pages/app/features/main": {
"component": "main"
},
"pages/videodetail": {
"pages/video/videodetail": {
"component": "videodetail"
},
"pages/arealist": {
"pages/app/arealist": {
"component": "arealist"
},
"pages/settings": {
"pages/app/features/settings": {
"component": "settings"
},
"pages/about": {
"pages/app/features/settings/about": {
"component": "about"
},
"pages/mypage": {
"pages/app/features/mypage": {
"component": "mypage"
},
"pages/favfolders": {
"pages/folders/favfolders": {
"component": "favfolders"
},
"pages/foldervideos": {
"pages/folders/favfolders/foldervideos": {
"component": "foldervideos"
},
"pages/prepage": {
"pages/app/entry/prepage": {
"component": "prepage"
},
"pages/replys": {
"pages/reply/replys": {
"component": "replys"
},
"pages/textdetail": {
"pages/tools/textdetail": {
"component": "textdetail"
},
"pages/replytools": {
"pages/reply/replytools": {
"component": "replytools"
},
"pages/search": {
"pages/search/search": {
"component": "search"
},
"pages/introduction": {
"pages/app/entry/introduction": {
"component": "introduction"
},
"pages/history": {
"pages/folders/history": {
"component": "history"
},
"pages/searchresult": {
"pages/search/searchresult": {
"component": "searchresult"
},
"pages/messages": {
"pages/message/messages": {
"component": "messages"
},
"pages/dmlist": {
"pages/message/dmlist": {
"component": "dmlist"
},
"pages/dmpage": {
"pages/message/dmpage": {
"component": "dmpage"
},
"pages/picturedetail": {
"pages/tools/picturedetail": {
"component": "picturedetail"
},
"pages/donation": {
"pages/app/features/settings/donation": {
"component": "donation"
},
"pages/articleshow": {
"pages/article/articleshow": {
"component": "articleshow"
},
"pages/articlesave": {
"pages/article/articlesave": {
"component": "articlesave"
},
"pages/savedcontent": {
"pages/app/features/savedcontent": {
"component": "savedcontent"
},
"pages/componentstest": {
"pages/debug/componentstest": {
"component": "componentstest"
},
"pages/networkerror": {
"pages/error/networkerror": {
"component": "networkerror"
},
"pages/eularead": {
"pages/app/entry/eularead": {
"component": "eularead"
}
}
@@ -1,5 +1,5 @@
@import '../../less/defs.less';
@import '../../less/color.less';
@import '@less/defs.less';
@import '@less/color.less';
.time {
.font-size(50px);
@@ -1,11 +1,11 @@
<import name="title-bar" src="../../components/TitleBar/TitleBar.ux"></import>
<import name="title-bar" src="@components/TitleBar/TitleBar.ux"></import>
<template>
<div class="page">
<scroll class="scroll" scroll-y="true" @scrollbottom="DoScrollTip" bounces="true">
<title-bar title="arealist.title"></title-bar>
<div class="btnline" style="margin-top: 15px;">
<div class="btn" onclick="GoPage('main')">
<div class="btn" onclick="GoPage('app/features/main')">
<div class="btnbase" style="background-color: {{colors.main}}">
<image src="/common/arealist_home.png" class="btnimg"></image>
</div>
@@ -19,13 +19,13 @@
</div>
</div>
<div class="btnline" style="margin-top: 15px;">
<div class="btn" onclick="GoPage('mypage')">
<div class="btn" onclick="GoPage('app/features/mypage')">
<div class="btnbase" style="background-color: {{colors.mypage}}">
<image src="/common/arealist_my.png" class="btnimg"></image>
</div>
<text class="btntext">{{ $t("arealist.my") }}</text>
</div>
<div class="btn" style="margin-left: 35px;" onclick="GoPage('settings')">
<div class="btn" style="margin-left: 35px;" onclick="GoPage('app/features/settings')">
<div class="btnbase" style="background-color: {{colors.settings}}">
<image src="/common/arealist_settings.png" class="btnimg"></image>
</div>
@@ -33,7 +33,7 @@
</div>
</div>
<div class="btnline" style="margin-top: 30px; justify-content: center">
<div class="smallbtn" style="background-color: {{colors.savedcontent}}" onclick="GoPage('savedcontent')">
<div class="smallbtn" style="background-color: {{colors.savedcontent}}" onclick="GoPage('app/features/savedcontent')">
<image src="/common/arealist_savedcontent.png"></image>
<text class="smallbtntext">{{ $t("arealist.downloads") }}</text>
</div>
@@ -83,7 +83,7 @@ export default {
this.anims.ChangePageFX.start()
setTimeout(() => {
router.replace({
uri: "pages/search"
uri: "pages/search/search"
})
},700)
},
@@ -107,6 +107,6 @@ export default {
</script>
<style lang="less">
@import '../../less/global.less';
@import '@less/global.less';
@import './arealist.less';
</style>
@@ -1,5 +1,5 @@
<import name="html-renderer" src="../../components/HtmlRenderer/HtmlRenderer.ux"></import>
<import name="default-button" src="../../components/DefaultButton/DefaultButton.ux"></import>
<import name="html-renderer" src="@components/HtmlRenderer/HtmlRenderer.ux"></import>
<import name="default-button" src="@components/DefaultButton/DefaultButton.ux"></import>
<template>
<div class="page">
@@ -48,7 +48,7 @@ export default {
router.clear()
router.replace({
uri: "pages/splash"
uri: "pages/app/entry/splash"
})
},
Exit(){
@@ -71,5 +71,5 @@ export default {
</script>
<style lang="less">
@import '../../less/global.less';
@import '@less/global.less';
</style>
@@ -39,7 +39,7 @@ export default {
this.current_step++
if (this.current_step >= this.current_device_step_count) {
router.replace({
uri: "pages/main"
uri: "pages/app/features/main"
})
} else {
this.UpdateImage()
@@ -60,5 +60,5 @@ export default {
</script>
<style lang="less">
@import "../../less/global.less";
@import "@less/global.less";
</style>
@@ -36,7 +36,7 @@ export default {
if (result.success) {
console.log("登录成功")
prompt.showToast({message: "登录成功"})
router.replace({uri: "pages/introduction"})
router.replace({uri: "pages/app/entry/introduction"})
clearInterval(this.qrpoll_interval)
} else if (result.message.includes("登录失败")) {
prompt.showToast({message: result.message, duration: 5000})
@@ -89,7 +89,7 @@ export default {
</script>
<style lang="less">
@import '../../less/global.less';
@import '@less/global.less';
.qr_code {
margin-top: 30px;
@@ -1,4 +1,4 @@
<import name="default-button" src="../../components/DefaultButton/DefaultButton.ux"></import>
<import name="default-button" src="@components/DefaultButton/DefaultButton.ux"></import>
<template>
<div class="page">
@@ -21,14 +21,14 @@ export default {
async PreLogin() {
await this.$app.$def.biliclient.login(false, null)
router.replace({
uri: "pages/main"
uri: "pages/app/features/main"
})
},
ReLogin(){
this.$app.$def.biliclient.logOut()
router.clear()
router.replace({
uri: "pages/splash"
uri: "pages/app/entry/splash"
})
},
onInit() {
@@ -53,7 +53,7 @@ export default {
</script>
<style lang="less">
@import '../../less/global.less';
@import '@less/global.less';
.page {
display: flex;
@@ -50,7 +50,7 @@ export default {
if((await this.$app.$def.jumpcheck.NetworkCheck())){
if(!this.$app.$def.settings.SETTINGS.agreedAllAgreements){
router.replace({
uri: "pages/eularead"
uri: "pages/app/entry/eularead"
})
}
else{
@@ -59,7 +59,7 @@ export default {
}
else{
router.replace({
uri: "pages/networkerror"
uri: "pages/error/networkerror"
})
}
}, 500)
@@ -1,5 +1,5 @@
<import name="switch-bar" src="../../components/SwitchBar/SwitchBar.ux"></import>
<import name="videoshow" src="../../components/Video/Video.ux"></import>
<import name="switch-bar" src="@components/SwitchBar/SwitchBar.ux"></import>
<import name="videoshow" src="@components/Video/Video.ux"></import>
<template>
<div class="page">
@@ -12,7 +12,7 @@
<image style="position: absolute; margin-top: 265px" if="{{show_loading}}" src="{{anims.loading_src.value}}">
</image>
<div class="recommend_div" if="{{show_recommend_div}}">
<videoshow for="{{recommend_vids}}" video="{{$item}}"></videoshow>
<videoshow for="{{recommend_vids}}" video="{{$item}}" tid="vids"></videoshow>
<text style="margin-top: 25px"></text>
</div>
</scroll>
@@ -140,6 +140,6 @@ export default {
</script>
<style lang="less">
@import '../../less/global.less';
@import '@less/global.less';
@import './main.less';
</style>
@@ -1,4 +1,4 @@
<import name="switch-bar" src="../../components/SwitchBar/SwitchBar.ux"></import>
<import name="switch-bar" src="@components/SwitchBar/SwitchBar.ux"></import>
<template>
<div class="page">
@@ -51,12 +51,12 @@ export default {
},
GoHistory(){
router.push({
uri: "pages/history"
uri: "pages/folders/history"
})
},
GoMyFavFolders(){
router.push({
uri: "pages/favfolders",
uri: "pages/folders/favfolders",
params: {
user_mid: this.$app.$def.biliclient.accountInfo.mid
}
@@ -64,7 +64,7 @@ export default {
},
GoMessages(){
router.push({
uri: "pages/messages"
uri: "pages/message/messages"
})
},
WIPTips() {
@@ -89,6 +89,6 @@ export default {
</script>
<style lang="less">
@import '../../less/global.less';
@import '@less/global.less';
@import './mypage.less';
</style>
@@ -1,5 +1,5 @@
<import name="switch-bar" src="../../components/SwitchBar/SwitchBar.ux"></import>
<import name="articleshow" src="../../components/Article/Article.ux"></import>
<import name="switch-bar" src="@components/SwitchBar/SwitchBar.ux"></import>
<import name="articleshow" src="@components/Article/Article.ux"></import>
<template>
<div class="page">
@@ -7,7 +7,8 @@
<scroll class="scroll" scroll-y="true" bounces="true">
<switch-bar title="savedcontent.title" static></switch-bar>
<div style="flex-direction: column; align-items: center; width: 100%" for="{{content}}">
<div if="{{$item.type == 'article' ? true : false}}" style="flex-direction: column; align-items: center; width: 100%" onclick="OpenArticle({{$item.id}})">
<div if="{{$item.type == 'article' ? true : false}}"
style="flex-direction: column; align-items: center; width: 100%" onclick="OpenArticle({{$item.id}})">
<articleshow article="{{$item}}"></articleshow>
</div>
</div>
@@ -22,23 +23,22 @@ export default {
private: {
content: []
},
PatchContent(origin_content){
try{
PatchContent(origin_content) {
try {
var new_content = []
// 暂无可进行的patch操作
new_content = origin_content
return new_content
}
catch(e){
} catch (e) {
console.error("[savedcontent.PatchContent] Patch Error: " + e.toString())
}
},
async OpenArticle(id){
var html = await this.$app.$def.savedcontent.SavedContentManager.getContent(id);
async OpenArticle(id) {
var html = await this.$app.$def.savedcontent.SavedContentManager.getContent(id)
router.push({
uri: "pages/articleshow",
uri: "pages/article/articleshow",
params: {
cvid: "",
offline: true,
@@ -46,18 +46,18 @@ export default {
}
})
},
async LoadContent(){
var origin_content = await this.$app.$def.savedcontent.SavedContentManager.listAllContent();
async LoadContent() {
var origin_content = await this.$app.$def.savedcontent.SavedContentManager.listAllContent()
console.log(origin_content)
this.content = this.PatchContent(origin_content)
console.log(this.content)
},
onInit(){
onInit() {
this.LoadContent()
}
}
</script>
<style lang="less">
@import '../../less/global.less';
@import "@less/global.less";
</style>
@@ -1,5 +1,5 @@
@import '../../less/defs.less';
@import '../../less/color.less';
@import '@less/defs.less';
@import '@less/color.less';
.text {
.font-size(35px);
@@ -7,6 +7,11 @@
<text class="text" style="margin-left: 20px">HyperBili</text>
<text class="text ver">{{ version }}</text>
</div>
<text class="text" style="margin-top: 22px">{{ $t("about.projectOwnerShip") }}</text>
<div class="appbar" style="margin-top: 22px">
<image class="logo" src="/common/about_projectownership.png"></image>
<text class="text" style="margin-left: 20px">AstralSight Studios</text>
</div>
<text class="text" style="margin-top: 30px">{{ $t("about.developers") }}</text>
<div class="developers" style="margin-top: 15px">
<div class="developer">
@@ -29,10 +34,6 @@
<image src="/common/aboutpage_brush.png" class="img"></image>
<text class="text devname">@一個小果冻</text>
</div>
<div class="developer">
<image src="/common/aboutpage_brush.png" class="img"></image>
<text class="text devname">@无源流沙</text>
</div>
</div>
<text class="text" style="color: #9e9e9e; margin-top: 12px">
{{ $t("about.moreResources") }}
@@ -56,7 +57,7 @@ export default {
},
OpenDisclaimer() {
router.push({
uri: "pages/textdetail",
uri: "pages/tools/textdetail",
params: {
titletext: "免责声明",
text: "本项目与哔哩哔哩(Bilibili)官方无任何关联,包括但不限于 哔哩哔哩股份有限公司 上海幻电信息科技有限公司 上海宽娱数码科技有限公司,本项目所使用的所有API接口均来自https://github.com/SocialSisterYi/bilibili-API-collect,经过来自各界网友的测试与修正,本人未对哔哩哔哩(Bilibili)的任何客户端进行任何逆向工程(包括但不限于 反编译、反汇编、抓包、拆包)操作"
@@ -67,6 +68,6 @@ export default {
</script>
<style lang="less">
@import '../../less/global.less';
@import '@less/global.less';
@import './about.less';
</style>
@@ -23,6 +23,6 @@ export default {}
</script>
<style lang="less">
@import '../../less/global.less';
@import '@less/global.less';
@import './donation.less';
</style>
@@ -1,4 +1,4 @@
<import name="switch-bar" src="../../components/SwitchBar/SwitchBar.ux"></import>
<import name="switch-bar" src="@components/SwitchBar/SwitchBar.ux"></import>
<template>
<div class="page">
@@ -67,17 +67,17 @@ export default {
},
GoDonation(){
router.push({
uri: "pages/donation"
uri: "pages/app/features/settings/donation"
})
},
GoAbout() {
router.push({
uri: "pages/about"
uri: "pages/app/features/settings/about"
})
},
GoDebug() {
router.push({
uri: "pages/componentstest"
uri: "pages/debug/componentstest"
})
},
ClearTmp() {
@@ -142,7 +142,7 @@ export default {
this.$app.$def.biliclient.logOut()
router.clear()
router.replace({
uri: "pages/splash"
uri: "pages/app/entry/splash"
})
},
UpdateNumView() {
@@ -157,6 +157,6 @@ export default {
</script>
<style lang="less">
@import '../../less/global.less';
@import '@less/global.less';
@import './settings.less';
</style>
@@ -1,5 +1,5 @@
<import name="title-bar" src="../../components/TitleBar/TitleBar.ux"></import>
<import name="default-button" src="../../components/DefaultButton/DefaultButton.ux"></import>
<import name="title-bar" src="@components/TitleBar/TitleBar.ux"></import>
<import name="default-button" src="@components/DefaultButton/DefaultButton.ux"></import>
<template>
<div class="page">
@@ -21,7 +21,7 @@ export default {
},
ReadMore(){
router.push({
uri: "pages/textdetail",
uri: "pages/tools/textdetail",
params: {
text: "既然你能点进这里,说明你肯定是希望了解更多有关此问题的原因。说的详细点,每当你使用搜索功能搜索专栏并点进来时,都会跳转到这个页面,而不是会动态检测你的手表RAM够不够再跳转,因为它永远都不可能够。为什么呢?目前小米发布的S系列手表,无论是S3还是S4 Sport,都只配备了32M内存,分配给快应用的内存,实际测试下来只有4M不到。再如此有限的内存中能够开发一个包含如此多功能的应用程序属实不易,目前几乎所有功能都是卡在内存爆炸的边缘运行的。而专栏渲染需要Html渲染器,Html渲染器使用递归的自定义组件进行渲染,这样一来,内存占用自然及其多。在搜索页,内存占用就已高达3.1M,而Html渲染器占用的内存约有2.2M,加起来已经严重超限了。因此我们只能采用缓存的方式,缓存下来再看,不必进入搜索页面占内存,也减少了网络请求带来的内存开销,这是目前唯一的办法。",
titletext: "更多信息"
@@ -32,7 +32,7 @@ export default {
prompt.showToast({
message: "开始缓存"
})
var articleHtml = await this.$app.$def.biliclient.getArticle(this.cvid)
var articleHtml = await this.$app.$def.biliclient.getArticle(this.cvid, false)
console.log("articleHtml=" + articleHtml)
var id = await this.$app.$def.savedcontent.SavedContentManager.storeContent(this.cvtitle, articleHtml, "article")
console.log("id=" + id)
@@ -48,5 +48,5 @@ export default {
</script>
<style lang="less">
@import '../../less/global.less';
@import '@less/global.less';
</style>
@@ -1,5 +1,5 @@
<import name="title-bar" src="../../components/TitleBar/TitleBar.ux"></import>
<import name="html-renderer" src="../../components/HtmlRenderer/HtmlRenderer.ux"></import>
<import name="title-bar" src="@components/TitleBar/TitleBar.ux"></import>
<import name="html-renderer" src="@components/HtmlRenderer/HtmlRenderer.ux"></import>
<template>
<div class="page">
@@ -62,31 +62,37 @@ export default {
// 预留加载delay以避免页面切换的卡顿
setTimeout(async() => {
let article_html = ""
if(this.offline){
article_html = this.article_html
try{
let article_html = ""
if(this.offline){
article_html = this.article_html
}
else{
article_html = await this.$app.$def.biliclient.getArticle(this.cvid)
}
console.log(article_html)
const article = this.$app.$def.articletools.parseArticlePageHtml(article_html)
this.article.readInfo = article.readInfo // 原地更新 减少开辟内存空间
let article_full = this.$app.$def.htmlparser.parseContentHtml(article.readInfo.content, false)
this.$app.$def.articletools.PatchArticleContent(article_full)
//this.article_content = this.SplitArticle(article_full, this.$app.$def.settings.SETTINGS.article_split_dom_count)
this.article_content = article_full
this.max_page_num = this.article_content.length
console.log(article.readInfo.content)
console.log(JSON.stringify(this.article_content))
this.anims.loading.stop()
this.show_loading = false
global.runGC()
this.showarticle = true
}
else{
article_html = await this.$app.$def.biliclient.getArticle(this.cvid)
catch(e){
console.error(e.toString())
}
const article = this.$app.$def.articletools.parseArticlePageHtml(article_html)
this.article.readInfo = article.readInfo // 原地更新 减少开辟内存空间
let article_full = this.$app.$def.htmlparser.parseContentHtml(article.readInfo.content, false)
this.$app.$def.articletools.PatchArticleContent(article_full)
//this.article_content = this.SplitArticle(article_full, this.$app.$def.settings.SETTINGS.article_split_dom_count)
this.article_content = article_full
this.max_page_num = this.article_content.length
console.log(article.readInfo.content)
console.log(JSON.stringify(this.article_content))
this.anims.loading.stop()
this.show_loading = false
global.runGC()
this.showarticle = true
}, 1000)
},
onInit() {
@@ -105,6 +111,6 @@ export default {
</script>
<style lang="less">
@import '../../less/global.less';
@import '@less/global.less';
@import './articleshow.less';
</style>
@@ -1,8 +1,8 @@
<import name="title-bar" src="../../components/TitleBar/TitleBar.ux"></import>
<import name="online-image" src="../../components/BetterOnlineImage/BetterOnlineImage.ux"></import>
<import name="default-button" src="../../components/DefaultButton/DefaultButton.ux"></import>
<import name="articleshow" src="../../components/Article/Article.ux"></import>
<import name="reply" src="../../components/Reply/Reply.ux"></import>
<import name="title-bar" src="@components/TitleBar/TitleBar.ux"></import>
<import name="online-image" src="@components/BetterOnlineImage/BetterOnlineImage.ux"></import>
<import name="default-button" src="@components/DefaultButton/DefaultButton.ux"></import>
<import name="articleshow" src="@components/Article/Article.ux"></import>
<import name="reply" src="@components/Reply/Reply.ux"></import>
<template>
<div class="page">
@@ -57,27 +57,27 @@ export default {
},
GoSplash(){
router.push({
uri: "pages/splash"
uri: "pages/app/entry/splash"
})
},
GoPrepage(){
router.push({
uri: "pages/prepage"
uri: "pages/app/entry/prepage"
})
},
GoEulaRead(){
router.push({
uri: "pages/eularead"
uri: "pages/app/entry/eularead"
})
},
GoArealist(){
router.push({
uri: "pages/arealist"
uri: "pages/app/arealist"
})
}
}
</script>
<style lang="less">
@import '../../less/global.less';
@import '@less/global.less';
</style>
@@ -1,4 +1,4 @@
<import name="default-button" src="../../components/DefaultButton/DefaultButton.ux"></import>
<import name="default-button" src="@components/DefaultButton/DefaultButton.ux"></import>
<template>
<div class="page">
@@ -18,12 +18,12 @@ export default {
Retry(){
router.clear()
router.replace({
uri: "pages/splash"
uri: "pages/app/entry/splash"
})
},
GoSavedContent(){
router.push({
uri: "pages/savedcontent"
uri: "pages/app/features/savedcontent"
})
},
Exit(){
@@ -34,5 +34,5 @@ export default {
</script>
<style lang="less">
@import '../../less/global.less';
@import '@less/global.less';
</style>
@@ -1,4 +1,4 @@
<import name="title-bar" src="../../components/TitleBar/TitleBar.ux"></import>
<import name="title-bar" src="@components/TitleBar/TitleBar.ux"></import>
<template>
<div class="page">
@@ -38,7 +38,7 @@ export default {
},
GoFolderVideosPage(mlid, vidcount) {
router.push({
uri: "pages/foldervideos",
uri: "pages/folders/favfolders/foldervideos",
params: {mlid, vidcount}
})
},
@@ -78,6 +78,6 @@ export default {
</script>
<style lang="less">
@import '../../less/global.less';
@import '@less/global.less';
@import './favfolders.less';
</style>
@@ -1,5 +1,5 @@
<import name="title-bar" src="../../components/TitleBar/TitleBar.ux"></import>
<import name="videoshow" src="../../components/Video/Video.ux"></import>
<import name="title-bar" src="@components/TitleBar/TitleBar.ux"></import>
<import name="videoshow" src="@components/Video/Video.ux"></import>
<template>
<div class="page">
@@ -61,7 +61,7 @@ export default {
},
OpenVideo(bvid) {
router.replace({
uri: "pages/videodetail",
uri: "pages/video/videodetail",
params: {bvid}
})
},
@@ -115,6 +115,6 @@ export default {
</script>
<style lang="less">
@import '../../less/global.less';
@import '@less/global.less';
@import './foldervideos.less';
</style>
@@ -1,5 +1,5 @@
<import name="title-bar" src="../../components/TitleBar/TitleBar.ux"></import>
<import name="videoshow" src="../../components/Video/Video.ux"></import>
<import name="title-bar" src="@components/TitleBar/TitleBar.ux"></import>
<import name="videoshow" src="@components/Video/Video.ux"></import>
<template>
<div class="page">
@@ -47,7 +47,7 @@ export default {
},
OpenVideo(bvid) {
router.push({
uri: "pages/videodetail",
uri: "pages/video/videodetail",
params: {bvid}
})
},
@@ -67,7 +67,7 @@ export default {
</script>
<style lang="less">
@import '../../less/global.less';
@import '@less/global.less';
.historylist {
width: 77%;
@@ -1,4 +1,4 @@
<import name="title-bar" src="../../components/TitleBar/TitleBar.ux"></import>
<import name="title-bar" src="@components/TitleBar/TitleBar.ux"></import>
<template>
<div class="page">
@@ -74,7 +74,7 @@ export default {
},
GoDMPage(targetId){
router.push({
uri: "pages/dmpage",
uri: "pages/message/dmpage",
params: {
myId: this.$app.$def.biliclient.accountInfo.mid,
targetId: targetId,
@@ -99,6 +99,6 @@ export default {
</script>
<style lang="less">
@import "../../less/global.less";
@import "@less/global.less";
@import "./dmlist.less";
</style>
@@ -1,5 +1,5 @@
<import name="sendbox" src="../../components/FloatingSendBox/FloatingSendBox.ux"></import>
<import name="full-screen-input" src="../../components/FullScreenInput/FullScreenInput.ux"></import>
<import name="sendbox" src="@components/FloatingSendBox/FloatingSendBox.ux"></import>
<import name="full-screen-input" src="@components/FullScreenInput/FullScreenInput.ux"></import>
<template>
<div class="page">
@@ -113,7 +113,7 @@ export default {
// 文本类消息直接丢给textdetail
case 1:
router.push({
uri: "pages/textdetail",
uri: "pages/tools/textdetail",
params: {
text: JSON.parse(content).content,
titletext: "消息详情"
@@ -122,7 +122,7 @@ export default {
break
case 2:
router.push({
uri: "pages/picturedetail",
uri: "pages/tools/picturedetail",
params: {
img_uri: JSON.parse(content).url
}
@@ -224,6 +224,6 @@ export default {
</script>
<style lang="less">
@import '../../less/global.less';
@import '@less/global.less';
@import './dmpage.less';
</style>
@@ -1,4 +1,4 @@
<import name="title-bar" src="../../components/TitleBar/TitleBar.ux"></import>
<import name="title-bar" src="@components/TitleBar/TitleBar.ux"></import>
<template>
<div class="page">
@@ -58,7 +58,7 @@ export default {
},
GoDM(){
router.push({
uri: "pages/dmlist"
uri: "pages/message/dmlist"
})
},
onInit(){
@@ -68,6 +68,6 @@ export default {
</script>
<style lang="less">
@import '../../less/global.less';
@import '@less/global.less';
@import './messages.less';
</style>
@@ -1,9 +1,9 @@
<import name="title-bar" src="../../components/TitleBar/TitleBar.ux"></import>
<import name="reply" src="../../components/Reply/Reply.ux"></import>
<import name="full-screen-input" src="../../components/FullScreenInput/FullScreenInput.ux"></import>
<import name="title-bar" src="@components/TitleBar/TitleBar.ux"></import>
<import name="reply" src="@components/Reply/Reply.ux"></import>
<import name="full-screen-input" src="@components/FullScreenInput/FullScreenInput.ux"></import>
<import
name="floating-page-changer"
src="../../components/FloatingPageChanger/FloatingPageChanger.ux"
src="@components/FloatingPageChanger/FloatingPageChanger.ux"
></import>
<template>
@@ -97,7 +97,7 @@ export default {
this.reply_target = evt.detail.rpid
},
ShowTools(evt) {
const uri = this.secmode ? "pages/textdetail" : "pages/replytools"
const uri = this.secmode ? "pages/tools/textdetail" : "pages/reply/replytools"
const params = this.secmode
? {text: evt.detail.reply.content.message, titletext: "评论详情"}
: {type: this.type, oid: this.oid, reply: evt.detail.reply}
@@ -167,6 +167,6 @@ export default {
</script>
<style lang="less">
@import '../../less/global.less';
@import '@less/global.less';
@import './replys.less';
</style>
@@ -1,4 +1,4 @@
<import name="title-bar" src="../../components/TitleBar/TitleBar.ux"></import>
<import name="title-bar" src="@components/TitleBar/TitleBar.ux"></import>
<template>
<div class="page">
@@ -58,7 +58,7 @@ export default {
},
ShowDetail() {
router.push({
uri: "pages/textdetail",
uri: "pages/tools/textdetail",
params: {
text: this.replymessage
}
@@ -67,7 +67,7 @@ export default {
ShowSecReplies() {
if (this.reply_clone.rcount > 0) {
router.push({
uri: "pages/replys",
uri: "pages/reply/replys",
params: {
type: this.type,
oid: this.oid,
@@ -95,6 +95,6 @@ export default {
</script>
<style lang="less">
@import '../../less/global.less';
@import '@less/global.less';
@import './replytools.less';
</style>
@@ -1,5 +1,5 @@
<import name="switch-bar" src="../../components/SwitchBar/SwitchBar.ux"></import>
<import name="full-screen-input" src="../../components/FullScreenInput/FullScreenInput.ux"></import>
<import name="switch-bar" src="@components/SwitchBar/SwitchBar.ux"></import>
<import name="full-screen-input" src="@components/FullScreenInput/FullScreenInput.ux"></import>
<template>
<div class="page">
@@ -60,7 +60,7 @@ export default {
GoSearch(evt) {
this.hotwords = null
router.push({
uri: "pages/searchresult",
uri: "pages/search/searchresult",
params: {
keyword: evt.detail.content
}
@@ -99,6 +99,6 @@ export default {
</script>
<style lang="less">
@import '../../less/global.less';
@import '@less/global.less';
@import './search.less';
</style>
@@ -1,7 +1,7 @@
<import name="switch-bar" src="../../components/SwitchBar/SwitchBar.ux"></import>
<import name="user" src="../../components/User/User.ux"></import>
<import name="videoshow" src="../../components/Video/Video.ux"></import>
<import name="articleshow" src="../../components/Article/Article.ux"></import>
<import name="switch-bar" src="@components/SwitchBar/SwitchBar.ux"></import>
<import name="user" src="@components/User/User.ux"></import>
<import name="videoshow" src="@components/Video/Video.ux"></import>
<import name="articleshow" src="@components/Article/Article.ux"></import>
<template>
<div class="page">
@@ -136,7 +136,7 @@ export default {
},
OpenArticle(item) {
router.push({
uri: "pages/articlesave",
uri: "pages/article/articlesave",
params: {
cvid: "cv" + item.id,
cvtitle: item.title
@@ -147,7 +147,7 @@ export default {
global.runGC()
console.log("[searchresult -> videodetail] open bvid: " + bvid)
router.push({
uri: "pages/videodetail",
uri: "pages/video/videodetail",
params: {bvid}
})
},
@@ -283,6 +283,6 @@ export default {
</script>
<style lang="less">
@import '../../less/global.less';
@import '@less/global.less';
@import './searchresult.less';
</style>
@@ -1,4 +1,4 @@
<import name="title-bar" src="../../components/TitleBar/TitleBar.ux"></import>
<import name="title-bar" src="@components/TitleBar/TitleBar.ux"></import>
<template>
<div class="page">
@@ -116,7 +116,7 @@ export default {
</script>
<style lang="less">
@import '../../less/global.less';
@import '@less/global.less';
.scroll {
height: 100%;
@@ -1,4 +1,4 @@
<import name="title-bar" src="../../components/TitleBar/TitleBar.ux"></import>
<import name="title-bar" src="@components/TitleBar/TitleBar.ux"></import>
<template>
<div class="page">
@@ -20,7 +20,7 @@ export default {
</script>
<style lang="less">
@import '../../less/global.less';
@import '@less/global.less';
.textbg {
background-color: #262626;
@@ -1,6 +1,6 @@
<import name="title-bar" src="../../components/TitleBar/TitleBar.ux"></import>
<import name="full-screen-input" src="../../components/FullScreenInput/FullScreenInput.ux"></import>
<import name="default-button" src="../../components/DefaultButton/DefaultButton.ux"></import>
<import name="title-bar" src="@components/TitleBar/TitleBar.ux"></import>
<import name="full-screen-input" src="@components/FullScreenInput/FullScreenInput.ux"></import>
<import name="default-button" src="@components/DefaultButton/DefaultButton.ux"></import>
<template>
<div class="page">
@@ -166,7 +166,7 @@ export default {
this.vid.owner.mid
)) || "该视频没有摘要,可能是其内容中包含敏感信息或没有可识别的音频"
router.push({
uri: "pages/textdetail",
uri: "pages/tools/textdetail",
params: {text: summary}
})
},
@@ -178,7 +178,7 @@ export default {
},
GoReplyArea() {
router.push({
uri: "pages/replys",
uri: "pages/reply/replys",
params: {
type: 1,
oid: this.vid.aid,
@@ -190,6 +190,6 @@ export default {
</script>
<style lang="less">
@import '../../less/global.less';
@import '@less/global.less';
@import './videodetail.less';
</style>