modified 细节优化,完成数据更新操作

This commit is contained in:
zhaoxiang 2016-11-09 23:49:31 +08:00
parent 21cc5142f2
commit b19f11264a
3 changed files with 48 additions and 29 deletions

View File

@ -1,5 +1,6 @@
<?php <?php
namespace app\admin\controller; namespace app\admin\controller;
use think\Validate;
/** /**
* 菜单管理控制器 * 菜单管理控制器
@ -122,7 +123,7 @@ class Menu extends Base {
[ [
'name' => 'require', 'name' => 'require',
],[ ],[
'name.require' => '名称必须', 'name.require' => '菜单名称不能为空',
] ]
)->save($this->request->post()); )->save($this->request->post());
if(false === $result){ if(false === $result){
@ -250,17 +251,17 @@ class Menu extends Base {
public function edit(){ public function edit(){
if( $this->request->isPut() ){ if( $this->request->isPut() ){
$menuModel = new \app\admin\model\Menu(); $data = $this->request->put();
$result = $menuModel->allowField(true)->validate( $validate = new Validate([
[ 'name' => 'require',
'name' => 'require', ],[
],[ 'name.require' => '菜单名称不能为空',
'name.require' => '名称必须', ]);
] if(!$validate->check($data)){
)->update($this->request->put()); $this->error($validate->getError());
if(false === $result){
$this->error($menuModel->getError());
}else{ }else{
$menuModel = new \app\admin\model\Menu();
$menuModel->allowField(true)->update($data);
$this->success('操作成功!', url('Menu/index')); $this->success('操作成功!', url('Menu/index'));
} }
}else{ }else{
@ -269,8 +270,8 @@ class Menu extends Base {
$form = [ $form = [
'tempType' => 'edit', 'tempType' => 'edit',
'formAttr' => [ 'formAttr' => [
'target' => url('Menu/add'), 'target' => url('Menu/edit'),
'formId' => 'add-menu-form', 'formId' => 'edit-menu-form',
'backUrl' => url('Menu/index'), 'backUrl' => url('Menu/index'),
], ],
'formList' => [ 'formList' => [
@ -284,6 +285,16 @@ class Menu extends Base {
'placeholder' => '' 'placeholder' => ''
] ]
], ],
[
'module' => 'hidden',
'description' => '',
'info' => '',
'attr' => [
'name' => 'id',
'value' => $detail['id'],
'placeholder' => ''
]
],
[ [
'module' => 'select', 'module' => 'select',
'description' => '', 'description' => '',

View File

@ -30,7 +30,8 @@
* @param msg * @param msg
* @param wait 等待时间毫秒 * @param wait 等待时间毫秒
*/ */
$.alertMsg = function( msg, wait = 2800 ){ $.alertMsg = function( msg, wait ){
wait = wait ? wait : 2800;
var dialog = bootbox.dialog({ var dialog = bootbox.dialog({
message: '<p class="text-center">'+msg+'</p>', message: '<p class="text-center">'+msg+'</p>',
closeButton: false closeButton: false
@ -45,7 +46,8 @@
* @param url * @param url
* @param urlData * @param urlData
*/ */
$.refresh = function ( url, urlData = '' ) { $.refresh = function ( url, urlData ) {
urlData = urlData ? urlData : '';
$.ajax({ $.ajax({
type: "GET", type: "GET",
url: url, url: url,
@ -98,7 +100,7 @@
}; };
/** /**
* Ajax Post 表单提交() * Ajax Post 表单提交() *
*/ */
bodyDom.on('click', '.ajax-post', function() { bodyDom.on('click', '.ajax-post', function() {
var message,query,form,target; var message,query,form,target;
@ -139,7 +141,7 @@
}); });
/** /**
* Ajax Put 表单提交() * Ajax Put 表单提交() *
*/ */
bodyDom.on('click', '.ajax-put', function() { bodyDom.on('click', '.ajax-put', function() {
var message,query,form,target; var message,query,form,target;
@ -162,18 +164,11 @@
$.alertMsg(message); $.alertMsg(message);
setTimeout(function() { setTimeout(function() {
if (data.url) { if (data.url) {
location.href = data.url; $.refresh(data.url);
} else {
location.reload();
} }
}, wait); }, wait);
} else { } else {
$.alertMsg(data.msg); $.alertMsg(data.msg);
setTimeout(function() {
if (data.url) {
location.href = data.url;
}
}, wait);
} }
}); });
return false; return false;

View File

@ -8,7 +8,7 @@
* @returns {string} * @returns {string}
*/ */
$.buildAddForm = function ( formObj ) { $.buildAddForm = function ( formObj ) {
return buildForm(formObj, 'box-success'); return buildForm(formObj, 'box-success', 'ajax-post');
}; };
/** /**
@ -17,16 +17,17 @@
* @returns {string} * @returns {string}
*/ */
$.buildEditForm = function ( formObj ) { $.buildEditForm = function ( formObj ) {
return buildForm(formObj, 'box-warning'); return buildForm(formObj, 'box-warning', 'ajax-put');
}; };
/** /**
* 根据规则创建表单 * 根据规则创建表单
* @param formObj 表单数据对象 * @param formObj 表单数据对象
* @param boxType box样式 * @param boxType box样式
* @param method 数据提交方式
* @returns {string} * @returns {string}
*/ */
function buildForm( formObj, boxType ) { function buildForm( formObj, boxType, method ) {
var formHtml = '<div class="box '+ boxType +'" id="formBox"><div class="box-body">'; var formHtml = '<div class="box '+ boxType +'" id="formBox"><div class="box-body">';
formHtml += '<div class="box-header with-border"><h3 class="box-title">新增菜单</h3></div>'; formHtml += '<div class="box-header with-border"><h3 class="box-title">新增菜单</h3></div>';
formHtml += '<form id="'+ formObj.formAttr.formId +'" action="'+ formObj.formAttr.target +'"><div class="box-body">'; formHtml += '<form id="'+ formObj.formAttr.formId +'" action="'+ formObj.formAttr.target +'"><div class="box-body">';
@ -41,10 +42,13 @@
case 'radio': case 'radio':
formHtml += buildRadio(value); formHtml += buildRadio(value);
break; break;
case 'hidden':
formHtml += buildHidden(value);
break;
} }
}); });
formHtml += '</div><div class="box-footer">'; formHtml += '</div><div class="box-footer">';
formHtml += '<button type="submit" target-form="'+ formObj.formAttr.formId +'" class="btn btn-primary ajax-post">确认提交</button>'; formHtml += '<button type="submit" target-form="'+ formObj.formAttr.formId +'" class="btn btn-primary '+ method +'">确认提交</button>';
formHtml += ' <a class="btn btn-default refresh" url="'+ formObj.formAttr.backUrl +'" >放弃返回</a></div></form></div></div>'; formHtml += ' <a class="btn btn-default refresh" url="'+ formObj.formAttr.backUrl +'" >放弃返回</a></div></form></div></div>';
return formHtml; return formHtml;
} }
@ -96,6 +100,15 @@
formHtml += '</div></div>'; formHtml += '</div></div>';
return formHtml; return formHtml;
} }
/**
* 创建隐藏表单
* @param hiddenObj
* @returns {string}
*/
function buildHidden( hiddenObj ) {
return '<input type="hidden" class="form-control" value="'+ hiddenObj.attr.value +'" name="'+ hiddenObj.attr.name +'">';
}
function buildTextarea( textareaObj ) { function buildTextarea( textareaObj ) {