安装插件后的基础文件
This commit is contained in:
22
app/admin/controller/developer/stubs/add.stub
Normal file
22
app/admin/controller/developer/stubs/add.stub
Normal file
@@ -0,0 +1,22 @@
|
||||
<include file="/public/header" />
|
||||
<!-- // 重定位style -->
|
||||
<!--{pluginClass}-->
|
||||
<link href="__STATICADMIN__css/content.css" rel="stylesheet" type="text/css" />
|
||||
<div class="layui-fluid">
|
||||
<form class="layui-form layui-card" >
|
||||
|
||||
<div class="layui-card-body">
|
||||
<gt name="$data.id" value="0">
|
||||
<input type="text" name="id" value="{$data.id}" hidden="">
|
||||
<else/>
|
||||
<input type="text" name="id" value="" hidden="">
|
||||
</gt>
|
||||
{formItems}
|
||||
<div class="layui-footer layui-form-footer">
|
||||
<button class="layui-btn layui-btn-primary" type="button" sa-event="closeDialog">{:__('取消')}</button>
|
||||
<button class="layui-btn" type="button" lay-filter="submitIframe" lay-submit>{:__('提交')}</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<include file="/public/static" />
|
||||
<include file="/public/footer" />
|
||||
22
app/admin/controller/developer/stubs/change/json.stub
Normal file
22
app/admin/controller/developer/stubs/change/json.stub
Normal file
@@ -0,0 +1,22 @@
|
||||
public function set{%field%}Attr($value)
|
||||
{
|
||||
if (!empty($value) && is_array($value)) {
|
||||
$arr = [];
|
||||
foreach ($value['key'] as $key => $elem) {
|
||||
$arr[$elem] = $value['value'][$key];
|
||||
}
|
||||
|
||||
$value = json_encode($arr,JSON_UNESCAPED_UNICODE);
|
||||
}
|
||||
|
||||
return $value ?: json_encode([]);
|
||||
}
|
||||
|
||||
public function get{%field%}Attr($value)
|
||||
{
|
||||
if (!empty($value) && is_string($value)) {
|
||||
$value = json_decode($value, true);
|
||||
}
|
||||
|
||||
return $value;
|
||||
}
|
||||
17
app/admin/controller/developer/stubs/change/set.stub
Normal file
17
app/admin/controller/developer/stubs/change/set.stub
Normal file
@@ -0,0 +1,17 @@
|
||||
public function set{%field%}Attr($value)
|
||||
{
|
||||
if (!empty($value) && is_array($value)) {
|
||||
$value = implode(',',$value);
|
||||
}
|
||||
|
||||
return $value;
|
||||
}
|
||||
|
||||
public function get{%field%}Attr($value)
|
||||
{
|
||||
if (!empty($value) && is_string($value)) {
|
||||
$value = explode(',',$value);
|
||||
}
|
||||
|
||||
return $value;
|
||||
}
|
||||
17
app/admin/controller/developer/stubs/change/text.stub
Normal file
17
app/admin/controller/developer/stubs/change/text.stub
Normal file
@@ -0,0 +1,17 @@
|
||||
public function set{%field%}Attr($value)
|
||||
{
|
||||
if (!empty($value)) {
|
||||
$value = serialize($value);
|
||||
}
|
||||
|
||||
return $value;
|
||||
}
|
||||
|
||||
public function get{%field%}Attr($value)
|
||||
{
|
||||
if (!empty($value)) {
|
||||
$value = unserialize($value);
|
||||
}
|
||||
|
||||
return $value;
|
||||
}
|
||||
35
app/admin/controller/developer/stubs/controller.stub
Normal file
35
app/admin/controller/developer/stubs/controller.stub
Normal file
@@ -0,0 +1,35 @@
|
||||
<?php
|
||||
declare (strict_types = 1);
|
||||
namespace {%controllerNamespace%};
|
||||
|
||||
use app\AdminController;
|
||||
use Webman\Http\Request;
|
||||
use {%modelNamespace%}\{%modelName%} as {%modelName%}Model;
|
||||
|
||||
/**
|
||||
* {%table%}
|
||||
* {%title%}
|
||||
* <!--{%pluginClass%}-->
|
||||
* Class {%controllerName%}
|
||||
* @package {%controllerNamespace%}
|
||||
*/
|
||||
class {%controllerName%} extends AdminController
|
||||
{
|
||||
/**
|
||||
* {%modelName%}模型对象
|
||||
* @var \{%modelNamespace%}\{%modelName%}
|
||||
*/
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
$this->model = new {%modelName%}Model;
|
||||
}
|
||||
|
||||
/**
|
||||
* 默认生成的方法为index/add/edit/del/status 五个方法
|
||||
* 当创建CURD的时候,DIY的函数体和模板为空,请自行编写代码
|
||||
*/
|
||||
{%controllerDiy%}
|
||||
|
||||
}
|
||||
1
app/admin/controller/developer/stubs/edit.stub
Normal file
1
app/admin/controller/developer/stubs/edit.stub
Normal file
@@ -0,0 +1 @@
|
||||
<!-- 当前模板为合并模板 如有需求请自行开发 -->
|
||||
9
app/admin/controller/developer/stubs/extend.stub
Normal file
9
app/admin/controller/developer/stubs/extend.stub
Normal file
@@ -0,0 +1,9 @@
|
||||
<include file="/public/header" />
|
||||
<!-- // 重定位style -->
|
||||
<!--{pluginClass}-->
|
||||
<link href="__STATICADMIN__css/content.css" rel="stylesheet" type="text/css" />
|
||||
<div class="layui-fluid">
|
||||
示例模板,可自行开发
|
||||
</div>
|
||||
<include file="/public/static" />
|
||||
<include file="/public/footer" />
|
||||
77
app/admin/controller/developer/stubs/index.stub
Normal file
77
app/admin/controller/developer/stubs/index.stub
Normal file
@@ -0,0 +1,77 @@
|
||||
<include file="/public/header" />
|
||||
<!--{pluginClass}-->
|
||||
<div class="layui-fluid">
|
||||
<div class="layui-card">
|
||||
<!-- // 默认操作按钮 -->
|
||||
<div class="layui-card-header layadmin-card-header-auto ">
|
||||
<div class="layui-form">
|
||||
<!-- // 自定义搜索参数 -->
|
||||
<div id="laytable-search" class="layui-form-item" >
|
||||
{%everySearchHtml%}
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
{%adviceSearchHtml%}
|
||||
<div class="layui-inline" >
|
||||
<!-- // 默认搜索 -->
|
||||
<button class="layui-btn icon-btn" lay-filter="formSearch" lay-submit><i class="layui-icon layui-icon-search"></i>{:__('搜索')}</button>
|
||||
<!--formBegin-->
|
||||
<button class="layui-btn icon-btn" lay-open="" data-title="{:__('添加')}" data-area="{%FormArea%}" data-maxmin="true" data-url="{:url('{%controller%}add')}" >
|
||||
<i class="layui-icon layui-icon-add-1"></i>{:__('添加')}
|
||||
</button>
|
||||
<!--formEnd-->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- // 创建数据实例 -->
|
||||
<table id="lay-tableList" lay-filter="lay-tableList"></table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- // 列表状态栏 -->
|
||||
<script type="text/html" id="columnStatus">
|
||||
<input type="checkbox" lay-filter="switchStatus" data-url="{:url('{%controller%}status')}" value="{{d.id}}" lay-skin="switch" {{d.status==1?'checked':''}} />
|
||||
</script>
|
||||
|
||||
<!-- // 列表工具栏 -->
|
||||
<script type="text/html" id="tableBar">
|
||||
<!--formBegin-->
|
||||
<a class="layui-table-text" data-title="{:__('编辑')}" data-area="{%FormArea%}" data-maxmin="true"
|
||||
data-url="{:url('{%controller%}edit')}?id={{d.id}}" lay-event="edit" >{:__('编辑')}</a>
|
||||
<div class="layui-divider layui-divider-vertical"></div>
|
||||
<!--formEnd-->
|
||||
<a class="layui-table-text" data-url="{:url('{%controller%}del')}?id={{d.id}}" lay-event="del" >{:__('删除')}</a>
|
||||
</script>
|
||||
|
||||
{%editforms%}
|
||||
|
||||
<script type="text/html" id="tableButton"></script>
|
||||
|
||||
<include file="/public/footer" />
|
||||
<script>
|
||||
layui.use(['admin','table'], function () {
|
||||
|
||||
var admin = layui.admin;
|
||||
var table = layui.table;
|
||||
|
||||
/*
|
||||
* 初始化表格
|
||||
*/
|
||||
var isTable = table.render({
|
||||
elem: "#lay-tableList"
|
||||
,url: "{:url('{%controller%}index')}"
|
||||
,toolbar: '#tableButton'
|
||||
,defaultToolbar: ['filter', 'exports', 'print','search']
|
||||
,cellMinWidth: 160
|
||||
,page: true
|
||||
,limit: 18
|
||||
,cols: [[
|
||||
{type: 'checkbox', width: 50},
|
||||
{field: 'id', align: 'center',sort: true,width: 80, title: 'ID'},
|
||||
{%colsListArr%}
|
||||
{align: 'center', toolbar: '#tableBar', width:160, fixed: 'right', title: '{:__("操作")}'},
|
||||
]]
|
||||
})
|
||||
|
||||
})
|
||||
</script>
|
||||
75
app/admin/controller/developer/stubs/index_inside.stub
Normal file
75
app/admin/controller/developer/stubs/index_inside.stub
Normal file
@@ -0,0 +1,75 @@
|
||||
<include file="/public/header" />
|
||||
<!--{pluginClass}-->
|
||||
<div class="layui-fluid">
|
||||
<div class="layui-card">
|
||||
<!-- // 默认操作按钮 -->
|
||||
<div class="layui-card-header layadmin-card-header-auto ">
|
||||
<div class="layui-form">
|
||||
<!-- // 自定义搜索参数 -->
|
||||
<div id="laytable-search" class="layui-form-item" >
|
||||
{%everySearchHtml%}
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
{%adviceSearchHtml%}
|
||||
<div class="layui-inline" >
|
||||
<!-- // 默认搜索 -->
|
||||
<button class="layui-btn icon-btn" lay-filter="formSearch" lay-submit><i class="layui-icon layui-icon-search"></i>{:__('搜索')}</button>
|
||||
<!-- // 打开添加页面 -->
|
||||
<button class="layui-btn icon-btn" lay-open="" data-title="{:__('添加')}" data-area="{%FormArea%}" data-maxmin="true" data-url="#editforms" >
|
||||
<i class="layui-icon layui-icon-add-1"></i>{:__('添加')}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- // 创建数据实例 -->
|
||||
<table id="lay-tableList" lay-filter="lay-tableList"></table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- // 列表状态栏 -->
|
||||
<script type="text/html" id="columnStatus">
|
||||
<input type="checkbox" lay-filter="switchStatus" data-url="{:url('{%controller%}status')}" value="{{d.id}}" lay-skin="switch" {{d.status==1?'checked':''}} />
|
||||
</script>
|
||||
|
||||
<!-- // 列表工具栏 -->
|
||||
<script type="text/html" id="tableBar">
|
||||
<a class="layui-table-text" data-title="{:__('编辑')}" data-area="{%FormArea%}" data-maxmin="true" data-url="#editforms" lay-event="edit" >{:__('编辑')}</a>
|
||||
<div class="layui-divider layui-divider-vertical"></div>
|
||||
<a class="layui-table-text" data-url="{:url('{%controller%}del')}?id={{d.id}}" lay-event="del" >{:__('删除')}</a>
|
||||
</script>
|
||||
|
||||
{%editforms%}
|
||||
|
||||
<!-- // 工具栏按钮项 TODO -->
|
||||
<script type="text/html" id="tableButton">
|
||||
</script>
|
||||
|
||||
<include file="/public/footer" />
|
||||
<script>
|
||||
layui.use(['admin','table'], function () {
|
||||
|
||||
var admin = layui.admin;
|
||||
var table = layui.table;
|
||||
|
||||
/*
|
||||
* 初始化表格
|
||||
*/
|
||||
var isTable = table.render({
|
||||
elem: "#lay-tableList"
|
||||
,url: "{:url('{%controller%}index')}"
|
||||
,toolbar: '#tableButton'
|
||||
,defaultToolbar: ['filter', 'exports', 'print','search']
|
||||
,cellMinWidth: 160
|
||||
,page: true
|
||||
,limit: 18
|
||||
,cols: [[
|
||||
{type: 'checkbox', width:50},
|
||||
{field: 'id', align: 'center',sort: true,width: 80, title: 'ID'},
|
||||
{%colsListArr%}
|
||||
{align: 'center', toolbar: '#tableBar', width:160, fixed: 'right', title: '{:__("操作")}'},
|
||||
]]
|
||||
})
|
||||
|
||||
})
|
||||
</script>
|
||||
13
app/admin/controller/developer/stubs/inside.stub
Normal file
13
app/admin/controller/developer/stubs/inside.stub
Normal file
@@ -0,0 +1,13 @@
|
||||
<!-- // 内置表单项 -->
|
||||
<script type="text/html" id="editforms" >
|
||||
<div class="layui-fluid layui-bg-white" >
|
||||
<form class="layui-form layui-form-fixed" lay-filter="editforms" >
|
||||
<input type="text" name="id" hidden="">
|
||||
{formItems}
|
||||
<div class="layui-footer layui-form-item layui-center" >
|
||||
<button class="layui-btn layui-btn-primary" type="button" sa-event="closePageDialog" >{:__('取消')}</button>
|
||||
<button class="layui-btn" type="button" lay-filter="submitPage" lay-submit>{:__('提交')}</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</script>
|
||||
12
app/admin/controller/developer/stubs/list/checkbox.stub
Normal file
12
app/admin/controller/developer/stubs/list/checkbox.stub
Normal file
@@ -0,0 +1,12 @@
|
||||
templet:function(d) {
|
||||
var colsTit = [];
|
||||
var colsArr = {colsArr};
|
||||
for (var key in colsArr) {
|
||||
let el = colsArr[key];
|
||||
if (d.{field}.indexOf(el.value) !== -1) {
|
||||
colsTit.push(el.title);
|
||||
}
|
||||
}
|
||||
|
||||
return colsTit.join(' ');
|
||||
}
|
||||
3
app/admin/controller/developer/stubs/list/file.stub
Normal file
3
app/admin/controller/developer/stubs/list/file.stub
Normal file
@@ -0,0 +1,3 @@
|
||||
templet:function(d) {
|
||||
return '<a href="'+d.{field}+'" target="_blank" ><img class="filesuffix" src="'+d.{field}+'"></a>';
|
||||
}
|
||||
3
app/admin/controller/developer/stubs/list/images.stub
Normal file
3
app/admin/controller/developer/stubs/list/images.stub
Normal file
@@ -0,0 +1,3 @@
|
||||
templet:function(d) {
|
||||
return '<a href="javascript:"><img class="filesuffix" lay-image-click src="'+d.{field}+'"></a>';
|
||||
}
|
||||
3
app/admin/controller/developer/stubs/list/json.stub
Normal file
3
app/admin/controller/developer/stubs/list/json.stub
Normal file
@@ -0,0 +1,3 @@
|
||||
templet:function(d) {
|
||||
return JSON.stringify(d.{field});
|
||||
}
|
||||
7
app/admin/controller/developer/stubs/list/multiple.stub
Normal file
7
app/admin/controller/developer/stubs/list/multiple.stub
Normal file
@@ -0,0 +1,7 @@
|
||||
templet:function(d) {
|
||||
var album = [];
|
||||
for (var i in d.{field}) {
|
||||
album[i] = '<a href="javascript:" class="fileslink" ><img class="filesuffix" lay-image-click src="'+d.{field}[i].src+'"></a>'
|
||||
}
|
||||
return album.join('');
|
||||
}
|
||||
4
app/admin/controller/developer/stubs/list/radio.stub
Normal file
4
app/admin/controller/developer/stubs/list/radio.stub
Normal file
@@ -0,0 +1,4 @@
|
||||
templet:function(d) {
|
||||
var colsArr = {colsArr};
|
||||
return colsArr[d.{field}].title;
|
||||
}
|
||||
4
app/admin/controller/developer/stubs/list/select.stub
Normal file
4
app/admin/controller/developer/stubs/list/select.stub
Normal file
@@ -0,0 +1,4 @@
|
||||
templet:function(d) {
|
||||
var colsArr = {colsArr};
|
||||
return colsArr[d.{field}].title;
|
||||
}
|
||||
3
app/admin/controller/developer/stubs/list/tags.stub
Normal file
3
app/admin/controller/developer/stubs/list/tags.stub
Normal file
@@ -0,0 +1,3 @@
|
||||
templet:function(d) {
|
||||
return d.{field}.replace(',',' ');
|
||||
}
|
||||
8
app/admin/controller/developer/stubs/method.stub
Normal file
8
app/admin/controller/developer/stubs/method.stub
Normal file
@@ -0,0 +1,8 @@
|
||||
/**
|
||||
* method 函数
|
||||
*/
|
||||
public function method()
|
||||
{
|
||||
return $this->view();
|
||||
}
|
||||
|
||||
28
app/admin/controller/developer/stubs/model.stub
Normal file
28
app/admin/controller/developer/stubs/model.stub
Normal file
@@ -0,0 +1,28 @@
|
||||
<?php
|
||||
|
||||
namespace {%modelNamespace%};
|
||||
|
||||
use think\Model;
|
||||
{%softDeleteClassPath%}
|
||||
|
||||
/**
|
||||
* {%table%}
|
||||
* <!--{%pluginClass%}-->
|
||||
* {%title%}
|
||||
* Class {%modelName%}
|
||||
* @package {%modelNamespace%}
|
||||
*/
|
||||
class {%modelName%} extends Model
|
||||
{
|
||||
|
||||
{%softDelete%}
|
||||
|
||||
// 定义时间戳字段名
|
||||
protected $createTime = {%createTime%};
|
||||
protected $updateTime = {%updateTime%};
|
||||
protected $deleteTime = {%deleteTime%};
|
||||
|
||||
{%relationMethodList%}
|
||||
{%fieldAttrArr%}
|
||||
|
||||
}
|
||||
BIN
app/admin/controller/developer/stubs/plugin_init.stub
Normal file
BIN
app/admin/controller/developer/stubs/plugin_init.stub
Normal file
Binary file not shown.
5
app/admin/controller/developer/stubs/radio.stub
Normal file
5
app/admin/controller/developer/stubs/radio.stub
Normal file
@@ -0,0 +1,5 @@
|
||||
<if (isset($data['id'])) && $data['id']>
|
||||
<eq name="$vo.checked" value="true">checked</eq>
|
||||
<else/>
|
||||
<eq name="$vo.value" value="$data.fieldName">checked</eq>
|
||||
</if>
|
||||
@@ -0,0 +1,6 @@
|
||||
<div class="layui-inline">
|
||||
<div class="layui-form-label">{:__('{%title%}')}</div>
|
||||
<div class="layui-input-inline ">
|
||||
<input name="{%field%}" lay-cascader="" class="layui-input" type="text" placeholder="{:__('{%title%}')}"/>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,6 @@
|
||||
<div class="layui-inline">
|
||||
<div class="layui-form-label">{:__('{%title%}')}</div>
|
||||
<div class="layui-input-inline ">
|
||||
<input name="{%field%}" lay-datetime data-range="true" data-type="date" data-dateformat="yyyy/MM/dd" class="layui-input" type="text" placeholder="{:__('{%title%}')}"/>
|
||||
</div>
|
||||
</div>
|
||||
6
app/admin/controller/developer/stubs/search/input.stub
Normal file
6
app/admin/controller/developer/stubs/search/input.stub
Normal file
@@ -0,0 +1,6 @@
|
||||
<div class="layui-inline">
|
||||
<div class="layui-form-label">{:__('{%title%}')}</div>
|
||||
<div class="layui-input-inline ">
|
||||
<input name="{%field%}" class="layui-input" type="text" placeholder="{:__('{%title%}')}"/>
|
||||
</div>
|
||||
</div>
|
||||
7
app/admin/controller/developer/stubs/search/rate.stub
Normal file
7
app/admin/controller/developer/stubs/search/rate.stub
Normal file
@@ -0,0 +1,7 @@
|
||||
<div class="layui-inline">
|
||||
<div class="layui-form-label">{:__('{%title%}')}</div>
|
||||
<div class="layui-input-inline" style="max-height:20px;">
|
||||
<input name="{%field%}" class="layui-input layui-hide {%field%}" type="text" placeholder="{:__('{%title%}')}"/>
|
||||
<div lay-rate="{%field%}" data-default="1" data-theme="{theme}" data-length="{length}" class="layui-inline"></div>
|
||||
</div>
|
||||
</div>
|
||||
13
app/admin/controller/developer/stubs/search/select.stub
Normal file
13
app/admin/controller/developer/stubs/search/select.stub
Normal file
@@ -0,0 +1,13 @@
|
||||
|
||||
<div class="layui-inline">
|
||||
<div class="layui-form-label">{:__('{%title%}')}</div>
|
||||
<div class="layui-input-inline ">
|
||||
<php> ${%varlist%} = {%vardata%}; </php>
|
||||
<select name="{%field%}" lay-search >
|
||||
<option value="">{:__('请选择')}</option>
|
||||
<volist name="{%varlist%}" id="vo">
|
||||
<option value="{$vo.value}">{$vo.title}</option>
|
||||
</volist>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
7
app/admin/controller/developer/stubs/search/slider.stub
Normal file
7
app/admin/controller/developer/stubs/search/slider.stub
Normal file
@@ -0,0 +1,7 @@
|
||||
<div class="layui-inline">
|
||||
<div class="layui-form-label">{:__('{%title%}')}</div>
|
||||
<div class="layui-input-inline ">
|
||||
<input name="{%field%}" class="layui-input layui-hide" type="text" />
|
||||
<div lay-slider="{%field%}" data_default="{default}" data-theme="{theme}" data-step="{step}" data-max="{max}" data-min="{min}" data-input="true"></div>
|
||||
</div>
|
||||
</div>
|
||||
7
app/admin/controller/developer/stubs/search/status.stub
Normal file
7
app/admin/controller/developer/stubs/search/status.stub
Normal file
@@ -0,0 +1,7 @@
|
||||
<div class="layui-inline">
|
||||
<select name="status">
|
||||
<option value="">{:__('按状态查询')}</option>
|
||||
<option value="2" >{:__('正常')}</option>
|
||||
<option value="1" >{:__('关闭')}</option>
|
||||
</select>
|
||||
</div>
|
||||
36
app/admin/controller/developer/stubs/validate.stub
Normal file
36
app/admin/controller/developer/stubs/validate.stub
Normal file
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
namespace {%validateNamespace%};
|
||||
|
||||
use think\Validate;
|
||||
/**
|
||||
* <!--{%pluginClass%}-->
|
||||
* {%validateName%} 验证器
|
||||
* Class {%validateName%}
|
||||
* @package {%validateNamespace%}
|
||||
*/
|
||||
class {%validateName%} extends Validate
|
||||
{
|
||||
/**
|
||||
* 验证规则
|
||||
*/
|
||||
protected $rule = [
|
||||
];
|
||||
|
||||
|
||||
/**
|
||||
* 提示消息
|
||||
*/
|
||||
protected $message = [
|
||||
];
|
||||
|
||||
|
||||
/**
|
||||
* 验证场景
|
||||
*/
|
||||
protected $scene = [
|
||||
'add' => [],
|
||||
'edit' => [],
|
||||
];
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user