提交 1bca42d7 编写于 作者: D devil

前端消息,积分列表优化

上级 249aa227
......@@ -259,7 +259,9 @@ class Common extends Controller
if(!empty($data))
{
// 调用表格处理
$ret = (new FormHandleModule())->Run($data['module'], $data['action'], $this->data_request);
$params = $this->data_request;
$params['system_admin'] = $this->admin;
$ret = (new FormHandleModule())->Run($data['module'], $data['action'], $params);
if($ret['code'] == 0)
{
$this->form_table = $ret['data']['table'];
......
......@@ -81,10 +81,11 @@ class IntegralLog extends Common
/**
* 详情
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @datetime 2019-08-05T08:21:54+0800
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2020-06-29
* @desc description
*/
public function Detail()
{
......
......@@ -23,7 +23,9 @@ use think\Db;
class Message
{
// 基础条件
public $condition_base = [];
public $condition_base = [
['is_delete_time', '=', 0],
];
/**
* 入口
......
......@@ -3,11 +3,11 @@
<!-- content start -->
<div class="account-pages">
<div class="wrapper-page">
<div class="text-center">
<span class="logo fw-70">ShopXO</span>
<div class="am-text-center">
<span class="logo">ShopXO</span>
</div>
<div class="m-t-40 card-box admin-login">
<div class="panel-body">
<div class="am-margin-top-lg admin-login">
<div class="am-padding-sm">
<form class="am-form form-validation" action="{{:MyUrl('admin/admin/login')}}" method="POST" request-type="ajax-url" request-value="{{:MyUrl('admin/index/index')}}">
<div class="am-g">
<div class="am-form-group am-form-group-refreshing">
......@@ -20,7 +20,7 @@
<button type="submit" class="am-btn am-btn-primary am-radius btn-loading-example am-btn-sm am-btn-block" data-am-loading="{loadingText:'登录中...'}">登录</button>
</div>
<div class="am-form-group am-form-group-refreshing">
<div class="am-form-group am-form-group-refreshing am-text-left am-margin-bottom-0">
<a href="javascript:;" class="text-muted" data-am-popover="{theme: 'danger sm', content: '请联系管理员重置密码', trigger: 'hover focus'}">忘记密码?</a>
</div>
</div>
......@@ -31,6 +31,13 @@
</div>
<!-- content end -->
<!-- 随机背景图片 -->
<div class="bg-slides">
{{for start="1" end="11"}}
<div class="bg-slides-item" style="background-image:url('{{$attachment_host}}/static/admin/default/images/login/{{$i}}.jpg');{{if $i neq 1}}display:none;{{/if}}"></div>
{{/for}}
</div>
<!-- 插件扩展数据 start -->
{{if isset($shopxo_is_develop) and $shopxo_is_develop eq true}}
<div class="plugins-tag">
......
......@@ -458,7 +458,7 @@
}
}
{{/php}}
<!-- footer start -->
{{include file="public/footer" /}}
<!-- footer end -->
\ No newline at end of file
......@@ -295,6 +295,12 @@ class Common extends Controller
$this->assign('controller_name', $controller_name);
$this->assign('action_name', $action_name);
// 分页信息
$this->page = max(1, isset($this->data_request['page']) ? intval($this->data_request['page']) : 1);
$this->page_size = MyC('admin_page_number', 10, true);
$this->assign('page', $this->page);
$this->assign('page_size', $this->page_size);
// 控制器静态文件状态css,js
$module_css = $module_name.DS.$default_theme.DS.'css'.DS.$controller_name;
$module_css .= file_exists(ROOT_PATH.'static'.DS.$module_css.'.'.$action_name.'.css') ? '.'.$action_name.'.css' : '.css';
......@@ -387,7 +393,9 @@ class Common extends Controller
if(!empty($data))
{
// 调用表格处理
$ret = (new FormHandleModule())->Run($data['module'], $data['action'], $this->data_request);
$params = $this->data_request;
$params['system_user'] = $this->user;
$ret = (new FormHandleModule())->Run($data['module'], $data['action'], $params);
if($ret['code'] == 0)
{
$this->form_table = $ret['data']['table'];
......
......@@ -48,58 +48,68 @@ class Message extends Common
*/
public function Index()
{
// 参数
$params = input();
$params['user'] = $this->user;
// 消息更新未已读
MessageService::MessageRead($params);
// 分页
$number = 10;
// 条件
$where = MessageService::MessageListWhere($params);
// 获取总数
$total = MessageService::MessageTotal($where);
// 总数
$total = MessageService::MessageTotal($this->form_where);
// 分页
$page_params = array(
'number' => $number,
'total' => $total,
'where' => $params,
'page' => isset($params['page']) ? intval($params['page']) : 1,
'url' => MyUrl('index/message/index'),
);
$page_params = [
'number' => $this->page_size,
'total' => $total,
'where' => $this->data_request,
'page' => $this->page,
'url' => MyUrl('index/message/index'),
];
$page = new \base\Page($page_params);
$this->assign('page_html', $page->GetPageHtml());
// 获取列表
$data_params = array(
'm' => $page->GetPageStarNumber(),
'n' => $number,
'where' => $where,
);
$data = MessageService::MessageList($data_params);
$this->assign('data_list', $data['data']);
// 业务类型
$this->assign('common_business_type_list', lang('common_business_type_list'));
// 消息类型
$this->assign('common_message_type_list', lang('common_message_type_list'));
// 是否已读
$this->assign('common_is_read_list', lang('common_is_read_list'));
$data_params = [
'where' => $this->form_where,
'm' => $page->GetPageStarNumber(),
'n' => $this->page_size,
];
$ret = MessageService::MessageList($data_params);
// 浏览器名称
$this->assign('home_seo_site_title', SeoService::BrowserSeoTitle('我的消息', 1));
// 参数
$this->assign('params', $params);
// 基础参数赋值
$this->assign('params', $this->data_request);
$this->assign('page_html', $page->GetPageHtml());
$this->assign('data_list', $ret['data']);
return $this->fetch();
}
/**
* 详情
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2020-06-29
* @desc description
*/
public function Detail()
{
if(!empty($this->data_request['id']))
{
// 条件
$where = [
['id', '=', intval($this->data_request['id'])],
];
// 获取列表
$data_params = [
'm' => 0,
'n' => 1,
'where' => $where,
];
$ret = MessageService::MessageList($data_params);
$data = (empty($ret['data']) || empty($ret['data'][0])) ? [] : $ret['data'][0];
$this->assign('data', $data);
}
$this->assign('is_header', 0);
$this->assign('is_footer', 0);
return $this->fetch();
}
}
?>
\ No newline at end of file
......@@ -48,49 +48,68 @@ class UserIntegral extends Common
*/
public function Index()
{
// 参数
$params = input();
$params['user'] = $this->user;
// 总数
$total = IntegralService::IntegralLogTotal($this->form_where);
// 分页
$number = 10;
// 条件
$where = IntegralService::UserIntegralLogListWhere($params);
// 获取总数
$total = IntegralService::IntegralLogTotal($where);
// 分页
$page_params = array(
'number' => $number,
'total' => $total,
'where' => $params,
'page' => isset($params['page']) ? intval($params['page']) : 1,
'url' => MyUrl('index/userintegral/index'),
);
$page_params = [
'number' => $this->page_size,
'total' => $total,
'where' => $this->data_request,
'page' => $this->page,
'url' => MyUrl('admin/userintegral/index'),
];
$page = new \base\Page($page_params);
$this->assign('page_html', $page->GetPageHtml());
// 获取列表
$data_params = array(
'm' => $page->GetPageStarNumber(),
'n' => $number,
'where' => $where,
);
$data = IntegralService::IntegralLogList($data_params);
$this->assign('data_list', $data['data']);
// 操作类型
$this->assign('common_integral_log_type_list', lang('common_integral_log_type_list'));
$data_params = [
'where' => $this->form_where,
'm' => $page->GetPageStarNumber(),
'n' => $this->page_size,
];
$ret = IntegralService::IntegralLogList($data_params);
// 浏览器名称
$this->assign('home_seo_site_title', SeoService::BrowserSeoTitle('我的积分', 1));
// 参数
$this->assign('params', $params);
// 基础参数赋值
$this->assign('params', $this->data_request);
$this->assign('page_html', $page->GetPageHtml());
$this->assign('data_list', $ret['data']);
return $this->fetch();
}
/**
* 详情
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2020-06-29
* @desc description
*/
public function Detail()
{
if(!empty($this->data_request['id']))
{
// 条件
$where = [
['id', '=', intval($this->data_request['id'])],
];
// 获取列表
$data_params = [
'm' => 0,
'n' => 1,
'where' => $where,
];
$ret = IntegralService::IntegralLogList($data_params);
$data = (empty($ret['data']) || empty($ret['data'][0])) ? [] : $ret['data'][0];
$this->assign('data', $data);
}
$this->assign('is_header', 0);
$this->assign('is_footer', 0);
return $this->fetch();
}
}
?>
\ No newline at end of file
<?php
// +----------------------------------------------------------------------
// | ShopXO 国内领先企业级B2C免费开源电商系统
// +----------------------------------------------------------------------
// | Copyright (c) 2011~2019 http://shopxo.net All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: Devil
// +----------------------------------------------------------------------
namespace app\index\form;
use think\Db;
/**
* 用户消息动态表格
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2020-06-29
* @desc description
*/
class Message
{
// 基础条件
public $condition_base = [
['user_is_delete_time', '=', 0],
];
/**
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2020-06-29
* @desc description
* @param [array] $params [输入参数]
*/
public function __construct($params = [])
{
// 用户信息
if(!empty($params['system_user']))
{
$this->condition_base[] = ['user_id', '=', $params['system_user']['id']];
}
}
/**
* 入口
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2020-06-29
* @desc description
* @param [array] $params [输入参数]
*/
public function Run($params = [])
{
return [
// 基础配置
'base' => [
'key_field' => 'id',
'is_search' => 1,
'search_url' => MyUrl('index/message/index'),
],
// 表单配置
'form' => [
[
'label' => '消息类型',
'view_type' => 'field',
'view_key' => 'type_text',
'search_config' => [
'form_type' => 'select',
'form_name' => 'type',
'where_type' => 'in',
'data' => lang('common_message_type_list'),
'data_key' => 'id',
'data_name' => 'name',
'is_multiple' => 1,
],
],
[
'label' => '业务类型',
'view_type' => 'field',
'view_key' => 'business_type_text',
'search_config' => [
'form_type' => 'select',
'form_name' => 'business_type',
'where_type' => 'in',
'data' => lang('common_business_type_list'),
'data_key' => 'id',
'data_name' => 'name',
'is_multiple' => 1,
],
],
[
'label' => '标题',
'view_type' => 'field',
'view_key' => 'title',
'search_config' => [
'form_type' => 'input',
'where_type' => 'like',
],
],
[
'label' => '详情',
'view_type' => 'field',
'view_key' => 'detail',
'grid_size' => 'lg',
'search_config' => [
'form_type' => 'input',
'where_type' => 'like',
],
],
[
'label' => '状态',
'view_type' => 'field',
'view_key' => 'is_read_text',
'search_config' => [
'form_type' => 'select',
'form_name' => 'is_read',
'where_type' => 'in',
'data' => lang('common_is_read_list'),
'data_key' => 'id',
'data_name' => 'name',
'is_multiple' => 1,
],
],
[
'label' => '时间',
'view_type' => 'field',
'view_key' => 'add_time_time',
'search_config' => [
'form_type' => 'datetime',
'form_name' => 'add_time',
],
],
[
'label' => '操作',
'view_type' => 'operate',
'view_key' => 'message/module/operate',
'align' => 'center',
'fixed' => 'right',
],
],
];
}
}
?>
\ No newline at end of file
<?php
// +----------------------------------------------------------------------
// | ShopXO 国内领先企业级B2C免费开源电商系统
// +----------------------------------------------------------------------
// | Copyright (c) 2011~2019 http://shopxo.net All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: Devil
// +----------------------------------------------------------------------
namespace app\index\form;
use think\Db;
/**
* 用户积分动态表格
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2020-06-28
* @desc description
*/
class Userintegral
{
// 基础条件
public $condition_base = [];
/**
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2020-06-29
* @desc description
* @param [array] $params [输入参数]
*/
public function __construct($params = [])
{
// 用户信息
if(!empty($params['system_user']))
{
$this->condition_base[] = ['user_id', '=', $params['system_user']['id']];
}
}
/**
* 入口
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2020-06-28
* @desc description
* @param [array] $params [输入参数]
*/
public function Run($params = [])
{
return [
// 基础配置
'base' => [
'key_field' => 'id',
'is_search' => 1,
'search_url' => MyUrl('index/userintegral/index'),
],
// 表单配置
'form' => [
[
'label' => '操作类型',
'view_type' => 'field',
'view_key' => 'type_text',
'search_config' => [
'form_type' => 'select',
'form_name' => 'type',
'where_type' => 'in',
'data' => lang('common_integral_log_type_list'),
'data_key' => 'id',
'data_name' => 'name',
'is_multiple' => 1,
],
],
[
'label' => '操作积分',
'view_type' => 'field',
'view_key' => 'operation_integral',
'search_config' => [
'form_type' => 'section',
],
],
[
'label' => '原始积分',
'view_type' => 'field',
'view_key' => 'original_integral',
'search_config' => [
'form_type' => 'section',
],
],
[
'label' => '最新积分',
'view_type' => 'field',
'view_key' => 'new_integral',
'search_config' => [
'form_type' => 'section',
],
],
[
'label' => '描述',
'view_type' => 'field',
'view_key' => 'msg',
'grid_size' => 'sm',
'search_config' => [
'form_type' => 'input',
'where_type' => 'like',
],
],
[
'label' => '时间',
'view_type' => 'field',
'view_key' => 'add_time_time',
'search_config' => [
'form_type' => 'datetime',
'form_name' => 'add_time',
],
],
[
'label' => '操作',
'view_type' => 'operate',
'view_key' => 'userintegral/module/operate',
'align' => 'center',
'fixed' => 'right',
],
],
];
}
}
?>
\ No newline at end of file
<!-- 继承公共的 form -->
{{extend name="public/module/detail" /}}
\ No newline at end of file
{{include file="public/header" /}}
<!-- header top nav -->
{{include file="public/header_top_nav" /}}
<!-- search -->
{{include file="public/nav_search" /}}
<!-- header nav -->
{{include file="public/header_nav" /}}
<!-- goods category -->
{{include file="public/goods_category" /}}
<!-- content -->
<div class="am-container user-main">
<!-- user menu start -->
{{include file="public/user_menu" /}}
<!-- user menu end -->
<!-- content start -->
<div class="user-content">
<div class="user-content-body">
<form class="am-form form-validation form-search" method="post" action="{{:MyUrl('index/message/index')}}" request-type="form">
<div class="thin">
<div class="am-input-group am-input-group-sm am-fl so">
<input type="text" autocomplete="off" name="keywords" class="am-radius" placeholder="其实搜索很简单 ^_^!" value="{{if !empty($params.keywords)}}{{$params.keywords}}{{/if}}" />
<span class="am-input-group-btn">
<button class="am-btn am-btn-default am-radius" type="submit" data-am-loading="{spinner:'circle-o-notch', loadingText:'搜索中...'}">搜索</button>
</span>
</div>
<label class="am-fl thin_sub more-submit">
更多筛选条件
{{if isset($params['is_more']) and $params['is_more'] eq 1}}
<input type="checkbox" name="is_more" value="1" id="is_more" checked />
<i class="am-icon-angle-up"></i>
{{else /}}
<input type="checkbox" name="is_more" value="1" id="is_more" />
<i class="am-icon-angle-down"></i>
{{/if}}
</label>
</div>
<table class="so-list more-where {{if !isset($params['is_more'])}}none{{/if}}">
<tbody>
<tr>
<td>
<span>类型:</span>
<select name="type" class="chosen-select" data-placeholder="消息类型...">
<option value="-1">消息类型...</option>
{{if !empty($common_message_type_list)}}
{{foreach $common_message_type_list as $v}}
<option value="{{$v.id}}" {{if isset($params['type']) and $params['type'] eq $v['id']}}selected{{/if}}>{{$v.name}}</option>
{{/foreach}}
{{/if}}
</select>
</td>
<td>
<span>业务:</span>
<select name="business_type" class="chosen-select" data-placeholder="业务类型...">
<option value="-1">业务类型...</option>
{{if !empty($common_business_type_list)}}
{{foreach $common_business_type_list as $v}}
<option value="{{$v.id}}" {{if isset($params['business_type']) and $params['business_type'] eq $v['id']}}selected{{/if}}>{{$v.name}}</option>
{{/foreach}}
{{/if}}
</select>
</td>
</tr>
<tr>
<td>
<span>状态:</span>
<select name="is_read" class="chosen-select" data-placeholder="消息状态...">
<option value="-1">消息状态...</option>
{{if !empty($common_is_read_list)}}
{{foreach $common_is_read_list as $v}}
<option value="{{$v.id}}" {{if isset($params['is_read']) and $params['is_read'] eq $v['id']}}selected{{/if}}>{{$v.name}}</option>
{{/foreach}}
{{/if}}
</select>
</td>
<td>
<button type="submit" class="am-btn am-btn-primary am-radius am-btn-xs btn-loading-example" data-am-loading="{spinner:'circle-o-notch', loadingText:'搜索中...'}">搜索</button>
<a href="{{:MyUrl('index/message/index')}}" class="am-btn am-btn-warning am-radius am-btn-sm reset-submit">清除条件</a>
</td>
</tr>
</tbody>
</table>
</form>
<!-- 列表 -->
<div class="data-list am-margin-top-sm">
<table class="am-table am-table-striped">
<thead>
<tr>
<th class="am-hide-sm-only">标题</th>
<th class="am-hide-sm-only">类型</th>
<th class="am-hide-sm-only">业务</th>
<th>详情</th>
<th class="am-hide-sm-only">状态</th>
<th class="am-hide-md-down">时间</th>
<th>更多</th>
</tr>
</thead>
<tbody>
{{if !empty($data_list)}}
{{foreach $data_list as $v}}
<tr>
<td class="am-hide-sm-only">{{$v.title}}</td>
<td class="am-hide-sm-only">{{$v.type_text}}</td>
<td class="am-hide-sm-only">{{$v.business_type_text}}</td>
<td>{{$v.detail}}</td>
<td class="am-hide-sm-only">{{$v.is_read_text}}</td>
<td class="am-hide-md-down">{{$v.add_time_time}}</td>
<td>
<span class="am-icon-caret-down c-p" data-am-modal="{target: '#my-popup{{$v.id}}'}"> 查看更多</span>
<div class="am-popup am-radius" id="my-popup{{$v.id}}">
<div class="am-popup-inner">
<div class="am-popup-hd">
<h4 class="am-popup-title">详情内容</h4>
<span data-am-modal-close
class="am-close">&times;</span>
</div>
<div class="am-popup-bd">
<dl class="dl-content">
<dt>标题</dt>
<dd>{{$v.title}}</dd>
<dt>类型</dt>
<dd>{{$v.type_text}}</dd>
<dt>业务</dt>
<dd>{{$v.business_type_text}}</dd>
<dt>详情</dt>
<dd>{{$v.detail}}</dd>
<dt>状态</dt>
<dd>{{$v.is_read_text}}</dd>
<dt>时间</dt>
<dd>{{$v.add_time_time}}</dd>
</dl>
</div>
</div>
</div>
</td>
</tr>
{{/foreach}}
{{/if}}
</tbody>
</table>
{{if empty($data_list)}}
<div class="table-no"><i class="am-icon-warning"></i> 没有相关数据</div>
{{/if}}
</div>
<!-- 分页 -->
{{if !empty($data_list)}}
{{$page_html|raw}}
{{/if}}
</div>
</div>
<!-- content end -->
</div>
<!-- footer start -->
{{include file="public/footer" /}}
<!-- footer end -->
\ No newline at end of file
<!-- 继承公共的 form -->
{{extend name="public/module/form" /}}
\ No newline at end of file
<!-- 操作栏 -->
<button type="button" class="am-btn am-btn-default am-btn-xs am-radius am-btn-block submit-popup" data-url="{{:MyUrl('index/message/detail', ['id'=>$module_data['id']])}}">
<i class="am-icon-eye"></i>
<span>详情</span>
</button>
\ No newline at end of file
{{include file="public/header" /}}
<!-- content top hook -->
{{if isset($shopxo_is_develop) and $shopxo_is_develop eq true and (!isset($is_footer) or $is_footer eq 1)}}
<div class="plugins-tag">
<span>{{$hook_name_detail_top}}</span>
</div>
{{/if}}
{{php}}
$hook_data = Hook::listen($hook_name_detail_top, ['hook_name'=>$hook_name_detail_top, 'is_backend'=>true]);
if(!empty($hook_data) && is_array($hook_data))
{
foreach($hook_data as $hook)
{
if(is_string($hook) || is_int($hook))
{
echo htmlspecialchars_decode($hook);
}
}
}
{{/php}}
<!-- content start -->
<div class="am-padding-sm">
<!-- content inside top hook -->
{{if isset($shopxo_is_develop) and $shopxo_is_develop eq true and (!isset($is_footer) or $is_footer eq 1)}}
<div class="plugins-tag">
<span>{{$hook_name_detail_inside_top}}</span>
</div>
{{/if}}
{{php}}
$hook_data = Hook::listen($hook_name_detail_inside_top, ['hook_name'=>$hook_name_detail_inside_top, 'is_backend'=>true]);
if(!empty($hook_data) && is_array($hook_data))
{
foreach($hook_data as $hook)
{
if(is_string($hook) || is_int($hook))
{
echo htmlspecialchars_decode($hook);
}
}
}
{{/php}}
<!-- data -->
{{if !empty($data)}}
{{block name="detail_data"}}
{{if !empty($form_table) and !empty($form_table['form']) and is_array($form_table['form'])}}
{{if !empty($form_table['base']) and !empty($form_table['base']['detail_title'])}}
<div class="am-panel am-panel-default">
<div class="am-panel-hd">{{$form_table.base.detail_title}}</div>
<div class="am-panel-bd">
{{/if}}
<dl class="dl-content">
{{foreach $form_table.form as $t}}
{{if isset($t['label']) and isset($t['view_type']) and in_array($t['view_type'], ['field', 'module', 'status']) and (!isset($t['is_detail']) or $t['is_detail'] eq 1)}}
<dt><strong>{{$t.label}}</strong></dt>
<dd>
{{switch $t.view_type}}
{{case field}}
<!-- 如果字段为数组则处理多个字段拼接数据 -->
{{if is_array($t['view_key'])}}
{{foreach $t['view_key'] as $fk=>$fv}}
{{if isset($data[$fv])}}
{{$data[$fv]}}
<!-- 多个字段拼接数据的的拼接字符 -->
{{if isset($t['view_key_join']) and $fk lt count($t['view_key'])-1}}
{{$t.view_key_join|raw}}
{{/if}}
{{/if}}
{{/foreach}}
{{else /}}
<!-- 非数组则直接取值 -->
{{if isset($data[$t['view_key']])}}
<!-- 是否指定数据转换 -->
{{if !empty($t['view_data']) and is_array($t['view_data']) and isset($t['view_data'][$data[$t['view_key']]])}}
{{$t['view_data'][$data[$t['view_key']]]}}
<!-- 直接展示数据 -->
{{else /}}
{{$data[$t['view_key']]|raw}}
{{/if}}
{{/if}}
{{/if}}
{{/case}}
{{case module}}
<!-- 从模块加载自定义模块数据 -->
{{:ModuleInclude($t['view_key'], $data, ['form_request_type'=>'detail'])}}
{{/case}}
{{case status}}
<!-- 数据状态操作按钮组件 -->
{{if !empty($t['key_field']) and !empty($t['post_url'])}}
<a href="javascript:;"
class="am-icon-btn am-icon-check submit-state {{if $data[$t['view_key']] eq 1}}am-success{{else /}}am-default{{/if}}"
data-url="{{$t.post_url}}"
data-id="{{if isset($data[$t['key_field']])}}{{$data[$t['key_field']]}}{{/if}}"
data-state="{{$data[$t['view_key']]}}"
data-field="{{$t.view_key}}"
data-is-update-status="{{if isset($t['is_form_su'])}}{{$t.is_form_su}}{{else /}}0{{/if}}"
></a>
{{/if}}
{{/case}}
{{/switch}}
</dd>
{{/if}}
{{/foreach}}
</dl>
{{if !empty($form_table['base']) and !empty($form_table['base']['detail_title'])}}
</div>
</div>
{{/if}}
{{/if}}
{{/block}}
{{else /}}
{{block name="detail_not_data"}}
<div class="table-no"><i class="am-icon-warning"></i> 没有相关数据</div>
{{/block}}
{{/if}}
<!-- content inside top hook -->
{{if isset($shopxo_is_develop) and $shopxo_is_develop eq true and (!isset($is_footer) or $is_footer eq 1)}}
<div class="plugins-tag">
<span>{{$hook_name_detail_inside_bottom}}</span>
</div>
{{/if}}
{{php}}
$hook_data = Hook::listen($hook_name_detail_inside_bottom, ['hook_name'=>$hook_name_detail_inside_bottom, 'is_backend'=>true]);
if(!empty($hook_data) && is_array($hook_data))
{
foreach($hook_data as $hook)
{
if(is_string($hook) || is_int($hook))
{
echo htmlspecialchars_decode($hook);
}
}
}
{{/php}}
</div>
<!-- content end -->
<!-- content bottom hook -->
{{if isset($shopxo_is_develop) and $shopxo_is_develop eq true and (!isset($is_footer) or $is_footer eq 1)}}
<div class="plugins-tag">
<span>{{$hook_name_detail_bottom}}</span>
</div>
{{/if}}
{{php}}
$hook_data = Hook::listen($hook_name_detail_bottom, ['hook_name'=>$hook_name_detail_bottom, 'is_backend'=>true]);
if(!empty($hook_data) && is_array($hook_data))
{
foreach($hook_data as $hook)
{
if(is_string($hook) || is_int($hook))
{
echo htmlspecialchars_decode($hook);
}
}
}
{{/php}}
<!-- footer start -->
{{include file="public/footer" /}}
<!-- footer end -->
\ No newline at end of file
此差异已折叠。
<!-- 继承公共的 form -->
{{extend name="public/module/detail" /}}
\ No newline at end of file
{{include file="public/header" /}}
<!-- header top nav -->
{{include file="public/header_top_nav" /}}
<!-- search -->
{{include file="public/nav_search" /}}
<!-- header nav -->
{{include file="public/header_nav" /}}
<!-- goods category -->
{{include file="public/goods_category" /}}
<!-- content -->
<div class="am-container user-main">
<!-- user menu start -->
{{include file="public/user_menu" /}}
<!-- user menu end -->
<!-- content start -->
<div class="user-content">
<div class="user-content-body">
<div class="am-alert am-alert-secondary" data-am-alert>
<div class="available">
<span>正常可用</span>
<span class="panel-value">{{$user.integral}}</span>
<em>积分</em>
<span class="panel-tips">可以正常使用的积分</span>
</div>
<div class="locking">
<span>当前锁定</span>
<span class="panel-value">{{$user.locking_integral}}</span>
<em>积分</em>
<span class="panel-tips">一般积分交易中,交易并未完成、锁定相应的积分</span>
</div>
</div>
<form class="am-form form-validation form-search" method="post" action="{{:MyUrl('index/userintegral/index')}}" request-type="form">
<div class="thin">
<div class="am-input-group am-input-group-sm am-fl so">
<input type="text" autocomplete="off" name="keywords" class="am-radius" placeholder="其实搜索很简单 ^_^!" value="{{if !empty($params.keywords)}}{{$params.keywords}}{{/if}}" />
<span class="am-input-group-btn">
<button class="am-btn am-btn-default am-radius" type="submit" data-am-loading="{spinner:'circle-o-notch', loadingText:'搜索中...'}">搜索</button>
</span>
</div>
<label class="am-fl thin_sub more-submit">
更多筛选条件
{{if isset($params['is_more']) and $params['is_more'] eq 1}}
<input type="checkbox" name="is_more" value="1" id="is_more" checked />
<i class="am-icon-angle-up"></i>
{{else /}}
<input type="checkbox" name="is_more" value="1" id="is_more" />
<i class="am-icon-angle-down"></i>
{{/if}}
</label>
</div>
<table class="so-list more-where {{if !isset($params['is_more'])}}none{{/if}}">
<tbody>
<tr>
<td>
<span>类型:</span>
<select name="type" class="chosen-select" data-placeholder="操作类型...">
<option value="-1">操作类型...</option>
{{if !empty($common_integral_log_type_list)}}
{{foreach $common_integral_log_type_list as $v}}
<option value="{{$v.id}}" {{if isset($params['type']) and $params['type'] eq $v['id']}}selected{{/if}}>{{$v.name}}</option>
{{/foreach}}
{{/if}}
</select>
</td>
<td>
<button type="submit" class="am-btn am-btn-primary am-radius am-btn-xs btn-loading-example" data-am-loading="{spinner:'circle-o-notch', loadingText:'搜索中...'}">搜索</button>
<a href="{{:MyUrl('index/userintegral/index')}}" class="am-btn am-btn-warning am-radius am-btn-sm reset-submit">清除条件</a>
</td>
</tr>
</tbody>
</table>
</form>
<!-- 列表 -->
<div class="data-list am-margin-top-sm">
<table class="am-table am-table-striped">
<thead>
<tr>
<th>操作类型</th>
<th class="am-hide-sm-only">描述</th>
<th>原始积分</th>
<th>最新积分</th>
<th class="am-hide-md-down">时间</th>
<th>更多</th>
</tr>
</thead>
<tbody>
{{if !empty($data_list)}}
{{foreach $data_list as $v}}
<tr>
<td>{{$v.type_text}}</td>
<td class="am-hide-sm-only">{{$v.msg}}</td>
<td>{{$v.original_integral}}</td>
<td>{{$v.new_integral}}</td>
<td class="am-hide-md-down">{{$v.add_time_time}}</td>
<td>
<span class="am-icon-caret-down c-p" data-am-modal="{target: '#my-popup{{$v.id}}'}"> 查看更多</span>
<div class="am-popup am-radius" id="my-popup{{$v.id}}">
<div class="am-popup-inner">
<div class="am-popup-hd">
<h4 class="am-popup-title">详情内容</h4>
<span data-am-modal-close
class="am-close">&times;</span>
</div>
<div class="am-popup-bd">
<dl class="dl-content">
<dt>操作类型</dt>
<dd>{{$v.type_text}}</dd>
<dt>描述</dt>
<dd>{{$v.msg}}</dd>
<dt>原始积分</dt>
<dd>{{$v.original_integral}}</dd>
<dt>最新积分</dt>
<dd>{{$v.new_integral}}</dd>
<dt>时间</dt>
<dd>{{$v.add_time_time}}</dd>
</dl>
</div>
</div>
</div>
</td>
</tr>
{{/foreach}}
{{/if}}
</tbody>
</table>
{{if empty($data_list)}}
<div class="table-no"><i class="am-icon-warning"></i> 没有相关数据</div>
{{/if}}
</div>
<!-- 分页 -->
{{if !empty($data_list)}}
{{$page_html|raw}}
{{/if}}
<!-- 继承公共的 form -->
{{extend name="public/module/form" /}}
<!-- 顶部导航内容 -->
{{block name="form_navigation"}}
<div class="am-alert am-alert-secondary" data-am-alert>
<div class="available">
<span>正常可用</span>
<span class="panel-value">{{$user.integral}}</span>
<em>积分</em>
<span class="panel-tips">可以正常使用的积分</span>
</div>
<div class="locking">
<span>当前锁定</span>
<span class="panel-value">{{$user.locking_integral}}</span>
<em>积分</em>
<span class="panel-tips">一般积分交易中,交易并未完成、锁定相应的积分</span>
</div>
</div>
<!-- content end -->
</div>
<!-- footer start -->
{{include file="public/footer" /}}
<!-- footer end -->
\ No newline at end of file
{{/block}}
\ No newline at end of file
<!-- 操作栏 -->
<button type="button" class="am-btn am-btn-default am-btn-xs am-radius am-btn-block submit-popup" data-url="{{:MyUrl('index/userintegral/detail', ['id'=>$module_data['id']])}}">
<i class="am-icon-eye"></i>
<span>详情</span>
</button>
\ No newline at end of file
......@@ -57,7 +57,7 @@ class FormHandleModule
}
// 指定方法检测
$this->module_obj = new $module();
$this->module_obj = new $module($this->out_params);
if(!method_exists($this->module_obj, $action))
{
// 默认方法检测
......
......@@ -5,6 +5,7 @@
1. 所有条件、列表、新增、编辑、删除 新增钩子(公共 form 表单封装)
2. 积分支持按照订单商品总额比例发放,发生售后收回积分
3. 微信小程序好物推荐和直播组件支持配置组件版本号
4. 后台管理登录页面新增随机背景
web端
......
{
"appid": "16634987",
"developType": "normal",
"host": "baiduboxapp",
"preview": {
"packageId": 347753
},
"setting": {
"urlCheck": false
},
"swan": {
"baiduboxapp": {
"extensionJsVersion": "1.5.3",
"swanJsVersion": "3.105.9"
}
}
}
\ No newline at end of file
{
"projectid": "1109990622_test",
"setting": {
"urlCheck": false,
"es6": true,
"postcss": true,
"minified": true,
"newFeature": true,
"autoAudits": false,
"remoteDebugLogEnable": false,
"uploadWithSourceMap": true,
"nodeModules": true,
"uglifyFileName": true
},
"compileType": "miniprogram",
"createTime": 1572536544924,
"accessTime": 1572536544924,
"packOptions": {
"ignore": []
},
"debugOptions": {
"hidedInDevtools": []
},
"qqappid": "1109990622",
"projectname": "test",
"scripts": {
"beforeCompile": "",
"beforePreview": "",
"beforeUpload": ""
},
"condition": {
"search": {
"current": -1,
"list": []
},
"conversation": {
"current": -1,
"list": []
},
"game": {
"currentL": -1,
"list": []
},
"miniprogram": {
"current": -1,
"list": []
}
}
}
\ No newline at end of file
{
"setting": {
"urlCheck": false,
"es6": true,
"postcss": true,
"minified": true,
"newFeature": true
},
"appid": "tt65341389fa1e87f3",
"projectname": "gongfuxiang的小程序"
}
\ No newline at end of file
{
"description": "项目配置文件",
"packOptions": {
"ignore": []
},
"setting": {
"urlCheck": false,
"es6": true,
"postcss": true,
"minified": true,
"newFeature": true,
"autoAudits": false
},
"compileType": "miniprogram",
"libVersion": "2.4.3",
"appid": "wx0a2012ebad94beff",
"projectname": "shopxo",
"debugOptions": {
"hidedInDevtools": []
},
"scripts": {},
"simulatorType": "wechat",
"simulatorPluginLibVersion": {},
"condition": {
"search": {
"current": -1,
"list": []
},
"conversation": {
"current": -1,
"list": []
},
"plugin": {
"current": -1,
"list": []
},
"game": {
"list": []
},
"miniprogram": {
"current": 0,
"list": [
{
"id": 0,
"name": "goods详情",
"pathName": "pages/goods-detail/goods-detail",
"query": "goods_id=7&referrer=100",
"scene": 1001
}
]
}
}
}
\ No newline at end of file
/**
* 登录
* 登录页面背景图片
*/
.bg-slides {
position: absolute;
width: 100vw;
height: 100vh;
overflow: hidden;
}
.bg-slides-item {
position: absolute;
width: 100%;
height: 100%;
background: no-repeat 50% 50%;
background-size: cover;
}
/**
* 登录页面
*/
.account-pages {
position: absolute;
top: 50%;
left: 50%;
-webkit-transform: translate3d(-50%, -50%, 0);
transform: translate3d(-50%, -50%, 0);
z-index: 99;
height: 100%;
width: 100%;
background:url(data:image/png;base64,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) left top #f5f5f5;
padding-top: 5%;
}
@media only screen and (max-width: 641px) {
......@@ -22,33 +45,29 @@
position: relative;
width: 420px;
}
@media (max-width: 768px){
.wrapper-page {
width: 90%;
}
}
.text-center {
text-align: center;
@media (max-width: 768px) {
.wrapper-page {
width: 80%;
}
}
.wrapper-page .logo {
font-size: 42px;
.admin-login {
padding: 20px;
box-shadow: 0 0px 8px 0 rgba(0,0,0,0.06),0 1px 0px 0 rgba(0,0,0,0.02);
-webkit-border-radius: 5px;
border-radius: 5px;
-moz-border-radius: 5px;
background-clip: padding-box;
margin-bottom: 20px;
background: rgba(255,255,255,.85);
}
.logo {
color: #188ae2 !important;
font-size: 32px;
font-family: 'Rancho', cursive;
text-decoration: none;
}
.panel-body {
padding: 15px;
font-size: 60px;
font-weight: 500;
color: #0e90d2;
text-shadow: -2px 1px #fff;
}
@media only screen and (min-width: 641px) {
.admin-login .am-form-group { padding: 0 !important; }
}
/**
* 管理员列表
*/
.admin-list select, .admin-list input { width: 36% !important; display: initial !important; }
\ No newline at end of file
.admin-login .am-form-group {
padding: 0 !important;
}
}
\ No newline at end of file
......@@ -187,9 +187,6 @@ a:focus {outline:0;text-decoration:none;}
/* ============= Extras============= *//* Table type box */
.table-box {display:table;height:100%;width:100%;}
.table-box .table-detail {display:table-cell;vertical-align:middle;}
/* Card Box */
.card-box {padding:20px;box-shadow:0 0px 8px 0 rgba(0,0,0,0.06),0 1px 0px 0 rgba(0,0,0,0.02);-webkit-border-radius:5px;border-radius:5px;-moz-border-radius:5px;background-clip:padding-box;margin-bottom:20px;background-color:#ffffff;}
.card-box .card-drop {color:#98a6ad;font-size:20px;line-height:1px;padding:0px 5px;display:inline-block;}
/* Grid page */
.grid-structure .grid-container {background-color:#f4f8fb;margin-bottom:10px;padding:10px 20px;}
/* Demo only */
......
$(function()
{
// 登录页面背景切换
var count = $('.bg-slides-item').length;
if(count > 0)
{
var temp_old = 0;
var temp_new = 1;
var fade_time = 1000;
var interval_time = 6000;
setInterval(function()
{
$('.bg-slides-item').eq(temp_old).fadeOut(fade_time);
$('.bg-slides-item').eq(temp_new).fadeIn(fade_time);
temp_old = temp_new;
temp_new++;
if(temp_new > count-1)
{
temp_new = 0;
}
}, interval_time);
}
});
\ No newline at end of file
......@@ -1628,8 +1628,7 @@ function TableContainerInit()
if(right == undefined)
{
var left = $(this).offset().left;
var width = $(this).width();
var right = parent_width-left-width-parent_left-4;
right = parent_width-left-width+parent_left;
if(right < 0)
{
right = 0;
......
......@@ -22,8 +22,8 @@ button { outline: none; }
*, body, .am-btn { font-size: 12px; }
.am-form select, .am-form textarea, .am-form input[type="text"], .am-form input[type="password"], .am-form input[type="datetime"], .am-form input[type="datetime-local"], .am-form input[type="date"], .am-form input[type="month"], .am-form input[type="time"], .am-form input[type="week"], .am-form input[type="number"], .am-form input[type="email"], .am-form input[type="url"], .am-form input[type="search"], .am-form input[type="tel"], .am-form input[type="color"], .am-form-field {
font-size: 12px;
.am-form select,.am-form textarea,.am-form input[type="text"],.am-form input[type="password"],.am-form input[type="datetime"],.am-form input[type="datetime-local"],.am-form input[type="date"],.am-form input[type="month"],.am-form input[type="time"],.am-form input[type="week"],.am-form input[type="number"],.am-form input[type="email"],.am-form input[type="url"],.am-form input[type="search"],.am-form input[type="tel"],.am-form input[type="color"],.am-form-field {
font-size: 12px !important;
}
.am-input-group-sm > .am-input-group-btn > .am-btn,
.am-input-group-sm > .am-form-field,
......@@ -793,7 +793,7 @@ img.common-user-icon {
/**
* 用户中心左侧菜单
*/
.user-menu {position:fixed;z-index:10;bottom:70px;right:10px;}
.user-menu {position:fixed;z-index:1020;bottom:70px;right:10px; -webkit-box-shadow: 0 0 15px rgba(0, 0, 0, 0.5); -moz-box-shadow: 0 0 15px rgba(0, 0, 0, 0.5); box-shadow: 0 0 15px rgba(0, 0, 0, 0.5);}
.user-sidebar {width:145px;min-height:100%;float:left;}
.user-sidebar .am-active {z-index:1600;}
.user-sidebar .am-active a, .user-sidebar-list li a:hover {background:#fff1f5; text-decoration: none; color: #d2364c; }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册