397 lines
18 KiB
PHP
397 lines
18 KiB
PHP
<?php
|
|
|
|
include './admin_sc.php';
|
|
|
|
?>
|
|
<!DOCTYPE html>
|
|
<html :class="{ 'theme-dark': dark }" x-data="data()" lang="en">
|
|
<head>
|
|
<meta charset="UTF-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
<title>Fuxsto Host V2 - Admin</title>
|
|
<!-- MDUI CSS -->
|
|
<link rel="stylesheet" href="/mdui/css/mdui.min.css">
|
|
|
|
<link rel="stylesheet" href="../Ruaka/tip.css">
|
|
<link rel="stylesheet" href="../Ruaka/Ruaka.ui.css">
|
|
|
|
<!-- MDUI JavaScript -->
|
|
<script src="/mdui/js/mdui.min.js"></script>
|
|
<script src="../Ruaka/tip.js"></script>
|
|
|
|
<script src="/Ruaka/res.js"></script>
|
|
|
|
<link
|
|
href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap"
|
|
rel="stylesheet"
|
|
/>
|
|
<link rel="stylesheet" href="/assets/css/tailwind.output.css" />
|
|
<script
|
|
src="/assets/js/alp.js"
|
|
defer
|
|
></script>
|
|
|
|
<script src="/assets/js/init-alpine.js"></script>
|
|
<link
|
|
rel="stylesheet"
|
|
href="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.3/Chart.min.css"
|
|
/>
|
|
<link rel="stylesheet" href="../Ruaka/tip.css" />
|
|
<script
|
|
src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.3/Chart.min.js"
|
|
defer
|
|
></script>
|
|
<script src="/assets/js/charts-lines.js" defer></script>
|
|
<script src="/assets/js/charts-pie.js" defer></script>
|
|
<script src="../Ruaka/tip.js"></script>
|
|
<script src="../Ruaka/res.js"></script>
|
|
</head>
|
|
<body>
|
|
<div
|
|
class="flex h-screen bg-gray-50 dark:bg-gray-900"
|
|
:class="{ 'overflow-hidden': isSideMenuOpen }"
|
|
>
|
|
<!-- Desktop sidebar -->
|
|
<aside
|
|
class="z-20 hidden w-64 overflow-y-auto bg-white dark:bg-gray-800 md:block flex-shrink-0"
|
|
>
|
|
<div class="py-4 text-gray-500 dark:text-gray-400">
|
|
<a
|
|
class="ml-6 text-lg font-bold text-gray-800 dark:text-gray-200"
|
|
href="#"
|
|
>
|
|
Fuxsto Host
|
|
</a>
|
|
<ul class="mt-6">
|
|
<li class="relative px-6 py-3">
|
|
<span
|
|
class="absolute inset-y-0 left-0 w-1 bg-purple-600 rounded-tr-lg rounded-br-lg"
|
|
aria-hidden="true"
|
|
></span>
|
|
<a
|
|
class="inline-flex items-center w-full text-sm font-semibold text-gray-800 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 dark:text-gray-100"
|
|
href="index.fx"
|
|
>
|
|
<svg
|
|
class="w-5 h-5"
|
|
aria-hidden="true"
|
|
fill="none"
|
|
stroke-linecap="round"
|
|
stroke-linejoin="round"
|
|
stroke-width="2"
|
|
viewBox="0 0 24 24"
|
|
stroke="currentColor"
|
|
>
|
|
<path
|
|
d="M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-6 0a1 1 0 001-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 001 1m-6 0h6"
|
|
></path>
|
|
</svg>
|
|
<span class="ml-4">主页</span>
|
|
</a>
|
|
</li>
|
|
<li class="relative px-6 py-3">
|
|
<a class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" href="space.fx">
|
|
<svg class="w-5 h-5" aria-hidden="true" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewBox="0 0 24 24" stroke="currentColor">
|
|
<path d="M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z"></path>
|
|
</svg>
|
|
<span class="ml-4">虚拟主机</span>
|
|
</a>
|
|
</li>
|
|
<li class="relative px-6 py-3">
|
|
<a class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" href="bi.fx">
|
|
<svg class="w-5 h-5" aria-hidden="true" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewBox="0 0 24 24" stroke="currentColor">
|
|
<path d="M15 15l-2 5L9 9l11 4-5 2zm0 0l5 5M7.188 2.239l.777 2.897M5.136 7.965l-2.898-.777M13.95 4.05l-2.122 2.122m-5.657 5.656l-2.12 2.122"></path>
|
|
</svg>
|
|
<span class="ml-4">赚取积分</span>
|
|
</a>
|
|
</li>
|
|
<li class="relative px-6 py-3">
|
|
<a class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" href="https://pan.furrybox.cn/">
|
|
<svg class="w-5 h-5" aria-hidden="true" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewBox="0 0 24 24" stroke="currentColor">
|
|
<path d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z"></path>
|
|
<path d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"></path>
|
|
</svg>
|
|
<span class="ml-4">免费网盘</span>
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
<ul>
|
|
<template x-if="isPagesMenuOpen">
|
|
<ul
|
|
x-transition:enter="transition-all ease-in-out duration-300"
|
|
x-transition:enter-start="opacity-25 max-h-0"
|
|
x-transition:enter-end="opacity-100 max-h-xl"
|
|
x-transition:leave="transition-all ease-in-out duration-300"
|
|
x-transition:leave-start="opacity-100 max-h-xl"
|
|
x-transition:leave-end="opacity-0 max-h-0"
|
|
class="p-2 mt-2 space-y-2 overflow-hidden text-sm font-medium text-gray-500 rounded-md shadow-inner bg-gray-50 dark:text-gray-400 dark:bg-gray-900"
|
|
aria-label="submenu"
|
|
>
|
|
|
|
</template>
|
|
</li>
|
|
</ul>
|
|
|
|
</aside>
|
|
<!-- Mobile sidebar -->
|
|
<!-- Backdrop -->
|
|
<div
|
|
x-show="isSideMenuOpen"
|
|
x-transition:enter="transition ease-in-out duration-150"
|
|
x-transition:enter-start="opacity-0"
|
|
x-transition:enter-end="opacity-100"
|
|
x-transition:leave="transition ease-in-out duration-150"
|
|
x-transition:leave-start="opacity-100"
|
|
x-transition:leave-end="opacity-0"
|
|
class="fixed inset-0 z-10 flex items-end bg-black bg-opacity-50 sm:items-center sm:justify-center"
|
|
></div>
|
|
<aside
|
|
class="fixed inset-y-0 z-20 flex-shrink-0 w-64 mt-16 overflow-y-auto bg-white dark:bg-gray-800 md:hidden"
|
|
x-show="isSideMenuOpen"
|
|
x-transition:enter="transition ease-in-out duration-150"
|
|
x-transition:enter-start="opacity-0 transform -translate-x-20"
|
|
x-transition:enter-end="opacity-100"
|
|
x-transition:leave="transition ease-in-out duration-150"
|
|
x-transition:leave-start="opacity-100"
|
|
x-transition:leave-end="opacity-0 transform -translate-x-20"
|
|
@click.away="closeSideMenu"
|
|
@keydown.escape="closeSideMenu"
|
|
>
|
|
<div class="py-4 text-gray-500 dark:text-gray-400">
|
|
<a
|
|
class="ml-6 text-lg font-bold text-gray-800 dark:text-gray-200"
|
|
href="#"
|
|
>
|
|
Fuxsto Host
|
|
</a>
|
|
<ul class="mt-6">
|
|
<li class="relative px-6 py-3">
|
|
<span
|
|
class="absolute inset-y-0 left-0 w-1 bg-purple-600 rounded-tr-lg rounded-br-lg"
|
|
aria-hidden="true"
|
|
></span>
|
|
<a
|
|
class="inline-flex items-center w-full text-sm font-semibold text-gray-800 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 dark:text-gray-100"
|
|
href="index.fx"
|
|
>
|
|
<svg
|
|
class="w-5 h-5"
|
|
aria-hidden="true"
|
|
fill="none"
|
|
stroke-linecap="round"
|
|
stroke-linejoin="round"
|
|
stroke-width="2"
|
|
viewBox="0 0 24 24"
|
|
stroke="currentColor"
|
|
>
|
|
<path
|
|
d="M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-6 0a1 1 0 001-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 001 1m-6 0h6"
|
|
></path>
|
|
</svg>
|
|
<span class="ml-4">主页</span>
|
|
</a>
|
|
</li>
|
|
|
|
<li class="relative px-6 py-3">
|
|
<a class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" href="space.fx">
|
|
<svg class="w-5 h-5" aria-hidden="true" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewBox="0 0 24 24" stroke="currentColor">
|
|
<path d="M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z"></path>
|
|
</svg>
|
|
<span class="ml-4">虚拟主机</span>
|
|
</a>
|
|
</li>
|
|
<li class="relative px-6 py-3">
|
|
<a class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" href="bi.fx">
|
|
<svg class="w-5 h-5" aria-hidden="true" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewBox="0 0 24 24" stroke="currentColor">
|
|
<path d="M15 15l-2 5L9 9l11 4-5 2zm0 0l5 5M7.188 2.239l.777 2.897M5.136 7.965l-2.898-.777M13.95 4.05l-2.122 2.122m-5.657 5.656l-2.12 2.122"></path>
|
|
</svg>
|
|
<span class="ml-4">赚取积分</span>
|
|
</a>
|
|
</li>
|
|
<li class="relative px-6 py-3">
|
|
<a class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" href="https://pan.furrybox.cn/">
|
|
<svg class="w-5 h-5" aria-hidden="true" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewBox="0 0 24 24" stroke="currentColor">
|
|
<path d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z"></path>
|
|
<path d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"></path>
|
|
</svg>
|
|
<span class="ml-4">免费网盘</span>
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
<ul>
|
|
|
|
</ul>
|
|
|
|
</aside>
|
|
<div class="flex flex-col flex-1 w-full">
|
|
<header class="z-10 py-4 bg-white shadow-md dark:bg-gray-800">
|
|
<div
|
|
class="container flex items-center justify-between h-full px-6 mx-auto text-purple-600 dark:text-purple-300"
|
|
>
|
|
<!-- Mobile hamburger -->
|
|
<button
|
|
class="p-1 mr-5 -ml-1 rounded-md md:hidden focus:outline-none focus:shadow-outline-purple"
|
|
@click="toggleSideMenu"
|
|
aria-label="Menu"
|
|
>
|
|
<svg
|
|
class="w-6 h-6"
|
|
aria-hidden="true"
|
|
fill="currentColor"
|
|
viewBox="0 0 20 20"
|
|
>
|
|
<path
|
|
fill-rule="evenodd"
|
|
d="M3 5a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zM3 10a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zM3 15a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1z"
|
|
clip-rule="evenodd"
|
|
></path>
|
|
</svg>
|
|
</button>
|
|
<!-- Search input -->
|
|
<div class="flex justify-center flex-1 lg:mr-32">
|
|
<div
|
|
class="relative w-full max-w-xl mr-6 focus-within:text-purple-500"
|
|
>
|
|
</div>
|
|
</div>
|
|
<ul class="flex items-center flex-shrink-0 space-x-6">
|
|
<!-- Theme toggler -->
|
|
<li class="flex">
|
|
<button
|
|
class="rounded-md focus:outline-none focus:shadow-outline-purple"
|
|
@click="toggleTheme"
|
|
aria-label="Toggle color mode"
|
|
>
|
|
<template x-if="!dark">
|
|
<svg
|
|
class="w-5 h-5"
|
|
aria-hidden="true"
|
|
fill="currentColor"
|
|
viewBox="0 0 20 20"
|
|
>
|
|
<path
|
|
d="M17.293 13.293A8 8 0 016.707 2.707a8.001 8.001 0 1010.586 10.586z"
|
|
></path>
|
|
</svg>
|
|
</template>
|
|
<template x-if="dark">
|
|
<svg
|
|
class="w-5 h-5"
|
|
aria-hidden="true"
|
|
fill="currentColor"
|
|
viewBox="0 0 20 20"
|
|
>
|
|
<path
|
|
fill-rule="evenodd"
|
|
d="M10 2a1 1 0 011 1v1a1 1 0 11-2 0V3a1 1 0 011-1zm4 8a4 4 0 11-8 0 4 4 0 018 0zm-.464 4.95l.707.707a1 1 0 001.414-1.414l-.707-.707a1 1 0 00-1.414 1.414zm2.12-10.607a1 1 0 010 1.414l-.706.707a1 1 0 11-1.414-1.414l.707-.707a1 1 0 011.414 0zM17 11a1 1 0 100-2h-1a1 1 0 100 2h1zm-7 4a1 1 0 011 1v1a1 1 0 11-2 0v-1a1 1 0 011-1zM5.05 6.464A1 1 0 106.465 5.05l-.708-.707a1 1 0 00-1.414 1.414l.707.707zm1.414 8.486l-.707.707a1 1 0 01-1.414-1.414l.707-.707a1 1 0 011.414 1.414zM4 11a1 1 0 100-2H3a1 1 0 000 2h1z"
|
|
clip-rule="evenodd"
|
|
></path>
|
|
</svg>
|
|
</template>
|
|
</button>
|
|
</li>
|
|
<!-- Notifications menu -->
|
|
<li class="relative">
|
|
<button
|
|
class="relative align-middle rounded-md focus:outline-none focus:shadow-outline-purple"
|
|
@click="toggleNotificationsMenu"
|
|
@keydown.escape="closeNotificationsMenu"
|
|
aria-label="Notifications"
|
|
aria-haspopup="true"
|
|
>
|
|
<svg
|
|
class="w-5 h-5"
|
|
aria-hidden="true"
|
|
fill="currentColor"
|
|
viewBox="0 0 20 20"
|
|
>
|
|
<path
|
|
d="M10 2a6 6 0 00-6 6v3.586l-.707.707A1 1 0 004 14h12a1 1 0 00.707-1.707L16 11.586V8a6 6 0 00-6-6zM10 18a3 3 0 01-3-3h6a3 3 0 01-3 3z"
|
|
></path>
|
|
</svg>
|
|
<!-- Notification badge -->
|
|
<span
|
|
aria-hidden="true"
|
|
class="absolute top-0 right-0 inline-block w-3 h-3 transform translate-x-1 -translate-y-1 bg-red-600 border-2 border-white rounded-full dark:border-gray-800"
|
|
></span>
|
|
</button>
|
|
<template x-if="isNotificationsMenuOpen">
|
|
<ul
|
|
x-transition:leave="transition ease-in duration-150"
|
|
x-transition:leave-start="opacity-100"
|
|
x-transition:leave-end="opacity-0"
|
|
@click.away="closeNotificationsMenu"
|
|
@keydown.escape="closeNotificationsMenu"
|
|
class="absolute right-0 w-56 p-2 mt-2 space-y-2 text-gray-600 bg-white border border-gray-100 rounded-md shadow-md dark:text-gray-300 dark:border-gray-700 dark:bg-gray-700"
|
|
>
|
|
<li class="flex">
|
|
<a
|
|
class="inline-flex items-center justify-between w-full px-2 py-1 text-sm font-semibold transition-colors duration-150 rounded-md hover:bg-gray-100 hover:text-gray-800 dark:hover:bg-gray-800 dark:hover:text-gray-200"
|
|
href="./gg.fx"
|
|
>
|
|
<span>条款</span>
|
|
<span
|
|
class="inline-flex items-center justify-center px-2 py-1 text-xs font-bold leading-none text-red-600 bg-red-100 rounded-full dark:text-red-100 dark:bg-red-600"
|
|
>
|
|
new
|
|
</span>
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
</template>
|
|
</li>
|
|
<!-- Profile menu -->
|
|
<li class="relative">
|
|
<button
|
|
class="align-middle rounded-full focus:shadow-outline-purple focus:outline-none"
|
|
@click="toggleProfileMenu"
|
|
@keydown.escape="closeProfileMenu"
|
|
aria-label="Account"
|
|
aria-haspopup="true"
|
|
>
|
|
<img
|
|
class="object-cover w-8 h-8 rounded-full"
|
|
src="/favicon.ico"
|
|
alt=""
|
|
aria-hidden="true"
|
|
/>
|
|
</button>
|
|
<template x-if="isProfileMenuOpen">
|
|
<ul
|
|
x-transition:leave="transition ease-in duration-150"
|
|
x-transition:leave-start="opacity-100"
|
|
x-transition:leave-end="opacity-0"
|
|
@click.away="closeProfileMenu"
|
|
@keydown.escape="closeProfileMenu"
|
|
class="absolute right-0 w-56 p-2 mt-2 space-y-2 text-gray-600 bg-white border border-gray-100 rounded-md shadow-md dark:border-gray-700 dark:text-gray-300 dark:bg-gray-700"
|
|
aria-label="submenu"
|
|
>
|
|
<li class="flex">
|
|
<a
|
|
class="inline-flex items-center w-full px-2 py-1 text-sm font-semibold transition-colors duration-150 rounded-md hover:bg-gray-100 hover:text-gray-800 dark:hover:bg-gray-800 dark:hover:text-gray-200"
|
|
href="./logout.fx"
|
|
>
|
|
<svg
|
|
class="w-4 h-4 mr-3"
|
|
aria-hidden="true"
|
|
fill="none"
|
|
stroke-linecap="round"
|
|
stroke-linejoin="round"
|
|
stroke-width="2"
|
|
viewBox="0 0 24 24"
|
|
stroke="currentColor"
|
|
>
|
|
<path
|
|
d="M11 16l-4-4m0 0l4-4m-4 4h14m-5 4v1a3 3 0 01-3 3H6a3 3 0 01-3-3V7a3 3 0 013-3h7a3 3 0 013 3v1"
|
|
></path>
|
|
</svg>
|
|
<span>退出登陆</span>
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
</template>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</header>
|
|
|