菜单,首页数据

This commit is contained in:
2025-03-16 15:08:37 +08:00
parent 27e70a5148
commit 825d0df7bf
11 changed files with 367 additions and 9 deletions

View File

@ -16,7 +16,15 @@
namespace app\index\controller;
use plugin\cms\model\CmsArticle;
use plugin\cms\model\CmsThumb;
use plugin\points_mall\model\PointsMallGoods;
use plugin\points_mall\model\PointsMallOrder;
use plugin\ticket\model\TicketTicket;
use plugin\ticket\model\TicketTicketInter;
use plugin\ticket\model\TicketTicketOuter;
use think\admin\Controller;
use think\db\Raw;
class Index extends Controller
{
@ -24,4 +32,32 @@ class Index extends Controller
{
$this->redirect(sysuri('admin/login/index'));
}
public function dashboard() {
$this->t_0_0_0 = PointsMallGoods::query()->where('status', '=', 1)->where('deleted', '=', 0)->count();
$this->t_0_0_1 = PointsMallGoods::query()->where('status', '=', 1)->where('deleted', '=', 0)->sum(new Raw("`stock_total` - `stock_sales`"));
$this->t_0_1_0 = PointsMallGoods::query()->where('deleted', '=', 0)->count();
$this->t_0_1_1 = PointsMallGoods::query()->where('deleted', '=', 0)->sum(new Raw("`stock_total` - `stock_sales`"));
$this->t_1_0 = PointsMallOrder::query()->count();
$this->t_1_1 = PointsMallOrder::query()->where('status', '=', 2)->count();
$this->t_1_2 = PointsMallOrder::query()->where('status', '=', 4)->count();
$this->t_1_3 = PointsMallOrder::query()->where('status', '=', 6)->count();
$this->t_2_0_0 = TicketTicket::query()->count();
$this->t_2_0_1 = TicketTicket::query()->where('status', '=', -1)->count();
$this->t_2_1_0 = TicketTicketInter::query()->where('status', '=', 0)->count();
$this->t_2_1_1 = TicketTicketInter::query()->where('status', '=', 0)->count();
$this->t_2_2_0 = TicketTicketOuter::query()->where('status', '=', 0)->count();
$this->t_2_2_1 = TicketTicketOuter::query()->where('status', '=', 0)->count();
$this->t_3_0 = CmsArticle::query()->count();
$this->t_3_1 = CmsThumb::query()->where('is_audit', '=', 0)->count();
$this->t_3_2 = CmsThumb::query()->where('is_audit', '=', 1)->count();
$this->fetch();
}
}

35
app/index/view/full.html Normal file
View File

@ -0,0 +1,35 @@
<!DOCTYPE html>
<html lang="zh">
<head>
<title>{block name="title"}{$title|default=''}{if !empty($title)} · {/if}{:sysconf('site_name')}{/block}</title>
<meta charset="utf-8">
<meta name="renderer" content="webkit">
<meta name="format-detection" content="telephone=no">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=0.4">
<link rel="stylesheet" href="__ROOT__/static/plugs/layui/css/layui.css?at={:date('md')}">
<link rel="stylesheet" href="__ROOT__/static/theme/css/iconfont.css?at={:date('md')}">
<link rel="stylesheet" href="__ROOT__/static/theme/css/console.css?at={:date('md')}">
<link rel="stylesheet" href="__ROOT__/static/extra/style.css?at={:date('md')}">
{if file_exists(syspath("public/static/extra/icon/iconfont.css"))}
<link rel="stylesheet" href="__ROOT__/static/extra/icon/iconfont.css?at={:date('md')}">
{/if}
{block name="style"}{/block}
<script src="__ROOT__/static/plugs/jquery/pace.min.js"></script>
<script src="{:url('admin/api.plugs/script',[],false,false)}"></script>
</head>
<body class="layui-layout-body">
{block name='body'}
<div class="layui-layout layui-layout-admin layui-layout-left-hide">
<div class="layui-body think-bg-white margin-0 padding-0" style="top:0">{block name='content'}{/block}</div>
</div>
{/block}
<script src="__ROOT__/static/plugs/layui/layui.js"></script>
<script src="__ROOT__/static/plugs/require/require.js"></script>
<script src="__ROOT__/static/admin.js"></script>
<script src="__ROOT__/static/extra/script.js"></script>
{block name='script'}{/block}
</body>
</html>

View File

@ -0,0 +1,187 @@
{extend name='main'}
{block name='content'}
<div class="layui-tab">
<ul class="layui-tab-title">
<li class="layui-this">商品信息</li>
<li>订单信息</li>
<li>工单信息</li>
<li>内容信息</li>
</ul>
<div class="layui-tab-content">
<div class="layui-tab-item layui-show">
<!-- 出售中的商品种类和数量及仓库中商品种类和数量 -->
<div class="layui-row layui-col-space15">
<div class="layui-col-md3">
<div class="layui-card">
<div class="layui-card-header">
<a data-open="/points_mall/goods/index">出售中的商品</a>
</div>
<div class="layui-card-body">
<p>种类: {$t_0_0_0} </p>
<p>数量: {$t_0_0_1} </p>
</div>
</div>
</div>
<div class="layui-col-md3">
<div class="layui-card">
<div class="layui-card-header">
<a data-open="/points_mall/goods/index">仓库中的商品</a>
</div>
<div class="layui-card-body">
<p>种类: {$t_0_1_0} </p>
<p>数量: {$t_0_1_1} </p>
</div>
</div>
</div>
</div>
</div>
<div class="layui-tab-item">
<!-- 订单信息内容 -->
<div class="layui-row layui-col-space15">
<div class="layui-col-md3">
<div class="layui-card">
<div class="layui-card-header">
<a data-open="/points_mall/order/index">总订单数</a>
</div>
<div class="layui-card-body">
<p>{$t_1_0} </p>
</div>
</div>
</div>
<div class="layui-col-md3">
<div class="layui-card">
<div class="layui-card-header">
<a data-open="/points_mall/order/index?status=2">待付款订单</a>
</div>
<div class="layui-card-body">
<p>{$t_1_1} </p>
</div>
</div>
</div>
<div class="layui-col-md3">
<div class="layui-card">
<div class="layui-card-header">
<a data-open="/points_mall/order/index?status=4">待发货订单</a>
</div>
<div class="layui-card-body">
<p>{$t_1_2} </p>
</div>
</div>
</div>
<div class="layui-col-md3">
<div class="layui-card">
<div class="layui-card-header">
<a data-open="/points_mall/order/index?status=6">已完成订单</a>
</div>
<div class="layui-card-body">
<p>{$t_1_3} </p>
</div>
</div>
</div>
</div>
</div>
<div class="layui-tab-item">
<!-- 工单信息内容 -->
<div class="layui-row layui-col-space15">
<div class="layui-col-md4">
<div class="layui-card">
<div class="layui-card-header">
<a data-open="/ticket/ticket/index.html">工单总数</a>
</div>
<div class="layui-card-body">
<p>{$t_2_0_0} </p>
</div>
</div>
</div>
<div class="layui-col-md4">
<div class="layui-card">
<div class="layui-card-header">
<a data-open="/ticket/ticket_inter/index.html">内部工单未完成数</a>
</div>
<div class="layui-card-body">
<p>{$t_2_1_0} </p>
</div>
</div>
</div>
<div class="layui-col-md4">
<div class="layui-card">
<div class="layui-card-header">
<a data-open="/ticket/ticket_outer/index.html">外部工单未完成数</a>
</div>
<div class="layui-card-body">
<p>{$t_2_2_0} </p>
</div>
</div>
</div>
<div class="layui-col-md4">
<div class="layui-card">
<div class="layui-card-header">
<a data-open="/ticket/ticket/index.html">待审核工单数</a>
</div>
<div class="layui-card-body">
<p>{$t_2_0_1} </p>
</div>
</div>
</div>
<div class="layui-col-md4">
<div class="layui-card">
<div class="layui-card-header">
<a data-open="/ticket/ticket_inter/index.html">内部工单即将超期数</a>
</div>
<div class="layui-card-body">
<p>{$t_2_1_1} </p>
</div>
</div>
</div>
<div class="layui-col-md4">
<div class="layui-card">
<div class="layui-card-header">
<a data-open="/ticket/ticket_outer/index.html">外部工单即将超期数</a>
</div>
<div class="layui-card-body">
<p>{$t_2_2_1} </p>
</div>
</div>
</div>
</div>
</div>
<div class="layui-tab-item">
<div class="layui-row layui-col-space15">
<div class="layui-col-md4">
<div class="layui-card">
<div class="layui-card-header">
<a data-open="/cms/article/index">新闻资讯统计</a>
</div>
<div class="layui-card-body">
<p>总数: {$t_3_0} </p>
</div>
</div>
</div>
<div class="layui-col-md4">
<div class="layui-card">
<div class="layui-card-header">
<a data-open="/cms/thumb/index">点赞城市待审核数</a>
</div>
<div class="layui-card-body">
<p>待审核: {$t_3_1} </p>
</div>
</div>
</div>
<div class="layui-col-md4">
<div class="layui-card">
<div class="layui-card-header">
<a data-open="/cms/thumb/index">点赞城市已审核数</a>
</div>
<div class="layui-card-body">
<p>已审核: {$t_3_2} </p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
{/block}

23
app/index/view/main.html Normal file
View File

@ -0,0 +1,23 @@
<div class="layui-card">
{block name='style'}{/block}
{block name='header'}
{notempty name='title'}
<div class="layui-card-header">
<span class="layui-icon font-s10 color-desc margin-right-5">&#xe65b;</span>{$title|lang}
<div class="pull-right">{block name='button'}{/block}</div>
</div>
{/notempty}
{/block}
<div class="layui-card-line"></div>
<div class="layui-card-body">
<div class="layui-card-html">
{notempty name='showErrorMessage'}
<div class="think-box-notify" type="error">
<b>{:lang('系统提示:')}</b><span>{$showErrorMessage|raw}</span>
</div>
{/notempty}
{block name='content'}{/block}
</div>
</div>
{block name='script'}{/block}
</div>

23
app/index/view/table.html Normal file
View File

@ -0,0 +1,23 @@
<div class="layui-card">
{block name='style'}{/block}
{block name='header'}
{notempty name='title'}
<div class="layui-card-header">
<span class="layui-icon font-s10 color-desc margin-right-5">&#xe65b;</span>{$title|lang}
<div class="pull-right">{block name='button'}{/block}</div>
</div>
{/notempty}
{/block}
<div class="layui-card-line"></div>
<div class="layui-card-body">
<div class="layui-card-table">
{notempty name='showErrorMessage'}
<div class="think-box-notify" type="error">
<b>{:lang('系统提示:')}</b><span>{$showErrorMessage|raw}</span>
</div>
{/notempty}
{block name='content'}{/block}
</div>
</div>
{block name='script'}{/block}
</div>

View File

@ -7,6 +7,10 @@ use plugin\cms\model\CmsThumb;
class Thumb extends Auth
{
/**
* 获取点赞城市列表
* @return void
*/
public function index()
{
$thumbList = CmsThumb::mk()->scope('published')->order('create_at desc')->withCount([
@ -18,12 +22,20 @@ class Thumb extends Auth
$this->success('获取点赞城市列表', $thumbList);
}
/**
* 获取当前用户点赞的城市列表
* @return void
*/
public function my()
{
$myThumbs = CmsThumb::mk()->scope('published')->order('create_at desc')->where('user_id', '=', $this->usid)->paginate();
$this->success('获取点赞城市成功', $myThumbs);
}
/**
* 添加点赞城市
* @return void
*/
public function add()
{
$data = $this->_vali([
@ -40,6 +52,10 @@ class Thumb extends Auth
$this->success('点赞成功', $thumb);
}
/**
* 获取点赞城市详情
* @return void
*/
public function info()
{
$id = $this->request->get('id');
@ -52,6 +68,10 @@ class Thumb extends Auth
$this->success('获取点赞城市详情', $thumb);
}
/**
* 对点赞城市进行点赞操作
* @return void
*/
public function like()
{
$id = $this->request->post('id');

View File

@ -13,12 +13,13 @@ use think\exception\HttpResponseException;
class Order extends Controller
{
/**
* 订单数据管理
* 订单数据管理页面
* @auth true
* @menu true
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\DbException
* @throws \think\db\exception\ModelNotFoundException
* @return void
*/
public function index()
{

View File

@ -10,12 +10,13 @@ use think\admin\model\SystemUser;
class Approval extends Controller
{
/**
* 流程管理列表
* 审批流程管理页面
* @auth true
* @menu true
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\DbException
* @throws \think\db\exception\ModelNotFoundException
* @return void
*/
public function index()
{
@ -35,9 +36,10 @@ class Approval extends Controller
}
/**
* 添加审批流程
* 添加审批流程页面
* @auth true
* @menu true
* @return void
*/
public function add()
{
@ -47,9 +49,10 @@ class Approval extends Controller
}
/**
* 编辑审批流程
* 编辑审批流程页面
* @auth true
* @menu true
* @return void
*/
public function edit()
{
@ -63,6 +66,7 @@ class Approval extends Controller
* 删除审批流程
* @auth true
* @menu true
* @return void
*/
public function remove()
{

View File

@ -213,6 +213,13 @@ class Ticket extends Controller
$this->fetch();
}
/**
* @return void
* @throws \Exception
* 审核提交
* @auth true
* @menu true
*/
public function create_approval()
{
$data = $this->_vali([
@ -268,6 +275,14 @@ class Ticket extends Controller
$this->success('创建成功!');
}
/**
* 进行审核
* @return void
* @throws \Exception
*
* @auth true
* @menu true
*/
public function do_approve()
{
$data = $this->_vali([

View File

@ -13,11 +13,13 @@ use think\admin\helper\QueryHelper;
class Type extends Controller
{
/**
* 工单类型列表
* @return void
* 工单类型列表页面
* @auth true
* @menu true
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\DbException
* @throws \think\db\exception\ModelNotFoundException
* @return void
*/
public function index()
{
@ -31,7 +33,9 @@ class Type extends Controller
}
/**
* 添加工单类型
* 添加工单类型页面
* @auth true
* @menu true
* @return void
*/
public function add()
@ -41,7 +45,9 @@ class Type extends Controller
}
/**
* 编辑工单类型
* 编辑工单类型页面
* @auth true
* @menu true
* @return void
*/
public function edit()
@ -52,6 +58,8 @@ class Type extends Controller
/**
* 修改工单类型状态
* @auth true
* @menu true
* @return void
*/
public function status()
@ -65,6 +73,8 @@ class Type extends Controller
/**
* 修改工单类型排序
* @auth true
* @menu true
* @return void
*/
public function sort()
@ -76,8 +86,11 @@ class Type extends Controller
'sort.between:0,9999' => '排序值必须为0~9999之间!',
]), 'id');
}
/**
* 删除工单类型
* @auth true
* @menu true
* @return void
*/
public function remove()

View File

@ -93,11 +93,12 @@
</div>
{elseif $step.status == 1}
<div class="layui-alert layui-alert-success">
<i class="layui-icon">&#xe6a6;</i>
<i class="layui-icon">&#xe6af;</i>
审核通过
</div>
{elseif $step.status == 0}
<div class="layui-alert layui-alert-warning">
<i class="layui-icon">&#xe6b2;</i>
审核中
</div>
{/if}