improve admin details

This commit is contained in:
xiaomlove
2021-04-30 01:27:29 +08:00
parent 164bc80c4e
commit 654419deec
12 changed files with 237 additions and 51 deletions

View File

@@ -662,6 +662,133 @@ INSERT INTO `downloadspeed` VALUES (1,'64kbps'),(2,'128kbps'),(3,'256kbps'),(4,'
/*!40000 ALTER TABLE `downloadspeed` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `exam_progress`
--
DROP TABLE IF EXISTS `exam_progress`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `exam_progress` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`exam_user_id` int(11) NOT NULL,
`exam_id` int(11) NOT NULL,
`uid` int(11) NOT NULL,
`torrent_id` int(11) NOT NULL,
`index` int(11) NOT NULL,
`value` bigint(20) NOT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `exam_progress_created_at_index` (`created_at`),
KEY `exam_progress_exam_user_id_index` (`exam_user_id`),
KEY `exam_progress_exam_id_index` (`exam_id`),
KEY `exam_progress_uid_index` (`uid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `exam_progress`
--
LOCK TABLES `exam_progress` WRITE;
/*!40000 ALTER TABLE `exam_progress` DISABLE KEYS */;
/*!40000 ALTER TABLE `exam_progress` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `exam_users`
--
DROP TABLE IF EXISTS `exam_users`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `exam_users` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`uid` int(11) NOT NULL,
`exam_id` int(11) NOT NULL,
`status` int(11) NOT NULL DEFAULT '0',
`begin` datetime DEFAULT NULL,
`end` datetime DEFAULT NULL,
`progress` text COLLATE utf8mb4_unicode_ci,
`is_done` tinyint(4) NOT NULL DEFAULT '0',
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `exam_users_uid_index` (`uid`),
KEY `exam_users_exam_id_index` (`exam_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `exam_users`
--
LOCK TABLES `exam_users` WRITE;
/*!40000 ALTER TABLE `exam_users` DISABLE KEYS */;
/*!40000 ALTER TABLE `exam_users` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `exams`
--
DROP TABLE IF EXISTS `exams`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `exams` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
`description` text COLLATE utf8mb4_unicode_ci,
`begin` datetime DEFAULT NULL,
`end` datetime DEFAULT NULL,
`filters` text COLLATE utf8mb4_unicode_ci,
`indexes` text COLLATE utf8mb4_unicode_ci NOT NULL,
`status` tinyint(4) NOT NULL DEFAULT '0',
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `exams`
--
LOCK TABLES `exams` WRITE;
/*!40000 ALTER TABLE `exams` DISABLE KEYS */;
/*!40000 ALTER TABLE `exams` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `failed_jobs`
--
DROP TABLE IF EXISTS `failed_jobs`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `failed_jobs` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`uuid` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
`connection` text COLLATE utf8mb4_unicode_ci NOT NULL,
`queue` text COLLATE utf8mb4_unicode_ci NOT NULL,
`payload` longtext COLLATE utf8mb4_unicode_ci NOT NULL,
`exception` longtext COLLATE utf8mb4_unicode_ci NOT NULL,
`failed_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE KEY `failed_jobs_uuid_unique` (`uuid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `failed_jobs`
--
LOCK TABLES `failed_jobs` WRITE;
/*!40000 ALTER TABLE `failed_jobs` DISABLE KEYS */;
/*!40000 ALTER TABLE `failed_jobs` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `faq`
--
@@ -1128,6 +1255,30 @@ LOCK TABLES `messages` WRITE;
/*!40000 ALTER TABLE `messages` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `migrations`
--
DROP TABLE IF EXISTS `migrations`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `migrations` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`migration` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
`batch` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `migrations`
--
LOCK TABLES `migrations` WRITE;
/*!40000 ALTER TABLE `migrations` DISABLE KEYS */;
/*!40000 ALTER TABLE `migrations` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `modpanel`
--
@@ -1309,6 +1460,38 @@ LOCK TABLES `peers` WRITE;
/*!40000 ALTER TABLE `peers` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `personal_access_tokens`
--
DROP TABLE IF EXISTS `personal_access_tokens`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `personal_access_tokens` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`tokenable_type` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
`tokenable_id` bigint(20) unsigned NOT NULL,
`name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
`token` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL,
`abilities` text COLLATE utf8mb4_unicode_ci,
`last_used_at` timestamp NULL DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `personal_access_tokens_token_unique` (`token`),
KEY `personal_access_tokens_tokenable_type_tokenable_id_index` (`tokenable_type`,`tokenable_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `personal_access_tokens`
--
LOCK TABLES `personal_access_tokens` WRITE;
/*!40000 ALTER TABLE `personal_access_tokens` DISABLE KEYS */;
/*!40000 ALTER TABLE `personal_access_tokens` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `pmboxes`
--
@@ -2484,4 +2667,4 @@ UNLOCK TABLES;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
-- Dump completed on 2021-03-18 20:25:39
-- Dump completed on 2021-04-30 1:17:11

View File

@@ -38,9 +38,6 @@ import api from "../utils/api";
export default {
name: 'Header',
props: {
userInfo: {
type: Object
}
},
setup(props, context) {
const router = useRouter()
@@ -54,14 +51,10 @@ export default {
onMounted(async () => {
console.log("Head onMounted!")
console.log(props)
// let userInfo = localGet(userInfoKey);
// if (userInfo) {
// state.userInfo = userInfo;
// } else {
// let res = await api.getUserBase()
// state.userInfo = res.data
// localSet(userInfoKey, res.data)
// }
let userInfo = localGet(userInfoKey);
if (userInfo) {
state.userInfo = userInfo;
}
})
const logout = () => {
api.logout().then(() => {
@@ -74,13 +67,9 @@ export default {
router.back()
}
router.afterEach((to) => {
console.log("Head afterEach to", to)
// console.log("Head afterEach to", to)
const { id } = to.query
state.name = pathMap[to.name]
if (id && to.name == 'add') {
state.name = '编辑商品'
}
state.hasBack = ['level2', 'level3', 'order_detail'].includes(to.name)
})
return {
...toRefs(state),

View File

@@ -1,6 +1,7 @@
import axios from 'axios'
import { ElMessage } from 'element-plus'
import {localGet} from "./index";
import {localGet} from "./index"
import router from '../router/index'
axios.defaults.baseURL = 'http://nexus-php8.tinyhd.net/api'
axios.defaults.withCredentials = true
@@ -9,8 +10,14 @@ axios.defaults.headers['Content-Type'] = 'application/json'
axios.defaults.headers['Accept'] = 'application/json'
axios.defaults.headers['Authorization'] = 'Bearer ' + localGet('token')
// 请求拦截器,内部根据返回值,重新组装,统一管理。
// axios.interceptors.request.use(config => {
// // console.log('before request', config)
// config.headers['Authorization'] = 'Bearer ' + localGet('token')
// return config
// })
axios.interceptors.response.use(res => {
console.log(res)
if (typeof res.data !== 'object') {
ElMessage.error('Server Error 1')
return Promise.reject(res)
@@ -21,7 +28,14 @@ axios.interceptors.response.use(res => {
}
return res.data
}, error => {
ElMessage.error(error.response.data.msg || 'Server Error 2')
let res = error.response;
console.log(res)
if (res.status == 401) {
router.push({
name: 'login'
})
}
ElMessage.error(res.data.msg || 'Server Error 2')
return Promise.reject(error)
})

View File

@@ -122,6 +122,7 @@ export default {
const state = useTable()
onMounted(() => {
console.log('ExamTable onMounted')
fetchTableData()
})
// 获取轮播图列表

View File

@@ -5,15 +5,15 @@
<img class="logo" src="http://demo.nexusphp.org/favicon.ico" />
<div class="name">
<div class="title">NexusPHP</div>
<div class="tips">Management system - v1.6</div>
<div class="tips">Management system</div>
</div>
</div>
<el-form label-position="top" :rules="rules" :model="ruleForm" ref="loginForm" class="login-form">
<el-form-item label="Username" prop="username">
<el-input type="text" v-model.trim="ruleForm.username" autocomplete="off"></el-input>
<el-input type="text" v-model.trim="ruleForm.username" autocomplete="off" @keyup.enter="submitForm"></el-input>
</el-form-item>
<el-form-item label="Password" prop="password">
<el-input type="password" v-model.trim="ruleForm.password" autocomplete="off"></el-input>
<el-input type="password" v-model.trim="ruleForm.password" autocomplete="off" @keyup.enter="submitForm"></el-input>
</el-form-item>
<el-form-item style="margin-top: 50px">
<!-- <div style="color: #333">登录表示您已同意<a>服务条款</a></div>-->
@@ -56,8 +56,12 @@ export default {
loginForm.value.validate((valid) => {
if (valid) {
api.login(state.ruleForm).then(res => {
console.log(res)
localSet('token', res.data.token)
router.push({name: 'dashboard'})
// api.getUserBase().then(res => {
// localSet('userInfo', res.data)
// })
})
} else {
console.log('error submit!!')

View File

@@ -35,8 +35,8 @@
</el-form>
<template #footer>
<span class="dialog-footer">
<el-button @click="visible = false">取 消</el-button>
<el-button type="primary" @click="handleSubmit">确 定</el-button>
<el-button @click="visible = false">Cancel</el-button>
<el-button type="primary" @click="handleSubmit">Save</el-button>
</span>
</template>
</el-dialog>

View File

@@ -118,6 +118,7 @@ export default {
const state = useTable()
onMounted(() => {
console.log('UserTable onMounted');
fetchTableData()
})
const fetchTableData = async () => {

View File

@@ -44,14 +44,12 @@ class Test extends Command
*/
public function handle()
{
$user = User::query()->findOrFail(1);
dd(nexus_trans('exam.checkout_pass_message_content', ['exam_name' => '年中考核', 'begin' => 1, 'end' => 2]));
$rep = new ExamRepository();
// $r = $rep->assignToUser(1, 1);
$r = $rep->addProgress(3, 1, [
$r = $rep->addProgress(1, 1, [
1 => 25*1024*1024*1024,
2 => 55*3600,
3 => 100*1024*1024*1024,
3 => 10*1024*1024*1024,
4 => 1252
]);
dd($r);

View File

@@ -148,8 +148,8 @@ class ExamRepository extends BaseRepository
}
$added = $user->added->toDateTimeString();
$registerTimeBegin = $filters->register_time_range[0] ? Carbon::parse($filters->register_time_range[0])->toDateString() : '';
$registerTimeEnd = $filters->register_time_range[1] ? Carbon::parse($filters->register_time_range[1])->toDateString() : '';
$registerTimeBegin = isset($filters->register_time_range[0]) ? Carbon::parse($filters->register_time_range[0])->toDateString() : '';
$registerTimeEnd = isset($filters->register_time_range[1]) ? Carbon::parse($filters->register_time_range[1])->toDateString() : '';
if (empty($registerTimeBegin)) {
do_log("$logPrefix, exam: {$exam->id} no register_time_begin");
return false;

View File

@@ -5,8 +5,6 @@ $rootpath = dirname(dirname(__DIR__)) . '/';
define('ROOT_PATH', $rootpath);
$isPost = $_SERVER['REQUEST_METHOD'] == 'POST';
require $rootpath . 'vendor/autoload.php';
require $rootpath . 'include/globalfunctions.php';
require $rootpath . 'include/functions.php';
require $rootpath . 'nexus/Database/helpers.php';
$install = new \Nexus\Install\Install();
@@ -216,4 +214,4 @@ if ($currentStep == 5) {
window.location.search="step=<?php echo $currentStep == 1 ? 1 : $currentStep - 1?>"
}
</script>
</html>
</html>

View File

@@ -1,10 +1,10 @@
<?php
return array (
'basic' =>
'basic' =>
array (
'SITENAME' => 'NexusPHP',
),
'main' =>
'main' =>
array (
'site_online' => 'yes',
'max_torrent_size' => '1048576',
@@ -82,7 +82,7 @@
'enable_pt_gen_system' => 'no',
'enable_technical_info' => 'no',
),
'smtp' =>
'smtp' =>
array (
'smtptype' => 'advanced',
'emailnotify' => 'no',
@@ -94,7 +94,7 @@
'accountname' => '',
'accountpassword' => '',
),
'security' =>
'security' =>
array (
'securelogin' => 'no',
'securetracker' => 'no',
@@ -114,7 +114,7 @@
'login_secret_deadline' => '2021-02-03 18:55:46',
'login_secret' => '8e19c6a796602bda113fb2f5bc9da2b0',
),
'authority' =>
'authority' =>
array (
'defaultclass' => '1',
'staffmem' => '13',
@@ -162,7 +162,7 @@
'againstoffer' => '1',
'userbar' => '2',
),
'tweak' =>
'tweak' =>
array (
'where' => 'no',
'iplog1' => 'yes',
@@ -179,7 +179,7 @@
'prolinkimg' => 'pic/prolink.png',
'analyticscode' => '',
),
'bonus' =>
'bonus' =>
array (
'donortimes' => '2',
'perseeding' => '1',
@@ -213,7 +213,7 @@
'prolinkpoint' => '1',
'prolinktime' => '600',
),
'account' =>
'account' =>
array (
'neverdelete' => '6',
'neverdeletepacked' => '3',
@@ -264,7 +264,7 @@
'nmdl' => '3072',
'nmprratio' => '4.55',
'nmderatio' => '4.45',
'getInvitesByPromotion' =>
'getInvitesByPromotion' =>
array (
2 => '1',
3 => '0',
@@ -276,7 +276,7 @@
9 => '10',
),
),
'torrent' =>
'torrent' =>
array (
'prorules' => 'no',
'randomhalfleech' => '5',
@@ -307,7 +307,7 @@
'expirethirtypercentleech' => '0',
'minvotes' => '10',
),
'attachment' =>
'attachment' =>
array (
'enableattach' => 'yes',
'classone' => '1',
@@ -340,7 +340,7 @@
'altthumbwidth' => '180',
'altthumbheight' => '135',
),
'advertisement' =>
'advertisement' =>
array (
'enablead' => 'yes',
'enablenoad' => 'yes',
@@ -351,11 +351,11 @@
'bonusnoadtime' => '15',
'adclickbonus' => '0',
),
'code' =>
'code' =>
array (
'mainversion' => 'NexusPHP',
'subversion' => 'v1.6.0-beta4',
'releasedate' => '2021-03-19',
'website' => '<a href="https://nexusphp.org" target="_blank">https://nexusphp.org</a>',
),
);
);

View File

@@ -5,8 +5,6 @@ $rootpath = dirname(dirname(__DIR__)) . '/';
define('ROOT_PATH', $rootpath);
$isPost = $_SERVER['REQUEST_METHOD'] == 'POST';
require $rootpath . 'vendor/autoload.php';
require $rootpath . 'include/globalfunctions.php';
require $rootpath . 'include/functions.php';
require $rootpath . 'nexus/Database/helpers.php';
$update = new \Nexus\Install\Update();
@@ -252,4 +250,4 @@ if ($currentStep == 4) {
window.location.search="step=<?php echo $currentStep == 1 ? 1 : $currentStep - 1?>"
}
</script>
</html>
</html>