request->isAjax) { $data = []; $params = Yii::$app->request->get('Nav',[]); $query = mergeParams($query,$params); $countQuery = clone $query; //分页 if(isset($_GET['limit'])){ $query->limit(intval($_GET['limit']));} if(isset($_GET['offset'])){ $query->offset(intval($_GET['offset']));} //排序 if(isset($_GET['sort'])&&isset($_GET['sortOrder'])) { $resultList = $query->orderBy([$_GET['sort']=>($_GET['sortOrder']=='asc'?SORT_ASC:SORT_DESC)])->all(); } else { $resultList = $query->orderBy(['id'=>SORT_ASC])->all(); } foreach($resultList as $result) { $data[] = array('id'=>$result->id,'parent_id'=>$result->parent_id,'title'=>$result->title,'type_txt'=>Nav::typeOptions($result->type),'type'=>$result->type,'content_model_id'=>$result->content_model_id?ContentModel::modelOptions($result->content_model_id):'','url'=>$result->url?$result->url:'','is_dropdown'=>$result->is_dropdown,'dropdown_level'=>$result->dropdown_level,'disabled'=>$result->disabled,'list_order'=>$result->list_order); } $result = ["total"=>$countQuery->count(),"totalNotFiltered"=>$countQuery->count(),"rows"=>$data]; echo_json($result); } $this->tableTitle = array( array('field'=>'id','checkbox'=>false,'formatter'=>'checkboxFormatter','class'=>'col-md-1'), array('field'=>'title','title'=>Nav::getAttributeName('title'),'align'=>'left','class'=>'col-md-1'), array('field'=>'type_txt','title'=>Nav::getAttributeName('type'),'align'=>'center','sortable'=>true,'class'=>'col-md-1'), array('field'=>'content_model_id','title'=>Nav::getAttributeName('content_model_id'),'align'=>'center','sortable'=>true,'class'=>'col-md-2'), array('field'=>'url','title'=>Nav::getAttributeName('url'),'align'=>'center','formatter'=>'editFormatter','class'=>'col-md-1'), array('field'=>'is_dropdown','title'=>Nav::getAttributeName('is_dropdown'),'align'=>'center','formatter'=>'switchFormatter','class'=>'col-md-2'), array('field'=>'disabled','title'=>Nav::getAttributeName('disabled'),'align'=>'center','formatter'=>'switchFormatter','class'=>'col-md-2'), array('field'=>'list_order','title'=>Nav::getAttributeName('list_order'),'align'=>'center','sortable'=>true,'formatter'=>'editFormatter','class'=>'col-md-2'), array('field'=>'operate','title'=>Nav::getAttributeName('operate'),'align'=>'center','events'=>'window.operateEvents','formatter'=>'operateFormatter','class'=>'col-md-2'), ); $this->tableConfig = array('table'=>Nav::shortTableName(),'url'=>$this->createRealUrl(['admin/nav/list']),'setFieldUrl'=>$this->createRealUrl(['admin/nav/setfield']),'idField'=>Nav::modelPrimaryKey(),'checkbox'=>1,'dropmenu'=>1,'tree'=>1,'parentIdField'=>'parent_id','treeShowField'=>'title','expand'=>true,'refresh'=>true); return $this->render('list',array('model'=>new Nav())); } public function actionAdd() { $model = new Nav(); if(Yii::$app->request->isAjax&&$model->load(Yii::$app->request->post())){ $post = Yii::$app->request->post(); if(!$model->validate()) { $msgdata = ['error' => 1,'msg' => $model->returnFirstError()]; } else { $model->parent_id = intval($model->parent_id); $model->content_model_id = intval($model->content_model_id); $model->dropdown_level = intval($model->dropdown_level); $model->list_order = intval($model->list_order); $model->width = intval($model->width); $model->is_dropdown = $post['Nav']['is_dropdown']?$post['Nav']['is_dropdown']:0; $model->is_system = $post['Nav']['is_system']?$post['Nav']['is_system']:0; $model->is_new = $post['Nav']['is_new']?$post['Nav']['is_new']:0; $model->is_hot = $post['Nav']['is_hot']?$post['Nav']['is_hot']:0; $model->blank = $post['Nav']['blank']?$post['Nav']['blank']:0; $model->disabled = $post['Nav']['disabled']?$post['Nav']['disabled']:0; if($model->save()) { $msgdata = ['error' => 0,'msg' => '操作成功']; } else { $msgdata = ['error' => 1,'msg' => '操作失败']; } } echo_json($msgdata); } $menuList = Nav::find()->orderBy(['type'=>SORT_ASC])->All(); foreach($menuList as $k=>$v) { $menuList[$k]->title = $v->title.'('.Nav::typeOptions($v->type).')'; } $datas = $this->serializeTreeData($menuList,'id','parent_id','title'); $parentStr = FormElements::getInstCls()->tree_select($datas,'',0,'Nav[parent_id]',Yii::t('admin','as first level resource'),'',' class=\'form-select \' data-dselect-clearable=\'true\''); return $this->renderAjax('add',array('model'=>$model,'parentStr'=>$parentStr)); } public function actionEdit() { $id = $this->getKeyId(); $model = Nav::findOne($id); check_record_exists($model); if(Yii::$app->request->isAjax&&$model->load(Yii::$app->request->post())){ $post = Yii::$app->request->post(); if(!$model->validate()) { $msgdata = ['error' => 1,'msg' => $model->returnFirstError()]; } else { $model->parent_id = intval($model->parent_id); $model->content_model_id = intval($model->content_model_id); $model->dropdown_level = intval($model->dropdown_level); $model->list_order = intval($model->list_order); $model->width = intval($model->width); $model->is_dropdown = $post['Nav']['is_dropdown']?$post['Nav']['is_dropdown']:0; $model->is_system = $post['Nav']['is_system']?$post['Nav']['is_system']:0; $model->is_new = $post['Nav']['is_new']?$post['Nav']['is_new']:0; $model->is_hot = $post['Nav']['is_hot']?$post['Nav']['is_hot']:0; $model->blank = $post['Nav']['blank']?$post['Nav']['blank']:0; $model->disabled = $post['Nav']['disabled']?$post['Nav']['disabled']:0; if($model->save()) { $msgdata = ['error' => 0,'msg' => '操作成功']; } else { $msgdata = ['error' => 1,'msg' => '操作失败']; } } echo_json($msgdata); } $menuList = Nav::find()->where('type='.$model->type." and id!=".$model->id)->All(); $datas = $this->serializeTreeData($menuList,'id','parent_id','title'); $parentStr = FormElements::getInstCls()->tree_select($datas,'',$model->parent_id,'Nav[parent_id]',Yii::t('admin','as first level resource'),'',' class=\'form-select \' data-dselect-clearable=\'true\''); return $this->renderAjax('add',array('model'=>$model,'parentStr'=>$parentStr)); } //批量删除 public function actionMultidelete() { $ids = Yii::$app->request->get('ids'); if(!empty($ids)) { Nav::deleteAll("id in(".$ids.")"); $msgdata = ['error' => 0,'msg' => '操作成功']; } else { $msgdata = ['error' => 1,'msg' => '请选择操作记录']; } echo_json($msgdata); } //删除 public function actionDel() { $id = $this->getKeyId('id'); $model = Nav::findOne($id); check_record_exists($model); if($model->delete()) { $msgdata = ['error' => 0,'msg' => '操作成功!']; } else { $msgdata = ['error' => 1,'msg' => '操作失败!']; } echo_json($msgdata); } }