1. "设置"页面重做与美术资源更新 2. 输入法o65支持 3. 新增登录过期检测
@@ -6,4 +6,5 @@
|
|||||||
/build
|
/build
|
||||||
.husky/
|
.husky/
|
||||||
*/__pycache__
|
*/__pycache__
|
||||||
src/buildinfo.ts
|
src/buildinfo.ts
|
||||||
|
**/.DS_Store
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
import { storage } from '../../tsimports';
|
import { storage, router } from '../../tsimports';
|
||||||
import { AccountData } from './accountData';
|
import { AccountData } from './accountData';
|
||||||
|
|
||||||
// 登录相关的方法
|
// 登录相关的方法
|
||||||
@@ -6,6 +6,14 @@ export const BilibiliClientLoginMethods = {
|
|||||||
// 更新账号信息
|
// 更新账号信息
|
||||||
async updateAccountInfo(this: any): Promise<boolean> {
|
async updateAccountInfo(this: any): Promise<boolean> {
|
||||||
const accountInfoResponse = await this.getRequest("https://api.bilibili.com/x/web-interface/nav");
|
const accountInfoResponse = await this.getRequest("https://api.bilibili.com/x/web-interface/nav");
|
||||||
|
|
||||||
|
if(!accountInfoResponse.data.data.isLogin){
|
||||||
|
router.clear();
|
||||||
|
router.replace({
|
||||||
|
uri: "pages/error/sessionood"
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
this.accountInfo = accountInfoResponse.data.data;
|
this.accountInfo = accountInfoResponse.data.data;
|
||||||
return !!this.accountInfo;
|
return !!this.accountInfo;
|
||||||
},
|
},
|
||||||
@@ -38,8 +46,11 @@ export const BilibiliClientLoginMethods = {
|
|||||||
this.dedeUserID = accountData.dedeUserID;
|
this.dedeUserID = accountData.dedeUserID;
|
||||||
this.sid = accountData.sid;
|
this.sid = accountData.sid;
|
||||||
global.logger.log('使用存储的账号数据登录成功');
|
global.logger.log('使用存储的账号数据登录成功');
|
||||||
|
global.logger.log('拉账号信息')
|
||||||
await this.updateAccountInfo();
|
await this.updateAccountInfo();
|
||||||
|
global.logger.log('拉buvid')
|
||||||
await this.updateBUVID();
|
await this.updateBUVID();
|
||||||
|
|
||||||
return { success: true, message: "登录成功" };
|
return { success: true, message: "登录成功" };
|
||||||
} else if (send_req) {
|
} else if (send_req) {
|
||||||
const response = await this.getRequest(`https://passport.bilibili.com/x/passport-login/web/qrcode/poll?qrcode_key=${this.qrCodeKey}`);
|
const response = await this.getRequest(`https://passport.bilibili.com/x/passport-login/web/qrcode/poll?qrcode_key=${this.qrCodeKey}`);
|
||||||
|
|||||||
@@ -59,9 +59,10 @@ export const BilibiliClientAPIRequestMethods = {
|
|||||||
});
|
});
|
||||||
return response.data;
|
return response.data;
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
global.logger.error(`GET请求失败,错误码 = ${error.code}`);
|
global.logger.error(`GET请求失败,详细数据:`, error);
|
||||||
throw error;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return void 0;
|
||||||
},
|
},
|
||||||
|
|
||||||
// 发送带Wbi签名的GET请求
|
// 发送带Wbi签名的GET请求
|
||||||
@@ -89,9 +90,10 @@ export const BilibiliClientAPIRequestMethods = {
|
|||||||
});
|
});
|
||||||
return response.data;
|
return response.data;
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
global.logger.error(`POST请求失败,错误码 = ${error.code}`);
|
global.logger.error(`POST请求失败,详细数据:`, error);
|
||||||
throw error;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return void 0;
|
||||||
},
|
},
|
||||||
|
|
||||||
// 发送带Wbi签名的POST请求
|
// 发送带Wbi签名的POST请求
|
||||||
|
|||||||
@@ -4,7 +4,23 @@ export const BilibiliClientUserMethods = {
|
|||||||
const url = `https://api.bilibili.com/x/space/wbi/acc/info`;
|
const url = `https://api.bilibili.com/x/space/wbi/acc/info`;
|
||||||
const response = await this.getRequestWbi(url, {
|
const response = await this.getRequestWbi(url, {
|
||||||
mid: uid
|
mid: uid
|
||||||
})
|
});
|
||||||
|
|
||||||
|
return response.data.data
|
||||||
|
},
|
||||||
|
|
||||||
|
// 获取单个用户的状态数
|
||||||
|
async getUserStatByUID(this: any, uid: String) {
|
||||||
|
const url = `https://api.bilibili.com/x/relation/stat`;
|
||||||
|
const response = await this.getRequest(`${url}?vmid=${uid}`);
|
||||||
|
|
||||||
|
return response.data.data
|
||||||
|
},
|
||||||
|
|
||||||
|
// 获取单个用户的导航栏状态数
|
||||||
|
async getUserNavnumByUID(this: any, uid: String) {
|
||||||
|
const url = `https://api.bilibili.com/x/space/navnum`;
|
||||||
|
const response = await this.getRequest(`${url}?mid=${uid}`);
|
||||||
|
|
||||||
return response.data.data
|
return response.data.data
|
||||||
},
|
},
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 1.9 KiB |
|
Before Width: | Height: | Size: 796 B After Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 766 B After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 454 B After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 564 B After Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 27 KiB |
@@ -3,7 +3,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="comp-root" @click="GoDetail">
|
<div class="comp-root" @click="GoDetail">
|
||||||
<div class="user">
|
<div class="user">
|
||||||
<image class="userface" src="{{dyn.modules.module_author.face}}@65w_65h"></image>
|
<image class="userface" src="{{dyn.modules.module_author.face}}@65w_65h" alt="/common/fullgray.png"></image>
|
||||||
<div class="userinfo">
|
<div class="userinfo">
|
||||||
<text class="username" style="margin-bottom: 3px">{{ dyn.modules.module_author.name }}</text>
|
<text class="username" style="margin-bottom: 3px">{{ dyn.modules.module_author.name }}</text>
|
||||||
<text style="font-size: 18px; color: #5e5e5e" if="{{ dyn.modules.module_author.pub_time }}">
|
<text style="font-size: 18px; color: #5e5e5e" if="{{ dyn.modules.module_author.pub_time }}">
|
||||||
|
|||||||
@@ -135,10 +135,10 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- 方屏67 -->
|
<!-- 方屏67 -->
|
||||||
<div if="{{screentype==='rect'}}" style="width: 336px;height: 255px;">
|
<div if="{{screentype==='rect'}}" style="width: {{screenWidthRect}}px;height: 255px;flex-direction: column">
|
||||||
<div static style="position:absolute;left:0px;top:-11px;width:336px;height:276px;">
|
<div static style="position:absolute;top:-11px;width:{{screenWidthRect}}px;height:276px;justify-content: center">
|
||||||
<progress percent="{{percent67}}" style="position: absolute;width:80px;top:258px;left:128px;color:#ffffff;stroke-width:6px;layer-color:#262626"></progress>
|
<progress percent="{{percent67}}" style="position:absolute;bottom: 15px;width:80px;color:#ffffff;stroke-width:6px;layer-color:#262626"></progress>
|
||||||
<scroll id="keyboard67" scroll-x="{{true}}" onscroll="handelScroll">
|
<scroll id="keyboard67" scroll-x="{{true}}" onscroll="handelScroll" style="width: {{screenWidthRect}}px">
|
||||||
<div if="{{!numFlag}}" style="left: 6px; flex-direction: column;">
|
<div if="{{!numFlag}}" style="left: 6px; flex-direction: column;">
|
||||||
<div static style="margin-left: 0px;margin-top: 0px;height: 60px;">
|
<div static style="margin-left: 0px;margin-top: 0px;height: 60px;">
|
||||||
<text class="calbtn67" for="{{item in keys['full'][0]}}" @click="onSelect(item)">{{item}}</text>
|
<text class="calbtn67" for="{{item in keys['full'][0]}}" @click="onSelect(item)">{{item}}</text>
|
||||||
@@ -164,26 +164,30 @@
|
|||||||
</div>
|
</div>
|
||||||
</scroll>
|
</scroll>
|
||||||
</div>
|
</div>
|
||||||
<img show="{{lang === 'cn' && !numFlag}}" style="position: absolute;left: 72px;top: 6px;width: 192px;height: 60px;" src="./assets/horizontal/search.png" />
|
<div style="width: {{screenWidthRect}}px; flex-direction: row; justify-content: center">
|
||||||
<scroll id="cvalWaiting" scroll-x="{{true}}" style="position: absolute;left: 82px;top: 15px;width: 157px;height: 42px;">
|
<img src="./assets/horizontal/cn.png" style="padding: 6px;width: 60px;height: 60px;" @click="onBtnClick('lang')" if="{{downFlag==='' && !numFlag && lang==='cn'}}" />
|
||||||
<div static style="position: absolute;left: 0px;top: 0px;height: 42px;padding-right:20px">
|
<div if="{{lang === 'cn' && !numFlag}}" style="margin-left: 6px;width: 60%;height: 60px;background-color:#262626;border-color: #333333; border-width: 3px; border-radius: 100px;flex-direction: row;align-items:center">
|
||||||
<text class="calbtn02" style="padding-right:10px" @click="pushCval">{{cval}}</text>
|
<scroll id="cvalWaiting" scroll-x="{{true}}" style="position:absolute;width: 85%;height: 42px;">
|
||||||
<text for="{{cvalList}}" show="{{resultList.length > $idx}}" class="calbtn02" style="padding-right:10px" @click="onRsSelect(resultList[$idx])">{{resultList[$idx]}}</text>
|
<div static style="position: absolute;left: 0px;height: 42px;padding-left:20px;padding-right:20px">
|
||||||
|
<text class="calbtn02" style="padding-right:10px" @click="pushCval">{{cval}}</text>
|
||||||
|
<text for="{{cvalList}}" show="{{resultList.length > $idx}}" class="calbtn02" style="padding-right:10px" @click="onRsSelect(resultList[$idx])">{{resultList[$idx]}}</text>
|
||||||
|
</div>
|
||||||
|
</scroll>
|
||||||
|
<img if="{{resultList.length > 0}}" style="position:absolute;right: 10px; width: 60px;height: 40px;" src="./assets/horizontal/down2.png" @click="onBtnClick('down')" />
|
||||||
</div>
|
</div>
|
||||||
</scroll>
|
|
||||||
<img show="{{resultList.length > 0}}" style="position: absolute;left: 199px;top: 16px;width: 60px;height: 40px;" src="./assets/horizontal/down2.png" @click="onBtnClick('down')" />
|
<!-- 带变量的相对路径在 aiot-tookit 2.0.3 中编译出错,已反馈,暂时注释掉 -->
|
||||||
<!-- 带变量的相对路径在 aiot-tookit 2.0.3 中编译出错,已反馈,暂时注释掉 -->
|
<!-- <img src="./assets/horizontal/{{lang}}.png" style="position: absolute;top:6px;left:6px;width: 60px;height: 60px;" @click="onBtnClick('lang')" show="{{downFlag==='' && !numFlag}}" /> -->
|
||||||
<!-- <img src="./assets/horizontal/{{lang}}.png" style="position: absolute;top:6px;left:6px;width: 60px;height: 60px;" @click="onBtnClick('lang')" show="{{downFlag==='' && !numFlag}}" /> -->
|
<img src="./assets/horizontal/en.png" style="padding: 6px;width: 60px;height: 60px;" @click="onBtnClick('lang')" if="{{downFlag==='' && !numFlag && lang==='en'}}" />
|
||||||
<img src="./assets/horizontal/cn.png" style="position: absolute;top:6px;left:6px;width: 60px;height: 60px;" @click="onBtnClick('lang')" show="{{downFlag==='' && !numFlag && lang==='cn'}}" />
|
<img src="./assets/horizontal/bigA.png" style="padding: 6px;margin-left: 6px;width:94px;height:60px;" @click="onBtnClick('switchLow')" if="{{downFlag==='' && upperFlag && lang==='en'&& !numFlag}}" />
|
||||||
<img src="./assets/horizontal/en.png" style="position: absolute;top:6px;left:6px;width: 60px;height: 60px;" @click="onBtnClick('lang')" show="{{downFlag==='' && !numFlag && lang==='en'}}" />
|
<img src="./assets/horizontal/a.png" style="padding: 6px;margin-left: 6px;width:94px;height:60px;" @click="onBtnClick('switchUpper')" if="{{downFlag==='' && !upperFlag && lang==='en'&& !numFlag}}" />
|
||||||
<img src="./assets/horizontal/123.png" style="position: absolute;left: 171px;top: 6px;width: 94px;height: 60px;" @click="onBtnClick('switchNum')" show="{{downFlag==='' && !numFlag && lang==='en'}}" />
|
<img src="./assets/horizontal/123.png" style="margin-left: 6px;padding: 6px;margin-left: 6px;width: 94px;height: 60px;" @click="onBtnClick('switchNum')" if="{{downFlag==='' && !numFlag && lang==='en'}}" />
|
||||||
<img src="./assets/horizontal/bigA.png" style="position: absolute;top:6px;left:72px;width:94px;height:60px;" @click="onBtnClick('switchLow')" show="{{downFlag==='' && upperFlag && lang==='en'&& !numFlag}}" />
|
<img src="./assets/horizontal/back2.png" style="margin-left: 6px;padding: 6px;width: 159px;height: 60px;" @click="onBtnClick('switchCn')" if="{{numFlag}}" />
|
||||||
<img src="./assets/horizontal/a.png" style="position: absolute;top:6px;left:72px;width:94px;height:60px;" @click="onBtnClick('switchUpper')" show="{{downFlag==='' && !upperFlag && lang==='en'&& !numFlag}}" />
|
<img if="{{!numFlag}}" src="./assets/horizontal/del.png" style="margin-left: 6px;padding: 6px;width: 60px;height: 60px;" @click="onBtnClick('D')" />
|
||||||
<img src="./assets/horizontal/back2.png" style="position: absolute;top:6px;left:6px;width: 159px;height: 60px;" @click="onBtnClick('switchCn')" show="{{numFlag}}" />
|
<img else src="./assets/horizontal/del2.png" style="margin-left: 6px;padding: 6px;" @click="onBtnClick('D')" />
|
||||||
<img if="{{!numFlag}}" src="./assets/horizontal/del.png" style="position: absolute;left: 270px;top: 6px;width: 60px;height: 60px;" @click="onBtnClick('D')" />
|
</div>
|
||||||
<img else src="./assets/horizontal/del2.png" style="position: absolute;left: 171px;top: 6px;width: 159px;height: 60px;" @click="onBtnClick('D')" />
|
|
||||||
<!-- 这里使用show会导致每次输入都会加载全部候选列表,很卡 -->
|
<!-- 这里使用show会导致每次输入都会加载全部候选列表,很卡 -->
|
||||||
<div style="position: absolute;left: 0px;top: 6px;width: 336px;height: 249px;background-color: black;" if="{{downFlag==='down'}}">
|
<div style="position: absolute;left: 0px;top: 0px;width: {{screenWidthRect}}px;height: 252px;background-color: black; justify-content:center; flex-direction:column; align-items:center" if="{{downFlag==='down'}}">
|
||||||
<div static class="list67">
|
<div static class="list67">
|
||||||
<list static style="width:100%;height:100%;">
|
<list static style="width:100%;height:100%;">
|
||||||
<list-item type="waitingRows67" class="item67" for="{{itemArray in resultList2}}">
|
<list-item type="waitingRows67" class="item67" for="{{itemArray in resultList2}}">
|
||||||
@@ -193,7 +197,7 @@
|
|||||||
</list-item>
|
</list-item>
|
||||||
</list>
|
</list>
|
||||||
</div>
|
</div>
|
||||||
<img static style="position: absolute;top:176px;left:6px;width: 324px;height: 67px;" src="./assets/horizontal/up2.png" @click="onBtnClick('down')" />
|
<img static style="margin-top:5px" src="./assets/horizontal/up2.png" @click="onBtnClick('down')" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- 胶囊屏66 -->
|
<!-- 胶囊屏66 -->
|
||||||
@@ -261,6 +265,7 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
import vibrator from "@system.vibrator";
|
import vibrator from "@system.vibrator";
|
||||||
|
import device from '@system.device'
|
||||||
import { SimpleInputMethod } from "./assets/dicUtil.js";
|
import { SimpleInputMethod } from "./assets/dicUtil.js";
|
||||||
function doSearchDic(word, cb) {
|
function doSearchDic(word, cb) {
|
||||||
let hanzi = SimpleInputMethod.getHanzi(word);
|
let hanzi = SimpleInputMethod.getHanzi(word);
|
||||||
@@ -308,6 +313,9 @@ export default {
|
|||||||
cvalList: [0, 1, 2, 3, 4],
|
cvalList: [0, 1, 2, 3, 4],
|
||||||
percent67: 52,
|
percent67: 52,
|
||||||
percent66: 0,
|
percent66: 0,
|
||||||
|
// 针对screenShape为rect的设备,会自动获取screenWidth并绑定到根div
|
||||||
|
// 这样便能同时适配n67和o65甚至是后续设备,但实际效果可能受designWidth影响
|
||||||
|
screenWidthRect: 336,
|
||||||
keys: {
|
keys: {
|
||||||
full: [
|
full: [
|
||||||
["Q", "W", "E", "R", "T", "Y", "U", "I", "O", "P"],
|
["Q", "W", "E", "R", "T", "Y", "U", "I", "O", "P"],
|
||||||
@@ -344,6 +352,9 @@ export default {
|
|||||||
}
|
}
|
||||||
this.cvalList = tempCvalList;
|
this.cvalList = tempCvalList;
|
||||||
}
|
}
|
||||||
|
if (this.screentype === "rect") {
|
||||||
|
this.adjustScreenWidth();
|
||||||
|
}
|
||||||
this.$watch("hide", "watchHidePropsChange");
|
this.$watch("hide", "watchHidePropsChange");
|
||||||
this.$watch("maxlength", "watchMaxLengthPropsChange");
|
this.$watch("maxlength", "watchMaxLengthPropsChange");
|
||||||
},
|
},
|
||||||
@@ -571,6 +582,13 @@ export default {
|
|||||||
this.resetReslutList();
|
this.resetReslutList();
|
||||||
this.addAllTxt(temp);
|
this.addAllTxt(temp);
|
||||||
},
|
},
|
||||||
|
adjustScreenWidth(){
|
||||||
|
device.getInfo({
|
||||||
|
success: (data) => {
|
||||||
|
this.screenWidthRect = data.screenWidth;
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
@@ -679,10 +697,8 @@ export default {
|
|||||||
height:170px;
|
height:170px;
|
||||||
}
|
}
|
||||||
.list67 {
|
.list67 {
|
||||||
position:absolute;
|
|
||||||
left:6px;
|
|
||||||
top:0px;
|
top:0px;
|
||||||
width:324px;
|
width:96.4%;
|
||||||
height:170px;
|
height:170px;
|
||||||
border-radius:30px;
|
border-radius:30px;
|
||||||
background-color:#262626;
|
background-color:#262626;
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 759 B After Width: | Height: | Size: 759 B |
|
Before Width: | Height: | Size: 441 B After Width: | Height: | Size: 441 B |
|
Before Width: | Height: | Size: 284 B After Width: | Height: | Size: 284 B |
|
Before Width: | Height: | Size: 512 B After Width: | Height: | Size: 512 B |
|
Before Width: | Height: | Size: 386 B After Width: | Height: | Size: 386 B |
|
Before Width: | Height: | Size: 595 B After Width: | Height: | Size: 595 B |
|
Before Width: | Height: | Size: 541 B After Width: | Height: | Size: 541 B |
|
Before Width: | Height: | Size: 504 B After Width: | Height: | Size: 504 B |
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 687 B After Width: | Height: | Size: 687 B |
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 3.8 KiB |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 2.0 KiB |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 2.0 KiB |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 254 B After Width: | Height: | Size: 254 B |
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.8 KiB |
|
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.9 KiB |
|
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.6 KiB |
|
Before Width: | Height: | Size: 541 B After Width: | Height: | Size: 541 B |
|
Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 2.0 KiB |
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.9 KiB |
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.6 KiB |
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 2.0 KiB |
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 2.0 KiB |
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.9 KiB |
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.9 KiB |
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.7 KiB |
@@ -127,5 +127,11 @@
|
|||||||
},
|
},
|
||||||
"user": {
|
"user": {
|
||||||
"title": "User"
|
"title": "User"
|
||||||
|
},
|
||||||
|
"sessionood": {
|
||||||
|
"title": "Some problems have occurred",
|
||||||
|
"sectitle": "Your account login seems to have expired, please try to log in again!",
|
||||||
|
"relogin": "Login again",
|
||||||
|
"exit": "Exit"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -132,5 +132,11 @@
|
|||||||
},
|
},
|
||||||
"user": {
|
"user": {
|
||||||
"title": "用户主页"
|
"title": "用户主页"
|
||||||
|
},
|
||||||
|
"sessionood": {
|
||||||
|
"title": "遇到了一些问题",
|
||||||
|
"sectitle": "您的账号登录似乎已经过期,请尝试重新登录!",
|
||||||
|
"relogin": "重新登录",
|
||||||
|
"exit": "退出"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -160,6 +160,9 @@
|
|||||||
},
|
},
|
||||||
"pages/user": {
|
"pages/user": {
|
||||||
"component": "user"
|
"component": "user"
|
||||||
|
},
|
||||||
|
"pages/error/sessionood": {
|
||||||
|
"component": "sessionood"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
<div class="page">
|
<div class="page">
|
||||||
<title-bar title="dynamic.detail.title"></title-bar>
|
<title-bar title="dynamic.detail.title"></title-bar>
|
||||||
<div class="user">
|
<div class="user">
|
||||||
<image class="userface" src="{{dyn.modules.module_author.face}}@75w_75h"></image>
|
<image class="userface" src="{{dyn.modules.module_author.face}}@75w_75h" alt="/common/fullgray.png"></image>
|
||||||
<div class="userinfo">
|
<div class="userinfo">
|
||||||
<text class="username" style="margin-bottom: 3px">{{ dyn.modules.module_author.name }}</text>
|
<text class="username" style="margin-bottom: 3px">{{ dyn.modules.module_author.name }}</text>
|
||||||
<text style="font-size: 18px; color: #5e5e5e;" if="{{ dyn.modules.module_author.pub_time }}">
|
<text style="font-size: 18px; color: #5e5e5e;" if="{{ dyn.modules.module_author.pub_time }}">
|
||||||
|
|||||||
@@ -1,8 +1,9 @@
|
|||||||
|
<import name="title-bar" src="@components/TitleBar/TitleBar.ux"></import>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<div class="page">
|
<div class="page">
|
||||||
<image src="/common/settings_about.png" style="margin-top: 22px"></image>
|
<title-bar title="about.title"></title-bar>
|
||||||
<text class="text" style="margin-top: 5px">{{ $t("about.title") }}</text>
|
<div class="appbar">
|
||||||
<div class="appbar" style="margin-top: 22px">
|
|
||||||
<image class="logo" src="/common/logo.png"></image>
|
<image class="logo" src="/common/logo.png"></image>
|
||||||
<text class="text" style="margin-left: 20px">HyperBili</text>
|
<text class="text" style="margin-left: 20px">HyperBili</text>
|
||||||
<text class="text ver">{{ version }}</text>
|
<text class="text ver">{{ version }}</text>
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
|
@import '@less/defs.less';
|
||||||
|
@import '@less/color.less';
|
||||||
|
|
||||||
.setbase {
|
.setbase {
|
||||||
width: 291px;
|
width: 370px;
|
||||||
height: 81px;
|
height: 92px;
|
||||||
border-radius: 30px;
|
border-radius: 30px;
|
||||||
background-color: #262626;
|
background-color: #262626;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
@@ -10,26 +13,26 @@
|
|||||||
|
|
||||||
.seticon {
|
.seticon {
|
||||||
margin-left: 25px;
|
margin-left: 25px;
|
||||||
width: 42px;
|
width: 55px;
|
||||||
height: 42px;
|
height: 55px;
|
||||||
object-fit: scale-down;
|
object-fit: scale-down;
|
||||||
}
|
}
|
||||||
|
|
||||||
.setext_small {
|
.setext_small {
|
||||||
font-size: 22px;
|
|
||||||
font-weight: 600;
|
|
||||||
margin-left: 15px;
|
|
||||||
width: 170px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.setext {
|
|
||||||
font-size: 30px;
|
font-size: 30px;
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
margin-left: 15px;
|
margin-left: 15px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.countset_num {
|
.countset_num {
|
||||||
font-size: 20px;
|
position: absolute;
|
||||||
|
right: 20px;
|
||||||
|
font-size: 30px;
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
color: #4785ff;
|
color: #FF7DA8;
|
||||||
|
}
|
||||||
|
|
||||||
|
.arrow {
|
||||||
|
position: absolute;
|
||||||
|
right: 20px;
|
||||||
}
|
}
|
||||||
@@ -22,22 +22,27 @@
|
|||||||
<div class="setbase" @click="ClearTmp()">
|
<div class="setbase" @click="ClearTmp()">
|
||||||
<image class="seticon" src="/common/settings_removetmp.png"></image>
|
<image class="seticon" src="/common/settings_removetmp.png"></image>
|
||||||
<text class="setext_small">{{ $t("settings.clearTemp") }}</text>
|
<text class="setext_small">{{ $t("settings.clearTemp") }}</text>
|
||||||
<image src="/common/arrow_right.png"></image>
|
<image class="arrow" src="/common/arrow_right.png"></image>
|
||||||
</div>
|
</div>
|
||||||
<div class="setbase" @click="logout()">
|
<div class="setbase" @click="logout()">
|
||||||
<image class="seticon" src="/common/settings_logout.png"></image>
|
<image class="seticon" src="/common/settings_logout.png"></image>
|
||||||
<text class="setext_small">{{ $t("settings.logOut") }}</text>
|
<text class="setext_small">{{ $t("settings.logOut") }}</text>
|
||||||
<image src="/common/arrow_right.png"></image>
|
<image class="arrow" src="/common/arrow_right.png"></image>
|
||||||
</div>
|
</div>
|
||||||
<div class="setbase" @click="GoDonation()">
|
<div class="setbase" @click="GoDonation()">
|
||||||
<image class="seticon" src="/common/donation.png"></image>
|
<image class="seticon" src="/common/donation.png"></image>
|
||||||
<text class="setext_small">{{ $t("settings.donation") }}</text>
|
<text class="setext_small">{{ $t("settings.donation") }}</text>
|
||||||
<image src="/common/arrow_right.png"></image>
|
<image class="arrow" src="/common/arrow_right.png"></image>
|
||||||
|
</div>
|
||||||
|
<div class="setbase" @click="GoAbout()">
|
||||||
|
<image class="seticon" src="/common/settings_about.png"></image>
|
||||||
|
<text class="setext_small">{{ $t("settings.about") }}</text>
|
||||||
|
<image class="arrow" src="/common/arrow_right.png"></image>
|
||||||
</div>
|
</div>
|
||||||
<div class="setbase" @click="GoDebug()">
|
<div class="setbase" @click="GoDebug()">
|
||||||
<div class="seticon"></div>
|
<div class="seticon"></div>
|
||||||
<text class="setext_small">{{ $t("settings.debug") }}</text>
|
<text class="setext_small">{{ $t("settings.debug") }}</text>
|
||||||
<image src="/common/arrow_right.png"></image>
|
<image class="arrow" src="/common/arrow_right.png"></image>
|
||||||
</div>
|
</div>
|
||||||
<image style="margin-top: 30px" src="/common/opensource_warning.png"></image>
|
<image style="margin-top: 30px" src="/common/opensource_warning.png"></image>
|
||||||
<text style="margin-top: 25px"></text>
|
<text style="margin-top: 25px"></text>
|
||||||
|
|||||||
@@ -0,0 +1,33 @@
|
|||||||
|
<import name="default-button" src="@components/DefaultButton/DefaultButton.ux"></import>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<div class="page">
|
||||||
|
<image style="margin-top: 44px; width: 63px; height: 54px; object-fit: scale-down" src="/common/warning_icon.png"></image>
|
||||||
|
<text style="font-weight: 600; font-size: 28px; margin-top: 15px;">{{ $t("sessionood.title") }}</text>
|
||||||
|
<text style="font-weight: 600; font-size: 28px; margin-top: 18px; width: 75%">{{ $t("sessionood.sectitle") }}</text>
|
||||||
|
<default-button primary="true" margin-top="35px" text="sessionood.relogin" @click="Relogin"></default-button>
|
||||||
|
<default-button margin-top="15px" text="sessionood.exit" @click="Exit"></default-button>
|
||||||
|
<text style="margin-top: 25px;"></text>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import router from "@system.router"
|
||||||
|
export default {
|
||||||
|
Relogin(){
|
||||||
|
global.biliclient.logOut()
|
||||||
|
router.clear()
|
||||||
|
router.replace({
|
||||||
|
uri: "pages/app/entry/splash"
|
||||||
|
})
|
||||||
|
},
|
||||||
|
Exit(){
|
||||||
|
router.clear()
|
||||||
|
router.back()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="less">
|
||||||
|
@import '@less/global.less';
|
||||||
|
</style>
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
@import '@less/defs.less';
|
||||||
|
@import '@less/color.less';
|
||||||
|
|
||||||
|
.ctxcard {
|
||||||
|
.flex-column(15px);
|
||||||
|
.radius(15px);
|
||||||
|
}
|
||||||
|
|
||||||
|
.ctxdesc {
|
||||||
|
.flex-row(0px, #00000000);
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.desctxt {
|
||||||
|
font-size: 24px;
|
||||||
|
font-weight: 600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.gs {
|
||||||
|
font-size: 20px;
|
||||||
|
color: gray;
|
||||||
|
}
|
||||||
@@ -5,6 +5,16 @@
|
|||||||
<div class="page">
|
<div class="page">
|
||||||
<title-bar title="user.title"></title-bar>
|
<title-bar title="user.title"></title-bar>
|
||||||
<user-info account-info="{{user}}" if="{{loaded}}"></user-info>
|
<user-info account-info="{{user}}" if="{{loaded}}"></user-info>
|
||||||
|
<div class="ctxcard" if="{{loaded}}">
|
||||||
|
<div class="ctxdesc">
|
||||||
|
<div style="width: 280px;">
|
||||||
|
<text class="desctxt">TA的视频</text>
|
||||||
|
<text class="desctxt gs" style="margin-left: 15px">{{navnum.video}}</text>
|
||||||
|
</div>
|
||||||
|
<text class="desctxt gs">></text>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
<image style="position: absolute; margin-top: 245px" if="{{anims.show_loading}}" src="{{anims.loading_src.value}}"></image>
|
<image style="position: absolute; margin-top: 245px" if="{{anims.show_loading}}" src="{{anims.loading_src.value}}"></image>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@@ -16,6 +26,8 @@ export default {
|
|||||||
},
|
},
|
||||||
private: {
|
private: {
|
||||||
user: {},
|
user: {},
|
||||||
|
stat: {},
|
||||||
|
navnum: {},
|
||||||
anims: {
|
anims: {
|
||||||
show_loading: false
|
show_loading: false
|
||||||
},
|
},
|
||||||
@@ -23,7 +35,11 @@ export default {
|
|||||||
},
|
},
|
||||||
async LoadUserInfo(){
|
async LoadUserInfo(){
|
||||||
this.anims.loading.start()
|
this.anims.loading.start()
|
||||||
|
|
||||||
this.user = await global.biliclient.getUserInfoByUID(this.uid)
|
this.user = await global.biliclient.getUserInfoByUID(this.uid)
|
||||||
|
this.stat = await global.biliclient.getUserStatByUID(this.uid)
|
||||||
|
this.navnum = await global.biliclient.getUserNavnumByUID(this.uid)
|
||||||
|
|
||||||
this.anims.loading.stop()
|
this.anims.loading.stop()
|
||||||
this.anims.show_loading = false
|
this.anims.show_loading = false
|
||||||
this.loaded = true
|
this.loaded = true
|
||||||
|
|||||||