后台菜单优化、搜索记录新增开关

feat/task1-c-wallet
gongfuxiang 2022-10-21 18:12:24 +08:00
parent 13eb1ddd44
commit c1445a493e
5 changed files with 122 additions and 83 deletions

View File

@ -109,8 +109,8 @@ class Common extends BaseController
$this->admin = AdminService::LoginInfo(); $this->admin = AdminService::LoginInfo();
// 权限菜单 // 权限菜单
AdminPowerService::PowerMenuInit($this->admin); $menu = AdminPowerService::PowerMenuInit($this->admin);
$this->left_menu = AdminPowerService::MenuData($this->admin); $this->left_menu = $menu['admin_left_menu'];
// 视图初始化 // 视图初始化
$this->ViewInit(); $this->ViewInit();

View File

@ -13,6 +13,14 @@
<!-- form start --> <!-- form start -->
<form class="am-form form-validation" action="{{:MyUrl('admin/site/save')}}" method="POST" request-type="ajax-url" request-value="{{:MyUrl('admin/site/index', ['nav_type'=>$nav_type, 'view_type'=>$view_type])}}" enctype="multipart/form-data"> <form class="am-form form-validation" action="{{:MyUrl('admin/site/save')}}" method="POST" request-type="ajax-url" request-value="{{:MyUrl('admin/site/index', ['nav_type'=>$nav_type, 'view_type'=>$view_type])}}" enctype="multipart/form-data">
<div class="am-form-group">
<label>{{$data.home_search_history_record.name}}<span class="am-form-group-label-tips">{{$data.home_search_history_record.describe}}</span></label>
<select name="{{$data.home_search_history_record.only_tag}}" class="am-radius chosen-select" data-validation-message="{{$data.home_search_history_record.error_tips}}" required>
{{foreach $common_is_text_list as $v}}
<option value="{{$v.id}}" {{if isset($data['home_search_history_record']['value']) and $data['home_search_history_record']['value'] eq $v['id']}}selected{{/if}}>{{$v.name}}</option>
{{/foreach}}
</select>
</div>
<div class="am-form-group"> <div class="am-form-group">
<label>{{$data.home_search_keywords_type.name}}</label> <label>{{$data.home_search_keywords_type.name}}</label>
<select name="{{$data.home_search_keywords_type.only_tag}}" class="am-radius chosen-select" data-validation-message="{{$data.home_search_keywords_type.error_tips}}"> <select name="{{$data.home_search_keywords_type.only_tag}}" class="am-radius chosen-select" data-validation-message="{{$data.home_search_keywords_type.error_tips}}">

View File

@ -314,35 +314,24 @@ class AdminPowerService
MyCache(SystemService::CacheKey('shopxo.cache_admin_power_key').$admin_id, $admin_power); MyCache(SystemService::CacheKey('shopxo.cache_admin_power_key').$admin_id, $admin_power);
MyCache(SystemService::CacheKey('shopxo.cache_admin_power_plugins_key').$admin_id, $admin_plugins); MyCache(SystemService::CacheKey('shopxo.cache_admin_power_plugins_key').$admin_id, $admin_plugins);
} }
return true;
}
/**
* 获取菜单数据
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2022-05-16
* @desc description
* @param [array] $admin [管理员信息]
*/
public static function MenuData($admin)
{
if(!empty($admin['id']))
{
$data = MyCache(SystemService::CacheKey('shopxo.cache_admin_left_menu_key').$admin['id']);
}
// 后台左侧菜单钩子 // 后台左侧菜单钩子
$hook_name = 'plugins_service_admin_menu_data'; $hook_name = 'plugins_service_admin_menu_data';
MyEventTrigger($hook_name, [ MyEventTrigger($hook_name, [
'hook_name' => $hook_name, 'hook_name' => $hook_name,
'is_backend' => true, 'is_backend' => true,
'admin' => $admin, 'admin' => $admin,
'data' => &$data, 'admin_left_menu' => &$admin_left_menu,
'admin_power' => &$admin_power,
'admin_plugins' => &$admin_plugins,
]); ]);
return empty($data) ? [] : $data; // 返回菜单和权限数据
return [
'admin_left_menu' => $admin_left_menu,
'admin_power' => $admin_power,
'admin_plugins' => $admin_plugins,
];
} }
/** /**

View File

@ -508,70 +508,73 @@ class SearchService
*/ */
public static function SearchAdd($params = []) public static function SearchAdd($params = [])
{ {
// 排序 // 是否增加搜索记录
$ov_arr = empty($params['ov']) ? '' : explode('-', $params['ov']); if(MyC('home_search_history_record', 0) == 1)
if(empty($ov_arr) && !empty($params['order_by_type']) && !empty($params['order_by_field']))
{ {
$ov_arr = [$params['order_by_field'], $params['order_by_type']]; // 排序
} $ov_arr = empty($params['ov']) ? '' : explode('-', $params['ov']);
if(empty($ov_arr) && !empty($params['order_by_type']) && !empty($params['order_by_field']))
// 结果仅保留商品id
if(!empty($params['search_result_data']) && is_array($params['search_result_data']) && !empty($params['search_result_data']['data']))
{
$params['search_result_data']['data'] = array_column($params['search_result_data']['data'], 'id');
}
// 日志数据
$data = [
'user_id' => isset($params['user_id']) ? intval($params['user_id']) : 0,
'keywords' => empty($params['wd']) ? '' : $params['wd'],
'order_by_field' => empty($ov_arr) ? '' : $ov_arr[0],
'order_by_type' => empty($ov_arr) ? '' : $ov_arr[1],
'search_result' => empty($params['search_result_data']) ? '' : json_encode($params['search_result_data'], JSON_UNESCAPED_UNICODE),
'ymd' => date('Ymd'),
'add_time' => time(),
];
// 参数处理
$field_arr = [
'brand_ids' => ['brand_ids', 'brand', 'bid'],
'category_ids' => ['category_ids', 'category_id', 'cid'],
'screening_price_values'=> ['screening_price_values', 'peid'],
'goods_params_values' => ['goods_params_values', 'psid'],
'goods_spec_values' => ['goods_spec_values', 'scid'],
];
foreach($field_arr as $k=>$v)
{
$item = [];
foreach($v as $vs)
{ {
if(!empty($params[$vs])) $ov_arr = [$params['order_by_field'], $params['order_by_type']];
}
// 结果仅保留商品id
if(!empty($params['search_result_data']) && is_array($params['search_result_data']) && !empty($params['search_result_data']['data']))
{
$params['search_result_data']['data'] = array_column($params['search_result_data']['data'], 'id');
}
// 日志数据
$data = [
'user_id' => isset($params['user_id']) ? intval($params['user_id']) : 0,
'keywords' => empty($params['wd']) ? '' : $params['wd'],
'order_by_field' => empty($ov_arr) ? '' : $ov_arr[0],
'order_by_type' => empty($ov_arr) ? '' : $ov_arr[1],
'search_result' => empty($params['search_result_data']) ? '' : json_encode($params['search_result_data'], JSON_UNESCAPED_UNICODE),
'ymd' => date('Ymd'),
'add_time' => time(),
];
// 参数处理
$field_arr = [
'brand_ids' => ['brand_ids', 'brand', 'bid'],
'category_ids' => ['category_ids', 'category_id', 'cid'],
'screening_price_values'=> ['screening_price_values', 'peid'],
'goods_params_values' => ['goods_params_values', 'psid'],
'goods_spec_values' => ['goods_spec_values', 'scid'],
];
foreach($field_arr as $k=>$v)
{
$item = [];
foreach($v as $vs)
{ {
// 价格区间 if(!empty($params[$vs]))
if($vs == 'peid')
{ {
$temp_price = Db::name('ScreeningPrice')->where(['is_enable'=>1, 'id'=>intval($params[$vs])])->field('min_price,max_price')->find(); // 价格区间
$params[$vs] = empty($temp_price) ? '' : implode('-', $temp_price); if($vs == 'peid')
} {
$temp_price = Db::name('ScreeningPrice')->where(['is_enable'=>1, 'id'=>intval($params[$vs])])->field('min_price,max_price')->find();
$params[$vs] = empty($temp_price) ? '' : implode('-', $temp_price);
}
// Ascii处理 // Ascii处理
if(in_array($vs, ['psid', 'scid'])) if(in_array($vs, ['psid', 'scid']))
{ {
$params[$vs] = AsciiToStr($params[$vs]); $params[$vs] = AsciiToStr($params[$vs]);
} }
// 合并参数 // 合并参数
$tv = (substr($params[$vs], 0, 1) == '{') ? json_decode(htmlspecialchars_decode($params[$vs]), true) : $params[$vs]; $tv = (substr($params[$vs], 0, 1) == '{') ? json_decode(htmlspecialchars_decode($params[$vs]), true) : $params[$vs];
if($tv !== '' && $tv !== null) if($tv !== '' && $tv !== null)
{ {
$item = array_merge($item, is_array($tv) ? $tv : [$tv]); $item = array_merge($item, is_array($tv) ? $tv : [$tv]);
}
} }
} }
$data[$k] = empty($item) ? '' : (is_array($item) ? json_encode($item, JSON_UNESCAPED_UNICODE) : $item);
} }
$data[$k] = empty($item) ? '' : (is_array($item) ? json_encode($item, JSON_UNESCAPED_UNICODE) : $item); Db::name('SearchHistory')->insert($data);
} }
Db::name('SearchHistory')->insert($data);
} }
/** /**

View File

@ -9,9 +9,10 @@ html,body {
.am-table-striped > tbody > tr:nth-child(odd) > th { .am-table-striped > tbody > tr:nth-child(odd) > th {
background-color: #1d1d1d; background-color: #1d1d1d;
} }
pre,
.am-table-hover > tbody > tr:hover > td, .am-table-hover > tbody > tr:hover > td,
.am-table-hover > tbody > tr:hover > th { .am-table-hover > tbody > tr:hover > th {
background-color: #181818; background-color: #202020;
} }
.am-table-bordered > thead > tr > th, .am-table-bordered > thead > tr > th,
.am-table-bordered > tbody > tr > th, .am-table-bordered > tbody > tr > th,
@ -77,7 +78,7 @@ html,body {
background: transparent; background: transparent;
} }
.dl-content dt:hover, .dl-content dd:hover, .data-avg-text-list li:hover { .dl-content dt:hover, .dl-content dd:hover, .data-avg-text-list li:hover {
background: #202020; background: #1a1a1a;
} }
.data-avg-text-list li:hover .data-avg-text-list-content { .data-avg-text-list li:hover .data-avg-text-list-content {
color: #e9e9e9; color: #e9e9e9;
@ -410,7 +411,7 @@ iframe,
.am-list-bordered > li > a:hover, .am-list-bordered > li > a:hover,
.am-list-border > li > a:focus, .am-list-border > li > a:focus,
.am-list-bordered > li > a:focus { .am-list-bordered > li > a:focus {
background-color: #262727; background-color: #181818;
} }
.am-table > thead > tr > td.am-primary, .am-table > thead > tr > td.am-primary,
.am-table > tbody > tr > td.am-primary, .am-table > tbody > tr > td.am-primary,
@ -590,6 +591,9 @@ fieldset[disabled] .am-form-field {
.plugins-data-list ul li .submit-state.am-success { .plugins-data-list ul li .submit-state.am-success {
color: #fff !important; color: #fff !important;
} }
.am-ucheck-checkbox:disabled + .am-ucheck-icons, .am-ucheck-radio:disabled + .am-ucheck-icons {
color: #252525;
}
header { header {
background-color: #19222c !important; background-color: #19222c !important;
border-color: #151d26 !important; border-color: #151d26 !important;
@ -664,6 +668,9 @@ ul.plug-file-upload-view li {
#modal-plugins-multilingual-select-container .am-modal-bd ul { #modal-plugins-multilingual-select-container .am-modal-bd ul {
border: 1px solid #2b2b2b; border: 1px solid #2b2b2b;
} }
.data-avg-text-list, .data-avg-text-list li {
border-color: #232323;
}
/** /**
* 使 * 使
@ -672,6 +679,35 @@ ul.plug-file-upload-view li {
background: transparent !important; background: transparent !important;
} }
/**
*
*/
.hiprint-printPaper.design {
background: -webkit-linear-gradient(top, transparent 15px, #181818 15px, #181818 16px, transparent 16px, transparent 31px, #181818 31px, #181818 32px, transparent 32px, transparent 47px, #181818 47px, #181818 48px, transparent 48px, transparent 63px, #1c1c1c 63px, #1c1c1c 63px), -webkit-linear-gradient( left, transparent 15px, #181818 15px, #181818 16px, transparent 16px, transparent 31px, #181818 31px, #181818 32px, transparent 32px, transparent 47px, #181818 47px, #181818 48px, transparent 48px, transparent 63px, #1c1c1c 63px, #1c1c1c 63px);
background-size: 64px 64px;
background-repeat: repeat;
}
.right-option-setting {
background: rgb(28 28 28 / 70%);
}
.hiprint-option-items .hiprint-option-item-field input, .hiprint-option-items .hiprint-option-item-field select, .hiprint-option-items .hiprint-option-item-field textarea {
border-color: rgb(47 47 47);
}
.hiprint-printElement-table thead {
background: #2d2d2d;
}
.hiprint-printElement-table td {
color: #666;
border-color: #242424;
}
.hitable .selected {
background: #3d3d3d;
}
.drag-list li .item a {
color: #999;
}
/** /**
* *
*/ */
@ -746,6 +782,9 @@ ul.plug-file-upload-view li {
.header-menu-open-pages-list ul li a:hover { .header-menu-open-pages-list ul li a:hover {
color: #802c12; color: #802c12;
} }
.list-find li .item-content:hover {
border-color: #454545;
}
.product-unit-table thead tr > th:last-child, .product-unit-table tbody tr > td:last-child { .product-unit-table thead tr > th:last-child, .product-unit-table tbody tr > td:last-child {
background: rgb(30 30 30); background: rgb(30 30 30);
box-shadow: rgb(136 136 136 / 10%) -5px 0px 8px; box-shadow: rgb(136 136 136 / 10%) -5px 0px 8px;
@ -801,7 +840,7 @@ ul.plug-file-upload-view li {
} }
::-webkit-scrollbar-corner, ::-webkit-scrollbar-corner,
::-webkit-scrollbar-corner:vertical { ::-webkit-scrollbar-corner:vertical {
background-color: #f9f9f9; background-color: #353535;
} }
::-webkit-scrollbar-resizer, ::-webkit-scrollbar-resizer,
::-webkit-scrollbar-resizer:vertical { ::-webkit-scrollbar-resizer:vertical {