新增条形码组件库、其他细节优化
parent
fd1e26cf1e
commit
61b2fa866e
|
|
@ -297,6 +297,9 @@ class Common extends BaseController
|
||||||
// 是否加载视频播放器组件
|
// 是否加载视频播放器组件
|
||||||
$assign['is_load_ckplayer'] = 0;
|
$assign['is_load_ckplayer'] = 0;
|
||||||
|
|
||||||
|
// 是否加载条形码组件
|
||||||
|
$assign['is_load_barcode'] = 0;
|
||||||
|
|
||||||
// 默认不加载地图api、类型默认百度地图
|
// 默认不加载地图api、类型默认百度地图
|
||||||
$assign['is_load_map_api'] = 0;
|
$assign['is_load_map_api'] = 0;
|
||||||
$assign['load_map_type'] = MyC('common_map_type', 'baidu', true);
|
$assign['load_map_type'] = MyC('common_map_type', 'baidu', true);
|
||||||
|
|
|
||||||
|
|
@ -34,18 +34,20 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="am-popup-bd">
|
<div class="am-popup-bd">
|
||||||
<form class="am-form form-validation-delivery am-form-popup-fixed" method="post" action="{{:MyUrl('admin/order/delivery')}}" request-type="ajax-reload">
|
<form class="am-form form-validation-delivery am-form-popup-fixed" method="post" action="{{:MyUrl('admin/order/delivery')}}" request-type="ajax-reload">
|
||||||
<div class="business-item">
|
<div class="business-list business-list-nbfc">
|
||||||
{{if !empty($express_list)}}
|
{{if !empty($express_list)}}
|
||||||
<ul class="express-list" data-type="express">
|
<ul class="am-avg-sm-2 am-avg-md-3 express-list" data-type="express">
|
||||||
{{foreach $express_list as $express}}
|
{{foreach $express_list as $express}}
|
||||||
{{if $express.is_enable eq 1}}
|
{{if $express.is_enable eq 1}}
|
||||||
<li class="express-items-{{$express.id}}" data-value="{{$express.id}}">
|
<li class="am-padding-sm" data-value="{{$express.id}}">
|
||||||
{{if !empty($express.icon)}}
|
<div class="business-item am-nbfc am-padding-sm am-radius">
|
||||||
<img src="{{$express.icon}}" />
|
{{if !empty($express.icon)}}
|
||||||
{{/if}}
|
<img src="{{$express.icon}}" class="am-radius" />
|
||||||
<span>{{$express.name}}</span>
|
{{/if}}
|
||||||
<div class="rotate"></div>
|
<span>{{$express.name}}</span>
|
||||||
<i class="am-icon-check"></i>
|
<div class="rotate"></div>
|
||||||
|
<i class="am-icon-check"></i>
|
||||||
|
</div>
|
||||||
</li>
|
</li>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{/foreach}}
|
{{/foreach}}
|
||||||
|
|
@ -81,17 +83,19 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="am-popup-bd">
|
<div class="am-popup-bd">
|
||||||
<form class="am-form form-validation-pay am-form-popup-fixed" action="{{:MyUrl('admin/order/pay')}}" method="POST" request-type="ajax-reload">
|
<form class="am-form form-validation-pay am-form-popup-fixed" action="{{:MyUrl('admin/order/pay')}}" method="POST" request-type="ajax-reload">
|
||||||
<div class="business-item">
|
<div class="business-list business-list-nbfc">
|
||||||
{{if !empty($buy_payment_list)}}
|
{{if !empty($buy_payment_list)}}
|
||||||
<ul class="payment-list" data-type="payment">
|
<ul class="am-avg-sm-2 am-avg-md-3 payment-list" data-type="payment">
|
||||||
{{foreach $buy_payment_list as $payment}}
|
{{foreach $buy_payment_list as $payment}}
|
||||||
<li class="payment-items-{{$payment.id}}" data-value="{{$payment.id}}">
|
<li class="am-padding-sm" data-value="{{$payment.id}}">
|
||||||
{{if !empty($payment.logo)}}
|
<div class="business-item am-nbfc am-padding-sm am-radius">
|
||||||
<img src="{{$payment.logo}}" />
|
{{if !empty($payment.logo)}}
|
||||||
{{/if}}
|
<img src="{{$payment.logo}}" class="am-radius" />
|
||||||
<span>{{$payment.name}}</span>
|
{{/if}}
|
||||||
<div class="rotate"></div>
|
<span>{{$payment.name}}</span>
|
||||||
<i class="am-icon-check"></i>
|
<div class="rotate"></div>
|
||||||
|
<i class="am-icon-check"></i>
|
||||||
|
</div>
|
||||||
</li>
|
</li>
|
||||||
{{/foreach}}
|
{{/foreach}}
|
||||||
</ul>
|
</ul>
|
||||||
|
|
|
||||||
|
|
@ -113,6 +113,11 @@
|
||||||
<script type='text/javascript' src="{{$public_host}}static/common/lib/ckplayer/js/ckplayer.min.js?v={{:MyC('home_static_cache_version')}}"></script>
|
<script type='text/javascript' src="{{$public_host}}static/common/lib/ckplayer/js/ckplayer.min.js?v={{:MyC('home_static_cache_version')}}"></script>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
|
<!-- 条形码 -->
|
||||||
|
{{if isset($is_load_barcode) and $is_load_barcode eq 1}}
|
||||||
|
<script type='text/javascript' src="{{$public_host}}static/common/lib/JsBarcode/JsBarcode.all.min.js?v={{:MyC('home_static_cache_version')}}"></script>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
<!-- map -->
|
<!-- map -->
|
||||||
{{if isset($is_load_map_api) and $is_load_map_api eq 1 and !empty($load_map_type)}}
|
{{if isset($is_load_map_api) and $is_load_map_api eq 1 and !empty($load_map_type)}}
|
||||||
{{switch $load_map_type}}
|
{{switch $load_map_type}}
|
||||||
|
|
|
||||||
|
|
@ -225,7 +225,7 @@ class User extends Common
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* [ClientCenter 用户中心]
|
* 用户中心
|
||||||
* @author Devil
|
* @author Devil
|
||||||
* @blog http://gong.gg/
|
* @blog http://gong.gg/
|
||||||
* @version 1.0.0
|
* @version 1.0.0
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,31 @@
|
||||||
|
|
||||||
// 应用公共文件
|
// 应用公共文件
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 两个数组字段对比处理、arr1不存在arr2中的字段则移除
|
||||||
|
* @author Devil
|
||||||
|
* @blog http://gong.gg/
|
||||||
|
* @version 1.0.0
|
||||||
|
* @date 2022-11-12
|
||||||
|
* @desc description
|
||||||
|
* @param [array] $arr1 [待处理的数据]
|
||||||
|
* @param [array] $arr2 [参考对比的数据]
|
||||||
|
*/
|
||||||
|
function ArrayFieldContrastHandle($arr1, $arr2)
|
||||||
|
{
|
||||||
|
if(!empty($arr1) && is_array($arr1) && is_array($arr2))
|
||||||
|
{
|
||||||
|
foreach($arr1 as $fk=>$fv)
|
||||||
|
{
|
||||||
|
if(!array_key_exists($fk, $arr2))
|
||||||
|
{
|
||||||
|
unset($arr1[$fk]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $arr1;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取汉字拼音、默认返回数组
|
* 获取汉字拼音、默认返回数组
|
||||||
* @author Devil
|
* @author Devil
|
||||||
|
|
|
||||||
|
|
@ -405,6 +405,9 @@ class Common extends BaseController
|
||||||
// 是否加载视频播放器组件
|
// 是否加载视频播放器组件
|
||||||
$assign['is_load_ckplayer'] = 0;
|
$assign['is_load_ckplayer'] = 0;
|
||||||
|
|
||||||
|
// 是否加载条形码组件
|
||||||
|
$assign['is_load_barcode'] = 0;
|
||||||
|
|
||||||
// 默认不加载地图api、类型默认百度地图
|
// 默认不加载地图api、类型默认百度地图
|
||||||
$assign['is_load_map_api'] = 0;
|
$assign['is_load_map_api'] = 0;
|
||||||
$assign['load_map_type'] = MyC('common_map_type', 'baidu', true);
|
$assign['load_map_type'] = MyC('common_map_type', 'baidu', true);
|
||||||
|
|
|
||||||
|
|
@ -522,22 +522,26 @@
|
||||||
|
|
||||||
<!-- 支付方式 -->
|
<!-- 支付方式 -->
|
||||||
{{if $base['actual_price'] gt 0 and $common_order_is_booking neq 1}}
|
{{if $base['actual_price'] gt 0 and $common_order_is_booking neq 1}}
|
||||||
<div id="buy-items-payment" class="buy-items business-item payment" data-field="payment_id">
|
<div id="buy-items-payment" class="buy-items">
|
||||||
<h3>选择支付</h3>
|
<h3>选择支付</h3>
|
||||||
{{if !empty($payment_list)}}
|
<div class="business-list business-list-nbfc payment am-margin-top-sm" data-field="payment_id">
|
||||||
<ul class="payment-list">
|
{{if !empty($payment_list)}}
|
||||||
{{foreach $payment_list as $payment}}
|
<ul class="am-avg-sm-2 am-avg-md-3 am-avg-lg-4 payment-list" data-is-required="1">
|
||||||
<li data-value="{{$payment.id}}" class="{{if isset($params['payment_id']) and $params['payment_id'] eq $payment['id']}}selected{{/if}}">
|
{{foreach $payment_list as $payment}}
|
||||||
{{if !empty($payment.logo)}}
|
<li data-value="{{$payment.id}}" class="am-padding-sm {{if isset($params['payment_id']) and $params['payment_id'] eq $payment['id']}}selected{{/if}}">
|
||||||
<img src="{{$payment.logo}}" />
|
<div class="business-item am-nbfc am-padding-sm am-radius">
|
||||||
{{/if}}
|
{{if !empty($payment.logo)}}
|
||||||
<span>{{$payment.name}}</span>
|
<img src="{{$payment.logo}}" class="am-radius" />
|
||||||
<div class="rotate"></div>
|
{{/if}}
|
||||||
<i class="am-icon-check"></i>
|
<span>{{$payment.name}}</span>
|
||||||
</li>
|
<div class="rotate"></div>
|
||||||
{{/foreach}}
|
<i class="am-icon-check"></i>
|
||||||
</ul>
|
</div>
|
||||||
{{/if}}
|
</li>
|
||||||
|
{{/foreach}}
|
||||||
|
</ul>
|
||||||
|
{{/if}}
|
||||||
|
</div>
|
||||||
{{if empty($payment_list)}}
|
{{if empty($payment_list)}}
|
||||||
<div class="table-no"><i class="am-icon-warning"></i> 没有支付方式</div>
|
<div class="table-no"><i class="am-icon-warning"></i> 没有支付方式</div>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
|
||||||
|
|
@ -6,17 +6,19 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="am-popup-bd">
|
<div class="am-popup-bd">
|
||||||
<form class="am-form pay-form am-form-popup-fixed" method="post" action="{{:MyUrl('index/order/pay')}}">
|
<form class="am-form pay-form am-form-popup-fixed" method="post" action="{{:MyUrl('index/order/pay')}}">
|
||||||
<div class="business-item">
|
<div class="business-list business-list-nbfc">
|
||||||
{{if !empty($buy_payment_list)}}
|
{{if !empty($buy_payment_list)}}
|
||||||
<ul class="payment-list" data-type="payment">
|
<ul class="am-avg-sm-2 am-avg-md-3 payment-list" data-type="payment">
|
||||||
{{foreach $buy_payment_list as $payment}}
|
{{foreach $buy_payment_list as $payment}}
|
||||||
<li class="payment-items-{{$payment.id}}" data-value="{{$payment.id}}">
|
<li class="am-padding-sm" data-value="{{$payment.id}}">
|
||||||
{{if !empty($payment.logo)}}
|
<div class="business-item am-nbfc am-padding-sm am-radius">
|
||||||
<img src="{{$payment.logo}}" />
|
{{if !empty($payment.logo)}}
|
||||||
{{/if}}
|
<img src="{{$payment.logo}}" class="am-radius" />
|
||||||
<span>{{$payment.name}}</span>
|
{{/if}}
|
||||||
<div class="rotate"></div>
|
<span>{{$payment.name}}</span>
|
||||||
<i class="am-icon-check"></i>
|
<div class="rotate"></div>
|
||||||
|
<i class="am-icon-check"></i>
|
||||||
|
</div>
|
||||||
</li>
|
</li>
|
||||||
{{/foreach}}
|
{{/foreach}}
|
||||||
</ul>
|
</ul>
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,6 @@
|
||||||
|
|
||||||
<!-- content -->
|
<!-- content -->
|
||||||
<div class="am-container user-main">
|
<div class="am-container user-main">
|
||||||
|
|
||||||
<!-- user menu start -->
|
<!-- user menu start -->
|
||||||
{{include file="public/user_menu" /}}
|
{{include file="public/user_menu" /}}
|
||||||
<!-- user menu end -->
|
<!-- user menu end -->
|
||||||
|
|
@ -23,8 +22,8 @@
|
||||||
<div class="user-content">
|
<div class="user-content">
|
||||||
<div class="user-content-body">
|
<div class="user-content-body">
|
||||||
<legend>
|
<legend>
|
||||||
<span class="legend-title">个人资料</span>
|
<span class="am-text-default">个人资料</span>
|
||||||
<a href="{{:MyUrl('index/personal/saveinfo')}}" class="am-fr"> 编辑</a>
|
<a href="{{:MyUrl('index/personal/saveinfo')}}" class="am-fr am-text-xs am-margin-top-sm am-icon-edit"> 编辑</a>
|
||||||
</legend>
|
</legend>
|
||||||
<dl class="dl-content">
|
<dl class="dl-content">
|
||||||
{{foreach $personal_show_list as $k=>$v}}
|
{{foreach $personal_show_list as $k=>$v}}
|
||||||
|
|
|
||||||
|
|
@ -25,8 +25,8 @@
|
||||||
<!-- form start -->
|
<!-- form start -->
|
||||||
<form class="am-form form-validation" action="{{:MyUrl('index/personal/save')}}" method="POST" request-type="ajax-url" request-value="{{:MyUrl('index/personal/index')}}">
|
<form class="am-form form-validation" action="{{:MyUrl('index/personal/save')}}" method="POST" request-type="ajax-url" request-value="{{:MyUrl('index/personal/index')}}">
|
||||||
<legend>
|
<legend>
|
||||||
<span class="legend-title">个人资料</span>
|
<span class="am-text-default">个人资料</span>
|
||||||
<a href="{{:MyUrl('index/personal/index')}}" class="am-fr am-margin-top-sm am-icon-mail-reply"> 返回</a>
|
<a href="{{:MyUrl('index/personal/index')}}" class="am-fr am-text-xs am-margin-top-sm am-icon-mail-reply"> 返回</a>
|
||||||
</legend>
|
</legend>
|
||||||
<div class="am-form-group">
|
<div class="am-form-group">
|
||||||
<label>昵称</label>
|
<label>昵称</label>
|
||||||
|
|
|
||||||
|
|
@ -95,6 +95,11 @@
|
||||||
<script type='text/javascript' src="{{$public_host}}static/common/lib/ckplayer/js/ckplayer.min.js?v={{:MyC('home_static_cache_version')}}"></script>
|
<script type='text/javascript' src="{{$public_host}}static/common/lib/ckplayer/js/ckplayer.min.js?v={{:MyC('home_static_cache_version')}}"></script>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
|
<!-- 条形码 -->
|
||||||
|
{{if isset($is_load_barcode) and $is_load_barcode eq 1}}
|
||||||
|
<script type='text/javascript' src="{{$public_host}}static/common/lib/JsBarcode/JsBarcode.all.min.js?v={{:MyC('home_static_cache_version')}}"></script>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
<!-- map -->
|
<!-- map -->
|
||||||
{{if isset($is_load_map_api) and $is_load_map_api eq 1 and !empty($load_map_type)}}
|
{{if isset($is_load_map_api) and $is_load_map_api eq 1 and !empty($load_map_type)}}
|
||||||
{{switch $load_map_type}}
|
{{switch $load_map_type}}
|
||||||
|
|
|
||||||
|
|
@ -93,6 +93,10 @@ class OrderService
|
||||||
return DataReturn('状态不可操作['.$status_text.'-'.$order['order_no'].']', -1);
|
return DataReturn('状态不可操作['.$status_text.'-'.$order['order_no'].']', -1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 订单详情
|
||||||
|
$detail = self::OrderItemList([$order]);
|
||||||
|
$order['detail'] = (empty($detail) || !array_key_exists($order['id'], $detail)) ? [] : $detail[$order['id']];
|
||||||
|
|
||||||
// 订单用户
|
// 订单用户
|
||||||
$order['user'] = UserService::UserHandle(UserService::UserInfo('id', $order['user_id']));
|
$order['user'] = UserService::UserHandle(UserService::UserInfo('id', $order['user_id']));
|
||||||
if(empty($order['user']))
|
if(empty($order['user']))
|
||||||
|
|
@ -230,6 +234,7 @@ class OrderService
|
||||||
'user' => $current_user,
|
'user' => $current_user,
|
||||||
'business_ids' => $order_ids,
|
'business_ids' => $order_ids,
|
||||||
'business_nos' => $order_nos,
|
'business_nos' => $order_nos,
|
||||||
|
'business_data' => $order_data,
|
||||||
'total_price' => $total_price,
|
'total_price' => $total_price,
|
||||||
'payment' => $payment['payment'],
|
'payment' => $payment['payment'],
|
||||||
'payment_name' => $payment['name'],
|
'payment_name' => $payment['name'],
|
||||||
|
|
@ -246,6 +251,7 @@ class OrderService
|
||||||
'user_id' => $current_user['id'],
|
'user_id' => $current_user['id'],
|
||||||
'business_ids' => $order_ids,
|
'business_ids' => $order_ids,
|
||||||
'business_nos' => $order_nos,
|
'business_nos' => $order_nos,
|
||||||
|
'business_data' => $order_data,
|
||||||
'total_price' => $total_price,
|
'total_price' => $total_price,
|
||||||
'payment' => $payment['payment'],
|
'payment' => $payment['payment'],
|
||||||
'payment_name' => $payment['name'],
|
'payment_name' => $payment['name'],
|
||||||
|
|
@ -263,6 +269,7 @@ class OrderService
|
||||||
'business_type' => 'system-order',
|
'business_type' => 'system-order',
|
||||||
'business_ids' => $order_ids,
|
'business_ids' => $order_ids,
|
||||||
'business_nos' => $order_nos,
|
'business_nos' => $order_nos,
|
||||||
|
'business_data' => $order_data,
|
||||||
'order_id' => $pay_log['data']['id'],
|
'order_id' => $pay_log['data']['id'],
|
||||||
'order_no' => $pay_log['data']['log_no'],
|
'order_no' => $pay_log['data']['log_no'],
|
||||||
'name' => '订单支付',
|
'name' => '订单支付',
|
||||||
|
|
|
||||||
|
|
@ -70,9 +70,10 @@ class ResourcesService
|
||||||
* @version 1.0.0
|
* @version 1.0.0
|
||||||
* @date 2018-12-12
|
* @date 2018-12-12
|
||||||
* @desc description
|
* @desc description
|
||||||
* @param [string|array] $value [附件路径地址]
|
* @param [string|array] $value [附件路径地址]
|
||||||
|
* @param [string] $field [url字段名称]
|
||||||
*/
|
*/
|
||||||
public static function AttachmentPathHandle($value)
|
public static function AttachmentPathHandle($value, $field = 'url')
|
||||||
{
|
{
|
||||||
// 配置文件附件url地址
|
// 配置文件附件url地址
|
||||||
$attachment_host = SystemBaseService::AttachmentHost();
|
$attachment_host = SystemBaseService::AttachmentHost();
|
||||||
|
|
@ -92,10 +93,10 @@ class ResourcesService
|
||||||
{
|
{
|
||||||
foreach($value as &$v)
|
foreach($value as &$v)
|
||||||
{
|
{
|
||||||
// 是否二级url
|
// 是否二级
|
||||||
if(isset($v['url']))
|
if(isset($v[$field]))
|
||||||
{
|
{
|
||||||
$v['url'] = empty($v['url']) ? '' : str_replace($search, DS, $v['url']);
|
$v[$field] = empty($v[$field]) ? '' : str_replace($search, DS, $v[$field]);
|
||||||
} else {
|
} else {
|
||||||
$v = empty($v) ? '' : str_replace($search, DS, $v);
|
$v = empty($v) ? '' : str_replace($search, DS, $v);
|
||||||
}
|
}
|
||||||
|
|
@ -137,9 +138,10 @@ class ResourcesService
|
||||||
* @blog http://gong.gg/
|
* @blog http://gong.gg/
|
||||||
* @version 1.0.0
|
* @version 1.0.0
|
||||||
* @datetime 2019-01-13T15:13:30+0800
|
* @datetime 2019-01-13T15:13:30+0800
|
||||||
* @param [string|array] $value [附件地址]
|
* @param [string|array] $value [附件地址]
|
||||||
|
* @param [string] $field [url字段名称]
|
||||||
*/
|
*/
|
||||||
public static function AttachmentPathViewHandle($value)
|
public static function AttachmentPathViewHandle($value, $field = 'url')
|
||||||
{
|
{
|
||||||
if(!empty($value))
|
if(!empty($value))
|
||||||
{
|
{
|
||||||
|
|
@ -151,12 +153,12 @@ class ResourcesService
|
||||||
{
|
{
|
||||||
foreach($value as &$v)
|
foreach($value as &$v)
|
||||||
{
|
{
|
||||||
// 是否二级url
|
// 是否二级
|
||||||
if(isset($v['url']))
|
if(isset($v[$field]))
|
||||||
{
|
{
|
||||||
if(substr($v['url'], 0, 4) != 'http')
|
if(substr($v[$field], 0, 4) != 'http')
|
||||||
{
|
{
|
||||||
$v['url'] = $host.$v['url'];
|
$v[$field] = $host.$v[$field];
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if(substr($v, 0, 4) != 'http')
|
if(substr($v, 0, 4) != 'http')
|
||||||
|
|
@ -778,5 +780,21 @@ class ResourcesService
|
||||||
|
|
||||||
return empty($uid) ? '' : md5($uid);
|
return empty($uid) ? '' : md5($uid);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取表结构
|
||||||
|
* @author Devil
|
||||||
|
* @blog http://gong.gg/
|
||||||
|
* @version 1.0.0
|
||||||
|
* @date 2022-11-12
|
||||||
|
* @desc description
|
||||||
|
* @param [string] $table [表名称、可以是大写字母会自动转为小写前面加下划线分隔]
|
||||||
|
*/
|
||||||
|
public static function TableStructureData($table)
|
||||||
|
{
|
||||||
|
$table_name = MyConfig('database.connections.mysql.prefix').strtolower(preg_replace('/\B([A-Z])/', '_$1', $table));
|
||||||
|
$res = Db::query('SELECT COLUMN_NAME AS field,COLUMN_COMMENT AS name FROM INFORMATION_SCHEMA.Columns WHERE `table_name`="'.$table_name.'"');
|
||||||
|
return empty($res) ? [] : array_column($res, 'name', 'field');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
|
|
@ -120,17 +120,20 @@ class SearchService
|
||||||
// 是否转ascii处理主键字段
|
// 是否转ascii处理主键字段
|
||||||
if($is_ascii && !empty($field) && isset($v[$field]))
|
if($is_ascii && !empty($field) && isset($v[$field]))
|
||||||
{
|
{
|
||||||
$v[$did] = StrToAscii(($v[$field]));
|
$v[$did] = StrToAscii($v[$field]);
|
||||||
}
|
}
|
||||||
if((isset($params[$pid]) && $params[$pid] == $v[$did]))
|
$temp_params = $params;
|
||||||
|
if(isset($v[$did]))
|
||||||
{
|
{
|
||||||
$temp_params = $params;
|
if(isset($params[$pid]) && $params[$pid] == $v[$did])
|
||||||
unset($temp_params[$pid]);
|
{
|
||||||
} else {
|
unset($temp_params[$pid]);
|
||||||
$temp_params = array_merge($params, [$pid=>$v[$did]]);
|
} else {
|
||||||
|
$temp_params = array_merge($params, [$pid=>$v[$did]]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
$v['url'] = MyUrl('index/search/index', $temp_params);
|
$v['url'] = MyUrl('index/search/index', $temp_params);
|
||||||
$v['is_active'] = (isset($params[$pid]) && $params[$pid] == $v[$did]) ? 1 : 0;
|
$v['is_active'] = (isset($params[$pid]) && isset($v[$did]) && $params[$pid] == $v[$did]) ? 1 : 0;
|
||||||
}
|
}
|
||||||
return $data;
|
return $data;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -94,8 +94,8 @@ ul {margin-top:0;}
|
||||||
.admin-sidebar-list li a .nav-name {line-height: 14px;width: calc(100% - 50px);}
|
.admin-sidebar-list li a .nav-name {line-height: 14px;width: calc(100% - 50px);}
|
||||||
.admin-sidebar-sub {margin-top:0;margin-bottom:0;box-shadow:0 16px 8px -15px #e2e2e2 inset;background:#646464;padding-left:10px;}
|
.admin-sidebar-sub {margin-top:0;margin-bottom:0;box-shadow:0 16px 8px -15px #e2e2e2 inset;background:#646464;padding-left:10px;}
|
||||||
.admin-sidebar-sub li:first-child {border-top:1px solid #dedede;}
|
.admin-sidebar-sub li:first-child {border-top:1px solid #dedede;}
|
||||||
.admin-sidebar-sub li { background: #404246 !important; border-color: #393b3e !important ; }
|
.admin-sidebar-sub li { background: #404246 !important; border-color: #393b3e !important; }
|
||||||
.admin-sidebar {height:100%;overflow-x:hidden;overflow-y:scroll;-webkit-overflow-scrolling:touch;}
|
.admin-sidebar {height:100%;overflow-x:hidden;overflow-y:scroll;-webkit-overflow-scrolling:touch;scrollbar-width: none;}
|
||||||
.admin-sidebar .am-icon-angle-down {margin-top: 2px;}
|
.admin-sidebar .am-icon-angle-down {margin-top: 2px;}
|
||||||
@media only screen and (min-width:641px) {
|
@media only screen and (min-width:641px) {
|
||||||
header { left: 160px; }
|
header { left: 160px; }
|
||||||
|
|
@ -116,7 +116,7 @@ ul {margin-top:0;}
|
||||||
.admin {width:100%;height:100%;display:flex;display:-webkit-flex;padding-top:33px;background:#fff;}
|
.admin {width:100%;height:100%;display:flex;display:-webkit-flex;padding-top:33px;background:#fff;}
|
||||||
.admin .am-g {padding-left:0;padding-right:0;}
|
.admin .am-g {padding-left:0;padding-right:0;}
|
||||||
/*---right Content---*/
|
/*---right Content---*/
|
||||||
.content-right .content {padding:10px 10px 0 10px;}
|
.content-right > .content {padding:10px 10px 0 10px;}
|
||||||
.admin-sidebar-list li a {padding:0.65rem;}
|
.admin-sidebar-list li a {padding:0.65rem;}
|
||||||
.common-left-menu a:hover { background:rgba(118, 119, 120, 0.45); }
|
.common-left-menu a:hover { background:rgba(118, 119, 120, 0.45); }
|
||||||
.common-left-menu-active {background:#1cc09f !important;color:#fff !important;}
|
.common-left-menu-active {background:#1cc09f !important;color:#fff !important;}
|
||||||
|
|
|
||||||
|
|
@ -70,6 +70,7 @@
|
||||||
margin-top: 4px;
|
margin-top: 4px;
|
||||||
margin-left: 20px;
|
margin-left: 20px;
|
||||||
height: 25px;
|
height: 25px;
|
||||||
|
scrollbar-width: none;
|
||||||
}
|
}
|
||||||
.header-menu-open-pages-list ul li {
|
.header-menu-open-pages-list ul li {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
|
|
|
||||||
|
|
@ -1607,31 +1607,37 @@ form.am-form-popup-fixed .am-form-popup-submit {
|
||||||
border-top: 1px solid #eee;
|
border-top: 1px solid #eee;
|
||||||
z-index: 2;
|
z-index: 2;
|
||||||
}
|
}
|
||||||
|
.am-popup.popup-not-title form.am-form-popup-fixed .am-form-popup-submit {
|
||||||
|
width: calc(100% - 50px);
|
||||||
|
margin-left: 25px;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 混合业务列表选择
|
* 混合业务列表选择
|
||||||
*/
|
*/
|
||||||
.business-item ul {
|
.business-list-nbfc {
|
||||||
padding: 5px;
|
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
.business-item ul li {
|
.business-list-nbfc ul {
|
||||||
border:1px solid transparent;
|
width: calc(100% + 1.8rem);
|
||||||
overflow: hidden;
|
margin-left: -0.9rem;
|
||||||
float: left;
|
margin-top: -0.9rem;
|
||||||
|
}
|
||||||
|
.business-list ul li .business-item {
|
||||||
|
border: 1px solid #ddd;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
padding: 5px;
|
background: #fff;
|
||||||
border: 1px solid #eee;
|
position: relative;
|
||||||
margin: 0 10px 10px 0;
|
|
||||||
border-radius: 2px;
|
|
||||||
}
|
}
|
||||||
.business-item ul li img {
|
.business-list ul li .business-item img {
|
||||||
width: 36px;
|
width: 16px;
|
||||||
height: 36px;
|
height: 15px;
|
||||||
|
}
|
||||||
|
.business-list ul li .business-item img,
|
||||||
|
.business-list ul li .business-item span {
|
||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
border-radius: 2px;
|
|
||||||
}
|
}
|
||||||
.business-item ul li .rotate {
|
.business-list ul li .business-item .rotate {
|
||||||
background-color: #d2364c;
|
background-color: #d2364c;
|
||||||
width: 22px;
|
width: 22px;
|
||||||
height: 70px;
|
height: 70px;
|
||||||
|
|
@ -1641,84 +1647,22 @@ form.am-form-popup-fixed .am-form-popup-submit {
|
||||||
bottom: -20px;
|
bottom: -20px;
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
.business-item ul li i.am-icon-check {
|
.business-list ul li .business-item i.am-icon-check {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
right: 1px;
|
right: 0;
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
color: #fff !important;
|
color: #fff !important;
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
.business-item ul li.selected .rotate,
|
.business-list ul li.selected .business-item .rotate,
|
||||||
.business-item ul li.selected i.am-icon-check {
|
.business-list ul li.selected .business-item i.am-icon-check {
|
||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
.business-item ul li:hover {
|
.business-list ul li.selected .business-item,
|
||||||
|
.business-list ul li .business-item:hover {
|
||||||
border: 1px solid #d2364c;
|
border: 1px solid #d2364c;
|
||||||
box-shadow: 0px 0 0px 1px #d2364c;
|
box-shadow: 0px 0 0px 1px #d2364c;
|
||||||
}
|
}
|
||||||
.business-item ul li.selected {
|
|
||||||
border-color: #d2364c;
|
|
||||||
position: relative;
|
|
||||||
box-shadow: 0px 0 0px 1px #d2364c;
|
|
||||||
}
|
|
||||||
@media only screen and (min-width:640px) {
|
|
||||||
.business-item ul li {
|
|
||||||
width:calc(33% - 5px);
|
|
||||||
}
|
|
||||||
.business-item ul li:nth-child(3n) {
|
|
||||||
margin-right: 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@media only screen and (max-width:640px) {
|
|
||||||
.business-item ul li {
|
|
||||||
width: calc(50% - 5px);
|
|
||||||
}
|
|
||||||
.business-item ul li:nth-child(2n) {
|
|
||||||
margin-right: 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 滚动条样式
|
|
||||||
*/
|
|
||||||
::-webkit-scrollbar {
|
|
||||||
width: 3px;
|
|
||||||
height: 6px;
|
|
||||||
}
|
|
||||||
::-webkit-scrollbar-button,
|
|
||||||
::-webkit-scrollbar-button:vertical {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
::-webkit-scrollbar-track,
|
|
||||||
::-webkit-scrollbar-track:vertical {
|
|
||||||
background-color: black;
|
|
||||||
}
|
|
||||||
::-webkit-scrollbar-track-piece {
|
|
||||||
background-color: #fafafa;
|
|
||||||
}
|
|
||||||
::-webkit-scrollbar-track-piece {
|
|
||||||
border-top: 1px solid rgba(0,0,0,.01);
|
|
||||||
}
|
|
||||||
::-webkit-scrollbar-thumb,
|
|
||||||
::-webkit-scrollbar-thumb:vertical {
|
|
||||||
margin-right: 10px;
|
|
||||||
background-color: #f0f0f0;
|
|
||||||
}
|
|
||||||
::-webkit-scrollbar-thumb:hover,
|
|
||||||
::-webkit-scrollbar-thumb:vertical:hover {
|
|
||||||
background-color: #a9a9a9;
|
|
||||||
}
|
|
||||||
::-webkit-scrollbar-corner,
|
|
||||||
::-webkit-scrollbar-corner:vertical {
|
|
||||||
background-color: #e5e5e5;
|
|
||||||
}
|
|
||||||
::-webkit-scrollbar-resizer,
|
|
||||||
::-webkit-scrollbar-resizer:vertical {
|
|
||||||
background-color: #ff6e00;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 输入框、选择框数据清除
|
* 输入框、选择框数据清除
|
||||||
|
|
@ -1774,4 +1718,51 @@ a.input-clearout-submit:focus > i {
|
||||||
.chosen-container-single > .chosen-single.input-clearout-element > .chosen-single-icon,
|
.chosen-container-single > .chosen-single.input-clearout-element > .chosen-single-icon,
|
||||||
.am-selected > .am-selected-btn.input-clearout-element > .am-selected-icon {
|
.am-selected > .am-selected-btn.input-clearout-element > .am-selected-icon {
|
||||||
display: none;
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 滚动条样式
|
||||||
|
*/
|
||||||
|
::-webkit-scrollbar {
|
||||||
|
width: 3px;
|
||||||
|
height: 6px;
|
||||||
|
}
|
||||||
|
::-webkit-scrollbar-button,
|
||||||
|
::-webkit-scrollbar-button:vertical {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
::-webkit-scrollbar-track,
|
||||||
|
::-webkit-scrollbar-track:vertical {
|
||||||
|
background-color: black;
|
||||||
|
}
|
||||||
|
::-webkit-scrollbar-track-piece {
|
||||||
|
background-color: #fafafa;
|
||||||
|
}
|
||||||
|
::-webkit-scrollbar-track-piece {
|
||||||
|
border-top: 1px solid rgba(0,0,0,.01);
|
||||||
|
}
|
||||||
|
::-webkit-scrollbar-thumb,
|
||||||
|
::-webkit-scrollbar-thumb:vertical {
|
||||||
|
margin-right: 10px;
|
||||||
|
background-color: #f0f0f0;
|
||||||
|
}
|
||||||
|
::-webkit-scrollbar-thumb:hover,
|
||||||
|
::-webkit-scrollbar-thumb:vertical:hover {
|
||||||
|
background-color: #a9a9a9;
|
||||||
|
}
|
||||||
|
::-webkit-scrollbar-corner,
|
||||||
|
::-webkit-scrollbar-corner:vertical {
|
||||||
|
background-color: #e5e5e5;
|
||||||
|
}
|
||||||
|
::-webkit-scrollbar-resizer,
|
||||||
|
::-webkit-scrollbar-resizer:vertical {
|
||||||
|
background-color: #ff6e00;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 滚动条样式 - 火狐浏览器、使用更窄的样式
|
||||||
|
*/
|
||||||
|
* {
|
||||||
|
scrollbar-width: thin;
|
||||||
}
|
}
|
||||||
|
|
@ -627,12 +627,13 @@ function FormDataFill(json, tag)
|
||||||
$form = $(tag);
|
$form = $(tag);
|
||||||
for(var i in json)
|
for(var i in json)
|
||||||
{
|
{
|
||||||
$form.find('input[type="hidden"][name="'+i+'"], input[type="text"][name="'+i+'"], input[type="password"][name="'+i+'"], input[type="email"][name="'+i+'"], input[type="number"][name="'+i+'"], input[type="date"][name="'+i+'"], textarea[name="'+i+'"], select[name="'+i+'"], input[type="url"][name="'+i+'"]').val(json[i]);
|
$form.find('input[type="hidden"][name="'+i+'"], input[type="text"][name="'+i+'"], input[type="password"][name="'+i+'"], input[type="email"][name="'+i+'"], input[type="number"][name="'+i+'"], input[type="date"][name="'+i+'"], textarea[name="'+i+'"], select[name="'+i+'"], input[type="url"][name="'+i+'"]').val(json[i]).trigger('change');
|
||||||
|
|
||||||
// input radio
|
// input radio
|
||||||
$form.find('input[type="radio"][name="'+i+'"]').each(function(k, v)
|
$form.find('input[type="radio"][name="'+i+'"]').each(function(k, v)
|
||||||
{
|
{
|
||||||
this.checked = (json[i] == $(this).val());
|
this.checked = (json[i] == $(this).val());
|
||||||
|
$(this).trigger('change');
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -652,6 +653,7 @@ function FormDataFill(json, tag)
|
||||||
var name = $(this).find('input').attr('name') || null;
|
var name = $(this).find('input').attr('name') || null;
|
||||||
var state = (name == null || (json[name] || 0) == 0) ? false : true;
|
var state = (name == null || (json[name] || 0) == 0) ? false : true;
|
||||||
$(this).find('input').bootstrapSwitch('state', state);
|
$(this).find('input').bootstrapSwitch('state', state);
|
||||||
|
$(this).find('input').trigger('change');
|
||||||
});
|
});
|
||||||
|
|
||||||
// 多选插件事件更新
|
// 多选插件事件更新
|
||||||
|
|
@ -3982,16 +3984,30 @@ $(function()
|
||||||
});
|
});
|
||||||
|
|
||||||
// 混合业务列表选择
|
// 混合业务列表选择
|
||||||
$(document).on('click', '.business-item ul li', function()
|
$(document).on('click', '.business-list ul li', function()
|
||||||
{
|
{
|
||||||
var $form = $(this).parents('form');
|
var $business = ($(this).parents('form').length == 1) ? $(this).parents('form') : $(this).parents('.business-list');
|
||||||
var $parent = $(this).parent();
|
var $parent = $(this).parent();
|
||||||
|
var type = $parent.data('type');
|
||||||
|
var $input = $business.find('input[name='+type+']').length == 0 ? $business.find('input[name='+type+'_id]') : $business.find('input[name='+type+']');
|
||||||
|
var value = $input.val();
|
||||||
if($(this).hasClass('selected'))
|
if($(this).hasClass('selected'))
|
||||||
{
|
{
|
||||||
$form.find('input[name='+$parent.data('type')+'_id]').val(0);
|
if(parseInt($parent.data('is-required') || 0) == 0)
|
||||||
$(this).removeClass('selected');
|
{
|
||||||
|
$input.val('');
|
||||||
|
if(value != '')
|
||||||
|
{
|
||||||
|
$input.trigger('change');
|
||||||
|
}
|
||||||
|
$(this).removeClass('selected');
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
$form.find('input[name='+$parent.data('type')+'_id]').val($(this).data('value'));
|
$input.val($(this).data('value'));
|
||||||
|
if(value != $(this).data('value'))
|
||||||
|
{
|
||||||
|
$input.trigger('change');
|
||||||
|
}
|
||||||
$(this).addClass('selected').siblings('li').removeClass('selected');
|
$(this).addClass('selected').siblings('li').removeClass('selected');
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
@ -4006,6 +4022,11 @@ $(function()
|
||||||
{
|
{
|
||||||
InputClearOutHandle($(this));
|
InputClearOutHandle($(this));
|
||||||
});
|
});
|
||||||
|
// 输入数据框添加清除按钮 - 获取焦点事件
|
||||||
|
$(document).on('focus', 'select, textarea, input[type="text"], input[type="password"], input[type="datetime"], input[type="datetime-local"], input[type="date"], input[type="month"], input[type="time"], input[type="week"], input[type="number"], input[type="email"], input[type="url"], input[type="search"], input[type="tel"], input[type="color"]', function()
|
||||||
|
{
|
||||||
|
InputClearOutHandle($(this));
|
||||||
|
});
|
||||||
// 下拉选择组件
|
// 下拉选择组件
|
||||||
$(document).on('mouseenter', '.chosen-container .chosen-single, .am-selected .am-selected-btn', function()
|
$(document).on('mouseenter', '.chosen-container .chosen-single, .am-selected .am-selected-btn', function()
|
||||||
{
|
{
|
||||||
|
|
@ -4031,7 +4052,7 @@ $(function()
|
||||||
// 文本框则清空数据
|
// 文本框则清空数据
|
||||||
if($(this).prev().is('input') || $(this).prev().is('textarea'))
|
if($(this).prev().is('input') || $(this).prev().is('textarea'))
|
||||||
{
|
{
|
||||||
$(this).prev().val('');
|
$(this).prev().val('').trigger('change');
|
||||||
}
|
}
|
||||||
// 插件下拉选择组件
|
// 插件下拉选择组件
|
||||||
if($(this).parents('.chosen-container').length > 0)
|
if($(this).parents('.chosen-container').length > 0)
|
||||||
|
|
@ -4054,6 +4075,17 @@ $(function()
|
||||||
// 删除清除按钮
|
// 删除清除按钮
|
||||||
$(this).remove();
|
$(this).remove();
|
||||||
});
|
});
|
||||||
|
// 页面滚动则移除input删除按钮
|
||||||
|
$(window).on('scroll', function()
|
||||||
|
{
|
||||||
|
$('*').removeClass('input-clearout-element');
|
||||||
|
$('.input-clearout-submit').remove();
|
||||||
|
});
|
||||||
|
$('*').on('scroll', function()
|
||||||
|
{
|
||||||
|
$('*').removeClass('input-clearout-element');
|
||||||
|
$('.input-clearout-submit').remove();
|
||||||
|
});
|
||||||
|
|
||||||
// 下拉组件输入框快捷添加则不触发失去焦点事件
|
// 下拉组件输入框快捷添加则不触发失去焦点事件
|
||||||
$(document).on('blur', '.chosen-container > .chosen-drop > .chosen-search > input', function()
|
$(document).on('blur', '.chosen-container > .chosen-drop > .chosen-search > input', function()
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -11644,9 +11644,9 @@ return /******/ (function(modules) { // webpackBootstrap
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (i == l) {
|
if (i == l) {
|
||||||
qrCodeAlg = new QRCodeAlg(this.options.text, this.options.correctLevel);
|
qrCodeAlg = new QRCodeAlg(this.options.text.toString(), this.options.correctLevel);
|
||||||
qrcodeAlgObjCache.push({
|
qrcodeAlgObjCache.push({
|
||||||
text: this.options.text,
|
text: this.options.text.toString(),
|
||||||
correctLevel: this.options.correctLevel,
|
correctLevel: this.options.correctLevel,
|
||||||
obj: qrCodeAlg
|
obj: qrCodeAlg
|
||||||
});
|
});
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -62,14 +62,14 @@ $(function()
|
||||||
});
|
});
|
||||||
|
|
||||||
// 混合列表选择
|
// 混合列表选择
|
||||||
$('.business-item ul li').on('click', function()
|
$('.business-list ul li').on('click', function()
|
||||||
{
|
{
|
||||||
var $parent = $(this).parents('.business-item');
|
var $parent = $(this).parents('.business-list');
|
||||||
var field = $parent.data('field') || null;
|
var field = $parent.data('field') || null;
|
||||||
var value = $(this).data('value') || null;
|
var value = $(this).data('value') || null;
|
||||||
if(field != null && value != null)
|
if(field != null && value != null)
|
||||||
{
|
{
|
||||||
var anchor = $parent.attr('id') || '';
|
var anchor = $parent.attr('id') || $(this).parents('.buy-items').attr('id') || '';
|
||||||
window.location.href = UrlFieldReplace(field, value, null, anchor);
|
window.location.href = UrlFieldReplace(field, value, null, anchor);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue