//資料字典下拉控制元件
Ext.ns('uc');
uc.cboDic = function (config) {
var storeDic = Ext.create('Ext.data.Store', {
autoLoad: false,
fields: [
'code',
'name'
],
proxy: {
url: rootUrl + 'Dic/readDicDataList',
type: 'ajax',
reader: {
type: 'json'
}
}, listeners: {
load: function (store) {
var data = {'code': '', 'name': '所有狀態'};
var rs = [new Ext.data.Record(data)];
store.insert(0, rs);
}
}
});
var cbo = new Ext.form.field.ComboBox(Ext.apply({
store: storeDic,
triggerAction: 'all',
queryMode: 'local',
emptyText: '—請選擇—',
valueField: 'code',
displayField: 'name',
editable: false
}, config));
/*storeDic.load();*/
/*
字典索引類的表單域名以資料字典項命名為準
當一個頁面使用多個字典索引類時,用下劃線加字尾區分
*/
var _id = cbo.getId();
var _name = cbo.getName();
var indexStr = _id; //字典索引字串
if (_id.indexOf("_" + _name) < 0) {
/*
控制元件不設定Id,系統會自動生成Id串,
判斷id串中是否含有Name域名,如果有,則證明是自己設定的Id,是屬於是否有無類的字典項;
如沒有,條件是true的情況,則取Name域值即可。
*/
indexStr = _name;
/*
只有是否、有無字典需要設定Id屬性,Is_DicIndex或Has_DicIndex;
其餘的字典項無須設定Id屬性。
*/
}
var splitIndex = indexStr.indexOf('_');
if (splitIndex >= 0) {
/*
取下劃線分隔符之前的字串,作為字典索引名稱,分隔符後的僅作同類字典項在同一頁面的區分符號。
*/
indexStr = indexStr.substr(0, splitIndex);
}
if (config.dicIndex) {
indexStr = config.dicIndex;
}
storeDic.load({
params: {dicCode: indexStr}
/*,
callback: function () {
storeDic.insert(0, _DicRecordEmpty);
}*/
});
return cbo;
}