方法1:此方法適用於Extjs按鈕handler處理,一般在最前面說明
function changeMsgBoxFocus(buttonIdx) { function exmyth() { Ext.MessageBox.getDialog().buttons[buttonIdx].focus(); } exmyth.defer(100, this); } Ext.MessageBox.getDialog().addListener('show', changeMsgBoxFocus.createCallback(2));
Ext.MessageBox.buttonText.yes = 'Remove'; Ext.MessageBox.buttonText.no = 'Do nothing'; Ext.MessageBox.getDialog().on( { show: function() { Ext.MessageBox.getDialog().buttons[2].focus(); }, single:true //,delay:50 // maybe needed }); Ext.MessageBox.show( { title : 'Please confirm', msg : 'Do your really want to delete node \'' + this.curNode.text + '\'?', buttons : Ext.MessageBox.YESNO, fn : this.removeNodeConfirmHandleMsgBox, scope: this, animEl : this.tree, icon : Ext.MessageBox.QUESTION });
方法2:此方法適用於頁面全局,一般在頁面return的init方法中指定
Ext.MessageBox.getDialog().defaultButton = 2;
附上我項目模塊的代碼
1.Smsd.widget.AddressGroupBtn.js
Ext.ns("Smsd.widget");
var mgrAddrGroupForm;
var mgrAddrGroupWin;
var type;
var groupTree;
var root;
var loader;
/**
* 管理組
* @author zhongmm
* @class Smsd.widget.AddressGroupBtn
* @extends Ext.Button
*/
Smsd.widget.AddressGroupBtn =Ext.extend(Ext.Button,{
text: "管理組",
width: 50,
back: function (){},
handler: function (btn) {
function changeMsgBoxFocus(buttonIdx){
function exmyth()
{
Ext.MessageBox.getDialog().buttons[buttonIdx].focus();
}
exmyth.defer(100, this);
}
Ext.MessageBox.getDialog().addListener('show', changeMsgBoxFocus.createCallback(2));
root = new Ext.tree.AsyncTreeNode(
{
// href : '',
// hrefTarget : '_blank',
// iconCls : "me-iconCls",
id : "0",
text : "個性化通訊錄",
leaf:false
});
loader = new Ext.tree.TreeLoader( {
dataUrl:Ext.sysd.getWithToken('/addressGroup/listAddressGroup.do'),
method : 'POST'
});
groupTree = new Ext.tree.TreePanel( {
id : 'groupId',
name : 'groupName',
root : root,
animate : false,
containerScroll : true,
autoScroll : true,
loader:loader,
width: 325,
height: 200,
line: true,
border : true
});
root.expand(false, true); //默認展開一級
var topBtn = new Ext.Toolbar({
autoHeight : true,
items : [{xtype : 'tbseparator'},
{text : '新增',iconCls : 'silk_page_add',handler :function(){mgrAddrGroup(0);}},
{xtype : 'tbseparator'},
{text : '編輯',iconCls : 'silk_page_edit',handler :function(){
var selNode = groupTree.getSelectionModel().getSelectedNode();
if(!selNode)
{
Ext.Msg.alert(Sysd.Msg.AlertTitle,"請選擇一條組信息!");
}
else if(selNode.id == groupTree.getRootNode().id)
{
Ext.Msg.alert(Sysd.Msg.AlertTitle,"無法編輯根節點!");
}
else
{
mgrAddrGroup(1);
Ext.getCmp("groupId").setValue(selNode.id);
Ext.getCmp("groupName").setValue(selNode.text);
}
}},
{xtype : 'tbseparator'},
{text : '刪除',iconCls : 'silk_page_delete', handler :function(){
var selNode = groupTree.getSelectionModel().getSelectedNode();
if(!selNode)
{
Ext.Msg.alert(Sysd.Msg.AlertTitle,"請選擇一條組信息!");
}
else if(selNode.id == groupTree.getRootNode().id)
{
Ext.Msg.alert(Sysd.Msg.AlertTitle,"無法刪除根節點!");
}
else
{
countAddressGroup(selNode.id);
}
}},
{xtype : 'tbseparator'},
{text : '返回',iconCls : 'silk_application_home',handler :function(){win.close();btn.back()}},
{xtype : 'tbseparator'},
'->',
new Ext.sysd.Helper({
moduleCode : '100600'
})
]
});
//組管理主窗口
var win=new Ext.Window({
tbar:topBtn,
title:'管理組',
width:340,
height:258,
closable:false,
layout:'column',
modal : true,
resizable:false,
// draggable:false,
closable:true,
items:[groupTree]});
win.show();
//數據檢驗
function confirmGroupName()
{
var groupName = Ext.getCmp("groupName").getValue();
if("" == groupName)
{
Ext.Msg.alert(Sysd.Msg.AlertTitle, "請輸入組名!");
return false;
}
else if(20 < groupName.length)
{
Ext.Msg.alert(Sysd.Msg.AlertTitle, "組名過長,不能大於20個字符,請重新輸入!");
return false;
}
return true;
}
//新增,編輯組信息,成功刷新組管理樹
function saveUpdateGroupName(type)
{
var groupId = Ext.getCmp("groupId").getValue();
var groupName = Ext.getCmp("groupName").getValue();
if(0 == type)
{
Ext.Ajax.request({
url : Ext.sysd.getWithToken('/addressGroup/saveAddressGroup.do'),
method : 'post',
params : {
groupName:groupName
},
success : function(response) {
Ext.Msg.alert(Sysd.Msg.AlertTitle, "保存成功!");
loader.load(root,function(){
root.expand(false, true);
});
Ext.getCmp("mgrAddrGroupWin").close();
},
failure : function(response) {
Ext.Msg.alert(Sysd.Msg.AlertTitle, "保存失敗!");
}
});
}
else if(1 == type)
{
Ext.Ajax.request({
url : Ext.sysd.getWithToken('/addressGroup/updateAddressGroup.do'),
method : 'post',
params : {
groupId : groupId,
groupName:groupName
},
success : function(response) {
Ext.Msg.alert(Sysd.Msg.AlertTitle, "編輯成功!");
loader.load(root,function(){
root.expand(false, true);
});
Ext.getCmp("mgrAddrGroupWin").close();
},
failure : function(response) {
Ext.Msg.alert(Sysd.Msg.AlertTitle, "編輯失敗!");
}
});
}
}
//新增,編輯組信息彈出窗口
function mgrAddrGroup(type)
{
mgrAddrGroupForm = new Ext.form.FormPanel({
width:200,
height:100,
frame:true,
labelWidth:50,
labelAlign:"right",
defaultType:"textfield",
items:[
{id:"groupId", name:"groupId",fieldLabel:"",hidden:true,hideLabel:true},
{id:"groupName", name:"groupName",fieldLabel:"組名",width:100,allowBlank:false}],
buttons:[{text:"確認",iconCls : 'silk_tick',handler:function(){
var groupName = Ext.getCmp("groupName").getValue();
var selNode = groupTree.getSelectionModel().getSelectedNode();
if(1 == type && groupName == selNode.text)
{
mgrAddrGroupWin.hide();
}
else
{
countAddressGroupByName(groupName,type);
}
}},{text:"取消",iconCls:'silk_cancel',handler:function(){
var groupName = Ext.getCmp("groupName").getValue();
var selNode = groupTree.getSelectionModel().getSelectedNode();
if(0 == type && "" != groupName)
{
//組名未保存,確定取消?
Ext.Msg.confirm(Sysd.Msg.AlertTitle,"是否確定要取消,取消將不保存數據?",function(btn)
{
if('yes' == btn)
{
mgrAddrGroupWin.hide();
return true;
}
else
{
return false;
}
});
}
else if(1 == type && "" != groupName && groupName != selNode.text)
{
//組名已修改,確定取消?
Ext.Msg.confirm(Sysd.Msg.AlertTitle,"是否確定要取消,取消將不保存數據?",function(btn)
{
if('yes' == btn)
{
mgrAddrGroupWin.hide();
return true;
}
else
{
return false;
}
});
}
else if(1 == type && groupName == selNode.text)
{
mgrAddrGroupWin.hide();
}
else
{
mgrAddrGroupWin.hide();
}
}}]
})
mgrAddrGroupWin = new Ext.Window(
{
id:"mgrAddrGroupWin",
title:0 == type?"新增組信息":"編輯組信息",
width:210,
height:150,
frame:true,
labelWidth:60,
labelAlign:"right",
defaultType:"textfield",
autoHeight: true,
resizable:false,
closable:false,
// draggable:false,
modal:true,
items:[mgrAddrGroupForm]
});
mgrAddrGroupWin.on("hide",function(){mgrAddrGroupWin.destroy()});
mgrAddrGroupWin.show();
}
//統計組中聯系人信息
function countAddressGroup(groupId)
{
Ext.Ajax.request
({
url : Ext.sysd.getWithToken('/addressGroup/countAddressGroup.do'),
method : 'post',
params :
{
groupId:groupId
},
failure : function(){
Ext.Msg.alert(Sysd.Msg.AlertTitle,"獲取數據失敗!");
return false;
},
success : function(response){
var count = Ext.decode(response.responseText);
if(count>0)
{
Ext.Msg.alert(Sysd.Msg.AlertTitle, "該組有聯系人信息,不能刪除!");
return false;
}
else
{
comfirmDelete();
return true;
}
}
});
return true;
}
//統計同名組數
function countAddressGroupByName(groupName,type)
{
Ext.Ajax.request
({
url : Ext.sysd.getWithToken('/addressGroup/countAddressGroupByName.do'),
method : 'post',
params :
{
groupName:groupName
},
failure : function(){
Ext.Msg.alert(Sysd.Msg.AlertTitle,"獲取數據失敗!");
return false;
},
success : function(response){
var count = Ext.decode(response.responseText);
if(count>0)
{
Ext.Msg.alert(Sysd.Msg.AlertTitle, "已經存在此組名,請重新輸入!");
return false;
}
else
{
if(confirmGroupName())
{
saveUpdateGroupName(type);
}
}
}
});
return true;
}
function comfirmDelete()
{
var selNode = groupTree.getSelectionModel().getSelectedNode();
Ext.Msg.confirm(Sysd.Msg.AlertTitle,"是否刪除該組信息?",function(btn)
{
if('yes' == btn)
{
deleteAddressGroup(selNode.id);
return true;
}
else
{
return false;
}
});
}
//刪除組信息
function deleteAddressGroup(groupId)
{
Ext.Ajax.request({
url : Ext.sysd.getWithToken('/addressGroup/deleteAddressGroup.do'),
method : 'post',
params : {
groupId:groupId
},
success : function(response) {
Ext.Msg.alert(Sysd.Msg.AlertTitle, "刪除成功!");
loader.load(root,function(){
root.expand(false, true);
});
},
failure : function(response) {
Ext.Msg.alert(Sysd.Msg.AlertTitle, "刪除成功!");
}
});
}
}
});
Ext.reg('addressGroupBtn', Smsd.widget.AddressGroupBtn);//管理組
2.sms.appSetup.js
Ext.ns("sms.appSetup");
var editLevelForm;
var gridDirect;
var formDirect;
var winDirect;
var editLevelWin;
var gridMain;
var storeMain;
var timeBlock;
var editTimeForm;
var editTimeWin;
var seqNum = 0; //序號遞增初始值
var idArr; //業務代碼
var timeStartArr; //已選擇記錄的起始時間數組
var timeEndArr //已選擇記錄的截止時間數組
var count; //已選擇記錄的時間段數
var iniCount;
/**
* 業務應用設置
* @author zhongmm
*/
sms.appSetup.main = function(){
var storeMain = new Ext.data.JsonStore({
url : Ext.sysd.getWithToken("/smsAppSetup/listAppSetup.do"),
root : '',
totalProperty : 'totalCount',
autoLoad : false,
fields : [{name:'SEQ_CODE',type:'string'},
{name:'BUSINESS_NAME',type:'string'},
{name:'SMS_LEVEL',type:'string'},
{name:'SMS_LEVEL_BAK',type:'string'},
{name:'TIME_START',type:'string'},
{name:'TIME_END',type:'string'},
{name:'BUSINESS_CODE',type:'string'},
{name:'BUSINESS_NAME_BAK',type:'string'}
]
});
function setCenter(v) {
return "<span style='width:100%;text-align:center;'>" + v + "</span>";
}
var tb = new Ext.Toolbar({
autoHeight : true,
items : ['-', {
text : '級別編輯',
iconCls : 'silk_page_edit',
handler : function() {
if(hasSelected())
{
editLevel();
var businessCode = String(gridMain.getSelectionModel().getSelected().get("BUSINESS_CODE"));
var businessName = String(gridMain.getSelectionModel().getSelected().get("BUSINESS_NAME_BAK"));
var smsLevel = String(gridMain.getSelectionModel().getSelected().get("SMS_LEVEL_BAK"));
Ext.getCmp("businessCode").setValue(businessCode);
Ext.getCmp("businessName").setValue(businessName);
Ext.getCmp("smsLevel").setValue(smsLevel);
}
}
}, {
xtype : 'tbseparator'
}, {
text : '發送時間編輯',
iconCls : 'silk_page_edit',
handler : function() {
if(hasSelected())
{
var timeBusinessCode = String(gridMain.getSelectionModel().getSelected().get("BUSINESS_CODE"));
var timeBusinessName = String(gridMain.getSelectionModel().getSelected().get("BUSINESS_NAME_BAK"));
var recordCount = gridMain.getStore().getCount();
timeStartArr=new Array();
timeEndArr=new Array();
for(var i = 0; i < recordCount; i++)
{
var id = gridMain.getStore().getAt(i).get("BUSINESS_CODE");
if(timeBusinessCode == id)
{
var timeStartValue = gridMain.getStore().getAt(i).get("TIME_START");
var timeEndValue = gridMain.getStore().getAt(i).get("TIME_END");
timeStartArr.push(timeStartValue);
timeEndArr.push(timeEndValue);
}
}
count = timeStartArr.length > timeEndArr.length ? timeStartArr.length :timeEndArr.length;
iniCount = count;
editTime();
for(var i = 0; i < count; i++)
{
Ext.getCmp("timeStart" + i ).setValue(timeStartArr[i]);
Ext.getCmp("timeEnd" + i ).setValue(timeEndArr[i]);
}
Ext.getCmp("timeBusinessCode").setValue(timeBusinessCode);
Ext.getCmp("timeBusinessName").setValue(timeBusinessName);
}
}
},{
xtype : 'tbseparator'
},{
text : '級別說明',
iconCls : 'silk_application_view_detail',
handler : function() {
directLevel();
}
},{
xtype : 'tbseparator'
},
'->',
new Ext.sysd.Update({
moduleCode : '500100'
}),
'-',
new Ext.sysd.Suggest({
moduleCode : '500100'
}),
'-',
new Ext.sysd.Helper({
moduleCode : '500100'
})
]
});
gridMain=new Ext.grid.GridPanel({
title:"業務應用設置",
tbar:tb,
region:'center',
height:240,
store:storeMain,
stripeRows : true,
autoScroll : true,
enableHdMenu:false,
columns:[
{
header : setCenter('序號'),
align:'center',
dataIndex : 'SEQ_CODE',
width : 60,
sortable : false
},{
header : setCenter('業務應用'),
dataIndex : 'BUSINESS_NAME',
align:'center',
width : 100,
sortable : false
},{
header : setCenter('短信級別'),
dataIndex : 'SMS_LEVEL',
align:'center',
width : 100,
sortable : false
},{
header : setCenter('允許發送起始時間'),
dataIndex : 'TIME_START',
align:'center',
width : 100,
sortable : false
},{
header : setCenter('允許發送截止時間'),
align:'center',
dataIndex : 'TIME_END',
width : 100,
sortable : false
}],
loadMask:{msg:"請稍等..."},
viewConfig : { forceFit : true }
});
//合並單元格
gridMain.store.on("load",function(){
initSeq();
gridSpan(gridMain,"row","[SEQ_CODE],[BUSINESS_NAME],[SMS_LEVEL]","BUSINESS_NAME");
});
function createWindow(){
var mainWin = new Ext.Viewport({
title : '業務應用設置',
layout : 'border',
defauls : {
column : 1
},
closable : false,
draggable : false,
resizable : false,
items : [gridMain]
});
mainWin.show();
}
return {
init : function() {
Ext.MessageBox.getDialog().defaultButton = 2;
createWindow();
gridMain.getStore().reload(
/*{
params:
{
//默認顯示第一頁記錄
start:0,
limit:Ext.sysd.getPageSize()
}
}*/);
}
}
}();
//選擇記錄判斷
function hasSelected()
{
var selectModel = gridMain.getSelectionModel();
var selected = selectModel.hasSelection();
if(!selected)
{
Ext.Msg.alert(Sysd.Msg.AlertTitle,'請先選擇一條記錄再編輯!');
return false;
}
return true;
}
//數據檢驗
function confirmBusinessName()
{
var groupName = Ext.getCmp("groupName").getValue();
if("" == groupName)
{
Ext.Msg.alert(Sysd.Msg.AlertTitle, "請輸入組名!");
return false;
}
return true;
}
function setCenter(v) {
return "<span style='width:100%;text-align:center;'>" + v + "</span>";
}
function editLevel()
{
//發送狀態 1成功 0 失敗(根據回執判斷是否失敗)
var arrData = [['0','0'], ['1','1'], ['2', '2'], ['3', '3'], ['4', '4']];
editLevelForm = new Ext.form.FormPanel({
width:200,
height:100,
frame:true,
labelWidth:60,
labelAlign:"right",
buttonAlign:'center',
defaultType:"textfield",
items:[
{id:"businessName", name:"businessName",fieldLabel:"業務應用",width:100,disabled:true},
{fieldWith:60,fieldLabel : "級別",arrData:arrData,xtype:"arrayComboBox",
id : 'smsLevel',name : 'smsLevel',width : 100},
{id:"businessCode", name:"businessCode",hideLabel:true,hidden:true}],
buttons:[{text:"確認",iconCls : 'silk_tick',handler:function(){
updateLevel();
}},
{text:"取消",iconCls:'silk_cancel',handler:function(){editLevelWin.hide()}}]
});
editLevelWin = new Ext.Window(
{
id:"editLevelWin",
title:"編輯優先級別",
width:210,
height:132,
// autoHeight: true,
resizable:false,
modal:true,
items:[editLevelForm]
});
editLevelWin.on("hide",function(){editLevelWin.destroy()});
editLevelWin.show();
}
function updateLevel()
{
var businessCode = Ext.getCmp("businessCode").getValue();
var smsLevel = Ext.getCmp("smsLevel").getValue();
Ext.Ajax.request({
url : Ext.sysd.getWithToken('/smsAppSetup/updateAppSetup.do'),
method : 'post',
params : {
businessCode:businessCode,
smsLevel:smsLevel
},
success : function(response) {
Ext.Msg.alert(Sysd.Msg.AlertTitle, "保存成功!");
// seqNum = 0;
gridMain.getStore().reload(
/*{
params:
{
//默認顯示第一頁記錄
start:0,
limit:Ext.sysd.getPageSize()
}
}*/);
Ext.getCmp("editLevelWin").close();
},
failure : function(response) {
Ext.Msg.alert(Sysd.Msg.AlertTitle, "保存失敗!");
}
});
}
//時間交錯判斷
function comfirmTimePeriod()
{
var timePeriodStartStr="";
var timePeriodEndStr="";
for(var i = 0; i < count; i++)
{
var timeStartCtrl = editTimeForm.getForm().findField("timeStart" + i);
var timeEndCtrl = editTimeForm.getForm().findField("timeEnd" + i);
if(timeStartCtrl)
{
timePeriodStartStr += timeStartCtrl.getValue()+",";
timePeriodEndStr += timeEndCtrl.getValue()+",";
}
}
timePeriodStartStr=timePeriodStartStr.substr(0,timePeriodStartStr.length-1);
timePeriodEndStr=timePeriodEndStr.substr(0,timePeriodEndStr.length-1);
var timePeriodStartArr = timePeriodStartStr.split(',');
var timePeriodEndArr = timePeriodEndStr.split(',');
var periodFlag = false;//默認不存在時間交錯情況
for(var i = 0; i< timePeriodStartArr.length; i++)
{
for(var j = 0; j< timePeriodEndArr.length; j++)
{
if(i == j)
{
continue;
}
else
{
if((timePeriodStartArr[j] < timePeriodStartArr[i])&&(timePeriodStartArr[i]<timePeriodEndArr[j]))
{
periodFlag = true;
break;
}
else if((timePeriodStartArr[j] < timePeriodEndArr[i])&&(timePeriodEndArr[i]<timePeriodEndArr[j]))
{
periodFlag = true;
break;
}
}
}
}
return periodFlag;
}
//時間段交錯判斷
function comfirmTimePeriodEqual()
{
var timePeriodStartStr="";
var timePeriodEndStr="";
for(var i = 0; i < count; i++)
{
var timeStartCtrl = editTimeForm.getForm().findField("timeStart" + i);
var timeEndCtrl = editTimeForm.getForm().findField("timeEnd" + i);
if(timeStartCtrl)
{
timePeriodStartStr += timeStartCtrl.getValue()+",";
timePeriodEndStr += timeEndCtrl.getValue()+",";
}
}
timePeriodStartStr=timePeriodStartStr.substr(0,timePeriodStartStr.length-1);
timePeriodEndStr=timePeriodEndStr.substr(0,timePeriodEndStr.length-1);
var timePeriodStartArr = timePeriodStartStr.split(',');
var timePeriodEndArr = timePeriodEndStr.split(',');
var periodFlag = false;//默認不存在時間段重復情況
for(var i = 0; i< timePeriodStartArr.length; i++)
{
for(var j = 0; j< timePeriodEndArr.length; j++)
{
if(i == j)
{
continue;
}
else
{
if((timePeriodStartArr[i] == timePeriodStartArr[j])&&(timePeriodEndArr[i]==timePeriodEndArr[j]))
{
periodFlag = true;
break;
}
}
}
}
return periodFlag;
}
//是否修改判斷
function confirmModify()
{
var timePeriodStartStr="";
var timePeriodEndStr="";
for(var i = 0; i < count; i++)
{
var timeStartCtrl = editTimeForm.getForm().findField("timeStart" + i);
var timeEndCtrl = editTimeForm.getForm().findField("timeEnd" + i);
if(timeStartCtrl)
{
timePeriodStartStr += timeStartCtrl.getValue()+",";
timePeriodEndStr += timeEndCtrl.getValue()+",";
}
}
timePeriodStartStr=timePeriodStartStr.substr(0,timePeriodStartStr.length-1);
timePeriodEndStr=timePeriodEndStr.substr(0,timePeriodEndStr.length-1);
var timePeriodStartArr = timePeriodStartStr.split(',');
var timePeriodEndArr = timePeriodEndStr.split(',');
var flag = false;//默認未修改
if(timePeriodStartArr.length != iniCount || timePeriodEndArr.length != iniCount)
{
flag = true;
}
else
{
for(i = 0; i < count; i++)
{
if(-1 == timeStartArr.indexOf(timePeriodStartArr[i]))
{
flag = true;
break;
}
if(-1 == timeEndArr.indexOf(timePeriodEndArr[i]))
{
flag = true;
break;
}
var index = timeStartArr.indexOf(timePeriodStartArr[i]);
if(timeEndArr[index] != timePeriodEndArr[i])
{
flag = true;
break;
}
}
}
return flag;
}
function updateTime()
{
var timeStartStr = "";
var timeEndStr = "";
var submitFlag = true;//是否提交標志
for(var i = 0; i < count; i++)
{
var timeStartCtrl = editTimeForm.getForm().findField("timeStart" + i);
var timeEndCtrl = editTimeForm.getForm().findField("timeEnd" + i);
if(timeStartCtrl)
{
if("" == timeEndCtrl.getValue()||"" == timeStartCtrl.getValue())
{
Ext.Msg.alert(Sysd.Msg.AlertTitle, "時間不能為空,請重新輸入!");
submitFlag = false;
break;
}
else if(timeEndCtrl.getValue() <= timeStartCtrl.getValue())
{
Ext.Msg.alert(Sysd.Msg.AlertTitle, "截止時間必須大於起始時間,請重新輸入!");
submitFlag = false;
break;
}
else if(comfirmTimePeriodEqual())
{
Ext.Msg.alert(Sysd.Msg.AlertTitle,"時間段重復,請重新檢查輸入!");
submitFlag = false;
break;
}
/*
else if(comfirmTimePeriod())//前兩個判斷已經排除一些非法情況,所以comfirmTimePeriod()不需再判斷
{
Ext.Msg.alert(Sysd.Msg.AlertTitle,"時間段交錯,請重新檢查輸入!");
submitFlag = false;
break;
}
*/
else
{
timeStartStr += timeStartCtrl.getValue()+",";
timeEndStr += timeEndCtrl.getValue()+",";
}
}
}
if(submitFlag&&!confirmModify())
{
submitFlag = false;
editTimeWin.close();
}
if(submitFlag)
{
timeEndStr=timeEndStr.substring(0,timeEndStr.lastIndexOf(","));
timeStartStr=timeStartStr.substring(0,timeStartStr.lastIndexOf(","));
timeBusinessCode = Ext.getCmp("timeBusinessCode").getValue();
timeBusinessName = Ext.getCmp("timeBusinessName").getValue();
Ext.Ajax.request({
url : Ext.sysd.getWithToken('/smsAppSetup/updateTimeAppSetup.do'),
method : 'post',
params : {
businessCode:timeBusinessCode,
businessName:timeBusinessName,
timeStartStr:timeStartStr,
timeEndStr:timeEndStr
},
success : function(response) {
Ext.Msg.alert(Sysd.Msg.AlertTitle, "修改成功!");
// seqNum = 0;
gridMain.getStore().reload(
/*{
params:
{
//默認顯示第一頁記錄
start:0,
limit:Ext.sysd.getPageSize()
}
}*/);
Ext.getCmp("editTimeWin").close();
},
failure : function(response) {
Ext.Msg.alert(Sysd.Msg.AlertTitle, "修改失敗!");
}
});
}
}
function addTimeControl(id)
{
var timeStartId = "timeStart" + id;
var timeEndId = "timeEnd" + id;
var timeStartField = new Ext.form.TimeField({id:timeStartId, name:timeStartId, fieldLabel:"起始時間",width:90,format:"H:i:s",increment:30,editable : false,allowBlank:false});
var timeEndField = new Ext.form.TimeField({id:timeEndId, name:timeEndId, fieldLabel:"截止時間",width:90,format:"H:i:s",increment:30,editable : false,allowBlank:false});
var removeTimeBtn = {id:"removeTimeBtn"+id,xtype:"button", style:"padding-left:3px", text:"",iconCls:"silk_page_delete",
handler:function(event){
var timeSetId = (event.id).replace("removeTimeBtn","editTimeFieldSet");
var timeSet = Ext.getCmp(timeSetId);
if("" == timeStartField.getValue() && "" == timeEndField.getValue())
{
confirmShowAddControl();
editTimeForm.remove(timeSet,true);
}
else
{
Ext.Msg.confirm(Sysd.Msg.AlertTitle,"是否刪除該時間段?",function(btn)
{
if('yes' == btn)
{
confirmShowAddControl();
editTimeForm.remove(timeSet,true);
return true;
}
else
{
return false;
}
});
}
}};
var addTimeBtn = {id:"addTimeBtn"+id,xtype:"button",text:"",iconCls:"silk_page_add",
handler:function(event){
addTimeControl(count++);
}
};
var block = {
layout:"column",
items:[
{layout:"form",width:168,labelWidth:60,items:[timeStartField]},
{layout:"form",width:168,labelWidth:60,items:[timeEndField]},
{layout:"form",width:30,items:[removeTimeBtn]},
{layout:"form",width:30,items:[addTimeBtn]}
]
};
var editTimeFieldSet = new Ext.Panel({
id:"editTimeFieldSet"+id,
layout:'form',
border:false,
items:[block]
});
editTimeForm.add(editTimeFieldSet);
editTimeForm.doLayout();
}
function confirmShowAddControl()
{
if(2 == editTimeForm.items.length)
{
Ext.getCmp("showAddControl").show();
}
}
function editTime()
{
editTimeForm = new Ext.form.FormPanel({
width:420,
// autoWidth:true,
height:213,
frame:true,
labelWidth:60,
layout:"form",
forceFit:true,
autoScroll:"auto",
bodyStyle : 'overflow-x:hidden; overflow-y:auto; padding:3px',
labelAlign:"right",
buttonAlign:"center",
buttons:[{text:"確認",iconCls : 'silk_tick',handler:function(){
updateTime();
}},
{text:"取消",iconCls:'silk_cancel',handler:function(){
Ext.Msg.confirm(Sysd.Msg.AlertTitle,"是否確定要取消,取消將不保存數據?",function(btn)
{
if('yes' == btn)
{
editTimeWin.close();
return true;
}
else
{
return false;
}
});
}}]
});
var bussiness = {
layout:"column",
items:[
{layout:"form",items:[{id:"timeBusinessName",xtype:"textfield",width:150,name:"timeBusinessName",fieldLabel:"業務應用",disabled:true}]},
{layout:"form",items:[{id:"timeBusinessCode", xtype:"textfield",name:"timeBusinessCode",hideLabel:true, hidden:true}]},
{layout:"form",bodyStyle: 'padding-left:100px', items:[{id:"showAddControl", xtype:"button",text:"增加一行", hidden:true, width:75, iconCls : 'silk_page_add',handler:function(){
Ext.getCmp("showAddControl").hide();
addTimeControl(count++);
}}]}]
}
var businessSet = new Ext.Panel({
id:"businessSet",
border:false,
items:[bussiness]
});
editTimeForm.add(businessSet);
for(var i = 0; i < count; i++)
{
var timeStartId = "timeStart" + i;
var timeEndId = "timeEnd" + i;
var timeStartField = new Ext.form.TimeField({id:timeStartId, name:timeStartId, fieldLabel:"起始時間",width:90,format:"H:i:s",increment:30,editable : false, allowBlank:false});
var timeEndField = new Ext.form.TimeField({id:timeEndId, name:timeEndId, fieldLabel:"截止時間",width:90,format:"H:i:s",increment:30,editable : false, allowBlank:false});
var addTimeBtn = {id:"addTimeBtn"+i,xtype:"button",text:"",iconCls:"silk_page_add",
handler:function(event){
addTimeControl(count++);
}
};
var removeTimeBtn = {id:"removeTimeBtn"+i, style:"padding-left:3px", xtype:"button",text:"",iconCls:"silk_page_delete",
handler:function(event){
var id = (event.id).replace("removeTimeBtn","editTimeFieldSet");
var timeSet = Ext.getCmp(id);
Ext.Msg.confirm(Sysd.Msg.AlertTitle,"是否刪除該時間段?",function(btn)
{
if('yes' == btn)
{
confirmShowAddControl();
editTimeForm.remove(timeSet,true);
return true;
}
else
{
return false;
}
});
}};
var block = {
layout:"column",
items:[
{layout:"form",width:168,items:[timeStartField]},
{layout:"form",width:168,items:[timeEndField]},
{layout:"form",width:30,items:[removeTimeBtn]},
{layout:"form",width:30,items:[addTimeBtn]}
]
};
var editTimeFieldSet = new Ext.Panel({
id:"editTimeFieldSet"+i,
layout:'form',
border:false,
items:[block]
});
editTimeForm.add(editTimeFieldSet);
editTimeForm.doLayout();
}
editTimeWin = new Ext.Window(
{
id:"editTimeWin",
title:"編輯發送時間",
width:434,
height:245,
resizable:false,
modal:true,
items:[editTimeForm]
});
editTimeWin.on("close",function(){
timeStartArr=[];
timeEndArr=[];
count = 0;
});
editTimeWin.show();
}
function directLevel()
{
var direct = [
["0","0說明"],
["1","1說明"],
["2","2說明"],
["3","3說明"],
["4","4說明"]]
var proxy = new Ext.data.MemoryProxy(direct);
var reader = new Ext.data.ArrayReader({}, [
{name: "did", type: "string", mapping: 0},
{name: "dname", type: "string", mapping: 1}
]);
var storeDirect = new Ext.data.Store({
proxy: proxy,
reader: reader,
autoLoad: true //即時加載數據
});
//級別說明
gridDirect= new Ext.grid.GridPanel({
height:130,
store:storeDirect,
stripeRows:true,
loadMask:{msg:"請稍等..."},
viewConfig : { forceFit : true },
columns:[
{
header:setCenter('級別'),
dataIndex:'did',
align:'center',
width:20,
sortable:true
},
{
header:setCenter('級別說明'),
dataIndex:'dname',
align:'left',
width:100,
sortable:false
}]
});
formDirect = new Ext.form.FormPanel(
{
layout:'fit',
buttonAlign:'center',
autoHeight:true,
autoWidth:true,
frame:true,
buttons:[{text:"返回",iconCls : 'silk_application_home',handler:function(){
Ext.getCmp("winDirect").close();
}}],
items:[gridDirect]
});
//說明彈出窗口
winDirect = new Ext.Window(
{
id:"winDirect",
title:"級別說明",
width:450,
height:205,
resizable:false,
draggable:false,
modal:true,
items:[formDirect]
});
winDirect.show();
}
function initSeq()
{
seqNum = 0;
var recordCount = gridMain.getStore().getCount();
idArr=new Array();
for(var i = 0; i < recordCount; i++)
{
var seqCode = gridMain.getStore().getAt(i).get("SEQ_CODE");
if(-1 == idArr.indexOf(seqCode))
{
idArr.push(seqCode);
gridMain.getStore().getAt(i).set("SEQ_CODE",String(++seqNum));
}
else
{
gridMain.getStore().getAt(i).set("SEQ_CODE",String(seqNum));
}
}
}
function gridSpan(grid, rowOrCol, cols, sepCol) {
var array1 = new Array();
var arraySep = new Array();
var count1 = 0;
var count2 = 0;
var index1 = 0;
var index2 = 0;
var aRow = undefined;
var preValue = undefined;
var firstSameCell = 0;
var allRecs = grid.getStore().getRange();
if (rowOrCol == "row") {
count1 = grid.getColumnModel().getColumnCount();
count2 = grid.getStore().getCount();
} else {
count1 = grid.getStore().getCount();
count2 = grid.getColumnModel().getColumnCount();
}
for (i = 0; i < count1; i++) {
if (rowOrCol == "row") {
var curColName = grid.getColumnModel().getDataIndex(i);
var curCol = "[" + curColName + "]";
if (cols.indexOf(curCol) < 0)
continue;
}
preValue = undefined;
firstSameCell = 0;
array1[i] = new Array();
for (j = 0; j < count2; j++) {
if (rowOrCol == "row") {
index1 = j;
index2 = i;
} else {
index1 = i;
index2 = j;
}
var colName = grid.getColumnModel().getDataIndex(index2);
if (sepCol && colName == sepCol)
arraySep[index1] = allRecs[index1].get(sepCol);
var seqOldValue = seqCurValue = "1";
if (sepCol && index1 > 0) {
seqOldValue = arraySep[index1 - 1];
seqCurValue = arraySep[index1];
}
if (allRecs[index1].get(colName) == preValue && (colName == sepCol || seqOldValue == seqCurValue)) {
//alert(colName + "======" + seqOldValue + "======" + seqCurValue);
allRecs[index1].set(colName, " ");
array1[i].push(j);
if (j == count2 - 1) {
//var index = firstSameCell + Math.round((j + 1 - firstSameCell) / 2 - 1);
var index = firstSameCell;//首行顯示數值
if (rowOrCol == "row") {
allRecs[index].set(colName, preValue);
} else {
allRecs[index1].set(grid.getColumnModel().getColumnId(index), preValue);
}
}
} else {
if (j != 0) {
//var index = firstSameCell + Math.round((j + 1 - firstSameCell) / 2 - 1);
var index = firstSameCell;//首行顯示數值
if (rowOrCol == "row") {
allRecs[index].set(colName, preValue);
} else {
allRecs[index1].set(grid.getColumnModel().getColumnId(index), preValue);
}
}
firstSameCell = j;
preValue = allRecs[index1].get(colName);
allRecs[index1].set(colName, " ");
if (j == count2 - 1) {
allRecs[index1].set(colName, preValue);
}
}
}
}
grid.getStore().commitChanges();
//添加所有分隔線
var rCount = grid.getStore().getCount();
for (i = 0; i < rCount; i ++) {
for (j = 0; j < grid.getColumnModel().getColumnCount(); j ++) {
aRow = grid.getView().getCell(i,j);
if (i == 0) {
aRow.style.borderTop = "none";
aRow.style.borderLeft = "1px solid #ccc";
} else if (i == rCount - 1) {
aRow.style.borderTop = "1px solid #ccc";
aRow.style.borderLeft = "1px solid #ccc";
aRow.style.borderBottom = "1px solid #ccc";
} else {
aRow.style.borderTop = "1px solid #ccc";
aRow.style.borderLeft = "1px solid #ccc";
} if(j == grid.getColumnModel().getColumnCount()-1)
aRow.style.borderRight = "1px solid #ccc";
if(i == rCount-1)
aRow.style.borderBottom = "1px solid #ccc";
//aRow.style.borderBottom = "1px solid #ccc";
}
}
//去除合並的單元格的分隔線
for (i = 0; i < array1.length; i++) {
for (j = 0; j < array1[i].length; j++) {
if (rowOrCol == "row") {
aRow = grid.getView().getCell(array1[i][j],i);
aRow.style.borderTop = "none";
} else {
aRow = grid.getView().getCell(i, array1[i][j]);
aRow.style.borderLeft = "none";
}
}
}
}
Ext.onReady(sms.appSetup.main.init,sms.appSetup.main);
