diff --git a/app/Admin/Controllers/Advert/IndexController.php b/app/Admin/Controllers/Advert/IndexController.php index 6e6f79b..812a577 100644 --- a/app/Admin/Controllers/Advert/IndexController.php +++ b/app/Admin/Controllers/Advert/IndexController.php @@ -24,7 +24,7 @@ class IndexController extends AdminController $grid->filter(function ($filter) { $filter->column(1 / 2, function ($filter) { $filter->like('title', '图片名称'); - $filter->like('category.id', '分类名称')->select(Category::selectOptions(function ($model) { + $filter->equal('category.id', '分类名称')->select(Category::selectOptions(function ($model) { return $model->where('status', 1)->where('type', Category::TYPE_ADVERT); }, '所有分类')); }); @@ -51,29 +51,29 @@ class IndexController extends AdminController $form->text('title', '图片名称')->required(); $form->select('category_id', '所属分类') - ->options(Category::selectOptions(function ($model) { - return $model->where('status', 1)->where('type', Category::TYPE_ADVERT); - }, '选择分类')) - ->rules('required|min:1', [ - 'required' => '必须选择所属分类', - 'min' => '必须选择所属分类', - ]); + ->options(Category::selectOptions(function ($model) { + return $model->where('status', 1)->where('type', Category::TYPE_ADVERT); + }, '选择分类')) + ->rules('required|min:1', [ + 'required' => '必须选择所属分类', + 'min' => '必须选择所属分类', + ]); $form->image('cover', '封面图片') - ->rules(function ($form) { - if ($form->model()->cover != []) { - return 'nullable|image'; - } else { - return 'required'; - } - }) - ->move('images/' . date('Y/m/d')) - ->removable() - ->uniqueName(); + ->rules(function ($form) { + if ($form->model()->cover != []) { + return 'nullable|image'; + } else { + return 'required'; + } + }) + ->move('images/' . date('Y/m/d')) + ->removable() + ->uniqueName(); $form->text('url', '链接地址'); $form->number('sort', '排序') - ->default(1) - ->required() - ->help('数字越大越靠前'); + ->default(1) + ->required() + ->help('数字越大越靠前'); return $form; } diff --git a/app/Admin/Controllers/Article/ArticleController.php b/app/Admin/Controllers/Article/IndexController.php similarity index 56% rename from app/Admin/Controllers/Article/ArticleController.php rename to app/Admin/Controllers/Article/IndexController.php index d86ba30..26d035e 100644 --- a/app/Admin/Controllers/Article/ArticleController.php +++ b/app/Admin/Controllers/Article/IndexController.php @@ -8,8 +8,9 @@ use Encore\Admin\Controllers\AdminController; use Encore\Admin\Form; use Encore\Admin\Grid; -class ArticleController extends AdminController +class IndexController extends AdminController { + protected $title = '内容管理'; public function grid() @@ -19,7 +20,7 @@ class ArticleController extends AdminController $grid->filter(function ($filter) { $filter->column(1 / 2, function ($filter) { $filter->like('title', '文章标题'); - $filter->like('category.id', '所属分类')->select(Category::selectOptions(function ($model) { + $filter->equal('category.id', '所属分类')->select(Category::selectOptions(function ($model) { return $model->where('status', 1)->whereIn('type', [Category::TYPE_ARTICLE, Category::TYPE_SHOW]); }, '所有分类')); }); @@ -32,6 +33,10 @@ class ArticleController extends AdminController $grid->column('category.title', '所属分类'); $grid->column('title', '文章标题'); $grid->column('sort', '序号'); + $grid->status('状态')->switch([ + 'on' => ['value' => 1, 'text' => '正常', 'color' => 'primary'], + 'off' => ['value' => 0, 'text' => '关闭', 'color' => 'danger'], + ]); $grid->column('created_at', '创建时间'); return $grid; @@ -43,21 +48,30 @@ class ArticleController extends AdminController $form->text('title', '文章标题')->rules('min:2'); $form->select('category_id', '所属分类') - ->options(Category::selectOptions(function ($model) { - return $model->whereIn('type', [Category::TYPE_ARTICLE, Category::TYPE_SHOW]); - }, '选择分类')) - ->rules('required|min:1', [ - 'required' => '必须选择所属分类', - 'min' => '必须选择所属分类', - ]); - $form->text('keywords', '关键词')->rules('nullable'); + ->options(Category::selectOptions(function ($model) { + return $model->whereIn('type', [Category::TYPE_ARTICLE, Category::TYPE_SHOW]); + }, '选择分类')) + ->when('in', [3, 29], function (Form $form) { + $form->text('working', '工龄'); + $form->text('job', '岗位'); + }) + ->when('in', [56], function (Form $form) { + $form->text('url', '跳转地址'); + }) + ->rules('required|min:1', [ + 'required' => '必须选择所属分类', + 'min' => '必须选择所属分类', + ]); + // $form->text('keywords', '关键词')->rules('nullable'); $form->textarea('description', '内容简介')->rules('max:350'); $form->image('cover', '封面') - ->move('images/' . date('Y/m/d')) - ->removable() - ->uniqueName(); + ->move('images/' . date('Y/m/d')) + ->removable() + ->uniqueName(); + $form->ueditor('content', '文章内容')->rules('required', ['required' => '详情不能为空']); $form->number('sort', '序号')->default(0)->rules('required', ['required' => '序号必须填写'])->help('倒序优先'); + $form->switch('status', '状态')->default(1); return $form; } diff --git a/app/Admin/Controllers/Article/PatentController.php b/app/Admin/Controllers/Article/PatentController.php new file mode 100644 index 0000000..af14be2 --- /dev/null +++ b/app/Admin/Controllers/Article/PatentController.php @@ -0,0 +1,83 @@ +model()->orderBy('id', 'desc'); + + $grid->filter(function ($filter) { + $filter->column(1 / 2, function ($filter) { + $filter->like('title', '专利/论文题目'); + $filter->equal('category_id', '所属分类') + ->select(Category::where('type', Category::TYPE_PATENT)->pluck('title', 'id')); + $filter->equal('type', '类别') + ->select(Patent::TYPES); + }); + + $filter->column(1 / 2, function ($filter) { + $filter->like('number', '专利号'); + $filter->like('nickname', '第一发明人/论文作者'); + }); + + $filter->disableIdFilter(); + }); + + $grid->column('id', '#ID#'); + $grid->column('type', '类别')->using(Patent::TYPES)->label(); + $grid->column('title', '专利/论文题目'); + $grid->column('number', '专利号'); + $grid->column('category.title', '所属分类'); + $grid->column('nickname', '第一发明人/论文作者'); + $grid->column('created_at', '创建时间'); + + return $grid; + } + + public function form() + { + $form = new Form(new Patent); + + $form->text('title', '题目')->required(); + $form->select('type', '类别') + ->options(Patent::TYPES) + ->when('patent', function (Form $form) { + $form->select('category_id', '专利类别') + ->options(Category::selectOptions(function ($model) { + return $model->whereIn('type', [Category::TYPE_PATENT]); + }, '专利类别')); + $form->text('number', '专利号'); + + }) + ->when('paper', function (Form $form) { + $form->text('publication', '刊物名称'); + }) + ->required(); + + $form->text('nickname', '第一发明人/论文作者')->required(); + + $form->image('cover', '封面') + ->move('images/' . date('Y/m/d')) + ->removable() + ->uniqueName(); + + $form->ueditor('content', '详情')->rules('required', ['required' => '详情不能为空']); + $form->number('sort', '序号')->default(0)->required()->help('倒序优先'); + $form->switch('status', '显示')->states()->default(1); + + return $form; + } + +} diff --git a/app/Admin/Controllers/Article/PictureController.php b/app/Admin/Controllers/Article/PictureController.php deleted file mode 100644 index bd88768..0000000 --- a/app/Admin/Controllers/Article/PictureController.php +++ /dev/null @@ -1,54 +0,0 @@ -model()->orderBy('id', 'desc'); - $grid->filter(function ($filter) { - $filter->column(1 / 2, function ($filter) { - $filter->like('title', '文章标题'); - }); - - $filter->disableIdFilter(); - }); - - $grid->column('id', '#ID#'); - $grid->column('cover')->display(function () { - return $this->one_picture_path; - })->image('', 100); - $grid->column('category.title', '所属分类'); - $grid->column('title', '文章标题'); - $grid->column('sort', '序号'); - $grid->column('created_at', '创建时间'); - - return $grid; - } - - public function form() - { - $form = new Form(new ArticlePicture); - - $form->text('title', '文章标题')->rules('min:2'); - $form->hidden('category_id')->value(6); - $form->multipleImage('pictures', '封面') - ->move('images/' . date('Y/m/d')) - ->removable() - ->uniqueName(); - - $form->number('sort', '序号')->default(0)->rules('required', ['required' => '序号必须填写'])->help('倒序优先'); - - return $form; - } - -} diff --git a/app/Admin/Controllers/Category/IndexController.php b/app/Admin/Controllers/Category/IndexController.php index 9300e42..8b9e6d3 100644 --- a/app/Admin/Controllers/Category/IndexController.php +++ b/app/Admin/Controllers/Category/IndexController.php @@ -31,32 +31,31 @@ class IndexController extends AdminController $form = new WidgetsForm(); $form->select('parent_id', '上级分类') - ->options(Category::selectOptions(function ($model) { - return $model->where('status', 1); - }, '一级分类')) - ; + ->options(Category::selectOptions(function ($model) { + return $model->where('status', 1); + }, '一级分类')); $form->text('title', '分类名称')->rules('required'); $form->select('type', '分类类型') - ->options(Category::TYPES) - ->when('show', function (WidgetsForm $form) { - $form->select('article_id', '关联文章') - ->options(function ($option, $info) { - return Article::whereHas('category', function ($q) { - $q->where('type', 'show'); - })->pluck('title', 'id'); - })->help('当分类类型是文章详情的时候需要选择关联文章'); - }) - ->required(); + ->options(Category::TYPES) + ->when('show', function (WidgetsForm $form) { + $form->select('article_id', '关联文章') + ->options(function ($option, $info) { + return Article::whereHas('category', function ($q) { + $q->where('type', 'show'); + })->pluck('title', 'id'); + })->help('当分类类型是文章详情的时候需要选择关联文章'); + }) + ->required(); $form->textarea('description', '分类简介') - ->rules('nullable'); + ->rules('nullable'); $form->text('keywords', '关键词')->rules('nullable'); $form->image('cover', 'Logo') - ->move('images/' . date('Y/m/d')) - ->removable() - ->uniqueName(); + ->move('images/' . date('Y/m/d')) + ->removable() + ->uniqueName(); $form->number('order', '排序')->default(0); - $form->switch('top_show', '顶部导航显示')->states()->default(1); + $form->switch('top_show', '顶部导航显示')->states()->default(0); $form->switch('status', '显示')->states()->default(1); $form->action(admin_url('categories')); @@ -102,22 +101,22 @@ class IndexController extends AdminController }, '一级分类')); $form->text('title', '分类名称')->rules('required'); $form->select('type', '分类类型') - ->options(Category::TYPES) - ->when('show', function (Form $form) { - $form->select('article_id', '关联文章') - ->options(function ($option, $info) { - return Article::whereHas('category', function ($q) { - $q->where('type', 'show'); - })->pluck('title', 'id'); - })->help('当分类类型是文章详情的时候需要选择关联文章'); - }) - ->required(); + ->options(Category::TYPES) + ->when('show', function (Form $form) { + $form->select('article_id', '关联文章') + ->options(function ($option, $info) { + return Article::whereHas('category', function ($q) { + $q->where('type', 'show'); + })->pluck('title', 'id'); + })->help('当分类类型是文章详情的时候需要选择关联文章'); + }) + ->required(); $form->textarea('description', '分类简介')->rows(4)->rules('nullable'); $form->text('keywords', '关键词')->rules('nullable'); $form->image('cover', 'Logo') - ->move('images/' . date('Y/m/d')) - ->removable() - ->uniqueName(); + ->move('images/' . date('Y/m/d')) + ->removable() + ->uniqueName(); $form->number('order', '排序')->default(0)->help('正序优先'); $form->switch('status', '显示')->states()->default(1); @@ -126,14 +125,14 @@ class IndexController extends AdminController $form->saving(function (Form $form) { if (request()->has('title')) { - if (request()->type == Category::TYPE_SHOW && empty(request()->article_id)) { - $error = new MessageBag([ - 'title' => '错误', - 'message' => '文章类型是文章详情的时候需要选择关联文章', - ]); - - return back()->withInput()->with(compact('error')); - } + // if (request()->type == Category::TYPE_SHOW && empty(request()->article_id)) { + // $error = new MessageBag([ + // 'title' => '错误', + // 'message' => '文章类型是文章详情的时候需要选择关联文章', + // ]); + // + // return back()->withInput()->with(compact('error')); + // } } }); diff --git a/app/Admin/Routes/article.php b/app/Admin/Routes/article.php index b94ce38..786ecb1 100644 --- a/app/Admin/Routes/article.php +++ b/app/Admin/Routes/article.php @@ -7,6 +7,6 @@ Route::group([ 'namespace' => config('admin.route.namespace') . '\\Article', 'middleware' => config('admin.route.middleware'), ], function (Router $router) { - $router->resource('articles', 'ArticleController'); - $router->resource('pictures', 'PictureController'); + $router->resource('articles', 'IndexController'); + $router->resource('patents', 'PatentController'); }); diff --git a/app/Helpers/function.php b/app/Helpers/function.php new file mode 100644 index 0000000..3e2749e --- /dev/null +++ b/app/Helpers/function.php @@ -0,0 +1,96 @@ +{$return}; + } + + return $category; + } + + return new Category; +} + +/** + * Notes: 获取文章分类详情 + * @Author: 玄尘 + * @Date : 2020/9/10 13:21 + * @param $categoryId + * @param string $result + * @return \App\Models\Article + */ +function getOneArticleBYCate($categoryId, $result = '') +{ + $info = Article::where('category_id', $categoryId)->latest('sort')->latest()->first(); + + if ($info) { + if ($result) { + return $info->{$result}; + } + + return $info; + } else { + return ''; + } + + return new Article; +} + +/** + * Notes: 获取分类下的文章 + * @Author: 玄尘 + * @Date : 2020/9/10 10:05 + * @param $categoryId + * @param $take + * @return \App\Models\Article + */ +function getArticlesBYCate($categoryId, $take) +{ + $articles = Article::where('category_id', $categoryId) + ->where('status', 1) + ->latest('sort') + ->latest() + ->take($take) + ->get(); + + return $articles; +} + +//获取子分类 +function getCateChild($categoryId) +{ + return Category::where('status', 1) + ->where('parent_id', $categoryId) + ->orderBy('order', 'asc') + ->get(); +} + +//获取顶级分类 +function getTopCate($categoryId) +{ + $parent = Category::find($categoryId); + + while ($parent->parent_id != 0) { + $parent = $parent->parent; + } + + return $parent; +} + +//获取专利和论文 +function getPatent($take, $type = '') +{ + return Patent::where('status', 1) + ->when($type, function ($q) use ($type) { + $q->where('type', $type); + }) + ->get(); + +} diff --git a/app/Http/Controllers/ArticleController.php b/app/Http/Controllers/ArticleController.php index 6cf1bee..f8fe92e 100644 --- a/app/Http/Controllers/ArticleController.php +++ b/app/Http/Controllers/ArticleController.php @@ -3,43 +3,49 @@ namespace App\Http\Controllers; use App\Models\Article; -use App\Models\ArticlePicture; use App\Models\Category; +use Illuminate\Http\Request; class ArticleController extends Controller { + + //文章列表 public function index(Category $category) { $articles = Article::where('category_id', $category->id) - ->orderBy('created_at', 'desc') - ->paginate(5); + ->orderBy('created_at', 'desc') + ->paginate(5); return view('articles.index', compact('articles', 'category')); } + //显示详情 public function show(Article $article) { + if ($article->url) { + return redirect($article->url); + } + $category = $article->category; - return view('articles.show', compact('article', 'category')); + + $next = Article::where('id', '>', $article->id)->where('status', 1)->first(); + $parent = getTopCate($category->id); + + return view('articles.show', compact('article', 'category', 'next', 'parent')); } - public function category(Category $category) + //搜索 + public function search(Request $request) { - $article = Article::where('category_id', $category->id)->first(); + $title = $request->title; + $articles = Article::where('status', 1) + ->when($title, function ($q) use ($title) { + $q->where('title', 'like', "%{$title}%"); + }) + ->paginate(); + + return view('articles.search', compact('articles')); - return view('articles.show', compact('article')); } - public function picture(Category $category) - { - $articles = ArticlePicture::where('category_id', $category->id) - ->orderBy('created_at', 'desc') - ->paginate(12); - return view('articles.picture', compact('articles', 'category')); - } - - public function picshow(ArticlePicture $article) - { - return view('articles.picshow', compact('article')); - } } diff --git a/app/Http/Controllers/CategoryController.php b/app/Http/Controllers/CategoryController.php index 0c40426..fdcd6ca 100644 --- a/app/Http/Controllers/CategoryController.php +++ b/app/Http/Controllers/CategoryController.php @@ -2,20 +2,38 @@ namespace App\Http\Controllers; +use App\Models\Article; use App\Models\Category; class CategoryController extends Controller { - /** - * Notes: 分类下的文章 - * @Author: 玄尘 - * @Date : 2020/6/1 9:19 - * @param \App\Models\Category $category - */ - public function articles(Category $category) + //显示分类 + public function show(Category $category) { + if ($category->type == Category::TYPE_SHOW) { + if ($category->relations) { + return route('article.show', $category->relations); + } + } + $parent = getTopCate($category->id); + + $template = array_flip(config('haai.category')); + if (isset($template[$category->id])) { + return view('category.' . $template[$category->id], compact('category', 'parent')); + } + + return redirect(route('category.list', $category)); } + //显示文章列表 + public function list(Category $category) + { + $articles = Article::where('category_id', $category->id)->where('status', 1)->paginate(); + $parent = getTopCate($category->id); + + return view('category.list', compact('category', 'parent', 'articles')); + } + } \ No newline at end of file diff --git a/app/Http/Controllers/IndexController.php b/app/Http/Controllers/IndexController.php index 387f2da..c6b663d 100644 --- a/app/Http/Controllers/IndexController.php +++ b/app/Http/Controllers/IndexController.php @@ -5,6 +5,8 @@ namespace App\Http\Controllers; use App\Models\Advert; use App\Models\Article; use App\Models\ArticlePicture; +use App\Models\Patent; +use Illuminate\Support\Arr; class IndexController extends Controller { @@ -16,22 +18,32 @@ class IndexController extends Controller */ public function index() { - $ssp = ArticlePicture::orderBy('sort', 'desc')->take(3)->get(); //随手拍 - $all_articles = Article::orderBy('sort', 'desc') - ->whereNotIn('category_id', [20, 21, 22]) - ->take(7) - ->get(); //最新资讯 - $danwei = Article::where('category_id', 15)->latest()->first(); //单位概况 - $ysbj = Article::where('category_id', 12)->latest()->take(3)->get(); //养生保健 - $dcyfx = Article::where('category_id', 10)->latest()->take(7)->get(); //调研与分析 - $yyjcyj = Article::where('category_id', 9)->latest()->take(7)->get(); //应用基础研究 - $jsyt = Article::where('category_id', 11)->latest()->take(7)->get(); //技术研讨 - $kyyyy = Article::where('category_id', 12)->latest()->take(7)->get(); //科研与应用 - $qkys = Article::where('category_id', 9)->latest()->take(7)->get(); //全科医学 - $center_advert = Advert::where('category_id', 18)->first(); - $qikan_advert = Advert::where('category_id', 19)->take(4)->orderBy('sort', 'desc')->get(); + // $ssp = ArticlePicture::orderBy('sort', 'desc')->take(3)->get(); //随手拍 + // $all_articles = Article::orderBy('sort', 'desc') + // ->whereNotIn('category_id', [20, 21, 22]) + // ->take(7) + // ->get(); //最新资讯 + // $danwei = Article::where('category_id', 15)->latest()->first(); //单位概况 + // $ysbj = Article::where('category_id', 12)->latest()->take(3)->get(); //养生保健 + // $dcyfx = Article::where('category_id', 10)->latest()->take(7)->get(); //调研与分析 + // $yyjcyj = Article::where('category_id', 9)->latest()->take(7)->get(); //应用基础研究 + // $jsyt = Article::where('category_id', 11)->latest()->take(7)->get(); //技术研讨 + // $kyyyy = Article::where('category_id', 12)->latest()->take(7)->get(); //科研与应用 + // $qkys = Article::where('category_id', 9)->latest()->take(7)->get(); //全科医学 + // $center_advert = Advert::where('category_id', 18)->first(); + // $qikan_advert = Advert::where('category_id', 19)->take(4)->orderBy('sort', 'desc')->get(); - return view('index.index', compact('ssp', 'all_articles', 'danwei', 'ysbj', 'dcyfx', 'yyjcyj', 'jsyt', 'kyyyy', 'qkys', 'center_advert', 'qikan_advert')); + $data = [ + 'ysxw' => Article::where('category_id', 15)->latest('sort')->latest()->take(8)->get(), + 'kjcg' => Article::where('category_id', 20)->latest('sort')->latest()->take(8)->get(), + 'lwzl' => Patent::latest('sort')->latest()->take(11)->get(), + 'center_advert' => Advert::latest('sort')->latest()->where('category_id', 23)->take(3)->get(), + 'ysxw_right_advert' => Advert::latest('sort')->latest()->where('category_id', 24)->first(), + 'kjcg_right_advert' => Advert::latest('sort')->latest()->where('category_id', 25)->take(2)->get(), + 'lwzl_right_advert' => Advert::latest('sort')->latest()->where('category_id', 27)->take(2)->get(), + ]; + + return view('index.index', $data); } } diff --git a/app/Http/Controllers/PatentController.php b/app/Http/Controllers/PatentController.php new file mode 100644 index 0000000..3a993d9 --- /dev/null +++ b/app/Http/Controllers/PatentController.php @@ -0,0 +1,34 @@ +', $patent->id)->where('status', 1)->first(); + + return view('patents.show', compact('patent', 'next')); + } + + //显示文章列表 + public function list(Request $request) + { + $type = $request->type; + + $patents = Patent::where('status', 1) + ->when($type, function ($q) use ($type) { + $q->where('type', $type); + }) + ->paginate(); + + return view('patents.list', compact('patents')); + } + +} diff --git a/app/Http/Controllers/TestController.php b/app/Http/Controllers/TestController.php index 614ca74..c2eb718 100644 --- a/app/Http/Controllers/TestController.php +++ b/app/Http/Controllers/TestController.php @@ -2,160 +2,12 @@ namespace App\Http\Controllers; -use App\Models\Article; -use App\Models\Category; -use App\Models\DedeArchive; -use App\Models\DedeArctype; -use App\Traits\Tree; - class TestController extends Controller { - use Tree; public function index() { } - public function setCateArticle() - { - $article = []; - $lists = Category::where('content', '<>', '')->where('type', 'article')->get(); - if ($lists->isEmpty()) { - dd('没有数据'); - } - foreach ($lists as $key => $cate) { - if ($cate->content != ' ') { - $data = [ - 'oldid' => 0, - 'title' => $cate->title, - 'category_id' => $cate->id, - 'writer' => 'admin', - 'source' => '未知', - 'keywords' => '', - 'status' => 1, - 'description' => $cate->description, - 'content' => $cate->content, - ]; - - $info = Article::create($data); - $cate->article_id = $info->id; - $cate->type = Category::TYPE_SHOW; - $cate->save(); - $article[] = $info->id; - } - - } - dump(count($article)); - } - - public function checkArticle() - { - $articleids = Article::where('oldid', '>', 0)->pluck('oldid'); - $oldids = DedeArchive::pluck('id'); - $diffids = array_diff($oldids->toArray(), $articleids->toArray()); - dump(count($articleids)); - dump(count($oldids)); - dump($diffids); - die(); - $map = [ - 'id' => ['in', $diffids], - ]; - $list = DedeArchive::whereIn('id', $diffids)->get(); - foreach ($list as $key => $article) { - $data = [ - 'oldid' => $article->id, - 'title' => $article->title, - 'category_id' => $category->id ?? '0', - 'writer' => $article->writer, - 'cover' => $article->litpic, - 'source' => $article->source, - 'keywords' => $article->keywords, - 'description' => $article->description, - 'status' => 1, - 'content' => $article->info->body ?? '', - 'created_at' => date('Y-m-d H:i:s', $article->pubdate), - ]; - Article::create($data); - } - } - - //导入文章 - public function set_article() - { - $articles = Article::get(); - if ($articles->count() > 4) { - dd('已经导入过数据'); - } - $categorys = Category::get(); - $error = $success = []; - DedeArchive::whereNotNull('litpic')->chunk(200, function ($articles) use ($categorys) { - - foreach ($articles as $article) { - - $category = $categorys->where('oldid', $article->typeid)->first(); - $id = $category->id ?? 0; - if (in_array($id, [9, 10, 11, 12])) { - $data = [ - 'oldid' => $article->id, - 'title' => $article->title, - 'category_id' => $category->id ?? '0', - 'writer' => $article->writer, - 'source' => $article->source, - 'cover' => $article->litpic, - 'keywords' => $article->keywords, - 'description' => $article->description, - 'status' => 1, - 'content' => $article->info->body ?? '', - 'created_at' => date('Y-m-d H:i:s', $article->pubdate), - ]; - - $res = Article::create($data); - if (!$res) { - $error[] = $article->id; - } else { - $success[] = $article->id; - } - } - - } - }); - - dump($error); - dump($success); - } - - //导入分类 - public function set_category() - { - $categorys = Category::get(); - if ($categorys->count()) { - dd('已经导入过数据'); - } - $lists = DedeArctype::where('ishidden', 0)->select('id', 'reid as parent_id', 'typename as title', 'content')->get(); - $list = Tree::list2tree($lists->toArray(), 'id', 'parent_id', 'children', 0); - - foreach ($list as $key => $value) { - $info = Category::create($this->getData($value)); - if (isset($value['children']) && count($value['children']) > 0) { - foreach ($value['children'] as $key => $children) { - $info->children()->create($this->getData($children)); - } - } - } - } - - //格式化分类数据 - public function getData($category) - { - $data = [ - 'oldid' => $category['id'], - 'parent_id' => $category['parent_id'], - 'title' => $category['title'], - 'content' => $category['content'], - 'status' => 1, - ]; - return $data; - } - } diff --git a/app/Models/Article.php b/app/Models/Article.php index a54040e..6fb2f7c 100644 --- a/app/Models/Article.php +++ b/app/Models/Article.php @@ -7,5 +7,12 @@ use App\Models\Traits\HasOneCover; class Article extends Model { + use HasOneCover, BelongsToCategory; + + public function getLinkAttribute() + { + return route('article.show', $this); + } + } diff --git a/app/Models/ArticlePicture.php b/app/Models/ArticlePicture.php deleted file mode 100644 index 3d448fb..0000000 --- a/app/Models/ArticlePicture.php +++ /dev/null @@ -1,33 +0,0 @@ -attributes['pictures'] = json_encode($pictures); - } - } - - public function getPicturesAttribute($pictures) - { - return json_decode($pictures, true); - } - - public function getOnePicturePathAttribute(): string - { - $cover = $this->pictures; - if (empty($cover)) { - return ''; - } else { - return Storage::disk('public')->url($cover[0]); - } - } -} diff --git a/app/Models/Category.php b/app/Models/Category.php index dd21212..f3c00b3 100644 --- a/app/Models/Category.php +++ b/app/Models/Category.php @@ -2,6 +2,7 @@ namespace App\Models; +use App\Models\Traits\HasOneCover; use Encore\Admin\Traits\AdminBuilder; use Encore\Admin\Traits\ModelTree; use Illuminate\Database\Eloquent\Relations\BelongsTo; @@ -9,19 +10,24 @@ use Illuminate\Database\Eloquent\Relations\HasMany; class Category extends Model { - use AdminBuilder, ModelTree; - public const TYPES = [ - 'article' => '文章列表', - 'show' => '文章详情', - 'advert' => '广告', - 'picture' => '图册', - ]; + use AdminBuilder, ModelTree, HasOneCover; public const TYPE_SHOW = 'show'; public const TYPE_ARTICLE = 'article'; public const TYPE_ADVERT = 'advert'; - public const TYPE_PICTURE = 'picture'; + public const TYPE_PATENT = 'patent'; + public const TYPES = [ + self::TYPE_ARTICLE => '文章列表', + self::TYPE_SHOW => '文章详情', + self::TYPE_ADVERT => '图片', + self::TYPE_PATENT => '专利', + ]; + + public function getLinkAttribute() + { + return route('category.show', $this); + } /** * 关联的数据 @@ -31,7 +37,7 @@ class Category extends Model { switch ($this->type) { case self::TYPE_SHOW: - return $this->hasOne(Article::class,'id','article_id'); + return $this->hasOne(Article::class, 'id', 'article_id'); break; case self::TYPE_ARTICLE: return $this->hasMany(Article::class); diff --git a/app/Models/DedeAddonarticle.php b/app/Models/DedeAddonarticle.php deleted file mode 100644 index 07d16f0..0000000 --- a/app/Models/DedeAddonarticle.php +++ /dev/null @@ -1,7 +0,0 @@ -hasOne(DedeAddonarticle::class, 'aid'); - } -} diff --git a/app/Models/DedeArctype.php b/app/Models/DedeArctype.php deleted file mode 100644 index 01baa1c..0000000 --- a/app/Models/DedeArctype.php +++ /dev/null @@ -1,11 +0,0 @@ - '专利', + self::TYPE_PAPER => '论文', + ]; + + public function getLinkAttribute() + { + return route('patents.show', $this); + } + +} diff --git a/composer.json b/composer.json index 50c9653..44f74db 100644 --- a/composer.json +++ b/composer.json @@ -40,6 +40,9 @@ "classmap": [ "database/seeds", "database/factories" + ], + "files": [ + "app/Helpers/function.php" ] }, "autoload-dev": { diff --git a/config/admin.php b/config/admin.php index 613675f..571d7b2 100644 --- a/config/admin.php +++ b/config/admin.php @@ -11,7 +11,7 @@ return [ | login page. | */ - 'name' => '黑龙江科学杂志', + 'name' => '黑龙江省科学院智能制造研究所', /* |-------------------------------------------------------------------------- @@ -22,7 +22,7 @@ return [ | `img` tag, eg 'Admin logo'. | */ - 'logo' => '科学杂志', + 'logo' => '智能制造', /* |-------------------------------------------------------------------------- @@ -34,7 +34,7 @@ return [ | 'Admin logo'. | */ - 'logo-mini' => 'kxzz', + 'logo-mini' => 'haai', /* |-------------------------------------------------------------------------- @@ -58,9 +58,9 @@ return [ */ 'route' => [ - 'prefix' => env('ADMIN_ROUTE_PREFIX', 'admin'), + 'prefix' => env('ADMIN_ROUTE_PREFIX', 'admin'), - 'namespace' => 'App\\Admin\\Controllers', + 'namespace' => 'App\\Admin\\Controllers', 'middleware' => ['web', 'admin'], ], @@ -110,11 +110,11 @@ return [ */ 'auth' => [ - 'controller' => App\Admin\Controllers\AuthController::class, + 'controller' => App\Admin\Controllers\AuthController::class, - 'guard' => 'admin', + 'guard' => 'admin', - 'guards' => [ + 'guards' => [ 'admin' => [ 'driver' => 'session', 'provider' => 'admin', @@ -399,7 +399,7 @@ return [ 'ueditor' => [ // 如果要关掉这个扩展,设置为false 'enable' => true, - // 编辑器的前端配置 参考:http://fex.baidu.com/ueditor/#start-config + // 编辑器的前端配置 参考:http://fex.BAIDU.com/ueditor/#start-config 'config' => [ 'initialFrameHeight' => 400, // 例如初始化高度 ], diff --git a/config/haai.php b/config/haai.php new file mode 100644 index 0000000..d34d544 --- /dev/null +++ b/config/haai.php @@ -0,0 +1,16 @@ + [ + 'zzjg' => 1,//组织机构 + 'kxyj' => 10,//科学研究 + 'cgzh' => 19,//成果展示 + 'rcdw' => 28,//人才队伍 + 'djkxwh' => 31,//党建与科学文化 + ], + //分类使用的模板 + 'template' => [ + config('haai.category.zzjg') => 'category.zzjg', + ], +]; \ No newline at end of file diff --git a/public/assets/index/css/style.css b/public/assets/index/css/style.css index fe1dec4..3097710 100644 --- a/public/assets/index/css/style.css +++ b/public/assets/index/css/style.css @@ -1,312 +1,1572 @@ @charset "UTF-8"; -*,html,body{ padding: 0; margin: 0; font-size: 15px; font-family: "微软雅黑"; color: #333;} -a,a:hover{ text-decoration: none; transition: all .4s;} -a{color: #333;} -a:hover{color: #273981;} -p,h1,h2,h3,h4{ margin: 0;} -ul{list-style: none; padding: 0; margin: 0;} -img{vertical-align: top;} +*, html, body { + padding: 0; + margin: 0; + font-size: 15px; + font-family: "微软雅黑"; + color: #333; +} + +a, a:hover { + text-decoration: none; + transition: all .4s; +} + +a { + color: #333; +} + +a:hover { + color: #273981; +} + +p, h1, h2, h3, h4 { + margin: 0; +} + +ul { + list-style: none; + padding: 0; + margin: 0; +} + +img { + vertical-align: top; +} /* 文字裁剪 */ -.nowrap { max-width: 100%; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; } -.nowrap-multi { display: -webkit-box; overflow: hidden; text-overflow: ellipsis; -webkit-box-orient: vertical; -webkit-line-clamp: 2; } +.nowrap { + max-width: 100%; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} + +.nowrap-multi { + display: -webkit-box; + overflow: hidden; + text-overflow: ellipsis; + -webkit-box-orient: vertical; + -webkit-line-clamp: 2; +} /* 禁止响应式 */ -.container{width: 1190px; margin: 0 auto;} +.container { + width: 1190px; + margin: 0 auto; +} /* tool */ -.tool{ background-color: #fafafa;} -.tool-content{display: flex; justify-content: space-between;} +.tool { + background-color: #fafafa; +} + +.tool-content { + display: flex; + justify-content: space-between; +} + .tool-herf a, -.tool-herf span{color: #b8b8b8; line-height: 40px;} -.tool-herf span{padding: 0 10px;} -.tool-herf a:hover{color: #273981;} -.tool-search{ margin: 8px 0;} -.tool-search input{height: 24px; box-sizing: border-box; border-radius: 4px; border: solid 1px #ddd; width: 200px; padding: 0 8px;} -.tool-search button{background-color: #273981; border: 0; height: 24px; width: 24px; border-radius: 4px; font-size: 12px; vertical-align: top;} -.tool-search button i{color: white;} +.tool-herf span { + color: #b8b8b8; + line-height: 40px; +} + +.tool-herf span { + padding: 0 10px; +} + +.tool-herf a:hover { + color: #273981; +} + +.tool-search { + margin: 8px 0; +} + +.tool-search input { + height: 24px; + box-sizing: border-box; + border-radius: 4px; + border: solid 1px #ddd; + width: 200px; + padding: 0 8px; +} + +.tool-search button { + background-color: #273981; + border: 0; + height: 24px; + width: 24px; + border-radius: 4px; + font-size: 12px; + vertical-align: top; +} + +.tool-search button i { + color: white; +} /* header */ -.header-content{ padding: 20px 0; display: flex; align-items:center;} -.header-logo{width: 380px; height: 55px;} -.header-text{padding-left: 100px;} -.header-text p{text-align: right; font-size: 15px; color: #273981; font-weight: bold;} -.header-text p.header-text-sign{padding-top: 5px; color: #4864ae;} +.header-content { + padding: 20px 0; + display: flex; + align-items: center; +} + +.header-logo { + width: 380px; + height: 55px; +} + +.header-text { + padding-left: 100px; +} + +.header-text p { + text-align: right; + font-size: 15px; + color: #273981; + font-weight: bold; +} + +.header-text p.header-text-sign { + padding-top: 5px; + color: #4864ae; +} /* nav */ -.nav{ background-color: #273981;} -.nav-content{position: relative;} -.nav-ul{list-style: none; padding: 0; margin: 0; display: flex; justify-content: space-between;} -.nav-ul-li{flex: 1;} -.nav-ul-li>a{color: white; display: block; font-size: 18px; font-weight: bold; text-align: center; line-height: 50px;} -.nav-ul-li:hover>a{background-color: #4864ae;} -.nav-ul-li.show>a{ background: #4864ae; color: white;} +.nav { + background-color: #273981; +} + +.nav-content { + position: relative; +} + +.nav-ul { + list-style: none; + padding: 0; + margin: 0; + display: flex; + justify-content: space-between; +} + +.nav-ul-li { + flex: 1; +} + +.nav-ul-li > a { + color: white; + display: block; + font-size: 18px; + font-weight: bold; + text-align: center; + line-height: 50px; +} + +.nav-ul-li:hover > a { + background-color: #4864ae; +} + +.nav-ul-li.show > a { + background: #4864ae; + color: white; +} /* 导航弹出层 */ -.nav-layer{position: absolute; left: 0; top: 50px; padding: 0 10px 10px 10px; box-sizing: border-box; width: 100%; background-color: #f1f3f8; z-index: 9; overflow: hidden; display: flex;} -.nav-layer.hide{display: none;} -.nav-layer-item{padding: 10px; box-sizing: border-box;} -.nav-layer-title{position: relative; height: 50px; line-height: 50px;} -.nav-layer-title::before{position: absolute; height: 10px; background: #dbe0f3; content: ""; top: 20px; left: 0; right: 0; z-index: -1;} -.nav-layer-title span{background: #f1f3f8; padding-right: 10px; font-size: 18px; font-weight: bold;} +.nav-layer { + position: absolute; + left: 0; + top: 50px; + padding: 0 10px 10px 10px; + box-sizing: border-box; + width: 100%; + background-color: #f1f3f8; + z-index: 9; + overflow: hidden; + display: flex; +} + +.nav-layer.hide { + display: none; +} + +.nav-layer-item { + padding: 10px; + box-sizing: border-box; +} + +.nav-layer-title { + position: relative; + height: 50px; + line-height: 50px; +} + +.nav-layer-title::before { + position: absolute; + height: 10px; + background: #dbe0f3; + content: ""; + top: 20px; + left: 0; + right: 0; + z-index: -1; +} + +.nav-layer-title span { + background: #f1f3f8; + padding-right: 10px; + font-size: 18px; + font-weight: bold; +} /* 导航层-组织机构 */ -.nav-org-left{width: 800px;} -.nav-org-mian{padding-left: 220px; min-height: 124px; position: relative;} -.nav-org-cover{position: absolute; left: 0; top: 0; width: 200px; height: 124px; background-color: white;} -.nav-org-cover span{position: absolute; left: 0; top: 0; width: 100%; height: 100%; background-size: cover; background-position: center;} -.nav-org-mian p{line-height: 30px;} -.nav-org-more{text-align: right;} -.nav-org-more a{background-color: #4864AE; color: white; line-height: 30px; display: inline-block; padding: 0 15px;} -.nav-org-more i{color: white;} -.nav-org-people{margin: 10px -10px 0 -10px; display: flex; flex-wrap: wrap; justify-content: space-around;} -.nav-org-people li{width: 20%; padding: 10px; box-sizing: border-box;} -.nav-org-people li img{width: 100%; background-color: white;} -.nav-org-people li p{line-height: 35px; text-align: center; font-weight: bold; font-size: 16px;} -.nav-org-right{width: 390px;} -.nav-org-right hr{background-color: #dcdee2; margin-bottom: 10px;} -.nav-org-flex{display: flex; flex-wrap: wrap; margin: -10px -10px 0 -10px;} -.nav-org-flex li{width: 50%; padding: 0 10px; box-sizing: border-box; margin-top: 10px;} -.nav-org-flex li>a{background-color: #4864AE; color: white; display: block; line-height: 40px; text-align: center;} +.nav-org-left { + width: 800px; +} + +.nav-org-mian { + padding-left: 220px; + min-height: 124px; + position: relative; +} + +.nav-org-cover { + position: absolute; + left: 0; + top: 0; + width: 200px; + height: 124px; + background-color: white; +} + +.nav-org-cover span { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + background-size: cover; + background-position: center; +} + +.nav-org-mian p { + line-height: 30px; +} + +.nav-org-more { + text-align: right; +} + +.nav-org-more a { + background-color: #4864AE; + color: white; + line-height: 30px; + display: inline-block; + padding: 0 15px; +} + +.nav-org-more i { + color: white; +} + +.nav-org-people { + margin: 10px -10px 0 -10px; + display: flex; + flex-wrap: wrap; + justify-content: space-around; +} + +.nav-org-people li { + width: 20%; + padding: 10px; + box-sizing: border-box; +} + +.nav-org-people li img { + width: 100%; + background-color: white; +} + +.nav-org-people li p { + line-height: 35px; + text-align: center; + font-weight: bold; + font-size: 16px; +} + +.nav-org-right { + width: 390px; +} + +.nav-org-right hr { + background-color: #dcdee2; + margin-bottom: 10px; +} + +.nav-org-flex { + display: flex; + flex-wrap: wrap; + margin: -10px -10px 0 -10px; +} + +.nav-org-flex li { + width: 50%; + padding: 0 10px; + box-sizing: border-box; + margin-top: 10px; +} + +.nav-org-flex li > a { + background-color: #4864AE; + color: white; + display: block; + line-height: 40px; + text-align: center; +} + .nav-org-more a:hover, -.nav-org-flex li>a:hover{background-color: #273981;} -.nav-org-flex li p{text-align: center; line-height: 20px; margin-top: 10px;} +.nav-org-flex li > a:hover { + background-color: #273981; +} + +.nav-org-flex li p { + text-align: center; + line-height: 20px; + margin-top: 10px; +} /* 导航层-科学研究 */ -.nav-science-left{width: 740px;} -.nav-science-right{width: 430px;} -.nav-science-block{position: relative; min-height: 150px;} -.nav-science-cover{width: 200px; height: 150px; background-color: white; position: absolute; top: 0; left: 0; background-size: cover; background-position: center;} -.nav-science-cover ~ .nav-science-ul{padding-left: 220px;} -.nav-science-ul li{line-height: 30px;} -.nav-science-ul li i{color: gray;} -.nav-science-covers{position: relative; min-height: 150px;} -.nav-science-covers-item{background-position: center; background-size: cover; width: 200px; background-color: white; display: block;} -.nav-science-covers-item:nth-child(2){margin-top: 10px;} -.nav-science-cover-5{height: 70px;} -.nav-science-cover-10{height: 150px; position: absolute; right: 0; top: 0;} +.nav-science-left { + width: 740px; +} + +.nav-science-right { + width: 430px; +} + +.nav-science-block { + position: relative; + min-height: 150px; +} + +.nav-science-cover { + width: 200px; + height: 150px; + background-color: white; + position: absolute; + top: 0; + left: 0; + background-size: cover; + background-position: center; +} + +.nav-science-cover ~ .nav-science-ul { + padding-left: 220px; +} + +.nav-science-ul li { + line-height: 30px; +} + +.nav-science-ul li i { + color: gray; +} + +.nav-science-covers { + position: relative; + min-height: 150px; + margin: 0 -10px; +} + +.nav-science-covers-item { + background-position: center; + background-size: cover; + width: 195px; + height: 150px; + background-color: white; + display: block; + float: left; + margin: 0 10px; +} + +/*.nav-science-covers-item:nth-child(2) {*/ +/* margin-top: 10px;*/ +/*}*/ + +/*.nav-science-cover-5 {*/ +/* height: 70px;*/ +/*}*/ + +/*.nav-science-cover-10 {*/ +/* height: 150px;*/ +/* position: absolute;*/ +/* right: 0;*/ +/* top: 0;*/ +/*}*/ /* 导航层-成果转化 */ -.nav-results-item{width: 50%;} -.nav-results-cover{width: 100%; padding-top: 15%; background-size: cover; background-color: white; background-position: center; display: block; margin-top: 10px;} -.nav-results-ul{padding-top: 10px;} -.nav-results-ul li{position: relative;} -.nav-results-ul i{position: absolute; left: 0; top: 0; line-height: 30px;} -.nav-results-ul a{display: block; padding: 0 100px 0 15px} -.nav-results-ul a span{position: absolute; right: 0; top: 0;} -.nav-results-ul a:hover span{color: #273981;} +.nav-results-item { + width: 50%; +} + +.nav-results-cover { + width: 100%; + padding-top: 15%; + background-size: cover; + background-color: white; + background-position: center; + display: block; + margin-top: 10px; +} + +.nav-results-ul { + padding-top: 10px; +} + +.nav-results-ul li { + position: relative; +} + +.nav-results-ul i { + position: absolute; + left: 0; + top: 0; + line-height: 30px; +} + +.nav-results-ul a { + display: block; + padding: 0 100px 0 15px +} + +.nav-results-ul a span { + position: absolute; + right: 0; + top: 0; +} + +.nav-results-ul a:hover span { + color: #273981; +} /* 导航层-人才队伍 */ -.nav-talent-left{width: 840px;} -.nav-talent-right{width: 330px;} -.nav-talent-ul{margin: 0 -10px;} -.nav-talent-ul li{margin: 0 10px; width: 100px; float: left; padding-bottom: 10px;} -.nav-talent-ul.nav-talent-r-ul li{width: calc(25% - 20px);} +.nav-talent-left { + width: 840px; +} + +.nav-talent-right { + width: 330px; +} + +.nav-talent-ul { + margin: 0 -10px; +} + +.nav-talent-ul li { + margin: 0 10px; + width: 100px; + float: left; + padding-bottom: 10px; +} + +.nav-talent-ul.nav-talent-r-ul li { + width: calc(25% - 20px); +} + .nav-talent-name, -.nav-talent-job{text-align: center; line-height: 20px;} -.nav-talent-job{color: gray;} -.nav-talent-cover{width: 100%; padding-top: 125%; display: block; background-size: cover; background-position: center; background-color: white; margin-bottom: 10px;} -.nav-talent-team{margin: 0 -10px;} -.nav-talent-team-item{padding-top: 30%; margin-bottom: 10px; background-color: white; display: block; background-position: center; background-size: cover;} -.nav-talent-team-item:last-child{margin-bottom: 0;} +.nav-talent-job { + text-align: center; + line-height: 20px; +} + +.nav-talent-job { + color: gray; +} + +.nav-talent-cover { + width: 100%; + padding-top: 125%; + display: block; + background-size: cover; + background-position: center; + background-color: white; + margin-bottom: 10px; +} + +.nav-talent-team { + margin: 0 -10px; +} + +.nav-talent-team-item { + padding-top: 30%; + margin-bottom: 10px; + background-color: white; + display: block; + background-position: center; + background-size: cover; +} + +.nav-talent-team-item:last-child { + margin-bottom: 0; +} /* 专题连接 */ -.special-content{text-align: center; padding: 20px 0;} -.special-content a{color: #273981; font-weight: bold; font-size: 24px;} -.special-content a:hover{color: #4864ae;} +.special-content { + text-align: center; + padding: 20px 0; +} + +.special-content a { + color: #273981; + font-weight: bold; + font-size: 24px; +} + +.special-content a:hover { + color: #4864ae; +} /* banner图 */ -.swiper-slide{text-align: center; width: 1190px;} -.swiper-banner-img{width: 100%; padding-top: 33%; background-size: 100%; transition: all .2s; background-repeat: no-repeat; background-position: center; position: relative; display: block;} -.swiper-banner-img:hover{background-size: 102%;} -.swiper-banner-img h3{position: absolute; left: 0; bottom: 0; width: 100%; background-color: rgba(0,0,0,.2); box-sizing: border-box; padding: 15px 15px 50px 15px; color: white; font-size: 18px;} +.swiper-slide { + text-align: center; + width: 1190px; +} + +.swiper-banner-img { + width: 100%; + padding-top: 33%; + background-size: 100%; + transition: all .2s; + background-repeat: no-repeat; + background-position: center; + position: relative; + display: block; +} + +.swiper-banner-img:hover { + background-size: 102%; +} + +.swiper-banner-img h3 { + position: absolute; + left: 0; + bottom: 0; + width: 100%; + background-color: rgba(0, 0, 0, .2); + box-sizing: border-box; + padding: 15px 15px 50px 15px; + color: white; + font-size: 18px; +} + .swiper-button-prev, -.swiper-button-next{position: absolute; background-color: rgba(255,255,255,.90); transition: background .5s; width: calc(50% - 595px); height: 100%; top: 0; margin: 0; background-image: none;} -.swiper-button-prev{left: 0;} -.swiper-button-next{right: 0;} +.swiper-button-next { + position: absolute; + background-color: rgba(255, 255, 255, .90); + transition: background .5s; + width: calc(50% - 595px); + height: 100%; + top: 0; + margin: 0; + background-image: none; +} + +.swiper-button-prev { + left: 0; +} + +.swiper-button-next { + right: 0; +} + .swiper-button-prev:hover, -.swiper-button-next:hover{background-color: rgba(255,255,255,.6);} -.swiper-pagination .swiper-pagination-bullet{background-color: white; width: 12px; height: 12px; opacity: .5;} -.swiper-pagination .swiper-pagination-bullet-active{background-color: #273981; opacity: 1;} +.swiper-button-next:hover { + background-color: rgba(255, 255, 255, .6); +} + +.swiper-pagination .swiper-pagination-bullet { + background-color: white; + width: 12px; + height: 12px; + opacity: .5; +} + +.swiper-pagination .swiper-pagination-bullet-active { + background-color: #273981; + opacity: 1; +} /* mian */ -.mian{overflow: hidden; padding: 20px 0;} +.mian { + overflow: hidden; + padding: 20px 0; +} + .mian-nav, -.mian-content{float: left;} -.mian-nav{width: 200px; padding-right: 20px;} -.mian-content{width: 970px;} -.mian-nav-cover{width: 100%;} -.mian-nav-ul li{margin-top: 10px;} -.mian-nav-ul li a{line-height: 50px; color: white; text-align: center; background-color: #4864ae; display: block; font-size: 16px; font-weight: bold;} +.mian-content { + float: left; +} + +.mian-nav { + width: 200px; + padding-right: 20px; +} + +.mian-content { + width: 970px; +} + +.mian-nav-cover { + width: 100%; +} + +.mian-nav-ul li { + margin-top: 10px; +} + +.mian-nav-ul li a { + line-height: 50px; + color: white; + text-align: center; + background-color: #4864ae; + display: block; + font-size: 16px; + font-weight: bold; +} + .mian-nav-ul li a:hover, -.mian-nav-ul li.show a{background-color: #273981;} -.mian-content-header{background-color: #f1f3f8; line-height: 40px; padding: 0 10px; margin-bottom: 20px;} -.mian-content-header i{margin: 0 10px; color: gray;} -.mian-content-header a:first-child{font-weight: bold;} +.mian-nav-ul li.show a { + background-color: #273981; +} + +.mian-content-header { + background-color: #f1f3f8; + line-height: 40px; + padding: 0 10px; + margin-bottom: 20px; +} + +.mian-content-header i { + margin: 0 10px; + color: gray; +} + +.mian-content-header a:first-child { + font-weight: bold; +} /* 首页 */ .index-mian-left, -.index-mian-right{float: left;} -.index-mian-left{margin-right: 20px; width: 870px;} -.index-mian-title{background-color: #dbe0f3; display: flex; justify-content: space-between; line-height: 40px; height: 40px; margin-top: 6px;} -.index-mian-title span{background-color: #273981; width: 150px; text-align: center; font-weight: bold; color: white; line-height: 34px; font-size: 16px; position: relative;} +.index-mian-right { + float: left; +} + +.index-mian-left { + margin-right: 20px; + width: 870px; +} + +.index-mian-title { + background-color: #dbe0f3; + display: flex; + justify-content: space-between; + line-height: 40px; + height: 40px; + margin-top: 6px; +} + +.index-mian-title span { + background-color: #273981; + width: 150px; + text-align: center; + font-weight: bold; + color: white; + line-height: 34px; + font-size: 16px; + position: relative; +} + .index-mian-title span::before, -.index-mian-title span::after{position: absolute; content: "";} -.index-mian-title span::before{height: 6px; top: -6px; left: 0; width: 100%; background: #273981;} -.index-mian-title span::after{border: 3px solid transparent; border-bottom: 3px solid #020d3a; border-left: 3px solid #020d3a; position: absolute; top: -6px; right: -6px;} -.index-mian-title span i{color: white; margin-right: 5px;} -.index-mian-title a{margin-right: 20px;} +.index-mian-title span::after { + position: absolute; + content: ""; +} + +.index-mian-title span::before { + height: 6px; + top: -6px; + left: 0; + width: 100%; + background: #273981; +} + +.index-mian-title span::after { + border: 3px solid transparent; + border-bottom: 3px solid #020d3a; + border-left: 3px solid #020d3a; + position: absolute; + top: -6px; + right: -6px; +} + +.index-mian-title span i { + color: white; + margin-right: 5px; +} + +.index-mian-title a { + margin-right: 20px; +} + .index-mian-title a, -.index-mian-title a i{color: gray;} -.index-mian-title a i{margin-left: 5px; transition: color .4s;} +.index-mian-title a i { + color: gray; +} + +.index-mian-title a i { + margin-left: 5px; + transition: color .4s; +} + .index-mian-title a:hover, -.index-mian-title a:hover i{color: #273981;} -.index-mian-news{margin:10px 0 20px 0; overflow: hidden;} -.index-mian-news-hot{background: #f1f3f8; display: block; width: 200px; float: left;} -.index-mian-news-cover{width: 100%; padding-top: 75%; display: block; background-color: #eee; background-size: 100%; background-repeat: no-repeat; background-position: center;} -.index-mian-news-cover:hover{background-size: 105%;} -.index-mian-news-href{padding: 10px; display: block;} -.index-mian-news-href:hover p{color: #273981;} -.index-mian-news-href p:first-child{font-weight: bold; margin-bottom: 5px; font-size: 15px;} -.index-mian-news-href p:last-child{text-align: right; color: gray;} -.index-mian-news-hot ~ .index-mian-news-ul{float: left; width: 670px; padding-left: 20px; box-sizing: border-box;} -.index-mian-news-ul li{position: relative; line-height: 35px;} -.index-mian-news-ul li i{color: #273981;} -.index-mian-news-ul li a{display: block; padding-right: 100px; position: relative;} -.index-mian-news-ul li a>span{position: absolute; right: 0; top: 0; color: gray;} -.index-mian-news-ul li a:hover> span{color: #273981;} -.index-mian-right{width: 300px;} -.index-mian-right-ad{background-size: 100%; background-position: center; background-repeat: no-repeat; background-color: #EEEEEE; display: block; position: relative;} -.index-mian-right-ad:hover{background-size: 105%;} -.index-mian-right-ad span{position: absolute; top: 0; left: 0; width: 100%; text-align: center; background-color: rgba(0,0,0,.1); height: 100%; display: flex; justify-content: center; align-items: center; font-size: 18px; font-weight: bold; text-shadow: 2px 2px 3px rgba(0,0,0,.2); color: white;} -.index-mian-right-ad-1{width: 100%; padding-top: 100%; margin-bottom: 20px;} -.index-mian-right-ads{display: flex; margin: 0 -10px 20px -10px;} -.index-mian-right-ad-5{width: 50%; padding-top: 30%; margin: 0 10px;} -.index-mian-right-ad-5 span{background-image: linear-gradient(to bottom,transparent, rgba(0,0,0,.4));} -.index-mian-right-ul{margin-bottom: 20px;} -.index-mian-right-ul li a{padding-right: 0;} -.index-mian-right-video{margin: 20px 0; position: relative; min-height: 170px; padding-left: 200px;} -.index-mian-right-video-item{width: 100px; height: 75px; display: block; background-color: #EEEEEE; background-position: center; background-size: 100%;} -.index-mian-right-video-item:hover{background-size: 105%;} -.index-mian-right-video-item:first-child{margin-bottom: 20px;} -.index-mian-right-video-item-lg{position: absolute; left: 0; top:0; width: 180px; height: 170px;} +.index-mian-title a:hover i { + color: #273981; +} + +.index-mian-news { + margin: 10px 0 20px 0; + overflow: hidden; +} + +.index-mian-news-hot { + background: #f1f3f8; + display: block; + width: 200px; + float: left; +} + +.index-mian-news-cover { + width: 100%; + padding-top: 75%; + display: block; + background-color: #eee; + background-size: 100%; + background-repeat: no-repeat; + background-position: center; +} + +.index-mian-news-cover:hover { + background-size: 105%; +} + +.index-mian-news-href { + padding: 10px; + display: block; +} + +.index-mian-news-href:hover p { + color: #273981; +} + +.index-mian-news-href p:first-child { + font-weight: bold; + margin-bottom: 5px; + font-size: 15px; +} + +.index-mian-news-href p:last-child { + text-align: right; + color: gray; +} + +.index-mian-news-hot ~ .index-mian-news-ul { + float: left; + width: 670px; + padding-left: 20px; + box-sizing: border-box; +} + +.index-mian-news-ul li { + position: relative; + line-height: 35px; +} + +.index-mian-news-ul li i { + color: #273981; +} + +.index-mian-news-ul li a { + display: block; + padding-right: 100px; + position: relative; +} + +.index-mian-news-ul li a > span { + position: absolute; + right: 0; + top: 0; + color: gray; +} + +.index-mian-news-ul li a:hover > span { + color: #273981; +} + +.index-mian-right { + width: 300px; +} + +.index-mian-right-ad { + background-size: 100%; + background-position: center; + background-repeat: no-repeat; + background-color: #EEEEEE; + display: block; + position: relative; +} + +.index-mian-right-ad:hover { + background-size: 105%; +} + +.index-mian-right-ad span { + position: absolute; + top: 0; + left: 0; + width: 100%; + text-align: center; + background-color: rgba(0, 0, 0, .1); + height: 100%; + display: flex; + justify-content: center; + align-items: center; + font-size: 18px; + font-weight: bold; + text-shadow: 2px 2px 3px rgba(0, 0, 0, .2); + color: white; +} + +.index-mian-right-ad-1 { + width: 100%; + padding-top: 100%; + margin-bottom: 20px; +} + +.index-mian-right-ads { + display: flex; + margin: 0 -10px 20px -10px; +} + +.index-mian-right-ad-5 { + width: 50%; + padding-top: 30%; + margin: 0 10px; +} + +.index-mian-right-ad-5 span { + background-image: linear-gradient(to bottom, transparent, rgba(0, 0, 0, .4)); +} + +.index-mian-right-ul { + margin-bottom: 20px; +} + +.index-mian-right-ul li a { + padding-right: 0; +} + +.index-mian-right-video { + margin: 20px 0; + position: relative; + min-height: 170px; + padding-left: 200px; +} + +.index-mian-right-video-item { + width: 100px; + height: 75px; + display: block; + background-color: #EEEEEE; + background-position: center; + background-size: 100%; +} + +.index-mian-right-video-item:hover { + background-size: 105%; +} + +.index-mian-right-video-item:first-child { + margin-bottom: 20px; +} + +.index-mian-right-video-item-lg { + position: absolute; + left: 0; + top: 0; + width: 180px; + height: 170px; +} /* href */ -.footer-href{padding: 30px 0; background-color: #f1f3f8;} -.href-flex{display: flex; flex-wrap: wrap;} -.href-flex a{line-height: 30px; margin-right: 20px; color: gray;} -.href-flex a:hover{color: #273981;} +.footer-href { + padding: 30px 0; + background-color: #f1f3f8; +} + +.href-flex { + display: flex; + flex-wrap: wrap; +} + +.href-flex a { + line-height: 30px; + margin-right: 20px; + color: gray; +} + +.href-flex a:hover { + color: #273981; +} /* footer */ -.footer{background-color: #273981; padding: 50px 0; text-align: center; font-size: 12px;} -.footer p{color: white; margin:10px 0; font-size: 14px;} -.footer img{width: 68px;} +.footer { + background-color: #273981; + padding: 50px 0; + text-align: center; + font-size: 12px; +} + +.footer p { + color: white; + margin: 10px 0; + font-size: 14px; +} + +.footer img { + width: 68px; +} /* 子页面通用标题栏 */ -.sub-title{line-height: 40px; border-top: solid 2px #f1f3f8; display: flex; justify-content: space-between;} -.sub-title i{margin-right: 5px; color: #273981; font-size: 16px;} -.sub-title b{font-size: 16px; position: relative; padding: 0 10px;} -.sub-title b::before{position: absolute; top: -4px; left: 0; width: 100%; height: 4px; background-color: #273981; content: " ";} +.sub-title { + line-height: 40px; + border-top: solid 2px #f1f3f8; + display: flex; + justify-content: space-between; +} + +.sub-title i { + margin-right: 5px; + color: #273981; + font-size: 16px; +} + +.sub-title b { + font-size: 16px; + position: relative; + padding: 0 10px; +} + +.sub-title b::before { + position: absolute; + top: -4px; + left: 0; + width: 100%; + height: 4px; + background-color: #273981; + content: " "; +} /* 成果转化 - 小悦哥 */ -.results-news{margin: 10px 0 20px 0; min-height: 210px; position: relative;} -.results-news-cover{width: 280px; height: 210px; position: absolute; left: 0; top: 0; background-position: center; background-size: 100%;} -.results-news-cover:hover{background-size: 105%;} -.results-news-cover span{position: absolute; left: 0; bottom: 0; padding: 10px; background-color: rgba(0,0,0,.4); color: white; font-size: 16px; font-weight: bold;} -.results-news-cover ~ .results-news-ul{padding-left: 300px;} -.results-news-ul li{line-height: 30px;} -.results-news-ul li a{display: block; position: relative; padding-right: 120px;} -.results-news-ul li a span{position: absolute; right: 0; top: 0; width: 100px; text-align: right; color: gray;} -.results-news-ul li a:hover span{color: #273981;} -.results-news-ul li a i{color: gray; font-size: 14px; color: #273981; margin-right: 5px;} +.results-news { + margin: 10px 0 20px 0; + min-height: 210px; + position: relative; +} + +.results-news-cover { + width: 280px; + height: 210px; + position: absolute; + left: 0; + top: 0; + background-position: center; + background-size: 100%; +} + +.results-news-cover:hover { + background-size: 105%; +} + +.results-news-cover span { + position: absolute; + left: 0; + bottom: 0; + padding: 10px; + background-color: rgba(0, 0, 0, .4); + color: white; + font-size: 16px; + font-weight: bold; +} + +.results-news-cover ~ .results-news-ul { + padding-left: 300px; +} + +.results-news-ul li { + line-height: 30px; +} + +.results-news-ul li a { + display: block; + position: relative; + padding-right: 120px; +} + +.results-news-ul li a span { + position: absolute; + right: 0; + top: 0; + width: 100px; + text-align: right; + color: gray; +} + +.results-news-ul li a:hover span { + color: #273981; +} + +.results-news-ul li a i { + color: gray; + font-size: 14px; + color: #273981; + margin-right: 5px; +} /* 科学研究-论文 */ -.paper-form{background: #f1f3f8; display: block; position: relative; padding: 15px 100px 15px 165px; height:100px; box-sizing: border-box;} -.paper-form-title{position: absolute; left: 0; top: 0; height: 100px; line-height: 100px; width: 150px; background-color: #273981; text-align: center; color: white; font-size: 16px;} -.paper-form-ul{display: flex; flex-wrap: wrap;} -.paper-form-btn{width: 70px; height: 70px; background-color: #273981; border: none; border-radius: 0; text-align: center; color: white; position: absolute; top: 15px; right: 15px;} -.paper-form-inputs {width: 50%; height: 35px; padding-right: 15px; padding-left: 80px; box-sizing: border-box; position: relative;} -.paper-form-inputs label{position: absolute; left: 0; top: 0; line-height: 35px;} +.paper-form { + background: #f1f3f8; + display: block; + position: relative; + padding: 15px 100px 15px 165px; + height: 100px; + box-sizing: border-box; +} + +.paper-form-title { + position: absolute; + left: 0; + top: 0; + height: 100px; + line-height: 100px; + width: 150px; + background-color: #273981; + text-align: center; + color: white; + font-size: 16px; +} + +.paper-form-ul { + display: flex; + flex-wrap: wrap; +} + +.paper-form-btn { + width: 70px; + height: 70px; + background-color: #273981; + border: none; + border-radius: 0; + text-align: center; + color: white; + position: absolute; + top: 15px; + right: 15px; +} + +.paper-form-inputs { + width: 50%; + height: 35px; + padding-right: 15px; + padding-left: 80px; + box-sizing: border-box; + position: relative; +} + +.paper-form-inputs label { + position: absolute; + left: 0; + top: 0; + line-height: 35px; +} + .paper-form-inputs input, -.paper-form-inputs select{width: 100%; height: 25px; margin-top: 5px; padding: 0 10px; box-sizing: border-box; border:solid 1px #EEEEEE} -.paper-table{width: 100%; margin-top: 20px; border-spacing:0; border-collapse:collapse;} -.paper-table th{background-color: #f1f3f8;} +.paper-form-inputs select { + width: 100%; + height: 25px; + margin-top: 5px; + padding: 0 10px; + box-sizing: border-box; + border: solid 1px #EEEEEE +} + +.paper-table { + width: 100%; + margin-top: 20px; + border-spacing: 0; + border-collapse: collapse; +} + +.paper-table th { + background-color: #f1f3f8; +} + .paper-table th, -.paper-table td{text-align: center; height: 40px;} +.paper-table td { + text-align: center; + height: 40px; +} /* 组织机构-研究所简介 */ .org-history, -.org-intro{min-height: 210px; position: relative; margin-bottom: 20px;} -.org-intro{padding-left: 360px;} +.org-intro { + min-height: 210px; + position: relative; + margin-bottom: 20px; +} + +.org-intro { + padding-left: 360px; +} + .org-history-cover, -.org-intro-cover{background-color: #EEEEEE; position: absolute; top: 0; height: 210px; width: 340px; background-position: center; background-size: cover;} -.org-intro-cover{left: 0;} +.org-intro-cover { + background-color: #EEEEEE; + position: absolute; + top: 0; + height: 210px; + width: 340px; + background-position: center; + background-size: cover; +} + +.org-intro-cover { + left: 0; +} + .org-intro-text, -.org-intro-more{line-height: 30px;} -.org-intro-more{text-align: right; padding-top: 10px;} -.org-intro-more a{background-color: #4864AE; padding: 0 15px; display: inline-block; color: white;} -.org-intro-more a:hover{background-color: #273981;} -.org-history{padding-right: 360px;} -.org-history-cover{right: 0;} -.org-lead-ul{margin: 0 -10px 20px -10px; overflow: hidden;} -.org-lead-ul li{margin: 10px; width: calc(33.33% - 20px); float: left; position: relative; min-height: 125px; padding-left: 120px; box-sizing: border-box;} -.org-lead-name{font-size: 16px; font-weight: bold; display: block; border-bottom: solid 1px #ddd; line-height: 40px; margin-bottom: 10px;} -.org-lead-job{color: #555; line-height: 30px;} -.org-lead-cover{width: 100px; height: 125px; display: block; background-position: center; background-size: cover; position: absolute; left: 0; top: 0;} -.org-inst{overflow: hidden; padding-left: 10px;} -.org-inst span{line-height: 40px; width: 25%; display: block; float: left; font-weight: bold;} +.org-intro-more { + line-height: 30px; +} + +.org-intro-more { + text-align: right; + padding-top: 10px; +} + +.org-intro-more a { + background-color: #4864AE; + padding: 0 15px; + display: inline-block; + color: white; +} + +.org-intro-more a:hover { + background-color: #273981; +} + +.org-history { + padding-right: 360px; +} + +.org-history-cover { + right: 0; +} + +.org-lead-ul { + margin: 0 -10px 20px -10px; + overflow: hidden; +} + +.org-lead-ul li { + margin: 10px; + width: calc(33.33% - 20px); + float: left; + position: relative; + min-height: 125px; + padding-left: 120px; + box-sizing: border-box; +} + +.org-lead-name { + font-size: 16px; + font-weight: bold; + display: block; + border-bottom: solid 1px #ddd; + line-height: 40px; + margin-bottom: 10px; +} + +.org-lead-job { + color: #555; + line-height: 30px; +} + +.org-lead-cover { + width: 100px; + height: 125px; + display: block; + background-position: center; + background-size: cover; + position: absolute; + left: 0; + top: 0; +} + +.org-inst { + overflow: hidden; + padding-left: 10px; +} + +.org-inst span { + line-height: 40px; + width: 20%; + display: block; + float: left; + font-weight: bold; +} + .org-inst-ul span i, -.org-inst span i{color: #273981; margin-right: 5px;} -.org-inst-ul{margin-bottom: 20px; padding-left: 10px;} -.org-inst-ul li{line-height: 50px; overflow: hidden;} -.org-inst-ul li span{float: left; color: gray; margin-right: 20px;} +.org-inst span i { + color: #273981; + margin-right: 5px; +} + +.org-inst-ul { + margin-bottom: 20px; + padding-left: 10px; + border-top: dashed 1px #f1f3f8; +} + +.org-inst-ul li { + line-height: 50px; + overflow: hidden; +} + +.org-inst-ul li span { + float: left; + color: gray; + margin-right: 20px; +} + .org-inst-ul li span:first-child, -.org-inst-ul li span:nth-child(2){font-weight: bold; color: #333; margin-right: 10px;} -.org-inst-ul li span:nth-child(2)> i{color: gray; font-size: 10px;} +.org-inst-ul li span:nth-child(2) { + font-weight: bold; + color: #333; + margin-right: 10px; +} + +.org-inst-ul li span:nth-child(2) > i { + color: gray; + font-size: 10px; +} /* 科学研究-科技奖励 */ -.research-award-ul{margin: 0 -10px 20px -10px; overflow: hidden;} -.research-award-ul li{margin: 10px; width: calc(33.33% - 20px); float: left; position: relative; box-sizing: border-box;} -.research-award-cover{width: 100%; padding-top: 65%; display: block; background-position: center; background-size: cover;} -.research-award-title{line-height: 40px; text-align: center;} +.research-award-ul { + margin: 0 -10px 20px -10px; + overflow: hidden; +} + +.research-award-ul li { + margin: 10px; + width: calc(33.33% - 20px); + float: left; + position: relative; + box-sizing: border-box; +} + +.research-award-cover { + width: 100%; + padding-top: 65%; + display: block; + background-position: center; + background-size: cover; +} + +.research-award-title { + line-height: 40px; + text-align: center; +} /* 科学研究-科研进展 */ -.research-evolve{margin: 0 -10px; overflow: hidden;} -.research-evolve-item{width:calc( 50% - 20px); margin: 0 10px; float: left;} +.research-evolve { + margin: 0 -10px; + overflow: hidden; +} + +.research-evolve-item { + width: calc(50% - 20px); + margin: 0 10px; + float: left; +} /* 科学研究-科研产出 小悦哥 */ -.kycc-border{ overflow: hidden; margin: 0 -10px 20px -10px;} -.kycc-border>li{ width:calc( 50% - 20px); margin: 0 10px; float: left; } -.lw{position: relative; padding: 0 50px; min-height: 120px;} -.lw-left{ position: absolute; width:40px; height:80px; background-color:#273981; text-align:center; top: calc(50% - 40px); left: 0; display: flex; justify-content: center; align-items: center; color: white;} -.lw-center li{line-height: 30px;} -.lw-left2{ position: absolute; top: calc(50% - 30px); color: gray; right: 0; text-align: center; display: flex; justify-content: center; align-items: center; width:30px; height:60px; border:1px solid #929294; box-sizing: border-box;} -.lw-left2:hover{color: #273981; border-color: #273981;} -.lw-lg{min-height: 240px; padding-right: 0;} -.lw-left-lg{height: 160px; top: calc(50% - 80px);} +.kycc-border { + overflow: hidden; + margin: 0 -10px 20px -10px; +} + +.kycc-border > li { + width: calc(50% - 20px); + margin: 0 10px; + float: left; +} + +.lw { + position: relative; + padding: 0 50px; + min-height: 120px; +} + +.lw-left { + position: absolute; + width: 40px; + height: 80px; + background-color: #273981; + text-align: center; + top: calc(50% - 40px); + left: 0; + display: flex; + justify-content: center; + align-items: center; + color: white; +} + +.lw-center li { + line-height: 30px; +} + +.lw-left2 { + position: absolute; + top: calc(50% - 30px); + color: gray; + right: 0; + text-align: center; + display: flex; + justify-content: center; + align-items: center; + width: 30px; + height: 60px; + border: 1px solid #929294; + box-sizing: border-box; +} + +.lw-left2:hover { + color: #273981; + border-color: #273981; +} + +.lw-lg { + min-height: 240px; + padding-right: 0; +} + +.lw-left-lg { + height: 160px; + top: calc(50% - 80px); +} /* 党建与科学文化 */ -.culture-news{margin-bottom: 20px;} -.culture-news-cover{width: 280px; height: 210px; position: absolute; right: 0; top: 0; background-position: center; background-size: 100%;} -.culture-news-cover:hover{background-size: 105%;} -.culture-news-cover span{position: absolute; left: 0; bottom: 0; padding: 10px; background-color: rgba(0,0,0,.4); color: white; font-size: 16px; font-weight: bold;} -.culture-news-cover ~ .results-news-ul{padding-right: 300px;} +.culture-news { + margin-bottom: 20px; +} + +.culture-news-cover { + width: 280px; + height: 210px; + position: absolute; + right: 0; + top: 0; + background-position: center; + background-size: 100%; +} + +.culture-news-cover:hover { + background-size: 105%; +} + +.culture-news-cover span { + position: absolute; + left: 0; + bottom: 0; + padding: 10px; + background-color: rgba(0, 0, 0, .4); + color: white; + font-size: 16px; + font-weight: bold; +} + +.culture-news-cover ~ .results-news-ul { + padding-right: 300px; +} /* 人才队伍 - 高级职称专家 小悦哥 */ -.rcdw{ margin:0 -10px; overflow: hidden; } -.rcdw li{ float: left; margin-right:10px; margin-left:10px; margin-bottom:20px; width: calc(12.5% - 20px); background-color: #eee;} -.rcdw-cover{width: 100%; padding-top: 125%; display: block; background-position: center; background-size: cover;} -.rcdw-xxh{padding: 10px; background-color:#273981; text-align:center;} +.rcdw { + margin: 0 -10px; + overflow: hidden; +} + +.rcdw li { + float: left; + margin-right: 10px; + margin-left: 10px; + margin-bottom: 20px; + width: calc(12.5% - 20px); + background-color: #eee; +} + +.rcdw-cover { + width: 100%; + padding-top: 125%; + display: block; + background-position: center; + background-size: cover; +} + +.rcdw-xxh { + padding: 10px; + background-color: #273981; + text-align: center; +} + .rcdw-xxh h3, -.rcdw-xxh p{color: white;} +.rcdw-xxh p { + color: white; +} /* 人才队伍 - 省领军人才梯队 */ -.rctd-boeder{ border-bottom:1px solid #eee; padding-bottom: 20px; margin-bottom: 20px; min-height: 150px; padding-left: 220px; position:relative;} -.rctd-boeder:last-child{border-bottom: none; margin: 0;} -.rctd2{ position: absolute; left: 0; top: 0; width: 200px; height: 150px; background-position: center; background-size: cover;} -.rctd2 span{ position: absolute; bottom: 0; left: 0; width: 100%; height:30px; text-align: center; line-height:30px; background: rgba(0,0,0,.5); color: white; } -.rctd3-p{ position: relative; padding-left: 100px; line-height: 30px; } -.rctd3-p span{margin-right: 10px; display: inline-block; color: #555;} -.rctd3-p span:first-child{ position: absolute; left: 0; top: 0; width: 100px; font-weight: bold; color: #333;} +.rctd-boeder { + border-bottom: 1px solid #eee; + padding-bottom: 20px; + margin-bottom: 20px; + min-height: 150px; + padding-left: 220px; + position: relative; +} + +.rctd-boeder:last-child { + border-bottom: none; + margin: 0; +} + +.rctd2 { + position: absolute; + left: 0; + top: 0; + width: 200px; + height: 150px; + background-position: center; + background-size: cover; +} + +.rctd2 span { + position: absolute; + bottom: 0; + left: 0; + width: 100%; + height: 30px; + text-align: center; + line-height: 30px; + background: rgba(0, 0, 0, .5); + color: white; +} + +.rctd3-p { + position: relative; + padding-left: 100px; + line-height: 30px; +} + +.rctd3-p span { + margin-right: 10px; + display: inline-block; + color: #555; +} + +.rctd3-p span:first-child { + position: absolute; + left: 0; + top: 0; + width: 100px; + font-weight: bold; + color: #333; +} + +/* 详情 */ +.details { + background-color: white; + border-top: solid 4px #273981; + margin: 20px auto; + box-sizing: border-box; + padding: 30px; + box-shadow: 0 2px 4px 0 rgba(0, 0, 0, .05); +} + +.details-title { + font-size: 20px; + text-align: center; + color: #273981; +} + +.details-time { + text-align: center; + color: gray; + padding: 15px 0 30px 0; + border-bottom: solid 2px #f1f3f8; +} + +.details-content { + padding: 30px 0; +} + +.details-content img { + max-width: 100%; +} + +.details-writings { + border-top: solid 2px #F1F3F8; + padding-top: 30px; +} + +.details-writings a { + color: gray; +} + +.details-writings a:hover { + color: #273981; +} + +/* 分页 */ +.pages { + text-align: center; + margin-top: 20px; +} + +.pages a { + display: inline-block; + margin: 0 2px; + line-height: 30px; + padding: 0 12px; + text-align: center; + background-color: #f1f3f8; + color: #333; +} + +.pages a:hover, +.pages a.show { + background-color: #273981; + color: white; +} diff --git a/public/assets/index/js/cjango.js b/public/assets/index/js/cjango.js new file mode 100644 index 0000000..17394c6 --- /dev/null +++ b/public/assets/index/js/cjango.js @@ -0,0 +1,7 @@ +$('[data-href]').on('click', function (event) { + event.preventDefault(); + if ($(this).hasClass('ajax-get') || $(this).hasClass('ajax-post')) { + return; + } + location.href = $(this).data('href'); +}); \ No newline at end of file diff --git a/resources/views/articles/picshow.blade.php b/resources/views/articles/picshow.blade.php deleted file mode 100644 index e497a15..0000000 --- a/resources/views/articles/picshow.blade.php +++ /dev/null @@ -1,60 +0,0 @@ -@extends('layouts.app') - -@section('title', '') - -@section('keywords', $article->keywords) -@section('description', $article->description) - -@section('css') - - - -@endsection - -@section('content') -
-
- @include('layouts.left') -
-
-

{{ $article->title }}

-
首页 > {{ $article->category->title }} >
-
-
- -
-
-
-
-
-
-
-@endsection -@push('script') - - - -@endpush diff --git a/resources/views/articles/picture.blade.php b/resources/views/articles/picture.blade.php deleted file mode 100644 index fc030c9..0000000 --- a/resources/views/articles/picture.blade.php +++ /dev/null @@ -1,33 +0,0 @@ -@extends('layouts.app') - -@section('title', '') -@section('keywords', $category->keywords) -@section('description', $category->description) - -@section('content') -
-
- @include('layouts.left') -
-
-

{{ $category->title }}

-
首页 > {{ $category->title }} >
-
- -
- {{ $articles->links() }} -
-
-
-
-
-@endsection diff --git a/resources/views/articles/search.blade.php b/resources/views/articles/search.blade.php new file mode 100644 index 0000000..2971a28 --- /dev/null +++ b/resources/views/articles/search.blade.php @@ -0,0 +1,38 @@ +@extends('layouts.app') + +@section('title', '搜索结果') + + +@section('content') + +
+
+ 首页 + + 搜索结果 +
+ + + +
+ @if ($articles->isNotEmpty()) + {{ $articles->links('layouts.pagination') }} + @endif +
+
+ +@endsection diff --git a/resources/views/articles/show.blade.php b/resources/views/articles/show.blade.php index 60ba9fe..b382a57 100644 --- a/resources/views/articles/show.blade.php +++ b/resources/views/articles/show.blade.php @@ -1,31 +1,26 @@ @extends('layouts.app') -@section('title', '详情') +@section('title', $article->title) -@section('keywords', $article->keywords) -@section('description', $article->description) @section('content') -
-
- @include('layouts.left') -
-
-

{{ $article->category->title }}

-
首页 > {{ $article->category->title }} >
-
-
-
-

{{ $article->title }}

-
发布时间:{{ $article->created_at->format('Y-m-d') }}
-
- {!! $article->content !!} + +
+ +

{{ $article->title }}

+

{{ $article->created_at }}

+ +
+ + + {!! $article->content !!}
-
+ + @if ($next) + + @endif
-
-
-
-
-
@endsection diff --git a/resources/views/category/cgzh.blade.php b/resources/views/category/cgzh.blade.php new file mode 100644 index 0000000..1f0d43f --- /dev/null +++ b/resources/views/category/cgzh.blade.php @@ -0,0 +1,80 @@ +@extends('layouts.app') + +@section('title', $category->title) + +@section('content') + +
+ + + +
+ + +
+ {{ getOneCategory(20,'title') }} + 更多 +
+
+ @if(getArticlesBYCate(20,8)->isNotEmpty()) + @foreach (getArticlesBYCate(20,8) as $article) + @if ($loop->first) + + {{ $article->title }} + + @endif + @endforeach + + @endif +
+ +
+ {{ getOneCategory(21,'title') }} + 更多 +
+
+ @if(getArticlesBYCate(21,8)->isNotEmpty()) + @foreach (getArticlesBYCate(21,8) as $article) + @if ($loop->first) + + {{ $article->title }} + + @endif + @endforeach + + @endif +
+
+
+ +@endsection diff --git a/resources/views/category/djkxwh.blade.php b/resources/views/category/djkxwh.blade.php new file mode 100644 index 0000000..8adbea9 --- /dev/null +++ b/resources/views/category/djkxwh.blade.php @@ -0,0 +1,109 @@ +@extends('layouts.app') + +@section('title', $category->title) + +@section('content') + +
+ + + +
+ + +
+ {{ getOneCategory(32,'title') }} + 更多 +
+
+ @if(getArticlesBYCate(32,8)->isNotEmpty()) + @foreach (getArticlesBYCate(32,8) as $article) + @if ($loop->first) + + {{ $article->title }} + + @endif + @endforeach + + @endif +
+ +
+ {{ getOneCategory(33,'title') }} + 更多 +
+
+ @if(getArticlesBYCate(33,8)->isNotEmpty()) + @foreach (getArticlesBYCate(33,8) as $article) + @if ($loop->first) + + {{ $article->title }} + + @endif + @endforeach + + @endif +
+ +
+ {{ getOneCategory(34,'title') }} + 更多 +
+
+ @if(getArticlesBYCate(34,8)->isNotEmpty()) + @foreach (getArticlesBYCate(34,8) as $article) + @if ($loop->first) + + {{ $article->title }} + + @endif + @endforeach + + @endif +
+
+
+ +@endsection diff --git a/resources/views/category/kxyj.blade.php b/resources/views/category/kxyj.blade.php new file mode 100644 index 0000000..6a6e153 --- /dev/null +++ b/resources/views/category/kxyj.blade.php @@ -0,0 +1,193 @@ +@extends('layouts.app') + +@section('title', $category->title) + +@section('content') + +
+ + + +
+ + {{-- --}} + {{--
--}} + {{-- {{ getOneCategory(11,'title') }}--}} + {{-- 更多--}} + {{--
--}} + {{--
--}} + {{-- @if(getArticlesBYCate(11,8)->isNotEmpty())--}} + {{-- @foreach (getArticlesBYCate(11,8) as $article)--}} + {{-- @if ($loop->first)--}} + {{-- --}} + {{-- {{ $article->title }}--}} + {{-- --}} + {{-- @endif--}} + {{-- @endforeach--}} + {{-- --}} + {{-- @endif--}} + {{--
--}} + +
+ {{ getOneCategory(13,'title') }} + 更多 +
+
    + @foreach (getArticlesBYCate(13,3) as $article) +
  • + +

    {{ $article->title }}

    +
  • + @endforeach +
+ +
+ {{ getOneCategory(12,'title') }} +
+
    +
  • +
    +

    +
      + @if(getPatent(8,'paper')->isNotEmpty()) + @foreach (getPatent(8,'paper') as $paper) +
    • + {{ $paper->title }} +
    • + @endforeach + @endif +
    +
    +
  • +
  • +
    +

    +
      + @if(getPatent(8,'patent')->isNotEmpty()) + @foreach (getPatent(8,'patent') as $patent) +
    • + {{ $patent->title }} +
    • + @endforeach + @endif +
    +
    +
  • +
+ {{-- --}} + {{--
--}} + {{-- 科研进展--}} + {{-- 更多--}} + {{--
--}} + {{--
--}} + {{-- --}} + {{-- --}} + {{--
--}} +
+
+ +@endsection diff --git a/resources/views/category/left.blade.php b/resources/views/category/left.blade.php new file mode 100644 index 0000000..0ff70a1 --- /dev/null +++ b/resources/views/category/left.blade.php @@ -0,0 +1,12 @@ +@if($parent->cover_path) + 导航封面 +@endif + diff --git a/resources/views/category/list.blade.php b/resources/views/category/list.blade.php new file mode 100644 index 0000000..5827876 --- /dev/null +++ b/resources/views/category/list.blade.php @@ -0,0 +1,63 @@ +@extends('layouts.app') + +@section('title', $category->title) + +@section('content') + +
+ + + +
+ + + +
+ +
+ @if ($articles->isNotEmpty()) + {{ $articles->links('layouts.pagination') }} + @endif + {{-- 上一页--}} + {{-- 1--}} + {{-- 2--}} + {{-- 3--}} + {{-- 4--}} + {{-- 5--}} + {{-- ...--}} + {{-- 10--}} + {{-- 下一页--}} +
+
+ +@endsection diff --git a/resources/views/category/rcdw.blade.php b/resources/views/category/rcdw.blade.php new file mode 100644 index 0000000..08539e3 --- /dev/null +++ b/resources/views/category/rcdw.blade.php @@ -0,0 +1,136 @@ +@extends('layouts.app') + +@section('title', $category->title) + +@section('content') + +
+ + + +
+ + +
+ {{ getOneCategory(29,'title') }} +
+
    + @if (getArticlesBYCate(29,16)->isNotEmpty()) + @foreach (getArticlesBYCate(29,16) as $article) +
  • + +
    +

    {{ $article->title }}

    +

    {{ $article->job }}

    +
    +
  • + @endforeach + @endif +
+ +
+ {{ getOneCategory(30,'title') }} +
+
+
+

+ 梯队名称: + 控制科学与技术(共20人) +

+

+ 带头人: + 吴冈 +

+

+ 后备带头人: + 何艳 +

+

+ 梯队成员: + 骆南 + 吕汉 + 张文焱 + 郝明 + 石磊 + 孙凯明 + 宋昌江 + 丛晓丹 + 杨东亮 + 杨洋 + 费磊 + 高凤娇 + 朱国强 + 王刚 + 杨庆禹 + 李昕迪 + 王云龙 + 曹灿 +

+

+ 研究方向: + 智能控制理论及现代测控技术 + 基于各种技术融合的专家推理系统和预测分析系统及50G建模 + 基于计算机的视觉技术的非接触三维测量和识别技术 +

+
+
+
+

+ 梯队名称: + 计算机决策支持系统(共28+1人) +

+

+ 带头人: + 刘彤军 +

+

+ 后备带头人: + 李中伟 +

+

+ 梯队成员: + 朱明清 + 巩伟 + 邓广龙 + 田晓英 + 田力 + 宋永江 + 周晓宇 + 张小平 + 李金波 + 牛健 + 王涛 + 周丽丽 + 杨喆 + 王金玉 + 张宇 + 李长武 + 钱冠华 + 吕宜光 + 孙永欣 + 张迁礼 + 林立鑫 + 张博文 + 李喜东 + 甄海涛 + 张建平 + 杨卓林 + 陈庆文 +

+

+ 研究方向: + 智能控制理论及现代测控技术 + 基于各种技术融合的专家推理系统和预测分析系统及50G建模 + 基于计算机的视觉技术的非接触三维测量和识别技术 +

+
+
+
+ +@endsection diff --git a/resources/views/category/zzjg.blade.php b/resources/views/category/zzjg.blade.php new file mode 100644 index 0000000..25760f1 --- /dev/null +++ b/resources/views/category/zzjg.blade.php @@ -0,0 +1,99 @@ +@extends('layouts.app') + +@section('title', $category->title) + +@section('content') + +
+ + + +
+ + +
+ {{ getOneCategory(2,'title') }} +
+
+
+
+ {{ getOneArticleBYCate(2)->description }} +
+ +
+ +
+ {{ getOneCategory(3,'title') }} +
+
    + @if (getArticlesBYCate(3,6)->isNotEmpty()) + @foreach (getArticlesBYCate(3,6) as $article) +
  • + + {{ $article->title }} +

    {{ $article->job }}

    +

    {{ $article->working }}

    +
  • + @endforeach + @endif + +
+ +
+ {{ getOneCategory(4,'title') }} +
+
+ {{ getOneCategory(5,'title') }} + {{ getOneCategory(6,'title') }} + {{ getOneCategory(7,'title') }} + {{ getOneCategory(8,'title') }} + {{ getOneCategory(9,'title') }} +
+
    +
  • + {{ getOneCategory(37,'title') }} + + @if (getCateChild(37)->isNotEmpty()) + @foreach (getCateChild(37) as $child) + {{ $child->title }} + @endforeach + @endif +
  • +
  • + {{ getOneCategory(38,'title') }} + + @if (getCateChild(38)->isNotEmpty()) + @foreach (getCateChild(38) as $child) + {{ $child->title }} + @endforeach + @endif +
  • +
  • + {{ getOneCategory(39,'title') }} +
  • +
+ +
+ {{ getOneCategory(50,'title') }} +
+
+
+
+ {{ getOneArticleBYCate(50,'description') }} +
+ +
+
+
+ +@endsection diff --git a/resources/views/index/index.blade.php b/resources/views/index/index.blade.php index afe141d..603d8be 100644 --- a/resources/views/index/index.blade.php +++ b/resources/views/index/index.blade.php @@ -3,318 +3,213 @@ @section('title', '首页') @section('content') - - -
-
-
-
-

随手拍

- / BEAT -
-
- - + + +
+ +
+ +
+ {{ getOneCategory(15,'title') }} + 更多 +
+
+ @if ($ysxw->isNotEmpty()) + + + @endif + +
+ +
+ {{ getOneCategory(20,'title') }} + 更多 +
+
+ @if ($kjcg->isNotEmpty()) + + + @endif +
+ +
+ 论文专利 + 更多 +
+
+ @if ($lwzl->isNotEmpty()) + + + @endif +
+
+ +
+ + @if(!empty($ysxw_right_advert)) + + {{ $ysxw_right_advert->title }} + + @endif + + +
+ @if ($kjcg_right_advert->isNotEmpty()) + @foreach ($kjcg_right_advert as $advert) + + {{ $advert->title }} + + @endforeach + @endif +
+ +
+ {{ getOneCategory(57,'title') }} +
+
    + @if (getArticlesBYCate(57,4)->isNotEmpty()) + @foreach (getArticlesBYCate(57,4) as $article) +
  • + + + {{ $article->title }} + +
  • + @endforeach + @endif +
-
-
-
+ +
+ {{ getOneCategory(56,'title') }} +
+
+ @if (getArticlesBYCate(56,3)->isNotEmpty()) + @foreach (getArticlesBYCate(56,3) as $article) + @if ($loop->last) + + + @else + + @endif + @endforeach + @endif - -
-
-
-

期刊简介

- / INTRODUCTION OF THE JOURNAL -
- 更多 > -
-
-
- @if ($danwei) {{ $danwei->description }} @endif +
+ +
+ @if ($lwzl_right_advert->isNotEmpty()) + @foreach ($lwzl_right_advert as $advert) + + {{ $advert->title }} + + @endforeach + @endif -
-
-
-
-
- - -
-
-
-

养生保健

- / HEALTH CARE -
-
    - @foreach ($ysbj as $article) -
  • -
    - -
    -
    -
    {{ $article->title }}
    -
    - {{ $article->description }} -
    - -
    - MORE -
    -
    -
    -
  • - @endforeach - -
-
-
- - -
- - -
-
-
-

精彩推介

- / Wonderful promotion -
- -
    -
  • -
    -
    - - 科研与应用 -
    - -
    - @if ($kyyyy->isNotEmpty()) - - - @endif -
  • -
  • -
    -
    - - 全科医学 -
    - -
    - @if ($qkys->isNotEmpty()) - - - @endif -
  • -
-
-
- -@if($qikan_advert->isNotEmpty()) - -
-
-
-

期刊

- / PERIODICAL -
-
- @foreach ($qikan_advert as $advert) -
- @endforeach -
-
-
-@endif @endsection - - @push('script') - + @endpush diff --git a/resources/views/layouts/app.blade.php b/resources/views/layouts/app.blade.php index 2ffaedb..f0d40f7 100644 --- a/resources/views/layouts/app.blade.php +++ b/resources/views/layouts/app.blade.php @@ -1,127 +1,97 @@ - - + + - - - - - - - {{ config('app.name', '') }} - - - - + + @section('title'){{ config('app.name', '') }}@show + + + + @yield('css') @yield('js') - -
-
- + +
+
+ -
-

电话:{{ config('mobile') }}

-

邮箱:{{ config('email') }}

+ +
+
+ + +
+
+ +
+

面向世界科技前沿,面向国家重大需求,面向国民经济主战场,率先实现科学技术跨越发展,率先建成国家创新人才高地,率先建成国家高水平科技智库,率先建设国际一流科研机构。

+

——智能制造所办所方针

- -
-
-
-

《黑龙江科学》期刊

- Heilongjiang scientific journals -
-
+ - @foreach($all_categorys as $menu) -
  • id==$category->id) class="active" @endif> - @switch($menu->type) - @case('picture') - - {{ $menu->title }} - - @break - @case('show') - @if ($menu->relations) - - {{ $menu->title }} - - @endif - @break - @default - - {{ $menu->title }} - - @break - @endswitch +@include('layouts.header') +@section('content') -
  • - @endforeach - +@show + +@if ($links->isNotEmpty()) + + - @section('content') + +@endif + +
    +

    版权所有黑龙江省科学院      黑ICP备11005256号

    +

    地址:黑龙江省哈尔滨市南岗区汉水路265号      邮政编码:150090

    +

    电话:86-451-82305698      eMail:webmaster@haai.com.cn

    +

    © CopyRight 2002-2012,The Instiute of Automation heilongjiang academy of sciences All rights reserved.

    + 事业单位 +
    + + + + + + + @stack('script') diff --git a/resources/views/layouts/header.blade.php b/resources/views/layouts/header.blade.php new file mode 100644 index 0000000..fefff39 --- /dev/null +++ b/resources/views/layouts/header.blade.php @@ -0,0 +1,336 @@ + + + \ No newline at end of file diff --git a/resources/views/layouts/left.blade.php b/resources/views/layouts/left.blade.php deleted file mode 100644 index bf95e53..0000000 --- a/resources/views/layouts/left.blade.php +++ /dev/null @@ -1,20 +0,0 @@ -
    -
    -
    -

    最新新闻

    -
    -
      - @foreach(\App\Models\Article::where('status',1)->orderBy('id','desc')->take(5)->get() as $news) -
    • {{ $news->title }}
    • - @endforeach -
    -
    -
    -
    -

    联系我们

    -
    -
    -
    黑龙江省杂志社
    联系电话:82316133
    投稿邮箱:hlj16133@163.com
    -
    -
    -
    diff --git a/resources/views/layouts/pagination.blade.php b/resources/views/layouts/pagination.blade.php new file mode 100644 index 0000000..6681fc3 --- /dev/null +++ b/resources/views/layouts/pagination.blade.php @@ -0,0 +1,32 @@ +@if ($paginator->hasPages()) +
    + + {{-- Previous Page Link --}} + @if ($paginator->onFirstPage()) + 上一页 + @else + 上一页 + @endif + + {{-- Pagination Elements --}} + @foreach ($elements as $element) + {{-- Array Of Links --}} + @if (is_array($element)) + @foreach ($element as $page => $url) + @if ($page == $paginator->currentPage()) + {{ $page }} + @else + {{ $page }} + @endif + @endforeach + @endif + @endforeach + + {{-- Next Page Link --}} + @if ($paginator->hasMorePages()) + 下一页 + @else + 下一页 + @endif +
    +@endif diff --git a/resources/views/patents/list.blade.php b/resources/views/patents/list.blade.php new file mode 100644 index 0000000..0bf7717 --- /dev/null +++ b/resources/views/patents/list.blade.php @@ -0,0 +1,50 @@ +@extends('layouts.app') + +@section('title', '论文/专利') + +@section('content') + +
    + + + +
    + + + +
    + +
    + @if ($patents->isNotEmpty()) + {{ $patents->links('layouts.pagination') }} + @endif +
    +
    + +@endsection diff --git a/resources/views/patents/show.blade.php b/resources/views/patents/show.blade.php new file mode 100644 index 0000000..1585ae9 --- /dev/null +++ b/resources/views/patents/show.blade.php @@ -0,0 +1,26 @@ +@extends('layouts.app') + +@section('title', $patent->title) + + +@section('content') + +
    + +

    {{ $patent->title }}

    +

    {{ $patent->created_at }}

    + +
    + + + {!! $patent->content !!} +
    + + @if ($next) + + @endif +
    +@endsection diff --git a/routes/web.php b/routes/web.php index 8f36a4d..5e2d044 100644 --- a/routes/web.php +++ b/routes/web.php @@ -12,9 +12,14 @@ */ Route::get('/', 'IndexController@index')->name('index'); Route::get('articles/{category}/index', 'ArticleController@index')->name('article.index'); -Route::get('articles/{category}/picture', 'ArticleController@picture')->name('article.picture'); -Route::get('articles/{article}/picshow', 'ArticleController@picshow')->name('article.picshow'); Route::get('articles/{article}', 'ArticleController@show')->name('article.show'); +Route::get('search', 'ArticleController@search')->name('article.search'); + +Route::get('category/{category}/show', 'CategoryController@show')->name('category.show');//显示分类 +Route::get('category/{category}/list', 'CategoryController@list')->name('category.list');//显示分类 + +Route::get('patents/{patent}/show', 'PatentController@show')->name('patents.show'); +Route::get('patents/list', 'PatentController@list')->name('patents.list'); //以下为导入数据 Route::get('test/set_category', 'TestController@set_category');