功能改进

个人设置页面支持容量显示
This commit is contained in:
Chenx221 2024-03-02 19:16:38 +08:00
parent f3119ac609
commit 20928c572b
Signed by: chenx221
GPG Key ID: D7A9EC07024C3021
2 changed files with 36 additions and 12 deletions

View File

@ -4,6 +4,7 @@ namespace app\controllers;
use app\models\User;
use app\models\UserSearch;
use app\utils\FileSizeHelper;
use ReCaptcha\ReCaptcha;
use Yii;
use yii\base\Exception;
@ -321,7 +322,7 @@ class UserController extends Controller
/**
* @return string|Response
*/
public function actionInfo()
public function actionInfo(): Response|string
{
if (Yii::$app->user->isGuest) {
Yii::$app->session->setFlash('error', '请先登录');
@ -329,8 +330,17 @@ class UserController extends Controller
}
$model = Yii::$app->user->identity;
$dataDirectory = Yii::getAlias(Yii::$app->params['dataDirectory']) . '/' . Yii::$app->user->id;
$usedSpace = FileSizeHelper::getDirectorySize($dataDirectory);
$vaultUsedSpace = 0; // 保险箱已用空间暂时为0
$storageLimit = $model->storage_limit;
return $this->render('info', [
'model' => $model,
'usedSpace' => $usedSpace, // B
'vaultUsedSpace' => $vaultUsedSpace,
'storageLimit' => $storageLimit, // MB
]);
}
}

View File

@ -3,8 +3,13 @@
/* @var $this yii\web\View */
/* @var $model app\models\User */
/* @var $usedSpace int */
/* @var $vaultUsedSpace int */
/* @var $storageLimit int */
use app\assets\FontAwesomeAsset;
use app\utils\FileSizeHelper;
use app\utils\IPLocation;
use yii\bootstrap5\Html;
@ -12,9 +17,15 @@ $this->title = '个人设置';
FontAwesomeAsset::register($this);
$this->registerCssFile('@web/css/user-info.css');
$details = IPLocation::getDetails($model->last_login_ip);
//if (is_null($details)) {
// echo '<script>console.log("IP位置信息功能停用或存在内部错误")</script>';
//}
$usedSpace_F = FileSizeHelper::formatBytes($usedSpace);
$vaultUsedSpace_F = FileSizeHelper::formatBytes($vaultUsedSpace);
$storageLimit_F = FileSizeHelper::formatMegaBytes($storageLimit);
$totalUsed_F = FileSizeHelper::formatBytes($usedSpace + $vaultUsedSpace);
$is_unlimited = ($storageLimit === -1);
$usedPercent = $is_unlimited ? 0 : round($usedSpace / $storageLimit * 100);
$vaultUsedPercent = $is_unlimited ? 0 : round($vaultUsedSpace / $storageLimit * 100);
$totalUsedPercent = min(($usedPercent + $vaultUsedPercent), 100);
?>
<div class="user-info">
@ -71,7 +82,7 @@ $details = IPLocation::getDetails($model->last_login_ip);
<span>存储空间</span>
</span>
<span style="margin-right: 20px">
N/A <!-- 这里是你的容量显示 -->
<?= $totalUsed_F . ' / ' . $storageLimit_F ?>
</span>
</span>
</button>
@ -82,31 +93,34 @@ $details = IPLocation::getDetails($model->last_login_ip);
<div class="storage-columns">
<div class="storage-usage" style="width: 27%">
<p>当前已使用容量</p>
<span style="font-weight: 600;font-size: 1.4rem;color: black;padding-left: 2px;">N/A GB</span>
<span style="font-size: 0.9rem;">/ N/A TB</span>
<span style="font-weight: 600;font-size: 1.4rem;color: black;padding-left: 2px;"><?= $totalUsed_F ?>
</span>
<span style="font-size: 0.9rem;">/ <?= $storageLimit_F ?></span>
</div>
<div style="width: 47%">
<p>N/A% 已用</p>
<p><?= $totalUsedPercent ?>% 已用</p>
<div class="progress">
<div class="progress-bar" role="progressbar"
style="width: 25%;background-color: rgb(52,131,250)" aria-valuenow="25"
style="width: <?= $usedPercent ?>%;background-color: rgb(52,131,250)"
aria-valuenow="<?= $usedPercent ?>"
aria-valuemin="0" aria-valuemax="100"></div>
<div class="progress-bar" role="progressbar"
style="width: 25%;background-color: rgb(196,134,0)" aria-valuenow="25"
style="width: <?= $vaultUsedPercent ?>%;background-color: rgb(196,134,0)"
aria-valuenow="<?= $vaultUsedPercent ?>"
aria-valuemin="0" aria-valuemax="100"></div>
</div>
<div class="storage-legend" style="color: rgb(140,139,139)">
<div class="legend-item">
<span class="legend-color" style="background-color: rgb(52,131,250);"></span>
<span>网盘已用空间</span>
<span style="margin-left: auto;">N/A GB <i
<span style="margin-left: auto;"><?= $usedSpace_F ?> <i
class="fa-solid fa-arrow-up-right-from-square"
style="font-size: 0.75rem;"></i></span>
</div>
<div class="legend-item">
<span class="legend-color" style="background-color: rgb(196,134,0);"></span>
<span>保险箱已用空间</span>
<span style="margin-left: auto;">N/A GB <i
<span style="margin-left: auto;"><?= $vaultUsedSpace_F ?> <i
class="fa-solid fa-arrow-up-right-from-square"
style="font-size: 0.75rem;"></i></span>
</div>