动态表格列表支持排序操作
parent
bdc31f87cb
commit
c41f8dce31
|
|
@ -52,6 +52,7 @@ class Common extends Controller
|
|||
protected $form_params;
|
||||
protected $form_md5_key;
|
||||
protected $form_user_fields;
|
||||
protected $form_order_by;
|
||||
protected $form_error;
|
||||
|
||||
/**
|
||||
|
|
@ -288,11 +289,13 @@ class Common extends Controller
|
|||
$this->form_params = $ret['data']['params'];
|
||||
$this->form_md5_key = $ret['data']['md5_key'];
|
||||
$this->form_user_fields = $ret['data']['user_fields'];
|
||||
$this->form_order_by = $ret['data']['order_by'];
|
||||
|
||||
$this->assign('form_table', $this->form_table);
|
||||
$this->assign('form_params', $this->form_params);
|
||||
$this->assign('form_md5_key', $this->form_md5_key);
|
||||
$this->assign('form_user_fields', $this->form_user_fields);
|
||||
$this->assign('form_order_by', $this->form_order_by);
|
||||
} else {
|
||||
$this->form_error = $ret['msg'];
|
||||
$this->assign('form_error', $this->form_error);
|
||||
|
|
|
|||
|
|
@ -70,6 +70,7 @@ class Goods extends Common
|
|||
'where' => $this->form_where,
|
||||
'm' => $page->GetPageStarNumber(),
|
||||
'n' => $this->page_size,
|
||||
'order_by' => $this->form_order_by['data'],
|
||||
'is_category' => 1,
|
||||
];
|
||||
$ret = GoodsService::GoodsList($data_params);
|
||||
|
|
|
|||
|
|
@ -68,6 +68,7 @@ class Goods
|
|||
'view_type' => 'field',
|
||||
'view_key' => 'id',
|
||||
'width' => 105,
|
||||
'is_sort' => 1,
|
||||
'search_config' => [
|
||||
'form_type' => 'input',
|
||||
'where_type' => '=',
|
||||
|
|
@ -78,6 +79,8 @@ class Goods
|
|||
'view_type' => 'module',
|
||||
'view_key' => 'goods/module/info',
|
||||
'grid_size' => 'lg',
|
||||
'is_sort' => 1,
|
||||
'sort_field' => 'title',
|
||||
'search_config' => [
|
||||
'form_type' => 'input',
|
||||
'form_name' => 'title|simple_desc|seo_title|seo_keywords|seo_keywords',
|
||||
|
|
@ -102,6 +105,7 @@ class Goods
|
|||
'label' => '品牌',
|
||||
'view_type' => 'field',
|
||||
'view_key' => 'brand_name',
|
||||
'is_sort' => 1,
|
||||
'search_config' => [
|
||||
'form_type' => 'module',
|
||||
'template' => 'lib/module/category_brand',
|
||||
|
|
@ -116,6 +120,7 @@ class Goods
|
|||
'label' => '销售价格(元)',
|
||||
'view_type' => 'field',
|
||||
'view_key' => 'price',
|
||||
'is_sort' => 1,
|
||||
'search_config' => [
|
||||
'form_type' => 'section',
|
||||
'form_name' => 'min_price',
|
||||
|
|
@ -126,6 +131,7 @@ class Goods
|
|||
'label' => '原价(元)',
|
||||
'view_type' => 'field',
|
||||
'view_key' => 'original_price',
|
||||
'is_sort' => 1,
|
||||
'search_config' => [
|
||||
'form_type' => 'section',
|
||||
'form_name' => 'min_original_price',
|
||||
|
|
@ -137,6 +143,7 @@ class Goods
|
|||
'view_type' => 'field',
|
||||
'view_key' => ['inventory', 'inventory_unit'],
|
||||
'view_key_join' => ' ',
|
||||
'is_sort' => 1,
|
||||
'search_config' => [
|
||||
'form_type' => 'section',
|
||||
'form_name' => 'inventory',
|
||||
|
|
@ -149,6 +156,7 @@ class Goods
|
|||
'post_url' => MyUrl('admin/goods/statusupdate'),
|
||||
'is_form_su' => 1,
|
||||
'align' => 'center',
|
||||
'is_sort' => 1,
|
||||
'search_config' => [
|
||||
'form_type' => 'select',
|
||||
'where_type' => 'in',
|
||||
|
|
@ -164,6 +172,7 @@ class Goods
|
|||
'view_key' => 'is_home_recommended',
|
||||
'post_url' => MyUrl('admin/goods/statusupdate'),
|
||||
'align' => 'center',
|
||||
'is_sort' => 1,
|
||||
'search_config' => [
|
||||
'form_type' => 'select',
|
||||
'where_type' => 'in',
|
||||
|
|
@ -179,6 +188,7 @@ class Goods
|
|||
'view_key' => 'is_deduction_inventory',
|
||||
'post_url' => MyUrl('admin/goods/statusupdate'),
|
||||
'align' => 'center',
|
||||
'is_sort' => 1,
|
||||
'search_config' => [
|
||||
'form_type' => 'select',
|
||||
'where_type' => 'in',
|
||||
|
|
@ -194,6 +204,7 @@ class Goods
|
|||
'view_key' => 'site_type',
|
||||
'view_data_key' => 'name',
|
||||
'view_data' => lang('common_site_type_list'),
|
||||
'is_sort' => 1,
|
||||
'search_config' => [
|
||||
'form_type' => 'select',
|
||||
'where_type' => 'in',
|
||||
|
|
@ -207,6 +218,7 @@ class Goods
|
|||
'label' => '商品型号',
|
||||
'view_type' => 'field',
|
||||
'view_key' => 'model',
|
||||
'is_sort' => 1,
|
||||
'search_config' => [
|
||||
'form_type' => 'input',
|
||||
'where_type' => 'like',
|
||||
|
|
@ -216,6 +228,7 @@ class Goods
|
|||
'label' => '生产地',
|
||||
'view_type' => 'field',
|
||||
'view_key' => 'place_origin_name',
|
||||
'is_sort' => 1,
|
||||
'search_config' => [
|
||||
'form_type' => 'select',
|
||||
'form_name' => 'place_origin',
|
||||
|
|
@ -231,6 +244,7 @@ class Goods
|
|||
'view_type' => 'field',
|
||||
'view_key' => 'give_integral',
|
||||
'view_join_last'=> '%',
|
||||
'is_sort' => 1,
|
||||
'search_config' => [
|
||||
'form_type' => 'section',
|
||||
],
|
||||
|
|
@ -239,6 +253,7 @@ class Goods
|
|||
'label' => '单次最低起购数量',
|
||||
'view_type' => 'field',
|
||||
'view_key' => 'buy_min_number',
|
||||
'is_sort' => 1,
|
||||
'search_config' => [
|
||||
'form_type' => 'section',
|
||||
],
|
||||
|
|
@ -247,6 +262,7 @@ class Goods
|
|||
'label' => '单次最大购买数量',
|
||||
'view_type' => 'field',
|
||||
'view_key' => 'buy_max_number',
|
||||
'is_sort' => 1,
|
||||
'search_config' => [
|
||||
'form_type' => 'section',
|
||||
],
|
||||
|
|
@ -255,6 +271,7 @@ class Goods
|
|||
'label' => '访问次数',
|
||||
'view_type' => 'field',
|
||||
'view_key' => 'access_count',
|
||||
'is_sort' => 1,
|
||||
'search_config' => [
|
||||
'form_type' => 'section',
|
||||
],
|
||||
|
|
@ -263,6 +280,7 @@ class Goods
|
|||
'label' => '创建时间',
|
||||
'view_type' => 'field',
|
||||
'view_key' => 'add_time',
|
||||
'is_sort' => 1,
|
||||
'search_config' => [
|
||||
'form_type' => 'datetime',
|
||||
],
|
||||
|
|
@ -271,6 +289,7 @@ class Goods
|
|||
'label' => '更新时间',
|
||||
'view_type' => 'field',
|
||||
'view_key' => 'upd_time',
|
||||
'is_sort' => 1,
|
||||
'search_config' => [
|
||||
'form_type' => 'datetime',
|
||||
],
|
||||
|
|
|
|||
|
|
@ -37,6 +37,10 @@
|
|||
{{if isset($form_table['base']['is_search']) and $form_table['base']['is_search'] eq 1}}
|
||||
<a href="{{if isset($form_table['base']['search_url'])}}{{$form_table.base.search_url}}{{/if}}" class="am-btn am-btn-warning am-radius am-btn-sm am-icon-filter"> 重置</a>
|
||||
<button type="submit" class="am-btn am-btn-primary am-radius am-btn-xs btn-loading-example am-icon-search" data-am-loading="{loadingText:' 搜索中...'}"> 搜索</button>
|
||||
|
||||
<!-- 排序数据字段 -->
|
||||
<input type="hidden" name="fp_order_by_key" value="" />
|
||||
<input type="hidden" name="fp_order_by_val" value="" />
|
||||
{{/if}}
|
||||
|
||||
<!-- 字段选择 -->
|
||||
|
|
|
|||
|
|
@ -28,6 +28,14 @@
|
|||
{{default /}}
|
||||
{{if isset($t['label'])}}{{$t.label}}{{/if}}
|
||||
{{/switch}}
|
||||
|
||||
<!-- 排序操作、必须开启搜索后有效 -->
|
||||
{{if isset($form_table['base']['is_search']) and $form_table['base']['is_search'] eq 1 and isset($t['is_sort']) and $t['is_sort'] eq 1 and !empty($t['sort_field'])}}
|
||||
<div class="form-sort-container am-nbfc am-inline-block">
|
||||
<a href="javascript:;" data-key="{{$t.sort_field}}" data-val="asc" class="sort-icon am-icon-caret-up {{if !empty($form_order_by) and !empty($form_order_by['key']) and $form_order_by['key'] eq $t['sort_field'] and !empty($form_order_by['val']) and $form_order_by['val'] eq 'asc'}}sort-active{{/if}}"></a>
|
||||
<a href="javascript:;" data-key="{{$t.sort_field}}" data-val="desc" class="sort-icon am-icon-caret-down {{if !empty($form_order_by) and !empty($form_order_by['key']) and $form_order_by['key'] eq $t['sort_field'] and !empty($form_order_by['val']) and $form_order_by['val'] eq 'desc'}}sort-active{{/if}}"></a>
|
||||
</div>
|
||||
{{/if}}
|
||||
</th>
|
||||
{{/if}}
|
||||
{{/foreach}}
|
||||
|
|
|
|||
|
|
@ -66,6 +66,7 @@ class Common extends Controller
|
|||
protected $form_params;
|
||||
protected $form_md5_key;
|
||||
protected $form_user_fields;
|
||||
protected $form_order_by;
|
||||
protected $form_error;
|
||||
|
||||
/**
|
||||
|
|
@ -433,11 +434,13 @@ class Common extends Controller
|
|||
$this->form_params = $ret['data']['params'];
|
||||
$this->form_md5_key = $ret['data']['md5_key'];
|
||||
$this->form_user_fields = $ret['data']['user_fields'];
|
||||
$this->form_order_by = $ret['data']['order_by'];
|
||||
|
||||
$this->assign('form_table', $this->form_table);
|
||||
$this->assign('form_params', $this->form_params);
|
||||
$this->assign('form_md5_key', $this->form_md5_key);
|
||||
$this->assign('form_user_fields', $this->form_user_fields);
|
||||
$this->assign('form_order_by', $this->form_order_by);
|
||||
} else {
|
||||
$this->form_error = $ret['msg'];
|
||||
$this->assign('form_error', $this->form_error);
|
||||
|
|
|
|||
|
|
@ -37,6 +37,10 @@
|
|||
{{if isset($form_table['base']['is_search']) and $form_table['base']['is_search'] eq 1}}
|
||||
<a href="{{if isset($form_table['base']['search_url'])}}{{$form_table.base.search_url}}{{/if}}" class="am-btn am-btn-warning am-radius am-btn-sm am-icon-filter"> 重置</a>
|
||||
<button type="submit" class="am-btn am-btn-primary am-radius am-btn-xs btn-loading-example am-icon-search" data-am-loading="{loadingText:' 搜索中...'}"> 搜索</button>
|
||||
|
||||
<!-- 排序数据字段 -->
|
||||
<input type="hidden" name="fp_order_by_key" value="" />
|
||||
<input type="hidden" name="fp_order_by_val" value="" />
|
||||
{{/if}}
|
||||
|
||||
<!-- 字段选择 -->
|
||||
|
|
|
|||
|
|
@ -28,6 +28,14 @@
|
|||
{{default /}}
|
||||
{{if isset($t['label'])}}{{$t.label}}{{/if}}
|
||||
{{/switch}}
|
||||
|
||||
<!-- 排序操作、必须开启搜索后有效 -->
|
||||
{{if isset($form_table['base']['is_search']) and $form_table['base']['is_search'] eq 1 and isset($t['is_sort']) and $t['is_sort'] eq 1 and !empty($t['sort_field'])}}
|
||||
<div class="form-sort-container am-nbfc am-inline-block">
|
||||
<a href="javascript:;" data-key="{{$t.sort_field}}" data-val="asc" class="sort-icon am-icon-caret-up {{if !empty($form_order_by) and !empty($form_order_by['key']) and $form_order_by['key'] eq $t['sort_field'] and !empty($form_order_by['val']) and $form_order_by['val'] eq 'asc'}}sort-active{{/if}}"></a>
|
||||
<a href="javascript:;" data-key="{{$t.sort_field}}" data-val="desc" class="sort-icon am-icon-caret-down {{if !empty($form_order_by) and !empty($form_order_by['key']) and $form_order_by['key'] eq $t['sort_field'] and !empty($form_order_by['val']) and $form_order_by['val'] eq 'desc'}}sort-active{{/if}}"></a>
|
||||
</div>
|
||||
{{/if}}
|
||||
</th>
|
||||
{{/if}}
|
||||
{{/foreach}}
|
||||
|
|
|
|||
|
|
@ -38,6 +38,8 @@ class FormHandleModule
|
|||
public $where;
|
||||
// 用户选择字段字段
|
||||
public $user_fields;
|
||||
// 排序
|
||||
public $order_by;
|
||||
|
||||
/**
|
||||
* 运行入口
|
||||
|
|
@ -121,6 +123,9 @@ class FormHandleModule
|
|||
// 用户字段选择处理
|
||||
$this->FormFieldsUserSelect();
|
||||
|
||||
// 排序字段处理
|
||||
$this->FormOrderByHandle();
|
||||
|
||||
// 数据返回
|
||||
$data = [
|
||||
'table' => $this->form_data,
|
||||
|
|
@ -128,10 +133,32 @@ class FormHandleModule
|
|||
'params' => $this->where_params,
|
||||
'md5_key' => $this->md5_key,
|
||||
'user_fields' => $this->user_fields,
|
||||
'order_by' => $this->order_by,
|
||||
];
|
||||
return DataReturn('success', 0, $data);
|
||||
}
|
||||
|
||||
/**
|
||||
* 排序字段处理
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2020-10-24
|
||||
* @desc description
|
||||
*/
|
||||
public function FormOrderByHandle()
|
||||
{
|
||||
$order_by_key = empty($this->out_params['fp_order_by_key']) ? '' : $this->out_params['fp_order_by_key'];
|
||||
$order_by_val = empty($this->out_params['fp_order_by_val']) ? '' : $this->out_params['fp_order_by_val'];
|
||||
$order_by_data = (empty($order_by_key) || empty($order_by_val)) ? '' : $order_by_key.' '.$order_by_val;
|
||||
|
||||
$this->order_by = [
|
||||
'data' => $order_by_data,
|
||||
'key' => $order_by_key,
|
||||
'val' => $order_by_val,
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* 字段用户选择处理
|
||||
* @author Devil
|
||||
|
|
@ -386,7 +413,7 @@ class FormHandleModule
|
|||
|
||||
// 搜索条件数据处理
|
||||
// 表单字段名称
|
||||
$name = $v['search_config']['form_name'];
|
||||
$where_name = $v['search_config']['form_name'];
|
||||
// 条件类型
|
||||
$where_type = isset($v['search_config']['where_type']) ? $v['search_config']['where_type'] : $v['search_config']['form_type'];
|
||||
// 是否自定义条件处理
|
||||
|
|
@ -423,7 +450,7 @@ class FormHandleModule
|
|||
}
|
||||
|
||||
// 条件
|
||||
$this->where[] = [$name, $where_symbol, $value];
|
||||
$this->where[] = [$where_name, $where_symbol, $value];
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
|
@ -447,12 +474,12 @@ class FormHandleModule
|
|||
{
|
||||
if(!empty($value) && is_array($value))
|
||||
{
|
||||
$this->where[] = [$name, $where_symbol, $value];
|
||||
$this->where[] = [$where_name, $where_symbol, $value];
|
||||
}
|
||||
} else {
|
||||
if($value !== null && $value !== '')
|
||||
{
|
||||
$this->where[] = [$name, $where_symbol, $value];
|
||||
$this->where[] = [$where_name, $where_symbol, $value];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -472,7 +499,7 @@ class FormHandleModule
|
|||
$value = $this->WhereValueHandle($value, $value_custom, ['is_min'=>1]);
|
||||
if($value !== null && $value !== '')
|
||||
{
|
||||
$this->where[] = [$name, '>=', $value];
|
||||
$this->where[] = [$where_name, '>=', $value];
|
||||
}
|
||||
}
|
||||
if(array_key_exists($key_max, $this->out_params) && $this->out_params[$key_max] !== null && $this->out_params[$key_max] !== '')
|
||||
|
|
@ -485,7 +512,7 @@ class FormHandleModule
|
|||
$value = $this->WhereValueHandle($value, $value_custom, ['is_end'=>1]);
|
||||
if($value !== null && $value !== '')
|
||||
{
|
||||
$this->where[] = [$name, '<=', $value];
|
||||
$this->where[] = [$where_name, '<=', $value];
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
|
@ -505,7 +532,7 @@ class FormHandleModule
|
|||
$value = $this->WhereValueHandle(strtotime($value), $value_custom, ['is_start'=>1]);
|
||||
if($value !== null && $value !== '')
|
||||
{
|
||||
$this->where[] = [$name, '>=', $value];
|
||||
$this->where[] = [$where_name, '>=', $value];
|
||||
}
|
||||
}
|
||||
if(array_key_exists($key_end, $this->out_params) && $this->out_params[$key_end] !== null && $this->out_params[$key_end] !== '')
|
||||
|
|
@ -518,12 +545,15 @@ class FormHandleModule
|
|||
$value = $this->WhereValueHandle(strtotime($value), $value_custom, ['is_end'=>1]);
|
||||
if($value !== null && $value !== '')
|
||||
{
|
||||
$this->where[] = [$name, '<=', $value];
|
||||
$this->where[] = [$where_name, '<=', $value];
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// 排序字段
|
||||
$v['sort_field'] = empty($v['sort_field']) ? $where_name : $v['sort_field'];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -873,7 +873,7 @@ class GoodsService
|
|||
'key_name' => 'site_type',
|
||||
'checked_data' => array_merge([-1], array_column(lang('common_site_type_list'), 'value')),
|
||||
'is_checked' => 2,
|
||||
'error_msg' => '商品型号格式 最多30个字符',
|
||||
'error_msg' => '商品类型数据值范围有误',
|
||||
],
|
||||
[
|
||||
'checked_type' => 'length',
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@
|
|||
namespace app\service;
|
||||
|
||||
use think\Db;
|
||||
use think\facade\Hook;
|
||||
use app\service\UserService;
|
||||
|
||||
/**
|
||||
|
|
@ -49,7 +50,20 @@ class MessageService
|
|||
'is_read' => 0,
|
||||
'add_time' => time(),
|
||||
);
|
||||
return Db::name('Message')->insertGetId($data) > 0;
|
||||
$message_id = Db::name('Message')->insertGetId($data);
|
||||
if($message_id > 0)
|
||||
{
|
||||
// 消息添加钩子
|
||||
$hook_name = 'plugins_service_message_add';
|
||||
Hook::listen($hook_name, [
|
||||
'hook_name' => $hook_name,
|
||||
'is_backend' => true,
|
||||
'data' => $data,
|
||||
'data_id' => $message_id,
|
||||
]);
|
||||
return true;
|
||||
}
|
||||
return facade;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -37,6 +37,8 @@ return array (
|
|||
0 => 'app\\plugins\\share\\Hook',
|
||||
1 => 'app\\plugins\\exchangerate\\Hook',
|
||||
2 => 'app\\plugins\\freightfee\\Hook',
|
||||
3 => 'app\\plugins\\activity\\Hook',
|
||||
4 => 'app\\plugins\\excellentbuyreturntocash\\Hook',
|
||||
),
|
||||
'plugins_js' =>
|
||||
array (
|
||||
|
|
@ -60,20 +62,24 @@ return array (
|
|||
array (
|
||||
0 => 'app\\plugins\\distribution\\Hook',
|
||||
1 => 'app\\plugins\\wallet\\Hook',
|
||||
2 => 'app\\plugins\\excellentbuyreturntocash\\Hook',
|
||||
),
|
||||
'plugins_service_header_navigation_top_right_handle' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\distribution\\Hook',
|
||||
1 => 'app\\plugins\\wallet\\Hook',
|
||||
2 => 'app\\plugins\\exchangerate\\Hook',
|
||||
3 => 'app\\plugins\\excellentbuyreturntocash\\Hook',
|
||||
),
|
||||
'plugins_service_order_status_change_history_success_handle' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\distribution\\Hook',
|
||||
1 => 'app\\plugins\\excellentbuyreturntocash\\Hook',
|
||||
),
|
||||
'plugins_service_order_aftersale_audit_handle_end' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\distribution\\Hook',
|
||||
1 => 'app\\plugins\\excellentbuyreturntocash\\Hook',
|
||||
),
|
||||
'plugins_service_site_extraction_address_list' =>
|
||||
array (
|
||||
|
|
@ -82,6 +88,7 @@ return array (
|
|||
'plugins_service_buy_order_insert_end' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\distribution\\Hook',
|
||||
1 => 'app\\plugins\\excellentbuyreturntocash\\Hook',
|
||||
),
|
||||
'plugins_service_goods_spec_extends_handle' =>
|
||||
array (
|
||||
|
|
@ -95,6 +102,20 @@ return array (
|
|||
array (
|
||||
0 => 'app\\plugins\\distribution\\Hook',
|
||||
),
|
||||
'plugins_service_goods_handle_end' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\distribution\\Hook',
|
||||
1 => 'app\\plugins\\exchangerate\\Hook',
|
||||
),
|
||||
'plugins_service_goods_spec_base' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\distribution\\Hook',
|
||||
1 => 'app\\plugins\\exchangerate\\Hook',
|
||||
),
|
||||
'plugins_view_goods_detail_panel_price_top' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\distribution\\Hook',
|
||||
),
|
||||
'plugins_service_user_register_end' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\wallet\\Hook',
|
||||
|
|
@ -131,14 +152,6 @@ return array (
|
|||
array (
|
||||
0 => 'app\\plugins\\exchangerate\\Hook',
|
||||
),
|
||||
'plugins_service_goods_handle_end' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\exchangerate\\Hook',
|
||||
),
|
||||
'plugins_service_goods_spec_base' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\exchangerate\\Hook',
|
||||
),
|
||||
'plugins_service_buy_group_goods_handle' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\freightfee\\Hook',
|
||||
|
|
@ -146,12 +159,30 @@ return array (
|
|||
'plugins_view_goods_detail_title' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\freightfee\\Hook',
|
||||
1 => 'app\\plugins\\excellentbuyreturntocash\\Hook',
|
||||
),
|
||||
'plugins_service_navigation_header_handle' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\answers\\Hook',
|
||||
1 => 'app\\plugins\\blog\\Hook',
|
||||
2 => 'app\\plugins\\speedplaceorder\\Hook',
|
||||
3 => 'app\\plugins\\activity\\Hook',
|
||||
),
|
||||
'plugins_view_home_floor_top' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\activity\\Hook',
|
||||
),
|
||||
'plugins_view_home_floor_bottom' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\activity\\Hook',
|
||||
),
|
||||
'plugins_service_buy_order_insert_begin' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\excellentbuyreturntocash\\Hook',
|
||||
),
|
||||
'plugins_view_goods_detail_panel_bottom' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\excellentbuyreturntocash\\Hook',
|
||||
),
|
||||
);
|
||||
?>
|
||||
|
|
@ -18,6 +18,7 @@ web端
|
|||
3. 新增插件路由短地址规则
|
||||
4. 动态表格列表支持自定义显示字段和拖拽排序
|
||||
5. 后台新增用户地址管理
|
||||
6. 动态表格列表支持排序操作
|
||||
|
||||
小程序
|
||||
1. QQ小程序支持微信支付
|
||||
|
|
@ -29,6 +30,8 @@ web端
|
|||
2. 新增IEPay新西兰货币支付(支付宝+微信)
|
||||
3. 新增博客插件、写文章增加商城的搜索引擎收录、关联推荐商品
|
||||
4. 钱包插件支持修改余额输入操作密码、提现支持配置最低金额
|
||||
5. 分销插件新增收益总额自动升级,新增指定商品返现、复购优惠、推广达标返现模式
|
||||
6. 新增活动配置插件、可首页展示活动、独立活动首页和详情页面
|
||||
|
||||
|
||||
+=========================================================+
|
||||
|
|
|
|||
|
|
@ -21,6 +21,9 @@
|
|||
"email": "fuxiang.gong@qq.com"
|
||||
}
|
||||
],
|
||||
"require": {
|
||||
"php": "5.6.35"
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"app\\": "application"
|
||||
|
|
|
|||
|
|
@ -61,7 +61,7 @@ select {height:28px !important;}
|
|||
.t-r {text-align:right;}
|
||||
.o-h { overflow: hidden; }
|
||||
.submit-state { font-size: 16px; width: 25px; height: 25px; line-height: 25px; }
|
||||
input:hover, select:hover, textarea:hover, .chosen-choices:hover, .chosen-single:hover { border-style:solid; border-width:1px; -moz-border-radius:2px; -webkit-border-radius:2px; border-radius:2px; border:1px solid #4FACF5 !important; box-shadow:0 0 5px #4FACF5 !important; }
|
||||
input:hover, select:hover, textarea:hover, .chosen-choices:hover, .chosen-single:hover,.am-tagsinput:hover, button.colorpicker-submit:hover { border-style:solid; border-width:1px; -moz-border-radius:2px; -webkit-border-radius:2px; border-radius:2px; border:1px solid #4FACF5 !important; box-shadow:0 0 5px #4FACF5 !important; }
|
||||
.am-input-group-sm > .am-input-group-btn > .am-btn,
|
||||
.am-input-group-sm > .am-form-field,
|
||||
.am-input-group-sm > .am-input-group-label,
|
||||
|
|
|
|||
|
|
@ -545,6 +545,7 @@ button.colorpicker-submit img {
|
|||
.am-table-scrollable-horizontal .am-table tr th {
|
||||
background: #e8e6e6;
|
||||
min-width: 100px;
|
||||
position: relative;
|
||||
}
|
||||
.am-table-scrollable-horizontal .am-table tr .am-grid-xxxl {
|
||||
min-width: 650px;
|
||||
|
|
@ -662,6 +663,34 @@ button.colorpicker-submit img {
|
|||
width: calc(100% - 130px);
|
||||
}
|
||||
|
||||
/**
|
||||
* 表格排序
|
||||
*/
|
||||
.form-sort-container {
|
||||
position: absolute;
|
||||
margin-left: 3px;
|
||||
top: calc(50% - 8px);
|
||||
}
|
||||
.form-sort-container .sort-icon {
|
||||
display: block;
|
||||
height: 8px;
|
||||
line-height: 10px;
|
||||
color: #999;
|
||||
width: 15px;
|
||||
text-align: center;
|
||||
}
|
||||
.form-sort-container .sort-icon:before {
|
||||
height: 8px;
|
||||
line-height: 8px;
|
||||
font-size: 14px;
|
||||
}
|
||||
.form-sort-container .sort-icon:hover {
|
||||
color: #333;
|
||||
}
|
||||
.form-sort-container .sort-active {
|
||||
color: #0e90d2 !important;
|
||||
}
|
||||
|
||||
/**
|
||||
* 公共联动地区组件样式
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -1687,7 +1687,25 @@ $(function()
|
|||
// 表格初始化
|
||||
FormTableContainerInit();
|
||||
|
||||
// 表格字段拖拽排序
|
||||
// 表格字段数据排序
|
||||
$('.form-sort-container .sort-icon').on('click', function()
|
||||
{
|
||||
var key = $(this).data('key') || null;
|
||||
var val = $(this).data('val') || null;
|
||||
if(key == null || val == null)
|
||||
{
|
||||
Prompt('排序数据值有误');
|
||||
return false;
|
||||
}
|
||||
|
||||
// 赋值并搜索
|
||||
var $parent = $(this).parents('form.form-validation-search');
|
||||
$parent.find('input[name="fp_order_by_key"]').val(key);
|
||||
$parent.find('input[name="fp_order_by_val"]').val(val);
|
||||
$parent.find('button[type="submit"]').trigger('click');
|
||||
});
|
||||
|
||||
// 表格字显示段拖拽排序
|
||||
if($('ul.form-table-fields-content-container').length > 0)
|
||||
{
|
||||
$('ul.form-table-fields-content-container').dragsort({ dragSelector: 'li', placeHolderTemplate: '<li class="drag-sort-dotted am-margin-left-sm"></li>'});
|
||||
|
|
|
|||
Loading…
Reference in New Issue