Skip to content

Commit f365964

Browse files
author
hikki
committed
v1 点线面
1 parent b7953e2 commit f365964

File tree

1 file changed

+72
-25
lines changed

1 file changed

+72
-25
lines changed

src/DLPViewer.php

Lines changed: 72 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ public static function makeComponentLine(Form $form, string $column, string $tit
6565
}
6666

6767
/**
68+
* 头部-自定义弹窗按钮
6869
* @param Grid $grid
6970
* @param string $document_id
7071
* @param string $title
@@ -91,8 +92,8 @@ public function render()
9192
{
9293
return <<<EOF
9394
<div class="btn-group pull-right grid-create-btn" style="margin-right: 10px">
94-
<a href='javascript:void(0);' class="btn btn-sm btn-success" id="{$this->document_id}" title="{$this->title}">
95-
<span class="hidden-xs">&nbsp;&nbsp;{$this->title}</span>
95+
<a href='javascript:void(0);' class="btn btn-sm btn-primary" id="{$this->document_id}" title="{$this->title}">
96+
<span class="hidden-xs">{$this->title}</span>
9697
</a>
9798
</div>
9899
EOF;
@@ -101,37 +102,76 @@ public function render()
101102
}
102103

103104
/**
105+
* 列-多按钮添加
104106
* @param Grid $grid
105-
* @param string $document_class
106-
* @param string $title
107-
* @param string $url
107+
* @param array $settings [setting,...]
108+
* setting.document_class 自定义类名 关键词:CEForm
109+
* setting.title 自定义按钮名
110+
* setting.url 加载页地址
111+
* setting.with_id 加载页面url附加id参数 url/{id}
112+
* setting.xhr_url ajax提交地址
113+
* setting.method ajax提交方法
108114
*/
109-
public static function makeRowPlaneAction(Grid $grid,string $document_class,string $title,string $url)
115+
public static function makeRowPlaneAction(Grid $grid,array $settings = [
116+
['document_class'=>'','title'=>'','url'=>'','with_id'=>false,'xhr_url'=>'','method'=>'POST']
117+
])
110118
{
111-
Admin::script(<<<EOF
112-
$('#{$document_class}').click(function(){
113-
componentPlane('{$url}');
119+
$grid->actions(function ($actions)use($settings) {
120+
$script = '';
121+
foreach ($settings as $setting){
122+
$url = Request::capture()->getPathInfo();
123+
if($setting['document_class'] == 'CEForm'){
124+
$actions->disableEdit();
125+
$script.=<<<EOF
126+
$('.CEForm').click(function(){
127+
let url = '{$url}' + '/'+this.getAttribute('data-id')+'/edit';
128+
componentPlane(url,url);
114129
});
115-
EOF
116-
);
117-
$grid->tools->append(new class($title,$document_class) extends RowAction {
118-
private $title;
119-
private $document_class;
120-
public function __construct($title,$document_class)
121-
{
122-
parent::__construct();
123-
$this->title = $title;
124-
$this->document_class = $document_class;
130+
EOF;
131+
continue;
132+
}
133+
$url = $setting['url'];
134+
$method = isset($setting['method']) ? $setting['method'] : 'POST';
135+
$with_id = isset($setting['with_id']) ? $setting['with_id'] : false;
136+
$xhr_url = isset($setting['xhr_url']) ? $setting['xhr_url'] : $url;
137+
if($with_id){
138+
$script.=<<<EOF
139+
$('.{$setting['document_class']}').click(function(){
140+
let url = '{$url}' + '/'+this.getAttribute('data-id');
141+
componentPlane('{$url}','{$xhr_url}','{$method}');});
142+
EOF;
143+
continue;
144+
}
145+
$script.=<<<EOF
146+
$('.{$setting['document_class']}').click(function(){componentPlane('{$url}','{$xhr_url}','{$method}');});
147+
EOF;
125148
}
126-
public function render()
127-
{
128-
return "<a href='javascript:void(0);' class='{$this->document_class}' data-id='{$this->getKey()}'>{$this->title}</a>";
149+
Admin::script($script);
150+
151+
foreach ($settings as $setting) {
152+
$actions->add(new
153+
class($setting['document_class'], $setting['title']) extends RowAction {
154+
private $title;
155+
private $document_class;
156+
157+
public function __construct($document_class, $title)
158+
{
159+
parent::__construct();
160+
$this->document_class = $document_class;
161+
$this->title = $title;
162+
}
163+
164+
public function render()
165+
{
166+
return "<a href='javascript:void(0);' class='{$this->document_class}' data-id='{$this->getKey()}'>{$this->title}</a>";
167+
}
168+
});
129169
}
130170
});
131171
}
132172

133173
/**
134-
* 创建弹窗新增表单-按钮
174+
* 新增表单-按钮
135175
* @param Grid $grid
136176
*/
137177
public static function makeAddFormAction(Grid $grid)
@@ -160,7 +200,7 @@ public function render()
160200
}
161201

162202
/**
163-
* 创建弹窗修改表单-按钮
203+
* 修改表单-按钮
164204
* @param Grid $grid
165205
*/
166206
public static function makeEditFormAction(Grid $grid)
@@ -187,7 +227,7 @@ public function render()
187227
}
188228

189229
/**
190-
* 创建弹窗修改表单-按钮 (旧版图标模式)
230+
* 修改表单-按钮 (旧版图标模式)
191231
* @param Grid $grid
192232
*/
193233
public static function _makeEditFormAction(Grid &$grid)
@@ -259,12 +299,19 @@ public static function script($script)
259299
);
260300
}
261301

302+
/**
303+
* @param array $data
304+
* @return false|string
305+
*/
262306
protected static function safeJson(array $data)
263307
{
264308
self::recursiveJsonArray($data);
265309
return json_encode($data, JSON_UNESCAPED_UNICODE);
266310
}
267311

312+
/**
313+
* @param array $data
314+
*/
268315
private static function recursiveJsonArray(array &$data)
269316
{
270317
foreach ($data as &$d) {

0 commit comments

Comments
 (0)