Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
M
media-resource
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
杨昕
media-resource
Commits
fa53c2f7
Commit
fa53c2f7
authored
Aug 14, 2020
by
杨昕
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
媒资第二期第一次提交
parent
9bc4c13e
Pipeline
#10667
passed with stages
in 44 seconds
Changes
19
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
19 changed files
with
428 additions
and
143 deletions
+428
-143
Handler.php
app/Exceptions/Handler.php
+4
-0
functions.php
app/Helpers/functions.php
+29
-0
IndexController.php
app/Http/Controllers/Web/IndexController.php
+6
-3
LoginController.php
app/Http/Controllers/Web/LoginController.php
+21
-5
PrivilegeController.php
app/Http/Controllers/Web/PrivilegeController.php
+25
-0
Kernel.php
app/Http/Kernel.php
+5
-1
AdminLogin.php
app/Http/Middleware/AdminLogin.php
+31
-0
ApiMiddleware.php
app/Http/Middleware/ApiMiddleware.php
+3
-2
AuthenRoute.php
app/Http/Routes/Web/AuthenRoute.php
+1
-1
ManagerRoute.php
app/Http/Routes/Web/ManagerRoute.php
+22
-0
MediaRoute.php
app/Http/Routes/Web/MediaRoute.php
+1
-1
ModuleModel.php
app/Model/ModuleModel.php
+12
-3
UserModel.php
app/Model/UserModel.php
+22
-7
AppServiceProvider.php
app/Providers/AppServiceProvider.php
+6
-2
media_category.json
public/media_category.json
+26
-0
header.blade.php
resources/views/admin/common/header.blade.php
+1
-1
left.blade.php
resources/views/admin/common/left.blade.php
+81
-41
index.blade.php
resources/views/admin/index.blade.php
+85
-76
list.blade.php
resources/views/admin/privilege/list.blade.php
+47
-0
No files found.
app/Exceptions/Handler.php
View file @
fa53c2f7
...
@@ -56,6 +56,10 @@ class Handler extends ExceptionHandler
...
@@ -56,6 +56,10 @@ class Handler extends ExceptionHandler
$path
=
$request
->
path
();
$path
=
$request
->
path
();
// var_dump($exception->getMessage());
// var_dump($exception->getFile());
// var_dump($exception->getLine());
#检测当前请求是否是api路由
#检测当前请求是否是api路由
if
(
stripos
(
$path
,
'api/'
)
===
0
if
(
stripos
(
$path
,
'api/'
)
===
0
...
...
app/Helpers/functions.php
View file @
fa53c2f7
...
@@ -240,6 +240,7 @@ function regex($value, $rule)
...
@@ -240,6 +240,7 @@ function regex($value, $rule)
function
getAdmin
(){
function
getAdmin
(){
$userStr
=
Session
::
get
(
"user"
);
$userStr
=
Session
::
get
(
"user"
);
if
(
!
$userStr
){
if
(
!
$userStr
){
$user
=
new
stdClass
();
$user
=
new
stdClass
();
...
@@ -302,4 +303,31 @@ function generateRandomNum( $len = 32, $md5 = true ) {
...
@@ -302,4 +303,31 @@ function generateRandomNum( $len = 32, $md5 = true ) {
$token
=
substr
(
$md5token
,
0
,
$len
);
$token
=
substr
(
$md5token
,
0
,
$len
);
}
}
return
$token
;
return
$token
;
}
/**
* 获取rbac统一验权
* @return string
*/
function
getRbac
(){
//https://api.eoffcn.com/demo/get?t=xx&sign=xx&ak=xx
//其中sign=md5(ak=$ak&t=时间戳&sk=$sk)
$rbac
=
getenv
(
'rbac'
)
?
getenv
(
'rbac'
)
:
'http://api.t.eoffcn.com'
;
$rbac_ak
=
getenv
(
'rbac_ak'
)
?
getenv
(
'rbac_ak'
)
:
'12485d7307bf347ee5834f98f5465aa4'
;
$rbac_sk
=
getenv
(
'rbac_sk'
)
?
getenv
(
'rbac_sk'
)
:
'3d279dde16162fcd4e173707d129d036'
;
$time
=
time
();
$sign
=
md5
(
'ak='
.
$rbac_ak
.
'&t='
.
$time
.
'&sk='
.
$rbac_sk
);
$rbac_url
=
$rbac
.
'/rbac/api/ram?t='
.
$time
.
'&sign='
.
$sign
.
'&ak='
.
$rbac_ak
.
'&appid=ec8747abc5dbe8288e64f327a76ac517&uid=admin'
;
return
$rbac_url
;
}
}
\ No newline at end of file
app/Http/Controllers/Web/IndexController.php
View file @
fa53c2f7
...
@@ -10,14 +10,16 @@ namespace App\Http\Controllers\Web;
...
@@ -10,14 +10,16 @@ namespace App\Http\Controllers\Web;
use
App\Http\Controllers\Controller
;
use
App\Http\Controllers\Controller
;
use
App\Model\MediaCategoryModel
;
use
Illuminate\Support\Facades\Auth
;
class
IndexController
extends
Controller
class
IndexController
extends
Controller
{
{
function
index
(){
function
index
(){
$userInfo
=
getAdmin
();
$mediaCatgs
=
MediaCategoryModel
::
catgList
();
$data
[
'catgs'
]
=
$mediaCatgs
;
return
view
(
'admin.index'
,
$data
);
return
view
(
'admin.index'
);
}
}
}
}
\ No newline at end of file
app/Http/Controllers/Web/LoginController.php
View file @
fa53c2f7
...
@@ -13,6 +13,9 @@ use App\Exceptions\ControllerException;
...
@@ -13,6 +13,9 @@ use App\Exceptions\ControllerException;
use
App\Http\Controllers\Controller
;
use
App\Http\Controllers\Controller
;
use
App\Model\UserModel
;
use
App\User
;
use
Illuminate\Support\Facades\Auth
;
use
Illuminate\Support\Facades\Session
;
use
Illuminate\Support\Facades\Session
;
use
Illuminate\Http\Request
;
use
Illuminate\Http\Request
;
...
@@ -37,8 +40,16 @@ class LoginController extends Controller
...
@@ -37,8 +40,16 @@ class LoginController extends Controller
throw
new
ControllerException
(
400
,
'昵称必须填写'
);
throw
new
ControllerException
(
400
,
'昵称必须填写'
);
}
}
$user
=
DB
::
connection
(
'mongodb'
)
//选择使用mongodb
->
collection
(
'users'
)
->
where
(
'name'
,
$request
->
name
)
->
where
(
"user_type"
,
1
)
->
first
();
//$user = DB::connection('mongodb') //选择使用mongodb
//->collection('users')->where('name',$request->name)->where("user_type",1)->first();
$user
=
UserModel
::
where
([
'name'
=>
$request
->
name
,
'user_type'
=>
1
,
])
->
first
();
if
(
!
empty
(
$user
)){
if
(
!
empty
(
$user
)){
...
@@ -58,10 +69,14 @@ class LoginController extends Controller
...
@@ -58,10 +69,14 @@ class LoginController extends Controller
}
}
$id
=
(
$user
[
'_id'
])
->
jsonSerialize
();
//
$id = ($user['_id'])->jsonSerialize();
$user
[
'_id'
]
=
$id
[
'$oid'
];
//
$user['_id'] = $id['$oid'];
Session
::
put
(
"user"
,
json_encode
(
$user
));
// $request->session()->put('user', json_encode($user));
Auth
::
login
(
$user
);
// Session::put("user",json_encode($user));
return
success
(
$user
);
return
success
(
$user
);
}
}
...
@@ -70,6 +85,7 @@ class LoginController extends Controller
...
@@ -70,6 +85,7 @@ class LoginController extends Controller
}
else
{
}
else
{
return
view
(
'admin.login'
);
return
view
(
'admin.login'
);
}
}
}
}
...
...
app/Http/Controllers/Web/PrivilegeController.php
0 → 100644
View file @
fa53c2f7
<?php
/**
* 权限分类管理
*/
namespace
App\Http\Controllers\Web
;
use
App\Http\Controllers\Controller
;
use
Illuminate\Http\Request
;
class
PrivilegeController
extends
Controller
{
/**
* 应用类型列表
* @param String $type_name 应用类型名称
* @return Json $result 响应结果
*/
public
function
index
(
Request
$request
)
{
$url
=
getRbac
();
$data
[
'url'
]
=
$url
;
return
view
(
'admin.privilege.list'
,
$data
);
}
}
app/Http/Kernel.php
View file @
fa53c2f7
...
@@ -31,7 +31,7 @@ class Kernel extends HttpKernel
...
@@ -31,7 +31,7 @@ class Kernel extends HttpKernel
\App\Http\Middleware\EncryptCookies
::
class
,
\App\Http\Middleware\EncryptCookies
::
class
,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse
::
class
,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse
::
class
,
\Illuminate\Session\Middleware\StartSession
::
class
,
\Illuminate\Session\Middleware\StartSession
::
class
,
//
\Illuminate\Session\Middleware\AuthenticateSession::class,
\Illuminate\Session\Middleware\AuthenticateSession
::
class
,
\Illuminate\View\Middleware\ShareErrorsFromSession
::
class
,
\Illuminate\View\Middleware\ShareErrorsFromSession
::
class
,
\App\Http\Middleware\VerifyCsrfToken
::
class
,
\App\Http\Middleware\VerifyCsrfToken
::
class
,
\Illuminate\Routing\Middleware\SubstituteBindings
::
class
,
\Illuminate\Routing\Middleware\SubstituteBindings
::
class
,
...
@@ -61,6 +61,8 @@ class Kernel extends HttpKernel
...
@@ -61,6 +61,8 @@ class Kernel extends HttpKernel
'signed'
=>
\Illuminate\Routing\Middleware\ValidateSignature
::
class
,
'signed'
=>
\Illuminate\Routing\Middleware\ValidateSignature
::
class
,
'throttle'
=>
\Illuminate\Routing\Middleware\ThrottleRequests
::
class
,
'throttle'
=>
\Illuminate\Routing\Middleware\ThrottleRequests
::
class
,
'verified'
=>
\Illuminate\Auth\Middleware\EnsureEmailIsVerified
::
class
,
'verified'
=>
\Illuminate\Auth\Middleware\EnsureEmailIsVerified
::
class
,
'admin.login'
=>
\App\Http\Middleware\AdminLogin
::
class
];
];
/**
/**
...
@@ -77,5 +79,7 @@ class Kernel extends HttpKernel
...
@@ -77,5 +79,7 @@ class Kernel extends HttpKernel
\Illuminate\Session\Middleware\AuthenticateSession
::
class
,
\Illuminate\Session\Middleware\AuthenticateSession
::
class
,
\Illuminate\Routing\Middleware\SubstituteBindings
::
class
,
\Illuminate\Routing\Middleware\SubstituteBindings
::
class
,
\Illuminate\Auth\Middleware\Authorize
::
class
,
\Illuminate\Auth\Middleware\Authorize
::
class
,
];
];
}
}
app/Http/Middleware/AdminLogin.php
0 → 100644
View file @
fa53c2f7
<?php
namespace
App\Http\Middleware
;
use
App\Tool\ToolFunc
;
use
Closure
;
use
Illuminate\Support\Facades\Auth
;
class
AdminLogin
{
use
ToolFunc
;
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public
function
handle
(
$request
,
Closure
$next
)
{
if
(
!
Auth
::
guard
(
'web'
)
->
check
())
{
return
redirect
(
'/web/login'
);
}
if
(
request
()
->
isMethod
(
'DELETE'
)
||
request
()
->
isMethod
(
'PUT'
))
{
self
::
getPutValueHandle
(
$request
);
}
return
$next
(
$request
);
}
}
app/Http/Middleware/ApiMiddleware.php
View file @
fa53c2f7
...
@@ -5,6 +5,7 @@ namespace App\Http\Middleware;
...
@@ -5,6 +5,7 @@ namespace App\Http\Middleware;
use
App\Exceptions\ControllerException
;
use
App\Exceptions\ControllerException
;
use
Closure
;
use
Closure
;
use
Illuminate\Http\Response
;
use
Illuminate\Http\Response
;
use
Illuminate\Support\Facades\Auth
;
use
Illuminate\Support\Facades\Redirect
;
use
Illuminate\Support\Facades\Redirect
;
class
ApiMiddleware
class
ApiMiddleware
...
@@ -29,10 +30,10 @@ class ApiMiddleware
...
@@ -29,10 +30,10 @@ class ApiMiddleware
return
$next
(
$request
);
return
$next
(
$request
);
}
}
$user
=
getAdmin
();
$ajax
=
$request
->
ajax
();
$ajax
=
$request
->
ajax
();
$user
=
Auth
::
user
();
if
(
empty
(
$user
->
name
)){
if
(
empty
(
$user
->
name
)){
if
(
$ajax
){
if
(
$ajax
){
throw
new
ControllerException
(
Response
::
HTTP_UNAUTHORIZED
);
throw
new
ControllerException
(
Response
::
HTTP_UNAUTHORIZED
);
...
...
app/Http/Routes/Web/AuthenRoute.php
View file @
fa53c2f7
...
@@ -19,7 +19,7 @@ class AuthenRoute
...
@@ -19,7 +19,7 @@ class AuthenRoute
if
(
is_subclass_of
(
$this
,
__CLASS__
))
{
if
(
is_subclass_of
(
$this
,
__CLASS__
))
{
#子类调用
#子类调用
Route
::
group
(
Route
::
group
(
[
'prefix'
=>
'web'
,
'middleware'
=>
[
'web'
],
'namespace'
=>
'Web'
],
[
'prefix'
=>
'web'
,
'middleware'
=>
[
'web'
,
'admin.login'
],
'namespace'
=>
'Web'
],
function
(
$router
)
use
(
$callback
)
{
function
(
$router
)
use
(
$callback
)
{
$callback
(
$router
);
$callback
(
$router
);
}
}
...
...
app/Http/Routes/Web/ManagerRoute.php
0 → 100644
View file @
fa53c2f7
<?php
/**
* Created by PhpStorm.
* User: offcn
* Date: 2018/7/17
* Time: 11:21
* 后台管理员路由
*/
namespace
App\Http\Routes\Web
;
use
Illuminate\Contracts\Routing\Registrar
;
class
ManagerRoute
extends
AuthenRoute
{
public
function
map
(
Registrar
$router
,
$callback
)
{
parent
::
map
(
$router
,
function
()
use
(
$router
)
{
$router
->
resource
(
'privilege'
,
'PrivilegeController'
);
});
}
}
app/Http/Routes/Web/MediaRoute.php
View file @
fa53c2f7
...
@@ -14,7 +14,7 @@ class MediaRoute extends AuthenRoute
...
@@ -14,7 +14,7 @@ class MediaRoute extends AuthenRoute
{
{
public
function
map
(
Registrar
$router
,
$callback
){
public
function
map
(
Registrar
$router
,
$callback
){
parent
::
map
(
$router
,
function
()
use
(
$router
){
parent
::
map
(
$router
,
function
()
use
(
$router
){
$router
->
resource
(
'media_m
anager
'
,
'MediaController'
);
$router
->
resource
(
'media_m
odel
'
,
'MediaController'
);
});
});
}
}
...
...
app/Model/ModuleModel.php
View file @
fa53c2f7
...
@@ -3,11 +3,20 @@
...
@@ -3,11 +3,20 @@
namespace
App\Model
;
namespace
App\Model
;
use
Illuminate\Database\Eloquent\Model
;
use
Illuminate\Database\Eloquent\Model
;
use
Illuminate\Support\Facades\Auth
;
use
Illuminate\Support\Facades\DB
;
use
Illuminate\Support\Facades\Session
;
use
Jenssegers\Mongodb\Eloquent\Model
as
Eloquent
;
class
ModuleModel
extends
Model
class
ModuleModel
extends
Eloquent
{
{
public
static
function
getModuleList
(){
public
static
function
getModuleList
(
$user
){
$module
=
file_get_contents
(
public_path
(
'module.json'
));
if
(
$user
[
'name'
]
==
'offcn'
){
$module
=
file_get_contents
(
public_path
(
'module.json'
));
}
else
{
$module
=
file_get_contents
(
public_path
(
'media_category.json'
));
}
return
json_decode
(
$module
,
true
);
return
json_decode
(
$module
,
true
);
}
}
}
}
app/Model/UserModel.php
View file @
fa53c2f7
...
@@ -3,11 +3,11 @@
...
@@ -3,11 +3,11 @@
namespace
App\Model
;
namespace
App\Model
;
use
App\Exceptions\DatabaseException
;
use
App\Exceptions\DatabaseException
;
use
http\Env\Request
;
use
Illuminate\Notifications\Notifiable
;
use
Illuminate\Support\Facades\DB
;
use
Illuminate\Support\Facades\DB
;
use
Jenssegers\Mongodb\
Eloquent\Model
as
Eloquent
;
use
Jenssegers\Mongodb\
Auth\User
as
Authenticatable
;
class
UserModel
extends
Eloquent
class
UserModel
extends
Authenticatable
{
{
/**
/**
* mongodb collection 名字
* mongodb collection 名字
...
@@ -18,11 +18,25 @@ class UserModel extends Eloquent
...
@@ -18,11 +18,25 @@ class UserModel extends Eloquent
protected
$primaryKey
=
'_id'
;
protected
$primaryKey
=
'_id'
;
use
Notifiable
;
protected
$fillable
=
[
'name'
,
'password'
,
];
protected
$hidden
=
[
'password'
,
'remember_token'
,
];
/*
/*
* 获取用户列表
* 获取用户列表
*/
*/
public
static
function
getUserList
(
$request
){
public
static
function
getUserList
(
$request
){
try
{
try
{
$where
=
[];
$where
=
[];
...
@@ -34,10 +48,11 @@ class UserModel extends Eloquent
...
@@ -34,10 +48,11 @@ class UserModel extends Eloquent
->
paginate
(
10
);
->
paginate
(
10
);
foreach
(
$users
as
$user
){
$idArr
=
(
$user
[
'_id'
])
->
jsonSerialize
();
// foreach ( $users as $user){
$user
[
'_id'
]
=
$idArr
[
'$oid'
];
// $idArr = ($user['_id'])->jsonSerialize();
}
// $user['_id'] = $idArr['$oid'];
// }
}
catch
(
\Exception
$exception
){
}
catch
(
\Exception
$exception
){
throw
new
DatabaseException
(
$exception
->
getMessage
());
throw
new
DatabaseException
(
$exception
->
getMessage
());
...
...
app/Providers/AppServiceProvider.php
View file @
fa53c2f7
...
@@ -3,6 +3,9 @@
...
@@ -3,6 +3,9 @@
namespace
App\Providers
;
namespace
App\Providers
;
use
App\Model\ModuleModel
;
use
App\Model\ModuleModel
;
use
Illuminate\Http\Request
;
use
Illuminate\Support\Facades\Auth
;
use
Illuminate\Support\Facades\Session
;
use
Illuminate\Support\ServiceProvider
;
use
Illuminate\Support\ServiceProvider
;
class
AppServiceProvider
extends
ServiceProvider
class
AppServiceProvider
extends
ServiceProvider
...
@@ -25,9 +28,10 @@ class AppServiceProvider extends ServiceProvider
...
@@ -25,9 +28,10 @@ class AppServiceProvider extends ServiceProvider
*/
*/
public
function
boot
()
public
function
boot
()
{
{
view
()
->
composer
(
'*'
,
function
(
$view
)
{
view
()
->
composer
(
'*'
,
function
(
$view
){
$result
=
ModuleModel
::
getModuleList
();
$user
=
Auth
::
user
();
$result
=
ModuleModel
::
getModuleList
(
$user
);
$view
->
with
([
$view
->
with
([
'left'
=>
$result
,
'left'
=>
$result
,
...
...
public/media_category.json
0 → 100644
View file @
fa53c2f7
[{
"id"
:
2
,
"pid"
:
0
,
"name"
:
"权限管理"
,
"icon"
:
""
,
"link"
:
"/privilege"
,
"slug"
:
"privilege.index"
,
"description"
:
""
,
"show"
:
1
,
"sort"
:
1
,
"key_name"
:
"privilege"
,
"son"
:
[]
},
{
"id"
:
11
,
"pid"
:
0
,
"name"
:
"媒体资源上传"
,
"icon"
:
""
,
"link"
:
"/manager"
,
"slug"
:
"manager"
,
"description"
:
""
,
"show"
:
1
,
"sort"
:
2
,
"key_name"
:
"manager_media"
,
"son"
:
[]
}]
\ No newline at end of file
resources/views/admin/common/header.blade.php
View file @
fa53c2f7
...
@@ -106,7 +106,7 @@
...
@@ -106,7 +106,7 @@
<a
rel=
"nofollow"
href=
"#"
class=
"dropdown-item d-flex"
>
<a
rel=
"nofollow"
href=
"#"
class=
"dropdown-item d-flex"
>
<div
class=
"msg-profile"
>
<img
src=
" {{ asset('xadmin/img/avatar-1.jpg')}}"
alt=
"..."
class=
"img-fluid rounded-circle"
></div>
<div
class=
"msg-profile"
>
<img
src=
" {{ asset('xadmin/img/avatar-1.jpg')}}"
alt=
"..."
class=
"img-fluid rounded-circle"
></div>
<div
class=
"msg-body"
>
<div
class=
"msg-body"
>
<h3
class=
"h5"
>
{{
getAdmin
()->name}}
</h3>
<h3
class=
"h5"
>
{{
\Illuminate\Support\Facades\Auth::user
()->name}}
</h3>
</div>
</div>
</a>
</a>
<hr>
<hr>
...
...
resources/views/admin/common/left.blade.php
View file @
fa53c2f7
...
@@ -17,9 +17,9 @@
...
@@ -17,9 +17,9 @@
<hr>
<hr>
<!-- Sidebar Navidation Menus-->
<!-- Sidebar Navidation Menus-->
<ul
class=
"list-unstyled first"
>
<ul
class=
"list-unstyled first"
>
<li><a
href=
"/web/admin"
id=
"home-li"
><i
class=
"icon-home"
></i>
首页
</a></li>
<li
class=
""
><a
href=
"/web/admin"
id=
"home-li"
><i
class=
"icon-home"
></i>
首页
</a></li>
@foreach($left as $key => $item)
@foreach($left as $key => $item)
<li
class=
""
>
<li
class=
"
{{parse_custom_str($item['link'])}}
"
>
{{--
<a
href=
"index.blade.php2"
><i
class=
"icon-home"
></i>
Home
</a>
--}}
{{--
<a
href=
"index.blade.php2"
><i
class=
"icon-home"
></i>
Home
</a>
--}}
@if(count($item['son'])>0)
@if(count($item['son'])>0)
...
@@ -35,9 +35,9 @@
...
@@ -35,9 +35,9 @@
@else
@else
<a
href=
"#top{{$key}}"
>
<a
href=
"#top{{$key}}"
onclick=
"redirectTo('{{get_prefix().$item["
link
"]}}')"
>
{{--
<i
class=
"{{$item['icon']}}"
style=
"font-size:20px;"
></i>
--}}
{{--
<i
class=
"{{$item['icon']}}"
style=
"font-size:20px;"
></i>
--}}
<i
class=
"icon
-home"
>
</i>
<i
class=
"icon
font"
>
{!! $item['icon'] !!}
</i>
<cite>
{{$item['name']}}
</cite>
<cite>
{{$item['name']}}
</cite>
{{--
<cite>
{{trans('index.'.$item['key_name'])}}
</cite>
--}}
{{--
<cite>
{{trans('index.'.$item['key_name'])}}
</cite>
--}}
{{--
<i
class=
"iconfont nav_right"
>

</i>
--}}
{{--
<i
class=
"iconfont nav_right"
>

</i>
--}}
...
@@ -49,8 +49,8 @@
...
@@ -49,8 +49,8 @@
<ul
id=
"top{{$key}}"
class=
"second collapse list-unstyled"
>
<ul
id=
"top{{$key}}"
class=
"second collapse list-unstyled"
>
@foreach($item['son'] as $k => $child_item)
@foreach($item['son'] as $k => $child_item)
@if($child_item['show'] == 1)
@if($child_item['show'] == 1)
<li
class=
"{{parse_custom_str($child_item['link'])}}"
>
<li
class=
"{{parse_custom_str($child_item['link'])}}"
onclick=
"redirectTo('{{get_prefix().$child_item["
link
"]}}')"
>
<a
href=
"
{{get_prefix().$child_item['link']}}"
>
<a
href=
"
javascript:;"
>
{{--
<i
class=
"iconfont"
>

</i>
--}}
{{--
<i
class=
"iconfont"
>

</i>
--}}
<cite>
{{$child_item['name']}}
</cite>
<cite>
{{$child_item['name']}}
</cite>
{{--
<cite>
{{ trans('index.'.$child_item['key_name']) }}
</cite>
--}}
{{--
<cite>
{{ trans('index.'.$child_item['key_name']) }}
</cite>
--}}
...
@@ -68,69 +68,109 @@
...
@@ -68,69 +68,109 @@
</ul>
</ul>
</nav>
</nav>
<style>
nav
.side-navbar
ul
a
.choice
{
background
:
linear-gradient
(
to
left
,
#7c8ce4
,
#2196f3
)
!important
;
border-left
:
4px
solid
#7b4397
!important
;
color
:
#fff
!important
;
}
</style>
<script>
<script>
$
(
'nav.side-navbar ul li'
).
removeClass
(
'active'
);
function
secondSiliderBar
()
{
/**
* 处理包含有子类的侧边栏
*/
$
(
'nav.side-navbar > ul li'
).
removeClass
(
'active'
);
/**
* 获取当前页面url控制器路径
* @type {string}
*/
var
current_url
=
window
.
location
.
pathname
;
var
li_arr
=
$
(
'nav.side-navbar ul > li'
);
var
current_url
=
window
.
location
.
pathname
;
console
.
log
(
"current_url"
,
current_url
)
;
var
li_arr
=
$
(
'nav.side-navbar ul.second > li'
);
var
urlexist
=
false
;
var
urlexist
=
false
;
for
(
var
i
=
0
;
i
<
li_arr
.
length
;
i
++
)
{
for
(
var
i
=
0
;
i
<
li_arr
.
length
;
i
++
)
{
//console.log($(li_arr[i]).attr('class'))
console
.
log
(
$
(
li_arr
[
i
]).
attr
(
'class'
))
// console.log('get_prefix()',"{{get_prefix()}}"+$(li_arr[i]).attr('class')+current_url)
if
(
"{{get_prefix()}}"
+
"/"
+
$
(
li_arr
[
i
]).
attr
(
'class'
)
==
current_url
)
{
console
.
log
(
'url_controller'
+
i
,
"{{get_prefix()}}"
+
"/"
+
$
(
li_arr
[
i
]).
attr
(
'class'
))
if
(
"{{get_prefix()}}"
+
"/"
+
$
(
li_arr
[
i
]).
attr
(
'class'
)
==
current_url
)
{
urlexist
=
true
;
$
.
cookie
(
'previous_url'
,
$
(
li_arr
[
i
]).
attr
(
'class'
).
substr
(
$
(
li_arr
[
i
]).
attr
(
'class'
).
lastIndexOf
(
"/"
)
+
1
))
;
urlexist
=
true
;
if
(
urlexist
)
{
$
.
cookie
(
'previous_url'
,
$
(
li_arr
[
i
]).
attr
(
'class'
).
substr
(
$
(
li_arr
[
i
]).
attr
(
'class'
).
lastIndexOf
(
"/"
)
+
1
));
//console.log("$(li_arr[i]).attr('class') parent",$(li_arr[i]).parent().parent().addClass('active'))
if
(
urlexist
)
{
//设置选中侧边栏背景颜色,即ul.first li背景颜色
//console.log("$(li_arr[i]).attr('class') parent",$(li_arr[i]).parent().parent().addClass('active'))
$
(
li_arr
[
i
]).
parent
().
parent
().
addClass
(
'active'
);
//设置选中侧边箭头朝下,即ul.first > a 属性aria-expanded=true
//设置选中侧边栏背景颜色,即ul.first li背景颜色
$
(
li_arr
[
i
]).
parent
().
parent
().
children
(
"a:eq(0)"
).
attr
(
'aria-expanded'
,
true
);
$
(
li_arr
[
i
]).
parent
().
parent
().
addClass
(
'active'
);
//设置选中侧边展开
//设置选中侧边箭头朝下,即ul.first > a 属性aria-expanded=true
$
(
li_arr
[
i
]).
parent
().
addClass
(
'show'
);
$
(
li_arr
[
i
]).
parent
().
parent
().
children
(
"a:eq(0)"
).
attr
(
'aria-expanded'
,
true
);
//设置选择项颜色
//设置选中侧边展开
$
(
li_arr
[
i
]).
children
(
"a:eq(0)"
).
addClass
(
'choice
'
);
$
(
li_arr
[
i
]).
parent
().
addClass
(
'show
'
);
//设置选择项颜色
$
(
li_arr
[
i
]).
children
(
"a:eq(0)"
).
addClass
(
'choice'
);
console
.
log
(
'$(li_arr[i])'
,
$
(
li_arr
[
i
]))
console
.
log
(
'$(li_arr[i])'
,
$
(
li_arr
[
i
]))
}
}
}
}
}
}
if
(
!
urlexist
)
{
previous_url
=
$
.
cookie
(
'previous_url'
);
$
(
'nav.side-navbar ul li.'
+
previous_url
+
''
).
parent
().
parent
().
addClass
(
'active'
);
$
(
'nav.side-navbar ul li.'
+
previous_url
+
''
).
parent
().
parent
().
children
(
"a:eq(0)"
).
attr
(
'aria-expanded'
,
true
);
$
(
'nav.side-navbar ul li.'
+
previous_url
+
''
).
parent
().
addClass
(
'show'
);
$
(
'nav.side-navbar ul li.'
+
previous_url
+
''
).
children
(
"a:eq(0)"
).
addClass
(
'choice'
);
}
if
(
current_url
==
'/web/admin'
)
{
$
(
'a'
).
removeClass
(
'choice'
)
console
.
log
(
"1111111111111111"
,
urlexist
)
$
(
'a'
).
attr
(
'aria-expanded'
,
false
)
$
(
'ul'
).
removeClass
(
'show'
);
if
(
!
urlexist
)
{
$
(
'li'
).
removeClass
(
'active'
);
previous_url
=
$
.
cookie
(
'previous_url'
);
$
(
'nav.side-navbar ul li.'
+
previous_url
+
''
).
parent
().
parent
().
addClass
(
'active'
);
$
(
'nav.side-navbar ul li.'
+
previous_url
+
''
).
parent
().
parent
().
children
(
"a:eq(0)"
).
attr
(
'aria-expanded'
,
true
);
$
(
'nav.side-navbar ul li.'
+
previous_url
+
''
).
parent
().
addClass
(
'show'
);
$
(
'nav.side-navbar ul li.'
+
previous_url
+
''
).
children
(
"a:eq(0)"
).
addClass
(
'choice'
);
}
if
(
current_url
==
'/web/admin'
)
{
$
(
'a'
).
removeClass
(
'choice'
)
$
(
'a'
).
attr
(
'aria-expanded'
,
false
)
$
(
'ul'
).
removeClass
(
'show'
);
$
(
'li'
).
removeClass
(
'active'
);
$
(
'#home-li'
).
addClass
(
'choice'
);
}
}
$
(
'#home-li'
).
addClass
(
'choice'
);
secondSiliderBar
(
);
function
redirectTo
(
url
){
var
category_id
=
$
.
cookie
(
'media_category_id'
);
window
.
location
.
href
=
url
+
'?category_id='
+
category_id
;
}
}
</script>
</script>
resources/views/admin/index.blade.php
View file @
fa53c2f7
<!DOCTYPE html>
<!DOCTYPE html>
<html>
<html>
@include('admin.common.commonMedia')
@include('admin.common.commonMedia')
<body>
<body>
<!--====================================================
<!--====================================================
MAIN NAVBAR
MAIN NAVBAR
======================================================-->
======================================================-->
@include('admin.common.header')
<header
class=
"header"
>
<nav
class=
"navbar navbar-expand-lg "
>
<div
class=
"search-box"
>
<button
class=
"dismiss"
><i
class=
"icon-close"
></i></button>
<form
id=
"searchForm"
action=
"#"
role=
"search"
>
<input
type=
"search"
placeholder=
"Search Now"
class=
"form-control"
>
</form>
</div>
<div
class=
"container-fluid "
>
<div
class=
"navbar-holder d-flex align-items-center justify-content-between"
>
<div
class=
"navbar-header"
>
<a
href=
"/web/admin"
class=
"navbar-brand"
>
<div
class=
"brand-text brand-big hidden-lg-down"
>
<h4>
中公教育-媒资
</h4>
{{--
<img
src=
" {{ asset('xadmin/img/logo-white.png')}}"
alt=
"Logo"
style=
"width: 180px;height: auto;"
class=
"img-fluid"
>
--}}
</div>
<div
class=
"brand-text brand-small"
><img
src=
" {{ asset('xadmin/img/logo-icon.pn')}}g"
alt=
"Logo"
class=
"img-fluid"
></div>
</a>
</div>
</div>
<ul
class=
"nav-menu list-unstyled d-flex flex-md-row align-items-md-center"
>
<li
class=
"nav-item dropdown"
><a
id=
"profile"
class=
"nav-link logout"
data-target=
"#"
href=
"#"
data-toggle=
"dropdown"
aria-haspopup=
"true"
aria-expanded=
"false"
><img
src=
" {{ asset('xadmin/img/avatar-1.jpg')}}"
alt=
"..."
class=
"img-fluid rounded-circle"
style=
"height: 30px; width: 30px;"
></a>
<ul
aria-labelledby=
"profile"
class=
"dropdown-menu profile"
>
<li>
<a
rel=
"nofollow"
href=
"#"
class=
"dropdown-item d-flex"
>
<div
class=
"msg-profile"
>
<img
src=
" {{ asset('xadmin/img/avatar-1.jpg')}}"
alt=
"..."
class=
"img-fluid rounded-circle"
></div>
<div
class=
"msg-body"
>
<h3
class=
"h5"
>
{{\Illuminate\Support\Facades\Auth::user()->name}}
</h3>
</div>
</a>
<hr>
</li>
<li>
<a
rel=
"nofollow"
href=
"#"
class=
"dropdown-item"
>
<div
class=
"notification"
>
<div
class=
"notification-content"
><i
class=
"fa fa-power-off"
></i>
切换店铺
</div>
</div>
</a>
</li>
<li>
<a
rel=
"nofollow"
href=
"/web/logout"
class=
"dropdown-item"
>
<div
class=
"notification"
>
<div
class=
"notification-content"
><i
class=
"fa fa-power-off"
></i>
退出
</div>
</div>
</a>
</li>
</ul>
</li>
</ul>
</div>
</nav>
</header>
<!--====================================================
<!--====================================================
PAGE CONTENT
PAGE CONTENT
...
@@ -15,97 +69,51 @@
...
@@ -15,97 +69,51 @@
<div
class=
"page-content d-flex align-items-stretch"
>
<div
class=
"page-content d-flex align-items-stretch"
>
<!--***** SIDE NAVBAR *****-->
<!--***** SIDE NAVBAR *****-->
@include('admin.common.left')
{{--@include('admin.common.left')--}}
<div
class=
"content-inner"
>
<div
class=
"content-inner"
style=
"width: 100%;"
>
<div
class=
"row"
id=
"report4"
>
<div
class=
"row"
id=
"report4"
>
<div
class=
"col-md-3"
onclick=
"important_task('/web/pending_news')"
>
@foreach($catgs as $catg)
<div
class=
"card text-center social-bottom sb-gp"
>
<div
class=
"col-md-4"
onclick=
"important_task('/web/member','{{$catg["
media_category_id
"]}}')"
>
<i
class=
"fa fa-google-plus"
></i>
<div
class=
"card text-center social-bottom sb-in"
>
<div>
0
</div>
<i
class=
"fa fa-instagram"
></i>
<p>
我的待办
</p>
{{--
<div>
500 +
</div>
--}}
</div>
<p>
{{$catg['name']}}
</p>
</div>
</div>
<div
class=
"col-md-3"
>
<div
class=
"card text-center social-bottom sb-fb"
>
<i
class=
"fa fa-facebook"
></i>
<div>
100 +
</div>
<p>
普通会员
</p>
</div>
</div>
<div
class=
"col-md-3"
>
<div
class=
"card text-center social-bottom sb-tw"
>
<i
class=
"fa fa-twitter"
></i>
<div>
100 +
</div>
<p>
管理员
</p>
</div>
</div>
<div
class=
"col-md-3"
>
<div
class=
"card text-center social-bottom sb-in"
>
<i
class=
"fa fa-instagram"
></i>
<div>
500 +
</div>
<p>
已发布新闻
</p>
</div>
</div>
</div>
@endforeach
</div>
<!--***** REPORT-2 *****-->
<div
class=
"row"
id=
"report2"
>
<div
class=
"col-md-6"
>
<div
class=
"card card-c1"
>
<div
class=
"card-header card-chart"
data-background-color=
"green"
>
<canvas
class=
"ct-chart"
id=
"myChart1"
height=
"190"
></canvas>
</div>
<div
class=
"card-content"
>
<h4
class=
"title"
>
Daily Sales
</h4>
<p
class=
"category"
>
<span
class=
"text-success"
><i
class=
"fa fa-long-arrow-up"
></i>
55%
</span>
increase in today sales.
</p>
</div>
<div
class=
"card-footer"
>
<div
class=
"stats"
>
<i
class=
"fa fa-clock-o"
></i>
updated 4 minutes ago
</div>
</div>
</div>
</div>
<div
class=
"col-md-6"
>
<div
class=
"card card-c1"
>
<div
class=
"card-header card-chart"
data-background-color=
"orange"
>
<canvas
class=
"ct-chart"
id=
"myChart2"
height=
"190"
></canvas>
</div>
<div
class=
"card-content"
>
<h4
class=
"title"
>
Email Subscriptions
</h4>
<p
class=
"category"
>
Last Campaign Performance
</p>
</div>
<div
class=
"card-footer"
>
<div
class=
"stats"
>
<i
class=
"fa fa-clock-o"
></i>
campaign sent 2 days ago
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!--Global Javascript -->
<script
src=
"{{ asset('xadmin/js/popper/popper.min.js')}}"
></script>
@include('admin.common.foot')
<script
src=
"{{ asset('xadmin/js/tether.min.js')}}"
></script>
<script
src=
"{{ asset('xadmin/js/bootstrap.min.js')}}"
></script>
<script
src=
"{{ asset('xadmin/js/jquery.cookie.js')}}"
></script>
<script
src=
"{{ asset('xadmin/js/chart.min.js')}}"
></script>
<script
src=
"{{ asset('xadmin/js/front.js')}}"
></script>
<link
rel=
"stylesheet"
href=
"{{ asset('xadmin/icon/iconfont.css')}}"
>
<!--Core Javascript -->
<!--Core Javascript -->
<script
src=
"{{ asset('xadmin/js/mychart.js')}}"
></script>
<script>
<script>
function
important_task
(
url
){
function
important_task
(
url
,
category_id
){
window
.
location
.
href
=
url
;
$
.
cookie
(
'media_category_id'
,
category_id
)
window
.
location
.
href
=
url
+
'?category_id='
+
category_id
;
}
}
// var mainContent = document.getElementById('mainContent');
// mainContent.src = "http://baidu.com.cn"//嵌套网址
</script>
</script>
</body>
</body>
</html>
</html>
\ No newline at end of file
resources/views/admin/privilege/list.blade.php
0 → 100644
View file @
fa53c2f7
<!DOCTYPE html>
<html>
@include('admin.common.commonMedia')
<body>
<!--====================================================
MAIN NAVBAR
======================================================-->
@include('admin.common.header')
<!--====================================================
PAGE CONTENT
======================================================-->
<div
class=
"page-content d-flex align-items-stretch"
>
<!--***** SIDE NAVBAR *****-->
@include('admin.common.left')
<div
class=
"content-inner chart-cont"
>
<iframe
id=
"mainContent"
width=
"100%"
height=
"100%"
></iframe>
</div>
</div>
<!--Global Javascript -->
@include('admin.common.foot')
<!--Core Javascript -->
<link
rel=
"stylesheet"
href=
"{{ asset('xadmin/extra/jqueryConfirm/css/jquery-confirm.css')}}"
>
<script
src=
"{{ asset('xadmin/extra/jqueryConfirm/js/jquery-confirm.min.js')}}"
></script>
{{--
<link
rel=
"stylesheet"
href=
"{{ asset('xadmin/extra/toast/css/toast.css')}}"
>
--}}
<script>
setTimeout
(
function
()
{
var
mainContent
=
document
.
getElementById
(
'mainContent'
);
mainContent
.
src
=
"{{$url}}"
//嵌套网址
},
1000
)
</script>
</body>
</html>
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment