category.js
上传用户:ouhalaa
上传日期:2016-03-17
资源大小:10210k
文件大小:9k
源码类别:

Web服务器

开发平台:

Java

  1. // --------------分类相关--------------
  2. var Category = Ext.data.Record.create([{
  3. name : 'categoryId',
  4. mapping : 'categoryId',
  5. type : 'int'
  6. }, {
  7. name : 'categoryName',
  8. mapping : 'categoryName',
  9. type : 'string'
  10. }, {
  11. name : 'subjectId',
  12. mapping : 'subjectId',
  13. type : 'int'
  14. }, {
  15. name : 'subjectName',
  16. mapping : 'subjectName',
  17. type : 'string'
  18. }, {
  19. name : 'remark',
  20. mapping : 'remark',
  21. type : 'string'
  22. }]);
  23. var subjectId;
  24. var ds_subject_select = new Ext.data.Store({
  25. proxy : new Ext.data.HttpProxy({
  26. url : 'findAllSubject.action'
  27. }),
  28. reader : new Ext.data.JsonReader({
  29. root : 'root'
  30. }, [{
  31. name : 'subjectId',
  32. type : 'int'
  33. }, {
  34. name : 'subjectName',
  35. type : 'string'
  36. }])
  37. });
  38. var cm_category = new Ext.grid.ColumnModel([new Ext.grid.RowNumberer(), {
  39. header : '分类名称',
  40. width : 90,
  41. dataIndex : 'categoryName',
  42. sortable : true,
  43. editor : new Ext.form.TextField({
  44. allowBlank : false,
  45. maxLength : 50
  46. })
  47. }, {
  48. header : '所属科目',
  49. width : 90,
  50. sortable : true,
  51. dataIndex : 'subjectName',
  52. editor : new Ext.form.ComboBox({
  53. store : ds_subject_select,
  54. displayField : 'subjectName',
  55. valueField : 'subjectName',
  56. mode : 'remote',
  57. allowBlank : false,
  58. editable : false,
  59. triggerAction : 'all',
  60. listWidth : 130,
  61. listeners : {
  62. 'select' : function(combo, record, index) {
  63. subjectId = record.data.subjectId;
  64. }
  65. }
  66. })
  67. }, {
  68. header : '备注',
  69. id : 'remark',
  70. dataIndex : 'remark',
  71. menuDisabled : true,
  72. editor : new Ext.form.TextField({
  73. maxLength : 200
  74. })
  75. }]);
  76. cm_category.defaultSortable = false;
  77. var window_add_category = new Ext.Window({
  78. title : '添加分类',
  79. width : 350,
  80. height : 440,
  81. resizable : false,
  82. autoHeight : true,
  83. modal : true,
  84. closeAction : 'hide',
  85. listeners : {
  86. 'hide' : function() {
  87. this.setTitle('添加分类');
  88. this.findById('category.categoryName').ownerCt.form.reset();
  89. }
  90. },
  91. items : [new Ext.FormPanel({
  92. labelWidth : 70,
  93. labelAlign : 'right',
  94. url : 'saveCategory.action',
  95. border : false,
  96. baseCls : 'x-plain',
  97. bodyStyle : 'padding:5px 5px 0',
  98. anchor : '100%',
  99. defaults : {
  100. width : 233,
  101. msgTarget : 'side'
  102. },
  103. defaultType : 'textfield',
  104. items : [{
  105. fieldLabel : '分类名称',
  106. id : 'category.categoryName',
  107. name : 'category.categoryName',
  108. allowBlank : false,
  109. maxLength : 50
  110. }, {
  111. xtype : 'combo',
  112. fieldLabel : '所属科目',
  113. id : 'subject',
  114. hiddenName : 'category.subjectId',
  115. valueField : 'subjectId',
  116. displayField : 'subjectName',
  117. mode : 'remote',
  118. store : ds_subject_select,
  119. selectOnFocus : true,
  120. editable : false,
  121. allowBlank : false,
  122. triggerAction : 'all',
  123. loadingText : '加载中...',
  124. emptyText : '科目名称',
  125. listeners : { // 获得下拉文本内容,解决id,value都要的情况
  126. 'select' : function(combo, record, index) {
  127. this.ownerCt.form.findField('category.subjectName').setValue(record.data.subjectName);
  128. }
  129. }
  130. }, {
  131. xtype : 'hidden',
  132. name : 'category.subjectName'
  133. }, {
  134. fieldLabel : '备注',
  135. name : 'category.remark',
  136. xtype : 'textarea',
  137. maxLength : 200
  138. }],
  139. buttonAlign : 'right',
  140. minButtonWidth : 60,
  141. buttons : [{
  142. text : '添加',
  143. handler : function(btn) {
  144. var frm = this.ownerCt.form;
  145. if (frm.isValid()) {
  146. btn.disable();
  147. var dnfield = frm.findField('category.categoryName');
  148. frm.submit({
  149. waitTitle : '请稍候',
  150. waitMsg : '正在提交表单数据,请稍候...',
  151. success : function(form, action) {
  152. var store = grid_category.getStore();
  153. if (store.data.length <= 20) {
  154. var category = new Category({
  155. categoryId : action.result.categoryId,
  156. categoryName : dnfield.getValue(),
  157. subjectId : form.findField('category.subjectId').getValue(),
  158. subjectName : Ext.get('subject').dom.value,
  159. remark : form.findField('category.remark').getValue()
  160. });
  161. store.insert(0, [category]);
  162. if (store.data.length > 20) {
  163. store.remove(store.getAt(store.data.length - 1));
  164. }
  165. }
  166. window_add_category.setTitle('[ ' + dnfield.getValue() + ' ]   添加成功!!');
  167. dnfield.reset();
  168. btn.enable();
  169. },
  170. failure : function() {
  171. Ext.Msg.show({
  172. title : '错误提示',
  173. msg : '"' + dnfield.getValue() + '" ' + '名称可能已经存在!',
  174. buttons : Ext.Msg.OK,
  175. fn : function() {
  176. dnfield.focus(true);
  177. btn.enable();
  178. },
  179. icon : Ext.Msg.ERROR
  180. });
  181. }
  182. });
  183. }
  184. }
  185. }, {
  186. text : '重置',
  187. handler : function() {
  188. this.ownerCt.form.reset();
  189. }
  190. }, {
  191. text : '取消',
  192. handler : function() {
  193. this.ownerCt.ownerCt.hide();
  194. }
  195. }]
  196. })]
  197. });
  198. var btn_add_category = new Ext.Button({
  199. text : '添加分类',
  200. iconCls : 'icon-add',
  201. handler : function() {
  202. window_add_category.show();
  203. }
  204. });
  205. var btn_del_category = new Ext.Button({
  206. text : '删除分类',
  207. iconCls : 'icon-del',
  208. handler : function() {
  209. var record = grid_category.getSelectionModel().getSelected();
  210. if (record) {
  211. Ext.Msg.confirm('确认删除', '你确定删除该条记录?', function(btn) {
  212. if (btn == 'yes') {
  213. Ext.Ajax.request({
  214. url : 'deleteCategory.action',
  215. params : {
  216. categoryId : record.data.categoryId
  217. },
  218. success : function() {
  219. grid_category.getStore().remove(record);
  220. },
  221. failure : function() {
  222. Ext.Msg.show({
  223. title : '错误提示',
  224. msg : '删除时发生错误!',
  225. buttons : Ext.Msg.OK,
  226. icon : Ext.Msg.ERROR
  227. });
  228. }
  229. });
  230. }
  231. });
  232. }
  233. }
  234. });
  235. var searchCategory = function() {
  236. ds_category.baseParams.conditions = text_search_category.getValue();// + ','
  237. // +
  238. // cbb_company_for_dept.getValue();
  239. ds_category.load({
  240. params : {
  241. start : 0,
  242. limit : 20
  243. }
  244. });
  245. }
  246. var btn_search_category = new Ext.Button({
  247. text : '查询',
  248. iconCls : 'icon-search',
  249. handler : searchCategory
  250. });
  251. var cbb_subject_for_category = new Ext.form.ComboBox({
  252. name : 'subjectName',
  253. width : 120,
  254. displayField : 'subjectName',
  255. mode : 'remote',
  256. store : ds_subject_select,
  257. selectOnFocus : true,
  258. triggerAction : 'all',
  259. loadingText : '加载中...',
  260. emptyText : '科目名称'
  261. });
  262. var text_search_category = new Ext.form.TextField({
  263. name : 'textSearchCategory',
  264. width : 200,
  265. emptyText : '多条件可用逗号或者空格隔开!',
  266. listeners : {
  267. 'specialkey' : function(field, e) {
  268. if (e.getKey() == Ext.EventObject.ENTER) {
  269. searchCategory();
  270. }
  271. }
  272. }
  273. });
  274. var ds_category = new Ext.data.Store({
  275. proxy : new Ext.data.HttpProxy({
  276. url : 'findAllCategory.action'
  277. }),
  278. reader : new Ext.data.JsonReader({
  279. totalProperty : 'totalProperty',
  280. root : 'root'
  281. }, [{
  282. name : 'categoryId',
  283. type : 'int'
  284. }, {
  285. name : 'categoryName',
  286. type : 'string'
  287. }, {
  288. name : 'subjectId',
  289. type : 'int'
  290. }, {
  291. name : 'subjectName',
  292. type : 'string'
  293. }, {
  294. name : 'remark',
  295. type : 'string'
  296. }])
  297. });
  298. var grid_category = new Ext.grid.EditorGridPanel({
  299. title : '分类管理',
  300. iconCls : 'icon-plugin',
  301. region : 'center',
  302. loadMask : {
  303. msg : '数据加载中...'
  304. },
  305. cm : cm_category,
  306. ds : ds_category,
  307. sm : new Ext.grid.RowSelectionModel({
  308. singleSelect : true
  309. }),
  310. enableColumnMove : false,
  311. trackMouseOver : false,
  312. frame : true,
  313. autoExpandColumn : 'remark',
  314. clicksToEdit : 1,
  315. tbar : [btn_add_category, '-', btn_del_category, '-', // cbb_company_for_dept,
  316. // '-',
  317. // '&nbsp;&nbsp;',
  318. text_search_category, btn_search_category],
  319. bbar : new Ext.PagingToolbar({
  320. pageSize : 20,
  321. store : ds_category,
  322. displayInfo : true,
  323. displayMsg : '第 {0} - {1} 条  共 {2} 条',
  324. emptyMsg : "没有记录"
  325. }),
  326. listeners : {
  327. 'afteredit' : function(e) {
  328. Ext.Ajax.request({
  329. url : 'updateCategory.action',
  330. params : {
  331. fieldName : e.field,
  332. fieldValue : e.value,
  333. subjectId : e.field == 'subjectName' ? subjectId : null,
  334. categoryId : e.record.data.categoryId
  335. },
  336. success : function() {
  337. // alert("数据修改成功!");
  338. },
  339. failure : function() {
  340. Ext.Msg.show({
  341. title : '错误提示',
  342. msg : '修改数据发生错误,操作将被回滚!',
  343. fn : function() {
  344. e.record.set(e.field, e.originalValue);
  345. },
  346. buttons : Ext.Msg.OK,
  347. icon : Ext.Msg.ERROR
  348. });
  349. }
  350. });
  351. }
  352. }
  353. });
  354. var p_category = {
  355. id : 'category-panel',
  356. border : false,
  357. layout : 'border',
  358. items : [grid_category]
  359. }