Skip to content

Commit cf195fd

Browse files
committed
添加flat扩展
GridRoute组件支持{xxx.xx}深度对象值替换
1 parent 40e3e20 commit cf195fd

File tree

9 files changed

+56
-24
lines changed

9 files changed

+56
-24
lines changed

package-lock.json

+30-15
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

+1
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
"wangeditor": "^3.1.1"
3838
},
3939
"dependencies": {
40+
"flat": "^5.0.0",
4041
"js-cookie": "^2.2.1",
4142
"mavon-editor": "^2.9.0",
4243
"vue-progressbar": "^0.7.5",

public/0.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

public/5.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

public/app.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

public/app.js.LICENSE.txt

+7
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
1+
/*!
2+
* Determine if an object is a Buffer
3+
*
4+
* @author Feross Aboukhadijeh <https://feross.org>
5+
* @license MIT
6+
*/
7+
18
/*!
29
* JavaScript Cookie v2.2.1
310
* https://github.com/js-cookie/js-cookie

public/mix-manifest.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"/app.js": "/app.js?id=52747b333ef4846d11ef",
2+
"/app.js": "/app.js?id=77438fd426d416cb6e8f",
33
"/manifest.js": "/manifest.js?id=8991394a854ee5cdffc3",
44
"/vendor.js": "/vendor.js?id=df0be4950fcb717193ba"
55
}

resources/js/components/widgets/Grid/GridRoute.vue

+5-1
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
></el-link>
1111
</template>
1212
<script>
13+
var flatten = require('flat')
1314
import { GridColumnComponent } from "@/mixins.js";
1415
export default {
1516
mixins: [GridColumnComponent],
@@ -22,7 +23,10 @@ export default {
2223
uri() {
2324
//替换变量
2425
let uri = this.attrs.uri;
25-
this._.forEach(this.row, (value, key) => {
26+
27+
let flattenRow = flatten(this.row)
28+
29+
this._.forEach(flattenRow, (value, key) => {
2630
uri = this._.replace(uri, "{" + key + "}", value);
2731
});
2832
return uri;

src/Controllers/LogController.php

+9-4
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,10 @@
88
use SmallRuralDog\Admin\Auth\Database\OperationLog;
99

1010
use SmallRuralDog\Admin\Components\Attrs\SelectOption;
11+
use SmallRuralDog\Admin\Components\Form\Input;
1112
use SmallRuralDog\Admin\Components\Form\Select;
1213
use SmallRuralDog\Admin\Components\Grid\Avatar;
14+
use SmallRuralDog\Admin\Components\Grid\Route;
1315
use SmallRuralDog\Admin\Components\Grid\Tag;
1416
use SmallRuralDog\Admin\Form;
1517
use SmallRuralDog\Admin\Grid;
@@ -26,15 +28,16 @@ protected function grid()
2628
->defaultSort('id', 'desc')
2729
->stripe()
2830
->emptyText("暂无日志")
29-
->height('auto');
31+
->height('auto')
32+
->appendFields(["user.id"]);
3033

3134

3235
$grid->column('id', "ID")->width("100");
3336
$grid->column('user.avatar', '头像', 'user_id')->component(Avatar::make()->size('small'))->width(80);
34-
$grid->column('user.name', '用户', 'user_id')->help("操作用户")->sortable();
37+
$grid->column('user.name', '用户', 'user_id')->help("操作用户")->sortable()->component(Route::make("/auth/logs?user_id={user.id}")->type("primary"));
3538
$grid->column('method', '请求方式')->width(100)->align('center')->component(Tag::make()->type(['GET' => 'info', 'POST' => 'success']));
3639
$grid->column('path', '路径')->help('操作URL')->sortable();
37-
$grid->column('ip', 'IP');
40+
$grid->column('ip', 'IP')->component(Route::make("/auth/logs?ip={ip}")->type("primary"));
3841
$grid->column('created_at', "创建时间")->sortable();
3942

4043
$grid->actions(function (Grid\Actions $actions) {
@@ -45,14 +48,16 @@ protected function grid()
4548
});
4649

4750
$grid->filter(function (Grid\Filter $filter) {
48-
$filter->equal('user_id')->component(Select::make()->placeholder("请选择用户")->options(function () {
51+
$user_id = (int)request('user_id');
52+
$filter->equal('user_id')->component(Select::make($user_id)->placeholder("请选择用户")->options(function () {
4953
$user_ids = OperationLog::query()->groupBy("user_id")->get(["user_id"])->pluck("user_id")->toArray();
5054
/**@var Model $userModel */
5155
$userModel = config('admin.database.users_model');
5256
return $userModel::query()->whereIn("id", $user_ids)->get()->map(function ($user) {
5357
return SelectOption::make($user->id, $user->name);
5458
})->all();
5559
}));
60+
$filter->equal('ip')->component(Input::make(request('ip'))->placeholder("IP"));
5661
});
5762

5863
return $grid;

0 commit comments

Comments
 (0)