Skip to content

Commit

Permalink
Merge pull request #18 from Anankke/dev
Browse files Browse the repository at this point in the history
merge
  • Loading branch information
Rico authored Jan 25, 2019
2 parents b48eb0c + 7d6937c commit 5ff6dca
Show file tree
Hide file tree
Showing 4 changed files with 173 additions and 16 deletions.
13 changes: 13 additions & 0 deletions app/Controllers/VueController.php
Original file line number Diff line number Diff line change
Expand Up @@ -237,5 +237,18 @@ public function getNewInviteCode($request, $response, $args)
return $response->getBody()->write(json_encode($res));
}

public function getTransfer($request, $response, $args)
{
$user = $this->user;

$res['arr'] = array(
"todayUsedTraffic" => $user->TodayusedTraffic(),
"lastUsedTraffic" => $user->LastusedTraffic(),
"unUsedTraffic" => $user->unusedTraffic(),
);

$res['ret'] = 1;

return $response->getBody()->write(json_encode($res));
}
}
1 change: 1 addition & 0 deletions config/routes.php
Original file line number Diff line number Diff line change
Expand Up @@ -378,6 +378,7 @@
$app->get('/getallresourse', 'App\Controllers\VueController:getAllResourse');
$app->get('/getnewsubtoken', 'App\Controllers\VueController:getNewSubToken');
$app->get('/getnewinvotecode', 'App\Controllers\VueController:getNewInviteCode');
$app->get('/gettransfer', 'App\Controllers\VueController:getTransfer');

/**
* chenPay
Expand Down
73 changes: 72 additions & 1 deletion public/theme/material/css/index.css
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,10 @@ a {
align-items: center;
}

.align-baseline {
align-items: baseline;
}

.justify-center {
justify-content: center;
}
Expand Down Expand Up @@ -540,6 +544,7 @@ select {
border: 1px solid;
font-size: 14px;
border-radius: 3px;
outline: none;
}

.tips-blue {
Expand Down Expand Up @@ -580,6 +585,10 @@ select {
color: #faad14;
}

.font-green-trans {
color: #52c41a;
}

button.tips {
background-color: transparent;
}
Expand Down Expand Up @@ -682,6 +691,7 @@ button.tips {

.invite-link {
width: 100%;
cursor: pointer;
}

.user-invite-title .uim-tooltip {
Expand Down Expand Up @@ -1272,15 +1282,26 @@ button.uim-modal-confirm {

/* progressbar */

.uim-progressbar {
display: flex;
align-items: center;
flex-wrap: wrap;
}

.uim-progressbar-inner,
.uim-progressbar-progress,
.uim-progressbar-progress:before {
display: inline-block;
height: 10px;
height: 8px;
width: 100%;
background-color: #434857;
border-radius: 5px;
position: relative;
transition: all .3s;
}

.uim-progressbar-inner {
width: 80%;
}

.uim-progressbar-progress,
Expand Down Expand Up @@ -1308,6 +1329,56 @@ button.uim-modal-confirm {
box-shadow: 0 0 7px 0 #13c2c2;
}

.uim-progressbar .uim-progressbar-gold {
background-color: #e8a114;
box-shadow: 0 0 7px 0 #d4c00c;
}

.uim-progressbar .uim-progressbar-red {
background-color: #D1335B;
box-shadow: 0 0 7px 0 rgb(177, 15, 56);
}

.uim-progressbar-progress.uim-progressbar-fold {
z-index: 2;
}

.uim-progressbar-progress.uim-progressbar-fold.uim-progressbar-red {
box-shadow: 0 0 7px 1px indianred;
}

.uim-progressbar-sub .uim-progressbar-inner,
.uim-progressbar-sub .uim-progressbar-progress,
.uim-progressbar-sub .uim-progressbar-progress:before {
height: 5px;
}

.uim-progressbar-label {
font-size: 12px;
margin-bottom: .2rem;
width: 100%;
}

.uim-progress-text {
z-index: 5;
width: 100%;
position: relative;
display: flex;
justify-content: center;
font-size: .5rem;
top: -50%;
}

.uim-progressbar-sub .uim-progress-text {
top: -115%;
}

.uim-progress-sign {
font-size: .5rem;
width: 20%;
text-align: center;
}

@keyframes uim-progress-active {
from {
opacity: .3;
Expand Down
102 changes: 87 additions & 15 deletions resources/views/material/index.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -436,6 +436,42 @@ const tmp = new Vuex.Store({
}
});
Vue.directive('uimclip',{
inserted: function(el, binding) {
el.addEventListener('click',(e)=>{
let copy = new Promise((resolve,reject)=>{
let input = document.createElement('input');
let body = document.getElementsByTagName('body')[0];
let value = el.dataset.uimclip;
input.setAttribute('type','text');
input.setAttribute('value',value);
body.appendChild(input);
input.focus();
input.setSelectionRange(0, value.length);
document.execCommand('copy',true);
resolve(input);
})
copy.then((r)=>{
r.remove();
binding.value.onSuccess();
})
})
},
})
var methodsMixin = {
methods: {
successCopied() {
let callConfig = {
msg: '复制成功!,已将链接复制到剪贴板',
icon: 'fa-check-square-o',
time: '1500',
}
this.callMsgr(callConfig);
},
}
}
var mutationMap = {
methods: Vuex.mapMutations({
setGlobalConfig: 'SET_GLOBALCONFIG',
Expand All @@ -455,7 +491,7 @@ var mutationMap = {
var storeMap = {
store: tmp,
mixins: [mutationMap],
mixins: [mutationMap,methodsMixin],
computed: Vuex.mapState({
msgrCon: 'msgrCon',
modalCon: 'modalCon',
Expand Down Expand Up @@ -1220,7 +1256,7 @@ const UserInvite = {
<div class="user-invite">
<div v-if="userCon.class !== 0">
<div class="flex align-center wrap">
<input type="input" :class="{ 'invite-reset':inviteLinkTrans }" class="invite-link tips tips-blue" :value="inviteLink" disabled>
<input type="text" v-uimclip="{ onSuccess:successCopied }" :data-uimclip="inviteLink" :class="{ 'invite-reset':inviteLinkTrans }" class="invite-link tips tips-blue" :value="inviteLink" readonly>
<span class="invite-tools link-reset relative flex justify-center text-center">
<button @click="showInviteReset" class="tips tips-red"><span class="fa fa-refresh"> 重置</button>
Expand Down Expand Up @@ -1678,16 +1714,29 @@ const UserResourse = {
mixins: [userMixin,storeMap,userSetMixin],
template: /*html*/ `
<div @mousewheel="wheelChange" class="user-resourse">
<div class="card-title">可用资源</div>
<div class="flex align-baseline">
<div class="card-title">可用资源</div>
<span><button @click="dataRefresh" class="tips tips-green"><span class="fa fa-refresh"></span>刷新</button></span>
</div>
<div class="card-body">
<div class="pure-g wrap">
<div v-for="tip in calcResourse" class="pure-u-1-2 pure-u-lg-4-24" :key="tip.name">
<p class="tips tips-blue">$[tip.name]$</p>
<p class="font-light" :class="{ 'font-gold-trans':resourseTrans }"> <span class="user-config"></span> $[tip.content]$</p>
<p class="tips tips-blue"> $[tip.name]$</p>
<p class="font-light user-config" :class="{ 'font-gold-trans':resourseTrans,'font-green-trans':isDataRefreshed }"> <span class="user-config"></span> $[tip.content]$</p>
</div>
<div class="pure-u-1 pure-u-lg-8-24">
<uim-progressbar class="uim-progressbar-sub">
<span slot="uim-progressbar-label">已用流量/今日已用</span>
<div slot="progress" class="uim-progressbar-gold uim-progressbar-progress" :style="{ width:transferObj.usedtotal + '%' }"></div>
<div slot="progress-fold" class="uim-progressbar-red uim-progressbar-progress uim-progressbar-fold" :style="{ width:transferObj.usedtoday + '%' }"></div>
<span class="user-config" :class="{ 'font-green-trans':isDataRefreshed }" slot="progress-text">$[userCon.lastUsedTraffic + '/' + userCon.todayUsedTraffic]$</span>
<span slot="progress-sign" class="user-config" :class="{ 'font-green-trans':isDataRefreshed }">$[transferObj.usedtoday.toFixed(1) + '%']$</span>
</uim-progressbar>
<uim-progressbar>
<span slot="uim-progressbar-label">可用流量</span>
<div slot="progress" class="uim-progressbar-blue uim-progressbar-progress" :style="{ width:transferObj.remain + '%' }"></div>
<span :class="{ 'font-green-trans':isDataRefreshed }" slot="progress-text">$[userCon.unUsedTraffic]$</span>
<span slot="progress-sign" class="user-config" :class="{ 'font-green-trans':isDataRefreshed }">$[transferObj.remain.toFixed(1) + '%']$</span>
</uim-progressbar>
</div>
</div>
Expand Down Expand Up @@ -1726,12 +1775,17 @@ const UserResourse = {
let lastdayTransfer = this.userCon.last_day_t;
let obj = {
remain: enable === 0 ? 0 : (enable - upload - download)/enable*100,
usedtoday: enable === 0 ? 0 : (upload + download - lastdayTransfer)/enable*100,
usedtoday: enable === 0 ? 0 : (upload + download)/enable*100,
usedtotal: enable === 0 ? 0 : lastdayTransfer/enable*100,
};
return obj;
},
},
data: function() {
return {
isDataRefreshed: false,
}
},
methods: {
DateParse(str_date) {
let str_date_splited = str_date.split(/[^0-9]/);
Expand Down Expand Up @@ -1761,14 +1815,28 @@ const UserResourse = {
this.setReasourse({ index:1,content:this.userCon.accountExpireDays + '' });
}
},
dataRefresh() {
_get('/gettransfer','include').then((r)=>{
this.addNewUserCon(r.arr);
this.reConfigResourse();
this.showTransition('isDataRefreshed');
});
},
showTransition(key) {
this[key] = true;
setTimeout(() => {
this[key] = false;
}, 500);
},
},
created() {
let resourse = this.userSettings.resourse;
this.calcExpireDays(this.userCon.class_expire,this.userCon.expire_in);
_get('/gettransfer','include').then((r)=>{
this.addNewUserCon(r.arr);
console.log(this.userCon);
});
},
mounted() {
}
};
const UserSettings = {
Expand Down Expand Up @@ -1889,7 +1957,7 @@ const Panel = {
<div class="pure-g align-center relative">
<span class="pure-u-6-24">普通端口:</span>
<span class="pure-u-18-24 pure-g relative flex justify-center text-center">
<input @mouseenter="showToolTip('mu0')" @mouseleave="hideToolTip('mu0')" :class="{ 'sublink-reset':subLinkTrans }" class="tips tips-blue pure-u-1" type="text" name="" id="" :value="suburlMu0" readonly>
<input v-uimclip="{ onSuccess:successCopied }" :data-uimclip="suburlMu0" @mouseenter="showToolTip('mu0')" @mouseleave="hideToolTip('mu0')" :class="{ 'sublink-reset':subLinkTrans }" class="tips tips-blue pure-u-1" type="text" name="" id="" :value="suburlMu0" readonly>
<uim-tooltip v-show="toolTips.mu0" class="uim-tooltip-top flex justify-center">
<div class="sublink" slot="tooltip-inner">
<span>$[suburlMu0]$</span>
Expand All @@ -1900,7 +1968,7 @@ const Panel = {
<div v-if="mergeSub !== 'true'" class="pure-g align-center relative">
<span class="pure-u-6-24">单端口:</span>
<span class="pure-u-18-24 pure-g relative flex justify-center text-center">
<input @mouseenter="showToolTip('mu1')" @mouseleave="hideToolTip('mu1')" :class="{ 'sublink-reset':subLinkTrans }" class="tips tips-blue pure-u-1" type="text" name="" id="" :value="suburlMu1" readonly>
<input v-uimclip="{ onSuccess:successCopied }" :data-uimclip="suburlMu1" @mouseenter="showToolTip('mu1')" @mouseleave="hideToolTip('mu1')" :class="{ 'sublink-reset':subLinkTrans }" class="tips tips-blue pure-u-1" type="text" name="" id="" :value="suburlMu1" readonly>
<uim-tooltip v-show="toolTips.mu1" class="uim-tooltip-top flex justify-center">
<div class="sublink" slot="tooltip-inner">
<span>$[suburlMu1]$</span>
Expand All @@ -1910,15 +1978,15 @@ const Panel = {
</div>
</div>
<div class="pure-g input-copy relative flex justify-center text-center" v-else-if="currentDlType === 'V2RAY'" key="sssub">
<input @mouseenter="showToolTip('mu2')" @mouseleave="hideToolTip('mu2')" :class="{ 'sublink-reset':subLinkTrans }" class="tips tips-blue" type="text" name="" id="" :value="suburlMu2" readonly>
<input v-uimclip="{ onSuccess:successCopied }" :data-uimclip="suburlMu2" @mouseenter="showToolTip('mu2')" @mouseleave="hideToolTip('mu2')" :class="{ 'sublink-reset':subLinkTrans }" class="tips tips-blue" type="text" name="" id="" :value="suburlMu2" readonly>
<uim-tooltip v-show="toolTips.mu2" class="pure-u-1 uim-tooltip-top flex justify-center">
<div class="sublink" slot="tooltip-inner">
<span>$[suburlMu2]$</span>
</div>
</uim-tooltip>
</div>
<div class="pure-g input-copy relative flex justify-center text-center" v-else-if="currentDlType === 'SS/SSD'" key="v2sub">
<input @mouseenter="showToolTip('mu3')" @mouseleave="hideToolTip('mu3')" :class="{ 'sublink-reset':subLinkTrans }" class="tips tips-blue" type="text" name="" id="" :value="suburlMu3" readonly>
<input v-uimclip="{ onSuccess:successCopied }" :data-uimclip="suburlMu3" @mouseenter="showToolTip('mu3')" @mouseleave="hideToolTip('mu3')" :class="{ 'sublink-reset':subLinkTrans }" class="tips tips-blue" type="text" name="" id="" :value="suburlMu3" readonly>
<uim-tooltip v-show="toolTips.mu3" class="pure-u-1 uim-tooltip-top flex justify-center">
<div class="sublink" slot="tooltip-inner">
<span>$[suburlMu3]$</span>
Expand All @@ -1939,7 +2007,7 @@ const Panel = {
</uim-anchor>
<transition name="fade" mode="out-in">
<keep-alive>
<component v-on:turnPageByWheel="scrollPage" :resourseTrans="userResourseTrans" :is="userSettings.currentPage" :initialSet="userSettings" class="card margin-nobottom"></component>
<component v-on:turnPageByWheel="scrollPage" :resourseTrans="userResourseTrans" :is="userSettings.currentPage" :initialSet="userSettings" class="settiings-toolbar card margin-nobottom"></component>
</keep-alive>
</transition>
</div>
Expand Down Expand Up @@ -2582,10 +2650,14 @@ Vue.component('uim-anchor',{
Vue.component('uim-progressbar',{
delimiters: ['$[',']$'],
template:/*html*/ `
<div class="uim-progressbar">
<div class="uim-progressbar" >
<div class="uim-progressbar-label"><slot name="uim-progressbar-label"></slot></div>
<div class="uim-progressbar-inner">
<slot name="progress"></slot>
<slot name="progress-fold"></slot>
<div class="uim-progress-text"><slot name="progress-text"></slot></div>
</div>
<span class="uim-progress-sign"><slot name="progress-sign"></slot></span>
</div>
`
})
Expand Down

0 comments on commit 5ff6dca

Please sign in to comment.