This commit is contained in:
2020-03-25 17:08:02 +08:00
parent 6b9202d341
commit 0d2ef31222
35 changed files with 1212 additions and 130 deletions
+29 -35
View File
@@ -10,6 +10,7 @@ namespace app\controller\admin;
use app\controller\Admin;
use app\model\Form as FormM;
use app\model\FormAttr;
/**
* @title 自定义表单
@@ -37,44 +38,40 @@ class Form extends Admin {
/**
* @title 添加表单
*/
public function add(\think\Request $request) {
public function add() {
if ($this->request->isPost()) {
$result = $this->model->validate('Form')->save($request->post());
$result = FormM::create($this->request->post());
if (false !== $result) {
return $this->success('添加成功!', url('admin/form/index'));
return $this->success('添加成功!', url('/admin/form/index'));
} else {
return $this->error($this->model->getError());
}
} else {
$data = array(
'keyList' => $this->model->addField,
$this->data = array(
'keyList' => (new FormM())->addField,
);
$this->assign($data);
$this->setMeta('添加表单');
return $this->fetch('public/edit');
return $this->fetch('admin/public/edit');
}
}
/**
* @title 编辑表单
*/
public function edit(\think\Request $request) {
public function edit() {
if ($this->request->isPost()) {
$result = $this->model->validate('Form')->save($request->post(), array('id' => $request->post('id')));
$result = FormM::update($this->request->post(), array('id' => $this->request->param('id')));
if (false !== $result) {
return $this->success('修改成功!', url('admin/form/index'));
return $this->success('修改成功!', url('/admin/form/index'));
} else {
return $this->error($this->model->getError());
}
} else {
$info = $this->model->where('id', $request->param('id'))->find();
$data = array(
$info = FormM::where('id', $this->request->param('id'))->find();
$this->data = array(
'info' => $info,
'keyList' => $this->model->editField,
'keyList' => (new FormM())->editField,
);
$this->assign($data);
$this->setMeta('编辑表单');
return $this->fetch('public/edit');
return $this->fetch('admin/public/edit');
}
}
@@ -155,17 +152,18 @@ class Form extends Admin {
* @title 表单字段
*/
public function attr($form_id = '') {
$map = array();
$map = [];
$order = "id desc";
$list = $this->Fattr->where($map)->order($order)->paginate(25);
$data = array(
$map[] = ['form_id', '=', $form_id];
$list = FormAttr::where($map)->order($order)->paginate(25);
$this->data = array(
'list' => $list,
'form_id' => $form_id,
'page' => $list->render(),
);
$this->setMeta('表单字段');
$this->assign($data);
return $this->fetch();
}
@@ -179,23 +177,18 @@ class Form extends Admin {
}
if ($this->request->isPost()) {
$data = $this->request->post();
$result = $this->Fattr->save($data);
$result = FormAttr::create($data);
if (false !== $result) {
return $this->success('添加成功!', url('admin/form/attr?form_id='.$form_id));
}else{
return $this->error($this->Fattr->getError());
}
}else{
$info = array(
'form_id' => $form_id
$this->data = array(
'info' => ['form_id' => $form_id],
'keyList' => $this->getField()
);
$data = array(
'info' => $info,
'keyList' => $this->field
);
$this->assign($data);
$this->setMeta('添加字段');
return $this->fetch('public/edit');
return $this->fetch('admin/public/edit');
}
}
@@ -247,18 +240,19 @@ class Form extends Admin {
}
protected function getField(){
$config = \think\facade\Cache::get('system_config_data');
return array(
array('name' => 'id', 'title' => 'id', 'help' => '', 'type' => 'hidden'),
array('name' => 'form_id', 'title' => 'model_id', 'help' => '', 'type' => 'hidden'),
array('name' => 'name', 'title' => '字段名', 'help' => '英文字母开头,长度不超过30', 'type' => 'text'),
array('name' => 'title', 'title' => '字段标题', 'help' => '请输入字段标题,用于表单显示', 'type' => 'text'),
array('name' => 'type', 'title' => '字段类型', 'help' => '用于表单中的展示方式', 'type' => 'select', 'option' => $this->attr, 'help' => ''),
array('name' => 'type', 'title' => '字段类型', 'help' => '用于表单中的展示方式', 'type' => 'select', 'option' => $config['config_type_list'], 'help' => ''),
array('name' => 'length', 'title' => '字段长度', 'help' => '字段的长度值', 'type' => 'text'),
array('name' => 'extra', 'title' => '参数', 'help' => '布尔、枚举、多选字段类型的定义数据', 'type' => 'textarea'),
array('name' => 'value', 'title' => '默认值', 'help' => '字段的默认值', 'type' => 'text'),
array('name' => 'remark', 'title' => '字段备注', 'help' => '用于表单中的提示', 'type' => 'text'),
array('name' => 'is_show', 'title' => '是否显示', 'help' => '是否显示在表单中', 'type' => 'select', 'option' => array('1' => '始终显示', '2' => '新增显示', '3' => '编辑显示', '0' => '不显示'), 'value' => 1),
array('name' => 'is_must', 'title' => '是否必填', 'help' => '用于自动验证', 'type' => 'select', 'option' => array('0' => '否', '1' => '是')),
array('name' => 'is_show', 'title' => '是否显示', 'help' => '是否显示在表单中', 'type' => 'select', 'option' => [['key'=>'1', 'label' => '始终显示'], ['key' => '2', 'label' => '新增显示'], ['key' => '3', 'label' => '编辑显示'], ['key' => '0', 'label' => '不显示']], 'value' => 1),
array('name' => 'is_must', 'title' => '是否必填', 'help' => '用于自动验证', 'type' => 'select', 'option' => array(['key'=>'0', 'label' => '否'], ['key'=>'1', 'label' => '是'])),
);
}
/**