OrderOptionController.php 7.6 KB
<?php
/**
 * Created by PhpStorm.
 * User: 29925
 * Date: 2018/8/3
 * Time: 15:29
 */

namespace app\admin\controller;

use app\admin\model\OrderOptionModel;
use cmf\controller\AdminBaseController;
use think\Config;
use think\Db;

/**
 * Class OrderOptionController
 * @package app\admin\controller
 * @adminMenuRoot(
 *     'name'   =>'电子订单管理',
 *     'action' =>'default',
 *     'parent' =>'',
 *     'display'=> true,
 *     'order'  => 0,
 *     'icon'   =>'first-order',
 *     'remark' =>'电子订单管理'
 * )
 */
class OrderOptionController extends AdminBaseController
{
    protected $type;
    protected $table;
    protected $order_option_model;
    public function _initialize()
    {
        $this->table = 'OrderOption';
        $this->order_option_model = new OrderOptionModel();
//        $this->type = [
//            'text' => '文本',
//            'radio' => '单选',
//            'checkbox' => '复选',
//            'textarea' => '多行文本',
//            'select' => '下拉菜单',
//            'image' => '图片',
//            'linkage' => '链接'
//        ];
//        $this->type = ['文本', '单选', '复选', '多行文本', '下拉菜单', '图片', '链接'];
        $this->type = [1 => '文本', 2 => '文本(数字)', 3 => '文本(手机号码)', 4 => '单选', 5 => '复选', 6 => '多行文本', 7 => '下拉菜单', 8 => '图片',9 => '链接',10 => '日期',11 => '地区联动',12 => '客户编号'];
        $this->assign('typeList', $this->type);
    }

    /**
     * 表单字段列表
     * @adminMenu(
     *     'name'   => '表单字段管理',
     *     'parent' => 'admin/OrderOption/default',
     *     'display'=> true,
     *     'hasView'=> true,
     *     'order'  => 10000,
     *     'icon'   => '',
     *     'remark' => '表单字段管理',
     *     'param'  => ''
     * )
     */
    public function index() {
        $param = $this->request->param();
        $where = [
            'delete_time'=>0
        ];
        if(isset($param['keyword'])) {
            $where['name|values'] = ['like','%'.$param['keyword'].'%'];
        }
        if(isset($param['sort'])) {
            $where['sort'] = $param['sort'];
        }
        $list = $this->singleData($this->table,$where,2,['create_time'=>'DESC']);
        $list->appends($param);
        $this->assign('list',$list->items());
        $this->assign('page',$list->render());
        $this->assign('keyword',isset($param['keyword']) ? $param['keyword'] : '');
        $this->assign('sort',isset($param['sort']) ? $param['sort'] : '');
        return $this->fetch();
    }

    /**
     * 添加表单字段
     * @adminMenu(
     *     'name'   => '添加表单字段',
     *     'parent' => 'index',
     *     'display'=> false,
     *     'hasView'=> false,
     *     'order'  => 1,
     *     'icon'   => '',
     *     'remark' => '添加表单字段',
     *     'param'  => ''
     * )
     */
    public function add() {
        return $this->fetch();
    }

    /**
     * 添加表单字段提交
     * @adminMenu(
     *     'name'   => '添加表单字段提交',
     *     'parent' => 'index',
     *     'display'=> false,
     *     'hasView'=> false,
     *     'order'  => 2,
     *     'icon'   => '',
     *     'remark' => '添加表单字段提交',
     *     'param'  => ''
     * )
     */
    public function addPost() {
        if($this->request->isPost()) {
            $post = $this->request->param();
            $validate = $this->validate($post, $this->table);
            if ($validate !== true) {
                $this->error($validate);
            }
            if ($post['sort'] == 4 || $post['sort'] == 5 || $post['sort'] == 7) {
                if (empty($post['values'])) {
                    $this->error('取值范围不能为空');
                }
                $post['values'] = str_replace(',', ',', trim($post['values']));
            }
            if(empty($post['icon'])) {
                $post['icon'] = 'admin/20181008/e40464f84105b3b27449e70cc1bb68e3.png';
            }
            if(empty($post['is_show'])) {
                $post['is_show'] = 0;
            }
            $result = $this->order_option_model->addOption($post);
            if (!$result) {
                $this->error('添加失败');
            }
            $this->success('添加成功');
        }
    }

    /**
     * 编辑表单字段
     * @adminMenu(
     *     'name'   => '编辑表单字段',
     *     'parent' => 'index',
     *     'display'=> false,
     *     'hasView'=> false,
     *     'order'  => 3,
     *     'icon'   => '',
     *     'remark' => '编辑表单字段',
     *     'param'  => ''
     * )
     */
    public function edit() {
        $id = $this->request->param('id',0,'intval');
        if(!$id) {
            $this->error('参数错误');
        }
        $info = $this->singleData($this->table,['id'=>$id,'delete_time'=>0]);
        $this->assign($info);
        return $this->fetch();
    }

    /**
     * 编辑表单字段提交
     * @adminMenu(
     *     'name'   => '编辑表单字段提交',
     *     'parent' => 'index',
     *     'display'=> false,
     *     'hasView'=> false,
     *     'order'  => 4,
     *     'icon'   => '',
     *     'remark' => '编辑表单字段提交',
     *     'param'  => ''
     * )
     */
    public function editPost() {
        if($this->request->isPost()) {
            $id = $this->request->param('id', 0, 'intval');
            if (!$id) {
                $this->error('参数错误');
            }
            $post = $this->request->param();
            $validate = $this->validate($post, $this->table);
            if ($validate !== true) {
                $this->error($validate);
            }
            if ($post['sort'] == 4 || $post['sort'] == 5 || $post['sort'] == 7) {
                if (empty($post['values'])) {
                    $this->error('取值范围不能为空');
                }
                $post['values'] = str_replace(',', ',', trim($post['values']));
            }
            if(empty($post['icon'])) {
                $post['icon'] = 'admin/20181008/e40464f84105b3b27449e70cc1bb68e3.png';
            }
            if(empty($post['is_show'])) {
                $post['is_show'] = 0;
            }
            $result = $this->order_option_model->editOption($post);
            if (!$result) {
                $this->error('修改失败');
            }
            $this->success('修改成功');
        }
    }

    /**
     * 删除表单字段
     * @adminMenu(
     *     'name'   => '删除表单字段',
     *     'parent' => 'index',
     *     'display'=> false,
     *     'hasView'=> false,
     *     'order'  => 5,
     *     'icon'   => '',
     *     'remark' => '删除表单字段',
     *     'param'  => ''
     * )
     */
    public function delete() {
        $id = $this->request->param('id',0,'intval');
        $ids = $this->request->param('ids/a');
        if(isset($id)) {
            $result = $this->order_option_model->where(['id'=>$id])->update(['delete_time'=>time()]);
        }
        if(isset($ids)) {
            $result = $this->order_option_model->where(['id'=>['in',$ids]])->update(['delete_time'=>time()]);
        }
        if(!$result) {
            $this->error('删除失败');
        }
        $this->success('删除成功');
    }

    // 获取单选内容数据
    public function getRadioData() {
        if($this->request->isAjax()) {
            $id = $this->request->param('id',0,'intval');
            $values = $this->order_option_model->where(['id'=>$id])->value('values');
            $this->success('成功','',explode(',',$values));
        }
    }
}