自定义表单优化
This commit is contained in:
@@ -15,4 +15,9 @@ namespace app\common\model;
|
||||
class DiyForm extends BaseModel{
|
||||
|
||||
protected $attrDb = 'FormAttr';
|
||||
|
||||
protected $type = array(
|
||||
'create_time' => 'integer',
|
||||
'update_time' => 'integer',
|
||||
);
|
||||
}
|
||||
@@ -22,17 +22,40 @@ class Form extends Base{
|
||||
'update_time' => 'integer',
|
||||
);
|
||||
|
||||
public $addField = array(
|
||||
array('name'=>'name','title'=>'标识','type'=>'text','help'=>''),
|
||||
array('name'=>'title','title'=>'标题','type'=>'text','help'=>'')
|
||||
);
|
||||
public $addField = [
|
||||
['name' => 'name', 'title' => '标识', 'type' => 'text', 'help' => ''],
|
||||
['name' => 'title', 'title' => '标题', 'type' => 'text', 'help' => ''],
|
||||
['name' => 'show_title', 'title' => '显示标题', 'type' => 'readonly', 'help' => ''],
|
||||
['name' => 'logo', 'title' => '显示Logo', 'type' => 'images', 'help' => ''],
|
||||
['name' => 'cover', 'title' => 'banner图片', 'type' => 'images', 'help' => ''],
|
||||
['name' => 'content', 'title' => '内容', 'type' => 'editor', 'help' => ''],
|
||||
['name' => 'sub_action', 'title' => '提交后操作', 'type' => 'select', 'option' => ['0' => '提示信息', '1' => '跳转连接'], 'help' => ''],
|
||||
['name' => 'sub_content', 'title' => '提交后内容', 'type' => 'textarea', 'help' => ''],
|
||||
['name' => 'sub_tips', 'title' => '提交后提示', 'type' => 'images', 'help' => ''],
|
||||
['name' => 'relation', 'title' => '相关内容', 'type' => 'text', 'help' => '请用英文“,”隔开,如1,2,3'],
|
||||
['name' => 'relation_title', 'title' => '关联标题', 'type' => 'text', 'help' => ''],
|
||||
['name' => 'form_title', 'title' => '表单标题', 'type' => 'text', 'help' => ''],
|
||||
['name' => 'header_info', 'title' => '头部信息', 'type' => 'editor', 'help' => ''],
|
||||
['name' => 'copyright', 'title' => '版权信息', 'type' => 'editor', 'help' => ''],
|
||||
];
|
||||
|
||||
public $editField = array(
|
||||
array('name'=>'id','title'=>'ID','type'=>'hidden','help'=>''),
|
||||
array('name'=>'name','title'=>'标识','type'=>'text','help'=>''),
|
||||
array('name'=>'title','title'=>'标题','type'=>'text','help'=>''),
|
||||
array('name' => 'list_grid', 'title'=>'列表定义', 'type' => 'textarea', 'help'=>'')
|
||||
);
|
||||
public $editField = [
|
||||
['name' => 'id', 'title' => 'ID', 'type' => 'hidden', 'help' => ''],
|
||||
['name' => 'title', 'title' => '标题', 'type' => 'text', 'help' => ''],
|
||||
['name' => 'show_title', 'title' => '显示标题', 'type' => 'text', 'help' => ''],
|
||||
['name' => 'logo', 'title' => '显示Logo', 'type' => 'images', 'help' => ''],
|
||||
['name' => 'cover', 'title' => 'banner图片', 'type' => 'images', 'help' => ''],
|
||||
['name' => 'content', 'title' => '内容', 'type' => 'editor', 'help' => ''],
|
||||
['name' => 'sub_action', 'title' => '提交后操作', 'type' => 'select', 'option' => ['0' => '提示信息', '1' => '跳转连接'], 'help' => ''],
|
||||
['name' => 'sub_content', 'title' => '提交后内容', 'type' => 'textarea', 'help' => ''],
|
||||
['name' => 'sub_tips', 'title' => '提交后提示', 'type' => 'images', 'help' => ''],
|
||||
['name' => 'relation', 'title' => '相关内容', 'type' => 'text', 'help' => '请用英文“,”隔开,如1,2,3'],
|
||||
['name' => 'relation_title', 'title' => '关联标题', 'type' => 'text', 'help' => ''],
|
||||
['name' => 'list_grid', 'title' => '列表定义', 'type' => 'textarea', 'help' => ''],
|
||||
['name' => 'form_title', 'title' => '表单标题', 'type' => 'text', 'help' => ''],
|
||||
['name' => 'header_info', 'title' => '头部信息', 'type' => 'editor', 'help' => ''],
|
||||
['name' => 'copyright', 'title' => '版权信息', 'type' => 'editor', 'help' => ''],
|
||||
];
|
||||
|
||||
protected static function init(){
|
||||
self::beforeInsert(function($event){
|
||||
@@ -82,6 +105,18 @@ class Form extends Base{
|
||||
// });
|
||||
}
|
||||
|
||||
public function getGridListAttr($value, $data){
|
||||
$grid = [];
|
||||
if ($data['list_grid']) {
|
||||
$row = explode("\r\n", $data['list_grid']);
|
||||
foreach ($row as $key => $value) {
|
||||
$item = explode(":", $value);
|
||||
$grid[] = ['field' => $item[0], 'title' => $item[1]];
|
||||
}
|
||||
}
|
||||
return $grid;
|
||||
}
|
||||
|
||||
public function getStatusTextAttr($value, $data) {
|
||||
$status = array(
|
||||
0 => '禁用',
|
||||
@@ -90,4 +125,7 @@ class Form extends Base{
|
||||
return $status[$data['status']];
|
||||
}
|
||||
|
||||
public function attr(){
|
||||
return $this->hasMany('FormAttr');
|
||||
}
|
||||
}
|
||||
@@ -57,6 +57,22 @@ class FormAttr extends Base{
|
||||
return $type_text[0];
|
||||
}
|
||||
|
||||
protected function getExtraListAttr($value, $data){
|
||||
$extra = [];
|
||||
if ($data['extra']) {
|
||||
$e = explode("\r\n", $data['extra']);
|
||||
foreach ($e as $key => $value) {
|
||||
if (strrpos($value, ":")) {
|
||||
list($k, $v) = explode(":", $value);
|
||||
$extra[] = ['key'=> $k, 'label' =>$v];
|
||||
}else{
|
||||
$extra[] = ['key'=> $key, 'label' =>$value];
|
||||
}
|
||||
}
|
||||
}
|
||||
return $extra;
|
||||
}
|
||||
|
||||
public function getFieldlist($map,$index='id'){
|
||||
$list = array();
|
||||
$row = $this->field('*,remark as help,type,extra as "option"')->where($map)->order('group_id asc, sort asc')->select();
|
||||
|
||||
Reference in New Issue
Block a user