Feedback.js 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334
  1. Ext.QuickTips.init();
  2. Ext.define('erp.controller.sys.Feedback', {
  3. extend: 'Ext.app.Controller',
  4. FormUtil: Ext.create('erp.util.FormUtil'),
  5. BaseUtil: Ext.create('erp.util.BaseUtil'),
  6. views:[
  7. 'core.form.Panel','sys.Feedback','core.form.MultiField','core.button.Reply',
  8. 'core.button.Add','core.button.Submit','core.button.ResSubmit','core.button.Audit','core.button.Save','core.button.Close','core.button.Print',
  9. 'core.button.Upload','core.button.Update','core.button.Delete','core.button.ResAudit','core.button.ForBidden',
  10. 'core.button.ResForBidden','core.form.FileField','core.button.TurnProject','core.button.TurnBuglist','core.button.Checktask','core.button.Endfeedback',
  11. 'core.trigger.TextAreaTrigger','core.trigger.DbfindTrigger','core.form.YnField','core.trigger.AutoCodeTrigger','core.button.Canceltask'
  12. ],
  13. init:function(){
  14. var me = this;
  15. this.control({
  16. 'htmleditor[name=fb_uasdetail]':{
  17. beforerender: function(field){
  18. if(caller=='ReFeedback'){
  19. field.readOnly=true;
  20. field.columnWidth=1;
  21. }else{
  22. field.readOnly=false;
  23. field.columnWidth=1;
  24. }
  25. }
  26. },
  27. 'erpFormPanel': {
  28. },
  29. 'erpSaveButton': {
  30. click: function(btn){
  31. var form = me.getForm(btn);
  32. if(Ext.getCmp(form.codeField).value == null || Ext.getCmp(form.codeField).value == ''){
  33. me.BaseUtil.getRandomNumber();//自动添加编号
  34. }
  35. this.FormUtil.beforeSave(this);
  36. }
  37. },
  38. 'erpDeleteButton' : {
  39. click: function(btn){
  40. me.FormUtil.onDelete(Ext.getCmp('fb_id').value);
  41. }
  42. },
  43. 'erpTurnProject' : {
  44. click: function(btn){
  45. /*me.FormUtil.onDelete(Ext.getCmp('fb_id').value);*/
  46. }
  47. },
  48. 'erpCanceltaskButton':{
  49. click: function(btn){
  50. Ext.Ajax.request({
  51. url : basePath + '/sys/feedback/canceltask.action',
  52. params: {
  53. id: Ext.getCmp('fb_id').value,
  54. },
  55. method : 'post',
  56. callback : function(options,success,response){
  57. var localJson = new Ext.decode(response.responseText);
  58. if(localJson.exceptionInfo){
  59. var str = localJson.exceptionInfo;
  60. showError(str);
  61. }else{
  62. alert('修改成功!');
  63. }
  64. }
  65. });
  66. }
  67. },
  68. 'erpTurnBuglist' : {
  69. click: function(btn){
  70. var form= Ext.getCmp('form');
  71. Ext.Ajax.request({
  72. url : basePath + form.turnBuglistUrl,
  73. params: {
  74. id: Ext.getCmp('fb_id').value
  75. },
  76. method : 'post',
  77. callback : function(options,success,response){
  78. var localJson = new Ext.decode(response.responseText);
  79. if(localJson.exceptionInfo){
  80. var str = localJson.exceptionInfo;
  81. showError(str);
  82. }else{
  83. window.location.href = basePath + "jsps/plm/test/newchecklist.jsp?formCondition=cl_idIS" + localJson.id+"&gridCondition=cld_clidIS"+localJson.id;
  84. }
  85. }
  86. });
  87. }
  88. },
  89. 'erpUpdateButton': {
  90. click: function(btn){
  91. this.FormUtil.onUpdate(this);
  92. }
  93. },
  94. 'erpAddButton': {
  95. click: function(){
  96. me.FormUtil.onAdd('addFeedback', '新增系统问题反馈', 'jsps/sys/Feedback.jsp?caller=Feedback');
  97. }
  98. },
  99. 'erpCloseButton': {
  100. click: function(btn){
  101. me.FormUtil.beforeClose(me);
  102. }
  103. },
  104. 'erpSubmitButton': {
  105. afterrender: function(btn){
  106. var status = Ext.getCmp('fb_statuscode');
  107. if(status && status.value != 'ENTERING'){
  108. btn.hide();
  109. }
  110. },
  111. click: function(btn){
  112. me.FormUtil.onSubmit(Ext.getCmp('fb_id').value);
  113. }
  114. },
  115. 'erpResSubmitButton': {
  116. afterrender: function(btn){
  117. var status = Ext.getCmp('fb_statuscode');
  118. if(status && status.value != 'COMMITED'){
  119. btn.hide();
  120. }
  121. },
  122. click: function(btn){
  123. me.FormUtil.onResSubmit(Ext.getCmp('fb_id').value);
  124. }
  125. },
  126. 'erpReplyButton': {
  127. afterrender: function(btn){
  128. var status = Ext.getCmp('fb_statuscode');
  129. if(status && status.value != 'AUDITED'){
  130. btn.hide();
  131. }
  132. },
  133. click: function(btn){
  134. var form= Ext.getCmp('form');
  135. Ext.Ajax.request({
  136. url : basePath + form.replyUrl,
  137. params: {
  138. id: Ext.getCmp('fb_id').value,
  139. comment:Ext.getCmp('fb_uasdetail').getValue(),
  140. },
  141. method : 'post',
  142. callback : function(options,success,response){
  143. var localJson = new Ext.decode(response.responseText);
  144. if(localJson.exceptionInfo){
  145. var str = localJson.exceptionInfo;
  146. showError(str);
  147. }else{
  148. alert('回复成功');
  149. window.location.href = basePath + "jsps/sys/Feedback.jsp?caller=UASFeedback&&formCondition=fb_idIS" + Ext.getCmp('ts_id').value;
  150. }
  151. }
  152. });
  153. }
  154. },
  155. 'erpAuditButton': {
  156. afterrender: function(btn){
  157. var status = Ext.getCmp('fb_statuscode');
  158. if(status && status.value != 'COMMITED'){
  159. btn.hide();
  160. }
  161. },
  162. click: function(btn){
  163. me.FormUtil.onAudit(Ext.getCmp('fb_id').value);
  164. }
  165. },
  166. 'dbfindtrigger[name=fb_module]': {
  167. afterrender: function(f){
  168. f.onTriggerClick = function(){
  169. me.getModuleTree();
  170. };
  171. f.autoDbfind = false;
  172. }
  173. },
  174. 'treepanel': {
  175. itemmousedown: function(selModel, record){
  176. var tree = selModel.ownerCt;
  177. me.loadTree(tree, record);
  178. }
  179. },
  180. 'erpChecktaskButton':{
  181. click: function(btn){
  182. Ext.Ajax.request({
  183. url : basePath + '/sys/feedback/changestatus.action',
  184. params: {
  185. id: Ext.getCmp('fb_id').value,
  186. },
  187. method : 'post',
  188. callback : function(options,success,response){
  189. var localJson = new Ext.decode(response.responseText);
  190. if(localJson.exceptionInfo){
  191. var str = localJson.exceptionInfo;
  192. showError(str);
  193. }else{
  194. alert('修改成功!');
  195. }
  196. }
  197. });
  198. }
  199. },
  200. 'erpEndfeedbackButton':{
  201. click: function(btn){
  202. Ext.Ajax.request({
  203. url : basePath + '/sys/feedback/Endfeedback.action',
  204. params: {
  205. id: Ext.getCmp('fb_id').value,
  206. },
  207. method : 'post',
  208. callback : function(options,success,response){
  209. var localJson = new Ext.decode(response.responseText);
  210. if(localJson.exceptionInfo){
  211. var str = localJson.exceptionInfo;
  212. showError(str);
  213. }else{
  214. alert('修改成功!');
  215. }
  216. }
  217. });
  218. }
  219. },
  220. 'erpResAuditButton': {
  221. afterrender: function(btn){
  222. var status = Ext.getCmp('fb_statuscode');
  223. if(status && status.value != 'AUDITED'){
  224. btn.hide();
  225. }
  226. },
  227. click: function(btn){
  228. me.FormUtil.onResAudit(Ext.getCmp('fb_id').value);
  229. }
  230. }
  231. });
  232. },
  233. getForm: function(btn){
  234. return btn.ownerCt.ownerCt;
  235. },
  236. getModuleTree: function(){
  237. var w = Ext.create('Ext.Window',{
  238. title: '查找模板',
  239. height: "100%",
  240. width: "80%",
  241. maximizable : true,
  242. buttonAlign : 'center',
  243. layout : 'anchor',
  244. items: [{
  245. anchor: '100% 100%',
  246. xtype: 'treepanel',
  247. rootVisible: false,
  248. useArrows: true,
  249. store: Ext.create('Ext.data.TreeStore', {
  250. root : {
  251. text: 'root',
  252. id: 'root',
  253. expanded: true
  254. }
  255. })
  256. }],
  257. buttons : [{
  258. text : '关 闭',
  259. iconCls: 'x-button-icon-close',
  260. cls: 'x-btn-gray',
  261. handler : function(btn){
  262. btn.ownerCt.ownerCt.close();
  263. }
  264. },{
  265. text: '确定',
  266. iconCls: 'x-button-icon-confirm',
  267. cls: 'x-btn-gray',
  268. handler: function(btn){
  269. var t = btn.ownerCt.ownerCt.down('treepanel');
  270. if(!Ext.isEmpty(t.title)) {
  271. Ext.getCmp('fb_module').setValue(t.title);
  272. }
  273. btn.ownerCt.ownerCt.close();
  274. }
  275. }]
  276. });
  277. w.show();
  278. this.loadTree(w.down('treepanel'), null);
  279. },
  280. loadTree: function(tree, record){
  281. var pid = 0;
  282. if(record) {
  283. if (record.get('leaf')) {
  284. return;
  285. } else {
  286. if(record.isExpanded() && record.childNodes.length > 0){
  287. record.collapse(true, true);//收拢
  288. return;
  289. } else {
  290. if(record.childNodes.length != 0){
  291. record.expand(false, true);//展开
  292. return;
  293. }
  294. }
  295. }
  296. pid = record.get('id');
  297. }
  298. tree.setLoading(true);
  299. Ext.Ajax.request({
  300. url : basePath + 'common/lazyTree.action',
  301. params: {
  302. parentId: pid,
  303. condition: 'sn_using=1'
  304. },
  305. callback : function(options,success,response){
  306. tree.setLoading(false);
  307. var res = new Ext.decode(response.responseText);
  308. if(res.tree){
  309. if(record) {
  310. record.appendChild(res.tree);
  311. record.expand(false,true);//展开
  312. tree.setTitle(record.getPath('text', '/').replace('root', '').replace('//', '/'));
  313. } else {
  314. tree.store.setRootNode({
  315. text: 'root',
  316. id: 'root',
  317. expanded: true,
  318. children: res.tree
  319. });
  320. }
  321. } else if(res.exceptionInfo){
  322. showError(res.exceptionInfo);
  323. }
  324. }
  325. });
  326. }
  327. });