diff --git a/application/admin/controller/setting/SystemAdmin.php b/application/admin/controller/setting/SystemAdmin.php index dfe95378..a4188476 100644 --- a/application/admin/controller/setting/SystemAdmin.php +++ b/application/admin/controller/setting/SystemAdmin.php @@ -174,7 +174,7 @@ class SystemAdmin extends AuthController /** * 个人资料 展示 * */ - public function adminInfo(){ + public function admininfo(){ $adminInfo = $this->adminInfo;//获取当前登录的管理员 $this->assign('adminInfo',$adminInfo); return $this->fetch(); diff --git a/application/admin/controller/setting/SystemGroup.php b/application/admin/controller/setting/SystemGroup.php index 6120cf5c..6d61bf32 100644 --- a/application/admin/controller/setting/SystemGroup.php +++ b/application/admin/controller/setting/SystemGroup.php @@ -57,6 +57,7 @@ class SystemGroup extends AuthController public function save(Request $request) { $params = Util::postMore([ + ['id',''], ['name',''], ['config_name',''], ['info',''], @@ -66,7 +67,10 @@ class SystemGroup extends AuthController //数据组名称判断 if(!$params['name'])return Json::fail('请输入数据组名称!'); if(!$params['config_name'])return Json::fail('请输入配置名称!'); - if(GroupModel::be($params['config_name'],'config_name')) return Json::fail('数据关键字已存在!'); + //判断ID是否存在,存在就是编辑,不存在就是添加 + if(!$params['id']){ + if(GroupModel::be($params['config_name'],'config_name')) return Json::fail('数据关键字已存在!'); + } $data["name"] = $params['name']; $data["config_name"] = $params['config_name']; $data["info"] = $params['info']; @@ -85,9 +89,36 @@ class SystemGroup extends AuthController } } $data["fields"] = json_encode($data["fields"]); - GroupModel::set($data); - return Json::successful('添加数据组成功!'); + //判断ID是否存在,存在就是编辑,不存在就是添加 + if(!$params['id']) { + GroupModel::set($data); + return Json::successful('添加数据组成功!'); + }else{ + GroupModel::edit($data,$params['id']); + return Json::successful('编辑数据组成功!'); + } } + + /**编辑数组 + * @param $id + */ + public function edit($id) + { + $Groupinfo = GroupModel::get($id); + $fields = json_decode($Groupinfo['fields'],true); + $typelist = []; + foreach ($fields as $key => $v){ + $typelist[$key]['name']['value'] = $v['name']; + $typelist[$key]['title']['value'] = $v['title']; + $typelist[$key]['type']['value'] = $v['type']; + $typelist[$key]['param']['value'] = $v['param']; + } + $Groupinfo['fields'] = json_encode($typelist); + $this->assign(compact('Groupinfo')); + $this->assign(['title'=>'添加数据组','save'=>Url::build('save')]); + return $this->fetch(); + } + /** * 删除指定资源 * diff --git a/application/admin/controller/setting/SystemGroupData.php b/application/admin/controller/setting/SystemGroupData.php index b2391203..d13aab9f 100644 --- a/application/admin/controller/setting/SystemGroupData.php +++ b/application/admin/controller/setting/SystemGroupData.php @@ -46,32 +46,52 @@ class SystemGroupData extends AuthController $Fields = GroupModel::getField($gid); $f = array(); foreach ($Fields["fields"] as $key => $value) { - if($value["type"] == "input") - $f[] = Form::input($value["title"],$value["name"]); - else if($value["type"] == "textarea") - $f[] = Form::input($value["title"],$value["name"])->type('textarea')->placeholder($value['param']); - else if($value["type"] == "radio") { - $params = explode("-", $value["param"]); - foreach ($params as $index => $param) { - $info[$index]["value"] = $param; - $info[$index]["label"] = $param; + $info = []; + if(!empty($value["param"])){ + $value["param"] = str_replace("\r\n","\n",$value["param"]);//防止不兼容 + $params = explode("\n",$value["param"]); + if(is_array($params) && !empty($params)){ + foreach ($params as $index => $v) { + $vl = explode('=',$v); + if(!empty($vl[0]) && !empty($vl[1])){ + $info[$index]["value"] = $vl[0]; + $info[$index]["label"] = $vl[1]; + } + } } - $f[] = Form::radio($value["title"],$value["name"],$info[0]["value"])->options($info); - }else if($value["type"] == "checkbox"){ - $params = explode("-",$value["param"]); - foreach ($params as $index => $param) { - $info[$index]["value"] = $param; - $info[$index]["label"] = $param; - } - $f[] = Form::checkbox($value["title"],$value["name"],$info[0])->options($info); - }else if($value["type"] == "upload") - $f[] = Form::frameImageOne($value["title"],$value["name"],Url::build('admin/widget.images/index',array('fodder'=>$value["title"])))->icon('image'); - else if($value['type'] == 'uploads') - $f[] = Form::frameImages($value["title"],$value["name"],Url::build('admin/widget.images/index',array('fodder'=>$value["title"])))->maxLength(5)->icon('images')->width('100%')->height('550px')->spin(0); + } + + switch ($value["type"]){ + case 'input': + $f[] = Form::input($value["title"],$value["name"]); + break; + case 'textarea': + $f[] = Form::input($value["title"],$value["name"])->type('textarea')->placeholder($value['param']); + break; + case 'radio': + $f[] = Form::radio($value["title"],$value["name"],$info[0]["value"])->options($info); + break; + case 'checkbox': + $f[] = Form::checkbox($value["title"],$value["name"],$info[0])->options($info); + break; + case 'select': + $f[] = Form::select($value["title"],$value["name"],$info[0])->options($info)->multiple(false); + break; + case 'upload': + $f[] = Form::frameImageOne($value["title"],$value["name"],Url::build('admin/widget.images/index',array('fodder'=>$value["title"])))->icon('image'); + break; + case 'uploads': + $f[] = Form::frameImages($value["title"],$value["name"],Url::build('admin/widget.images/index',array('fodder'=>$value["title"])))->maxLength(5)->icon('images')->width('100%')->height('550px')->spin(0); + break; + default: + $f[] = Form::input($value["title"],$value["name"]); + break; + + } } $f[] = Form::number('sort','排序',1); $f[] = Form::radio('status','状态',1)->options([['value'=>1,'label'=>'显示'],['value'=>2,'label'=>'隐藏']]); - $form = Form::make_post_form('添加数据',$f,Url::build('save',compact('gid'))); + $form = Form::make_post_form('添加数据',$f,Url::build('save',compact('gid')),2); $this->assign(compact('form')); return $this->fetch('public/form-builder'); } @@ -127,36 +147,59 @@ class SystemGroupData extends AuthController $GroupDataValue = json_decode($GroupData["value"],true); $Fields = GroupModel::getField($gid); $f = array(); - foreach ($Fields["fields"] as $key => $value) { - if($value["type"] == "input") $f[] = Form::input($value["title"],$value["name"],$GroupDataValue[$value["title"]]["value"]); - if($value["type"] == "textarea") $f[] = Form::input($value["title"],$value["name"],$GroupDataValue[$value["title"]]["value"])->type('textarea'); - if($value["type"] == "radio"){ - $params = explode("-",$value["param"]); - foreach ($params as $index => $param) { - $info[$index]["value"] = $param; - $info[$index]["label"] = $param; + foreach ($Fields['fields'] as $key => $value) { + $info = []; + if(!empty($value["param"])){ + $value["param"] = str_replace("\r\n","\n",$value["param"]);//防止不兼容 + $params = explode("\n",$value["param"]); + if(is_array($params) && !empty($params)){ + foreach ($params as $index => $v) { + $vl = explode('=',$v); + if(!empty($vl[0]) && !empty($vl[1])){ + $info[$index]["value"] = $vl[0]; + $info[$index]["label"] = $vl[1]; + } + } } - $f[] = Form::radio($value["title"],$value["name"],$GroupDataValue[$value["title"]]["value"])->options($info); } - if($value["type"] == "checkbox"){ - $params = explode("-",$value["param"]); - foreach ($params as $index => $param) { - $info[$index]["value"] = $param; - $info[$index]["label"] = $param; - } - $f[] = Form::checkbox($value["title"],$value["name"],$GroupDataValue[$value["title"]]["value"])->options($info); - } - if($value["type"] == "upload"){ - $image = is_string($GroupDataValue[$value["title"]]["value"])?$GroupDataValue[$value["title"]]["value"]:$GroupDataValue[$value["title"]]["value"][0]; - $f[] = Form::frameImageOne($value["title"],$value["name"],Url::build('admin/widget.images/index',array('fodder'=>$value["title"])),$image)->icon('image'); - } - else if($value['type'] == 'uploads') { - $f[] = Form::frameImages($value["title"], $value["name"], Url::build('admin/widget.images/index', array('fodder' => $value["title"])), $GroupDataValue[$value["title"]]["value"])->maxLength(5)->icon('images')->width('100%')->height('550px')->spin(0); + switch ($value['type']){ + case 'input': + $f[] = Form::input($value['title'],$value['name'],$GroupDataValue[$value['title']]['value']); + break; + case 'textarea': + $f[] = Form::input($value['title'],$value['name'],$GroupDataValue[$value['title']]['value'])->type('textarea'); + break; + case 'radio': + + $f[] = Form::radio($value['title'],$value['name'],$GroupDataValue[$value['title']]['value'])->options($info); + break; + case 'checkbox': + $f[] = Form::checkbox($value['title'],$value['name'],$GroupDataValue[$value['title']]['value'])->options($info); + break; + case 'upload': + if(!empty($GroupDataValue[$value['title']]['value'])){ + $image = is_string($GroupDataValue[$value['title']]['value']) ? $GroupDataValue[$value['title']]['value'] : $GroupDataValue[$value['title']]['value'][0]; + }else{ + $image = ''; + } + $f[] = Form::frameImageOne($value['title'],$value['name'],Url::build('admin/widget.images/index',array('fodder'=>$value['title'])),$image)->icon('image'); + break; + case 'uploads': + $images = !empty($GroupDataValue[$value['title']]['value']) ? $GroupDataValue[$value['title']]['value']:[]; + $f[] = Form::frameImages($value['title'],$value['name'],Url::build('admin/widget.images/index', array('fodder' => $value['title'])),$images)->maxLength(5)->icon('images')->width('100%')->height('550px')->spin(0); + break; + case 'select': + $f[] = Form::select($value['title'],$value['name'],$GroupDataValue[$value['title']]['value'])->setOptions($info); + break; + default: + $f[] = Form::input($value['title'],$value['name'],$GroupDataValue[$value['title']]['value']); + break; + } } $f[] = Form::input('sort','排序',$GroupData["sort"]); $f[] = Form::radio('status','状态',$GroupData["status"])->options([['value'=>1,'label'=>'显示'],['value'=>2,'label'=>'隐藏']]); - $form = Form::make_post_form('添加用户通知',$f,Url::build('update',compact('id'))); + $form = Form::make_post_form('添加用户通知',$f,Url::build('update',compact('id')),2); $this->assign(compact('form')); return $this->fetch('public/form-builder'); } diff --git a/application/admin/view/setting/system_group/create.php b/application/admin/view/setting/system_group/create.php index ce913b95..3f141587 100644 --- a/application/admin/view/setting/system_group/create.php +++ b/application/admin/view/setting/system_group/create.php @@ -17,38 +17,48 @@ - - - - - + + + + + + + + + + + + + + + + + + + + + 文本框 + 多行文本框 + 单选框 + 多选框 + 下拉选择 + 单文件上传 + 多文件上传 + + + + - + - - - - - - - 文本框 - 多行文本框 - 单选框 - 多选框 - 单文件上传 - 多文件上传 - - - - - - + + 添加字段 @@ -85,7 +95,7 @@ value: '' }, param: { - placeholder: "字段参数男-女", + placeholder: "参数方式例如:\n1=白色\n2=红色\n3=黑色", value: '' } }) diff --git a/application/admin/view/setting/system_group/edit.php b/application/admin/view/setting/system_group/edit.php new file mode 100644 index 00000000..d2597ab7 --- /dev/null +++ b/application/admin/view/setting/system_group/edit.php @@ -0,0 +1,126 @@ + + + + {include file="public/head"} + {$title} + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 文本框 + 多行文本框 + 单选框 + 多选框 + 下拉选择 + 单文件上传 + 多文件上传 + + + + + + + + + + + + + + + + + 添加字段 + + 提交 + + +
+ + diff --git a/application/admin/view/setting/system_group/index.php b/application/admin/view/setting/system_group/index.php index b5ca90c8..6930d622 100644 --- a/application/admin/view/setting/system_group/index.php +++ b/application/admin/view/setting/system_group/index.php @@ -60,6 +60,7 @@ 数据列表 + diff --git a/application/admin/view/setting/system_group_data/index.php b/application/admin/view/setting/system_group_data/index.php index 0a140597..91eb94fc 100644 --- a/application/admin/view/setting/system_group_data/index.php +++ b/application/admin/view/setting/system_group_data/index.php @@ -60,7 +60,9 @@ {volist name="fields" id="item"} + {notempty name="$vo.value[$item['title']]['value']"} {$vo.value[$item['title']]['value']} + {/notempty} {/volist}