site.html 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874
  1. <!DOCTYPE HTML>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <meta name="renderer" content="webkit|ie-comp|ie-stand">
  6. <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  7. <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" />
  8. <meta http-equiv="Cache-Control" content="no-siteapp" />
  9. <!--[if lt IE 9]>
  10. <script type="text/javascript" src="${ctx}/assets/lib/html5.js"></script>
  11. <script type="text/javascript" src="${ctx}/assets/lib/respond.min.js"></script>
  12. <script type="text/javascript" src="${ctx}/assets/lib/PIE_IE678.js"></script>
  13. <![endif]-->
  14. <link rel="stylesheet" type="text/css" href="${ctx}/assets/static/h-ui/css/H-ui.min.css" />
  15. <link rel="stylesheet" type="text/css" href="${ctx}/assets/static/h-ui.admin/css/H-ui.admin.css" />
  16. <link rel="stylesheet" type="text/css" href="${ctx}/assets/lib/Hui-iconfont/1.0.7/iconfont.css" />
  17. <link rel="stylesheet" type="text/css" href="${ctx}/assets/lib/icheck/icheck.css" />
  18. <link rel="stylesheet" type="text/css" href="${ctx}/assets/static/h-ui.admin/skin/default/skin.css" id="skin" />
  19. <link rel="stylesheet" type="text/css" href="${ctx}/assets/static/h-ui.admin/css/style.css" />
  20. <script type="text/ecmascript" src="${ctx}/assets/lib/jquery/1.9.1/jquery.js"></script>
  21. <script type="text/javascript" src="${ctx}/assets/static/h-ui/js/H-ui.js"></script>
  22. <script type="text/javascript" src="${ctx}/assets/lib/layer/3.0.3/layer.js"></script>
  23. <script type="text/javascript" src="${ctx}/assets/js/validate.js"></script>
  24. <link rel="stylesheet" type="text/css" media="screen" href="${ctx}/assets/lib/jqueryui/jquery-ui.css" />
  25. <link rel="stylesheet" type="text/css" media="screen" href="${ctx}/assets/lib/jqgrid/css/ui.jqgrid.css" />
  26. <script type="text/ecmascript" src="${ctx}/assets/lib/jqueryui/jquery-ui.js"></script>
  27. <script type="text/ecmascript" src="${ctx}/assets/lib/jqgrid/js/i18n/grid.locale-cn.js"></script>
  28. <script type="text/ecmascript" src="${ctx}/assets/lib/jqgrid/js/jquery.jqGrid.min.js"></script>
  29. <link rel="stylesheet" href="${ctx}/assets/lib/zTree/v3/css/zTreeStyle/zTreeStyle.css" type="text/css">
  30. <script type="text/javascript" src="${ctx}/assets/lib/zTree/v3/js/jquery.ztree.all-3.5.min.js"></script>
  31. <script type="text/javascript" src="${ctx}/assets/js/base.js"></script>
  32. <style type="text/css">
  33. ul.ztree {margin-top: 10px;border: 1px solid #617775;background: #f0f6e4;width:220px;height:360px;overflow-y:scroll;overflow-x:auto;}
  34. </style>
  35. <!--[if IE 6]>
  36. <script type="text/javascript" src="${ctx}/assets/lib/DD_belatedPNG_0.0.8a-min.js" ></script>
  37. <script>DD_belatedPNG.fix('*');</script>
  38. <![endif]-->
  39. <style type="text/css">
  40. select{width: 243px;}
  41. input{outline:none;line-height:28px;height:28px;border:#ddd 1px solid;}
  42. </style>
  43. <script type="text/javascript">
  44. function addRow(parentid){
  45. $("#tablefield").append("<li style='margin-top:10px;height:30px;float:left;width:100%;'><form><input type='hidden' name='oper' value='add'><input type='hidden' name='site.parentid' value='"+parentid+"'><dt style='width:40%;text-align:center;float:left;'><input type='text' name='site.sitename' class='sitename' maxlength='30' size='30' vmode='not null' vdisp='站点名称' vtype='string'></dt><dd style='width:40%;text-align:center;float:left;'><input type='text' name='site.siteid' class='siteid' maxlength='30' size='30' vmode='not null' vdisp='站点编号' vtype='string'></dd><i style='float:left;width:20%;text-align:center;'><input style='padding:0 10px;' type='button' value='删除' onclick='deleteRow(this)'></i></form></li>");
  46. }
  47. function deleteRow(obj){
  48. $(obj).parents("li").remove();
  49. }
  50. $(function() {
  51. $("body").on("change", ".sitename", function(){
  52. var _this=$(this);
  53. if(_this.val()!=""){
  54. $.post("${ctx}/myconsole/pinyin/getFirstSpell",{"chinese":_this.val()},function(data){
  55. _this.parents("li").find(".siteid").val(data);
  56. })
  57. }
  58. })
  59. $(window).resize(function(){
  60. $("#tree").setGridWidth($(window).width()-40); 
  61. });
  62. $("#tree").jqGrid({
  63. caption:'站点管理',
  64. url : '${ctx}/myconsole/site/getByTree',
  65. editurl:"${ctx}/myconsole/site/saveOrUpdate", //定义对form编辑时的url
  66. mtype : "POST", // ajax提交方式。POST或者GET,默认GET
  67. hoverrows:false, // 当为false时mouse hovering会被禁用 默认 false
  68. viewrecords:false, // 定义是否要显示总记录数
  69. gridview:true, // 构造一行数据后添加到grid中,如果设为true则是将整个表格的数据都构造完成后再添加到grid中,但treeGrid, subGrid, or afterInsertRow 不能用 默认为false
  70. height:"auto", // 表格高度,可以是数字,像素值或者百分比
  71. rowNum:100, // 在grid上显示记录条数,这个参数是要被传递到后台
  72. scrollrows:true, // 当为true时让所选择的行可见
  73. treeGrid:true, // 启用或者禁用treegrid模式 默认false
  74. ExpandColumn:"sitename", // 指定那列来展开tree grid,默认为第一列,只有在treeGrid为true时起作用
  75. treedatatype:"json", // 数据类型,通常情况下与datatype相同,不会变
  76. treeGridModel:"adjacency", // treeGrid所使用的方法
  77. sortorder:"asc", // 排序顺序,升序或者降序(asc or desc) 默认asc
  78. autowidth : true, // 如果为ture时,则当表格在首次被创建时会根据父元素比例重新调整表格宽度。如果父元素宽度改变,为了使表格宽度能够自动调整则需要实现函数:setGridWidth 默认 false
  79. datatype:"json",
  80. pager:"#pager", // 定义翻页用的导航栏,必须是有效的html元素。翻页工具栏可以放置在html页面任意位置
  81. prmNames : { //定义表单的主键 // Default valuesprmNames: {page:“page”,rows:“rows”, sort: “sidx”,order: “sord”, search:“_search”, nd:“nd”, npage:null} 当参数为null时不会被发到服务器端
  82. id: "siteid", 
  83. oper:"oper",    
  84. addoper:"add",
  85. editoper:"edit",
  86. deloper:"del" 
  87. },
  88. colModel : [ {
  89. label : '数据编号',
  90. name : 'keyid',
  91. editable: false,
  92. hidden:true
  93. }, {
  94. label : '站点名称',
  95. name : 'sitename',
  96. editable: true,
  97. edittype:"text",
  98. width : 100,
  99. sortable:false,
  100. editoptions: {
  101. size:31,
  102. maxlength: 50
  103. },
  104. editrules:{
  105. required: true
  106. },
  107. formoptions:{
  108. elmsuffix:" <span style='color:red'>*</span>",
  109. rowpos:1,
  110. colpos:1
  111. }
  112. },{
  113. label : '站点编号',
  114. name : 'siteid',
  115. editable: true,
  116. edittype: "text",
  117. key : true,
  118. width : 50,
  119. sortable:false,
  120. editoptions: {
  121. size:31,
  122. maxlength: 50
  123. },
  124. editrules:{
  125. edithidden:true,
  126. required: true,
  127. custom:true, 
  128. custom_func: function(strFieldValue, strFieldName){
  129. var strEnglish = /^([a-zA-Z|\s*]+)?$/;
  130.  if(!strEnglish.test(strFieldValue)){
  131.    return [false, strFieldName+"应该为纯粹的大小写英文字母,不能包含汉字,数字或者符号!"];
  132.   }
  133. else
  134. {
  135.   return [true,""];
  136. }
  137. }
  138. },
  139. formoptions:{
  140. elmsuffix:"<span style='color:red'>*</span>首次保存后将不允许修改",
  141. rowpos:1,
  142. colpos:2
  143. }
  144. },{
  145. label : '上级站点',
  146. name : 'parentid',
  147. editable: true,
  148. edittype: "text",
  149. hidden : true,
  150. width : 100,
  151. editoptions: {
  152. maxlength: 50
  153. },
  154. formoptions:{
  155. rowpos:2,
  156. colpos:1
  157. },
  158. editrules:{edithidden:true}
  159. },{
  160. label : '模板组',
  161. name : 'templategroupkeyid',
  162. editable: true,
  163. width : 100,
  164. formatter:"select",
  165. edittype: "select",
  166. width : 30,
  167. editrules:{
  168. edithidden : true
  169. },
  170. editoptions:{
  171. value:"${templateGroupKeyIDOption}"
  172. },
  173. formoptions:{
  174. rowpos:2,
  175. colpos:2
  176. }
  177. },{
  178. label : 'PC端模板',
  179. name : 'pctemplet',
  180. editable: true,
  181. hidden : true,
  182. edittype: "select",
  183. width : 30,
  184. editrules:{
  185. edithidden : true
  186. },
  187. editoptions:{
  188. value:"${indextemplet}"
  189. },
  190. formoptions:{
  191. width : 30,
  192. rowpos:3,
  193. colpos:1
  194. }
  195. },{
  196. label : '移动端模板',
  197. name : 'mobiletemplet',
  198. editable: true,
  199. hidden : true,
  200. edittype: "select",
  201. width : 30,
  202. editrules:{
  203. edithidden : true
  204. },
  205. editoptions:{
  206. value:"${indextemplet}"
  207. },
  208. formoptions:{
  209. width : 30,
  210. rowpos:3,
  211. colpos:2
  212. }
  213. },{
  214. label : '排序值',
  215. name : 'sortid',
  216. editable: true,
  217. hidden : true,
  218. edittype: "text",
  219. width : 100,
  220. editoptions: {
  221. size:31,
  222. maxlength: 5
  223. },
  224. editrules:{
  225. edithidden:true,
  226. required: true,
  227. custom:true, 
  228. custom_func: function(strFieldValue, strFieldName){
  229. var strFloat = /^([-\+]?(((\d+)(\.\d+))|(\.\d+)|(\d*)))?$/;
  230.  if(!strFloat.test(strFieldValue)){
  231.    return [false, strFieldName+"应该为实数"];
  232.   }
  233. else
  234. {
  235.   return [true,""];
  236. }
  237. }
  238. },
  239. formoptions:{
  240. elmsuffix:" <span style='color:red'>*</span>",
  241. rowpos:4,
  242. colpos:1
  243. }
  244. },{
  245. label : '站点状态',
  246. name : 'tstate',
  247. editable: true,
  248. edittype: "select",
  249. width : 50,
  250. sortable:false,
  251. editrules:{
  252. edithidden : true
  253. },
  254. editoptions:{
  255. maxlength: 40,
  256. value : "启用:启用;停用:停用"
  257. },
  258. formoptions:{
  259. rowpos:4,
  260. colpos:2
  261. }
  262. },{
  263. label : 'SEO标题',
  264. name : 'seotitle',
  265. editable: true,
  266. hidden : true,
  267. edittype: "text",
  268. width : 100,
  269. editrules:{
  270. edithidden : true
  271. },
  272. editoptions: {
  273. size:31,
  274. maxlength: 50
  275. },
  276. formoptions:{
  277. rowpos:5,
  278. colpos:1
  279. }
  280. },{
  281. label : 'SEO关键字',
  282. name : 'seokeyword',
  283. editable: true,
  284. hidden : true,
  285. edittype: "text",
  286. width : 100,
  287. editrules:{
  288. edithidden : true
  289. },
  290. editoptions: {
  291. size:31,
  292. maxlength: 50
  293. },
  294. formoptions:{
  295. rowpos:5,
  296. colpos:2
  297. }
  298. }, {
  299. label : 'SEO描述',
  300. name : 'seodesc',
  301. editable: true,
  302. width : 100,
  303. edittype : "textarea",
  304. hidden : true,
  305. editrules:{
  306. edithidden : true
  307. },
  308. editoptions: {
  309. dataInit: function(elem){
  310. $(elem).width(565);
  311. },
  312. maxlength: 200,
  313. rows:"4",
  314. cols:"80"
  315. },
  316. formoptions:{
  317. rowpos:6,
  318. colpos:1
  319. }
  320. }, {
  321. label : '版权信息',
  322. name : 'copyright',
  323. editable: true,
  324. width : 100,
  325. edittype : "textarea",
  326. hidden : true,
  327. editrules:{
  328. edithidden : true
  329. },
  330. editoptions: {
  331. dataInit: function(elem){
  332. $(elem).width(565);
  333. },
  334. maxlength: 400,
  335. rows:"4",
  336. cols:"80"
  337. },
  338. formoptions:{
  339. rowpos:6,
  340. colpos:2
  341. }
  342. },{
  343. label : '存储空间',
  344. name : 'savespace',
  345. editable: true,
  346. hidden : true,
  347. edittype: "select",
  348. width : 30,
  349. editrules:{
  350. edithidden : true
  351. },
  352. editoptions:{
  353. value:"${dic_savespace}"
  354. },
  355. formoptions:{
  356. width : 30,
  357. rowpos:7,
  358. colpos:1
  359. }
  360. },{
  361. label : '是否静态化',
  362. name : 'isstatic',
  363. editable: true,
  364. hidden : true,
  365. edittype: "select",
  366. width : 50,
  367. editrules:{
  368. edithidden : true
  369. },
  370. editoptions:{
  371. maxlength: 40,
  372. value : "是:是;否:否"
  373. },
  374. formoptions:{
  375. rowpos:7,
  376. colpos:2
  377. }
  378. },{
  379. label : '图片水印',
  380. name : 'watermarkid',
  381. editable: true,
  382. hidden : true,
  383. edittype: "select",
  384. width : 50,
  385. editrules:{
  386. edithidden : true
  387. },
  388. editoptions:{
  389. maxlength: 40,
  390. value : "${dic_watermark}"
  391. },
  392. formoptions:{
  393. rowpos:8,
  394. colpos:1
  395. }
  396. },{
  397. label : '地址前缀',
  398. name : 'urlprefix',
  399. editable: true,
  400. hidden : true,
  401. edittype: "select",
  402. width : 50,
  403. editrules:{
  404. edithidden : true
  405. },
  406. editoptions:{
  407. maxlength: 40,
  408. value : "true:是;false:否"
  409. },
  410. formoptions:{
  411. rowpos:8,
  412. colpos:2
  413. }
  414. }, {
  415. label : '发布规则',
  416. name : 'urlrulegroupkeyid',
  417. editable: true,
  418. width : 100,
  419. edittype: "select",
  420. formatter:"select",
  421. hidden : true,
  422. editrules:{
  423. required: true,
  424. edithidden : true
  425. },
  426. editoptions: {
  427. dataInit: function(elem){
  428. $(elem).width(225);
  429. },
  430. maxlength: 10,
  431. value : "${urlRuleGroupKeyIDs}"
  432. },
  433. formoptions:{
  434. elmsuffix:" <span style='color:red'>*</span>",
  435. rowpos:9,
  436. colpos:1
  437. }
  438. }, {
  439. label : '创建人',
  440. name : 'insertusername',
  441. width : 60,
  442. editable: false,
  443. sortable:false,
  444. edittype:"text"
  445. }, {
  446. label : '创建时间',
  447. name : 'inserttime',
  448. width : 60,
  449. editable: false,
  450. sortable:false,
  451. edittype:"text"
  452. }, {
  453. "name":"treelevel",
  454. "hidden":true
  455. } ],
  456. "treeReader":{
  457. "level_field":"treelevel",
  458. "leaf_field":"isleaf",
  459. "expanded_field":"expanded",
  460. "loaded":"loaded",
  461. "parent_id_field":"parentid",
  462. "icon_field":"icon"
  463. },
  464. loadComplete: function() {
  465. var jsonSelfButtonFlag=${selfbuttonflag};
  466. if (jsonSelfButtonFlag.copy==false){
  467. $('td[title="复制新建"]').hide();
  468. }
  469. }
  470. });
  471. function getSiteURL(){
  472. var siteName=$("#sitename").val();
  473. if(siteName!=""){
  474. $.post("${ctx}/myconsole/pinyin/getFirstSpell",{"chinese":$("#sitename").val()},function(data){
  475. $("#siteid").val(data);
  476. })
  477. }
  478. }
  479. jQuery('#tree').jqGrid('navGrid','#pager',
  480. {
  481. ${buttonflag}
  482. search : false,
  483. refresh : true,
  484. view : false,
  485. position : "left",
  486. cloneToTop : true
  487. },
  488. //编辑按钮事件处理
  489. {
  490. closeAfterEdit : true,
  491. recreateForm : true,
  492. width:800,
  493. afterShowForm : function(formid) {
  494. var siteidObj = formid.find('#siteid');
  495. siteidObj.attr('readOnly',true);
  496. siteidObj.css({'background':'#cccccc'});
  497. makeTree("parentid","/myconsole/site/getSiteTree","radio");
  498. $(".FormElement").width(218);
  499. var parentid1Obj = formid.find('#_parentid');
  500. parentid1Obj.attr('readOnly',true);
  501. parentid1Obj.css({'background':'#cccccc'});
  502. },
  503. beforeSubmit: function(postdata, formid){
  504. // 编辑时jqgrid 将主键变成 tree_id 手动添加 keyid
  505. //postdata["keyid"] = postdata.tree_id;
  506. $.each(postdata,function (index, value) {
  507. if(index!="oper"){
  508. modifyJosnKey(postdata,index,"site."+index);
  509. }
  510. })
  511. return [true,'']; //返回值必须这么写 目前没找到原因,用true 和 返回对象都不好使。待查
  512. },
  513. afterSubmit: function(response,postdata)
  514. {
  515. var res=eval('(' + response.responseText + ')');
  516. if(res.flag)
  517. {
  518. layer.alert(res.message, {
  519. skin: 'layui-layer-molv' //样式类名
  520. ,closeBtn: 0
  521. });
  522. return [true,res.message,''];
  523. }
  524. else
  525. {
  526. layer.alert(res.message, {
  527. skin: 'layui-layer-molv' //样式类名
  528. ,closeBtn: 0
  529. });
  530. return [false,res.message,''];
  531. }
  532. },
  533. afterComplete : function (response, postdata, formid) {
  534. //取消选择
  535. $("#tree").jqGrid("resetSelection");
  536. //关闭对话框
  537. $(".ui-icon-closethick").trigger('click');
  538. },
  539. errorTextFormat : function(data) {
  540. return 'Error: ' + data.responseText
  541. }
  542. },
  543. //添加按钮处理事件
  544. {
  545. closeAfterAdd : true,
  546. recreateForm : true,
  547. checkOnUpdate : true,
  548. checkOnSubmit : true,
  549. width:800,
  550. afterShowForm : function(formid) {
  551. $(".FormElement").width(218);
  552. var parentidObj = formid.find('#parentid');
  553. parentidObj.attr('readOnly',true);
  554. parentidObj.css({'background':'#cccccc'});
  555. $("#sitename").blur(function(){
  556. getSiteURL();
  557. });
  558. },
  559. serializeEditData: function(postdata) {
  560. //对主键字段进行赋值传递 韩林平
  561. var selRowId = $("#tree").jqGrid ('getGridParam', 'selrow');
  562. if(selRowId == null) selRowId = "";
  563. //获取选中的父节点主键值,添加下级站点
  564. postdata.parentid=selRowId;
  565. $.each(postdata,function(index,value){
  566. if(index!="oper"){
  567. modifyJosnKey(postdata,index,"site."+index);
  568. }
  569. })
  570. //jqgrid 做添加操作会把主键id的值设置成“_empty”;这里修改成空;
  571. postdata["site.keyid"]="";
  572. return postdata;
  573. },
  574. afterSubmit: function(response,postdata)
  575. {
  576. var res=eval('(' + response.responseText + ')');
  577. if(res.flag)
  578. {
  579. layer.alert(res.message, {
  580. skin: 'layui-layer-molv' //样式类名
  581. ,closeBtn: 0
  582. });
  583. return [true,res.message,''];
  584. }
  585. else
  586. {
  587. layer.alert(res.message, {
  588. skin: 'layui-layer-molv' //样式类名
  589. ,closeBtn: 0
  590. });
  591. return [false,res.message,''];
  592. }
  593. },
  594. errorTextFormat : function(data) {
  595. return 'Error: ' + data.responseText
  596. }
  597. },
  598. // options for the Delete Dailog
  599. {
  600. errorTextFormat : function(data) {
  601. return 'Error: ' + data.responseText
  602. },
  603. afterSubmit: function(response,postdata)
  604. {
  605. var res=eval('(' + response.responseText + ')');
  606. if(res.flag)
  607. {
  608. //alert(res.message);
  609. layer.alert(res.message, {
  610. skin: 'layui-layer-molv' //样式类名
  611. ,closeBtn: 0
  612. });
  613. return [true,res.message,''];
  614. }
  615. else
  616. {
  617. return [false,res.message,''];
  618. }
  619. }
  620. }).navButtonAdd('#pager',{
  621. title:"复制新建",
  622. caption:"复制新建",
  623. buttonicon:"ui-icon-copy",
  624. onClickButton: function(){
  625. var selectedRowId = $("#tree").jqGrid("getGridParam", "selrow");
  626. if (!selectedRowId) {
  627. layer.alert('请先选择需要复制的站点!', {
  628. skin: 'layui-layer-molv' //样式类名
  629. ,closeBtn: 0
  630. });
  631. return false;
  632. } else {
  633. layer.open({
  634. type: 1,
  635. title: '输入站点的名称和编号',
  636. btn: ['确定','取消'],
  637. yes:function(index, layero){
  638. if($(layero).find("#NewSiteName").val()=='') {
  639. layer.alert('新站点名称不能为空!', {
  640. skin: 'layui-layer-molv' //样式类名
  641. ,closeBtn: 0
  642. });
  643. } else {
  644. if($(layero).find("#NewSiteID").val()=='') {
  645. layer.alert('新站点编号不能为空!', {
  646. skin: 'layui-layer-molv' //样式类名
  647. ,closeBtn: 0
  648. });
  649. } else {
  650. var strEnglish = /^([a-zA-Z|\s*]+)?$/;
  651.  if(!strEnglish.test($(layero).find("#NewSiteID").val())){
  652.    layer.alert('新站点编号只能为英文字母!', {
  653. skin: 'layui-layer-molv' //样式类名
  654. ,closeBtn: 0
  655. });
  656.   } else {
  657. $.post("${ctx}/myconsole/site/copy",{'OldSiteID':selectedRowId,'NewSiteID' : $(layero).find("#NewSiteID").val(),'NewSiteName':$(layero).find("#NewSiteName").val()},function(data){
  658. if(data.status == 'y'){
  659. layer.alert(data.message, {
  660. skin: 'layui-layer-molv' //样式类名
  661. ,closeBtn: 0
  662. });
  663. } else {
  664. layer.alert(data.message, {
  665. skin: 'layui-layer-molv' //样式类名
  666. ,closeBtn: 0
  667. });
  668. }
  669. })
  670. layer.close(index);
  671. }
  672. }
  673. }
  674. },
  675. skin: 'layui-layer-rim', //加上边框
  676. area: ['450px', '280px'], //宽高
  677. content: '<div class="page-container"><br><div class="row cl"><label class="form-label col-xs-1 col-sm-5">&nbsp;站点名称:</label>'+
  678. '<div class="formControls col-xs-1 col-sm-6"><input type="text" class="input-text" id="NewSiteName" name="NewSiteName"></div></div>'+
  679. '<br><div class="row cl"><label class="form-label col-xs-1 col-sm-5">&nbsp;站点编号:</label>'+
  680. '<div class="formControls col-xs-1 col-sm-6"><input type="text" class="input-text" id="NewSiteID" name="NewSiteID"></div></div></div>',
  681. success:function(layero, index){
  682. $(layero).find("#NewSiteID").on("click",function(){
  683. var strNewSiteName=$(layero).find("#NewSiteName").val();
  684. if(strNewSiteName!="")
  685. {
  686. $.post("${ctx}/myconsole/pinyin/getFirstSpell",{"chinese":strNewSiteName},function(data){
  687. $(layero).find("#NewSiteID").val(data);
  688. })
  689. }
  690. })
  691. }
  692. });
  693. }
  694. }
  695. }).navButtonAdd('#pager',{
  696. title:"批量建站",
  697. caption:"批量建站",
  698. buttonicon:"ui-icon-copy",
  699. onClickButton: function(){
  700. var selectedRowId = $("#tree").jqGrid("getGridParam", "selrow");
  701. if (!selectedRowId) {
  702. selectedRowId="0";
  703. }
  704. layer.open({
  705. type: 1,
  706. title: '输入站点的名称和编号',
  707. btn: ['确定','取消'],
  708. yes:function(index, layero){
  709. var validate=true;
  710. $("form").each(function(){
  711. if(doValidate($(this)[0])){
  712. }else{
  713. validate=false;
  714. }
  715. });
  716. if(validate){
  717. $("form").each(function(){
  718. var params_= $(this).serialize();
  719. //$.post("${ctx}/myconsole/site/saveOrUpdate",params_);
  720. $.ajax({
  721. async: false,
  722. type : "POST",
  723. data: params_,
  724. url : "${ctx}/myconsole/site/saveOrUpdate",
  725. dataType : 'json',
  726. success : function(data) {
  727. }
  728. });
  729. })
  730. layer.close(index);
  731. $("#tree").trigger("reloadGrid");
  732. }
  733. },
  734. skin: 'layui-layer-rim', //加上边框
  735. area: ['650px', '580px'], //宽高
  736. content: "<ul id='tablefield' style='margin-top:2px;width:100%;text=align:center;'> <li style='width:100%;float:left;margin-top:10px;'> <dt style='width:40%;text-align:center;float:left;'>站点名称</dt> <dd style='width:40%;text-align:center;float:left;'>站点编号</dd> <i style='width:20%;text-align:center;float:left;'><input style='padding:0 10px;' onclick=addRow('"+selectedRowId+"') type='button' value='添加'/> </i> </li> </ul>",
  737. success:function(layero, index){
  738. }
  739. });
  740. }
  741. });
  742. jQuery('#tree').jqGrid('bindKeys');
  743. })
  744. var zTree;
  745. var setting = {
  746. check: {
  747. enable: true,
  748. chkStyle: "radio",
  749. radioType: "all"
  750. },
  751. data: {
  752. simpleData: {
  753. enable: true,
  754. idKey: "KeyID",
  755. pIdKey: "ParentID",
  756. rootPId: 0
  757. },
  758. key:{
  759. name:"SiteName"
  760. }
  761. },
  762. callback: {
  763. onClick: onClick,
  764. onCheck: onCheck
  765. }
  766. };
  767. var zNodes =${sites};
  768. function onClick(e, treeId, treeNode) {
  769. var zTree = $.fn.zTree.getZTreeObj("treeSite");
  770. zTree.checkNode(treeNode, !treeNode.checked, null, true);
  771. return false;
  772. }
  773. function onCheck(){
  774. }
  775. function showMenu() {
  776. var cityObj = $("#citySel");
  777. var cityOffset = $("#citySel").offset();
  778. $("#menuContent").css({left:cityOffset.left + "px", top:cityOffset.top + cityObj.outerHeight() + "px"}).slideDown("fast");
  779. $("body").bind("mousedown", onBodyDown);
  780. }
  781. function hideMenu() {
  782. $("#menuContent").fadeOut("fast");
  783. $("body").unbind("mousedown", onBodyDown);
  784. }
  785. function onBodyDown(event) {
  786. if (!(event.target.id == "menuBtn" || event.target.id == "citySel" || event.target.id == "menuContent" || $(event.target).parents("#menuContent").length>0)) {
  787. hideMenu();
  788. }
  789. }
  790. $(function(){
  791. zTree=$.fn.zTree.init($("#treeSite"), setting, zNodes);
  792. });
  793. //表单验证
  794. </script>
  795. <title>我的桌面</title>
  796. <style>
  797. .ui-dialog {
  798. overflow: hidden;
  799. position: absolute;
  800. top: 0;
  801. left: 0;
  802. padding: 0;
  803. outline: 0;
  804. }
  805. .ui-jqdialog { display: none; width: 300px; position: absolute; padding: 0; font-size:11px; overflow:visible;}
  806. .ui-jqdialog .ui-jqdialog-titlebar { padding: .3em .2em; position: relative;}
  807. </style>
  808. </head>
  809. <body>
  810. <div class="page-container">
  811. <table id="tree"></table>
  812. <div id="pager"></div>
  813. </div>
  814. <div id="menuContent" class="menuContent" style="display:none; position: absolute;">
  815. <ul id="treeSite" class="ztree" style="margin-top:0; width:300px; height: 300px;"></ul>
  816. </div>
  817. <footer class="footer mt-20">
  818. <div class="container">
  819. <p> </p>
  820. </div>
  821. </footer>
  822. </body>
  823. </html>