ywtc_api/application/other/admin/Advert.php

168 lines
6.5 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<?php
/**
* Created by coder loomis.li
* User: coder loomi
* Date: 2022/09/06 15:02
*/
namespace app\other\admin;
use think\Db;
use app\admin\controller\Admin;
use app\common\builder\ZBuilder;
use app\other\model\Advert as AdvertModel;
/**
* 广告控制器
* @package app\product\admin
*/
class Advert extends Admin
{
private $typearr = [
1=>'首页广告(尺寸:410 × 230',
2=>'留言板规格(尺寸:410 × 230',
3=>'分享海报',
4=>'首页底部浮动广告(尺寸:1360 × 274',
];
/**
* 广告列表
* @author loomis <2477365162@qq.com>
* @return mixed
*/
public function index(){
// 获取
$map = $this->getMap();
// 排序
$order = $this->getOrder('sort asc,create_time desc');
//数据
$data_list = AdvertModel::where($map)->order($order)->paginate();
// 分页数据
$page = $data_list->render();
//加载模板
return ZBuilder::make('table')
->setSearchArea([
['text', 'title', '广告标题', 'like'],
['select', 'type', '广告类别', 'eq', '', $this->typearr],
['daterange','create_time','添加时间','between'],
])
->setPageTitle('广告列表') // 设置页面标题
->setTableName('advert')
->addOrder('create_time') // 添加排序
->addColumns([ // 批量添加列
['type', '类型','text','',$this->typearr],
['title', '广告标题','text'],
['thumb', '广告图片','picture'],
['sort','排序(顺序排序)','text.edit'],
['create_time', '添加时间','datetime'],
['right_button', '操作', 'btn']
])
->addTopButton('release',['class'=>'btn btn-primary','icon' => 'fa fa-plus-circle','title'=>'添加广告', 'href' => url('add')])
->addRightButton('edit',['title'=>'編輯','icon'=>'fa fa-pencil','href'=>url('edit',['id' => '__id__'])])
->addRightButton('delete') // 添加右侧按钮
->setRowList($data_list) // 设置表格数据
->setPages($page) // 设置分页数据
->setTabNav([
'tab1' => ['title' => '广告列表', 'url' => url('other/advert/index', ['group' => 'tab1'])],
'tab2' => ['title' => '添加广告', 'url' => url('other/advert/add', ['group' => 'tab2'])],
], 'tab1')
->fetch(); // 渲染模板
}
/**
* 添加广告
* @author loomis <2477365162@qq.com>
* @return mixed
*/
public function add(){
// 保存数据
if ($this->request->isPost()) {
$data = $this->request->post();
if(!isset($data['title'])|| empty($data['title'])){
return $this->error('广告名称不能为空');
}
$r = AdvertModel::create($data);
if($r){
$this->success('新增成功', url('index'));
}else{
$this->error('新增失败');
}
}else{
// 使用ZBuilder快速创建表单
return ZBuilder::make('form')
->setPageTitle('新增广告') // 设置页面标题
->addFormItems([ // 批量添加表单项
['select', 'type', '广告类型','<code>必选</code>',$this->typearr],
['text', 'title', '广告名称','<code>必填</code>'],
['image:4', 'thumb', '广告图片', '<code>必上传</code>'],
['image:4', 'img1', '页面背景图', '<code>必上传</code>'],
['images:4', 'img2', '微信二维码图(多图)', '<code>必上传</code>'],
['text', 'sort', '排序(越小前台显示越靠前)','',9999],
['textarea:6', 'linkurl', '广告链接','<code>必填</code>'],
['textarea:6', 'summary', '广告介绍','<code>必填</code>'],
])
->setTabNav([
'tab1' => ['title' => '广告列表', 'url' => url('other/advert/index', ['group' => 'tab1'])],
'tab2' => ['title' => '添加广告', 'url' => url('other/advert/add', ['group' => 'tab2'])],
], 'tab2')
->setTrigger('type', '4', 'img1,img2')
->fetch();
}
}
/**
* 编辑广告广告
* @author loomis <2477365162@qq.com>
* @return mixed
*/
public function edit($id=null){
if ($id === null) return $this->error('缺少参数');
// 保存数据
if ($this->request->isPost()) {
$data = $this->request->post();
if(!isset($data['title'])|| empty($data['title'])){
return $this->error('广告名称不能为空');
}
$r = AdvertModel::update($data);
if($r){
$this->success('编辑成功', url('index'));
}else{
$this->error('编辑失败');
}
}else{
$info = AdvertModel::get($id);
// 使用ZBuilder快速创建表单
return ZBuilder::make('form')
->setPageTitle('编辑广告') // 设置页面标题
->addFormItems([ // 批量添加表单项
['hidden', 'id'],
['select', 'type', '广告类型','<code>必选</code>',$this->typearr],
['text', 'title', '广告名称','<code>必填</code>'],
['image:4', 'thumb', '广告图片', '<code>必上传</code>'],
['image:4', 'img1', '页面背景图', '<code>必上传</code>'],
['images:4', 'img2', '微信二维码图(多图)', '<code>必上传</code>'],
['text', 'sort', '排序(越小前台显示越靠前)','',9999],
['textarea:6', 'linkurl', '广告链接','<code>必填</code>'],
['textarea:6', 'summary', '广告介绍','<code>必填</code>'],
])
->setFormData($info)
->setTabNav([
'tab1' => ['title' => '广告列表', 'url' => url('other/advert/index', ['group' => 'tab1'])],
'tab2' => ['title' => '添加广告', 'url' => url('other/advert/add', ['group' => 'tab2'])],
], '')
->setTrigger('type', '4', 'img1,img2')
->fetch();
}
}
}