init Area full CRUD
This commit is contained in:
parent
5538d74b1b
commit
70db83d3ab
|
@ -8,6 +8,9 @@ use app\models\AreaSearch;
|
|||
use yii\web\Controller;
|
||||
use yii\web\NotFoundHttpException;
|
||||
use yii\filters\VerbFilter;
|
||||
use yii\helpers\Url;
|
||||
use yii\helpers\Html;
|
||||
use app\models\common;
|
||||
|
||||
/**
|
||||
* AreaController implements the CRUD actions for Area model.
|
||||
|
@ -42,43 +45,75 @@ class AreaController extends Controller {
|
|||
return $this->render('index', [
|
||||
'searchModel' => $searchModel,
|
||||
'dataProvider' => $dataProvider,
|
||||
]);
|
||||
}
|
||||
|
||||
public function actionView($id) {
|
||||
return $this->render('view', [
|
||||
'model' => $this->findModel($id),
|
||||
"areaArray" => Area::areaArray()
|
||||
]);
|
||||
}
|
||||
|
||||
public function actionCreate() {
|
||||
$model = new Area();
|
||||
Yii::$app->response->format = "json";
|
||||
if (Yii::$app->request->post()) {
|
||||
$data = Yii::$app->request->post();
|
||||
$check = Area::findOne(['code' => $data['Code']]);
|
||||
if ($check)
|
||||
return ["status" => false, "type" => "code"];
|
||||
|
||||
if ($model->load(Yii::$app->request->post()) && $model->save()) {
|
||||
return $this->redirect(['view', 'id' => $model->id]);
|
||||
if ($model->create($data)) {
|
||||
common::insertSystemLogs(["action" => "insert", "description" => "Thêm mới khu vực: " . $data["Name"], "type" => Yii::$app->controller->id]);
|
||||
return ["status" => true];
|
||||
} else
|
||||
return ["status" => false, "type" => "error"];
|
||||
} else {
|
||||
return [
|
||||
"title" => Html::tag("i", "", ["class" => "fa fa-plus-square"]) . " Thêm",
|
||||
"form" => $this->renderPartial("form", [
|
||||
"model" => $model,
|
||||
"url" => Url::to(["create"]),
|
||||
"areaArray" => Area::areaArray()
|
||||
])
|
||||
];
|
||||
}
|
||||
|
||||
return $this->render('create', [
|
||||
'model' => $model,
|
||||
]);
|
||||
}
|
||||
|
||||
public function actionUpdate($id) {
|
||||
$model = $this->findModel($id);
|
||||
|
||||
if ($model->load(Yii::$app->request->post()) && $model->save()) {
|
||||
return $this->redirect(['view', 'id' => $model->id]);
|
||||
Yii::$app->response->format = "json";
|
||||
if (Yii::$app->request->post()) {
|
||||
$data = Yii::$app->request->post();
|
||||
$check = Area::findOne(['code' => $data['Code']]);
|
||||
if ($check && $check->id != $id)
|
||||
return ["status" => false, "type" => "code"];
|
||||
$oldCode = $model->code;
|
||||
$model->name = $data["Name"];
|
||||
$model->code = $data["Code"];
|
||||
$model->pid = $data["Pid"];
|
||||
$model->description = $data["Description"];
|
||||
$model->modified_at = time();
|
||||
if ($model->save()) {
|
||||
Area::updateAll(["pid" => $data["Code"]], ["pid" => $oldCode]);
|
||||
common::insertSystemLogs(["action" => "update", "description" => "Chỉnh sửa khu vực: " . $data["Name"], "type" => Yii::$app->controller->id]);
|
||||
return ["status" => true];
|
||||
} else
|
||||
return ["status" => false, "type" => "error"];
|
||||
} else {
|
||||
return [
|
||||
"title" => Html::tag("i", "", ["class" => "fa fa-edit"]) . " Tùy chỉnh",
|
||||
"form" => $this->renderPartial("form", [
|
||||
"model" => $model,
|
||||
"url" => Url::to(["update", "id" => $id]),
|
||||
"areaArray" => Area::areaArrayWithOut($id)
|
||||
])
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
return $this->render('update', [
|
||||
'model' => $model,
|
||||
]);
|
||||
public function actionDelete() {
|
||||
if (Yii::$app->request->post()) {
|
||||
$lists = Yii::$app->request->post("lists");
|
||||
foreach ($lists as $key => $value) {
|
||||
Area::deleteArea($value);
|
||||
}
|
||||
}
|
||||
|
||||
public function actionDelete($id) {
|
||||
$this->findModel($id)->delete();
|
||||
|
||||
return $this->redirect(['index']);
|
||||
}
|
||||
|
||||
protected function findModel($id) {
|
||||
|
@ -89,4 +124,87 @@ class AreaController extends Controller {
|
|||
throw new NotFoundHttpException('The requested page does not exist.');
|
||||
}
|
||||
|
||||
public function actionExport() {
|
||||
$objPHPExcel = new \PHPExcel();
|
||||
$objPHPExcel->setActiveSheetIndex(0);
|
||||
$toExcelFile[] = ["Mã khu vực", "Tên khu vực", "khu vực cha", "Chú thích"];
|
||||
$areas = Area::find()->all();
|
||||
$areaArray = Area::areaArray();
|
||||
foreach ($areas as $k => $v) {
|
||||
$ExportData[] = $v->code;
|
||||
$ExportData[] = $v->name;
|
||||
$ExportData[] = isset($areaArray[$v->pid]) ? $areaArray[$v->pid] : "";
|
||||
$ExportData[] = $v->description;
|
||||
$toExcelFile[] = $ExportData;
|
||||
unset($ExportData);
|
||||
}
|
||||
$totals = count($areas) + 1;
|
||||
$activeSheet = $objPHPExcel->getActiveSheet();
|
||||
$activeSheet->getColumnDimension('A')->setWidth(15);
|
||||
$activeSheet->getColumnDimension('B')->setWidth(50);
|
||||
$activeSheet->getColumnDimension('C')->setWidth(50);
|
||||
$activeSheet->getColumnDimension('D')->setWidth(50);
|
||||
$activeSheet->getStyle("A1:D" . $totals)->getFont()->setName('Time New Roman')->setSize(10);
|
||||
$activeSheet->getStyle("A1:D1")->applyFromArray([
|
||||
'fill' => array(
|
||||
'type' => \PHPExcel_Style_Fill::FILL_SOLID,
|
||||
'color' => array('rgb' => '7ac3ec')
|
||||
)
|
||||
]);
|
||||
$rowCount = 1;
|
||||
for ($i = 0; $i < count($toExcelFile); $i++) {
|
||||
$column = 'A';
|
||||
$row = $toExcelFile[$i];
|
||||
for ($j = 0; $j < count($row); $j++) {
|
||||
if (!isset($row[$j]))
|
||||
$value = NULL;
|
||||
elseif ($row[$j] != "")
|
||||
$value = strip_tags($row[$j]);
|
||||
else
|
||||
$value = "";
|
||||
$activeSheet->setCellValue($column . $rowCount, $value);
|
||||
$column = chr(ord($column) + 1);
|
||||
}
|
||||
$rowCount++;
|
||||
}
|
||||
$activeSheet->getStyle("A1:D" . $totals)->applyFromArray([
|
||||
'alignment' => [
|
||||
'vertical' => \PHPExcel_Style_Alignment::VERTICAL_CENTER,
|
||||
],
|
||||
'borders' => [
|
||||
'allborders' => [
|
||||
'style' => \PHPExcel_Style_Border::BORDER_THIN
|
||||
]
|
||||
]
|
||||
]);
|
||||
|
||||
$objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
|
||||
ob_end_clean();
|
||||
header('Content-type: application/vnd.ms-excel');
|
||||
header('Content-Disposition: attachment; filename="area_' . date("YmdHis") . '.xlsx"');
|
||||
header('Cache-Control: max-age=0');
|
||||
common::SaveViaTempFile($objWriter);
|
||||
exit();
|
||||
}
|
||||
|
||||
public function actionLogs() {
|
||||
if (Yii::$app->request->isAjax) {
|
||||
Yii::$app->response->format = "json";
|
||||
return [
|
||||
"title" => Html::tag("i", "", ["class" => "fa fa-file"]) . " Ghi nhận hệ thống",
|
||||
"form" => \app\widgets\SystemLogsView::widget(['type' => Yii::$app->controller->id])
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
public function actionTree() {
|
||||
if (Yii::$app->request->isAjax) {
|
||||
Yii::$app->response->format = "json";
|
||||
return [
|
||||
"title" => Html::tag("i", "", ["class" => "fa fa-sitemap"]) . " Cây thư mục",
|
||||
"form" => \app\widgets\Tree::widget(["model" => new Area()])
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -5,7 +5,6 @@ namespace app\controllers;
|
|||
use Yii;
|
||||
use app\models\Department;
|
||||
use app\models\DepartmentSearch;
|
||||
use app\models\SystemLogs;
|
||||
use app\models\common;
|
||||
use yii\web\Controller;
|
||||
use yii\web\NotFoundHttpException;
|
||||
|
@ -225,10 +224,7 @@ class DepartmentController extends Controller {
|
|||
Yii::$app->response->format = "json";
|
||||
return [
|
||||
"title" => Html::tag("i", "", ["class" => "fa fa-file"]) . " Ghi nhận hệ thống",
|
||||
"form" => $this->renderPartial("logs", [
|
||||
"logs" => SystemLogs::find()->andWhere(["type" => Yii::$app->controller->id])->orderBy(['time' => SORT_DESC])->limit(30)->all(),
|
||||
"userArray" => \app\models\User::userArray()
|
||||
])
|
||||
"form" => \app\widgets\SystemLogsView::widget(['type' => Yii::$app->controller->id])
|
||||
];
|
||||
}
|
||||
}
|
||||
|
@ -238,9 +234,7 @@ class DepartmentController extends Controller {
|
|||
Yii::$app->response->format = "json";
|
||||
return [
|
||||
"title" => Html::tag("i", "", ["class" => "fa fa-sitemap"]) . " Cây thư mục",
|
||||
"form" => $this->renderPartial("tree", [
|
||||
"root" => Department::findOne(1)
|
||||
])
|
||||
"form" => \app\widgets\Tree::widget(["model" => new Department()])
|
||||
];
|
||||
}
|
||||
}
|
||||
|
|
|
@ -73,7 +73,7 @@ class CommonGrid {
|
|||
public static function rows($type) {
|
||||
return function($model, $index, $widget, $grid) use ($type) {
|
||||
return [
|
||||
"onclick" => "common.form(this, '{$type}');",
|
||||
"ondblclick" => "common.form(this, '{$type}');",
|
||||
"style" => "cursor: pointer;",
|
||||
"data" => [
|
||||
"href" => Url::to(["update", "id" => $model->id])
|
||||
|
@ -82,4 +82,10 @@ class CommonGrid {
|
|||
};
|
||||
}
|
||||
|
||||
public static function pid($array) {
|
||||
return function($model) use ($array) {
|
||||
return isset($array[$model->pid]) ? $array[$model->pid] : "";
|
||||
};
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -51,4 +51,55 @@ class Area extends \yii\db\ActiveRecord {
|
|||
];
|
||||
}
|
||||
|
||||
public static function areaArray() {
|
||||
$lists = self::find()->all();
|
||||
$results = [];
|
||||
foreach ($lists as $key => $value) {
|
||||
$results[$value->code] = $value->name;
|
||||
}
|
||||
return $results;
|
||||
}
|
||||
|
||||
public static function areaArrayWithOut($id) {
|
||||
$lists = self::find()->andWhere(["<>", "id", $id])->all();
|
||||
$results = [];
|
||||
foreach ($lists as $key => $value) {
|
||||
$results[$value->code] = $value->name;
|
||||
}
|
||||
return $results;
|
||||
}
|
||||
|
||||
public function create($data) {
|
||||
$r = $this->load([
|
||||
"code" => $data["Code"],
|
||||
"pid" => $data["Pid"],
|
||||
"name" => $data["Name"],
|
||||
"description" => $data["Description"],
|
||||
"created_at" => time(),
|
||||
"modified_at" => time()
|
||||
], '');
|
||||
if ($r) {
|
||||
try {
|
||||
$this->save();
|
||||
return $this->id;
|
||||
} catch (\Exception $ex) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static function deleteArea($id) {
|
||||
if ($id == 1)
|
||||
return;
|
||||
$model = self::findOne($id);
|
||||
if ($model) {
|
||||
$childs = self::find()->andWhere(["pid" => $model->code])->all();
|
||||
foreach ($childs as $key => $value) {
|
||||
self::deleteArea($value->id);
|
||||
}
|
||||
$model->delete();
|
||||
common::insertSystemLogs(["action" => "delete", "description" => "Xóa khu vực: " . $model->name, "type" => "area"]);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -10,15 +10,14 @@ use app\models\Area;
|
|||
/**
|
||||
* AreaSearch represents the model behind the search form of `app\models\Area`.
|
||||
*/
|
||||
class AreaSearch extends Area
|
||||
{
|
||||
class AreaSearch extends Area {
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function rules()
|
||||
{
|
||||
public function rules() {
|
||||
return [
|
||||
[['id', 'code', 'pid', 'created_at', 'modified_at'], 'integer'],
|
||||
[['id', 'code', 'pid'], 'integer'],
|
||||
[['name', 'description'], 'safe'],
|
||||
];
|
||||
}
|
||||
|
@ -26,8 +25,7 @@ class AreaSearch extends Area
|
|||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function scenarios()
|
||||
{
|
||||
public function scenarios() {
|
||||
// bypass scenarios() implementation in the parent class
|
||||
return Model::scenarios();
|
||||
}
|
||||
|
@ -39,8 +37,7 @@ class AreaSearch extends Area
|
|||
*
|
||||
* @return ActiveDataProvider
|
||||
*/
|
||||
public function search($params)
|
||||
{
|
||||
public function search($params) {
|
||||
$query = Area::find();
|
||||
|
||||
// add conditions that should always apply here
|
||||
|
@ -71,4 +68,5 @@ class AreaSearch extends Area
|
|||
|
||||
return $dataProvider;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -12,26 +12,32 @@
|
|||
</style>
|
||||
<div class="form-group" id="name">
|
||||
<div class="input-group">
|
||||
<div class="input-group-addon">Tên phòng ban <i class="text-red">*</i></div>
|
||||
<div class="input-group-addon">Tên khu vực <i class="text-red">*</i></div>
|
||||
<input type="text" class="form-control" value="{$model->name|default:""}" name="Name">
|
||||
</div>
|
||||
<span class="help-block hidden"></span>
|
||||
</div>
|
||||
<div class="form-group" id="code">
|
||||
<div class="input-group">
|
||||
<div class="input-group-addon">Mã phòng ban <i class="text-red">*</i></div>
|
||||
<div class="input-group-addon">Mã khu vực <i class="text-red">*</i></div>
|
||||
<input type="number" class="form-control" value="{$model->code|default:""}" name="Code" {if $model->code==1}disabled=""{/if}>
|
||||
</div>
|
||||
<span class="help-block hidden"></span>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="input-group">
|
||||
<div class="input-group-addon">Trực thuộc <i class="text-red">*</i></div>
|
||||
<div class="input-group-addon">Khu vực cha <i class="text-red">*</i></div>
|
||||
<select class="form-control" name="Pid" id="Pid" {if $model->code==1}disabled=""{/if}>
|
||||
{html_options options=$departmentArray selected=$model->pid|default:1}
|
||||
{html_options options=$areaArray selected=$model->pid|default:1}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="input-group">
|
||||
<div class="input-group-addon">Chú thích</div>
|
||||
<textarea class="form-control" name="Description">{$model->description}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="text-right">
|
||||
<button class="btn btn-primary" onclick="save(this);" data-href="{$url}">
|
||||
<i class="fa fa-floppy-o"></i> Lưu
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
<label class="action-button" onclick="common.form(this, '');" data-href="{Url::to(['tree'])}">
|
||||
<i class="fa fa-sitemap fa-1-5x"></i> Cây thư mục
|
||||
</label>
|
||||
<label class="action-button" onclick="common.form(this, 'department');" data-href="{Url::to(['create'])}">
|
||||
<label class="action-button" onclick="common.form(this, 'area');" data-href="{Url::to(['create'])}">
|
||||
<i class="fa fa-plus-square fa-1-5x"></i> Thêm
|
||||
</label>
|
||||
<label class="action-button" onclick="_form(this);" data-href="{Url::to(['update'])}">
|
||||
|
@ -30,12 +30,12 @@
|
|||
{GridView::widget([
|
||||
'dataProvider' => $dataProvider,
|
||||
'filterModel' => $searchModel,
|
||||
'layout'=> \app\helpers\AreaGrid::getLayout(),
|
||||
'layout'=> \app\helpers\CommonGrid::getLayout(),
|
||||
'tableOptions' => [
|
||||
'class' => 'table table-striped table-bordered table-hover',
|
||||
'style' => 'background:#fff;min-width:700px;'
|
||||
],
|
||||
'rowOptions' => \app\helpers\AreaGrid::rows("area"),
|
||||
'rowOptions' => \app\helpers\CommonGrid::rows("area"),
|
||||
'columns' => [
|
||||
[
|
||||
'class' => 'yii\grid\SerialColumn',
|
||||
|
@ -47,19 +47,23 @@
|
|||
'format' => 'raw',
|
||||
'contentOptions' => ['class' => 'text-center'],
|
||||
'headerOptions' => ['class' => 'text-center', 'style' => 'width:3%'],
|
||||
'value' => \app\helpers\AreaGrid::checkbox("area")
|
||||
'value' => \app\helpers\CommonGrid::checkbox("area")
|
||||
],
|
||||
'code',
|
||||
'pid',
|
||||
[
|
||||
'attribute' => 'pid',
|
||||
'filter' => $areaArray,
|
||||
'value' => \app\helpers\CommonGrid::pid($areaArray)
|
||||
],
|
||||
'name',
|
||||
'description:ntext',
|
||||
[
|
||||
'attribute' => 'created_at',
|
||||
'value' => \app\helpers\AreaGrid::createdAt()
|
||||
'value' => \app\helpers\CommonGrid::createdAt()
|
||||
],
|
||||
[
|
||||
'attribute' => 'modified_at',
|
||||
'value' => \app\helpers\AreaGrid::modifiedAt()
|
||||
'value' => \app\helpers\CommonGrid::modifiedAt()
|
||||
]
|
||||
]
|
||||
])}
|
||||
|
|
|
@ -6,7 +6,7 @@ function validate() {
|
|||
var error = 0;
|
||||
var Name = $("input[name='Name']").val();
|
||||
if (Name === "") {
|
||||
common.error("name", "Tên phòng ban không được để trống");
|
||||
common.error("name", "Tên khu vực không được để trống");
|
||||
error++;
|
||||
} else {
|
||||
common.success("name");
|
||||
|
@ -14,7 +14,7 @@ function validate() {
|
|||
|
||||
var Code = $("input[name='Code']").val();
|
||||
if (Code === "") {
|
||||
common.error("code", "Mã phòng ban không được để trống");
|
||||
common.error("code", "Mã khu vực không được để trống");
|
||||
error++;
|
||||
} else {
|
||||
common.success("code");
|
||||
|
@ -31,20 +31,21 @@ function save(e) {
|
|||
data: {
|
||||
Name: $("input[name='Name']").val(),
|
||||
Code: $("input[name='Code']").val(),
|
||||
Pid: $("select[name='Pid']").val()
|
||||
Pid: $("select[name='Pid']").val(),
|
||||
Description: $("textarea[name='Description']").val()
|
||||
},
|
||||
success: function (data) {
|
||||
common.modalBlock(false);
|
||||
if (data.status) {
|
||||
notification.success("Đã lưu thông tin", 1000);
|
||||
$.pjax.reload({container: '#department-list'});
|
||||
$("#department-list").on('pjax:success', function () {
|
||||
common.checkboxInit("department");
|
||||
$.pjax.reload({container: '#area-list'});
|
||||
$("#area-list").on('pjax:success', function () {
|
||||
common.checkboxInit("area");
|
||||
});
|
||||
$("#myModal").modal("hide");
|
||||
} else {
|
||||
if (data.type === "code") {
|
||||
common.error("code", "Mã phòng ban đã tồn tại");
|
||||
common.error("code", "Mã khu vực đã tồn tại");
|
||||
} else {
|
||||
notification.danger("Có lỗi xảy ra, không lưu được dữ liệu!", 1000);
|
||||
}
|
||||
|
@ -60,7 +61,7 @@ function save(e) {
|
|||
|
||||
function _form(e) {
|
||||
var lists = [];
|
||||
$.each($("input[name='checkbox-department']:checked"), function () {
|
||||
$.each($("input[name='checkbox-area']:checked"), function () {
|
||||
lists.push($(this).val());
|
||||
});
|
||||
if (lists.length == 0) {
|
||||
|
@ -89,7 +90,7 @@ function _form(e) {
|
|||
|
||||
function _delete(e) {
|
||||
var lists = [];
|
||||
$.each($("input[name='checkbox-department']:checked"), function () {
|
||||
$.each($("input[name='checkbox-area']:checked"), function () {
|
||||
lists.push($(this).val());
|
||||
});
|
||||
if (lists.length == 0) {
|
||||
|
@ -111,9 +112,9 @@ function _delete(e) {
|
|||
success: function (data) {
|
||||
common.modalBlock(false);
|
||||
notification.danger("Đã xóa dữ liệu", 1000);
|
||||
$.pjax.reload({container: '#department-list'});
|
||||
$("#department-list").on('pjax:success', function () {
|
||||
common.checkboxInit("department");
|
||||
$.pjax.reload({container: '#area-list'});
|
||||
$("#area-list").on('pjax:success', function () {
|
||||
common.checkboxInit("area");
|
||||
});
|
||||
},
|
||||
error: function (jqXHR, textStatus, errorThrown) {
|
||||
|
@ -128,60 +129,6 @@ function _export(e) {
|
|||
window.location = $(e).attr("data-href");
|
||||
}
|
||||
|
||||
function btnUpload(mUrl, className, extension, fileSize) {
|
||||
var fData = {
|
||||
UploadFile: true,
|
||||
Name: className
|
||||
};
|
||||
fData[common.csrfParam] = common.csrf;
|
||||
new afuButton({
|
||||
uploadURI: mUrl,
|
||||
formData: fData,
|
||||
wrap: {
|
||||
tagName: 'div',
|
||||
classes: ''
|
||||
},
|
||||
fileExtension: extension,
|
||||
fileSizeLimit: fileSize,
|
||||
classes: 'btn btn-default file-paperclip-' + className,
|
||||
fakeInputContent: '<span class=\'fa fa-upload\'></span> Nhập dữ liệu',
|
||||
onUploaded: function (data) {
|
||||
data = JSON.parse(data);
|
||||
common.modalOpen(data.form, true, data.title);
|
||||
common.uploadBlock(false);
|
||||
common.checkboxInit("department-import");
|
||||
}
|
||||
}).addInstance('file' + className);
|
||||
$(".file-paperclip-" + className).closest("div").attr("style", "display:inline-block;");
|
||||
}
|
||||
|
||||
function _import(e) {
|
||||
var lists = [];
|
||||
$.each($("input[name='checkbox-department-import']:checked"), function () {
|
||||
lists.push($(this).val());
|
||||
});
|
||||
if (lists.length == 0) {
|
||||
alert("Vui lòng lựa chọn đối tượng để nhập!");
|
||||
return;
|
||||
}
|
||||
common.modalBlock(true);
|
||||
$.ajax({
|
||||
url: $(e).attr('data-href'),
|
||||
type: 'POST',
|
||||
data: {
|
||||
lists: lists
|
||||
},
|
||||
success: function (data) {
|
||||
common.modalBlock(false);
|
||||
window.location.reload(true);
|
||||
},
|
||||
error: function (jqXHR, textStatus, errorThrown) {
|
||||
common.modalBlock(false);
|
||||
common.ajaxError();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function _logs(e) {
|
||||
common.modalBlock(true);
|
||||
$.ajax({
|
||||
|
|
|
@ -1,22 +0,0 @@
|
|||
<?php
|
||||
|
||||
namespace app\widgets;
|
||||
|
||||
use yii\base\Widget;
|
||||
|
||||
class Department extends Widget {
|
||||
|
||||
public $pid;
|
||||
|
||||
public function init() {
|
||||
parent::init();
|
||||
}
|
||||
|
||||
public function run() {
|
||||
|
||||
return $this->render("department", [
|
||||
"lists" => \app\models\Department::find()->andWhere(['pid' => $this->pid])->all()
|
||||
]);
|
||||
}
|
||||
|
||||
}
|
25
widgets/SystemLogsView.php
Normal file
25
widgets/SystemLogsView.php
Normal file
|
@ -0,0 +1,25 @@
|
|||
<?php
|
||||
|
||||
namespace app\widgets;
|
||||
|
||||
use yii\base\Widget;
|
||||
use app\models\SystemLogs;
|
||||
use app\models\User;
|
||||
|
||||
class SystemLogsView extends Widget {
|
||||
|
||||
public $type;
|
||||
|
||||
public function init() {
|
||||
parent::init();
|
||||
}
|
||||
|
||||
public function run() {
|
||||
|
||||
return $this->render("system-logs-view", [
|
||||
"logs" => SystemLogs::find()->andWhere(["type" => $this->type])->orderBy(['time' => SORT_DESC])->limit(30)->all(),
|
||||
"userArray" => User::userArray()
|
||||
]);
|
||||
}
|
||||
|
||||
}
|
23
widgets/Tree.php
Normal file
23
widgets/Tree.php
Normal file
|
@ -0,0 +1,23 @@
|
|||
<?php
|
||||
|
||||
namespace app\widgets;
|
||||
|
||||
use yii\base\Widget;
|
||||
|
||||
class Tree extends Widget {
|
||||
|
||||
public $model;
|
||||
|
||||
public function init() {
|
||||
parent::init();
|
||||
}
|
||||
|
||||
public function run() {
|
||||
|
||||
return $this->render("tree", [
|
||||
"root" => $this->model->findOne(1),
|
||||
"model" => $this->model
|
||||
]);
|
||||
}
|
||||
|
||||
}
|
24
widgets/TreeSub.php
Normal file
24
widgets/TreeSub.php
Normal file
|
@ -0,0 +1,24 @@
|
|||
<?php
|
||||
|
||||
namespace app\widgets;
|
||||
|
||||
use yii\base\Widget;
|
||||
|
||||
class TreeSub extends Widget {
|
||||
|
||||
public $pid;
|
||||
public $model;
|
||||
|
||||
public function init() {
|
||||
parent::init();
|
||||
}
|
||||
|
||||
public function run() {
|
||||
|
||||
return $this->render("tree-sub", [
|
||||
"lists" => $this->model->find()->andWhere(['pid' => $this->pid])->all(),
|
||||
"model" => $this->model
|
||||
]);
|
||||
}
|
||||
|
||||
}
|
|
@ -3,7 +3,7 @@
|
|||
<i class="fa fa-minus-square-o" onclick="common.tree(this);" data="{$l->code}" data-stt="true"></i>
|
||||
<span class="tree-drop">{$l->code}-{$l->name}</span>
|
||||
<div id="sub-tree-{$l->code}" style="padding-left: 20px;">
|
||||
{\app\widgets\Department::widget(["pid"=>$l->code])}
|
||||
{\app\widgets\TreeSub::widget(["pid"=>$l->code,"model"=>$model])}
|
||||
</div>
|
||||
</div>
|
||||
{/foreach}
|
|
@ -2,6 +2,6 @@
|
|||
<i class="fa fa-minus-square-o" onclick="common.tree(this);" data="1" data-stt="true"></i>
|
||||
<b class="tree tree-drop" data="0">{$root->code}-{$root->name}</b>
|
||||
<div id="sub-tree-1" style="padding-left: 20px;">
|
||||
{\app\widgets\Department::widget(["pid"=>1])}
|
||||
{\app\widgets\TreeSub::widget(["pid"=>1,"model"=>$model])}
|
||||
</div>
|
||||
</div>
|
Loading…
Reference in New Issue
Block a user