238 lines
6.9 KiB
PHP
238 lines
6.9 KiB
PHP
<?php
|
|
/**
|
|
* @copyright (C)2016-2099 Hnaoyun Inc.
|
|
* @author XingMeng
|
|
* @email hnxsh@foxmail.com
|
|
* @date 2018年5月28日
|
|
* 自定义表单模型类
|
|
*/
|
|
namespace app\admin\model\content;
|
|
|
|
use core\basic\Model;
|
|
|
|
class FormModel extends Model
|
|
{
|
|
|
|
// 获取自定义表单列表
|
|
public function getList()
|
|
{
|
|
return parent::table('ay_form')->page()->select();
|
|
}
|
|
|
|
// 查找自定义表单
|
|
public function findForm($field, $keyword)
|
|
{
|
|
return parent::table('ay_form')->like($field, $keyword)
|
|
->page()
|
|
->select();
|
|
}
|
|
|
|
// 获取最后一个code
|
|
public function getLastCode()
|
|
{
|
|
return parent::table('ay_form')->order('id DESC')->value('fcode');
|
|
}
|
|
|
|
// 获取自定义表单详情
|
|
public function getForm($id)
|
|
{
|
|
return parent::table('ay_form')->where("id=$id")->find();
|
|
}
|
|
|
|
// 获取自定义表单详情
|
|
public function getFormByCode($fcode)
|
|
{
|
|
return parent::table('ay_form')->where("fcode='$fcode'")->find();
|
|
}
|
|
|
|
// 获取自定义表单表
|
|
public function getFormTable($id)
|
|
{
|
|
return parent::table('ay_form')->where("id=$id")->value('table_name');
|
|
}
|
|
|
|
// 获取自定义表单表
|
|
public function getFormCode($id)
|
|
{
|
|
return parent::table('ay_form')->where("id=$id")->value('fcode');
|
|
}
|
|
|
|
// 获取自定义表单表
|
|
public function getFormTableByCode($fcode)
|
|
{
|
|
return parent::table('ay_form')->where("fcode='$fcode'")->value('table_name');
|
|
}
|
|
|
|
// 添加自定义表单
|
|
public function addForm(array $data)
|
|
{
|
|
return parent::table('ay_form')->autoTime()->insert($data);
|
|
}
|
|
|
|
// 删除自定义表单
|
|
public function delForm($id)
|
|
{
|
|
$form = parent::table('ay_form')->field('fcode,form_name')
|
|
->where("id=$id")
|
|
->find();
|
|
|
|
// 删除可能存在的菜单
|
|
if (! ! $rs = parent::table('ay_menu')->like('url', '/Form/index/fcode/' . $form->fcode . '/action/showdata')->find()) {
|
|
parent::table('ay_menu')->where("mcode='" . $rs->mcode . "'")->delete();
|
|
$menu = session('menu_tree');
|
|
foreach ($menu as $key => $value) {
|
|
if (! ! $delkey = result_value_search($rs->mcode, $menu[$key]->son, 'mcode')) {
|
|
unset($menu[$key]->son[$delkey]);
|
|
}
|
|
}
|
|
}
|
|
$result = parent::table('ay_form')->where("id=$id")->delete(); // 删除表单
|
|
return $result;
|
|
}
|
|
|
|
// 修改自定义表单
|
|
public function modForm($id, $data)
|
|
{
|
|
return parent::table('ay_form')->where("id=$id")
|
|
->autoTime()
|
|
->update($data);
|
|
}
|
|
|
|
// 获取表单字段
|
|
public function getFormFieldByCode($fcode)
|
|
{
|
|
return parent::table('ay_form_field')->where("fcode='$fcode'")
|
|
->order('sorting ASC,id ASC')
|
|
->select();
|
|
}
|
|
|
|
// 获取字段详情
|
|
public function getFormField($id)
|
|
{
|
|
return parent::table('ay_form_field')->where("id=$id")->find();
|
|
}
|
|
|
|
// 检查表单字段
|
|
public function checkFormField($fcode, $name)
|
|
{
|
|
return parent::table('ay_form_field')->where("fcode='$fcode' AND name='$name'")->find();
|
|
}
|
|
|
|
// 获取表单字段名称
|
|
public function getFormFieldName($id)
|
|
{
|
|
return parent::table('ay_form_field')->where("id=$id")->value('name');
|
|
}
|
|
|
|
// 新增表单字段
|
|
public function addFormField(array $data)
|
|
{
|
|
return parent::table('ay_form_field')->autoTime()->insert($data);
|
|
}
|
|
|
|
// 删除表单字段
|
|
public function delFormField($id)
|
|
{
|
|
return parent::table('ay_form_field')->where("id=$id")->delete();
|
|
}
|
|
|
|
// 删除表单字段
|
|
public function delFormFieldByCode($fcode)
|
|
{
|
|
return parent::table('ay_form_field')->where("fcode='$fcode'")->delete();
|
|
}
|
|
|
|
// 修改表单字段
|
|
public function modFormField($id, $data)
|
|
{
|
|
return parent::table('ay_form_field')->where("id=$id")
|
|
->autoTime()
|
|
->update($data);
|
|
}
|
|
|
|
// 判断字段是否存在
|
|
public function isExistField($table, $field)
|
|
{
|
|
$fields = parent::tableFields($table);
|
|
if (in_array($field, $fields)) {
|
|
return true;
|
|
} else {
|
|
return false;
|
|
}
|
|
}
|
|
|
|
// 获取表单数据
|
|
public function getFormData($table, $page = true)
|
|
{
|
|
return parent::table($table)->page($page)
|
|
->order('id DESC')
|
|
->select();
|
|
}
|
|
|
|
// 删除自定义表单数据
|
|
public function delFormData($table, $id)
|
|
{
|
|
return parent::table($table)->where("id=$id")->delete();
|
|
}
|
|
|
|
// 清空自定义表单数据
|
|
public function clearFormData($table)
|
|
{
|
|
return parent::table($table)->delete();
|
|
}
|
|
|
|
// 增加表单数据查看到菜单
|
|
public function addFormMenu($id)
|
|
{
|
|
$form = parent::table('ay_form')->field('fcode,form_name')
|
|
->where("id=$id")
|
|
->find();
|
|
|
|
$menus = session('menu_tree');
|
|
|
|
// 判断是否已经在菜单中
|
|
if (! ! $menu = parent::table('ay_menu')->like('url', '/Form/index/fcode/' . $form->fcode . '/action/showdata')->find()) {
|
|
if ($form->form_name != $menu->name) {
|
|
// 更新缓存菜单
|
|
parent::table('ay_menu')->where('mcode="' . $menu->mcode . '"')->update('name="' . $form->form_name . '"');
|
|
foreach ($menus as $key => $value) {
|
|
if ($value->mcode == 'M157') {
|
|
if (($skey = result_value_search($menu->mcode, $menus[$key]->son, 'mcode')) !== false) {
|
|
$menus[$key]->son[$skey]->name = $form->form_name;
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
|
|
// 构建数据
|
|
$lastmcode = parent::table('ay_menu')->order('mcode DESC')->value('mcode');
|
|
$mcode = get_auto_code($lastmcode);
|
|
$data = array(
|
|
'mcode' => $mcode,
|
|
'pcode' => 'M157',
|
|
'name' => $form->form_name,
|
|
'url' => '/Form/index/fcode/' . $form->fcode . '/action/showdata',
|
|
'sorting' => 599,
|
|
'status' => 1,
|
|
'shortcut' => 0,
|
|
'ico' => 'fa-plus-square-o',
|
|
'create_user' => session('username'),
|
|
'update_user' => session('username')
|
|
);
|
|
|
|
// 加入菜单
|
|
foreach ($menus as $key => $value) {
|
|
if ($value->mcode == 'M157') {
|
|
// 未在缓存菜单中才执行添加
|
|
if (result_value_search($mcode, $menus[$key]->son, 'mcode') === false) {
|
|
$menus[$key]->son[] = array_to_object($data);
|
|
return parent::table('ay_menu')->autoTime()->insert($data); // 插入到数据库
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
} |