index.html 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8">
  5. <script src="./jquery.min.js"></script>
  6. </head>
  7. <body>
  8. <div class="table-box">
  9. <button onclick="printTable()">打印</button>
  10. <div class="show-table"></div>
  11. <div class="print-table"></div>
  12. <!-- <table cellspacing="0" cellpadding="0"> -->
  13. <!-- <thead>
  14. <tr>
  15. <td colspan="23" style="border: 0;">
  16. <div class="table-header">
  17. <h1 class="table-title">升升概念订货订单</h1>
  18. </div>
  19. </td>
  20. </tr>
  21. <tr>
  22. <td colspan="23">
  23. <p style="text-align: left;padding-left: 20px;"><span class="part_content"
  24. style="font-size:16px;margin-right:40px">木门哑口套</span><span class="custom">客户:将录音
  25. 地址:杭州市已成两元</span></p>
  26. </td>
  27. </tr>
  28. <tr class="header">
  29. <td rowspan="2">
  30. <p>序号</p>
  31. </td>
  32. <td rowspan="2">
  33. <p style="width:80px ;">位置</p>
  34. </td>
  35. <td rowspan="2">
  36. <p style="width:80px ;">材质</p>
  37. </td>
  38. <td rowspan="2">
  39. <p style="width:80px ;">型号</p>
  40. </td>
  41. <td rowspan="2">
  42. <p style="width:80px ;">工艺</p>
  43. </td>
  44. <td rowspan="2">
  45. <p style="width:80px ;">木皮/颜色</p>
  46. </td>
  47. <td>
  48. <p>门洞尺寸(MM)</p>
  49. </td>
  50. <td>
  51. <p>门扇尺寸(MM)</p>
  52. </td>
  53. <td>
  54. <p>门套尺寸(MM)</p>
  55. </td>
  56. <td rowspan="2">
  57. <p>数量</p>
  58. </td>
  59. <td rowspan="2">
  60. <p>单位</p>
  61. </td>
  62. <td>
  63. <p>平方</p>
  64. </td>
  65. <td rowspan="2">
  66. <p>单价</p>
  67. </td>
  68. <td rowspan="2">
  69. <p>附加</p>
  70. </td>
  71. <td rowspan="2">
  72. <p>金额</p>
  73. </td>
  74. <td rowspan="2">
  75. <p>备注</p>
  76. </td>
  77. </tr>
  78. <tr class="header">
  79. <td>
  80. <p>高*宽*厚度</p>
  81. </td>
  82. <td>
  83. <p>高*宽*厚度</p>
  84. </td>
  85. <td>
  86. <p>高*宽*厚度</p>
  87. </td>
  88. <td>
  89. <p>米</p>
  90. </td>
  91. </tr>
  92. </thead> -->
  93. <!-- <tbody class="content">
  94. </tbody> -->
  95. <!-- <tfoot>
  96. <tr>
  97. <td class="amount-index" align="center"></td>
  98. <td colspan="11"></td>
  99. <td colspan="2">合计:</td>
  100. <td class="xt_total"></td>
  101. <td></td>
  102. </tr>
  103. <tr>
  104. <td colspan="12" class="remark" style="padding-left: 20px;"></td>
  105. <td colspan="2">返点:</td>
  106. <td class="return"></td>
  107. <td></td>
  108. </tr>
  109. <tr>
  110. <td colspan="12" class="remark1" style="padding-left: 20px;"></td>
  111. <td colspan="2">尾款:</td>
  112. <td class="end_price"></td>
  113. <td></td>
  114. </tr>
  115. <tr>
  116. <td colspan="16" style="padding-left: 20px;">
  117. <p class="amount_detail" style="height: 24px;"></p>
  118. </td>
  119. </tr>
  120. <tr>
  121. <td colspan="16" class="order_info" style="padding-left: 20px;">客户备注:<span
  122. class="customer_remark"></span>订货日期:<span class="crt_time"></span>交货日期:<span
  123. class="end_time"></span>业务经理:<span class="saleman"></span>制单人:<span
  124. class="crt_id"></span>审核:<span class="oa"></span>客户确认:<span class="is_confirm"></span></td>
  125. </tr>
  126. </tfoot> -->
  127. <!-- </table> -->
  128. </div>
  129. <script>
  130. function printTable() {
  131. window.print();
  132. }
  133. $(() => {
  134. $.ajax({
  135. url: 'https://asdkjasdklj.isongmei.com/Wap/hy1/tt1111',
  136. type: 'get',
  137. success: res => {
  138. let data = JSON.parse(res);
  139. // table-box
  140. console.log(data)
  141. let newArr=chunk(data.list,15);
  142. console.log(newArr)
  143. let theadStr = `<thead>
  144. <tr>
  145. <td colspan="23" style="border: 0;">
  146. <div class="table-header">
  147. <img class="left-img" src=${data.logo} alt="">
  148. <h1 class="table-title">${data.title}</h1><img class="right-img1" src=${data.right_logo1} alt=""><img class="right-img2" src=${data.right_logo2} alt="">
  149. </div>
  150. </td>
  151. </tr>
  152. <tr>
  153. <td colspan="23">
  154. <p style="text-align: left;padding-left: 20px;"><span class="part_content"
  155. style="font-size:16px;margin-right:40px">${data.part_content}</span><span class="custom">${data.custom}</span></p>
  156. </td>
  157. </tr>
  158. <tr class="header">
  159. <td rowspan="2">
  160. <p>序号</p>
  161. </td>
  162. <td rowspan="2">
  163. <p style="width:80px ;">位置</p>
  164. </td>
  165. <td rowspan="2">
  166. <p style="width:80px ;">材质</p>
  167. </td>
  168. <td rowspan="2">
  169. <p style="width:80px ;">型号</p>
  170. </td>
  171. <td rowspan="2">
  172. <p style="width:80px ;">工艺</p>
  173. </td>
  174. <td rowspan="2">
  175. <p style="width:80px ;">木皮/颜色</p>
  176. </td>
  177. <td>
  178. <p>门洞尺寸(MM)</p>
  179. </td>
  180. <td>
  181. <p>门扇尺寸(MM)</p>
  182. </td>
  183. <td>
  184. <p>门套尺寸(MM)</p>
  185. </td>
  186. <td rowspan="2">
  187. <p>数量</p>
  188. </td>
  189. <td rowspan="2">
  190. <p>单位</p>
  191. </td>
  192. <td>
  193. <p>平方</p>
  194. </td>
  195. <td rowspan="2">
  196. <p>单价</p>
  197. </td>
  198. <td rowspan="2">
  199. <p>附加</p>
  200. </td>
  201. <td rowspan="2">
  202. <p>金额</p>
  203. </td>
  204. <td rowspan="2">
  205. <p>备注</p>
  206. </td>
  207. </tr>
  208. <tr class="header">
  209. <td>
  210. <p>高*宽*厚度</p>
  211. </td>
  212. <td>
  213. <p>高*宽*厚度</p>
  214. </td>
  215. <td>
  216. <p>高*宽*厚度</p>
  217. </td>
  218. <td>
  219. <p>米</p>
  220. </td>
  221. </tr>
  222. </thead>`
  223. let tfootStr=`<tfoot>
  224. <tr>
  225. <td class="amount-index" align="center">${data.list.length + 1}</td>
  226. <td colspan="11"></td>
  227. <td colspan="2">合计:</td>
  228. <td class="xt_total">${data.foot.xt_total}</td>
  229. <td></td>
  230. </tr>
  231. <tr>
  232. <td colspan="12" class="remark" style="padding-left: 20px;">${data.foot.remark}</td>
  233. <td colspan="2">返点:</td>
  234. <td class="return">${data.foot.return}</td>
  235. <td></td>
  236. </tr>
  237. <tr>
  238. <td colspan="12" class="remark1" style="padding-left: 20px;">${data.foot.remark1}</td>
  239. <td colspan="2">尾款:</td>
  240. <td class="end_price">${data.foot.end_price}</td>
  241. <td></td>
  242. </tr>
  243. <tr>
  244. <td colspan="16" style="padding-left: 20px;">
  245. <p class="amount_detail" style="height: 24px;">${data.foot.amount_detail}</p>
  246. </td>
  247. </tr>
  248. <tr>
  249. <td colspan="16" class="order_info" style="padding-left: 20px;">客户备注:<span
  250. class="customer_remark">${data.foot.customer_remark}</span>订货日期:<span class="crt_time">${data.foot.crt_time}</span>交货日期:<span
  251. class="end_time">${data.foot.end_time}</span>业务经理:<span class="saleman">${data.foot.saleman}</span>制单人:<span
  252. class="crt_id">${data.foot.crt_id}</span>审核:<span class="oa">${data.foot.oa}</span>客户确认:<span class="is_confirm">${data.foot.is_confirm}</span></td>
  253. </tr>
  254. </tfoot>`
  255. let showTableContentStr=''
  256. data.list.map(item => {
  257. showTableContentStr += `<tr>
  258. <td>
  259. <p>${item.sort}</p>
  260. </td>
  261. <td>
  262. <p>${item.postion}</p>
  263. </td>
  264. <td>
  265. <p>${item.process}</p>
  266. </td>
  267. <td>
  268. <p>${item.model}</p>
  269. </td>
  270. <td>
  271. <p>${item.workmanship}</p>
  272. </td>
  273. <td>
  274. <p>${item.color}</p>
  275. </td>
  276. <td>
  277. <p>${item.measure1}</p>
  278. </td>
  279. <td>
  280. <p>${item.measure2}</p>
  281. </td>
  282. <td>
  283. <p>${item.measure3}</p>
  284. </td>
  285. <td>
  286. <p>${item.num}</p>
  287. </td>
  288. <td>
  289. <p>${item.unit}</p>
  290. </td>
  291. <td>
  292. <p>${item.square}</p>
  293. </td>
  294. <td>
  295. <p>${item.unit_price}</p>
  296. </td>
  297. <td>
  298. <p>${item.ext}</p>
  299. </td>
  300. <td>
  301. <p>${item.price}</p>
  302. </td>
  303. <td>
  304. <p>${item.remark}</p>
  305. </td>
  306. </tr>`
  307. })
  308. $(".show-table").append(`<table cellspacing="0" cellpadding="0">${theadStr}<tbody class="content">${showTableContentStr}
  309. </tbody>${tfootStr}</table>`)
  310. let tableStr='';
  311. newArr.map(arr=>{
  312. let str ='';
  313. arr.map(item => {
  314. str += `<tr>
  315. <td>
  316. <p>${item.sort}</p>
  317. </td>
  318. <td>
  319. <p>${item.postion}</p>
  320. </td>
  321. <td>
  322. <p>${item.process}</p>
  323. </td>
  324. <td>
  325. <p>${item.model}</p>
  326. </td>
  327. <td>
  328. <p>${item.workmanship}</p>
  329. </td>
  330. <td>
  331. <p>${item.color}</p>
  332. </td>
  333. <td>
  334. <p>${item.measure1}</p>
  335. </td>
  336. <td>
  337. <p>${item.measure2}</p>
  338. </td>
  339. <td>
  340. <p>${item.measure3}</p>
  341. </td>
  342. <td>
  343. <p>${item.num}</p>
  344. </td>
  345. <td>
  346. <p>${item.unit}</p>
  347. </td>
  348. <td>
  349. <p>${item.square}</p>
  350. </td>
  351. <td>
  352. <p>${item.unit_price}</p>
  353. </td>
  354. <td>
  355. <p>${item.ext}</p>
  356. </td>
  357. <td>
  358. <p>${item.price}</p>
  359. </td>
  360. <td>
  361. <p>${item.remark}</p>
  362. </td>
  363. </tr>`
  364. })
  365. tableStr+=`<table cellspacing="0" cellpadding="0">${theadStr}<tbody class="content">${str}
  366. </tbody>${tfootStr}</table><div style="page-break-after: always;"></div>`
  367. })
  368. $(".print-table").append(tableStr)
  369. }
  370. })
  371. })
  372. function chunk(array, size) {
  373. //获取数组的长度,如果你传入的不是数组,那么获取到的就是undefined
  374. const length = array.length
  375. //判断不是数组,或者size没有设置,size小于1,就返回空数组
  376. if (!length || !size || size < 1) {
  377. return []
  378. }
  379. //核心部分
  380. let index = 0 //用来表示切割元素的范围start
  381. let resIndex = 0 //用来递增表示输出数组的下标
  382. //根据length和size算出输出数组的长度,并且创建它。
  383. let result = new Array(Math.ceil(length / size))
  384. //进行循环
  385. while (index < length) {
  386. //循环过程中设置result[0]和result[1]的值。该值根据array.slice切割得到。
  387. result[resIndex++] = array.slice(index, (index += size))
  388. }
  389. //输出新数组
  390. return result
  391. }
  392. </script>
  393. </body>
  394. <style>
  395. * {
  396. margin: 0;
  397. padding: 0;
  398. font-size: 14px;
  399. }
  400. button {
  401. position: absolute;
  402. right: 40px;
  403. width: 60px;
  404. }
  405. h1 {
  406. text-align: center;
  407. font-size: 18px;
  408. margin-bottom: 10px;
  409. margin-top: 20px;
  410. }
  411. p {
  412. text-align: center;
  413. }
  414. table {
  415. width: 100%;
  416. border-collapse: collapse;
  417. }
  418. td {
  419. border: 1px solid #000;
  420. }
  421. .right-img1 {
  422. position: absolute;
  423. right: 0;
  424. width: 150px;
  425. margin-bottom: 10px;
  426. height: 60px;
  427. top: 0;
  428. }
  429. .right-img2 {
  430. position: absolute;
  431. width: 150px;
  432. right: 180px;
  433. margin-bottom: 10px;
  434. height: 60px;
  435. top: 0;
  436. }
  437. .table-header {
  438. position: relative;
  439. height: 80px;
  440. line-height: 80px;
  441. }
  442. .left-img {
  443. position: absolute;
  444. left: 0;
  445. width: 150px;
  446. height: 60px;
  447. top: 0;
  448. }
  449. .table-box {
  450. padding: 0 20px;
  451. width: 1000px;
  452. margin: 0 auto;
  453. margin-top: 40px;
  454. }
  455. .order_info span {
  456. margin-right: 28px;
  457. }
  458. .pageSeparator {
  459. visibility: hidden;
  460. page-break-after: always;
  461. overflow: hidden;
  462. height: 0px;
  463. }
  464. .print-table{
  465. display: none;
  466. }
  467. @media print {
  468. button {
  469. display: none;
  470. }
  471. .print-table{
  472. display: block;
  473. }
  474. .show-table{
  475. display: none;
  476. }
  477. @page {
  478. margin: 60px 0 0 0;
  479. }
  480. }
  481. </style>
  482. </html>