🔓 Ultimate Webshell - Penetration Testing Tool

📖 File Reader

<?php

namespace app\admin\controller;
use adminCreate\form\Form;
use adminCreate\table\Table;
use think\facade\Db;
use think\facade\View;

/*表单生成实例*/
class Copy extends Base
{
    public static $description = "审核管理";
    protected $edit_field = ['title'];
    protected $status_field = ['status'];
    protected $img_field = [];

    /*普通列表*/
    public function form_list()
    {
        return View::fetch();
    }

    /*layui列表*/
    public function layui_list()
    {
        return View::fetch();
    }

    /*layui列表数据*/
    public function layui_list_ajax()
    {
        $keyword = input("param.keyword");
        $where = 1;
        if (!empty($keyword)) {
            $where .= " and name like '%" . $keyword . "%'";
        }
        $list = db::name("goods")->where($where)->order("goods_id desc")->page($this->page, $this->limit)->select()->toArray();
        foreach ($list as $k => $v) {
            $list[$k]["img"] = str_replace('\\', "/", $v["img"]);
            $list[$k]["add_time"] = date("Y-m-d H:i", $v["add_time"]);
        }
        $count = db::name("goods")->where($where)->order("goods_id desc")->count();
        return $this->layui_json($count, $list);
    }

    /*layuiform表单*/
    public function layui_form_update()
    {
        if (input("post.")){
            header("Content-Type:text/html; charset=utf-8");
            echo "<pre>";
            print_r(input("param."));
            echo "</pre>";
            exit();
        }else{
            return View::fetch();
        }
    }

    /*生成表单示例*/
    public function create()
    {
        if ($_POST) {

            header("Content-Type:text/html; charset=utf-8");
            echo "<pre>";
            print_r(input("param."));
            echo "</pre>";
            exit();
            if (!empty(input("param.role_id"))){
                $role_id_arr = input("param.role_id");
                $admin_id_checked = [];
                foreach ($role_id_arr as $v){
                    foreach (input("param.admin_id_checked".$v) as $v2){
                        $admin_id_checked[] = $v2;
                    }
                }
                $info["role_id"] = implode(",", $role_id_arr);
                $info["admin_id_checked"] = implode(",", $admin_id_checked);
            }

            $this->succeed_json('操作成功');
        } else {
            $form = new Form();
            $info = ['admin_id_checked'=>[]];
            $images = [['https://file.iviewui.com/images/image-demo-1.jpg']];
            $files = [['https://kebao.sxzq568.cn/excels/20211020/7c046c5b546d9c2ee4f73f6a99924e58.xls']];
            $mp4 = [['http://dong.rdss2022.cn/059dad522fcca879de863b2010956a0a.mp4']];
            $images = [];
            $files = [];
            $mp4 = [];
            $menus[] = ['label' => '请选择', 'value' => 0];
            $menus[] = ['label' => '加', 'value' => 1];
            $menus[] = ['label' => '减', 'value' => 2];
//            // 选项卡 如果有选项卡 其他生成加tabs 不加不显示
            $form->tabs('tabs1', '基本信息');
            $form->tabs('tabs2', '描述详情');
            $form->tabs('tabs0', '待开发...');
            $form->tips("生成表单标题")->tabs('tabs1');
            $form->tips_warning('警示标题:','详细内容')->tabs("tabs1");
            //分行符
            $form->hr()->tabs('tabs1');

            $form->input('text', 'input文本框','')->tabs('tabs1')->clearable(true);
            $form->input('textarea', 'textarea文本域','')->tabs('tabs1')->maxlength(10)->type('textarea');
            $form->input('addtext', '复合型输入框','')->tabs('tabs1')->prepend(['field'=>'sub_money','data'=>$menus,'value'=>0])->append('剩余金额0')->append_color("#ed4014");
            $form->input('icon', 'icon文本框','')->tabs('tabs1')->icon('ios-camera');
            $form->input('password', '密码框','')->tabs('tabs1')->type('password');
            $form->input('readonly', '只读文本框','')->tabs('tabs1')->readonly(true);
            $form->input('disabled', '禁用文本框','')->tabs('tabs1')->disabled(true);
            $form->number('number', '数字', 100)->tabs('tabs1')->formatter('%');
            $form->number('number', '数字', 100)->tabs('tabs1')->formatter('元');
            $form->number('number', '数字', 100)->tabs('tabs1')->weizhi(true);
            $form->number('number', '数字整数', 100)->precision(0)->placeholder('请输入')->required()->tabs('tabs1');//不保留小数

            $form->number('number1', '数字1', '')->placeholder('数字1')->required()->tabs('tabs1');
            $form->number('number2', '数字2', '')->placeholder('数字2')->required()->tabs('tabs1');
            $form->number('number_zong', '计算总数', '')->tabs('tabs1')->calculate('number1+number2')->placeholder('总和')->required();

            $form->switch('switch', '开关', 1)->tabs('tabs1');
            $form->switch('switch', '开关', 1)->tabs('tabs1')->open('测试')->close('关闭');
            $form->radio('switch1', '开关', "1")->tabs('tabs1')->setOptions('status');

            /*外部定义参数*/
            $menus[] = ['label' => '保密', 'value' => '0'];
            $menus[] = ['label' => '男', 'value' => '1'];
            $menus[] = ['label' => '女', 'value' => '2'];
            $form->radio('radio1', '单选1', 0)->setOptions(function () use($menus) {
                return $menus;
            })->tabs('tabs1');

            $form->radio('radio2', '单选2', 0)->setOptions(function () {
                $menus[] = ['label' => '保密', 'value' => '0'];
                $menus[] = ['label' => '男', 'value' => '1'];
                $menus[] = ['label' => '女', 'value' => '2'];
                return $menus;
            })->tabs('tabs1')->type('button');
            $form->radio('radio3', '单选3', 0)->setOptions(function () {
                $menus[] = ['label' => '保密', 'value' => '0'];
                $menus[] = ['label' => '男', 'value' => '1'];
                $menus[] = ['label' => '女', 'value' => '2'];
                return $menus;
            })->tabs('tabs1')->type('button')->style('solid');

            $form->checkbox('checkbox', '复选', ['0','1'])->setOptions(function () {
                $menus[] = ['label' => '保密', 'value' => '0'];
                $menus[] = ['label' => '男', 'value' => '1'];
                $menus[] = ['label' => '女', 'value' => '2'];
                return $menus;
            })->tabs('tabs1')->required();
            $form->checkbox('checkbox2', '复选(带多选)', ['0','1'])->setOptions(function () {
                $menus[] = ['label' => '保密', 'value' => '0'];
                $menus[] = ['label' => '男', 'value' => '1'];
                $menus[] = ['label' => '女', 'value' => '2'];
                return $menus;
            })->tabs('tabs1')->CheckAll(true)->required();

            $form->star('num_xing','星星评分',3)->tabs('tabs1');

            $form->upload('file', '文件上传', '/admin/ad/uploads', $files,'file')->nultiple(true)->maxLength(9)->tabs('tabs1');
            $form->upload('mp4', '视频上传', '/admin/ad/uploads', $mp4,'mp4')->tabs('tabs1')->maxLength(10);
            $form->upload('upload', '图片上传', '/admin/ad/uploads', $images,'image')->tabs('tabs1')->disabled(true)->nultiple(false)->tips('尺寸200x200');
            $form->upload('img_data', '图册', '/admin/ad/uploads', [])->nultiple(true)->maxLength(9)->required('',"array")->tabs('tabs1');

            $files_data = [
                ['url'=>'/public/uploads/file/20240715/51e447f1d796efdf018f2852c3d880cc.jpg','name'=>'avatar.jpg'],
                ['url'=>'/public/uploads/file/20240724/b4f03d989de600db8625d8a9b986ff64.docx','name'=>'3z自做主账号信息.docw'],
                ['url'=>'/public/uploads/file/20240724/48e801753e92f1f261832b86ed94d866.rar','name'=>'f408.rar']
            ];
            $form->upload_file('file_all','附件上传','/admin/ad/uploads', $files_data,'file')->nultiple(true)->maxLength(9)->disabled(true)->tabs('tabs1');

            $menus1[] = ['title' => '2024-11-8 16:18 开发者', 'content' => '更新日志带缩略图','img'=>[
                'http://zhili.jiboshimr.cn/public/uploads/file/20241108/faa48fd0350b0af8c2ede955cd5ce739.jpg','https://unpkg.com/outeres@0.1.1/demo/outer-space.jpg'
            ]];
            $menus1[] = ['title' => '2024-11-8 16:18 开发者', 'content' => '更新日志带缩略图','img'=>[
                'http://zhili.jiboshimr.cn/public/uploads/file/20241108/faa48fd0350b0af8c2ede955cd5ce739.jpg','https://unpkg.com/outeres@0.1.1/demo/outer-space.jpg'
            ]];
            $form->list_log('明细',$menus1)->placeholder("日志列表")->tabs('tabs1');

            //动态列表
            $Table = [
                $form->Tableimges('img', '缩略图','/admin/ad/uploads'),
                $form->Tabletext('guige_name', '规格名称',true,'260',"left"),
                $form->Tabletext('price', '售价'),
                $form->Tabletext('stocks', '库存'),
                $form->Tableaction('action', '操作'),
            ];
            $table_data_default = ['img'=>[],'guige_name'=>'','price'=>'','stocks'=>''];
            $table_data = [
                ['img'=>['https://file.iviewui.com/images/image-demo-1.jpg'],'guige_name'=>'规格名称','price'=>100,'stocks'=>1000],
            ];
            $form->Table('guige_list', '动态列表',$Table,$table_data,$table_data_default)->is_type(0)->col(24)->tabs('tabs1');

            $form->color('colo1r', '颜色')->tabs('tabs1');
            $form->selectone('selectduoxuan', '下拉多选', ['1','2','3'])->setOptions(function () {
                $menus[] = ['label' => '男', 'value' => 1,'img'=>'http://naizhan.gkktc.cn/public/uploads/img/20230421/70cbda09dbbab63a9901f73f36bf5a5c.jpg'];
                $menus[] = ['label' => '女', 'value' => 2];
                $menus[] = ['label' => '男', 'value' => 3];
                $menus[] = ['label' => '女', 'value' => 4];
                $menus[] = ['label' => '男', 'value' => 5];
                $menus[] = ['label' => '女', 'value' => 6];
                $menus[] = ['label' => '男', 'value' => 7];
                return $menus;
            })->tabs('tabs1')->multiple(true)->filterable(false);
            $form->selectone('select', '下拉单选', 1)->setOptions(function () {
                $menus[] = ['label' => '男', 'value' => 1,'img'=>'http://naizhan.gkktc.cn/public/uploads/img/20230421/70cbda09dbbab63a9901f73f36bf5a5c.jpg'];
                $menus[] = ['label' => '女', 'value' => 2];
                $menus[] = ['label' => '男', 'value' => 3];
                $menus[] = ['label' => '女', 'value' => 4];
                $menus[] = ['label' => '男', 'value' => 5];
                $menus[] = ['label' => '女', 'value' => 6];
                $menus[] = ['label' => '男', 'value' => 7];
                return $menus;
            })->tabs('tabs1')->multiple(false)->filterable(false);

            /*关联查询1*/
            $form->selectOne('act_id_xiala', '下拉关联展示隐藏','')->setOptions(function(){
                $menus[] = ['label' => '音频', 'value' => 1];
                $menus[] = ['label' => '视频', 'value' => 2];
                return $menus;
            })->tabs('tabs1')->multiple(false)->filterable(false)->required();
            $form->input('mp3_url', '音频','')->col(24)->tabs('tabs1')->required()->show('act_id_xiala1');
            $form->input('mp4_url', '视频','')->col(24)->tabs('tabs1')->required()->show('act_id_xiala2');
            $form->checkbox('selectduoxuanyincang', '多选显示隐藏', [])->setOptions(function () {
                $menus[] = ['label' => '男', 'value' => 1];
                $menus[] = ['label' => '女', 'value' => 2];
                $menus[] = ['label' => '男', 'value' => 3];
                return $menus;
            })->tabs('tabs1')->required();
            $form->input('selectduoxuan1/2', '多选关联展示隐藏','')->tabs('tabs1')->clearable(true)->show(['selectduoxuanyincang1','selectduoxuanyincang2']);
            /*关联查询2*/
            $admin_role = db::name("admin_role")->order("id asc")->select()->toArray();
            $menus_role = [];
            foreach ($admin_role as $v){
                $menus_role[] = ['label' => $v["name"], 'value' => $v["id"]];
            }
            $form->checkbox('role_id', '角色关联展示隐藏', [])->setOptions($menus_role)->tabs('tabs1')->required();
            foreach ($admin_role as $k => $v){
                $admin_list = db::name("admin")->where("role_id = '". $v['id']."'")->order("admin_id asc")->select()->toArray();
                $menus = [];
                $inform_admin = '';
                foreach ($admin_list as $v2){
                    $menus[] = ['label' => $v2["nickname"], 'value' => $v2["admin_id"]];
                    $inform_admin .= $v2["admin_id"].',';
                }
                if(!empty($menus)){
                    if (!empty($id)){
                        $inform_admin = '';
                        foreach ($info["admin_id_checked"] as $v3){
                            foreach ($admin_list as $v4){
                                if ($v3 == $v4["admin_id"]){
                                    $inform_admin .= $v4["admin_id"].',';
                                }
                            }
                        }
                    }
                    $inform_admin = substr($inform_admin,0,strlen($inform_admin)-1);
                    $inform_admin = $inform_admin != ''?explode(',',$inform_admin):[];
                    $form->checkbox('admin_id_checked'.$v["id"], $v["name"], $inform_admin)->setOptions($menus)->tabs('tabs1')->show('role_id'.$v["id"])->required();
                }
            }

            $form->cascader('city', '地区', [1, 2, 3])->setOptions(function () {
                $menus[] = [
                    'label' => '黑龙江', 'value' => 1,
                    'children' => [
                        [
                            'label' => '哈尔滨',
                            'value' => 2,
                            'loading' => false,
                            'children' => [
                                [
                                    'label' => '木兰',
                                    'value' => 3
                                ]
                            ]
                        ]
                    ]
                    , 'loading' => false
                ];
                $menus[] = ['label' => '哈尔滨', 'value' => 4];
                return $menus;
            })->tabs('tabs1')->required('','array');
            $form->datetime('date', '日期')->type('date')->format('yyyy-MM-dd')->tabs('tabs1')->show('act_id1');
            $form->datetime('date', '日期')->type('date')->format('yyyy-MM-dd')->tabs('tabs1');
            $form->datetime('month', '月份')->type('month')->format('yyyy-MM')->tabs('tabs1')->required();
            $form->datetime('datetime', '日期带时间')->tabs('tabs1')->type('datetime');
            $form->datetime('time', '时间')->tabs('tabs1')->type('time')->format('HH:mm');
            $date_time = ["2025-01-13", "2025-01-17"];
            $form->datetime('date_time', '日期范围',$date_time)->type('daterange')->format('yyyy-MM-dd')->tabs('tabs1');

            $form->select_number('select_number', '余额')->select_value('+')->tabs('tabs1')->annotation("余额10")->color('red');
            $form->text('biaoqian1', '动态标签',['',''])->col(10)->required()->tabs('tabs1');
            $form->text('biaoqian2', '动态标签',['',''])->col(10)->tab_type('datetime')->format('yyyy-MM-dd')->tabs('tabs1');
            $form->editor('editor1', '详细内容', '')->tabs('tabs2')->action('/admin/ad/uploads');

            $form->hidden('user_id',1);
            $form->button('/admin/Copy/create');
            return $form;
        }
    }

    /*生成列表*/
    public function index()
    {
        if ($this->request->isAjax()) {
            $this->formparam('title');
            $arr = Db::table('copy')
                ->where($this->where)
                ->order('id desc')
                ->paginate($this->post['limit'])->each(function ($v) {
                    $v['create_time'] = date('Y-m-d H:i', $v['create_time']);
                    return $v;
                });
            return $this->ivuTable($arr);
        }
        $table = new Table();
        $table->list([
            $table->checkbox(),
            $table->strong('id', '编号'),
            $table->image('img_url', '图片'),
            $table->edit('title', '标题'),
            $table->switch('status', '状态'),
            $table->text('create_time', '时间'),
            $table->listTool(),
        ]);
        $table->top([
            $table->button('添加', 'create'),
            $table->confirm('批量删除', 'destroy')->type('error'),
        ]);
        $table->tool([
            $table->button('编辑', 'edit')->type('success'),
            $table->confirm('删除', 'destroy')->type('error'),
        ]);
        return $table;
    }
}