📖 File Reader
<?php
namespace app\admin\controller;
use adminCreate\form\Form;
use app\admin\common\Common_menus;
use app\admin\model\ModelAdmin;
use think\facade\Db;
use think\facade\View;
use FormBuilder\Factory\Elm;
use FormBuilder\Form\IviewForm;
use FormBuilder\Response;
class Admin extends Base
{
/*管理员列表*/
public function admin_list()
{
$role_list = db::name("admin_role")->order("id asc")->select();
View::assign([
'role_list'=>$role_list,
]);
return View::fetch();
}
/*管理员列表数据*/
public function admin_list_ajax()
{
$keyword = input("param.keyword");
$role_id = input("param.role_id");
$where = 1;
if (!empty($keyword)){
$where .= " and (a.nickname like '%".$keyword."%' or a.user_name like '%".$keyword."%')";
}
if (!empty($role_id)){
$where .= " and role_id = $role_id";
}
$list = db::name("admin")->alias("a")
->join("admin_role b","a.role_id = b.id","LEFT")
->field("a.*,b.name as role_name,b.type as role_type")
->where($where)
->order("a.admin_id desc")
->page($this->page,$this->limit)
->select()
->toArray();
foreach ($list as $k => $v){
$role_type = '';
if ($v["role_type"] == 1){
$role_type = "平台管理员";
}elseif ($v["role_type"] == 2){
$role_type = "店铺管理员";
}
$list[$k]["role_type"] = $role_type;
$list[$k]["head"] = str_replace('\\',"/",$v["head"]);
$list[$k]["add_time"] = date("Y-m-d H:i",$v["add_time"]);
}
$count = db::name("admin")->alias("a")
->join("admin_role b","a.role_id = b.id","LEFT")
->where($where)
->count();
return $this->layui_json($count,$list);
}
/*管理员基本资料*/
public function admin_basic()
{
$admin_id = $this->admin_id;
if (input("post.")){
$info = [];
if (!empty($_POST["password"])){
if (input("param.password") != input("param.password2")){
return $this->error_json("两次密码不一致");
}
$info["password"] = base64_encode($_POST["password2"]);
}
db::name("admin")->where("admin_id = $admin_id")->data($info)->update();
return $this->succeed_json("操作成功");
}else{
$admin_info = db::name("admin")->alias("a")->where("admin_id = $admin_id")->find();
$role_list = db::name("admin_role")->order("id asc")->select();
View::assign([
'admin_info'=>$admin_info,
'role_list'=>$role_list,
]);
return View::fetch();
}
}
/*管理员创建*/
public function admin_update()
{
$admin_id = input("param.admin_id");
$admin_role_shop = db::name("admin_role")->where("type = 2")->field("id,type,name")->select()->toarray();
$role_shop_id = [];//店铺角色id
foreach ($admin_role_shop as $v){
$role_shop_id[] = $v["id"];
}
if ($_POST){
$user_name = input("param.user_name");
$password = input("param.password");
$password2 = input("param.password2");
if (!empty($password)){
if ($password != $password2){
return $this->error_json("密码不一致");
}
}
$where = 1;
if (!empty($admin_id)){
$where .= " and admin_id != $admin_id";
}
$admin_info = db::name("admin")->where("user_name = '$user_name' and $where")->find();
if (!empty($admin_info)){
return $this->error_json("该账号已存在");
}
$info = [
'shop_id'=>input("param.shop_id"),
'nickname'=>input("param.nickname"),
'head'=>input("param.head") != ''?implode(",",input("param.head")):'',
'role_id'=>input("param.role_id"),
'user_name'=>input("param.user_name"),
];
if (!empty($password)){
$info["password"] = base64_encode(input("param.password"));
}
if (!in_array($info['role_id'],$role_shop_id)){ //非店铺管理员,无需绑定店铺id
$info["shop_id"] = 0;
}
if (empty($admin_id)){
$info["add_time"] = time();
db::name("admin")->insertGetId($info);
}else{
db::name("admin")->where("admin_id = $admin_id")->data($info)->update();
}
return $this->succeed_json("操作成功");
}else{
$info = ['nickname'=>'','role_id'=>'','head'=>[],'user_name'=>'','shop_id'=>''];
if (!empty($admin_id)){
$info = db::name("admin")->where("admin_id = $admin_id")->find();
$info["shop_id"] = $info["shop_id"] == 0?'':$info["shop_id"];
}
$form = new Form();
$form->tabs('tabs1', '基本信息');
$form->selectOne('role_id', '角色',$info["role_id"])->setOptions(function(){
$admin_role = db::name("admin_role")->order("id desc")->select()->toArray();
$menus = [];
foreach ($admin_role as $k => $v){
$menus[] = ['label'=>$v["name"],'value'=>$v["id"]];
}
return $menus;
})->multiple(false)->filterable(false)->required()->tabs('tabs1');
/*店铺管理员绑定店铺*/
$shop_show = [];//需绑定店铺账号的角色
foreach ($admin_role_shop as $v){
$shop_show[] = 'role_id'.$v["id"];
}
$form->selectone('shop_id', '绑定店铺', $info["shop_id"])->setOptions(function () {
$shop_list = db::name("shop")->where("state in (1)")->field("id,name,name_person,mobile_person")->order("id asc")->select()->toArray();
$menus = [];
foreach ($shop_list as $v){
$menus[] = ['label' => $v['name'], 'value' => $v['id']];
}
return $menus;
})->tabs('tabs1')->multiple(false)->filterable(true)->required()->show($shop_show);
if (!empty($admin_id)){
$form->input('user_name', '账号',$info["user_name"])->col(7)->disabled(true)->tabs('tabs1');
$form->input('password', '新密码','')->type('password')->col(7)->tabs('tabs1');
$form->input('password2', '确认密码','')->type('password')->col(7)->tabs('tabs1');
}else{
$form->input('user_name', '账号',$info["user_name"])->col(7)->required()->tabs('tabs1');
$form->input('password', '新密码','')->type('password')->col(7)->tabs('tabs1')->required();
$form->input('password2', '确认密码','')->type('password')->col(7)->tabs('tabs1')->required();
}
$form->input('nickname', '昵称',$info["nickname"])->required()->tabs('tabs1');
$form->upload('head', '头像', '/admin/ad/uploads', [$info['head']])->nultiple(false)->required('',"array")->tabs('tabs1');
$form->hidden('admin_id',$admin_id);
$form->button('/admin/Admin/admin_update');
return $form;
}
}
/*管理员删除*/
public function admin_del()
{
$admin_id = input("param.admin_id");
if ($admin_id == $this->admin_id){
return $this->error_json("不可删除本账号");
}
db::name("admin")->where("admin_id = $admin_id")->delete();
return $this->succeed_json("删除成功");
}
/*角色管理*/
public function role_list()
{
return View::fetch();
}
/*角色数据*/
public function role_list_ajax()
{
$name = input("param.name");
$where = 1;
if (!empty($name)){
$where .= " and (`name` like '%".$name."%' or `describe` like '%".$name."%')";
}
$list = db::name("admin_role")->where($where)->order("id desc")->page($this->page,$this->limit)->select()->toArray();
foreach ($list as $k => $v){
$type = '';
if ($v["type"] == 1){
$type = "平台管理员";
}else if ($v["type"] == 2){
$type = "店铺管理员";
}
$list[$k]["type"] = $type;
$list[$k]["add_time"] = date("Y-m-d H:i",$v["add_time"]);
}
$count = db::name("admin_role")->where($where)->count();
return $this->layui_json($count,$list);
}
/*角色创建*/
public function role_add()
{
$jurisdiction_list = Common_menus::jurisdiction();
View::assign([
'jurisdiction_list'=> $jurisdiction_list,
]);
return View::fetch();
}
/*角色编辑*/
public function role_edit()
{
$role_id = input("param.role_id");
$role_info = db::name("admin_role")->where("id = $role_id")->find();
$jurisdiction_list = Common_menus::jurisdiction($role_id);
View::assign([
'jurisdiction_list'=> $jurisdiction_list,
'role_id'=> $role_id,
'role_info'=> $role_info,
]);
return View::fetch();
}
/*角色数据处理*/
public function role_upload()
{
$id = input("param.id");
$jurisdiction = '';
if (!empty($_POST["jurisdiction_id"])){
$jurisdiction = implode(",", $_POST["jurisdiction_id"]);
}
$info = [
'type'=>$_POST["type"],
'name'=>$_POST["name"],
'describe'=>$_POST["describe"],
'jurisdiction'=>$jurisdiction,
'add_time'=>time(),
];
if (empty($id)){
db::name("admin_role")->insertGetId($info);
return $this->succeed_json("创建成功");
}else{
db::name("admin_role")->where("id = $id")->data($info)->update();
return $this->succeed_json("修改成功");
}
}
/*角色删除*/
public function role_del()
{
$role_id = input("param.id");
$count = db::name("admin")->where("role_id = $role_id")->count();
if (!empty($count)){
return $this->error_json("已存在该角色不可删除");
}
db::name("admin_role")->where("id = $role_id")->delete();
return $this->succeed_json("删除成功");
}
/*模型测试方法*/
public function ceshi(ModelAdmin $modelAdmin)
{
//查询
$list = ModelAdmin::where("admin_id = 1")->find()->toArray();
//创建
// $info = [
// 'role_id'=>1,
// 'head'=>'http://www.baidu.com',
// 'nickname'=>'测试昵称',
// 'add_time'=>time(),
// ];
// $admin = ModelAdmin::create($info)->toArray();
//编辑
// $info = [
// 'role_id'=>1,
// 'head'=>'http://www.baidu.com',
// 'nickname'=>'测试昵称222',
// 'add_time'=>time(),
// ];
// $admin = ModelAdmin::where("admin_id = 18")->update($info);
$data = $modelAdmin->list();
}
/*表单生成测试*/
public function from_upload()
{
$action = 'from_upload_update';
$method = 'POST';
$color = Elm::color('field', '颜色选择器', '#FF7271');
$input = Elm::input('goods_name', '商品名称')->required();
$textarea = Elm::textarea('goods_info', '商品简介');
$switch = Elm::switches('is_open', '是否开启')->activeText('开启')->inactiveText('关闭');
//创建表单
$form = (new IviewForm($action))->setMethod($method);
//添加组件
$form->setRule([$input, $textarea,$color]);
$form->append($switch);
$form->formData([
'goods_name'=>'',
]);
//生成表单页面
$formHtml = $form->view();
print_r($formHtml);
exit();
}
/*表单生成上传处理*/
public function from_upload_update()
{
//return $this->error_json("测试失败");
return $this->succeed_json("");
}
}