mirror of
https://gitee.com/ShopeX/OMS
synced 2026-04-21 04:15:30 +08:00
1. 【新增】售后单售后原因类型支持搜索
2. 【新增】手工创建订单折扣可输入正数 3. 【优化】盘点申请单确认 4. 【修复】采购退货单模拟出库失败问题 5. 【新增】订单金额客户实付与结算金额 6. 【优化】仓库发货统计报表物料名称显示 7. 【优化】自有仓储虚拟发货逻辑 8. 【修复】基础物料分类管理问题
This commit is contained in:
@@ -108,4 +108,4 @@ window.addEvent('domready', function(){
|
||||
<{button type="submit" label=$___desktop="导出"|t:'desktop' app="desktop" icon="btn_get_world.gif"}>
|
||||
<{toinput from=$env.post}>
|
||||
</div></div>
|
||||
</form>
|
||||
</form>
|
||||
|
||||
@@ -13,19 +13,36 @@
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
|
||||
<div style="margin:5px 0;">
|
||||
<{foreach from=$temps item=item name="_s"}>
|
||||
<input type="radio" name="extemp_id" class="extemp_id" vtype="requiredradio" value="<{$item.et_id}>" <{if $smarty.foreach._s.first}>checked="checked"<{/if}> /><label><{$item.et_name}></label>
|
||||
<input type="radio" name="extemp_id" class="extemp_id" vtype="requiredradio" value="<{$item.et_id}>" <{if $smarty.foreach._s.first}>checked="checked"<{/if}> />
|
||||
<label style="display:inline;margin-left:3px;"><{$item.et_name}></label>
|
||||
<a href="javascript:void(0);" class="delete-temp-btn" data-et-id="<{$item.et_id}>" title="删除此模板" style="margin-left:5px;display:inline-block;"><{img src="bundle/delete.gif" app="desktop" class="pointer btn-delete-item"}></a>
|
||||
<{/foreach}>
|
||||
</div>
|
||||
<div id="expmbdetail">
|
||||
</div>
|
||||
<script>
|
||||
// 获取 type 参数
|
||||
var exportType = '<{$type}>' || '<{$smarty.get.type}>';
|
||||
if(!exportType){
|
||||
// 如果模板变量中没有,尝试从 URL 中获取
|
||||
var urlParams = window.location.search.substring(1).split('&');
|
||||
for(var i = 0; i < urlParams.length; i++){
|
||||
var param = urlParams[i].split('=');
|
||||
if(param[0] == 'type'){
|
||||
exportType = decodeURIComponent(param[1]);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$ES('.extemp_id').each(function(e){
|
||||
if(e.checked){
|
||||
var extemp_id = e.value;
|
||||
new Request.HTML({
|
||||
update:'expmbdetail',
|
||||
url:'index.php?index.php?app=desktop&ctl=export&act=getTempDetail&tp_id='+extemp_id,
|
||||
url:'index.php?app=desktop&ctl=export&act=getTempDetail&tp_id='+extemp_id,
|
||||
}).send();
|
||||
}
|
||||
|
||||
@@ -33,8 +50,68 @@
|
||||
var extemp_id = this.value;
|
||||
new Request.HTML({
|
||||
update:'expmbdetail',
|
||||
url:'index.php?index.php?app=desktop&ctl=export&act=getTempDetail&tp_id='+extemp_id,
|
||||
url:'index.php?app=desktop&ctl=export&act=getTempDetail&tp_id='+extemp_id,
|
||||
}).send();
|
||||
})
|
||||
});
|
||||
</script>
|
||||
|
||||
// 删除模板功能
|
||||
if($ES('.delete-temp-btn')){
|
||||
$ES('.delete-temp-btn').each(function(btn){
|
||||
btn.addEvent('click', function(e){
|
||||
e.stop();
|
||||
if(!confirm('确定要删除该模板吗?')){
|
||||
return;
|
||||
}
|
||||
|
||||
var et_id = this.get('data-et-id');
|
||||
var _this = this;
|
||||
|
||||
new Request({
|
||||
url: 'index.php?app=desktop&ctl=export&act=deleteTemp',
|
||||
method: 'post',
|
||||
data: {
|
||||
et_id: et_id
|
||||
},
|
||||
onComplete: function(response){
|
||||
try{
|
||||
var result = JSON.decode(response);
|
||||
// 检查删除是否成功:splash() 方法返回格式为 {success: "...", redirect: "...", splash: true}
|
||||
if(result.success || result.splash === true || result.rsp == 'succ'){
|
||||
// 删除成功,刷新模板列表
|
||||
if(exportType){
|
||||
var url = 'index.php?app=desktop&ctl=export&act=getTemps&type=' + exportType;
|
||||
// 查找父容器 expmbnormal(当前内容被加载到这个容器中)
|
||||
var parentContainer = $('expmbnormal');
|
||||
if(parentContainer){
|
||||
new Request.HTML({
|
||||
update: parentContainer,
|
||||
url: url,
|
||||
onComplete: function(){
|
||||
// 清空详情区域
|
||||
if($('expmbdetail')){
|
||||
$('expmbdetail').set('html', '');
|
||||
}
|
||||
}
|
||||
}).send();
|
||||
} else {
|
||||
// 如果找不到父容器,刷新当前页面
|
||||
location.reload();
|
||||
}
|
||||
} else {
|
||||
location.reload();
|
||||
}
|
||||
} else {
|
||||
// 失败情况:可能有 error 字段或 msg 字段
|
||||
var errorMsg = result.error || result.msg || result.message || '删除失败';
|
||||
alert(errorMsg);
|
||||
}
|
||||
} catch(e){
|
||||
alert('删除失败:' + e.message);
|
||||
}
|
||||
}
|
||||
}).send();
|
||||
});
|
||||
});
|
||||
}
|
||||
</script>
|
||||
|
||||
@@ -41,20 +41,52 @@
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
$$('#finder-header-<{$name}> .col-select-opt').addEvents({
|
||||
'click':function(e){
|
||||
if(e.target.match('input'))return;
|
||||
var menu = this.retrieve('dropmenu',this.getElement('.x-drop-menu'));
|
||||
menu.setStyles({
|
||||
top:(this.getPosition('workground').y+this.offsetHeight.toInt()),
|
||||
left:this.getPosition('workground').x
|
||||
});
|
||||
menu.style.display= (menu.style.display=="block"?'none':'block');
|
||||
},
|
||||
'mouseleave':function(){
|
||||
this.retrieve('dropmenu',this.getElement('.x-drop-menu')).hide();
|
||||
(function(){
|
||||
var trigger = $$('#finder-header-<{$name}> .col-select-opt')[0];
|
||||
if(!trigger) return;
|
||||
var menu = trigger.getElement('.x-drop-menu');
|
||||
if(!menu) return;
|
||||
trigger.store('dropmenu', menu);
|
||||
// 显示时注入到 body,避免被 finder-header-wrapper 的 overflow:hidden 裁剪
|
||||
function showMenu(){
|
||||
if(menu.getParent() !== document.body){
|
||||
menu.inject(document.body);
|
||||
}
|
||||
var top, left;
|
||||
if(trigger.getBoundingClientRect){
|
||||
var rect = trigger.getBoundingClientRect();
|
||||
top = (rect.bottom != null ? rect.bottom : rect.top + trigger.offsetHeight);
|
||||
left = (rect.left != null ? rect.left : rect.x);
|
||||
} else {
|
||||
var scroll = window.getScroll();
|
||||
var pos = trigger.getPosition();
|
||||
top = pos.y + trigger.offsetHeight - scroll.y;
|
||||
left = pos.x - scroll.x;
|
||||
}
|
||||
menu.setStyle('position', 'fixed');
|
||||
menu.setStyles({ top: top + 'px', left: left + 'px', zIndex: 9999 });
|
||||
menu.style.display = 'block';
|
||||
}
|
||||
});
|
||||
function hideMenu(){ menu.style.display = 'none'; }
|
||||
function bindDocClose(){
|
||||
var docClick = function(e){
|
||||
var t = e.target;
|
||||
if(trigger.contains(t)) return;
|
||||
hideMenu();
|
||||
document.removeEvent('click', docClick);
|
||||
};
|
||||
setTimeout(function(){ document.addEvent('click', docClick); }, 0);
|
||||
}
|
||||
trigger.addEvent('click', function(e){
|
||||
if(e.target && e.target.match && e.target.match('input')) return;
|
||||
if(menu.style.display === 'block'){
|
||||
hideMenu();
|
||||
return;
|
||||
}
|
||||
showMenu();
|
||||
bindDocClose();
|
||||
});
|
||||
})();
|
||||
</script>
|
||||
<{/if}>
|
||||
</td>
|
||||
|
||||
Reference in New Issue
Block a user