|
|
@@ -2,6 +2,9 @@
|
|
|
|
|
|
namespace UCore\DcatAdmin;
|
|
|
|
|
|
+use App\Module\GameItems\AdminControllers\LazyRenderable\ChestLazyRenderable;
|
|
|
+use App\Module\GameItems\Models\Item;
|
|
|
+use UCore\DcatAdmin\Grid\SelectTable;
|
|
|
use UCore\DcatAdmin\Traits\Options;
|
|
|
use Dcat\Admin\Grid\Filter;
|
|
|
use Illuminate\Support\Arr;
|
|
|
@@ -11,6 +14,7 @@ class FilterHelper
|
|
|
|
|
|
use Options;
|
|
|
|
|
|
+
|
|
|
/**
|
|
|
* @var Filter
|
|
|
*/
|
|
|
@@ -24,18 +28,20 @@ class FilterHelper
|
|
|
{
|
|
|
$this->filter = $filter;
|
|
|
$this->controller = $controller;
|
|
|
- // $this->filter->expand();
|
|
|
- // $this->filter->panel();
|
|
|
+ $this->filter->expand();
|
|
|
+ $this->filter->panel();
|
|
|
+
|
|
|
}
|
|
|
|
|
|
|
|
|
- public function equal($field,$label= '')
|
|
|
+ public function equal($field, $label = '')
|
|
|
{
|
|
|
$this->filter->equal($field, $label);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* in条件映射
|
|
|
+ *
|
|
|
* @param $field
|
|
|
* @param $field_origin
|
|
|
* @param $label
|
|
|
@@ -45,7 +51,7 @@ class FilterHelper
|
|
|
{
|
|
|
return $this->filter->where($field, function (\Illuminate\Database\Eloquent\Builder $query) use ($field, $field_origin) {
|
|
|
|
|
|
- $query->whereIn($field_origin, explode(',',$this->input));
|
|
|
+ $query->whereIn($field_origin, explode(',', $this->input));
|
|
|
|
|
|
}, $label);
|
|
|
}
|
|
|
@@ -63,26 +69,27 @@ class FilterHelper
|
|
|
{
|
|
|
return $this->filter->where($field, function (\Illuminate\Database\Eloquent\Builder $query) use ($field, $field_origin) {
|
|
|
|
|
|
- $query->where($field_origin,'>', $this->input);
|
|
|
+ $query->where($field_origin, '>', $this->input);
|
|
|
|
|
|
}, $label);
|
|
|
}
|
|
|
|
|
|
- public function equaljson($field,$field1,$field2,$label= '')
|
|
|
+ public function equaljson($field, $field1, $field2, $label = '')
|
|
|
{
|
|
|
- $this->filter->where($field, function ($query) use ($field1,$field2){
|
|
|
+ $this->filter->where($field, function ($query) use ($field1, $field2) {
|
|
|
|
|
|
$query->whereRaw(" $field1->\"$.$field2\" = '{$this->input}' ");
|
|
|
|
|
|
- },$label);
|
|
|
+ }, $label);
|
|
|
}
|
|
|
- public function equaljsonInt($field,$field1,$field2,$label= '')
|
|
|
+
|
|
|
+ public function equaljsonInt($field, $field1, $field2, $label = '')
|
|
|
{
|
|
|
- $this->filter->where($field, function ($query) use ($field1,$field2){
|
|
|
+ $this->filter->where($field, function ($query) use ($field1, $field2) {
|
|
|
|
|
|
$query->whereRaw(" $field1->\"$.$field2\" = {$this->input} ");
|
|
|
|
|
|
- },$label);
|
|
|
+ }, $label);
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -93,13 +100,13 @@ class FilterHelper
|
|
|
* @param $label
|
|
|
* @return void
|
|
|
*/
|
|
|
- public function columnNotSEmpey($field,$field2,$label= '')
|
|
|
+ public function columnNotSEmpey($field, $field2, $label = '')
|
|
|
{
|
|
|
- $this->filter->where($field, function ($query) use ($field2){
|
|
|
+ $this->filter->where($field, function ($query) use ($field2) {
|
|
|
|
|
|
$query->whereRaw(" `$field2` != '' ");
|
|
|
|
|
|
- },$label);
|
|
|
+ }, $label);
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -110,12 +117,28 @@ class FilterHelper
|
|
|
* @param $enmu
|
|
|
* @return void
|
|
|
*/
|
|
|
- public function equalSelect($field, array $enmu,$label= '')
|
|
|
+ public function equalSelect($field, array $enmu, $label = '')
|
|
|
{
|
|
|
$this->filter->equal($field, $label)->select($enmu);
|
|
|
}
|
|
|
|
|
|
- public function equalSelectVk($field, array $enmu,$label= '')
|
|
|
+ /**
|
|
|
+ * 使用select 关联模型
|
|
|
+ *
|
|
|
+ * @param $field
|
|
|
+ * @param $table
|
|
|
+ * @return void
|
|
|
+ */
|
|
|
+ public function equalSelectModel($field, SelectTable $table, $label = '')
|
|
|
+ {
|
|
|
+ return $this->filter->equal($field)
|
|
|
+ ->selectTable($table) // 设置渲染类实例,并传递自定义参数
|
|
|
+ ->title($label)
|
|
|
+ ->model($table->getModel(), $table->getModelSelectId(), $table->getModelViewName()); // 设置编辑数据显示
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ public function equalSelectVk($field, array $enmu, $label = '')
|
|
|
{
|
|
|
$this->filter->equal($field, $label)->select(array_flip($enmu));
|
|
|
}
|
|
|
@@ -127,16 +150,16 @@ class FilterHelper
|
|
|
* @param array $enmu
|
|
|
* @return Filter\Presenter\Presenter|Filter\Presenter\Radio
|
|
|
*/
|
|
|
- public function equalRadio($field, array $enmu,$label= '')
|
|
|
+ public function equalRadio($field, array $enmu, $label = '')
|
|
|
{
|
|
|
return $this->filter->equal($field, $label)->radio($enmu);
|
|
|
}
|
|
|
|
|
|
- public function equalRadioModelCats($field,$label = '')
|
|
|
+ public function equalRadioModelCats($field, $label = '')
|
|
|
{
|
|
|
$cates = $this->filter->grid()->model()->repository()->model()->getCasts();
|
|
|
- $enmu = $cates[$field]??"";
|
|
|
- if($enmu === ''){
|
|
|
+ $enmu = $cates[$field] ?? "";
|
|
|
+ if ($enmu === '') {
|
|
|
throw new \Exception("$field is not a model casts");
|
|
|
}
|
|
|
// dump($cates,$enmu::getValueDescription());
|
|
|
@@ -146,7 +169,7 @@ class FilterHelper
|
|
|
return $this->filter->equal($field, $label)->radio($values);
|
|
|
}
|
|
|
|
|
|
- public function equalRadioVk($field, array $enmu,$label= '')
|
|
|
+ public function equalRadioVk($field, array $enmu, $label = '')
|
|
|
{
|
|
|
return $this->filter->equal($field, $label)->radio(array_flip($enmu));
|
|
|
}
|
|
|
@@ -159,7 +182,7 @@ class FilterHelper
|
|
|
* @param array $enmu
|
|
|
* @return Filter\Presenter\Presenter|Filter\Presenter\Radio
|
|
|
*/
|
|
|
- public function equalRadioKv($field, array $kv,$label= '')
|
|
|
+ public function equalRadioKv($field, array $kv, $label = '')
|
|
|
{
|
|
|
return $this->filter->equal($field, $label)->radio($kv);
|
|
|
}
|
|
|
@@ -174,25 +197,25 @@ class FilterHelper
|
|
|
* @param $label
|
|
|
* @return Filter\Presenter\Checkbox|Filter\Presenter\Presenter
|
|
|
*/
|
|
|
- public function checkboxDefault($field,$option,$default,$label= '')
|
|
|
+ public function checkboxDefault($field, $option, $default, $label = '')
|
|
|
{
|
|
|
$req = request($field);
|
|
|
- if(!$req){
|
|
|
+ if (!$req) {
|
|
|
/**
|
|
|
* @var \Illuminate\Routing\Route $router
|
|
|
*/
|
|
|
- $router= request()->route();
|
|
|
- $p = request()->query();
|
|
|
+ $router = request()->route();
|
|
|
+ $p = request()->query();
|
|
|
$p[$field] = $default;
|
|
|
|
|
|
- $to = route($router->getName(),$p);
|
|
|
+ $to = route($router->getName(), $p);
|
|
|
admin_exit(admin_redirect($to));;
|
|
|
|
|
|
}
|
|
|
|
|
|
- return $this->filter->where($field, function ($query)use($field){
|
|
|
+ return $this->filter->where($field, function ($query) use ($field) {
|
|
|
|
|
|
- },$label)->checkbox($option)->default($default);
|
|
|
+ }, $label)->checkbox($option)->default($default);
|
|
|
|
|
|
}
|
|
|
|
|
|
@@ -205,7 +228,7 @@ class FilterHelper
|
|
|
* @param $th
|
|
|
* @return Filter\Presenter\Presenter|Filter\Presenter\Radio
|
|
|
*/
|
|
|
- public function notequalRadio($field, array $enmu, $th = 'notEqual',$label= '')
|
|
|
+ public function notequalRadio($field, array $enmu, $th = 'notEqual', $label = '')
|
|
|
{
|
|
|
$t = $field . '-' . $th;
|
|
|
|
|
|
@@ -220,7 +243,7 @@ class FilterHelper
|
|
|
*/
|
|
|
public function columnOrderId()
|
|
|
{
|
|
|
- $this->filter->column('order_id','订单ID' )->link(function ($value) {
|
|
|
+ $this->filter->column('order_id', '订单ID')->link(function ($value) {
|
|
|
return admin_url('order/' . $value);
|
|
|
});
|
|
|
}
|