index.js 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474
  1. window.onload = function(){
  2. $('#loading-mask').fadeOut();
  3. };
  4. var onlyOpenTitle="欢迎使用";//不允许关闭的标签的标题
  5. $(function(){
  6. InitLeftMenu();
  7. tabClose();
  8. tabCloseEven();
  9. $("#btnSelectTemplete").click( function(){closeWindow();} );
  10. $("#editPwd").click(function(){
  11. openWin($("#editPwdDiv"), {
  12. title :'修改密码',
  13. width : 300,
  14. height : 180,
  15. onOpen : function() {
  16. $("#modifyPwdForm").form("reset");
  17. }
  18. });
  19. });
  20. $("#btnCancel").click(function(){
  21. closeWin($("#editPwdDiv"));
  22. });
  23. $("#btnEp").click(function() {
  24. $.messager.confirm('提示', '确定要修改密码吗?',
  25. function(result) {
  26. if (result) {
  27. ajaxRequest(WEBROOT + "/User/editPwd.action", {
  28. oldPwd : $("#txtOldPass").val(),
  29. newPwd : $("#txtNewPass").val()
  30. }, function(resp) {
  31. if(resp.code == "success") {
  32. showMsg('提示', '修改密码成功');
  33. closeWin($("#editPwdDiv"));
  34. } else {
  35. showMsg('提示', resp.errorDesc);
  36. }
  37. });
  38. }
  39. });
  40. });
  41. // 订单预警(每隔2分钟执行定时器去后台查询)
  42. if(_orderWarning){
  43. setInterval(function(){
  44. var url = WEBROOT + "/AbnormalDeliveryDocument/queryAbnormalDeliveryDocumentUnexecute.action";
  45. ajaxRequest(url, null, function(data) {
  46. if(data["count"]>0){
  47. var errorMsg = "有" + data["count"] + "笔订单未追回,请处理!";
  48. alertMsg("订单追回提示",errorMsg,"error");
  49. }
  50. });
  51. }, 120000);
  52. }
  53. });
  54. //初始化左侧
  55. function InitLeftMenu() {
  56. $("#nav").accordion({animate:false,fit:true,border:false});
  57. var selectedPanelname = '';
  58. if(_menus && _menus != null){
  59. $.each(_menus.menus, function(i, n) {
  60. if(n && n != null){
  61. var menulist ='';
  62. menulist +='<ul class="navlist">';
  63. $.each(n.children, function(j, o) {
  64. menulist += '<li><div><a ref="'+o.id+'" href="#" rel="' + WEBROOT+o.attributes.url + '"><span style="width:18px" class="icon '+o.attributes.iconCls+'">&nbsp;</span><span class="nav">' + o.name + '</span></a></div> ';
  65. if(o.children && o.children.length>0 && (o.attributes.url == null || o.attributes.url == "#")) {
  66. menulist += '<ul class="third_ul">';
  67. $.each(o.children,function(k,p){
  68. menulist += '<li><div><a ref="'+p.id+'" href="#" rel="' + WEBROOT+p.attributes.url + '"><span style="width:18px" class="icon '+p.attributes.iconCls+'" >&nbsp;</span><span class="nav">' + p.name + '</span></a></div> </li>';
  69. });
  70. menulist += '</ul>';
  71. }
  72. menulist+='</li>';
  73. });
  74. menulist += '</ul>';
  75. $('#nav').accordion('add', {
  76. title: n.name,
  77. content: menulist,
  78. border:false,
  79. iconCls: 'icon ' + n.attributes.iconCls
  80. });
  81. if(i==0) {
  82. selectedPanelname =n.name;
  83. }
  84. }
  85. });
  86. }
  87. $('#nav').accordion('select',selectedPanelname);
  88. $('.navlist li a').click(function(){
  89. var tabTitle = $(this).children('.nav').text();
  90. var url = $(this).attr("rel");
  91. var menuid = $(this).attr("ref");
  92. var icon = $(this).find('.icon').attr('class');
  93. var third = find(menuid);
  94. if(third && third.children && third.children.length>0 && (url == WEBROOT+'#' || url == WEBROOT+"undefined")) {
  95. $('.third_ul').slideUp();
  96. var ul =$(this).parent().next();
  97. if(ul.is(":hidden")) {
  98. ul.slideDown();
  99. }
  100. else {
  101. ul.slideUp();
  102. }
  103. }
  104. else{
  105. if(url != WEBROOT+"#") {
  106. addTab(tabTitle,url+"?functionId="+menuid,icon);
  107. }
  108. $('.navlist li div').removeClass("selected");
  109. $(this).parent().addClass("selected");
  110. }
  111. }).hover(function(){
  112. $(this).parent().addClass("hover");
  113. },function(){
  114. $(this).parent().removeClass("hover");
  115. });
  116. }
  117. //获取左侧导航的图标
  118. function getIcon(menuid){
  119. var icon = 'icon ';
  120. $.each(_menus.menus, function(i, n) {
  121. $.each(n.children, function(j, o) {
  122. if(o.id==menuid){
  123. icon += o.attributes.iconCls;
  124. }
  125. });
  126. });
  127. return icon;
  128. }
  129. function find(menuid){
  130. var obj=null;
  131. $.each(_menus.menus, function(i, n) {
  132. $.each(n.children, function(j, o) {
  133. if(o.id==menuid){
  134. obj = o;
  135. }
  136. });
  137. });
  138. return obj;
  139. }
  140. function addTab(subtitle,url,icon){
  141. if(!$('#tabs').tabs('exists',subtitle)){
  142. $('#tabs').tabs('add',{
  143. title:subtitle,
  144. content:createFrame(url),
  145. closable:true,
  146. icon:icon
  147. });
  148. }else{
  149. $('#tabs').tabs('select',subtitle);
  150. }
  151. tabClose();
  152. }
  153. function addOrUpdateTab(subtitle,url,icon){
  154. if($('#tabs').tabs('exists',subtitle)){
  155. $('#tabs').tabs('close',subtitle);
  156. }
  157. $('#tabs').tabs('add',{
  158. title:subtitle,
  159. content:createFrame(url),
  160. closable:true,
  161. icon:icon
  162. });
  163. tabClose();
  164. }
  165. function createFrame(url) {
  166. var s = '<iframe scrolling="auto" frameborder="0" src="'+url+'" style="width:100%;height:99.5%;"></iframe>';
  167. return s;
  168. }
  169. function tabClose() {/*双击关闭TAB选项卡*/
  170. $(".tabs-inner").dblclick(function(){
  171. var subtitle = $(this).children(".tabs-closable").text();
  172. $('#tabs').tabs('close',subtitle);
  173. });
  174. /*为选项卡绑定右键*/
  175. $(".tabs-inner").bind('contextmenu',function(e){
  176. $('#mm').menu('show', {
  177. left: e.pageX,
  178. top: e.pageY
  179. });
  180. var subtitle =$(this).children(".tabs-closable").text();
  181. $('#mm').data("currtab",subtitle);
  182. $('#tabs').tabs('select',subtitle);
  183. return false;
  184. });
  185. }
  186. //绑定右键菜单事件
  187. function tabCloseEven() {
  188. $('#mm').menu({
  189. onClick: function (item) {
  190. closeTab(item.id);
  191. }
  192. });
  193. return false;
  194. }
  195. function closeTab(action)
  196. {
  197. var alltabs = $('#tabs').tabs('tabs');
  198. var currentTab =$('#tabs').tabs('getSelected');
  199. var allTabtitle = [];
  200. $.each(alltabs,function(i,n){
  201. allTabtitle.push($(n).panel('options').title);
  202. });
  203. switch (action) {
  204. case "refresh":
  205. var iframe = $(currentTab.panel('options').content);
  206. var currtab_title = currentTab.panel('options').title;
  207. if(currtab_title != onlyOpenTitle) {
  208. var src = iframe.attr('src');
  209. $('#tabs').tabs('update', {
  210. tab: currentTab,
  211. options: {
  212. content: createFrame(src)
  213. }
  214. });
  215. }
  216. break;
  217. case "close":
  218. var currtab_title = currentTab.panel('options').title;
  219. if(currtab_title != onlyOpenTitle) {
  220. $('#tabs').tabs('close', currtab_title);
  221. }
  222. break;
  223. case "closeall":
  224. $.each(allTabtitle, function (i, n) {
  225. if (n != onlyOpenTitle){
  226. $('#tabs').tabs('close', n);
  227. }
  228. });
  229. break;
  230. case "closeother":
  231. var currtab_title = currentTab.panel('options').title;
  232. $.each(allTabtitle, function (i, n) {
  233. if (n != currtab_title && n != onlyOpenTitle)
  234. {
  235. $('#tabs').tabs('close', n);
  236. }
  237. });
  238. break;
  239. case "closeright":
  240. var tabIndex = $('#tabs').tabs('getTabIndex', currentTab);
  241. if (tabIndex == alltabs.length - 1){
  242. return false;
  243. }
  244. $.each(allTabtitle, function (i, n) {
  245. if (i > tabIndex) {
  246. if (n != onlyOpenTitle){
  247. $('#tabs').tabs('close', n);
  248. }
  249. }
  250. });
  251. break;
  252. case "closeleft":
  253. var tabIndex = $('#tabs').tabs('getTabIndex', currentTab);
  254. if (tabIndex == 1) {
  255. return false;
  256. }
  257. $.each(allTabtitle, function (i, n) {
  258. if (i < tabIndex) {
  259. if (n != onlyOpenTitle){
  260. $('#tabs').tabs('close', n);
  261. }
  262. }
  263. });
  264. break;
  265. }
  266. }
  267. function showTopMsg(title, msg){
  268. $.messager.show({
  269. title : title,
  270. msg : msg,
  271. style : {
  272. right : '',
  273. top : document.body.scrollTop+document.documentElement.scrollTop,
  274. bottom : ''
  275. }
  276. });
  277. }
  278. /**
  279. * 打印插件
  280. * @param config
  281. * @returns {PrintPlugIn}
  282. var config = {
  283. accountId:'AC130910000000100',
  284. warehouseId:'9',
  285. templeteType:'发货清单'
  286. };
  287. var printPlugIn = new PrintPlugIn(config);
  288. var orders ={ ORDER_ID:'2222' };
  289. var data =[];
  290. data.push( orders );
  291. printPlugIn.print(data);
  292. */
  293. function PrintPlugIn(config){
  294. var templeteType = config.templeteType;
  295. if( templeteType==null || templeteType==undefined || templeteType=="" ){
  296. alertMsg("打印出错","未设置打印类型","error");
  297. }
  298. this.requestHead = {
  299. Acccoutid: config.accountId ? config.accountId: ACCOUNTID,
  300. Warehouseid: config.warehouseId ? config.warehouseId:'',
  301. TempleteType:config.templeteType,
  302. TempleteName:config.templeteName ? config.templeteName:'' ,
  303. TempleteVersion: config.templeteVersion ? config.templeteVersion :1,
  304. ShowPreview: (config.showPreview==0) ? 0 :1,
  305. ShowPrinterSelect: (config.showPrinterSelect==0) ? 0 :1,
  306. AutoMatch: (config.autoMatch==0 )? 0 :1
  307. };
  308. this.getTempleteName = function(){
  309. var templeteNames = [] ;
  310. try{
  311. var printPlugIn = document.getElementById("PrintSQW");
  312. var requestData = {requestData:{
  313. Acccoutid:this.requestHead.Acccoutid,
  314. Warehouseid:this.requestHead.Warehouseid,
  315. TempleteType:this.requestHead.TempleteType
  316. }
  317. };
  318. var response = printPlugIn.GetTempleteList( JSON.stringify(requestData) );
  319. var resultJson = JSON.parse(response);
  320. if( resultJson.responseData.results.toUpperCase()=='ERROR'){
  321. alertMsg("打印出错",resultJson.responseData.Message,"error");
  322. }else{
  323. if( resultJson.responseData && resultJson.responseData.Datas && resultJson.responseData.Datas.length>0 ){
  324. var names = resultJson.responseData.Datas ;
  325. if( names!=null && names.length > 0 ){
  326. for( var i=0 ;i < names.length ;i++){
  327. templeteNames.push( names[i].Templete);
  328. }
  329. }
  330. }else{
  331. //alertMsg("打印出错","没有获取到打印模版","error");
  332. }
  333. }
  334. }catch(e){
  335. alertMsg("打印出错","获取打印模版出现异常:"+e.description,"error");
  336. }
  337. //templeteNames=['享佳出货单'];
  338. return templeteNames;
  339. };
  340. this.print = function(data){
  341. var me = this;
  342. if( this.requestHead.AutoMatch && this.requestHead.AutoMatch==1 ){
  343. //自动匹配
  344. this.callPrint(this.requestHead,data);
  345. }else{
  346. this.requestHead.AutoMatch=0;
  347. var templeteNames = this.getTempleteName();
  348. if( templeteNames==null || templeteNames.length ==0 ){
  349. alertMsg("打印出错","未找到打印模版,请检查模版是否更新","error");
  350. return ;
  351. }
  352. if( templeteNames.length ==1 ){
  353. this.requestHead.TempleteName = templeteNames[0];
  354. this.callPrint(this.requestHead,data);
  355. }else{
  356. var temps = [];
  357. for(var i=0;i<templeteNames.length;i++){
  358. temps.push({id:templeteNames[i],text:templeteNames[i] });
  359. }
  360. $("#templeteList").combobox("clear");
  361. $("#templeteList").combobox("loadData",temps);
  362. $("#templeteList").combobox("select",temps[0].id);
  363. showWindow({
  364. title:'选择模版',
  365. width:500,
  366. height:200,
  367. onOpen:function() {
  368. },
  369. onClose: function() {
  370. me.requestHead.TempleteName = $("#templeteList").combobox("getValue");
  371. me.requestHead.AutoMatch=0;
  372. me.callPrint(me.requestHead,data);
  373. $('.validatebox-tip').remove();
  374. }
  375. });
  376. }
  377. }
  378. };
  379. this.callPrint = function(requestHead, data){
  380. try{
  381. var printPlugIn = document.getElementById("PrintSQW");
  382. requestHead.PrintDatas=[];
  383. if( $.isArray(data)){
  384. for( var i=0;i<data.length;i++ ){
  385. requestHead.PrintDatas=[];
  386. requestHead.PrintDatas=[data[i]];
  387. var reqData = {requestData:requestHead};
  388. var responseStr = printPlugIn.Print( JSON.stringify( reqData ) );
  389. var response = JSON.parse(responseStr);
  390. if( response.responseData.results.toUpperCase()=='ERROR'){
  391. if( i !=( data.length -1) ){
  392. var isPrint = confirm("打印出现异常:"+ response.responseData.results.Message +",要继续打印吗?" );
  393. if( isPrint== false ){
  394. break;
  395. }
  396. }else{
  397. alertMsg("打印出错",response.responseData.Message,"error");
  398. }
  399. }
  400. }
  401. }else{
  402. requestHead.PrintDatas=[];
  403. requestHead.PrintDatas=[data];
  404. var reqData = {requestData:requestHead};
  405. var responseStr = printPlugIn.Print( JSON.stringify( reqData ) );
  406. var response = JSON.parse(responseStr);
  407. if( response.results.toUpperCase()=='ERROR'){
  408. alertMsg("打印出错",response.Message,"error");
  409. }
  410. }
  411. }catch(e){
  412. alertMsg("打印出错","执行打印出现异常:"+e.description,"error");
  413. }
  414. };
  415. }
  416. /**
  417. * 获取电子秤上的重量
  418. * @returns
  419. */
  420. function getWeight(){
  421. try{
  422. var etcscale = document.getElementById("etcscale.EtcScaleContainer");
  423. return etcscale.getValue();
  424. }catch(e){
  425. return "";
  426. }
  427. }