插件管理功能更新

This commit is contained in:
技术老胡 2024-09-12 15:17:42 +08:00
parent 984601841f
commit 225defb0f3
2 changed files with 372 additions and 96 deletions

View File

@ -6,11 +6,144 @@ namespace app\controller;
use app\BaseController;
use think\facade\View;
use think\Request;
class PluginController extends BaseController
{
// 插件管理页
public function index()
{
return View::fetch();
}
/**
* 列表
* @param Request $request
* @return Response
* @throws GuzzleException
*/
public function list(Request $request) {}
/**
* 安装
* @param Request $request
* @return Response
* @throws GuzzleException|BusinessException
*/
public function install(Request $request) {}
/**
* 卸载
* @param Request $request
* @return Response
*/
public function uninstall(Request $request) {}
/**
* 支付
* @param Request $request
* @return string|Response
* @throws GuzzleException
*/
public function pay(Request $request) {}
/**
* 获取zip下载url
* @param $name
* @param $version
* @return mixed
* @throws BusinessException
* @throws GuzzleException
*/
protected function getDownloadUrl($name, $version) {}
/**
* 下载zip
* @param $url
* @param $file
* @return void
* @throws BusinessException
* @throws GuzzleException
*/
protected function downloadZipFile($url, $file) {}
/**
* 获取系统支持的解压命令
* @param $zip_file
* @param $extract_to
* @return mixed|string|null
*/
protected function getUnzipCmd($zip_file, $extract_to)
{
if ($cmd = $this->findCmd('unzip')) {
$cmd = "$cmd -o -qq $zip_file -d $extract_to";
} else if ($cmd = $this->findCmd('7z')) {
$cmd = "$cmd x -bb0 -y $zip_file -o$extract_to";
} else if ($cmd = $this->findCmd('7zz')) {
$cmd = "$cmd x -bb0 -y $zip_file -o$extract_to";
}
return $cmd;
}
/**
* 使用解压命令解压
* @param $cmd
* @return void
* @throws BusinessException
*/
protected function unzipWithCmd($cmd) {}
/**
* 获取已安装的插件列表
* @return array
*/
protected function getLocalPlugins() {}
/**
* 获取已安装的插件列表
* @param Request $request
* @return Response
*/
public function getInstalledPlugins(Request $request) {}
/**
* 获取本地插件版本
* @param $name
* @return array|mixed|null
*/
protected function getPluginVersion($name) {}
/**
* 获取webman/admin版本
* @return string
*/
protected function getAdminVersion() {}
/**
* 删除目录
* @param $src
* @return void
*/
protected function rmDir($src) {}
/**
* 获取httpclient
* @return Client
*/
protected function httpClient() {}
/**
* 获取下载httpclient
* @return Client
*/
protected function downloadClient() {}
/**
* 查找系统命令
* @param string $name
* @param string|null $default
* @param array $extraDirs
* @return mixed|string|null
*/
protected function findCmd(string $name, string $default = null, array $extraDirs = []) {}
}

View File

@ -24,26 +24,33 @@
.index-card>div {
text-align: center;
}
.order-container>div>div {
min-height: 350px;
}
.order-tite {
display: flex;
justify-content: space-between;
align-items: center;
}
.order-total {
margin: 18px;
}
.order-total>div:first-child {
.order-total>div {
text-align: center;
}
.order-total>div:first-child>p:first-child {
.order-total>div>p:first-child {
font-size: 2em;
font-weight: 700;
color: #566a7f;
line-height: 1.2em;
}
.order-total>div:first-child>p:last-child {
.order-total>div>p:last-child {
color: #686f77;
}
@ -51,13 +58,20 @@
display: flex;
justify-content: space-between;
align-items: center;
padding-left: 15px;
padding-right: 15px;
}
.order-channel:hover{
background-color: whitesmoke;
border-radius: 5px;
}
.order-channel>div:nth-child(2) {
width: 80px;
min-width: 80px;
text-align: right;
}
.order-channel>div:nth-child(3) {
width: 100px;
min-width: 100px;
text-align: right;
}
@ -94,6 +108,45 @@
.info-channel>div:last-child>p:last-child {
color: #a1acb8;
}
.neworder-item {
display: flex;
justify-content: space-between;
align-items: center;
padding: 5px 10px;
}
.neworder-item~.neworder-item:hover {
background-color: whitesmoke;
border-radius: 5px;
}
.neworder-colname {
min-height: 2.2em;
color: #566a7f;
font-weight: 700;
}
.neworder-colname>div {
text-align: center;
}
.neworder-colname>div:nth-child(1) {
min-width: 135px;
}
.neworder-colname>div:nth-child(2) {
min-width: 100px;
}
.neworder-colname>div:nth-child(3) {
min-width: 36px;
}
.neworder-item>span:nth-child(2) {
min-width: 100px;
text-align: right;
}
</style>
</head>
@ -107,7 +160,7 @@
</div>
</div>
<div class="layui-row layui-col-space16">
<div class="layui-col-md8">
<div class="layui-col-sm8 layui-col-md9">
<div class="layui-row layui-col-space16">
<div class="layui-col-xs6 layui-col-sm3">
<div class="layui-card top-panel">
@ -173,32 +226,46 @@
</div>
</div>
</div>
<div class="layui-col-xs12 layui-col-sm12">
<div class="layui-col-xs12 layui-col-sm12 layui-col-md6">
<div class="layui-card">
<div class="layui-card-header">
<spqn>近7天收益</spqn>
</div>
<div class="layui-card-body">
<div class="layui-tab custom-tab layui-tab-brief" lay-filter="docDemoTabBrief">
<div id="echarts-records"
style="background-color:#ffffff;min-height:400px;padding: 10px">
style="background-color:#ffffff;min-height:220px;padding: 10px">
</div>
</div>
</div>
</div>
</div>
<div class="layui-col-xs12">
<div class="layui-row layui-col-space16 order-container">
<div class="layui-col-xs12 layui-col-sm6">
<div class="layui-card">
<div class="layui-card-header order-tite"><spqn>订单统计</spqn><button type="button" class="layui-btn layui-btn-primary layui-btn-xs"><span>今年</span><i class="layui-icon layui-icon-down layui-font-12"></i></button></div>
<div class="layui-card-header order-tite">
<spqn>订单统计</spqn><button type="button"
class="layui-btn layui-btn-primary layui-btn-xs"
id="order-data"><span>今年</span><i
class="layui-icon layui-icon-down layui-font-12"></i></button>
</div>
<div class="layui-card-body">
<div class="layui-row order-total">
<div class="layui-col-xs6">
<p>1433</p>
<p>总订单</p>
<p>总订单(笔)</p>
</div>
<div class="layui-col-xs6">
<p>12900</p>
<p>总金额(元)</p>
</div>
</div>
<div class="layui-row">
<div class="layui-row layui-col-space12">
<div class="layui-col-xs12 order-channel">
<div class="info-channel">
<div style="background-color: #e8fadf;"><svg t="1725699243941" class="icon"
viewBox="0 0 1024 1024" version="1.1"
<div style="background-color: #e8fadf;"><svg t="1725699243941"
class="icon" viewBox="0 0 1024 1024" version="1.1"
xmlns="http://www.w3.org/2000/svg" p-id="4275" width="128"
height="128">
<path
@ -210,13 +277,13 @@
<p>全渠道统计</p>
</div>
</div>
<div><strong>99</strong> </div>
<div><strong>99</strong> </div>
<div><strong>120</strong></div>
</div>
<div class="layui-col-xs12 order-channel">
<div class="info-channel">
<div style="background-color: #d7f5fc;"><svg t="1725699476866" class="icon"
viewBox="0 0 1024 1024" version="1.1"
<div style="background-color: #d7f5fc;"><svg t="1725699476866"
class="icon" viewBox="0 0 1024 1024" version="1.1"
xmlns="http://www.w3.org/2000/svg" p-id="6394" width="128"
height="128">
<path
@ -228,13 +295,13 @@
<p>全渠道统计</p>
</div>
</div>
<div><strong>50</strong> </div>
<div><strong>50</strong> </div>
<div><strong>490</strong></div>
</div>
<div class="layui-col-xs12 order-channel">
<div class="info-channel">
<div style="background-color: #ffd0d0;"><svg t="1725700598731" class="icon"
viewBox="0 0 1024 1024" version="1.1"
<div style="background-color: #ffd0d0;"><svg t="1725700598731"
class="icon" viewBox="0 0 1024 1024" version="1.1"
xmlns="http://www.w3.org/2000/svg" p-id="18276" width="128"
height="128">
<path
@ -255,7 +322,7 @@
<p>全渠道统计</p>
</div>
</div>
<div><strong>31</strong> </div>
<div><strong>31</strong> </div>
<div><strong>68</strong></div>
</div>
</div>
@ -264,28 +331,72 @@
</div>
<div class="layui-col-xs12 layui-col-sm6">
<div class="layui-card">
<div class="layui-card-header">最新订单</div>
<div class="layui-card-header order-tite">
<spqn>最新订单</spqn><button type="button"
class="layui-btn layui-btn-primary layui-btn-xs"
id="order-new">全部订单</button>
</div>
<div class="layui-card-body">
订单明细
<div class="neworder-list">
<div class="neworder-item neworder-colname">
<div>订单号</div>
<div>金额</div>
<div>状态</div>
</div>
<div class="neworder-item">
<span><a href="javascript:;" class="layui-font-blue"
lay-event="showOrder">H2024090710110110</a></span>
<span><strong>168</strong></span>
<span class="layui-badge layui-bg-green">成功</span>
</div>
<div class="neworder-item">
<span><a href="javascript:;" class="layui-font-blue"
lay-event="showOrder">H2024090710110110</a></span>
<span><strong>68</strong></span>
<span class="layui-badge layui-bg-green">成功</span>
</div>
<div class="neworder-item">
<span><a href="javascript:;" class="layui-font-blue"
lay-event="showOrder">H2024090710110110</a></span>
<span><strong>268</strong></span>
<span class="layui-badge layui-bg-green">成功</span>
</div>
<div class="neworder-item">
<span><a href="javascript:;" class="layui-font-blue"
lay-event="showOrder">H2024090710110110</a></span>
<span><strong>68</strong></span>
<span class="layui-badge layui-bg-green">成功</span>
</div>
<div class="neworder-item">
<span><a href="javascript:;" class="layui-font-blue"
lay-event="showOrder">H2024090710110110</a></span>
<span><strong>5668</strong></span>
<span class="layui-badge layui-bg-green">成功</span>
</div>
<div class="neworder-item">
<span><a href="javascript:;" class="layui-font-blue"
lay-event="showOrder">H2024090710110110</a></span>
<span><strong>5668</strong></span>
<span class="layui-badge layui-bg-green">成功</span>
</div>
<div class="neworder-item">
<span><a href="javascript:;" class="layui-font-blue"
lay-event="showOrder">H2024090710110110</a></span>
<span><strong>5668</strong></span>
<span class="layui-badge layui-bg-green">成功</span>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="layui-col-md4">
<div class="layui-col-sm4 layui-col-md3">
<div class="layui-row layui-col-space16">
<div class="layui-col-md12">
<div class="layui-card">
<div class="layui-card-header">
寄语
</div>
<div class="layui-card-body" style="line-height:40px;">
原想将澎湃的爱平平稳稳放置你手心,奈何我徒有一股蛮劲,只顾向你跑去,一个不稳跌的满身脏兮兮。试图爬起的我,
心想你会不会笑我 " 献爱献的这样笨拙, 怎么不知避开爱里的埋伏 "
</div>
</div>
</div>
<div class="layui-col-md12">
<div class="layui-card">
<div class="layui-card-header">
@ -307,6 +418,17 @@
</div>
</div>
</div>
<div class="layui-col-md12">
<div class="layui-card">
<div class="layui-card-header">
寄语
</div>
<div class="layui-card-body" style="line-height:40px;">
原想将澎湃的爱平平稳稳放置你手心,奈何我徒有一股蛮劲,只顾向你跑去,一个不稳跌的满身脏兮兮。试图爬起的我,
心想你会不会笑我 " 献爱献的这样笨拙, 怎么不知避开爱里的埋伏 "
</div>
</div>
</div>
<div class="layui-col-md12">
<div class="layui-card">
<div class="layui-card-header">更 新</div>
@ -336,11 +458,12 @@
<script src="/component/layui/layui.js"></script>
<script src="/component/pear/pear.js"></script>
<script>
layui.use(['layer', 'echarts', 'element', 'count'], function () {
layui.use(['layer', 'echarts', 'element', 'count', 'dropdown'], function () {
var $ = layui.jquery,
layer = layui.layer,
element = layui.element,
count = layui.count,
dropdown = layui.dropdown,
echarts = layui.echarts;
count.up("today_income", { time: 3000, num: parseFloat('<?php echo $today_income ?>'), bit: 2, regulator: 100 })
@ -348,6 +471,26 @@
count.up("week_income", { time: 3000, num: parseFloat('<?php echo $week_income ?>'), bit: 2, regulator: 100 })
count.up("month_income", { time: 3000, num: parseFloat('<?php echo $month_income ?>'), bit: 2, regulator: 100 })
dropdown.render({
elem: '#order-data',
data: [{
title: '今年',
id: 'this-year',
}, {
title: '近30天',
id: 'near-30days',
}, {
title: '近半年',
id: 'near-halfyear',
}, {
title: '近一年',
id: 'near-year',
}],
click: function (obj) {
this.elem.find('span').text(obj.title);
}
});
var echartsRecords = echarts.init(document.getElementById('echarts-records'), 'walden');
const colorList = ["#9E87FF", '#73DDFF', '#fe9a8b', '#F56948', '#9E87FF']