main.jsp
- <%@ page contentType="text/html; charset=utf-8"%>
- <%@ page import="org.acegisecurity.context.SecurityContext, org.acegisecurity.userdetails.UserDetails" %>
- "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
-
-
- House Charge Expenses System
- "content-type" content="text/html; charset=utf-8" />
- "content-language" content="utf-8" />
- "all" name="robots" />
- "author" content="ark"/>
- "copyright" content="ark" />
- "description" content="just for testing" />
- "keywords" content="family,finance,study" />
- "stylesheet" type="text/css" href="<%=request.getContextPath() %>/ajaxlib/ext/resources/css/ext-all.css" />
- "stylesheet" type="text/css" href="<%=request.getContextPath() %>/ajaxlib/mylib/ext-patch.css" />
- "stylesheet" type="text/css" href="<%=request.getContextPath() %>/css/windows.css" />
-
-
-
- <!--buffalo-->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
"x-taskbar"> -
"title-bar">House Charge Expenses System
-
"logname">用户名:class="username"> - <%
- SecurityContext context=(SecurityContext)request.getSession().getAttribute("ACEGI_SECURITY_CONTEXT");
- UserDetails userDetails=(UserDetails)context.getAuthentication().getPrincipal();
- out.print(userDetails.getUsername());
- %>
- | "<%=request.getContextPath() %>/logout.html">登出
-
-
"x-launcher-wrap">"x-launcher-inner">"x-launcher-left">"x-launcher-right">"x-launcher-center">"x-launcher">
"x-info">
"x-desktop">
"x-windows"> -
-
class="x-clear">
-
-
windows.js
- Myapp = new Ext.app.App({
- init :function(){
- Ext.QuickTips.init();
- },
-
- getModules : function(){
- return [
new chargeItemWindow(), new incomeItemWindow(), new familyMemberWindow(), new bankAccountWindow(), new incomeDailyWindow(), ]; } }); familyMember.js
- familyMemberWindow = Ext.extend(Ext.app.Module, {
- init : function(){
- this.launcher = {
text: '家庭成员', iconCls:'icon-grid', handler : this.createWindow, scope: this } }, createWindow : function(){ var desktop = this.app.getDesktop(); var cm = new Ext.grid.ColumnModel([{ header: '姓名', dataIndex: 'name', width: 220, editor: new Ext.grid.GridEditor(new Ext.form.TextField({allowBlank: false})) }]); cm.defaultSortable = true; var FamilyMember = Ext.data.Record.create([ {name:'id',type:'int',mapping:'id'}, {name: 'name',type:'string',mapping: 'name'} ]); var ds = new Ext.data.Store({ proxy: new Buffalo.Ext.DataProxy(buffalo,"houseChargeService.getAllFamilyMember",[]), reader: new Ext.data.ArrayReader({id: 'id'}, FamilyMember), remoteSort: false }); var gridPanel = new Ext.grid.EditorGridPanel({ store: ds, cm: cm, selModel: new Ext.grid.CellSelectionModel(), enableColLock:false, buttonAlign:'top', tbar:[{ text: '新增', handler :doAdd },{ text: '保存', handler : doSave },{ text: '删除', handler : doDel }] }); var win = desktop.getWindow('familyMember-win'); if(!win){ win = desktop.createWindow({ id: 'familyMember-win', title:'家庭成员', width:740, height:460, x:10, y:10, iconCls: 'icon-grid', shim:false, animCollapse:false, constrainHeader:true, layout: 'fit', items: gridPanel }); } ds.load(); win.show(); function doAdd() { var p = new FamilyMember({ id:-1, name:'' }); gridPanel.stopEditing(); var yetCount=ds.getCount(); ds.insert(yetCount, p); ds.getAt(yetCount).set("name",'未命名'); gridPanel.startEditing(yetCount, 0); } function doSave() { var eds=ds.getModifiedRecords().slice(0); for(var i = 0;i record =eds[i]; if (record.get("id")==-1) { buffalo.remoteCall("houseChargeService.createFamilyMember",[record.get("name")],function(reply) { var sucess = reply.getResult(); if (sucess==1) { alert("重复姓名!"); } else { if (sucess!=0) { alert("保存失败!"); } else { record.commit(); } } }); } else { buffalo.remoteCall("houseChargeService.updateFamilyMember",[record.get("id"),record.get("name")],function(reply) { var sucess = reply.getResult(); if (sucess==1) { alert("重复姓名!"); } else { if (sucess!=0) { alert("保存失败!"); } else { record.commit(); } } }); } } } function doDel(){ if(gridPanel.selModel.hasSelection()){ Ext.MessageBox.confirm('Message', '确定删除吗?', doDelDetail); } else { Ext.MessageBox.alert('Error', '请选中一行!'); } } function doDelDetail(btn) { if (btn == 'yes') { var record = ds.getAt(gridPanel.selModel.getSelectedCell()[0]); if (record.get("id")==-1) { ds.remove(record); } else { buffalo.remoteCall("houseChargeService.deleteFamilyMember",[record.get("id")],function(reply) { var sucess = reply.getResult(); if (sucess!=0) { alert(" 删除失败!"); } else { ds.remove(record); } }); } } } } }); incomeDaily.js
- incomeDailyWindow = Ext.extend(Ext.app.Module, {
- init : function(){
- this.launcher = {
text: '收入日记录', iconCls:'icon-grid', handler : this.createWindow, scope: this } }, createWindow : function(){ var desktop = this.app.getDesktop(); Ext.QuickTips.init(); Ext.form.Field.prototype.msgTarget = 'side'; var cm = new Ext.grid.ColumnModel([ { header: "收入项目", sortable: true, dataIndex: 'incomeItem_name', width: 100 },{ header: "日期", dataIndex: 'date', width:60, renderer:Ext.util.Format.dateRenderer('Y/m/d') },{ header: "金额", dataIndex: 'amount', align: 'right', width: 100 },{ header: "家庭成员", dataIndex: 'familyMember_name', width: 80 },{ header: "银行", dataIndex: 'bankAccount_bank', width: 120 },{ header: "帐号", dataIndex: 'bankAccount_accountNo', width: 120 },{ header:"备注", dataIndex: 'remark', width: 80 }]); cm.defaultSortable = true; var IncomeDaily = Ext.data.Record.create([ {name:'id',type:'int',mapping:'id'}, {name: 'incomeItem_name', type: 'string',mapping:'incomeItem.name'}, {name: 'date', type: 'date',dateFormat: 'Y/m/d',mapping:'date'}, {name: 'amount', type: 'float',mapping:'amount'}, {name: 'familyMember_name', type: 'string',mapping:'familyMember.name'}, {name: 'bankAccount_bank', type: 'string',mapping:'bankAccount.bank'}, {name: 'bankAccount_accountNo', type: 'string',mapping:'bankAccount.accountNo'}, {name: 'remark', type: 'string',mapping:'remark'} ]); var ds = new Ext.data.Store({ proxy: new Ext.data.DWRProxy(houseChargeService.findIncomeDaily), reader: new Ext.data.JsonReader({totalProperty:'total',root:'list',id:'id'},IncomeDaily), remoteSort: false, }); var gridPanel = new Ext.grid.EditorGridPanel({ ds:ds, cm: cm, sm: new Ext.grid.RowSelectionModel({singleSelect:true}), enableColLock:false, autoSizeColumns: true, buttonAlign:'top', tbar:[{ text: '新增', handler :doAdd },{ text: '查询', handler : doQuery },{ text: '删除', handler : doDel }], bbar:new Ext.PagingToolbar({ pageSize: 2, store: ds, displayInfo: true }) }); var win = desktop.getWindow('incomeDaily-win'); if(!win){ win = desktop.createWindow({ id: 'incomeDaily-win', title:'收入日记录', width:740, height:460, x:10, y:10, iconCls: 'icon-grid', shim:false, animCollapse:false, constrainHeader:true, layout: 'fit', items: gridPanel }); } win.show(); function doAdd() { var allIncomeItem=[]; buffalo.remoteCall("houseChargeService.findRootIncomeItem",[], function(reply) { getChild(reply.getResult()); function getChild(parent) { if (parent.children.lengt==0) { return 0; } for(var i=0; i allIncomeItem.push([parent.children[i].id,parent.children[i].name]); getChild(parent.children[i]); } } }); var allFamilyMember=[]; buffalo.remoteCall("houseChargeService.getAllFamilyMember",[],function(reply) { var list = reply.getResult(); for(var i=0; i allFamilyMember.push([list[i].id,list[i].name]); } }); var allBankAccount=[]; buffalo.remoteCall("houseChargeService.getAllBankAccount",[],function(reply) { var list = reply.getResult(); for(var i=0; i if (list[i].bank=="现金") { allBankAccount.push([list[i].id,list[i].bank]); } else { allBankAccount.push([list[i].id,list[i].bank+" "+list[i].accountNo+" "+list[i].cardNo]); } } }); var addForm = new Ext.FormPanel({ onSubmit: Ext.emptyFn, submit: function() { this.getEl().dom.submit(); }, labelWidth: 75, frame:true, title: '', bodyStyle:'padding: 0', width: 350, labelSeparator:'', items: [{ xtype:'combo', fieldLabel: '家庭成员', store: new Ext.data.SimpleStore({ fields: ["id","name"], data: allFamilyMember }), editable: false, hiddenName:'familyMember_id', displayField:'name', valueField:'id', typeAhead: true, mode: 'local', triggerAction: 'all', emptyText:'请选择家庭成员', selectOnFocus:true, resizable:true, allowBlank:false, forceSelection:true },{ xtype:'datefield', fieldLabel: '日期', name: 'date', width: 100, allowBlank: false, format:'Y/m/d' }, { xtype:'numberfield', fieldLabel: '金额', name: 'amount', width: 100, allowBlank: false, allowNegative: false, minValue: 0 },{ xtype:'combo', fieldLabel: '账户', store: new Ext.data.SimpleStore({ fields: ["id","name"], data: allBankAccount }), editable: false, hiddenName:'bankAccount_id', displayField:'name', valueField:'id', typeAhead: true, mode: 'local', triggerAction: 'all', emptyText:'请选择账户', selectOnFocus:true, resizable:true, allowBlank:false, forceSelection:true },{ xtype:'combo', fieldLabel: '收入项目', store: new Ext.data.SimpleStore({ fields: ["id","name"], data: allIncomeItem }), editable: false, hiddenName:'incomeItem_id', displayField:'name', valueField:'id', typeAhead: true, mode: 'local', triggerAction: 'all', emptyText:'请选择收入项目', selectOnFocus:true, resizable:true, allowBlank:false, forceSelection:true },{ xtype:'textfield', fieldLabel: '备注', name: 'remark', width:300 } ], buttons: [{ text: '保存', handler:function(){ if(addForm.form.isValid()){ var my=addForm.form.getValues(); buffalo.remoteCall("houseChargeService.createIncomeDaily",[parseInt(my.incomeItem_id),Date.parseDate(my.date, "Y/m/d"),parseFloat(my.amount),parseInt(my.familyMember_id),parseInt(my.bankAccount_id),my.remark],function(reply) { var sucess = reply.getResult(); if (sucess!=0) { alert("保存失败!"); } else { alert("保存成功!"); } }); addWindow.close(); } } },{ text: '放弃', handler: function(){ addWindow.close(); } }] }); var addWindow if(!addWindow){ addWindow = new Ext.Window({ id: 'incomeDaily-add-win', layout:'fit', width:500, height:300, plain: true, items:addForm }); } addWindow.show(this); addForm.form.setValues({date:(new Date()).format("Y/m/d"),familyMember_id:'1',bankAccount_id:'1',incomeItem_id:'2'}); addForm.form.render(); } function doQuery() { var allIncomeItem=[]; buffalo.remoteCall("houseChargeService.findRootIncomeItem",[], function(reply) { getChild(reply.getResult()); function getChild(parent) { if (parent.children.lengt==0) { return 0; } for(var i=0; i allIncomeItem.push([parent.children[i].id,parent.children[i].name]); getChild(parent.children[i]); } } }); var allFamilyMember=[]; buffalo.remoteCall("houseChargeService.getAllFamilyMember",[],function(reply) { var list = reply.getResult(); for(var i=0; i allFamilyMember.push([list[i].id,list[i].name]); } }); var allBankAccount=[]; buffalo.remoteCall("houseChargeService.getAllBankAccount",[],function(reply) { var list = reply.getResult(); for(var i=0; i if (list[i].bank=="现金") { allBankAccount.push([list[i].id,list[i].bank]); } else { allBankAccount.push([list[i].id,list[i].bank+" "+list[i].accountNo+list[i].cardNo]); } } }); var queryForm = new Ext.FormPanel({ onSubmit: Ext.emptyFn, submit: function() { this.getEl().dom.submit(); }, labelWidth: 75, frame:true, title: '', bodyStyle:'padding: 0', width: 350, labelSeparator:'', items: [{ xtype:'fieldset', checkboxName:'queryFamilyMember_id', checkboxToggle:true, title: '按家庭成员查询', autoHeight:true, defaults: {width: 210}, collapsed: true, items :[{ xtype:'combo', fieldLabel: '家庭成员', store: new Ext.data.SimpleStore({ fields: ["id","name"], data: allFamilyMember }), editable: false, hiddenName:'familyMember_id', displayField:'name', valueField:'id', typeAhead: true, mode: 'local', triggerAction: 'all', emptyText:'请选择家庭成员', selectOnFocus:true, resizable:true, allowBlank:false, forceSelection:true }] },{ xtype:'fieldset', checkboxToggle:true, checkboxName:'queryDate', title: '按日期查询', autoHeight:true, defaults: {width: 210}, collapsed: true, items :[{ xtype:'datefield', fieldLabel: '日期起', name: 'dateFrom', width: 100, allowBlank: false, format:'Y/m/d' },{ xtype:'datefield', fieldLabel: '日期迄', name: 'dateTo', width: 100, allowBlank: false, format:'Y/m/d' }] },{ xtype:'fieldset', checkboxTog
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/164811/viewspace-998527/
,如需转载,请注明出处,否则将追究法律责任。