This commit is contained in:
2021-12-01 13:34:38 +08:00
parent 52f73b3bc3
commit dffa07e4eb
22 changed files with 701 additions and 109 deletions

View File

@@ -25,7 +25,7 @@ class IndexController extends AdminController
$filter->equal('categories.id', '所属分类') $filter->equal('categories.id', '所属分类')
->select(Category::selectOptions(function ($model) { ->select(Category::selectOptions(function ($model) {
return $model->where('status', 1) return $model->where('status', 1)
->whereIn('type', [Category::TYPE_ARTICLE, Category::TYPE_SHOW]); ->whereIn('type', [Category::TYPE_ARTICLE, Category::TYPE_SHOW,Category::TYPE_PERSON]);
}, '所有分类')); }, '所有分类'));
}); });

View File

@@ -81,7 +81,7 @@ class IndexController extends AdminController
$payload .= " [ID:{$branch['id']}] - "; $payload .= " [ID:{$branch['id']}] - ";
$payload .= " <strong>{$branch['title']}</strong> "; $payload .= " <strong>{$branch['title']}</strong> ";
$payload .= " <small>{$branch['type']}</small> "; $payload .= " <small>{$branch['type']}</small> ";
$payload .= " <small style='color:#999'>{$branch['description']}</small>"; $payload .= " <small style='color:#999'>{$branch['template']}</small>";
return $payload; return $payload;
}); });

View File

@@ -0,0 +1,43 @@
<?php
namespace App\Admin\Controllers\Resume;
use App\Models\ResumeGroup;
use Encore\Admin\Controllers\AdminController;
use Encore\Admin\Form;
use Encore\Admin\Grid;
class GroupController extends AdminController
{
protected $title = '科室管理';
public function grid()
{
$grid = new Grid(new ResumeGroup());
$grid->model()->orderBy('id', 'desc');
$grid->filter(function ($filter) {
$filter->column(1 / 2, function ($filter) {
$filter->like('name', '名称');
});
$filter->disableIdFilter();
});
$grid->column('id', '#ID#');
$grid->column('name', '名称');
$grid->column('status', '状态')->switch();
$grid->column('created_at', '创建时间');
return $grid;
}
public function form(): Form
{
$form = new Form(new ResumeGroup);
$form->text('name', '名称')->rules('min:2')->required();
$form->switch('status', '状态')->default(1);
return $form;
}
}

View File

@@ -0,0 +1,88 @@
<?php
namespace App\Admin\Controllers\Resume;
use App\Models\Category;
use App\Models\Resume;
use App\Models\ResumeGroup;
use Encore\Admin\Controllers\AdminController;
use Encore\Admin\Form;
use Encore\Admin\Grid;
class IndexController extends AdminController
{
protected $title = '简历管理';
public function grid()
{
$grid = new Grid(new Resume());
$grid->model()->orderBy('id', 'desc');
$grid->filter(function ($filter) {
$filter->column(1 / 2, function ($filter) {
$filter->like('name', '姓名');
$filter->equal('categories.id', '所属分类')
->select(Category::selectOptions(function ($model) {
return $model->where('status', 1)->whereIn('type', [Category::TYPE_PERSON]);
}, '所有分类'));
});
$filter->disableIdFilter();
});
$grid->column('id', '#ID#');
$grid->column('name', '姓名');
$grid->column('cover', '封面图片')->image('', 100);
$grid->column('category.title', '所属分类');
$grid->column('status', '状态')->switch();
$grid->column('created_at', '创建时间');
return $grid;
}
public function form(): Form
{
$form = new Form(new Resume());
$form->text('name', '姓名')->rules('min:2')->required();
$form->textarea('description', '简介');
$form->image('cover', '封面')
->move('person/'.date('Y/m/d'))
->removable()
->uniqueName()
->required();
$form->select('category_id', '所属分类')
->options(function () {
return Category::where('status', 1)->where('type', Category::TYPE_PERSON)->pluck('title', 'id');
})
->required();
$form->select('group_id', '所属科室')
->options(function () {
return ResumeGroup::where('status', 1)->pluck('name', 'id');
})
->required();
$form->embeds('information', '基本信息', function ($form) {
$form->text('duty', '职务');
$form->text('rank', '职称')->required();
$form->text('education', '学历')->required();
$form->text('mobile', '电话')->required();
$form->text('email', '电子邮件')->required();
$form->text('address', '通讯地址')->required();
});
$form->textarea('direction', '研究方向');
$form->ueditor('content', '简历')->rules('required', ['required' => '简历不能为空']);
$form->ueditor('outcome', '代表成果')->rules('required', ['required' => '代表成果不能为空']);
$form->ueditor('project', '承担科研项目情况')->rules('required', ['required' => '承担科研项目情况不能为空']);
$form->datetime('created_at', '发布时间');
$form->switch('status', '状态')->default(1);
return $form;
}
}

View File

@@ -0,0 +1,12 @@
<?php
use Illuminate\Routing\Router;
Route::group([
'prefix' => config('admin.route.prefix'),
'namespace' => config('admin.route.namespace').'\\Resume',
'middleware' => config('admin.route.middleware'),
], function (Router $router) {
$router->resource('persons', 'IndexController');
$router->resource('groups', 'GroupController');
});

View File

@@ -8,14 +8,15 @@ Route::group([
'prefix' => config('admin.route.prefix'), 'prefix' => config('admin.route.prefix'),
'namespace' => config('admin.route.namespace'), 'namespace' => config('admin.route.namespace'),
'middleware' => config('admin.route.middleware'), 'middleware' => config('admin.route.middleware'),
'as' => config('admin.route.prefix') . '.', 'as' => config('admin.route.prefix').'.',
], function (Router $router) { ], function (Router $router) {
$router->get('/', 'HomeController@index')->name('home'); $router->get('/', 'HomeController@index')->name('home');
}); });
require __DIR__ . '/Routes/article.php'; require __DIR__.'/Routes/article.php';
require __DIR__ . '/Routes/category.php'; require __DIR__.'/Routes/category.php';
require __DIR__ . '/Routes/link.php'; require __DIR__.'/Routes/link.php';
require __DIR__ . '/Routes/advert.php'; require __DIR__.'/Routes/advert.php';
require __DIR__.'/Routes/resume.php';

View File

@@ -3,6 +3,7 @@
use App\Models\Advert; use App\Models\Advert;
use App\Models\Category; use App\Models\Category;
use App\Models\Article; use App\Models\Article;
use App\Models\Resume;
use Encore\Admin\Config\ConfigModel; use Encore\Admin\Config\ConfigModel;
function getConfigList($name, $take = 8) function getConfigList($name, $take = 8)
@@ -41,6 +42,7 @@ function getOneCategory($categoryId, $return = '')
/** /**
* Notes: 获取文章分类详情 * Notes: 获取文章分类详情
*
* @Author: 玄尘 * @Author: 玄尘
* @Date : 2020/9/10 13:21 * @Date : 2020/9/10 13:21
* @param $categoryId * @param $categoryId
@@ -50,12 +52,12 @@ function getOneCategory($categoryId, $return = '')
function getOneArticleBYCate($categoryId, $result = '') function getOneArticleBYCate($categoryId, $result = '')
{ {
$info = Article::latest('sort') $info = Article::latest('sort')
->whereHas('categories', function ($q) use ($categoryId) { ->whereHas('categories', function ($q) use ($categoryId) {
$q->where('id', $categoryId); $q->where('id', $categoryId);
}) })
->latest('sort') ->latest('sort')
->latest('created_at') ->latest('created_at')
->first(); ->first();
if ($info) { if ($info) {
if ($result) { if ($result) {
@@ -67,49 +69,49 @@ function getOneArticleBYCate($categoryId, $result = '')
return ''; return '';
} }
return new Article;
} }
/** /**
* Notes: 获取分类下的文章 * Notes: 获取分类下的文章
*
* @Author: 玄尘 * @Author: 玄尘
* @Date : 2020/9/10 10:05 * @Date: 2021/12/1 13:27
* @param $categoryId * @param $categoryId
* @param int $take * @param int $take
* @param string $mark 显示多少当前分类还是当前分类+子分类 * @param string $mark
* @param bool $hasCover * @param false $hasCover
* @param string $order * @param string $order
* @return \App\Models\Article * @return mixed
*/ */
function getArticlesBYCate($categoryId, $take = 8, $mark = 'one', $hasCover = false, $order = 'desc') function getArticlesBYCate($categoryId, int $take = 8, string $mark = 'one', $hasCover = false, string $order = 'desc')
{ {
if ($mark == 'one') { if ($mark == 'one') {
$articles = Article::where('status', 1) $articles = Article::where('status', 1)
->whereHas('categories', function ($q) use ($categoryId) { ->whereHas('categories', function ($q) use ($categoryId) {
$q->where('id', $categoryId); $q->where('id', $categoryId);
}) })
->latest('sort') ->latest('sort')
->latest('created_at') ->latest('created_at')
->when($hasCover, function ($q) { ->when($hasCover, function ($q) {
$q->whereNotNull('cover'); $q->whereNotNull('cover');
}) })
->take($take) ->take($take)
->get(); ->get();
} else { } else {
$cate = Category::find($categoryId); $cate = Category::find($categoryId);
$ids = $cate->getAllChildrenId(); $ids = $cate->getAllChildrenId();
$articles = Article::where('status', 1) $articles = Article::where('status', 1)
->whereHas('categories', function ($q) use ($ids) { ->whereHas('categories', function ($q) use ($ids) {
$q->whereIn('id', $ids); $q->whereIn('id', $ids);
}) })
->when($hasCover, function ($q) { ->when($hasCover, function ($q) {
$q->whereNotNull('cover'); $q->whereNotNull('cover');
}) })
->latest('sort') ->latest('sort')
->latest('created_at') ->latest('created_at')
->take($take) ->take($take)
->get(); ->get();
} }
return $articles; return $articles;
@@ -119,9 +121,9 @@ function getArticlesBYCate($categoryId, $take = 8, $mark = 'one', $hasCover = fa
function getCateChild($categoryId) function getCateChild($categoryId)
{ {
return Category::where('status', 1) return Category::where('status', 1)
->where('parent_id', $categoryId) ->where('parent_id', $categoryId)
->orderBy('order', 'asc') ->orderBy('order', 'asc')
->get(); ->get();
} }
//获取顶级分类 //获取顶级分类
@@ -140,9 +142,9 @@ function getTopCate($categoryId)
function getOneAdvertByCate($categoryId, $result = '') function getOneAdvertByCate($categoryId, $result = '')
{ {
$info = Advert::where('category_id', $categoryId) $info = Advert::where('category_id', $categoryId)
->latest('sort') ->latest('sort')
->latest() ->latest()
->first(); ->first();
if ($info) { if ($info) {
if ($result) { if ($result) {
return $info->{$result}; return $info->{$result};
@@ -152,50 +154,57 @@ function getOneAdvertByCate($categoryId, $result = '')
} else { } else {
return ''; return '';
} }
return new Advert;
} }
function getAdvertsByCate($categoryId, $take = 8) /**
* Notes: 获取广告
*
* @Author: 玄尘
* @Date: 2021/12/1 13:27
* @param $categoryId
* @param int $take
* @return mixed
*/
function getAdvertsByCate($categoryId, int $take = 8)
{ {
return Advert::where('category_id', $categoryId) return Advert::where('category_id', $categoryId)
->latest('sort') ->latest('sort')
->latest() ->latest()
->take($take) ->take($take)
->get(); ->get();
} }
/** /**
* Notes: 根据分类id 获取文章 * Notes: 根据分类id 获取文章
*
* @Author: 玄尘 * @Author: 玄尘
* @Date : 2021/5/21 9:45 * @Date : 2021/5/21 9:45
* @param int $take * @param int $take
* @param false $hasCover * @param false $hasCover
* @return mixed * @return mixed
*/ */
function getArticlesByCateIds($take = 8, $hasCover = false) function getArticlesByCateIds(int $take = 8, $hasCover = false)
{ {
//分院新闻 媒体报道 科研动态 交流合作 党建文化 专题学习 //分院新闻 媒体报道 科研动态 交流合作 党建文化 专题学习
$ids = [7, 17, 8, 5, 12, 30]; $ids = [7, 17, 8, 5, 12, 30];
$articles = Article::query()->where('status', 1) return Article::query()->where('status', 1)
->whereHas('categories', function ($q) use ($ids) { ->whereHas('categories', function ($q) use ($ids) {
$q->whereIn('id', $ids); $q->whereIn('id', $ids);
}) })
->latest('sort') ->latest('sort')
->latest('created_at') ->latest('created_at')
->when($hasCover, function ($q) { ->when($hasCover, function ($q) {
$q->whereNotNull('cover')->orWhere('cover', '<>', ''); $q->whereNotNull('cover')->orWhere('cover', '<>', '');
}) })
->take($take) ->take($take)
->get(); ->get();
return $articles;
} }
/** /**
* Notes: 获取推荐文章 * Notes: 获取推荐文章
*
* @Author: 玄尘 * @Author: 玄尘
* @Date : 2021/4/16 13:31 * @Date : 2021/4/16 13:31
* @param $postion * @param $postion
@@ -203,12 +212,27 @@ function getArticlesByCateIds($take = 8, $hasCover = false)
*/ */
function getArticlesByPosition($postion) function getArticlesByPosition($postion)
{ {
$articles = Article::ofPosition($postion) return Article::ofPosition($postion)
->latest('sort') ->latest('sort')
->latest('created_at') ->latest('created_at')
->take(5) ->take(5)
->get(); ->get();
}
return $articles;
/**
* Notes: 根据分类获取简历
*
* @Author: 玄尘
* @Date: 2021/12/1 13:28
* @param $category_id
* @param int $take
*/
function getResumesByCate($category_id, $take = 8)
{
return Resume::query()
->where('status', 1)
->where('category_id', $category_id)
->take($take)
->get();
} }

View File

@@ -10,23 +10,30 @@ class CategoryController extends Controller
/** /**
* 显示分类 * 显示分类
*
* @param Category $category [description] * @param Category $category [description]
* @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\View\Factory|\Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector|\Illuminate\View\View [type] [description] * @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\View\Factory|\Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector|\Illuminate\View\View [type] [description]
*/ */
public function index(Category $category) public function index(Category $category)
{ {
if ($category->type == Category::TYPE_SHOW && $category->article_id) { if ($category->type == Category::TYPE_SHOW && $category->article_id) {
return redirect("articles/" . $category->article_id); return redirect("articles/".$category->article_id);
} else { } else {
$template = 'show'; $directory = 'category';
$template = 'show';
if ($category->template) { if ($category->template) {
$template = $category->template; $template = $category->template;
} }
if ($category->type == Category::TYPE_PERSON) {
$directory = 'resume';
}
$articles = $category->relations(Category::TYPE_ARTICLE) $articles = $category->relations(Category::TYPE_ARTICLE)
->where('status', 1) ->where('status', 1)
->latest('sort') ->latest('sort')
->latest('created_at') ->latest('created_at')
->paginate(8); ->paginate(8);
$parent = $category; $parent = $category;
if ($category->childrens->isEmpty() && $category->parent) { if ($category->childrens->isEmpty() && $category->parent) {
@@ -35,7 +42,7 @@ class CategoryController extends Controller
$advert = Advert::where('category_id', 73)->first(); $advert = Advert::where('category_id', 73)->first();
return view('category.' . $template, compact('articles', 'category', 'parent', 'advert')); return view($directory.'.'.$template, compact('articles', 'category', 'parent', 'advert'));
} }
} }

View File

@@ -0,0 +1,33 @@
<?php
namespace App\Http\Controllers;
use App\Models\Advert;
use App\Models\Article;
use App\Models\Resume;
use Illuminate\Http\Request;
class ResumeController extends Controller
{
/**
* Notes: 显示详情
*
* @Author: 玄尘
* @Date: 2021/12/1 10:46
* @param \App\Models\Resume $resume
* @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\View\Factory|\Illuminate\View\View
*/
public function show(Resume $resume)
{
$category = $resume->category;
$parent = $category;
if ($category->childrens->isEmpty() && $category->parent) {
$parent = $category->parent;
}
return view('resume.show', compact('resume', 'category','parent'));
}
}

View File

@@ -14,10 +14,12 @@ class Category extends Model
public const TYPE_SHOW = 'show'; public const TYPE_SHOW = 'show';
public const TYPE_ARTICLE = 'article'; public const TYPE_ARTICLE = 'article';
public const TYPE_ADVERT = 'advert'; public const TYPE_ADVERT = 'advert';
public const TYPE_PERSON = 'person';
public const TYPES = [ public const TYPES = [
self::TYPE_ARTICLE => '文章列表', self::TYPE_ARTICLE => '文章列表',
self::TYPE_SHOW => '文章详情', self::TYPE_SHOW => '文章详情',
self::TYPE_ADVERT => '图片', self::TYPE_ADVERT => '图片',
self::TYPE_PERSON => '简历',
]; ];
public function getLinkAttribute() public function getLinkAttribute()
@@ -27,6 +29,7 @@ class Category extends Model
/** /**
* 关联的数据 * 关联的数据
*
* @return [type] [description] * @return [type] [description]
*/ */
public function relations() public function relations()
@@ -41,6 +44,9 @@ class Category extends Model
case self::TYPE_ADVERT: case self::TYPE_ADVERT:
return $this->hasMany(Advert::class); return $this->hasMany(Advert::class);
break; break;
case self::TYPE_PERSON:
return $this->hasMany(Resume::class);
break;
default: default:
return null; return null;
} }
@@ -63,6 +69,7 @@ class Category extends Model
/** /**
* Notes: 获取当前分类及子分类ID * Notes: 获取当前分类及子分类ID
*
* @Author: <C.Jason> * @Author: <C.Jason>
* @Date : 2020/4/6 3:12 下午 * @Date : 2020/4/6 3:12 下午
* @return array * @return array

65
app/Models/Resume.php Normal file
View File

@@ -0,0 +1,65 @@
<?php
namespace App\Models;
use App\Models\Traits\HasOneCover;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Support\Arr;
class Resume extends Model
{
use HasOneCover;
protected $casts = [
'information' => 'json'
];
/***
* Notes: 所属分类
*
* @Author: 玄尘
* @Date: 2021/12/1 9:57
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo
*/
public function category(): BelongsTo
{
return $this->belongsTo(Category::class);
}
/**
* Notes: 所属科室
*
* @Author: 玄尘
* @Date: 2021/12/1 9:58
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo
*/
public function group(): BelongsTo
{
return $this->belongsTo(ResumeGroup::class);
}
/**
* Notes: 跳转链接
*
* @Author: 玄尘
* @Date: 2021/12/1 13:11
* @return string
*/
public function getLinkAttribute(): string
{
return route('resume.show', $this);
}
/**
* Notes: 获取基础数据
*
* @Author: 玄尘
* @Date: 2021/12/1 13:11
* @param $key
* @param string $default
*/
public function getInformation($key, string $default = '')
{
return Arr::get($this->information, $key, $default);
}
}

View File

@@ -0,0 +1,8 @@
<?php
namespace App\Models;
class ResumeGroup extends Model
{
}

View File

@@ -27,8 +27,11 @@ class AppServiceProvider extends ServiceProvider
public function boot() public function boot()
{ {
$table = config('admin.extensions.config.table', 'admin_config'); $table = config('admin.extensions.config.table', 'admin_config');
if (Schema::hasTable($table)) { if (! $this->app->runningInConsole()) {
Config::load(); if (Schema::hasTable($table)) {
Config::load();
}
} }
} }
} }

View File

@@ -0,0 +1,41 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateResumesTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('resumes', function (Blueprint $table) {
$table->id();
$table->unsignedBigInteger('category_id')->index();
$table->unsignedBigInteger('group_id')->index();
$table->string('name');
$table->string('cover');
$table->json('information')->comment('基本信息');
$table->text('content')->comment('简历');
$table->string('direction')->comment('研究方向');
$table->text('outcome')->comment('代表成果');
$table->text('project')->comment('承担科研项目情况');
$table->boolean('status')->default(1);
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('resumes');
}
}

View File

@@ -0,0 +1,33 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateResumeGroupsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('resume_groups', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->boolean('status')->default(1);
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('resume_groups');
}
}

View File

@@ -0,0 +1,54 @@
@extends('layouts.app')
@section('title', '首页')
@section('content')
<!-- 科学研究 -->
<div class="survey" style="background-image: url(/assets/index/images/studyBack.png);">
<div class="container">
<div class="row">
@include('category.left')
<div class="col-xs-12 col-md-9 secondRight">
<!-- 科研动态 -->
<div class="surveyCont">
<div class="secondTop">
<div class="secondTop-name">
<img src="/assets/index/images/studyIcon_00.png"/>
{{ $category->title }}
</div>
</div>
@if ($articles->isNotEmpty())
<ul class="dateExtend">
@foreach ($articles as $article)
<li>
<a href="{{ $article->link }}" target="_blank">
<div class="ce-img cxtdExtend-img">
<span style="background-image: url({{ $article->cover_path }});"></span>
</div>
<div class="dateExtend-right cxtdExtend-right">
<div class="ce-nowrap indexExtend-ul-name">
{{ $article->title }}
</div>
<div class="ce-nowrap-multi indexExtend-ul-text">
{{ $article->description }}
</div>
</div>
</a>
</li>
@endforeach
</ul>
<!-- 分页 -->
{{ $articles->links('layouts.pagination') }}
@else
<div class="no-searchCont">
<img src="/assets/index/images/org55.png"/>
<span>抱歉,暂无数据</span>
</div>
@endif
</div>
</div>
</div>
</div>
</div>
@endsection

View File

@@ -17,8 +17,8 @@
{{ $category->title }} {{ $category->title }}
</div> </div>
</div> </div>
<ul class="dateExtend"> @if ($articles->isNotEmpty())
@if ($articles->isNotEmpty()) <ul class="dateExtend">
@foreach ($articles as $article) @foreach ($articles as $article)
<li> <li>
<a href="{{ $article->link }}" target="_blank"> <a href="{{ $article->link }}" target="_blank">
@@ -38,13 +38,14 @@
</a> </a>
</li> </li>
@endforeach @endforeach
@endif </ul>
</ul> <!-- 分页 -->
<!-- 分页 -->
@if ($articles->isNotEmpty())
{{ $articles->links('layouts.pagination') }} {{ $articles->links('layouts.pagination') }}
@else
<div class="no-searchCont">
<img src="/assets/index/images/org55.png"/>
<span>抱歉,暂无数据</span>
</div>
@endif @endif
</div> </div>
</div> </div>

View File

@@ -57,10 +57,10 @@
</div> </div>
<div class="swiper-container indexBuild-swiper swiper-container-vertical"> <div class="swiper-container indexBuild-swiper swiper-container-vertical">
<div class="swiper-wrapper"> <div class="swiper-wrapper">
@if (getArticlesBYCate(28,36)->isNotEmpty()) @if (getResumesByCate(28,36)->isNotEmpty())
@foreach (getArticlesBYCate(28,36) as $article) @foreach (getResumesByCate(28,36) as $resume)
<div class="swiper-slide">{{ $article->title }} <div class="swiper-slide">{{ $resume->name }}
<span>{{ $article->description }}</span> <span>{{ $resume->description }}</span>
</div> </div>
@endforeach @endforeach
@endif @endif
@@ -80,22 +80,14 @@
</a> </a>
</div> </div>
<ul class="second-IndexExpert IndexExpertNew" style="margin: 0"> <ul class="second-IndexExpert IndexExpertNew" style="margin: 0">
@if (getArticlesBYCate(29,6)->isNotEmpty()) @if (getResumesByCate(29,6)->isNotEmpty())
@foreach (getArticlesBYCate(29,6) as $article) @foreach (getResumesByCate(29,6) as $resume)
<li> <li>
<a href="{{ $article->link }}" target="_blank"> <a href="{{ $resume->link }}" target="_blank">
<div class="IndexExpertNew-li"> <div class="IndexExpertNew-li">
<span class="IndexExpertNew-tips">客座教授</span> <span class="IndexExpertNew-tips">客座教授</span>
<div class="IndexExpertNew-title">{{ $article->title }}</div> <div class="IndexExpertNew-title">{{ $resume->name }}</div>
</div> </div>
<!-- <div class="ce-img IndexExpert-img">
<span style="background-image: url({{ $article->cover_path }});"></span>
</div>
<div class="IndexExpert-name">
<div class="IndexExpert-title">
<span>{{ $article->title }}</span>{{ $article->description }}
</div>
</div> -->
</a> </a>
</li> </li>
@endforeach @endforeach

View File

@@ -0,0 +1,82 @@
@extends('layouts.app')
@section('title', '详情')
@section('content')
<!-- 科学研究 -->
<div class="survey" style="background-image: url(/assets/index/images/studyBack.png);">
<div class="container">
<div class="row">
@include('category.left')
<div class="col-xs-12 col-md-9 secondRight">
<!-- 科研动态 -->
<div class="surveyCont">
<div class="secondTop">
<div class="secondTop-name">
<img src="/assets/index/images/studyIcon_00.png"/>
{{ $category->title }}
</div>
</div>
<div class="tdrcTop">
<div class="tdrcBrief">
<div class="tdrcBrief-name"><span>{{ $resume->name }}</span></div>
<ul class="tdrcBrief-label">
@if($resume->getInformation('duty'))
<li>
<span>职务:</span>{{ $resume->getInformation('duty') }}
</li>
@endif
<li>
<span>职称:</span>{{ $resume->getInformation('rank') }}
</li>
<li>
<span>学历:</span>{{ $resume->getInformation('education') }}
</li>
<li>
<span>电话:</span>{{ $resume->getInformation('mobile') }}
</li>
<li>
<span>电子邮件:</span>{{ $resume->getInformation('email') }}
</li>
<li>
<span>通讯地址:</span>{{ $resume->getInformation('address') }}
</li>
</ul>
</div>
<div class="ce-img tdrcImg">
<span style="background-image: url({{ $resume->cover_path }});"></span>
</div>
</div>
<div class="tdrcCont">
<div class="tdrcCont-label">
<div class="tdrcCont-title">简历</div>
<div class="tdrcCont-text">
{!! $resume->content !!}
</div>
</div>
<div class="tdrcCont-label">
<div class="tdrcCont-title">研究方向</div>
<div class="tdrcCont-text">
{{ $resume->direction }}
</div>
</div>
<div class="tdrcCont-label">
<div class="tdrcCont-title">代表成果</div>
<div class="tdrcCont-text">
{!! $resume->outcome !!}
</div>
</div>
<div class="tdrcCont-label">
<div class="tdrcCont-title">承担科研项目情况</div>
<div class="tdrcCont-text">
{!! $resume->project !!}
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
@endsection

View File

@@ -0,0 +1,46 @@
@extends('layouts.app')
@section('title', '首页')
@section('content')
<!-- 科学研究 -->
<div class="survey" style="background-image: url(/assets/index/images/studyBack.png);">
<div class="container">
<div class="row">
@include('category.left')
<div class="col-xs-12 col-md-9 secondRight">
<!-- 科研动态 -->
<div class="surveyCont">
<div class="secondTop">
<div class="secondTop-name">
<img src="/assets/index/images/studyIcon_00.png"/>
{{ $category->title }}
</div>
</div>
@if ($articles->isNotEmpty())
@foreach($articles->groupBy('group_id') as $resumes)
<div class="tdrcList">
<div class="tdrcList-title">
{{ $resumes->first()->group->name }}
</div>
<ul class="row tdrcList-label">
@foreach($resumes as $resume)
<li class="col-xs-6 col-md-3">
<a href="{{ $resume->link }}">{{ $resume->name }}</a>
</li>
@endforeach
</ul>
</div>
@endforeach
@else
<div class="no-searchCont">
<img src="/assets/index/images/org55.png"/>
<span>抱歉,暂无数据</span>
</div>
@endif
</div>
</div>
</div>
</div>
</div>
@endsection

View File

@@ -0,0 +1,49 @@
@extends('layouts.app')
@section('title', '首页')
@section('content')
<!-- 科学研究 -->
<div class="survey" style="background-image: url(/assets/index/images/studyBack.png);">
<div class="container">
<div class="row">
@include('category.left')
<div class="col-xs-12 col-md-9 secondRight">
<!-- 科研动态 -->
<div class="surveyCont">
<div class="secondTop">
<div class="secondTop-name">
<img src="/assets/index/images/studyIcon_00.png"/>
{{ $category->title }}
</div>
</div>
@if ($articles->isNotEmpty())
<ul class="indexExtend-ul studyExtend">
@foreach ($articles as $article)
<li>
<a href="{{ $article->link }}" target="_blank">
<div class="ce-nowrap indexExtend-ul-name">
{{ $article->name }}
</div>
<div class="ce-nowrap-multi indexExtend-ul-text">
{{ $article->description }}
</div>
</a>
</li>
@endforeach
</ul>
<!-- 分页 -->
{{ $articles->links('layouts.pagination') }}
@else
<div class="no-searchCont">
<img src="/assets/index/images/org55.png"/>
<span>抱歉,暂无数据</span>
</div>
@endif
</div>
</div>
</div>
</div>
</div>
@endsection

View File

@@ -16,7 +16,10 @@ Route::get('search', 'ArticleController@search')->name('article.search');
Route::get('category/{category}', 'CategoryController@index')->name('category.show'); Route::get('category/{category}', 'CategoryController@index')->name('category.show');
Route::get('resume/{resume}', 'ResumeController@show')->name('resume.show');
//以下为导入数据 //以下为导入数据
Route::get('test', 'TestController@index');
Route::get('test/set_category', 'TestController@set_category'); Route::get('test/set_category', 'TestController@set_category');
Route::get('test/set_article', 'TestController@set_article'); Route::get('test/set_article', 'TestController@set_article');
Route::get('test/set_cate_article', 'TestController@setCateArticle'); Route::get('test/set_cate_article', 'TestController@setCateArticle');