提交 72557441 编写于 作者: D devil

后台菜单新增自定义url地址、统计新增当月/上月

上级 5c663cb8
......@@ -29,9 +29,6 @@ class Common extends Controller
// 管理员
protected $admin;
// 权限
protected $power;
// 左边权限菜单
protected $left_menu;
......@@ -80,10 +77,7 @@ class Common extends Controller
// 权限菜单
AdminPowerService::PowerMenuInit();
// 权限
$this->left_menu = isset($this->admin['id']) ? cache(config('cache_admin_left_menu_key').$this->admin['id']) : [];
$this->power = isset($this->admin['id']) ? cache(config('cache_admin_power_key').$this->admin['id']) : [];
$this->left_menu = AdminPowerService::MenuData();
// 视图初始化
$this->ViewInit();
......
......@@ -50,7 +50,7 @@ class Power extends Common
public function Index()
{
$data_params = [
'field' => 'id,pid,name,control,action,sort,is_show,icon',
'field' => 'id,pid,name,control,action,url,sort,is_show,icon',
'order_by' => 'sort asc',
'where' => ['pid'=>0],
];
......
......@@ -101,6 +101,7 @@ class PayRequestLog
'label' => '请求url地址',
'view_type' => 'field',
'view_key' => 'request_url',
'grid_size' => 'sm',
'search_config' => [
'form_type' => 'input',
'form_name' => 'business_handle',
......
......@@ -14,11 +14,19 @@
<div class="li-content">
<p class="name">用户总量</p>
<p class="total animation-count-to" data-to="{{$user.total_count}}" data-speed="1500">0</p>
<div class="yesterday">
<div class="item am-margin-bottom-xs">
<span>上月</span>
<span class="animation-count-to" data-to="{{$user.last_month_count}}" data-speed="1500">0</span>
</div>
<div class="item am-margin-bottom-xs">
<span>当月</span>
<span class="animation-count-to" data-to="{{$user.same_month_count}}" data-speed="1500">0</span>
</div>
<div class="item am-margin-bottom-xs">
<span>昨日</span>
<span class="animation-count-to" data-to="{{$user.yesterday_count}}" data-speed="1500">0</span>
</div>
<div class="today">
<div class="item">
<span>今日</span>
<span class="animation-count-to" data-to="{{$user.today_count}}" data-speed="1500">0</span>
</div>
......@@ -29,11 +37,19 @@
<div class="li-content">
<p class="name">订单总量</p>
<p class="total animation-count-to" data-to="{{$order_number.total_count}}" data-speed="1500">0</p>
<div class="yesterday">
<div class="item am-margin-bottom-xs">
<span>上月</span>
<span class="animation-count-to" data-to="{{$order_number.last_month_count}}" data-speed="1500">0</span>
</div>
<div class="item am-margin-bottom-xs">
<span>当月</span>
<span class="animation-count-to" data-to="{{$order_number.same_month_count}}" data-speed="1500">0</span>
</div>
<div class="item am-margin-bottom-xs">
<span>昨日</span>
<span class="animation-count-to" data-to="{{$order_number.yesterday_count}}" data-speed="1500">0</span>
</div>
<div class="today">
<div class="item">
<span>今日</span>
<span class="animation-count-to" data-to="{{$order_number.today_count}}" data-speed="1500">0</span>
</div>
......@@ -44,11 +60,19 @@
<div class="li-content">
<p class="name">成交总量</p>
<p class="total animation-count-to" data-to="{{$order_complete_number.total_count}}" data-speed="1500">0</p>
<div class="yesterday">
<div class="item am-margin-bottom-xs">
<span>上月</span>
<span class="animation-count-to" data-to="{{$order_complete_number.last_month_count}}" data-speed="1500">0</span>
</div>
<div class="item am-margin-bottom-xs">
<span>当月</span>
<span class="animation-count-to" data-to="{{$order_complete_number.same_month_count}}" data-speed="1500">0</span>
</div>
<div class="item am-margin-bottom-xs">
<span>昨日</span>
<span class="animation-count-to" data-to="{{$order_complete_number.yesterday_count}}" data-speed="1500">0</span>
</div>
<div class="today">
<div class="item">
<span>今日</span>
<span class="animation-count-to" data-to="{{$order_complete_number.today_count}}" data-speed="1500">0</span>
</div>
......@@ -59,11 +83,19 @@
<div class="li-content">
<p class="name">收入总计</p>
<p class="total animation-count-to" data-to="{{$order_complete_money.total_count}}" data-speed="1500" data-decimals="2">0.00</p>
<div class="yesterday">
<div class="item am-margin-bottom-xs">
<span>上月</span>
<span class="animation-count-to" data-to="{{$order_complete_money.last_month_count}}" data-speed="1500">0</span>
</div>
<div class="item am-margin-bottom-xs">
<span>当月</span>
<span class="animation-count-to" data-to="{{$order_complete_money.same_month_count}}" data-speed="1500">0</span>
</div>
<div class="item am-margin-bottom-xs">
<span>昨日</span>
<span class="animation-count-to" data-to="{{$order_complete_money.yesterday_count}}" data-speed="1500" data-decimals="2">0.00</span>
</div>
<div class="today">
<div class="item">
<span>今日</span>
<span class="animation-count-to" data-to="{{$order_complete_money.today_count}}" data-speed="1500" data-decimals="2">0.00</span>
</div>
......
......@@ -27,7 +27,13 @@
</div>
<div class="am-popup-bd">
<!-- form start -->
<form class="am-form form-validation admin-save" action="{{:MyUrl('admin/power/save')}}" method="POST" request-type="ajax-reload" request-value="">
<form class="am-form form-validation admin-save" action="{{:MyUrl('admin/power/save')}}" method="POST" request-type="ajax-reload">
<div class="am-alert am-alert-warning" data-am-alert>
<button type="button" class="am-close">&times;</button>
<p>1. 填写[ 控制器名称 和 方法名称 ]需要对应创建相应的控制器和方法的定义</p>
<p>2. 控制器文件位置[ application/admin/controller ]、该操作仅开发人员使用</p>
<p>3. 控制器名称/方法名称 与 自定义url地址、两者必须填写一个</p>
</div>
<div class="am-form-group">
<label>栏目级别</label>
<select class="am-radius chosen-select" name="pid" data-validation-message="栏目级别选择错误">
......@@ -43,15 +49,25 @@
</div>
<div class="am-form-group">
<label>控制器名称</label>
<input type="text" placeholder="控制器名称" name="control" pattern="{{:lang('common_regex_control')}}" data-validation-message="控制器名格式 1~30 个字符之间(必须以字母开始,可以是字母数字下划线)" class="am-radius" required />
<input type="text" placeholder="控制器名称" name="control" pattern="{{:lang('common_regex_control')}}" data-validation-message="控制器名格式 1~30 个字符之间(必须以字母开始,可以是字母数字下划线)" class="am-radius" />
</div>
<div class="am-form-group">
<label>方法名称</label>
<input type="text" placeholder="方法名称" name="action" pattern="{{:lang('common_regex_action')}}" data-validation-message="方法名格式 1~30 个字符之间(必须以字母开始,可以是字母数字下划线)" class="am-radius" required />
<input type="text" placeholder="方法名称" name="action" pattern="{{:lang('common_regex_action')}}" data-validation-message="方法名格式 1~30 个字符之间(必须以字母开始,可以是字母数字下划线)" class="am-radius" />
</div>
<div class="am-form-group">
<label>图标class<span class="am-form-group-label-tips">参考 http://www.iconfont.cn/ 将icon放到 [ /static/admin/default/css/iconfontmenu.css ] 文件中</span></label>
<label>自定义url地址<span class="am-form-group-label-tips">带http://或https://</span></label>
<input type="url" name="url" placeholder="自定义url地址" data-validation-message="自定义url地址格式有误" class="am-radius" />
</div>
<div class="am-form-group">
<label>图标class</label>
<input type="text" placeholder="图标class" name="icon" maxlength="60" data-validation-message="图标格式 0~30 个字符之间" class="am-radius" />
<div class="am-alert am-alert-warning" data-am-alert>
<button type="button" class="am-close">&times;</button>
<p>1. 参考 http://www.iconfont.cn/ 将icon放到 [ /static/admin/default/css/iconfontmenu.css ] 文件中</p>
<p>2. 也可以直接使用框架自带的icon、参考 [ http://amazeui.shopxo.net/css/icon/ ]</p>
<p>3. 也可以自己使用插件钩子引入自定义的icon图标的css文件,然后使用定义好的icon</p>
</div>
</div>
<div class="am-form-group">
<label>顺序</label>
......
......@@ -10,7 +10,7 @@
{{foreach $left_menu as $v}}
{{if empty($v['items'])}}
<li>
<a href="javascript:;" data-type="menu" data-url="{{:MyUrl('admin/'.strtolower($v['control']).'/'.strtolower($v['action']))}}">
<a href="javascript:;" data-type="menu" data-url="{{$v.url}}">
{{if !empty($v['icon'])}}<span class="iconfont {{$v.icon}}"></span>{{/if}}
<span class="nav-name">{{$v.name}}</span>
</a>
......@@ -25,7 +25,7 @@
<ul class="am-list am-collapse admin-sidebar-sub" id="power-menu-{{$v.id}}">
{{foreach $v.items as $vs}}
<li>
<a href="javascript:;" class="menu-items-{{$vs.id}}" data-parent-id="{{$v.id}}" data-type="menu" data-url="{{:MyUrl('admin/'.strtolower($vs['control']).'/'.strtolower($vs['action']))}}">
<a href="javascript:;" class="menu-items-{{$vs.id}}" data-parent-id="{{$v.id}}" data-type="menu" data-url="{{$vs.url}}">
{{if !empty($vs['icon'])}}<span class="{{$vs.icon}}"></span>{{/if}}
<span class="nav-name">{{$vs.name}}</span>
</a>
......
......@@ -162,7 +162,7 @@ function AdminIsPower($controller = null, $action = null, $unwanted_power = [])
// 权限
// 角色组权限列表校验
$power = isset($admin['id']) ? cache(config('cache_admin_power_key').$admin['id']) : [];
$power = \app\service\AdminPowerService::PowerData();
if(!empty($power) && is_array($power) && in_array($controller.'_'.$action, $power))
{
return true;
......
......@@ -11,6 +11,7 @@
namespace app\service;
use think\Db;
use think\facade\Hook;
/**
* 权限菜单服务层
......@@ -70,28 +71,6 @@ class AdminPowerService
'checked_data' => '2,16',
'error_msg' => '权限名称格式 2~16 个字符之间',
],
[
'checked_type' => 'empty',
'key_name' => 'control',
'error_msg' => '控制器名称不能为空',
],
[
'checked_type' => 'length',
'key_name' => 'control',
'checked_data' => '1,30',
'error_msg' => '控制器名称格式 1~30 个字符之间',
],
[
'checked_type' => 'empty',
'key_name' => 'action',
'error_msg' => '方法名称不能为空',
],
[
'checked_type' => 'length',
'key_name' => 'action',
'checked_data' => '1,30',
'error_msg' => '方法名称格式 1~30 个字符之间',
],
[
'checked_type' => 'length',
'key_name' => 'icon',
......@@ -106,6 +85,29 @@ class AdminPowerService
'error_msg' => '是否显示范围值有误',
],
];
// 是否自定义url地址
if(empty($params['url']))
{
$p[] = [
'checked_type' => 'length',
'key_name' => 'control',
'checked_data' => '1,30',
'error_msg' => '控制器名称格式 1~30 个字符之间',
];
$p[] = [
'checked_type' => 'length',
'key_name' => 'action',
'checked_data' => '1,30',
'error_msg' => '方法名称格式 1~30 个字符之间',
];
} else {
$p[] = [
'checked_type' => 'length',
'key_name' => 'url',
'checked_data' => '1,255',
'error_msg' => '自定义url地址格式 1~255 个字符之间',
];
}
$ret = ParamsChecked($params, $p);
if($ret !== true)
{
......@@ -120,6 +122,7 @@ class AdminPowerService
'name' => $params['name'],
'control' => $params['control'],
'action' => $params['action'],
'url' => $params['url'],
'is_show' => isset($params['is_show']) ? intval($params['is_show']) : 0,
];
if(empty($params['id']))
......@@ -211,45 +214,65 @@ class AdminPowerService
$admin_power = cache(config('cache_admin_power_key').$admin_id);
// 缓存没数据则从数据库重新读取
if(($role_id > 0 || $admin_id == 1) && empty($admin_left_menu))
if((($role_id > 0 || $admin_id == 1) && empty($admin_left_menu)) || config('app_debug'))
{
// 获取一级数据
if($admin_id == 1 || $role_id == 1)
{
$field = 'id,name,control,action,is_show,icon';
$field = 'id,name,control,action,url,is_show,icon';
$admin_left_menu = Db::name('Power')->where(array('pid' => 0))->field($field)->order('sort')->select();
} else {
$field = 'p.id,p.name,p.control,p.action,p.is_show,p.icon';
$field = 'p.id,p.name,p.control,p.action,p.url,p.is_show,p.icon';
$admin_left_menu = Db::name('Power')->alias('p')->join(['__ROLE_POWER__'=>'rp'], 'p.id=rp.power_id')->where(array('rp.role_id' => $role_id, 'p.pid' => 0))->field($field)->order('p.sort')->select();
}
// 有数据,则处理子级数据
if(!empty($admin_left_menu))
{
foreach($admin_left_menu as $k=>$v)
{
// 权限
$admin_power[$v['id']] = strtolower($v['control'].'_'.$v['action']);
// 是否存在控制器和方法
if(!empty($v['control']) && !empty($v['action']))
{
// 权限
$admin_power[$v['id']] = strtolower($v['control'].'_'.$v['action']);
// url、存在自定义url则不覆盖
if(empty($v['url']))
{
$admin_left_menu[$k]['url'] = MyUrl('admin/'.strtolower($v['control']).'/'.strtolower($v['action']));
}
}
// 获取子权限
if($admin_id == 1 || $role_id == 1)
if(($admin_id == 1 || $role_id == 1) && !empty($v['id']))
{
$items = Db::name('Power')->where(array('pid' => $v['id']))->field($field)->order('sort')->select();
$items = Db::name('Power')->where(['pid'=>intval($v['id'])])->field($field)->order('sort')->select();
} else {
$items = Db::name('Power')->alias('p')->join(['__ROLE_POWER__'=>'rp'], 'p.id=rp.power_id')->where(array('rp.role_id' => $role_id, 'p.pid' => $v['id']))->field($field)->order('p.sort')->select();
$items = Db::name('Power')->alias('p')->join(['__ROLE_POWER__'=>'rp'], 'p.id=rp.power_id')->where(['rp.role_id'=>$role_id, 'p.pid'=>intval($v['id'])])->field($field)->order('p.sort')->select();
}
// 权限列表
$is_show_parent = $v['is_show'];
$is_show_parent = isset($v['is_show']) ? $v['is_show'] : 0;
if(!empty($items))
{
foreach($items as $ks=>$vs)
{
// 权限
$admin_power[$vs['id']] = strtolower($vs['control'].'_'.$vs['action']);
// 是否存在控制器和方法
if(!empty($vs['control']) && !empty($vs['action']))
{
// 权限
$admin_power[$vs['id']] = strtolower($vs['control'].'_'.$vs['action']);
// url、存在自定义url则不覆盖
if(empty($vs['url']))
{
$items[$ks]['url'] = MyUrl('admin/'.strtolower($vs['control']).'/'.strtolower($vs['action']));
}
}
// 是否显示视图
if($vs['is_show'] == 0)
if(isset($vs['is_show']) && $vs['is_show'] == 0)
{
unset($items[$ks]);
}
......@@ -275,6 +298,63 @@ class AdminPowerService
cache(config('cache_admin_left_menu_key').$admin_id, $admin_left_menu);
cache(config('cache_admin_power_key').$admin_id, $admin_power);
}
return true;
}
/**
* 获取菜单数据
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2020-09-24
* @desc description
*/
public static function MenuData()
{
$admin = session('admin');
if(!empty($admin['id']))
{
$data = cache(config('cache_admin_left_menu_key').$admin['id']);
}
// 后台左侧菜单钩子
$hook_name = 'plugins_service_admin_menu_data';
Hook::listen($hook_name, [
'hook_name' => $hook_name,
'is_backend' => true,
'admin' => $admin,
'data' => &$data,
]);
return empty($data) ? [] : $data;
}
/**
* 获取权限数据
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2020-09-24
* @desc description
*/
public static function PowerData()
{
$admin = session('admin');
if(!empty($admin['id']))
{
$data = cache(config('cache_admin_power_key').$admin['id']);
}
// 后台左侧菜单权限钩子
$hook_name = 'plugins_service_admin_menu_power_data';
Hook::listen($hook_name, [
'hook_name' => $hook_name,
'is_backend' => true,
'admin' => $admin,
'data' => &$data,
]);
return empty($data) ? [] : $data;
}
}
?>
\ No newline at end of file
......@@ -27,23 +27,31 @@ class StatisticalService
private static $nearly_fifteen_days;
private static $nearly_thirty_days;
// 近30天日期
// 近30天
private static $thirty_time_start;
private static $thirty_time_end;
// 近15天日期
// 近15天
private static $fifteen_time_start;
private static $fifteen_time_end;
// 近7天日期
// 近7天
private static $seven_time_start;
private static $seven_time_end;
// 昨天日期
// 上月
private static $last_month_time_start;
private static $last_month_time_end;
// 当月
private static $same_month_time_start;
private static $same_month_time_end;
// 昨天
private static $yesterday_time_start;
private static $yesterday_time_end;
// 今天日期
// 今天
private static $today_time_start;
private static $today_time_end;
......@@ -76,6 +84,14 @@ class StatisticalService
self::$seven_time_start = strtotime(date('Y-m-d 00:00:00', strtotime('-7 day')));
self::$seven_time_end = time();
// 上月
self::$last_month_time_start = strtotime(date('Y-m-01 00:00:00', strtotime('-1 month')));
self::$last_month_time_end = strtotime(date('Y-m-t 23:59:59', strtotime('-1 month')));
// 当月
self::$same_month_time_start = strtotime(date('Y-m-01 00:00:00'));
self::$same_month_time_end = time();
// 昨天日期
self::$yesterday_time_start = strtotime(date('Y-m-d 00:00:00', strtotime('-1 day')));
self::$yesterday_time_end = strtotime(date('Y-m-d 23:59:59', strtotime('-1 day')));
......@@ -109,7 +125,7 @@ class StatisticalService
}
/**
* 用户总数,今日,昨日,总数
* 用户总数,今日,昨日,当月,上月总数
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
......@@ -124,6 +140,22 @@ class StatisticalService
// 总数
$total_count = Db::name('User')->count();
// 上月
$where = [
['status', '<=', 4],
['add_time', '>=', self::$last_month_time_start],
['add_time', '<=', self::$last_month_time_end],
];
$last_month_count = Db::name('User')->where($where)->count();
// 当月
$where = [
['status', '<=', 4],
['add_time', '>=', self::$same_month_time_start],
['add_time', '<=', self::$same_month_time_end],
];
$same_month_count = Db::name('User')->where($where)->count();
// 昨天
$where = [
['add_time', '>=', self::$yesterday_time_start],
......@@ -141,6 +173,8 @@ class StatisticalService
// 数据组装
$result = [
'total_count' => $total_count,
'last_month_count' => $last_month_count,
'same_month_count' => $same_month_count,
'yesterday_count' => $yesterday_count,
'today_count' => $today_count,
];
......@@ -148,7 +182,7 @@ class StatisticalService
}
/**
* 订单总数,今日,昨日,总数
* 订单总数,今日,昨日,当月,上月总数
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
......@@ -162,13 +196,29 @@ class StatisticalService
// 订单状态
// (0待确认, 1已确认/待支付, 2已支付/待发货, 3已发货/待收货, 4已完成, 5已取消, 6已关闭)
// 总数
$where = [
['status', '<=', 4],
];
$total_count = Db::name('Order')->where($where)->count();
// 上月
$where = [
['status', '<=', 4],
['add_time', '>=', self::$last_month_time_start],
['add_time', '<=', self::$last_month_time_end],
];
$last_month_count = Db::name('Order')->where($where)->count();
// 当月
$where = [
['status', '<=', 4],
['add_time', '>=', self::$same_month_time_start],
['add_time', '<=', self::$same_month_time_end],
];
$same_month_count = Db::name('Order')->where($where)->count();
// 昨天
$where = [
['status', '<=', 4],
......@@ -188,6 +238,8 @@ class StatisticalService
// 数据组装
$result = [
'total_count' => $total_count,
'last_month_count' => $last_month_count,
'same_month_count' => $same_month_count,
'yesterday_count' => $yesterday_count,
'today_count' => $today_count,
];
......@@ -195,7 +247,7 @@ class StatisticalService
}
/**
* 订单成交总量,今日,昨日,总数
* 订单成交总量,今日,昨日,当月,上月总数
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
......@@ -216,6 +268,22 @@ class StatisticalService
];
$total_count = Db::name('Order')->where($where)->count();
// 上月
$where = [
['status', '=', 4],
['add_time', '>=', self::$last_month_time_start],
['add_time', '<=', self::$last_month_time_end],
];
$last_month_count = Db::name('Order')->where($where)->count();
// 当月
$where = [
['status', '=', 4],
['add_time', '>=', self::$same_month_time_start],
['add_time', '<=', self::$same_month_time_end],
];
$same_month_count = Db::name('Order')->where($where)->count();
// 昨天
$where = [
['status', '=', 4],
......@@ -235,6 +303,8 @@ class StatisticalService
// 数据组装
$result = [
'total_count' => $total_count,
'last_month_count' => $last_month_count,
'same_month_count' => $same_month_count,
'yesterday_count' => $yesterday_count,
'today_count' => $today_count,
];
......@@ -242,7 +312,7 @@ class StatisticalService
}
/**
* 订单收入总计,今日,昨日,总数
* 订单收入总计,今日,昨日,当月,上月总数
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
......@@ -263,6 +333,22 @@ class StatisticalService
];
$total_count = Db::name('Order')->where($where)->sum('total_price');
// 上月
$where = [
['status', 'in', [2,3,4]],
['add_time', '>=', self::$last_month_time_start],
['add_time', '<=', self::$last_month_time_end],
];
$last_month_count = Db::name('Order')->where($where)->sum('total_price');
// 当月
$where = [
['status', 'in', [2,3,4]],
['add_time', '>=', self::$same_month_time_start],
['add_time', '<=', self::$same_month_time_end],
];
$same_month_count = Db::name('Order')->where($where)->sum('total_price');
// 昨天
$where = [
['status', 'in', [2,3,4]],
......@@ -282,6 +368,8 @@ class StatisticalService
// 数据组装
$result = [
'total_count' => PriceNumberFormat($total_count),
'last_month_count' => PriceNumberFormat($last_month_count),
'same_month_count' => PriceNumberFormat($same_month_count),
'yesterday_count' => PriceNumberFormat($yesterday_count),
'today_count' => PriceNumberFormat($today_count),
];
......
......@@ -9,13 +9,15 @@
5. 网站首页可后台控制配置
web端
1.
1. 后台菜单支持自定义url地址、并支持钩子自动添加
2. 统计维度新增当月、上月
小程序
1. QQ小程序支持微信支付
插件
1. 汇率插件支持货币自由切换
2. 新增IEPay新西兰货币支付(支付宝+微信)
+=========================================================+
......
......@@ -98,19 +98,16 @@ html, body {
font-size: 26px;
font-weight: 700;
}
.shopxo-base li .li-content p, .shopxo-base li .li-content .yesterday, .shopxo-base li .li-content .today {
.shopxo-base li .li-content p, .shopxo-base li .li-content .item {
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
max-width: 100%;
}
.shopxo-base li .li-content .yesterday, .shopxo-base li .li-content .today {
.shopxo-base li .li-content .item {
color: #f0f0f0;
font-size: 12px;
}
.shopxo-base li .li-content .yesterday {
padding-bottom: 5px;
}
.shopxo-base li .li-content .bg-icon {
font-size: 36px;
position: absolute;
......
......@@ -67,7 +67,7 @@ page{
*/
.confirm-container .login-logo {
width: 200rpx;
height: 200rpx;
height: 200rpx !important;
margin: 0 auto;
border-radius: 50%;
}
......
......@@ -67,7 +67,7 @@ page{
*/
.confirm-container .login-logo {
width: 200rpx;
height: 200rpx;
height: 200rpx !important;
margin: 0 auto;
border-radius: 50%;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册