jquery.table.shoppingcart.js 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965
  1. /*
  2. * @author f1jee @date 2009-04-09 功能 :增加表格行 parm:array---表格数据,tid,表格-css
  3. * modifed by f1jee 2010-02-18
  4. * id,countid--行计数
  5. */
  6. ;
  7. ( function($) {
  8. $.fn.addRow = function(arg) {
  9. var $table=$(this);
  10. var tid =$table.attr("id");
  11. //alert(tid);
  12. $tbodyObj = $("<tbody></tbody>");
  13. $trObj = $("<tr></tr>");
  14. $tdObj = $("<th width=\"20px\">序</th>");
  15. $trObj.append($tdObj);
  16. var array = arg.colmuns;
  17. for ( var i = 0; i < array.length; i++) {
  18. var css = array[i].css;
  19. var title = array[i].title;
  20. $tdObj = $("<th></th>");
  21. $tdObj.html(title);
  22. //$tdObj.resizable();
  23. //alert(title);
  24. $trObj.append($tdObj);
  25. }
  26. $addButton=$("<input type=\"button\" value=\"+\" class=\"jq-table-add\">");
  27. var showDelBtn=arg.showDelBtn;
  28. if (showDelBtn ==null)
  29. {
  30. showDelBtn=true;
  31. }
  32. if (showDelBtn==true)
  33. //this.before($addButton);
  34. $addButton.click( function() {
  35. //alert(arg.count)
  36. //appendTr(arg,tid);
  37. });
  38. $tdObj = $("<th width=\"40px\">操作</th>");
  39. $trObj.append($tdObj);
  40. $tbodyObj.append($trObj);
  41. this.append($tbodyObj);
  42. var data = arg.data;
  43. var array = arg.colmuns;
  44. var countid = arg.count;
  45. $countObj = $("#" + countid);
  46. for (one in data) {
  47. count = Number($countObj.val()) + 1;
  48. // alert(count);
  49. $countObj.val(count.toString());
  50. $tbodyObj = $("<tbody></tbody>");
  51. $tbodyObj.attr("id", "tbody" + count.toString());
  52. this.append($tbodyObj);
  53. $trObj = $("<tr></tr>");
  54. $tbodyObj.append($trObj);
  55. //alert("<td class='"+tid+"td-first'></td>");
  56. $tdObj = $("<td class='"+tid+"td-first'></td>");
  57. $tdObj.html(count.toString());
  58. $trObj.append($tdObj);
  59. for ( var i = 0; i < array.length; i++) {
  60. var type = array[i].type;
  61. var name = array[i].id;
  62. var value = "";
  63. for (key in data[one]) {
  64. if (name == key) {
  65. value = data[one][key];
  66. break;
  67. }
  68. }
  69. // alert(value);
  70. var copy_ = array[i].copy;
  71. var css = array[i].css;
  72. var title = array[i].title;
  73. var f_name = array[i].f_name;
  74. var format_ = array[i].format_;
  75. $tdObj = $("<td></td>");
  76. $trObj.append($tdObj);
  77. id = name + count.toString();
  78. if (type == "label") {
  79. $inputObject = $("<div id='" + id + "'"+">"+value+"</div>");
  80. $tdObj.append($inputObject);
  81. // alert(css);
  82. if (css != null) {
  83. $inputObject.css(css);
  84. }
  85. }
  86. if (type == "text") {
  87. $inputObject = $("<input name=\"" + id + "\""
  88. + " value=\""
  89. + value + "\""
  90. +" required=\"true\""
  91. +" validType=\""+format_+"\""
  92. + " id=\"" + id + "\""
  93. + " onchange=\"checkItem('" + id + "','" + format_
  94. + "');\"" + ">");
  95. $tdObj.append($inputObject);
  96. $div=$("<div>"+value+"</div>")
  97. $tdObj.append($div);
  98. $inputObject.hide();
  99. $tdObj.mouseover(function(){
  100. //$childs=$(this).children();
  101. //$editor=$($childs[0]);
  102. //$editor.show();
  103. //$div=$($childs[1]);
  104. //$div.hide();
  105. });
  106. $tdObj.mouseout(function(){
  107. //$childs=$(this).children();
  108. //$editor=$($childs[0]);
  109. //$editor.hide();
  110. //$div=$($childs[1]);
  111. //$div.text($editor.val());
  112. //$div.show();
  113. });
  114. //alert($tdObj.width());
  115. //$inputObject.width($tdObj.width());
  116. // alert(css);
  117. if (css != null) {
  118. $inputObject.css(css);
  119. }
  120. //$inputObject.width($tdObj.width()+"px");
  121. }
  122. if (type == "combox-value") {
  123. id = name + count.toString();
  124. $selectObject=$("#" + copy_);
  125. //$options = $("#" + copy_ + " option");
  126. //$options.val(value);
  127. //$options_ = $("#" + copy_ + " option:selected");
  128. $selectObject.val(value);
  129. $options_ = $("#" + copy_ + " option:selected");
  130. //alert($options_.text());
  131. $inputObject = $("<div id='" + id + "'"+">"+$options_.text()+"</div>");
  132. $tdObj.append($inputObject);
  133. if (css != null) {
  134. $inputObject.css(css);
  135. }
  136. }
  137. if (type == "combox") {
  138. id = name + count.toString();
  139. $selectObject = $("<select name=\"" + id + "\"" + " id=\""
  140. + id + "\"" + "></select>");
  141. $options_ = $("#" + copy_ + " option");
  142. $options_.clone().appendTo($selectObject);
  143. // alert(value);
  144. $selectObject.val(value);
  145. $tdObj.append($selectObject);
  146. if (css != null) {
  147. $selectObject.css(css);
  148. }
  149. //$selectObject.width($tdObj.width()+"px");
  150. //$selectObject.height($tdObj.height()+"px");
  151. $selectObject.hide();
  152. $a=$("#"+id+" option:selected");
  153. $div=$("<div>"+$a.text()+"</div>")
  154. $tdObj.append($div);
  155. $tdObj.dblclick(function(){
  156. $childs=$(this).children();
  157. $editor=$($childs[0]);
  158. $editor.show();
  159. $div=$($childs[1]);
  160. $div.hide();
  161. });
  162. $selectObject.change(function(){
  163. //$childs=$(this).children();
  164. //$editor=$($childs[0]);
  165. //$editor.hide();
  166. //$div=$($childs[1]);
  167. //alert("========================"+$editor.attr("id"));
  168. //$a=$("#"+$editor.attr("id")+" option:selected");
  169. //alert("#"+$editor.attr("id")+" option:selected");
  170. //$div.text($a.text());
  171. //$div.show();
  172. //alert("=========");
  173. $a=$("#"+$(this).attr("id")+" option:selected");
  174. $next=$(this).next();
  175. $next.text($a.text());
  176. $(this).hide();
  177. $next.show();
  178. //refreshTdEditor(tid);
  179. });
  180. }
  181. }
  182. $tdObj = $("<td></td>");
  183. $trObj.append($tdObj);
  184. // 操作
  185. $btn_del = $("<input type=\"button\" name=\"delBtn\" id=\"delBtn"
  186. + count.toString() + "\" value=\"\" class=\"jq-table-x\">");
  187. // alert($btn_del.attr("id"));
  188. $btn_del.click( function() {
  189. // alert($(this).attr("id"));
  190. //var btnId = $(this).attr("id");
  191. //var id = btnId.substring(6, 7);
  192. // alert(id);
  193. //$("#tbody" + id).remove();
  194. //刷新序号
  195. $(this).parent().parent().parent().remove();
  196. var tid=$table.attr("id");
  197. //alert("#"+tid +" .td-first");
  198. var $a=$("."+tid+"td-first");
  199. //alert($table.attr("id"));
  200. var i=0;
  201. $a.each(function(){
  202. i++;
  203. $(this).html(i);
  204. });
  205. alert("hi");
  206. for(var i=0;i<$a.length;i++)
  207. {
  208. //var $aa=$a[i];
  209. //$aa.html("a");
  210. //alert($a[i].html());
  211. //$a[i].append("<div>a</div>");
  212. }
  213. });
  214. // $btn_del = $("<input type=\"button\" name=\"delBtn\" value=\"删除\"
  215. // onclick=\"test();\">");
  216. // alert("<input type=\"button\" name=\"delBtn\" value=\"删除\"
  217. // onclick=\"delRow('"+ $tbodyObj.attr("id") + "');\">");
  218. var showDelBtn=arg.showDelBtn;
  219. if (showDelBtn ==null)
  220. {
  221. showDelBtn=true;
  222. }
  223. if (showDelBtn!=false){
  224. $tdObj.append($btn_del);
  225. }
  226. var i=0;
  227. $("."+tid+"td-first").each(function(){
  228. i++;
  229. $(this).html(i);
  230. });
  231. }
  232. function refreshTdEditor(tid) {
  233. var $table=$("#"+tid);
  234. var $tds=$("#"+tid +" tr td");
  235. for(var i=0;i<$tds.length;i++){
  236. alert(i);
  237. }
  238. }
  239. function appendTr(arg,tid) {
  240. var array = arg.colmuns;
  241. var countid = arg.count;
  242. var $table=$("#"+tid);
  243. $countObj = $("#" + countid);
  244. count = Number($countObj.val()) + 1;
  245. // alert(count);
  246. $countObj.val(count.toString());
  247. $tbodyObj = $("<tbody></tbody>");
  248. $tbodyObj.attr("id", "tbody" + count.toString());
  249. $table.append($tbodyObj);
  250. $trObj = $("<tr></tr>");
  251. $tbodyObj.append($trObj);
  252. //alert("<td class='"+tid+"td-first'></td>");
  253. $tdObj = $("<td class='"+tid+"td-first'></td>");
  254. $tdObj.html(count.toString());
  255. $trObj.append($tdObj);
  256. for ( var i = 0; i < array.length; i++) {
  257. var type = array[i].type;
  258. var name = array[i].id;
  259. var value = "";
  260. // alert(value);
  261. var copy_ = array[i].copy;
  262. var css = array[i].css;
  263. var title = array[i].title;
  264. var f_name = array[i].f_name;
  265. var format_ = array[i].format_;
  266. $tdObj = $("<td></td>");
  267. $trObj.append($tdObj);
  268. id = name + count.toString();
  269. if (type == "label") {
  270. $inputObject = $("<div id='" + id + "'"+">"+value+"</div>");
  271. $tdObj.append($inputObject);
  272. // alert(css);
  273. if (css != null) {
  274. $inputObject.css(css);
  275. }
  276. }
  277. if (type == "text") {
  278. $inputObject = $("<input type1=\"hidden\" name=\"" + id + "\""
  279. + " value=\""
  280. + value + "\""
  281. +" required=\"true\""
  282. +" validType=\""+format_+"\""
  283. + " id=\"" + id + "\""
  284. + " onchange=\"checkItem('" + id + "','" + format_
  285. + "');\"" + ">");
  286. $tdObj.append($inputObject);
  287. $div=$("<div>"+value+"</div>")
  288. $tdObj.append($div);
  289. $inputObject.hide();
  290. $tdObj.mouseover(function(){
  291. // $childs=$(this).children();
  292. // $editor=$($childs[0]);
  293. // $editor.show();
  294. // $div=$($childs[1]);
  295. // $div.hide();
  296. });
  297. $tdObj.mouseout(function(){
  298. // $childs=$(this).children();
  299. // $editor=$($childs[0]);
  300. // $editor.hide();
  301. // $div=$($childs[1]);
  302. // $div.text($editor.val());
  303. // $div.show();
  304. });
  305. // alert(css);
  306. if (css != null) {
  307. $inputObject.css(css);
  308. }
  309. // alert(css);
  310. if (css != null) {
  311. $inputObject.css(css);
  312. }
  313. //$inputObject.width($tdObj.width()+"px");
  314. //$inputObject.height($tdObj.height()+"px");
  315. }
  316. if (type == "combox-value") {
  317. id = name + count.toString();
  318. $options_ = $("#" + copy_ + " option");
  319. $options_.val(value);
  320. $inputObject = $("<div id='" + id + "'"+">"+$options_.text()+"</div>");
  321. $tdObj.append($inputObject);
  322. if (css != null) {
  323. $inputObject.css(css);
  324. }
  325. }
  326. if (type == "combox") {
  327. id = name + count.toString();
  328. $selectObject = $("<select name=\"" + id + "\"" + " id=\""
  329. + id + "\"" + "></select>");
  330. $options_ = $("#" + copy_ + " option");
  331. $options_.clone().appendTo($selectObject);
  332. //alert(value);
  333. $selectObject.val(value);
  334. $tdObj.append($selectObject);
  335. $div=$("<div>"+value+"</div>")
  336. $tdObj.append($div);
  337. $selectObject.hide();
  338. if (css != null) {
  339. $selectObject.css(css);
  340. }
  341. //$selectObject.width($tdObj.width()+"px");
  342. //$selectObject.height($tdObj.height()+"px");
  343. $tdObj.dblclick(function(){
  344. $childs=$(this).children();
  345. $editor=$($childs[0]);
  346. $editor.show();
  347. $div=$($childs[1]);
  348. $div.hide();
  349. });
  350. $selectObject.change(function(){
  351. //$childs=$(this).children();
  352. //$editor=$($childs[0]);
  353. //$editor.hide();
  354. //$div=$($childs[1]);
  355. //alert("========================"+$editor.attr("id"));
  356. //$a=$("#"+$editor.attr("id")+" option:selected");
  357. //alert("#"+$editor.attr("id")+" option:selected");
  358. //$div.text($a.text());
  359. //$div.show();
  360. //alert("=========");
  361. $a=$("#"+$(this).attr("id")+" option:selected");
  362. $next=$(this).next();
  363. $next.text($a.text());
  364. $(this).hide();
  365. $next.show();
  366. //refreshTdEditor(tid);
  367. });
  368. }
  369. }
  370. $tdObj = $("<td></td>");
  371. $trObj.append($tdObj);
  372. // 操作
  373. $btn_del = $("<input type=\"button\" name=\"delBtn\" id=\"delBtn"
  374. + count.toString() + "\" value=\"删除\">");
  375. // alert($btn_del.attr("id"));
  376. $btn_del.click( function() {
  377. // alert($(this).attr("id"));
  378. //var btnId = $(this).attr("id");
  379. //var id = btnId.substring(6, 7);
  380. // alert(id);
  381. //$("#tbody" + id).remove();
  382. //刷新序号
  383. $(this).parent().parent().parent().remove();
  384. var tid=$table.attr("id");
  385. //alert("#"+tid +" .td-first");
  386. var $a=$("."+tid+"td-first");
  387. //alert($table.attr("id"));
  388. var i=0;
  389. $a.each(function(){
  390. i++;
  391. $(this).html(i);
  392. });
  393. alert("hi");
  394. for(var i=0;i<$a.length;i++)
  395. {
  396. //var $aa=$a[i];
  397. //$aa.html("a");
  398. //alert($a[i].html());
  399. //$a[i].append("<div>a</div>");
  400. }
  401. });
  402. // $btn_del = $("<input type=\"button\" name=\"delBtn\" value=\"删除\"
  403. // onclick=\"test();\">");
  404. // alert("<input type=\"button\" name=\"delBtn\" value=\"删除\"
  405. // onclick=\"delRow('"+ $tbodyObj.attr("id") + "');\">");
  406. var showDelBtn=arg.showDelBtn;
  407. if (showDelBtn ==null)
  408. {
  409. showDelBtn=true;
  410. }
  411. if (showDelBtn!=false){
  412. $tdObj.append($btn_del);
  413. }
  414. var i=0;
  415. $("."+tid+"td-first").each(function(){
  416. i++;
  417. $(this).html(i);
  418. });
  419. }
  420. //alert(arg.msgRender);
  421. //if $(arg.msgRender)
  422. //$(arg.msgRender).hide();
  423. return this;
  424. }
  425. $.fn.addTr = function(arg) {
  426. //alert("=============");
  427. var $table=$(this);
  428. var tid =$table.attr("id");
  429. var array = arg.colmuns;
  430. var data= arg.data;
  431. var countid = arg.count;
  432. $countObj = $("#" + countid);
  433. count = Number($countObj.val()) + 1;
  434. // alert(count);
  435. $countObj.val(count.toString());
  436. $tbodyObj = $("<tbody></tbody>");
  437. $tbodyObj.attr("id", "tbody" + count.toString());
  438. $table.append($tbodyObj);
  439. $trObj = $("<tr></tr>");
  440. $tbodyObj.append($trObj);
  441. //alert("<td class='"+tid+"td-first'></td>");
  442. $tdObj = $("<td class='"+tid+"td-first'></td>");
  443. $tdObj.html(count.toString());
  444. $trObj.append($tdObj);
  445. for ( var i = 0; i < array.length; i++) {
  446. var type = array[i].type;
  447. var name = array[i].id;
  448. var value = data[i];
  449. // alert(value);
  450. var copy_ = array[i].copy;
  451. var css = array[i].css;
  452. var title = array[i].title;
  453. var f_name = array[i].f_name;
  454. var format_ = array[i].format_;
  455. $tdObj = $("<td></td>");
  456. $trObj.append($tdObj);
  457. id = name + count.toString();
  458. if (type == "label") {
  459. $inputObject = $("<div id='" + id + "'"+">"+value+"</div>");
  460. $tdObj.append($inputObject);
  461. // alert(css);
  462. if (css != null) {
  463. $inputObject.css(css);
  464. }
  465. }
  466. if (type == "text") {
  467. $inputObject = $("<input type1=\"hidden\" name=\"" + id + "\""
  468. + " value=\""
  469. + value + "\""
  470. +" required=\"true\""
  471. +" validType=\""+format_+"\""
  472. + " id=\"" + id + "\""
  473. + " onchange=\"checkItem('" + id + "','" + format_
  474. + "');\"" + ">");
  475. $tdObj.append($inputObject);
  476. $div=$("<div>"+value+"</div>")
  477. $tdObj.append($div);
  478. $inputObject.hide();
  479. $tdObj.mouseover(function(){
  480. //$childs=$(this).children();
  481. //$editor=$($childs[0]);
  482. //$editor.show();
  483. //$div=$($childs[1]);
  484. //$div.hide();
  485. });
  486. $tdObj.mouseout(function(){
  487. //$childs=$(this).children();
  488. //$editor=$($childs[0]);
  489. //$editor.hide();
  490. //$div=$($childs[1]);
  491. //$div.text($editor.val());
  492. //$div.show();
  493. });
  494. // alert(css);
  495. if (css != null) {
  496. $inputObject.css(css);
  497. }
  498. // alert(css);
  499. if (css != null) {
  500. $inputObject.css(css);
  501. }
  502. $inputObject.width($tdObj.width()+"px");
  503. $inputObject.height($tdObj.height()+"px");
  504. }
  505. if (type == "combox-value") {
  506. id = name + count.toString();
  507. $options_ = $("#" + copy_ + " option");
  508. $options_.val(value);
  509. $inputObject = $("<div id='" + id + "'"+">"+$options_.text()+"</div>");
  510. $tdObj.append($inputObject);
  511. if (css != null) {
  512. $inputObject.css(css);
  513. }
  514. }
  515. if (type == "combox") {
  516. id = name + count.toString();
  517. $inputObject = $("<input type1=\"hidden\" name=\"" + id + "\""
  518. + " value=\""
  519. + value.id_ + "\""
  520. +" required=\"true\""
  521. +" validType=\""+format_+"\""
  522. + " id=\"" + id + "\""
  523. + ">");
  524. $tdObj.append($inputObject);
  525. $div=$("<div>"+value.title_+"</div>")
  526. $tdObj.append($div);
  527. $inputObject.hide();
  528. }
  529. }
  530. $tdObj = $("<td></td>");
  531. $trObj.append($tdObj);
  532. // 操作
  533. $btn_del = $("<input type=\"button\" name=\"delBtn\" id=\"delBtn"
  534. + count.toString() + "\" value=\"\" class=\"jq-table-x\">");
  535. // alert($btn_del.attr("id"));
  536. $btn_del.click( function() {
  537. // alert($(this).attr("id"));
  538. //var btnId = $(this).attr("id");
  539. //var id = btnId.substring(6, 7);
  540. // alert(id);
  541. //$("#tbody" + id).remove();
  542. //刷新序号
  543. $tr=$(this).parent().parent();
  544. $tds=$tr.children();
  545. $td=$($tds[0]);
  546. var index_del=$td.html();
  547. $(this).parent().parent().parent().remove();
  548. var tid=$table.attr("id");
  549. //alert("#"+tid +" .td-first");
  550. var $a=$("."+tid+"td-first");
  551. //alert($table.attr("id"));
  552. var i=0;
  553. $a.each(function(){
  554. i++;
  555. $(this).html(i);
  556. });
  557. //alert("hi");
  558. alert(index_del);
  559. var count=$.cookie("dishCount");
  560. for(var i=index_del;i<count;i++){
  561. var next=Number(i)+1;
  562. //alert(next);
  563. $.cookie("id"+i,$.cookie("id"+next));
  564. $.cookie("title"+i,$.cookie("title"+next));
  565. $.cookie("price"+i,$.cookie("price"+next));
  566. }
  567. count=count-1;
  568. //alert("count=================================="+count)
  569. $.cookie("dishCount",count)
  570. for(var i=0;i<$a.length;i++)
  571. {
  572. //var $aa=$a[i];
  573. //$aa.html("a");
  574. //alert($a[i].html());
  575. //$a[i].append("<div>a</div>");
  576. }
  577. });
  578. // $btn_del = $("<input type=\"button\" name=\"delBtn\" value=\"删除\"
  579. // onclick=\"test();\">");
  580. // alert("<input type=\"button\" name=\"delBtn\" value=\"删除\"
  581. // onclick=\"delRow('"+ $tbodyObj.attr("id") + "');\">");
  582. var showDelBtn=arg.showDelBtn;
  583. if (showDelBtn ==null)
  584. {
  585. showDelBtn=true;
  586. }
  587. if (showDelBtn!=false){
  588. $tdObj.append($btn_del);
  589. }
  590. var i=0;
  591. $("."+tid+"td-first").each(function(){
  592. i++;
  593. $(this).html(i);
  594. });
  595. }
  596. /**
  597. 暂不实现
  598. */
  599. $.fn.addHeader = function(arg) {
  600. table = document.getElementById(tid);
  601. tbodyObj = document.createElement("tbody");
  602. table.appendChild(tbodyObj);
  603. trObj = document.createElement("TR");
  604. tbodyObj.appendChild(trObj);
  605. for ( var i = 0; i < array.length; i++) {
  606. thObj = document.createElement("TH");
  607. thObj.innerHTML = array[i][0];
  608. trObj.appendChild(thObj);
  609. }
  610. thObj = document.createElement("TH");
  611. thObj.innerHTML = "操作";
  612. trObj.appendChild(thObj);
  613. }
  614. /**
  615. 数据求和方法
  616. */
  617. $.fn.sumRow = function(arg) {
  618. $trs=$("#tableData tr");
  619. var rows=1;
  620. var result=0;
  621. //alert("============"+$trs.length);
  622. var arrForCount=new Array($trs.length-1);
  623. var arrForValue=new Array($trs.length-1);
  624. var arrForPercent=new Array($trs.length-1);
  625. for ( var i = 0; i < arrForCount.length; i++) {
  626. arrForCount[i]=1;
  627. }
  628. for ( var i = 0; i < arrForPercent.length; i++) {
  629. arrForPercent[i]=1;
  630. }
  631. var array = arg.colmuns;
  632. var indexSum=arg.index;
  633. var edit= arg.edit;
  634. //alert(edit);
  635. // init arrForCount
  636. for ( var i = 0; i < array.length; i++) {
  637. var index =array[i].index;
  638. var type=array[i].type;
  639. if (type=="count")
  640. {
  641. var index =array[i].index;
  642. $a=$("#tableData tr td:nth-child("+index+") :nth-child(1)");
  643. //alert($a.length);
  644. for(var j=0;j<$a.length;j++){
  645. $input =$($a[j]);
  646. if (edit==true) {arrForCount[j]=$input.val();}else {arrForCount[j]=$input.text();}
  647. }
  648. }
  649. if (type=="percent")
  650. {
  651. var index =array[i].index;
  652. $a=$("#tableData tr td:nth-child("+index+") :nth-child(1)");
  653. //alert($a.length);
  654. for(var j=0;j<$a.length;j++){
  655. $input =$($a[j]);
  656. if (edit==true) {arrForPercent[j]=$input.val();}else {arrForPercent[j]=$input.text();}
  657. arrForPercent[j]=arrForPercent[j]*0.01;
  658. }
  659. }
  660. if (type=="value")
  661. {
  662. var index =array[i].index;
  663. $a=$("#tableData tr td:nth-child("+index+") :nth-child(1)");
  664. $result=$("#tableData tr td:nth-child("+indexSum+") :nth-child(1)");
  665. //$resultDiv=$("#tableData tr td:nth-child("+indexSum+") :nth-child(2)");
  666. //alert($a.length);
  667. for(var j=0;j<$a.length;j++){
  668. $input =$($a[j]);
  669. arrForValue[j]=$input.val();
  670. if (edit==true) {
  671. arrForValue[j]=$input.val();
  672. $($result[j]).val(arrForCount[j]*arrForValue[j]*arrForPercent[j]);
  673. $next=$($result[j]).next();
  674. $next.text($($result[j]).val());
  675. }else {
  676. arrForValue[j]=$input.text();
  677. $($result[j]).text(arrForCount[j]*arrForValue[j]*arrForPercent[j]);
  678. //$($resultDiv[j]).text(arrForCount[j]*arrForValue[j]*arrForPercent[j]);
  679. }
  680. //result=result+arrForCount[j]*arrForValue[j]*arrForPercent[j];
  681. }
  682. }
  683. }
  684. // init arrForPencent
  685. //for ( var i = 0; i < array.length; i++) {
  686. // var index =array[i].index;
  687. // var type=array[i].type;
  688. // }
  689. // init arrForValue
  690. //for ( var i = 0; i < array.length; i++) {
  691. // var index =array[i].index;
  692. //var type=array[i].type;
  693. //}
  694. //alert(arrForValue.length);
  695. //for ( var i = 0; i < arrForValue.length; i++) {
  696. //alert(arrForCount[i]);
  697. //alert(arrForValue[i]);
  698. //alert("arrForPercent"+arrForPercent[i]);
  699. // alert("arrForCount"+arrForCount[i]);
  700. // alert("arrForValue"+arrForValue[i]);
  701. //}
  702. //alert(result);
  703. //alert(arg.render);
  704. //$(arg.render).html(result.toFixed(2));
  705. }
  706. /**
  707. 数据求和方法
  708. */
  709. $.fn.sum = function(arg) {
  710. $trs=$("#tableData tr");
  711. var rows=1;
  712. var result=0;
  713. //alert("============"+$trs.length);
  714. var arrForCount=new Array($trs.length-1);
  715. var arrForValue=new Array($trs.length-1);
  716. var arrForPercent=new Array($trs.length-1);
  717. for ( var i = 0; i < arrForCount.length; i++) {
  718. arrForCount[i]=1;
  719. }
  720. for ( var i = 0; i < arrForPercent.length; i++) {
  721. arrForPercent[i]=1;
  722. }
  723. var array = arg.colmuns;
  724. var edit= arg.edit;
  725. //alert(edit);
  726. // init arrForCount
  727. for ( var i = 0; i < array.length; i++) {
  728. var index =array[i].index;
  729. var type=array[i].type;
  730. if (type=="count")
  731. {
  732. var index =array[i].index;
  733. $a=$("#tableData tr td:nth-child("+index+") :nth-child(1)");
  734. //alert($a.length);
  735. for(var j=0;j<$a.length;j++){
  736. $input =$($a[j]);
  737. if (edit==true) {arrForCount[j]=$input.val();}else {arrForCount[j]=$input.text();}
  738. }
  739. }
  740. if (type=="percent")
  741. {
  742. var index =array[i].index;
  743. $a=$("#tableData tr td:nth-child("+index+") :nth-child(1)");
  744. //alert($a.length);
  745. for(var j=0;j<$a.length;j++){
  746. $input =$($a[j]);
  747. if (edit==true) {arrForPercent[j]=$input.val();}else {arrForPercent[j]=$input.text();}
  748. arrForPercent[j]=arrForPercent[j]*0.01;
  749. }
  750. }
  751. if (type=="value")
  752. {
  753. var index =array[i].index;
  754. $a=$("#tableData tr td:nth-child("+index+") :nth-child(1)");
  755. //alert($a.length);
  756. for(var j=0;j<$a.length;j++){
  757. $input =$($a[j]);
  758. arrForValue[j]=$input.val();
  759. if (edit==true) {arrForValue[j]=$input.val();}else {arrForValue[j]=$input.text();}
  760. result=result+arrForCount[j]*arrForValue[j]*arrForPercent[j];
  761. }
  762. }
  763. }
  764. // init arrForPencent
  765. //for ( var i = 0; i < array.length; i++) {
  766. // var index =array[i].index;
  767. // var type=array[i].type;
  768. // }
  769. // init arrForValue
  770. //for ( var i = 0; i < array.length; i++) {
  771. // var index =array[i].index;
  772. //var type=array[i].type;
  773. //}
  774. //alert(arrForValue.length);
  775. //for ( var i = 0; i < arrForValue.length; i++) {
  776. //alert(arrForCount[i]);
  777. //alert(arrForValue[i]);
  778. //alert("arrForPercent"+arrForPercent[i]);
  779. // alert("arrForCount"+arrForCount[i]);
  780. // alert("arrForValue"+arrForValue[i]);
  781. //}
  782. //alert(result);
  783. //alert(arg.render);
  784. $(arg.render).html(result.toFixed(2));
  785. }
  786. /**
  787. 数据求和方法
  788. */
  789. $.fn.sumForRow = function(arg) {
  790. $trs=$("#tableData tr");
  791. var rows=1;
  792. var result=0;
  793. //alert("============"+$trs.length);
  794. var arrForCount=new Array($trs.length-1);
  795. var arrForValue=new Array($trs.length-1);
  796. var arrForPercent=new Array($trs.length-1);
  797. for ( var i = 0; i < arrForCount.length; i++) {
  798. arrForCount[i]=1;
  799. }
  800. for ( var i = 0; i < arrForPercent.length; i++) {
  801. arrForPercent[i]=1;
  802. }
  803. var array = arg.colmuns;
  804. var edit= arg.edit;
  805. //alert(edit);
  806. // init arrForCount
  807. for ( var i = 0; i < array.length; i++) {
  808. var index =array[i].index;
  809. var type=array[i].type;
  810. if (type=="count")
  811. {
  812. var index =array[i].index;
  813. $a=$("#tableData tr td:nth-child("+index+") :nth-child(1)");
  814. //alert($a.length);
  815. for(var j=0;j<$a.length;j++){
  816. $input =$($a[j]);
  817. if (edit==true) {arrForCount[j]=$input.val();}else {arrForCount[j]=$input.text();}
  818. }
  819. }
  820. }
  821. // init arrForPencent
  822. for ( var i = 0; i < array.length; i++) {
  823. var index =array[i].index;
  824. var type=array[i].type;
  825. if (type=="percent")
  826. {
  827. var index =array[i].index;
  828. $a=$("#tableData tr td:nth-child("+index+") :nth-child(1)");
  829. //alert($a.length);
  830. for(var j=0;j<$a.length;j++){
  831. $input =$($a[j]);
  832. if (edit==true) {arrForPercent[j]=$input.val();}else {arrForPercent[j]=$input.text();}
  833. arrForPercent[j]=arrForPercent[j]*0.01;
  834. }
  835. }
  836. }
  837. // init arrForValue
  838. for ( var i = 0; i < array.length; i++) {
  839. var index =array[i].index;
  840. var type=array[i].type;
  841. if (type=="value")
  842. {
  843. var index =array[i].index;
  844. $a=$("#tableData tr td:nth-child("+index+") :nth-child(1)");
  845. //alert($a.length);
  846. for(var j=0;j<$a.length;j++){
  847. $input =$($a[j]);
  848. arrForValue[j]=$input.val();
  849. if (edit==true) {arrForValue[j]=$input.val();}else {arrForValue[j]=$input.text();}
  850. }
  851. }
  852. }
  853. //alert(arrForValue.length);
  854. for ( var i = 0; i < arrForValue.length; i++) {
  855. //alert(arrForCount[i]);
  856. //alert(arrForValue[i]);
  857. //alert("arrForPercent"+arrForPercent[i]);
  858. // alert("arrForCount"+arrForCount[i]);
  859. // alert("arrForValue"+arrForValue[i]);
  860. result=result+arrForCount[i]*arrForValue[i]*arrForPercent[i];
  861. }
  862. //alert(result);
  863. //alert(arg.render);
  864. $(arg.render).html(result.toFixed(2));
  865. }
  866. /**
  867. 合并单元格的方法
  868. */
  869. $.fn.join = function(arg) {
  870. var $table=$(this);
  871. var tid =$table.attr("id");
  872. $tbody=$("#"+tid+" tbody:nth-child(1)");
  873. $trs=$tbody.children();
  874. //alert("==="+$trs.length);
  875. var tr=$trs[0];
  876. $tds=$(tr).children();
  877. //alert($tds.length);
  878. $trObj = $("<tr></tr>");
  879. var array = arg.colmuns;
  880. var k=0;
  881. for (var i=0;i<array.length;i++){
  882. var index=array[i].index;
  883. var count=array[i].count;
  884. var title=array[i].title;
  885. for (var j=0;j<$tds.length;j++){
  886. if (j<k) continue;
  887. if (j==index)
  888. {
  889. $tdObj = $("<th colspan=\""+count+"\">"+title+"</th>");
  890. $trObj.append($tdObj);
  891. k=k+count;
  892. }
  893. if (j<index)
  894. {k++;
  895. //获得单元格
  896. $td=$($tds[j]);
  897. //删除单元格
  898. $tdObj = $("<th rowspan=\"2\">"+$td.text()+"</th>");
  899. //alert($td.width());
  900. $tdObj.width($td.width());
  901. $td.remove();
  902. $trObj.append($tdObj);}
  903. if (i<(array.length-1))
  904. {
  905. var index_=array[i+1].index;
  906. if (j>=(index+count) && j<index_)
  907. {
  908. k++;
  909. //获得单元格
  910. $td=$($tds[j]);
  911. //删除单元格
  912. $tdObj = $("<th rowspan=\"2\">"+$td.text()+"</th>");
  913. //alert($td.width());
  914. $tdObj.width($td.width());
  915. $td.remove();
  916. $trObj.append($tdObj);
  917. }
  918. }
  919. else
  920. {
  921. if (j>=(index+count))
  922. {
  923. k++;
  924. //获得单元格
  925. $td=$($tds[j]);
  926. //删除单元格
  927. $tdObj = $("<th rowspan=\"2\">"+$td.text()+"</th>");
  928. $tdObj.width($td.width());//alert($td.width());
  929. $td.remove();
  930. $trObj.append($tdObj);
  931. }
  932. }
  933. }
  934. }
  935. $tbody.prepend($trObj);
  936. }
  937. })(jQuery);