Commit fa53c2f7 by 杨昕

媒资第二期第一次提交

parent 9bc4c13e
Pipeline #10667 passed with stages
in 44 seconds
...@@ -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
......
...@@ -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();
...@@ -303,3 +304,30 @@ function generateRandomNum( $len = 32, $md5 = true ) { ...@@ -303,3 +304,30 @@ function generateRandomNum( $len = 32, $md5 = true ) {
} }
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
...@@ -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
...@@ -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');
} }
} }
......
<?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);
}
}
...@@ -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,
]; ];
} }
<?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);
}
}
...@@ -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);
......
...@@ -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);
} }
......
<?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');
});
}
}
...@@ -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_manager','MediaController'); $router->resource('media_model','MediaController');
}); });
} }
......
...@@ -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){
if ($user['name'] == 'offcn' ){
$module = file_get_contents(public_path('module.json')); $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);
} }
} }
...@@ -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());
......
...@@ -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,
......
[{
"id": 2,
"pid": 0,
"name": "权限管理",
"icon": "&#xe623;",
"link": "/privilege",
"slug": "privilege.index",
"description": "",
"show": 1,
"sort": 1,
"key_name": "privilege",
"son": []
}, {
"id": 11,
"pid": 0,
"name": "媒体资源上传",
"icon": "&#xe60d;",
"link": "/manager",
"slug": "manager",
"description": "",
"show": 1,
"sort": 2,
"key_name": "manager_media",
"son": []
}]
\ No newline at end of file
...@@ -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>
......
...@@ -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="iconfont">{!! $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">&#xe697;</i>--}} {{--<i class="iconfont nav_right">&#xe697;</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">&#xe6a7;</i>--}} {{--<i class="iconfont">&#xe6a7;</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,19 +68,43 @@ ...@@ -68,19 +68,43 @@
</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 current_url = window.location.pathname;
var li_arr = $('nav.side-navbar ul.second > li'); var li_arr = $('nav.side-navbar ul > li');
console.log("current_url",current_url);
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)
console.log('url_controller'+i,"{{get_prefix()}}"+"/"+$(li_arr[i]).attr('class'))
if ("{{get_prefix()}}" + "/" + $(li_arr[i]).attr('class') == current_url) { if ("{{get_prefix()}}" + "/" + $(li_arr[i]).attr('class') == current_url) {
...@@ -112,6 +136,12 @@ ...@@ -112,6 +136,12 @@
} }
} }
console.log("1111111111111111",urlexist)
if (!urlexist) { if (!urlexist) {
previous_url = $.cookie('previous_url'); previous_url = $.cookie('previous_url');
...@@ -133,4 +163,14 @@ ...@@ -133,4 +163,14 @@
} }
}
secondSiliderBar();
function redirectTo(url){
var category_id = $.cookie('media_category_id');
window.location.href = url + '?category_id=' +category_id;
}
</script> </script>
<!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>0 </div>
<p>我的待办</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"> <div class="card text-center social-bottom sb-in">
<i class="fa fa-instagram"></i> <i class="fa fa-instagram"></i>
<div>500 +</div> {{--<div>500 +</div>--}}
<p>已发布新闻</p> <p>{{$catg['name']}}</p>
</div> </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
<!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
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment