| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484 |
- Ext.define('erp.view.scm.reserve.barStockCode.Form',{
- extend: 'Ext.form.Panel',
- alias: 'widget.erpBarStockCodeFormPanel',
- id: 'barStockCodeForm',
- region: 'north',
- frame : true,
- layout : 'column',
- autoScroll : true,
- defaultType : 'textfield',
- labelSeparator : ':',
- buttonAlign : 'center',
- cls: 'u-form-default',
- fieldDefaults : {
- fieldStyle : "background:#FFFAFA;color:#515151;",
- focusCls: 'x-form-field-cir-focus',
- labelAlign : "right",
- msgTarget: 'side',
- blankText : $I18N.common.form.blankText
- },
- requires: ['erp.view.common.JProcess.SetNodeGridPanel'],
- FormUtil: Ext.create('erp.util.FormUtil'),
- BaseUtil: Ext.create('erp.util.BaseUtil'),
- saveUrl: '',
- updateUrl: '',
- deleteUrl: '',
- auditUrl: '',
- resAuditUrl: '',
- submitUrl: '',
- resSubmitUrl: '',
- bannedUrl: '',
- resBannedUrl: '',
- postUrl:'',
- printUrl: '',
- getIdUrl: '',
- keyField: '',
- codeField: '',
- statusField: '',
- params: null,
- caller: null,
- formCondition:null,
- Contextvalue:null,
- LastValue:null,
- enableTools: true,
- enableKeyEvents: true,
- _noc: 0,
- initComponent : function(){
- formCondition = getUrlParam('formCondition');//从url解析参数
- formCondition = (formCondition == null) ? "" : formCondition.replace(/IS/g,"=");
- //集团版
- var master=getUrlParam('newMaster');
- var param = {caller: this.caller || caller, condition: this.formCondition || formCondition, _noc: (getUrlParam('_noc') || this._noc)};
- if(master){
- param.master=master;
- }
- this.FormUtil.getItemsAndButtons(this, 'common/singleFormItems.action', this.params || param);//从后台拿到formpanel的items
- this.callParent(arguments);
- //加prev、next、refresh等tool
- if(this.enableTools) {
- this.setTools();
- }
- //给页面加上ctrl+alt+s键盘事件,自动跳转form配置界面
- if(this.enableKeyEvents) {
- this.addKeyBoardEvents();
- }
- },
- /**
- * FormHeader Tools
- * 包括:查看日志、查看流程、查看列表、最大化、最小化、刷新、关闭、上一条、下一条
- */
- setTools: function(){
- this.tools = [{
- type: 'search',
- tooltip: '查看单据日志',
- listeners:{
- click: function(btn){
- var form = Ext.getCmp('barStockCodeForm');
- var id = Ext.getCmp(form.keyField).value;
- if(id != null && id != 0){
- form.getLogs(id);
- }
- }
- }
- },{
- type: 'save',
- tooltip: '导出Excel',
- listeners:{
- click: function(btn){
- var form = Ext.getCmp('barStockCodeForm');
- var id = Ext.getCmp(form.keyField).value;
- form.saveAsExcel(id,caller);
- }
- }
- },{
- type: 'collapse',
- tooltip: '查看列表',
- listeners:{
- click: function(btn){
- if(parent.Ext) {
- var datalist = parent.Ext.getCmp(datalistId);
- if(!datalist){
- var form = btn.ownerCt.ownerCt;
- var url = 'jsps/common/datalist.jsp?whoami=' + caller;
- if(btn.urlcondition){
- url += '&urlcondition=' + btn.urlcondition;
- }
- form.FormUtil.onAdd(caller + '_scan', parent.Ext.getCmp('content-panel').getActiveTab().title + 'DataList', url);
- } else {
- datalist.ownerCt.setActiveTab(datalist);
- }
- }
- }
- }
- },{
- type: 'maximize',
- tooltip: '最大化',
- listeners:{
- click: function(btn){
- var height = window.screen.height*0.87;
- var width = window.screen.width;
- //弹出框显示,可以锁定住地址栏和工具栏,防止用户不合理操作
- window.open(window.location.href, '', 'width=' + width + ',height=' + height + ',top=0,left=0,toolbar=no, menubar=no, scrollbars=no, resizable=no,location=no, status=no');
- }
- }
- },{
- type: 'minus',
- tooltip: '最小化',
- listeners:{
- click: function(btn){
- var p = parent.Ext.getCmp('content-panel');
- if(p){
- var t = p.getActiveTab();
- var b = parent.Ext.getCmp('bottom');
- if(b){
- b.insert(4, {
- text: t.title,
- tooltip: t.tabConfig.tooltip,
- tab: t,
- handler: function(btn){
- var a = p.add(btn.tab);
- p.setActiveTab(a);
- btn.destroy();
- }
- });
- p.remove(t, false);//并不销毁
- }
- }
- }
- }
- },{
- type: 'refresh',
- tooltip: '刷新',
- listeners:{
- click: function(btn){
- var form = btn.up('form');
- if(typeof form.refresh === 'function')
- form.refresh.call(null, form);
- else
- window.location.reload();
- }
- }
- },{
- type: 'close',
- tooltip: '关闭',
- listeners:{
- click: function(btn){
- var p = parent.Ext.getCmp('content-panel');
- if(p){
- p.getActiveTab().close();
- } else {
- window.close();
- }
- }
- }
- },{
- type:'prev',
- id: 'prev',
- tooltip: '上一条',
- listeners:{
- render: function(btn){
- setTimeout(function(){
- if(parent.Ext) {
- var vad_id = Ext.getCmp("bsd_id").value;
- var form = Ext.getCmp('barStockCodeForm');
- var datalistStore = form.getCurrentStore(vad_id);
- Ext.each(datalistStore, function(){
- if(this.selected == true){
- if(this.prev == null){
- btn.disable(true);
- }
- }
- });
- } else {
- btn.disable(true);
- }
- },100);
- },
- click: function(btn){
- var bsd_id = Ext.getCmp("bsd_id").value;
- var form = Ext.getCmp('barStockCodeForm');
- var datalistStore = form.getCurrentStore(bsd_id);
- var newId = 0;
- var idx = 0;
- Ext.each(datalistStore, function(s, index){
- if(this.selected == true){
- if(this.prev != null){
- newId = this.prev;
- idx = index;
- }
- }
- });
- var formCondition = "bsd_id=" + newId;
- var gridCondition = "bdd_bsdid=" + newId ;
- window.location.href = basePath+'jsps/scm/reserve/barStockCode.jsp?_noc=1&whoami='+caller+'&formCondition='+formCondition+'&gridCondition='+gridCondition;
- }
- }
- },{
- type: 'next',
- id: 'next',
- tooltip: '下一条',
- listeners:{
- render: function(btn){
- setTimeout(function(){
- if(parent.Ext) {
- var bsd_id = Ext.getCmp("bsd_id").value;
- var form = Ext.getCmp('barStockCodeForm');
- var datalistStore = form.getCurrentStore(bsd_id);
- Ext.each(datalistStore, function(){
- if(this.selected == true){
- if(this.next == null){
- btn.disable(true);
- }
- }
- });
- } else {
- btn.disable(true);
- }
- },100);
- },
- click: function(btn){
- var bsd_id = Ext.getCmp("bsd_id").value;
- var form = Ext.getCmp('barStockCodeForm');
- var datalistStore = form.getCurrentStore(bsd_id);
- var newId = 0;
- var idx = 0;
- Ext.each(datalistStore, function(s, index){
- if(s.selected == true){
- if(s.next != null){
- newId = s.next;
- idx = index;
- }
- }
- });
- var formCondition = "bsd_id=" + newId;
- var gridCondition = "bdd_bsdid=" + newId ;
- window.location.href = basePath+'jsps/scm/reserve/barStockCode.jsp?_noc=1&whoami='+caller+'&formCondition='+formCondition+'&gridCondition='+gridCondition;
- }
- }
- },{
- type: 'help',
- tooltip: '帮助文档',
- listeners:{
- click: function(t){
- var form = t.ownerCt.ownerCt;
- form.showHelpWindow();
- }
- }
- }];
- },
- /**
- * 监听一些事件
- * <br>
- * Ctrl+Alt+S 单据配置维护
- * Ctrl+Alt+P 参数、逻辑配置维护
- */
- addKeyBoardEvents: function(){
- var me = this;
- Ext.EventManager.addListener(document.body, 'keydown', function(e){
- if(e.altKey && e.ctrlKey) {
- if(e.keyCode == Ext.EventObject.S) {
- var url = "jsps/ma/form.jsp?formCondition=fo_idIS" + me.fo_id + "&gridCondition=fd_foidIS" + me.fo_id,
- forms = Ext.ComponentQuery.query('form'),
- grids = Ext.ComponentQuery.query('gridpanel'),
- formSet = [], gridSet = [];
- if(forms.length > 0) {
- Ext.Array.each(forms, function(f){
- f.fo_id && (formSet.push(f.fo_id));
- });
- }
- if(grids.length > 0) {
- Ext.Array.each(grids, function(g){
- if(g.xtype.indexOf('erpBarStockCodeGridPanel') > -1)
- gridSet.push(window.caller);
- else if(g.caller)
- gridSet.push(g.caller);
- });
- }
- if(formSet.length > 0 || gridSet.length > 0) {
- url = "jsps/ma/multiform.jsp?formParam=" + formSet.join(',') + '&gridParam=' + gridSet.join(',');
- }
- me.FormUtil.onAdd('form' + caller, 'Form配置维护(' + caller + ')', url);
- } else if(e.keyCode == Ext.EventObject.P) {
- me.FormUtil.onAdd('configs-' + caller, '逻辑配置维护(' + caller + ')', "jsps/ma/logic/config.jsp?whoami=" + caller);
- }
- }
- });
- },
- /**
- * 拿到操作日志
- */
- getLogs: function(id){
- if(Ext.getCmp('win' + id)){
- Ext.getCmp('win' + id).show();
- } else {
- Ext.Ajax.request({//拿到grid的columns
- url : basePath + 'common/getMessageLogs.action',
- async: false,
- params: {
- caller: caller,
- id: id
- },
- method : 'post',
- callback : function(options,success,response){
- var res = new Ext.decode(response.responseText);
- if(res.exception || res.exceptionInfo){
- showError(res.exceptionInfo);
- return;
- }
- var logs = res.logs;
- logs = logs.length == 0 ? [{ml_date: $I18N.common.grid.emptyText, ml_man: $I18N.common.grid.emptyText,
- ml_content: $I18N.common.grid.emptyText, ml_result: $I18N.common.grid.emptyText}] : logs;
- Ext.create('Ext.window.Window', {
- id : 'win' + id,
- title: '<span style="color:#CD6839;">操作日志</span>',
- iconCls: 'x-button-icon-set',
- closeAction: 'hide',
- height: "100%",
- width: "80%",
- maximizable : true,
- buttonAlign : 'center',
- layout : 'anchor',
- items: [{
- anchor: '100% 100%',
- xtype: 'gridpanel',
- ignore: true,
- bodyStyle: 'background:#f1f1f1;',
- autoScroll: true,
- store: Ext.create('Ext.data.Store', {
- fields: ['ml_date', 'ml_man', 'ml_content', 'ml_result'],
- data: logs
- }),
- columnLines: true,
- columns: [
- { header: '时间', dataIndex: 'ml_date', flex: 1.5 , renderer: function(val){
- if(val != '无数据'){
- return Ext.Date.format(new Date(val), 'Y-m-d H:i:s');
- }
- }},
- { header: '操作人员', dataIndex: 'ml_man', flex: 1 ,renderer: function(val){
- if(val == em_name){
- return '<font color=red>' + val + '</font>';
- } else {
- return val;
- }
- }},
- { header: '操作', dataIndex: 'ml_content', flex: 1.5},
- { header: '结果', dataIndex: 'ml_result', flex: 3}
- ]
- }],
- buttons : [{
- text : '关 闭',
- iconCls: 'x-button-icon-close',
- cls: 'x-btn-gray',
- handler : function(){
- Ext.getCmp('win' + id).close();
- }
- }]
- }).show();
- }
- });
- }
- },
- saveAsExcel:function(id,caller){
- if(id==null || id =='') showMessage('提示','无法导出空数据单据',1000);
- else window.location.href=basePath+'excel/savePanelAsExcel.action?id='+id+"&caller="+caller+"&_noc=1";
- },
- showHelpWindow:function(){
- var me = this,
- win = Ext.getCmp('ext-help'),path;
- Ext.Ajax.request({
- url : basePath + 'common/form/getHelpDoc.action',
- params: {
- caller:caller
- },
- method : 'post',
- async:false,
- callback : function(opt, s, res){
- var r = new Ext.decode(res.responseText);
- if(r.exceptionInfo){
- showError(r.exceptionInfo);
- } else if(r.success){
- path=r.path;
- }
- }
- });
- if(!win) {
- win = Ext.create('Ext.Window', {
- id: 'ext-help',
- width: '90%',
- height: '100%',
- closeAction: 'hide',
- title: '帮助文档',
- layout: 'border',
- items: [{
- region:'center',
- tag : 'iframe',
- layout : 'fit',
- html : '<iframe src="' + basePath + path + '" height="100%" width="100%" frameborder="0" scrolling="auto"></iframe>'
- },{
- region: 'south',
- height: 100,
- split: true,
- collapsible: true,
- title: '相关信息',
- minHeight:60,
- collapsed: true,
- html: '相关信息'
- }]
- });
- }
- win.show();
- },
- parseVoucherConfig : function(config) {
- var form = this, keys = Ext.Object.getKeys(config), args = {};
- Ext.each(keys, function(k){
- if (typeof config[k] === 'function') {
- args[k] = config[k].call(null, form);
- } else if (k == 'yearmonth') {
- args[k] = form.getYearmonthByField(config[k]);
- } else if (k == 'datas') {
- args[k] = form.getDataByField(config[k]);
- } else {
- args[k] = config[k];
- }
- });
- return args;
- },
- getDataByField : function(field) {
- var form = this, f = form.child('#' + field);
- return f ? "'" + f.getValue() + "'" : '';
- },
- getYearmonthByField : function(field) {
- var form = this;
- var f = form.child('#' + field),
- v = f ? (Ext.isDate(f.value) ? f.value : Ext.Date.parse(f.value, 'Y-m-d')) : new Date();
- return Ext.Date.format(v, 'Ym');
- },
- getCurrentStore: function(value){
- var grid = parent.Ext.getCmp('grid');
- var items = grid.store.data.items;
- var array = new Array();
- var o = null;
- Ext.each(items, function(item, index){
- o = new Object();
- o.selected = false;
- if(index == 0){
- o.prev = null;
- } else {
- o.prev = items[index-1].data["bsd_id"];
- }
- if(index == items.length - 1){
- o.next = null;
- } else {
- o.next = items[index+1].data["bsd_id"];
- }
- var v = item.data["bsd_id"];
- o.value = v;
- if(v == value)
- o.selected = true;
- array.push(o);
- });
- return array;
- }
- });
|