Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
ModStart
ModStartCMS
提交
c49d70c2
ModStartCMS
项目概览
ModStart
/
ModStartCMS
通知
2
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
ModStartCMS
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
c49d70c2
编写于
1月 10, 2022
作者:
ModStart
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
develop
上级
1b54dac9
变更
26
展开全部
隐藏空白更改
内联
并排
Showing
26 changed file
with
282 addition
and
40 deletion
+282
-40
config/module.php
config/module.php
+1
-0
module/Cms/Admin/Controller/CatController.php
module/Cms/Admin/Controller/CatController.php
+10
-10
module/Cms/Backup/.gitkeep
module/Cms/Backup/.gitkeep
+0
-0
module/Cms/Helpers/MCms.php
module/Cms/Helpers/MCms.php
+22
-0
module/Cms/View/pc/cms/detail/cases.blade.php
module/Cms/View/pc/cms/detail/cases.blade.php
+4
-2
module/Cms/View/pc/cms/detail/default.blade.php
module/Cms/View/pc/cms/detail/default.blade.php
+10
-3
module/Cms/Web/Controller/DetailController.php
module/Cms/Web/Controller/DetailController.php
+0
-1
module/Member/Admin/Controller/MemberController.php
module/Member/Admin/Controller/MemberController.php
+11
-4
module/Member/Admin/Controller/MemberVipSetController.php
module/Member/Admin/Controller/MemberVipSetController.php
+1
-1
module/Member/Auth/MemberUser.php
module/Member/Auth/MemberUser.php
+33
-0
module/Member/Core/ModuleServiceProvider.php
module/Member/Core/ModuleServiceProvider.php
+0
-4
module/Member/Docs/release/2.4.0.md
module/Member/Docs/release/2.4.0.md
+3
-0
module/Member/Migrate/2022_01_10_000001_member_member_vip_init.php
...mber/Migrate/2022_01_10_000001_member_member_vip_init.php
+56
-0
module/Member/Util/MemberGroupUtil.php
module/Member/Util/MemberGroupUtil.php
+16
-0
module/Member/Web/Controller/MemberVipController.php
module/Member/Web/Controller/MemberVipController.php
+1
-1
module/Vendor/Docs/release/2.4.0.md
module/Vendor/Docs/release/2.4.0.md
+5
-0
module/Vendor/Middleware/NoneLoginOperateAuthMiddleware.php
module/Vendor/Middleware/NoneLoginOperateAuthMiddleware.php
+37
-0
module/Vendor/Provider/Notifier/NotifierProvider.php
module/Vendor/Provider/Notifier/NotifierProvider.php
+15
-0
module/Vendor/Util/NoneLoginOperateUtil.php
module/Vendor/Util/NoneLoginOperateUtil.php
+29
-0
module/Vendor/View/mail/frame.blade.php
module/Vendor/View/mail/frame.blade.php
+8
-8
public/asset/theme/default/style.css
public/asset/theme/default/style.css
+1
-1
vendor/modstart/modstart/asset/theme/default/style.css
vendor/modstart/modstart/asset/theme/default/style.css
+1
-1
vendor/modstart/modstart/resources/asset/src/sui/adapt/layui.less
...odstart/modstart/resources/asset/src/sui/adapt/layui.less
+5
-0
vendor/modstart/modstart/src/Field/Html.php
vendor/modstart/modstart/src/Field/Html.php
+2
-1
vendor/modstart/modstart/src/Grid/Filter/AbstractFilter.php
vendor/modstart/modstart/src/Grid/Filter/AbstractFilter.php
+3
-1
vendor/modstart/modstart/src/Grid/Filter/Eq.php
vendor/modstart/modstart/src/Grid/Filter/Eq.php
+8
-2
未找到文件。
config/module.php
浏览文件 @
c49d70c2
...
...
@@ -41,6 +41,7 @@ return [
'enable'
=>
true
,
'config'
=>
[
'groupEnable'
=>
true
,
'vipEnable'
=>
true
,
],
],
'Cms'
=>
[
...
...
module/Cms/Admin/Controller/CatController.php
浏览文件 @
c49d70c2
...
...
@@ -64,16 +64,16 @@ class CatController extends Controller
$builder
->
text
(
'seoTitle'
,
'SEO标题'
)
->
listable
(
false
);
$builder
->
text
(
'seoDescription'
,
'SEO描述'
)
->
listable
(
false
);
$builder
->
textarea
(
'seoKeywords'
,
'SEO关键词'
)
->
listable
(
false
);
// $builder->switch('visitMemberGroupEnable', '启用用户分组访问
')->listable(false)
//
->when('=', true, function ($builder) {
//
/** @var HasFields $builder */
//
$builder->checkbox('visitMemberGroups', '允许访问的分组')->optionModel('member_group', 'id', 'title')->listable(false);
//
});
// $builder->switch('visitMemberVipEnable', '启用用户VIP访问
')->listable(false)
//
->when('=', true, function ($builder) {
//
/** @var HasFields $builder */
//
$builder->checkbox('visitMemberVips', '允许访问的VIP')->optionModel('member_vip_set', 'id', 'title')->listable(false);
//
});
$builder
->
switch
(
'visitMemberGroupEnable'
,
'用户分组限制
'
)
->
listable
(
false
)
->
when
(
'='
,
true
,
function
(
$builder
)
{
/** @var HasFields $builder */
$builder
->
checkbox
(
'visitMemberGroups'
,
'允许访问的分组'
)
->
optionModel
(
'member_group'
,
'id'
,
'title'
)
->
listable
(
false
);
});
$builder
->
switch
(
'visitMemberVipEnable'
,
'用户VIP限制
'
)
->
listable
(
false
)
->
when
(
'='
,
true
,
function
(
$builder
)
{
/** @var HasFields $builder */
$builder
->
checkbox
(
'visitMemberVips'
,
'允许访问的VIP'
)
->
optionModel
(
'member_vip_set'
,
'id'
,
'title'
)
->
listable
(
false
);
});
$builder
->
display
(
'created_at'
,
L
(
'Created At'
))
->
listable
(
false
);
$builder
->
display
(
'updated_at'
,
L
(
'Updated At'
))
->
listable
(
false
);
})
...
...
module/Cms/Backup/.gitkeep
0 → 100644
浏览文件 @
c49d70c2
module/Cms/Helpers/MCms.php
浏览文件 @
c49d70c2
...
...
@@ -2,6 +2,7 @@
use
Module\Cms\Util\CmsCatUtil
;
use
Module\Cms\Util\CmsContentUtil
;
use
Module\Member\Auth\MemberUser
;
/**
* Class MCms
...
...
@@ -141,4 +142,25 @@ class MCms
{
return
CmsContentUtil
::
prevOne
(
$catId
,
$recordId
);
}
/**
* @param $cat array 栏目
* @return bool
*
* @Util 判断是否可以访问栏目内容
*/
public
static
function
canAccessCatContent
(
$cat
)
{
if
(
$cat
[
'visitMemberGroupEnable'
])
{
if
(
!
MemberUser
::
isGroup
(
$cat
[
'visitMemberGroups'
]))
{
return
false
;
}
}
if
(
$cat
[
'visitMemberVipEnable'
])
{
if
(
!
MemberUser
::
isVip
(
$cat
[
'visitMemberVips'
]))
{
return
false
;
}
}
return
true
;
}
}
\ No newline at end of file
module/Cms/View/pc/cms/detail/cases.blade.php
浏览文件 @
c49d70c2
...
...
@@ -36,8 +36,10 @@
<img style="
max
-
width
:
100
%
;
" src="
{{
\
ModStart\Core\Assets\AssetsUtil
::
fix
(
$record
[
'cover'
])}}
" />
</div>
</div>
<div class="
content
ub
-
html
" style="
padding
:
1
rem
;
font
-
size
:
0.8
rem
;
">
{!! \ModStart\Core\Util\HtmlUtil::replaceImageSrcToLazyLoad(
$record['_data']['content']
,'data-src',true) !!}
<div class="
content
">
<div class="
ub
-
html
" style="
padding
:
1
rem
;
font
-
size
:
0.8
rem
;
">
{!! \ModStart\Core\Util\HtmlUtil::replaceImageSrcToLazyLoad(
$record['_data']['content']
,'data-src',true) !!}
</div>
</div>
</div>
</div>
...
...
module/Cms/View/pc/cms/detail/default.blade.php
浏览文件 @
c49d70c2
...
...
@@ -40,9 +40,16 @@
<i class="
iconfont
icon
-
time
"></i>
{
{($record['postTime'])}
}
</div>
<div class="
content
ub
-
html
" style="
font
-
size
:
0.8
rem
;
">
{!! \ModStart\Core\Util\HtmlUtil::replaceImageSrcToLazyLoad(
$record['_data']['content']
,'data-src',true) !!}
</div>
@if(!\MCms::canAccessCatContent(
$cat
))
<div class="
ub
-
alert
ub
-
alert
-
danger
">
<i class="
iconfont
icon
-
warning
"></i>
您没有权限访问该栏目
</div>
@else
<div class="
content
ub
-
html
" style="
font
-
size
:
0.8
rem
;
">
{!! \ModStart\Core\Util\HtmlUtil::replaceImageSrcToLazyLoad(
$record['_data']['content']
,'data-src',true) !!}
</div>
@endif
</div>
</div>
...
...
module/Cms/Web/Controller/DetailController.php
浏览文件 @
c49d70c2
...
...
@@ -37,7 +37,6 @@ class DetailController extends ModuleBaseController
$viewData
[
'model'
]
=
$data
[
'model'
];
// return $viewData;
return
$this
->
view
(
'cms.detail.'
.
CmsTemplateUtil
::
toBladeView
(
$view
),
$viewData
);
}
}
module/Member/Admin/Controller/MemberController.php
浏览文件 @
c49d70c2
...
...
@@ -28,6 +28,7 @@ use Module\Member\Type\MemberStatus;
use
Module\Member\Util\MemberGroupUtil
;
use
Module\Member\Util\MemberMessageUtil
;
use
Module\Member\Util\MemberUtil
;
use
Module\Member\Util\MemberVipUtil
;
class
MemberController
extends
Controller
{
...
...
@@ -59,17 +60,23 @@ class MemberController extends Controller
if
(
ModuleManager
::
getModuleConfigBoolean
(
'Member'
,
'groupEnable'
,
false
))
{
$builder
->
radio
(
'groupId'
,
'分组'
)
->
options
(
MemberGroupUtil
::
mapIdTitle
())
->
required
();
}
$builder
->
display
(
'created_at'
,
'创建时间'
);
if
(
ModuleManager
::
getModuleConfigBoolean
(
'Member'
,
'vipEnable'
,
false
))
{
$builder
->
radio
(
'groupId'
,
'VIP'
)
->
options
(
MemberVipUtil
::
mapTitle
())
->
required
();
}
$builder
->
display
(
'created_at'
,
'注册时间'
);
})
->
gridFilter
(
function
(
GridFilter
$filter
)
{
$filter
->
eq
(
'id'
,
L
(
'ID'
));
$filter
->
like
(
'username'
,
'用户名'
);
$filter
->
like
(
'email'
,
'邮箱'
);
$filter
->
like
(
'phone'
,
'手机'
);
$filter
->
eq
(
'status'
,
'状态'
)
->
select
(
MemberStatus
::
class
);
if
(
ModuleManager
::
getModuleConfigBoolean
(
'Member'
,
'groupEnable'
,
false
))
{
$filter
->
eq
(
'groupId'
,
'分组'
)
->
select
(
MemberGroupUtil
::
mapIdTitle
());
}
$filter
->
like
(
'username'
,
'用户名'
);
$filter
->
like
(
'email'
,
'邮箱'
);
$filter
->
like
(
'phone'
,
'手机'
);
if
(
ModuleManager
::
getModuleConfigBoolean
(
'Member'
,
'vipEnable'
,
false
))
{
$filter
->
eq
(
'vipId'
,
'VIP'
)
->
select
(
MemberVipUtil
::
mapTitle
()
);
}
})
->
hookSaved
(
function
(
Form
$form
)
{
/** @var \stdClass $item */
...
...
module/Member/Admin/Controller/MemberVipSetController.php
浏览文件 @
c49d70c2
...
...
@@ -25,7 +25,7 @@ class MemberVipSetController extends Controller
$builder
->
id
(
'id'
,
'ID'
)
->
addable
(
true
)
->
editable
(
true
);
$builder
->
text
(
'title'
,
'名称'
);
$builder
->
text
(
'flag'
,
'英文标识'
);
$builder
->
switch
(
'isDefault'
,
'默认'
)
->
help
(
'会员是否默认为该等级'
);
$builder
->
switch
(
'isDefault'
,
'默认'
)
->
optionsYesNo
()
->
help
(
'会员是否默认为该等级'
);
$builder
->
currency
(
'price'
,
'价格'
);
$builder
->
number
(
'vipDays'
,
'天数'
);
$builder
->
richHtml
(
'content'
,
'说明'
);
...
...
module/Member/Auth/MemberUser.php
浏览文件 @
c49d70c2
...
...
@@ -5,6 +5,8 @@ namespace Module\Member\Auth;
use
Illuminate\Support\Facades\Session
;
use
Module\Member\Util\MemberGroupUtil
;
use
Module\Member\Util\MemberVipUtil
;
class
MemberUser
{
...
...
@@ -38,6 +40,37 @@ class MemberUser
return
!
self
::
isLogin
();
}
public
static
function
isGroup
(
$groupIds
)
{
if
(
self
::
isNotLogin
())
{
return
false
;
}
if
(
!
is_array
(
$groupIds
))
{
$groupIds
=
[
intval
(
$groupIds
)];
}
$groupId
=
intval
(
self
::
get
(
'groupId'
,
0
));
if
(
$groupId
==
0
)
{
$groupId
=
MemberGroupUtil
::
defaultGroupId
();
}
return
in_array
(
$groupId
,
$groupIds
);
}
public
static
function
isVip
(
$vipIds
)
{
if
(
self
::
isNotLogin
())
{
return
false
;
}
if
(
!
is_array
(
$vipIds
))
{
$vipIds
=
[
intval
(
$vipIds
)];
}
$vip
=
MemberVipUtil
::
getMemberVip
(
self
::
user
());
$vipId
=
0
;
if
(
!
empty
(
$vip
))
{
$vipId
=
$vip
[
'id'
];
}
return
in_array
(
$vipId
,
$vipIds
);
}
public
static
function
get
(
$key
=
null
,
$default
=
null
)
{
$user
=
self
::
user
();
...
...
module/Member/Core/ModuleServiceProvider.php
浏览文件 @
c49d70c2
...
...
@@ -9,14 +9,11 @@ use ModStart\Admin\Widget\DashboardItemA;
use
ModStart\Core\Dao\ModelUtil
;
use
ModStart\Core\Util\ColorUtil
;
use
ModStart\Layout\Row
;
use
ModStart\Module\ModuleClassLoader
;
use
ModStart\Module\ModuleManager
;
use
ModStart\Support\Manager\FieldManager
;
use
Module\Member\Config\MemberHomeIcon
;
use
Module\Member\Config\MemberMenu
;
use
Module\Member\Listener\MemberVipPayListener
;
use
Module\Member\Provider\VerifySmsTemplateProvider
;
use
Module\Member\Widget\Field\MemberImage
;
use
Module\Vendor\Admin\Config\AdminWidgetDashboard
;
use
Module\Vendor\Admin\Config\AdminWidgetLink
;
use
Module\Vendor\Provider\SmsTemplate\SmsTemplateProvider
;
...
...
@@ -118,7 +115,6 @@ class ModuleServiceProvider extends ServiceProvider
});
$events
->
subscribe
(
MemberVipPayListener
::
class
);
AdminMenu
::
register
(
function
()
{
return
[
[
...
...
module/Member/Docs/release/2.4.0.md
0 → 100644
浏览文件 @
c49d70c2
-
新增:用户VIP为空时,默认初始化VIP等级
module/Member/Migrate/2022_01_10_000001_member_member_vip_init.php
0 → 100644
浏览文件 @
c49d70c2
<?php
use
Illuminate\Database\Migrations\Migration
;
class
MemberMemberVipInit
extends
Migration
{
/**
* Run the migrations.
*
* @return void
*/
public
function
up
()
{
if
(
\
ModStart\Core\Dao\ModelUtil
::
count
(
'member_vip_set'
)
<=
0
)
{
\
ModStart\Core\Dao\ModelUtil
::
insertAll
(
'member_vip_set'
,
[
[
'id'
=>
1
,
'flag'
=>
'default'
,
'title'
=>
'普通会员'
,
'price'
=>
'0.00'
,
'vipDays'
=>
0
,
'isDefault'
=>
true
,
'content'
=>
'<p>普通会员说明</p>'
,
],
[
'id'
=>
2
,
'flag'
=>
'vip1'
,
'title'
=>
'VIP黄金会员'
,
'price'
=>
'9.99'
,
'vipDays'
=>
30
,
'isDefault'
=>
false
,
'content'
=>
'<p>VIP黄金会员说明</p>'
,
],
[
'id'
=>
3
,
'flag'
=>
'vip2'
,
'title'
=>
'VIP钻石会员'
,
'price'
=>
'99.99'
,
'vipDays'
=>
365
,
'isDefault'
=>
false
,
'content'
=>
'<p>VIP钻石会员说明</p>'
,
],
]);
}
}
/**
* Reverse the migrations.
*
* @return void
*/
public
function
down
()
{
}
}
module/Member/Util/MemberGroupUtil.php
浏览文件 @
c49d70c2
...
...
@@ -22,6 +22,22 @@ class MemberGroupUtil
});
}
public
static
function
defaultGroup
()
{
foreach
(
self
::
all
()
as
$group
)
{
if
(
$group
[
'isDefault'
])
{
return
$group
;
}
}
return
null
;
}
public
static
function
defaultGroupId
()
{
$group
=
self
::
defaultGroup
();
return
$group
?
$group
[
'id'
]
:
0
;
}
// public static function update($id, $data)
// {
// ModelUtil::update('member_group', $id, $data);
...
...
module/Member/Web/Controller/MemberVipController.php
浏览文件 @
c49d70c2
...
...
@@ -16,7 +16,7 @@ class MemberVipController extends ModuleBaseController implements MemberLoginChe
public
function
__construct
()
{
BizException
::
throwsIf
(
'缺少
统一结算服务
模块'
,
!
ModuleManager
::
isModuleEnabled
(
'PayCenter'
));
BizException
::
throwsIf
(
'缺少
PayCenter
模块'
,
!
ModuleManager
::
isModuleEnabled
(
'PayCenter'
));
$this
->
api
=
app
(
\
Module\Member\Api\Controller\MemberVipController
::
class
);
}
...
...
module/Vendor/Docs/release/2.4.0.md
0 → 100644
浏览文件 @
c49d70c2
-
优化:邮件模板跟随系统主题色调整
-
优化:无登录签名校验操作增强
\ No newline at end of file
module/Vendor/Middleware/NoneLoginOperateAuthMiddleware.php
0 → 100644
浏览文件 @
c49d70c2
<?php
namespace
Module\Vendor\Middleware
;
use
ModStart\Core\Exception\BizException
;
use
ModStart\Core\Input\InputPackage
;
use
ModStart\Core\Input\Request
;
use
ModStart\Core\Util\TimeUtil
;
use
Module\Vendor\Util\NoneLoginOperateUtil
;
class
NoneLoginOperateAuthMiddleware
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public
function
handle
(
$request
,
\
Closure
$next
)
{
$appKey
=
config
(
'env.APP_KEY'
);
BizException
::
throwsIfEmpty
(
'APP_KEY为空'
,
$appKey
);
$input
=
InputPackage
::
buildFromInput
();
$timestamp
=
$input
->
getInteger
(
'timestamp'
);
BizException
::
throwsIf
(
'已超时效(操作时间显示为24小时内,timestamp='
.
time
()
.
')'
,
!
(
$timestamp
<=
time
()
&&
$timestamp
>
time
()
-
TimeUtil
::
PERIOD_DAY
));
$nonce
=
$input
->
getTrimString
(
'nonce'
);
$sign
=
$input
->
getTrimString
(
'sign'
);
BizException
::
throwsIfEmpty
(
'nonce为空'
,
$nonce
);
BizException
::
throwsIfEmpty
(
'sign为空'
,
$sign
);
$signCalc
=
NoneLoginOperateUtil
::
sign
(
Request
::
path
(),
$nonce
,
$timestamp
,
$input
->
getTrimString
(
'param'
));
BizException
::
throwsIf
(
'sign错误'
,
$sign
!=
$signCalc
);
return
$next
(
$request
);
}
}
\ No newline at end of file
module/Vendor/Provider/Notifier/NotifierProvider.php
浏览文件 @
c49d70c2
...
...
@@ -4,6 +4,8 @@
namespace
Module\Vendor\Provider\Notifier
;
use
Module\Vendor\Util\NoneLoginOperateUtil
;
class
NotifierProvider
{
/**
...
...
@@ -32,4 +34,17 @@ class NotifierProvider
$instance
->
notify
(
$biz
,
$title
,
$content
,
$param
);
}
}
public
static
function
notifyProcess
(
$biz
,
$title
,
$content
,
$processUrl
)
{
self
::
notify
(
$biz
,
$title
,
$content
,
[
'processUrl'
=>
$processUrl
,
]);
}
public
static
function
notifyNoneLoginOperateProcessUrl
(
$biz
,
$title
,
$content
,
$processUrlPath
,
$processUrlParam
=
[])
{
$processUrl
=
NoneLoginOperateUtil
::
generateUrl
(
$processUrlPath
,
$processUrlParam
);
self
::
notifyProcess
(
$biz
,
$title
,
$content
,
$processUrl
);
}
}
module/Vendor/Util/NoneLoginOperateUtil.php
0 → 100644
浏览文件 @
c49d70c2
<?php
namespace
Module\Vendor\Util
;
use
ModStart\Core\Exception\BizException
;
use
ModStart\Core\Input\Request
;
use
ModStart\Core\Util\RandomUtil
;
class
NoneLoginOperateUtil
{
public
static
function
generateUrl
(
$url
,
$param
=
[])
{
$urlParam
=
[];
$urlParam
[
'timestamp'
]
=
time
();
$urlParam
[
'nonce'
]
=
RandomUtil
::
string
(
10
);
$urlParam
[
'param'
]
=
json_encode
(
$param
);
$urlParam
[
'sign'
]
=
self
::
sign
(
$url
,
$urlParam
[
'nonce'
],
$urlParam
[
'timestamp'
],
$urlParam
[
'param'
]);
return
Request
::
domainUrl
()
.
modstart_web_url
(
$url
,
$urlParam
);
}
public
static
function
sign
(
$url
,
$nonce
,
$timestamp
,
$param
)
{
$appKey
=
config
(
'env.APP_KEY'
);
BizException
::
throwsIfEmpty
(
'APP_KEY为空'
,
$appKey
);
return
md5
(
$url
.
':'
.
$appKey
.
':'
.
$nonce
.
':'
.
$timestamp
.
':'
.
$param
);
}
}
\ No newline at end of file
module/Vendor/View/mail/frame.blade.php
浏览文件 @
c49d70c2
...
...
@@ -5,17 +5,17 @@
<title>
[{{modstart_config('siteName')}}] @yield('pageTitle')
</title>
<style
type=
"text/css"
>
*
{
padding
:
0
;
margin
:
0
;
font-family
:
"Segoe UI"
,
"Lucida Grande"
,
Helvetica
,
Arial
,
"Microsoft YaHei"
,
FreeSans
,
Arimo
,
"Droid Sans"
,
"wenquanyi micro hei"
,
"Hiragino Sans GB"
,
"Hiragino Sans GB W3"
,
sans-serif
;
color
:
#666
;
box-sizing
:
border-box
;}
body
{
font-size
:
13px
;
background
:
#F8F8F8
;
margin
:
20px
0
;
}
#wrap
{
margin
:
0
auto
;
max-width
:
800px
;
padding
:
10px
;
border-radius
:
10px
;}
#head
,
#content
,
#foot
{
background
:
#FFF
;
border-radius
:
5px
;
}
#head
{
background
:
#EEE
;
height
:
50px
;
padding
:
5px
10px
;}
#head
.logo
{
line-height
:
40px
;
color
:
#
333
;
font-size
:
20px
;
text-decoration
:
none
;}
body
{
font-size
:
13px
;
background
:
#F8F8F8
;}
#wrap
{
margin
:
0
auto
;
max-width
:
800px
;
padding
:
0
;
border
:
1px
solid
#EEE
;}
#head
,
#content
,
#foot
{
background
:
#FFF
;}
#head
{
background
:
{{
modstart_config
(
'sitePrimaryColor'
,
'#333'
)}
}
;
height
:
50
px
;
padding
:
5
px
10
px
;
}
#head
.logo
{
line-height
:
40px
;
color
:
#
FFF
;
font-size
:
20px
;
text-decoration
:
none
;}
#content
{
padding
:
30px
10px
;}
#content
p
{
line-height
:
2em
;}
#signature
{
padding
:
10px
;
color
:
#999
;}
#foot
{
text-align
:
center
;
line-height
:
50px
;
border-top
:
1px
solid
#EEE
;
color
:
#999
;}
.ub-email-table
{
border-collapse
:
collapse
;
width
:
100%
;
border-radius
:
5px
;
}
.ub-email-table
td
{
border
:
1px
solid
#ddd
;
padding
:
5px
;
border-radius
:
5px
;
}
.ub-email-table
{
border-collapse
:
collapse
;
width
:
100%
;}
.ub-email-table
td
{
border
:
1px
solid
#ddd
;
padding
:
5px
;}
.ub-email-table
tr
:nth-child
(
even
)
{
background-color
:
#f2f2f2
;}
</style>
</head>
...
...
@@ -32,7 +32,7 @@
@show
</div>
<div
id=
"foot"
>
{{modstart_config('siteName')}}
©
{{modstart_config('siteDomain')}}
版权所有
{{modstart_config('siteName')}}
©
{{modstart_config('siteDomain')}}
</div>
@show
</div>
...
...
public/asset/theme/default/style.css
浏览文件 @
c49d70c2
此差异已折叠。
点击以展开。
vendor/modstart/modstart/asset/theme/default/style.css
浏览文件 @
c49d70c2
此差异已折叠。
点击以展开。
vendor/modstart/modstart/resources/asset/src/sui/adapt/layui.less
浏览文件 @
c49d70c2
...
...
@@ -27,3 +27,8 @@
line-height: 12px;
vertical-align: top;
}
.layui-layer-tips i.layui-layer-TipsG {
border-left-color: #333 !important;
border-right-color: transparent !important;
}
\ No newline at end of file
vendor/modstart/modstart/src/Field/Html.php
浏览文件 @
c49d70c2
...
...
@@ -36,11 +36,12 @@ class Html extends AbstractField
}
$rules
=
$this
->
rules
();
$requiredRuleHtml
=
str_contains
(
$rules
,
'required'
)
?
'<span class="ub-text-danger ub-text-bold">*</span>'
:
''
;
$label
=
$this
->
label
?
$this
->
label
.
':'
:
''
;
return
<<<EOT
<div class="line">
<div class="label">
{$requiredRuleHtml}
{$
this->label}:
{$
label}
</div>
<div class="field">
$this->html
...
...
vendor/modstart/modstart/src/Grid/Filter/AbstractFilter.php
浏览文件 @
c49d70c2
...
...
@@ -2,6 +2,8 @@
namespace
ModStart\Grid\Filter
;
use
Illuminate\Support\Facades\View
;
use
ModStart\Core\Exception\BizException
;
use
ModStart\Core\Util\IdUtil
;
use
ModStart\Grid\Filter
;
use
ModStart\Grid\Filter\Field\Text
;
...
...
@@ -180,7 +182,7 @@ abstract class AbstractFilter
$fieldClass
=
explode
(
'\\'
,
get_class
(
$this
->
field
));
$view
=
'modstart::core.grid.filter.'
.
lcfirst
(
end
(
$class
))
.
'-'
.
lcfirst
(
end
(
$fieldClass
));
return
view
(
$view
,
$this
->
variables
()
);
return
View
::
make
(
$view
,
$this
->
variables
())
->
render
(
);
}
public
function
__call
(
$name
,
$arguments
)
...
...
vendor/modstart/modstart/src/Grid/Filter/Eq.php
浏览文件 @
c49d70c2
...
...
@@ -3,8 +3,6 @@
namespace
ModStart\Grid\Filter
;
use
ModStart\Core\Dao\ModelUtil
;
use
ModStart\Core\Type\BaseType
;
use
ModStart\Grid\Filter\Field\Radio
;
class
Eq
extends
AbstractFilter
{
...
...
@@ -19,6 +17,14 @@ class Eq extends AbstractFilter
return
$this
;
}
public
function
selectArray
(
$options
,
$idName
=
'id'
,
$titleName
=
'title'
)
{
$options
=
array_build
(
$options
,
function
(
$k
,
$v
)
use
(
$idName
,
$titleName
)
{
return
[
$v
[
$idName
],
$v
[
$titleName
]];
});
return
$this
->
select
(
$options
);
}
public
function
selectModel
(
$table
,
$keyName
=
'id'
,
$labelName
=
'name'
,
$where
=
[])
{
return
$this
->
select
(
ModelUtil
::
valueMap
(
$table
,
$keyName
,
$labelName
,
$where
));
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录