Compare commits
3 Commits
cssupdate
...
2ca708fd4a
| Author | SHA1 | Date | |
|---|---|---|---|
| 2ca708fd4a | |||
| 29761f551d | |||
| fdb75e4888 |
42
app/command/OpenApiMgr/AddClient.php
Normal file
42
app/command/OpenApiMgr/AddClient.php
Normal file
@@ -0,0 +1,42 @@
|
||||
<?php
|
||||
declare (strict_types = 1);
|
||||
|
||||
namespace app\command\OpenApiMgr;
|
||||
|
||||
use oauth\OAuthStorage;
|
||||
use think\console\Command;
|
||||
use think\console\Input;
|
||||
use think\console\input\Argument;
|
||||
use think\console\input\Option;
|
||||
use think\console\Output;
|
||||
|
||||
class AddClient extends Command
|
||||
{
|
||||
protected function configure()
|
||||
{
|
||||
// 指令配置
|
||||
$this->setName('OpenApiMgr:AddClient')
|
||||
->addArgument('salt', Argument::OPTIONAL, "开放API的client_secret密钥的盐值")
|
||||
->setDescription('开放API的client管理');
|
||||
}
|
||||
|
||||
protected function execute(Input $input, Output $output)
|
||||
{
|
||||
$salt = $input->getArgument('salt');
|
||||
$salt = empty($salt) ? null : trim($salt);
|
||||
|
||||
// 指令输出
|
||||
$oauth = new OAuthStorage($salt);
|
||||
|
||||
$client_id = random_str(13, 'all', 0);
|
||||
$client_secret = random_str(32, 'all', 0);
|
||||
|
||||
$ok = $oauth->addClient($client_id, $client_secret, null);
|
||||
if (!$ok) {
|
||||
$output->writeln("添加失败");
|
||||
return;
|
||||
}
|
||||
|
||||
$output->writeln("添加成功:\nClientID: {$client_id}\nClientSecret: {$client_secret}\n");
|
||||
}
|
||||
}
|
||||
@@ -1,17 +1,17 @@
|
||||
{extend name="public/nas_base" /}
|
||||
{block name="title"}
|
||||
{notempty name="article.seo_title"}<title>{$article.seo_title}</title>{else /}{__BLOCK__}{/notempty}
|
||||
{notempty name="article.seo_title"}<title>{$article.seo_title}</title>{else /}{__BLOCK__}{/notempty}
|
||||
{/block}
|
||||
{block name="seo"}
|
||||
{notempty name="article.seo_keywords"}
|
||||
<meta name="keywords" content="{$article.seo_keywords}" />
|
||||
<meta name="description" content="{$article.seo_desc}" />
|
||||
{else /}
|
||||
{__BLOCK__}
|
||||
{/notempty}
|
||||
{notempty name="article.seo_keywords"}
|
||||
<meta name="keywords" content="{$article.seo_keywords}" />
|
||||
<meta name="description" content="{$article.seo_desc}" />
|
||||
{else /}
|
||||
{__BLOCK__}
|
||||
{/notempty}
|
||||
{/block}
|
||||
{block name="style"}
|
||||
<link rel="stylesheet" href="__CSS__/topic_nas_help-detail.css"/>
|
||||
<link rel="stylesheet" href="__CSS__/topic_nas_help-detail.css" />
|
||||
{/block}
|
||||
{block name="main"}
|
||||
<div class="orico_Page_index">
|
||||
@@ -32,21 +32,46 @@
|
||||
<div class="nars-hlpdt-ml">
|
||||
{notempty name="article_categorys"}
|
||||
<div class="nav-tree">
|
||||
|
||||
<!-- start 三级菜单的测试代码 可删-->
|
||||
<div class="category">
|
||||
<!-- 一级 -->
|
||||
<div class="category-title">
|
||||
<div class="arrow"><img src="helpImg/nars-jt.png" class="arrow" /></div>
|
||||
<span>初次使用</span>
|
||||
</div>
|
||||
<!-- 二级-->
|
||||
<ul class="sub-list">
|
||||
<li class="two-mues">
|
||||
<a href="#" class="two-a">
|
||||
<div class="arrow"><img src="helpImg/nars-jt.png" class="arrow" /></div>
|
||||
<span>我是二级</span>
|
||||
</a>
|
||||
<!-- 三级-->
|
||||
<ul class="thress-mues">
|
||||
<li><a href="#" style="padding-top: 6px;padding-left: 30px;">我是三级?</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#" style="padding-top: 6px;">拿到产品后我该如何安装使用?</a></li>
|
||||
<li><a href="#">APP无法下载/下载失败怎么办?</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<!-- end 三级菜单的测试代码 可删-->
|
||||
|
||||
{volist name="article_categorys" id="ac"}
|
||||
<div class="category">
|
||||
<div class="category-title">
|
||||
<div class="arrow {if condition='$ac.id == $Request.get.cid'}rotate{/if}">
|
||||
<img src="__IMAGES__/nas-jt.png" class="arrow {if condition='$ac.id == $Request.get.cid'}rotate{/if}" />
|
||||
<img src="__IMAGES__/nas-jt.png"
|
||||
class="arrow {if condition='$ac.id == $Request.get.cid'}rotate{/if}" />
|
||||
</div>
|
||||
<span>{$ac.name}</span>
|
||||
</div>
|
||||
<ul class="sub-list" {if condition='$ac.id == $Request.get.cid'}style="display: block;"{/if}>
|
||||
<ul class="sub-list" {if condition='$ac.id == $Request.get.cid' }style="display: block;" {/if}>
|
||||
{volist name="ac.article" id="ar"}
|
||||
<li>
|
||||
<a
|
||||
href="{:url('/index/topic/nas/help_detail', ['cid' => $ac.id, 'id' => $ar.id])}"
|
||||
{eq name="ar.id" value="$Request.get.id"}class="active"{/eq}
|
||||
>
|
||||
<a href="{:url('/index/topic/nas/help_detail', ['cid' => $ac.id, 'id' => $ar.id])}" {eq
|
||||
name="ar.id" value="$Request.get.id" }class="active" {/eq}>
|
||||
{$ar.title}
|
||||
</a>
|
||||
</li>
|
||||
@@ -75,10 +100,22 @@
|
||||
{block name="script"}
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function () {
|
||||
// 一级菜单点击事件
|
||||
$('.category-title').click(function () {
|
||||
$(this).next('.sub-list').slideToggle();
|
||||
$(this).find('.arrow').toggleClass('rotate');
|
||||
});
|
||||
// 二级菜单点击事件
|
||||
$('.two-a').click(function(e) {
|
||||
e.preventDefault();
|
||||
e.stopPropagation(); // 阻止事件冒泡
|
||||
|
||||
// 切换当前二级菜单的箭头方向
|
||||
$(this).find('.arrow').toggleClass('rotate');
|
||||
|
||||
// 切换对应的三级菜单显示/隐藏
|
||||
$(this).siblings('.thress-mues').slideToggle();
|
||||
});
|
||||
// 搜索
|
||||
$(document).on('click', function (e) {
|
||||
var target = $(e.target);
|
||||
|
||||
@@ -2,9 +2,12 @@
|
||||
// +----------------------------------------------------------------------
|
||||
// | 控制台配置
|
||||
// +----------------------------------------------------------------------
|
||||
|
||||
|
||||
return [
|
||||
// 指令定义
|
||||
'commands' => [
|
||||
'data:migrate' => \app\command\DataMigration::class,
|
||||
'openapi:addclient' => \app\command\OpenApiMgr\AddClient::class,
|
||||
],
|
||||
];
|
||||
|
||||
@@ -257,4 +257,28 @@
|
||||
all: revert;
|
||||
/* 将所有属性设置为初始值 */
|
||||
/* 或者使用 all: revert; 恢复到浏览器默认样式,但该属性兼容性不如 initial */
|
||||
}
|
||||
}
|
||||
/*9.18 添加三级样式*/
|
||||
|
||||
.narshelpdetailPc .nars-help-content .nars-hlpdt-ml .sub-list .two-mues{
|
||||
position: relative;
|
||||
|
||||
}
|
||||
.narshelpdetailPc .nars-help-content .nars-hlpdt-ml .sub-list .two-mues .two-a{
|
||||
position: relative;
|
||||
padding-top: 6px;
|
||||
padding-bottom: 0.375rem;
|
||||
display: flex;
|
||||
font-size: 14px !important;
|
||||
flex-direction: row;
|
||||
}
|
||||
.narshelpdetailPc .nars-help-content .nars-hlpdt-ml .sub-list .two-mues .two-a:hover{
|
||||
border-bottom:none;
|
||||
}
|
||||
.narshelpdetailPc .nars-help-content .nars-hlpdt-ml .sub-list .thress-mues{
|
||||
display: none;
|
||||
}
|
||||
.narshelpdetailPc .nars-help-content .nars-hlpdt-ml .sub-list .thress-mues .thress-mues a{
|
||||
padding-top: 0.375rem;
|
||||
padding-left: 1.875rem;
|
||||
}
|
||||
Reference in New Issue
Block a user