Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
P
projecttwo
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wangtao
projecttwo
Commits
f7bce4d9
Commit
f7bce4d9
authored
Apr 27, 2025
by
wangtao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
增加后台文章管理
parent
8e245f63
Changes
13
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
1420 additions
and
195 deletions
+1420
-195
Article.php
app/admin/controller/Article.php
+64
-24
ArticleCategory.php
app/admin/controller/ArticleCategory.php
+106
-0
ArticleValidate.php
app/admin/validate/ArticleValidate.php
+23
-0
edit.html
app/admin/view/article/edit.html
+12
-10
index.html
app/admin/view/article/index.html
+81
-80
edit.html
app/admin/view/article_category/edit.html
+83
-0
index.html
app/admin/view/article_category/index.html
+138
-0
header.html
app/admin/view/base/header.html
+3
-1
main.html
app/admin/view/index/main.html
+33
-32
common.php
app/common.php
+1
-1
ArticleCategoryModel.php
app/model/ArticleCategoryModel.php
+55
-0
buildItems.js
public/static/admin/module/buildItems/buildItems.js
+82
-47
buildItems11.js
public/static/admin/module/buildItems/buildItems11.js
+739
-0
No files found.
app/admin/controller/Article.php
View file @
f7bce4d9
...
...
@@ -10,13 +10,13 @@
namespace
app\admin\controller
;
use
app\model\system\SystemDict
as
Dict
;
use
app\model\system\SystemMenus
as
Menus
;
use
app\model\system\SystemCategory
as
Category
;
use
app\model\ArticleCategoryModel
;
use
think\App
;
use
think\facade\Db
;
use
app\model\ArticleModel
;
use
tool\Tree
;
use
app\admin\validate\ArticleValidate
;
/**
* 后台主控制器
*/
...
...
@@ -34,49 +34,89 @@ class Article extends AdminBase
}
//文章列表
public
function
index
(
string
$do
=
''
)
public
function
index
(
string
$do
=
''
)
{
$limit
=
10
;
if
(
$do
==
'json'
)
{
$post
=
input
();
$post
[
'page'
]
=
isset
(
$post
[
'page'
])
?
$post
[
'page'
]
:
1
;
$post
[
'limit'
]
=
isset
(
$post
[
'limit'
])
?
$post
[
'limit'
]
:
$limit
;
$map
[]
=
[
'is_del'
,
'='
,
0
];
$list
=
$this
->
article
->
where
(
$map
)
->
page
(
$post
[
'page'
],
$post
[
'limit'
])
->
select
()
->
append
([
'cate_name'
,
'adminname'
])
->
toArray
();
if
(
isset
(
$post
[
'kw'
])
&&
!
empty
(
$post
[
'kw'
]))
{
$map
[]
=
[
'title'
,
'like'
,
'%'
.
$post
[
'kw'
]
.
'%'
];
}
if
(
isset
(
$post
[
'cate_id'
])
&&
!
empty
(
$post
[
'cate_id'
]))
{
$map
[]
=
[
'cate_id'
,
'='
,
$post
[
'cate_id'
]];
}
$list
=
$this
->
article
->
where
(
$map
)
->
append
([
'cate_name'
,
'adminname'
])
->
paginate
(
$post
[
'limit'
]);
return
$this
->
returnMsg
(
''
,
0
,
$list
);
return
$this
->
returnMsg
(
$list
);
}
$category
=
Db
::
name
(
'article_category'
)
->
field
(
'*,pid as parentid'
)
->
order
(
'sort desc'
)
->
select
()
->
toArray
();
$category
=
ArticleCategoryModel
::
field
(
'*,pid as parentid'
)
->
order
(
'sort desc'
)
->
select
()
->
toArray
();
$this
->
assign
(
'category'
,
json_encode
(
$category
));
$this
->
assign
(
'limit'
,
$limit
);
return
$this
->
fetch
(
''
,
''
,
false
);
}
//快速编辑
public
function
editup
()
{
$post
=
input
();
$this
->
article
->
update
([
$post
[
'af'
]
=>
$post
[
'av'
]],
[[
'id'
,
'='
,
$post
[
'id'
]]]);
return
$this
->
returnMsg
(
'修改成功'
);
}
//编辑新增文章
public
function
edit
()
{
$post
=
input
();
if
(
$this
->
request
->
isPost
())
{
if
(
$this
->
request
->
isPost
()){
$check
=
(
new
ArticleValidate
())
->
goCheck
();
if
(
$check
!==
true
)
{
return
$check
;
}
$post
=
input
();
print_r
(
$post
);
exit
;
try
{
$post
[
'admin_id'
]
=
session
(
VT_MANAGER
)[
'userid'
];
$post
[
'createtime'
]
=
time
();
$post
[
'updatetime'
]
=
time
();
if
(
$post
[
'id'
]
>
0
)
{
$msg
=
'更新成功'
;
$this
->
article
->
update
(
$post
,
[
'id'
=>
$post
[
'id'
]]);
}
else
{
unset
(
$post
[
'id'
]);
$msg
=
'添加成功'
;
$this
->
article
->
save
(
$post
);
}
$category
=
Db
::
name
(
'article_category'
)
->
order
(
'sort desc'
)
->
select
()
->
toArray
();
$tree
=
new
Tree
();
$tree
->
icon
=
[
' │ '
,
' ├─ '
,
' └─ '
];
$tree
->
nbsp
=
' '
;
$str
=
"<option value=@id @selected @disabled>@spacer @title</option>"
;
$tree
->
init
(
$category
);
$categorydata
=
$tree
->
getTree
(
0
,
$str
,
0
);
}
catch
(
\Exception
$e
)
{
return
$this
->
returnMsg
(
$e
->
getMessage
(),
0
);
}
return
$this
->
returnMsg
(
$msg
,
1
);
}
$data
=
$this
->
article
->
find
(
$post
[
'id'
]);
$catemodel
=
new
ArticleCategoryModel
();
$categorydata
=
$catemodel
->
catetree
(
isset
(
$data
[
'cate_id'
])
?
$data
[
'cate_id'
]
:
0
);
$this
->
assign
(
'categorydata'
,
$categorydata
);
$this
->
assign
(
'data'
,
$data
);
return
$this
->
fetch
(
''
,
''
,
false
);
}
public
function
maind
()
public
function
del
()
{
return
$this
->
fetch
(
''
,
''
,
false
);
$post
=
input
();
$ids
=
is_array
(
$post
[
'id'
])
?
implode
(
','
,
$post
[
'id'
])
:
$post
[
'id'
];
if
(
$this
->
article
->
where
(
"id IN("
.
$ids
.
")"
)
->
update
([
'is_del'
=>
1
]))
{
return
$this
->
returnMsg
(
"删除成功"
,
1
);
}
else
{
return
$this
->
returnMsg
(
"删除失败"
);
}
}
...
...
app/admin/controller/ArticleCategory.php
0 → 100644
View file @
f7bce4d9
<?php
/**
* ===========================================================================
* Veitool 快捷开发框架系统
* Author: Niaho 26843818@qq.com
* Copyright (c)2019-2025 www.veitool.com All rights reserved.
* Licensed: 这不是一个自由软件,不允许对程序代码以任何形式任何目的的再发行
* ---------------------------------------------------------------------------
*/
namespace
app\admin\controller
;
use
app\model\ArticleCategoryModel
;
use
think\App
;
use
think\facade\Db
;
use
think\facade\Validate
;
/**
* 后台主控制器
*/
class
ArticleCategory
extends
AdminBase
{
protected
$articlecategory
;
public
function
__construct
(
App
$app
)
{
parent
::
__construct
(
$app
);
$this
->
articlecategory
=
new
ArticleCategoryModel
();
}
//分类列表
public
function
index
(
string
$do
=
''
)
{
if
(
$do
==
'json'
)
{
$list
=
$this
->
articlecategory
->
list
();
return
$this
->
returnMsg
(
''
,
0
,
$list
);
}
return
$this
->
fetch
(
''
,
''
,
false
);
}
//快速编辑
public
function
editup
()
{
$post
=
input
();
$this
->
articlecategory
->
update
([
$post
[
'af'
]
=>
$post
[
'av'
]],
[[
'id'
,
'='
,
$post
[
'id'
]]]);
return
$this
->
returnMsg
(
'修改成功'
);
}
//编辑新增分类
public
function
edit
()
{
$post
=
input
();
if
(
$this
->
request
->
isPost
())
{
$validate
=
Validate
::
rule
([
'title'
=>
'require'
])
->
message
([
'title.require'
=>
'分类名称不能为空'
,
]);
if
(
!
$validate
->
check
(
$post
))
{
return
$this
->
returnMsg
(
$validate
->
getError
(),
0
);
}
try
{
$post
[
'createtime'
]
=
time
();
if
(
$post
[
'id'
]
>
0
)
{
$msg
=
'更新成功'
;
$this
->
articlecategory
->
update
(
$post
,
[
'id'
=>
$post
[
'id'
]]);
}
else
{
unset
(
$post
[
'id'
]);
$msg
=
'添加成功'
;
$this
->
articlecategory
->
save
(
$post
);
}
}
catch
(
\Exception
$e
)
{
return
$this
->
returnMsg
(
$e
->
getMessage
(),
0
);
}
return
$this
->
returnMsg
(
$msg
,
1
);
}
$data
=
Db
::
name
(
'article_category'
)
->
where
(
'id'
,
$post
[
'id'
])
->
find
();
$categorydata
=
$this
->
articlecategory
->
catetree
(
isset
(
$data
[
'pid'
])
?
$data
[
'pid'
]
:
0
);
$this
->
assign
(
'categorydata'
,
$categorydata
);
$this
->
assign
(
'data'
,
$data
);
return
$this
->
fetch
(
''
,
''
,
false
);
}
public
function
del
()
{
$post
=
input
();
$ids
=
is_array
(
$post
[
'id'
])
?
implode
(
','
,
$post
[
'id'
])
:
$post
[
'id'
];
if
(
$this
->
articlecategory
->
where
(
"id IN("
.
$ids
.
")"
)
->
update
([
'is_del'
=>
1
]))
{
return
$this
->
returnMsg
(
"删除成功"
,
1
);
}
else
{
return
$this
->
returnMsg
(
"删除失败"
);
}
}
}
\ No newline at end of file
app/admin/validate/ArticleValidate.php
0 → 100644
View file @
f7bce4d9
<?php
namespace
app\admin\validate
;
use
think\Validate
;
use
app\api\validate\BaseValidate
;
class
ArticleValidate
extends
BaseValidate
{
protected
$rule
=
[
'title'
=>
'require'
,
'cate_id'
=>
'require'
,
'thumb'
=>
'require'
,
];
protected
$message
=
[
'title.require'
=>
'文章标题不能为空'
,
'cate_id.require'
=>
'请选择分类'
,
'thumb.require'
=>
'请上传图片'
,
];
}
\ No newline at end of file
app/admin/view/article/edit.html
View file @
f7bce4d9
{extend name="base/header" /}
{block name="body"}
<div
style=
"margin: 0px 10px"
>
<form
class=
"layui-form "
style=
"margin-top: 20px;"
>
<form
class=
"layui-form "
style=
"margin-top: 20px;"
id=
"fjfrom"
>
<div
class=
"layui-form-item"
>
<label
class=
"layui-form-label"
>
选择分类
</label>
<div
class=
"layui-input-block"
>
<select
name=
"cate_id"
>
<option
value=
"
0
"
>
请选择分类
</option>
<option
value=
""
>
请选择分类
</option>
{:$categorydata}
</select>
</div>
...
...
@@ -16,7 +16,7 @@
<div
class=
"layui-form-item"
>
<label
class=
"layui-form-label"
>
文章标题
</label>
<div
class=
"layui-input-block"
>
<input
type=
"text"
name=
"title"
placeholder=
"请输入标题"
autocomplete=
"off"
class=
"layui-input"
>
<input
type=
"text"
name=
"title"
placeholder=
"请输入标题"
autocomplete=
"off"
class=
"layui-input"
value=
"{$data.title|default=''}"
>
</div>
</div>
...
...
@@ -24,7 +24,7 @@
<label
class=
"layui-form-label"
>
文章简介
</label>
<div
class=
"layui-input-block"
>
<textarea
placeholder=
"请输入文章简介"
name=
"description"
class=
"layui-textarea"
></textarea>
<textarea
placeholder=
"请输入文章简介"
name=
"description"
class=
"layui-textarea"
>
{$data.description|default=''}
</textarea>
</div>
</div>
...
...
@@ -40,7 +40,7 @@
<label
class=
"layui-form-label"
>
阅读量
</label>
<div
class=
"layui-input-block"
>
<input
type=
"text"
name=
"click"
placeholder=
"请输入阅读量"
autocomplete=
"off"
class=
"layui-input"
value=
"
0
"
>
value=
"
{$data.click|default=''}
"
>
</div>
</div>
...
...
@@ -49,21 +49,23 @@
</div>
<input
type=
"hidden"
name=
"id"
value=
"{$data.id|default=0}"
>
</form>
</div>
{/block}
{block name="script"}
<script
type=
"text/javascript"
>
layui
.
use
([
'buildItems'
,
'form'
,
'laydate'
,
'util'
],
function
()
{
var
form
=
layui
.
form
;
/*解析顶部分组选项*/
var
str
=
[{
"name"
:
"thumb"
,
"title"
:
"上传图片"
,
"value"
:
""
,
"value"
:
"
{$data.thumb|default=''}
"
,
"type"
:
"imagewt"
}];
layui
.
buildItems
.
build
({
fjbid
:
'fjfrom'
,
bid
:
'thumbup'
,
url
:
''
,
map
:
layui
.
cache
.
maps
+
'system.upload/'
,
...
...
@@ -74,11 +76,12 @@
var
str
=
[{
"name"
:
"content"
,
"title"
:
"文章内容"
,
"value"
:
""
,
"value"
:
"
{$data.content|default=''}
"
,
"type"
:
"ueditor"
,
"style"
:
"height:500px"
,
}];
layui
.
buildItems
.
build
({
fjbid
:
'fjfrom'
,
bid
:
'contentup'
,
url
:
''
,
map
:
layui
.
cache
.
maps
+
'system.upload/'
,
...
...
@@ -86,7 +89,7 @@
data
:
str
});
var
form
=
layui
.
form
;
layui
.
buildItems
.
init
()
;
form
.
render
();
...
...
@@ -94,7 +97,6 @@
var
callbackdata
=
function
()
{
var
data
=
$
(
".layui-form"
).
serialize
();
return
data
;
};
...
...
app/admin/view/article/index.html
View file @
f7bce4d9
This diff is collapsed.
Click to expand it.
app/admin/view/article_category/edit.html
0 → 100644
View file @
f7bce4d9
{extend name="base/header" /}
{block name="body"}
<div
style=
"margin: 0px 10px"
>
<form
class=
"layui-form "
style=
"margin-top: 20px;"
id=
"fjfrom"
>
<div
class=
"layui-form-item"
>
<label
class=
"layui-form-label"
>
上级分类
</label>
<div
class=
"layui-input-block"
>
<select
name=
"pid"
>
<option
value=
""
>
请选择分类
</option>
{:$categorydata}
</select>
</div>
</div>
<div
class=
"layui-form-item"
>
<label
class=
"layui-form-label"
>
分类名称
</label>
<div
class=
"layui-input-block"
>
<input
type=
"text"
name=
"title"
placeholder=
"请输入分类名称"
autocomplete=
"off"
class=
"layui-input"
value=
"{$data.title|default=''}"
>
</div>
</div>
<div
class=
"layui-form-item"
>
<label
class=
"layui-form-label"
>
类型
</label>
<div
class=
"layui-input-block"
>
<select
name=
"type"
>
<option
value=
""
>
请选择类型
</option>
<option
value=
"list"
{
eq
name=
"data.type|default=''"
value=
"list"
}
selected
{/
eq
}
>
列表
</option>
<option
value=
"page"
{
eq
name=
"data.type|default=''"
value=
"page"
}
selected
{/
eq
}
>
单页
</option>
</select>
</div>
</div>
<div
class=
"layui-form-item"
>
<label
class=
"layui-form-label"
>
分类图片
</label>
<div
class=
"layui-input-block"
id=
"thumbup"
>
</div>
</div>
<input
type=
"hidden"
name=
"id"
value=
"{$data.id|default=0}"
>
</form>
</div>
{/block}
{block name="script"}
<script
type=
"text/javascript"
>
layui
.
use
([
'buildItems'
,
'form'
,
'laydate'
,
'util'
],
function
()
{
var
form
=
layui
.
form
;
/*解析顶部分组选项*/
var
str
=
[{
"name"
:
"thumb"
,
"title"
:
"上传图片"
,
"value"
:
"{$data.thumb|default=''}"
,
"type"
:
"imagewt"
}];
layui
.
buildItems
.
build
({
fjbid
:
'fjfrom'
,
bid
:
'thumbup'
,
url
:
''
,
map
:
layui
.
cache
.
maps
+
'system.upload/'
,
gid
:
1
,
data
:
str
});
layui
.
buildItems
.
init
();
form
.
render
();
});
var
callbackdata
=
function
()
{
var
data
=
$
(
".layui-form"
).
serialize
();
return
data
;
};
</script>
{/block}
\ No newline at end of file
app/admin/view/article_category/index.html
0 → 100644
View file @
f7bce4d9
<div
class=
"layui-fluid"
>
<style>
.files_itemw
{
width
:
30px
;
height
:
30px
;
line-height
:
30px
;
cursor
:
pointer
;
padding
:
1px
;
background
:
#fff
;
display
:
-webkit-box
;
-moz-box-align
:
center
;
-webkit-box-align
:
center
;
-moz-box-pack
:
center
;
-webkit-box-pack
:
center
;}
.files_itemw
img
{
max-width
:
28px
;
max-height
:
28px
;
border
:
0
}
</style>
<div
class=
"layui-card"
>
<div
class=
"layui-card-header"
>
<form
class=
"layui-form render"
>
<input
type=
"hidden"
name=
"groupid"
id=
"articlecategory-groupid"
value=
""
/>
<div
class=
"layui-form-item"
>
<div
class=
"layui-inline"
>
<div
class=
"layui-btn-group"
>
<a
class=
"layui-btn"
id=
"articlecategory-add"
><i
class=
"layui-icon layui-icon-add-circle"
></i>
添加
</a>
</div>
</div>
</div>
</form>
</div>
<div
class=
"layui-card-body"
>
<div
class=
"layui-card-body"
>
<table
lay-filter=
"articlecategory"
id=
"articlecategory"
></table>
</div>
</div>
</div>
</div>
<!--JS部分-->
<script>
layui
.
use
([
'vinfo'
,
'buildItems'
],
function
(){
var
map_root
=
layui
.
cache
.
maps
;
var
app_root
=
map_root
+
'article_category/'
;
var
layer
=
layui
.
layer
,
table
=
layui
.
table
,
form
=
layui
.
form
,
admin
=
layui
.
admin
;
/*渲染数据*/
table
.
render
({
elem
:
'#articlecategory'
,
url
:
app_root
+
"index?&do=json"
,
cols
:
[[
{
field
:
'id'
,
width
:
50
,
unresize
:
true
,
align
:
'center'
,
title
:
'ID'
},
{
field
:
'thumb'
,
width
:
80
,
height
:
80
,
align
:
'center'
,
title
:
'缩略图'
,
templet
:
'<div class="files_itemw"><img src="{{d.thumb}}" lay-event="article-event-image" /></div>'
},
{
field
:
'title'
,
align
:
'left'
,
title
:
'分类'
,},
{
field
:
'typetxt'
,
width
:
100
,
align
:
'center'
,
title
:
'类型'
},
{
field
:
'sort'
,
width
:
100
,
align
:
'center'
,
title
:
'排序'
,
edit
:
'text'
},
{
fixed
:
'right'
,
width
:
130
,
align
:
'center'
,
toolbar
:
'<div><a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a><a class="layui-btn layui-btn-xs layui-btn-danger" lay-event="del">删除</a></div>'
,
title
:
'操作'
}
]],
done
:
function
(){
admin
.
vShow
(
$
(
'[lay-table-id="articlecategory"]'
));
}
});
/*快编监听*/
table
.
on
(
'edit(articlecategory)'
,
function
(
obj
){
admin
.
req
(
app_root
+
"editup"
,{
id
:
obj
.
data
.
id
,
av
:
obj
.
value
,
af
:
obj
.
field
},
function
(
res
){
layer
.
msg
(
res
.
msg
,{
shade
:[
0.4
,
'#000'
],
time
:
500
});
},
'post'
,{
headersToken
:
true
});
});
/**/
/*工具条监听*/
table
.
on
(
'tool(articlecategory)'
,
function
(
obj
){
var
data
=
obj
.
data
;
var
id
=
data
.
id
;
if
(
obj
.
event
===
'edit'
){
articlecategoryOpen
(
data
.
id
);
}
else
if
(
obj
.
event
===
'del'
){
del
(
id
);
}
else
if
(
obj
.
event
===
'article-event-image'
){
var
src
=
$
(
this
).
attr
(
'src'
),
alt
=
$
(
this
).
attr
(
'alt'
);
layer
.
photos
({
photos
:{
data
:[{
alt
:
alt
,
src
:
src
}],
start
:
'0'
},
anim
:
5
,
shade
:[
0.4
,
'#000'
]});
}
});
/**/
/*删除*/
function
del
(
ids
){
layer
.
confirm
(
'确定要删除所选文章吗?'
,
function
(){
admin
.
req
(
app_root
+
"del"
,{
id
:
ids
},
function
(
res
){
layer
.
msg
(
res
.
msg
,{
shade
:[
0.4
,
'#000'
],
time
:
1500
},
function
(){
if
(
res
.
code
==
1
)
table
.
reloadData
(
'articlecategory'
);
});
},
'post'
,{
headersToken
:
true
});
});
}
/**/
/*顶部删除按钮*/
$
(
'#articlecategory-del'
).
on
(
'click'
,
function
(){
var
checkRows
=
table
.
checkStatus
(
'articlecategory'
).
data
;
if
(
checkRows
.
length
===
0
){
return
layer
.
msg
(
'请选择需删除的文章'
);}
var
ids
=
checkRows
.
map
(
function
(
d
){
return
d
.
id
;});
console
.
log
(
ids
);
del
(
ids
);
});
/**/
$
(
'#articlecategory-add'
).
on
(
'click'
,
function
(){
articlecategoryOpen
();});
/**/
/*弹出窗*/
function
articlecategoryOpen
(
id
=
''
){
if
(
id
>
0
){
var
title
=
'编辑分类'
;
}
else
{
var
title
=
'添加分类'
;
}
layer
.
open
({
type
:
2
,
area
:
[
'900px'
,
'900px'
],
title
:
title
,
btn
:
[
'确定'
,
'关闭'
],
fixed
:
false
,
//不固定
content
:
app_root
+
'edit?id='
+
id
,
yes
:
function
(
index
,
layero
){
var
data
=
window
[
"layui-layer-iframe"
+
index
].
callbackdata
();
$
.
ajax
({
method
:
"post"
,
url
:
app_root
+
'/edit'
,
data
:
data
,
dataType
:
"json"
,
success
:
function
(
res
){
if
(
res
.
code
===
1
)
{
layer
.
msg
(
res
.
msg
,{
icon
:
1
,
shade
:[
0.4
,
'#000'
],
time
:
1500
},
function
(){
layer
.
close
(
index
);
table
.
reloadData
(
'articlecategory'
);
});
}
else
{
layer
.
msg
(
res
.
msg
,{
icon
:
2
,
shade
:[
0.4
,
'#000'
],
time
:
1500
},
function
(){
});
}
// layer.closeAll();
}
});
},
});
}
/**/
});
</script>
\ No newline at end of file
app/admin/view/base/header.html
View file @
f7bce4d9
...
...
@@ -43,7 +43,9 @@
cascader
:
"cascader/cascader"
,
//无限级联 地区
orgCharts
:
'orgCharts/orgCharts'
,
//组织结构图
zTree
:
'zTree/zTree'
//树形结构
})
}).
use
([
"index"
,
"admin"
],
function
(){
});
</script>
{block name="script"}{/block}
...
...
app/admin/view/index/main.html
View file @
f7bce4d9
<tpl>
<form
class=
"layui-form "
action=
"admin/Index/main"
>
<form
class=
"layui-form "
action=
"admin/Index/main"
id=
"fjfrom"
>
<div
class=
"layui-form-item"
>
<label
class=
"layui-form-label"
>
输入框
</label>
<div
class=
"layui-input-block"
>
...
...
@@ -106,7 +106,7 @@
}];
layui
.
buildItems
.
build
({
bid
:
'imgboxheadimg'
,
url
:
'
'
,
fjbid
:
'fjfrom
'
,
map
:
layui
.
cache
.
maps
+
'system.upload/'
,
gid
:
1
,
data
:
str
...
...
@@ -120,40 +120,41 @@
}];
layui
.
buildItems
.
build
({
bid
:
'imgboxheadimg2'
,
url
:
''
,
map
:
layui
.
cache
.
maps
+
'system.upload/'
,
gid
:
1
,
data
:
str
});
var
str
=
[{
"name"
:
"{$data3.name}"
,
"title"
:
"多图图片"
,
"value"
:
"{$data3.value}"
,
"type"
:
"{$data3.type}"
}];
layui
.
buildItems
.
build
({
bid
:
'imgboxheadimg3'
,
url
:
''
,
map
:
layui
.
cache
.
maps
+
'system.upload/'
,
gid
:
1
,
data
:
str
});
var
str
=
[{
"name"
:
"{$data4.name}"
,
"title"
:
"文件上传"
,
"value"
:
"{$data4.value}"
,
"type"
:
"{$data4.type}"
}];
layui
.
buildItems
.
build
({
bid
:
'imgboxheadimg4'
,
url
:
''
,
fjbid
:
'fjfrom'
,
map
:
layui
.
cache
.
maps
+
'system.upload/'
,
gid
:
1
,
data
:
str
});
layui
.
buildItems
.
init
();
//
// var str = [{
// "name": "{$data3.name}",
// "title": "多图图片",
// "value": "{$data3.value}",
// "type": "{$data3.type}"
// }];
// layui.buildItems.build({
// bid: 'imgboxheadimg3',
// url: '',
// map: layui.cache.maps + 'system.upload/',
// gid: 1,
// data:str
// });
//
//
// var str = [{
// "name": "{$data4.name}",
// "title": "文件上传",
// "value": "{$data4.value}",
// "type": "{$data4.type}"
// }];
// layui.buildItems.build({
// bid: 'imgboxheadimg4',
// url: '',
// map: layui.cache.maps + 'system.upload/',
// gid: 1,
// data:str
// });
form
=
layui
.
form
;
form
.
render
();
...
...
app/common.php
View file @
f7bce4d9
...
...
@@ -9,7 +9,7 @@
*/
// 版本信息
define
(
'VT_VERSION'
,
'2.2.
7
'
);
define
(
'VT_VERSION'
,
'2.2.
4
'
);
// 后台管理员 session 标识
define
(
'VT_MANAGER'
,
'V_MANAGER'
);
// 前台会员 session 标识
...
...
app/model/ArticleCategoryModel.php
0 → 100644
View file @
f7bce4d9
<?php
/**
* ===========================================================================
* Veitool 快捷开发框架系统
* Author: Niaho 26843818@qq.com
* Copyright (c)2019-2025 www.veitool.com All rights reserved.
* Licensed: 这不是一个自由软件,不允许对程序代码以任何形式任何目的的再发行
* ---------------------------------------------------------------------------
*/
namespace
app\model
;
use
think\facade\Db
;
use
think\Model
;
use
tool\Tree
;
/**
* 模型公用类
*/
class
ArticleCategoryModel
extends
Model
{
protected
$name
=
'article_category'
;
public
function
catetree
(
$cate_id
=
0
)
{
$map
[]
=
[
'is_del'
,
'='
,
0
];
$category
=
$this
->
where
(
$map
)
->
order
(
'sort desc'
)
->
select
()
->
toArray
();
$tree
=
new
Tree
();
$tree
->
icon
=
[
' │ '
,
' ├─ '
,
' └─ '
];
$tree
->
nbsp
=
' '
;
$str
=
"<option value=@id @selected @disabled>@spacer @title</option>"
;
$tree
->
init
(
$category
);
$categorydata
=
$tree
->
getTree
(
0
,
$str
,
$cate_id
);
return
$categorydata
;
}
public
function
list
(){
$map
[]
=
[
'is_del'
,
'='
,
0
];
$category
=
$this
->
order
(
'sort desc'
)
->
where
(
$map
)
->
select
()
->
append
([
'typetxt'
])
->
toArray
();
$tree
=
new
Tree
();
$tree
->
icon
=
[
' │ '
,
' ├─ '
,
' └─ '
];
$tree
->
nbsp
=
' '
;
$tree
->
init
(
$category
);
$categorydata
=
$tree
->
getTreeList
(
$tree
->
getTreeArray
(
0
),
'title'
);
return
$categorydata
;
}
public
function
getTypetxtAttr
(
$value
,
$data
)
{
return
$data
[
'type'
]
==
'page'
?
'单页'
:
'文章'
;
}
}
\ No newline at end of file
public/static/admin/module/buildItems/buildItems.js
View file @
f7bce4d9
This diff is collapsed.
Click to expand it.
public/static/admin/module/buildItems/buildItems11.js
0 → 100644
View file @
f7bce4d9
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment