弹窗支持拖动和双击全屏缩小

feat/task1-c-wallet
gongfuxiang 2023-02-14 13:19:56 +08:00
parent 5f3af2a6bd
commit 3e628aced0
9 changed files with 107 additions and 28 deletions

View File

@ -404,6 +404,7 @@ return [
'warehouse_choice_tips' => 'Please select a warehouse',
],
// 基础
'add_goods_title' => 'Goods Add',
'no_spec_data_tips' => 'No specification data',
'batch_setup_inventory_placeholder' => 'Batch set value',
'base_spec_inventory_title' => 'Specification Inventory',

View File

@ -403,6 +403,7 @@ return [
'warehouse_choice_tips' => '请选择仓库',
],
// 基础
'add_goods_title' => '商品添加',
'no_spec_data_tips' => '无规格数据',
'batch_setup_inventory_placeholder' => '批量设置的值',
'base_spec_inventory_title' => '规格库存',

View File

@ -21,19 +21,19 @@
<!-- form start -->
<form class="am-form form-validation am-form-popup-fixed" action="{{:MyUrl('admin/link/Save')}}" method="POST" request-type="ajax-reload" request-value="">
<div class="am-form-group">
<label>{{:MyLang('link.form_item_name')}}<span class="am-form-group-label-tips-must">*</span></label>
<input type="text" placeholder="{{:MyLang('link.form_item_name_message')}}" name="name" minlength="2" maxlength="16" data-validation-message="{{:MyLang('link.form_item_name_message')}}" class="am-radius" required />
<label>{{:MyLang('common_service.link.form_item_name')}}<span class="am-form-group-label-tips-must">*</span></label>
<input type="text" placeholder="{{:MyLang('common_service.link.form_item_name_message')}}" name="name" minlength="2" maxlength="16" data-validation-message="{{:MyLang('common_service.link.form_item_name_message')}}" class="am-radius" required />
</div>
<div class="am-form-group">
<label>{{:MyLang('link.form_item_url')}}<span class="am-form-group-label-tips-must">*</span></label>
<input type="url" placeholder="{{:MyLang('link.form_item_url_placeholder')}}" name="url" data-validation-message="{{:MyLang('link.form_item_url_message')}}" class="am-radius" required />
<label>{{:MyLang('common_service.link.form_item_url')}}<span class="am-form-group-label-tips-must">*</span></label>
<input type="url" placeholder="{{:MyLang('common_service.link.form_item_url_placeholder')}}" name="url" data-validation-message="{{:MyLang('common_service.link.form_item_url_message')}}" class="am-radius" required />
</div>
{{include file="lib/sort" /}}
{{include file="lib/is_new_window_open" /}}
{{include file="lib/is_enable" /}}
<div class="am-form-group am-form-success">
<label>{{:MyLang('link.form_item_desc')}}</label>
<textarea rows="3" maxlength="60" name="describe" class="am-radius" placeholder="{{:MyLang('link.form_item_desc_message')}}" data-validation-message="{{:MyLang('link.form_item_desc_message')}}"></textarea>
<label>{{:MyLang('common_service.link.form_item_desc')}}</label>
<textarea rows="3" maxlength="60" name="describe" class="am-radius" placeholder="{{:MyLang('common_service.link.form_item_desc_message')}}" data-validation-message="{{:MyLang('common_service.link.form_item_desc_message')}}"></textarea>
</div>
<div class="am-form-popup-submit">
<input type="hidden" name="id" />

View File

@ -21,7 +21,7 @@
<div class="am-collapse am-topbar-collapse" id="topbar-collapse">
<ul class="am-nav am-nav-pills am-topbar-nav am-topbar-right admin-header-list tpl-header-list">
{{if !empty($multilingual_data) and !empty($multilingual_data['data']) and !empty($multilingual_data['default']) and is_array($multilingual_data['data']) and is_array($multilingual_data['default'])}}
<li class="am-dropdown common-nav-top" data-am-dropdown data-am-dropdown-toggle>
<li class="am-dropdown" data-am-dropdown data-am-dropdown-toggle>
<a class="am-dropdown-toggle" href="javascript:;">
<i class="am-icon-language"></i>
<span>{{:MyLang('lang_title')}}[{{$multilingual_data.default.name}}]</span>
@ -36,14 +36,14 @@
</li>
{{/if}}
<li>
<li class="am-dropdown">
<a href="{{$theme_color_url}}">
<i class="am-icon-adjust"></i>
<span>{{$theme_color_name}}</span>
</a>
</li>
{{if AdminIsPower('cache', 'statusupdate')}}
<li>
<li class="am-dropdown">
<a href="javascript:;" class="submit-ajax" data-url="{{:MyUrl('admin/cache/statusupdate')}}" data-is-confirm="0" data-is-loading="1">
<i class="am-icon-paint-brush"></i>
<span>{{:MyLang('common.remove_cache_title')}}</span>
@ -51,21 +51,21 @@
</li>
{{/if}}
<li class="am-dropdown am-hide-sm-only">
<li class="am-dropdown">
<a href="javascript:;" class="fullscreen-event" data-fulltext-open="{{:MyLang('fullscreen_open_title')}}" data-fulltext-exit="{{:MyLang('fullscreen_exit_title')}}">
<i class="am-icon-arrows-alt"></i>
<span class="fullscreen-text">{{:MyLang('fullscreen_open_title')}}</span>
</a>
</li>
<li>
<li class="am-dropdown">
<a href="{{$home_url}}" target="_blank">
<i class="am-icon-home"></i>
<span>{{:MyLang('shop_home_title')}}</span>
</a>
</li>
<li class="am-dropdown common-nav-top" data-am-dropdown data-am-dropdown-toggle>
<li class="am-dropdown" data-am-dropdown data-am-dropdown-toggle>
<a class="am-dropdown-toggle" href="javascript:;">
<i class="am-icon-user"></i>
<span class="tpl-header-list-user-nick">{{$admin.username}}</span>

View File

@ -11,7 +11,7 @@
<!-- 公共代码 -->
{{block name="form_page_bottom"}}
<!-- 商品添加弹窗 -->
<div class="am-popup" id="warehouse-goods-popup">
<div class="am-popup am-radius" id="warehouse-goods-popup">
<div class="am-popup-inner">
<div class="am-popup-hd">
<h4 class="am-popup-title">{{:MyLang('warehousegoods.add_goods_title')}}</h4>
@ -25,8 +25,8 @@
<select class="am-radius chosen-select forth-selection-form-warehouse" data-placeholder="{{:MyLang('common_service.warehousegoods.form_item_warehouseg_placeholder')}}" data-validation-message="{{:MyLang('common_service.warehousegoods.form_item_warehouseg_message')}}">
<option value="">{{:MyLang('common_service.warehousegoods.form_item_warehouseg_placeholder')}}</option>
{{if !empty($warehouse_list)}}
{{foreach $warehouse_list as $v}}
<option value="{{$v.id}}">{{$v.name}}</option>
{{foreach $warehouse_list as $k=>$v}}
<option value="{{$v.id}}" {{if $k eq 0}}selected{{/if}}>{{$v.name}}</option>
{{/foreach}}
{{/if}}
</select>

View File

@ -2320,6 +2320,7 @@ return [
'page' => [
'each_page_name' => '每页',
'page_unit' => '条',
'jump_to_text' => '跳转到',
'data_total' => '共 {:total} 条数据',
'page_total' => '共 {:total} 页',
],

View File

@ -116,14 +116,14 @@ $(function()
});
});
// 弹窗全屏
$('#warehouse-goods-popup').on('click', '.am-popup-hd .am-full', function()
//弹窗全屏处理
function WarehouseGoodsPopupWinHandle(e)
{
var width = $(window).width();
var height = $(window).height();
if(width >= 630 && height >= 630)
{
var $parent = $(this).parents('.am-popup');
var $parent = e.parents('.am-popup');
if($parent.hasClass('popup-full'))
{
$parent.find('.am-gallery').addClass('am-avg-lg-5').removeClass('am-avg-lg-8');
@ -131,5 +131,14 @@ $(function()
$parent.find('.am-gallery').addClass('am-avg-lg-8').removeClass('am-avg-lg-5');
}
}
}
// 弹窗全屏
$('#warehouse-goods-popup').on('click', '.am-popup-hd .am-full', function()
{
WarehouseGoodsPopupWinHandle($(this));
});
$('#warehouse-goods-popup').on('dblclick', '.am-popup-hd', function()
{
WarehouseGoodsPopupWinHandle($(this));
});
});

View File

@ -2180,13 +2180,17 @@ function FormTableContainerOperateGridMoreListInit(e)
$parent.removeClass('am-active');
$parent.find('.am-dropdown-content').remove();
} else {
if(length > 1)
if(length > 0)
{
var width = ((length-1)*10)+30;
// 隐藏的元素无法获取宽度,使用一个浮动元素临时存放按钮获取宽度
var key = 'temp-operate-more-item-width-container';
$('body').append('<div class="'+key+'" style="position:fixed;left:-9999999999px;bottom:-9999999999px;"></div>');
var width = (length*10)+20;
$parent.find('.am-dropdown-content .am-badge').each(function(k, v)
{
width += e.outerWidth();
width += $('.'+key).html($(this).prop('outerHTML')).outerWidth(true);
});
$('.'+key).remove();
$parent.find('.am-dropdown-content').css('width', width+'px');
}
$parent.addClass('am-dropdown-flip');
@ -2957,6 +2961,28 @@ function ViewQrCodeInit()
});
}
/**
* 弹窗放大缩小处理
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2023-02-14
* @desc description
* @param {[object]} e [弹窗头对象]
*/
function PopupWindowSizeHandle(e)
{
var $parent = e.parents('.am-popup');
if($parent.hasClass('popup-full'))
{
$parent.removeClass('popup-full').css({left: $parent.attr('data-original-left') || 0, top: $parent.attr('data-original-top') || 0});
} else {
$parent.attr('data-original-left', $parent.css('left'));
$parent.attr('data-original-top', $parent.css('top'));
$parent.addClass('popup-full').css({left: 0, top: 0});
}
}
// 公共数据操作
$(function()
@ -4148,14 +4174,54 @@ $(function()
// 弹窗全屏
$(document).on('click', '.am-popup-hd .am-full', function()
{
var $parent = $(this).parents('.am-popup');
if($parent.hasClass('popup-full'))
{
$parent.removeClass('popup-full');
} else {
$parent.addClass('popup-full');
}
PopupWindowSizeHandle($(this));
});
// 弹窗双击全屏及缩小
$(document).on('dblclick', '.am-popup-hd', function()
{
PopupWindowSizeHandle($(this));
});
// 弹窗拖拽
$(document).on('mousedown', '.am-popup .am-popup-hd', function(event)
{
var is_move = true;
var $popup = $(this).parents('.am-popup');
var width = $popup.width();
var win_width = $(window).width();
var win_height = $(window).height();
var abs_x = event.pageX - $popup.offset().left;
var abs_y = event.pageY - $popup.offset().top;
$(document).mousemove(function(event)
{
if(is_move)
{
var left = event.pageX - abs_x;
var left_max = (0-width);
if(left < left_max)
{
left = left_max+20;
}
if(left > win_width)
{
left = win_width-20;
}
var top = event.pageY - abs_y;
if(top < 0)
{
top = 0;
}
if(top > win_height)
{
top = win_height-20;
}
$popup.css({'left':left, 'top':top, 'margin': 0});
};
}).mouseup(function(event)
{
is_move = false;
});
});
// 关闭窗口
$(document).on('click', '.window-close-event', function()

View File

@ -8308,6 +8308,7 @@ TODO:
height: 43px;
border-bottom: 1px solid rgba(0,0,0,.03);
background-color: #fff;
cursor: move;
}
.am-popup-hd .am-popup-title {
font-size: 1.8rem;