printReceipt.vue 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364
  1. <template>
  2. <div class="tableAllDate">
  3. <div class="button-box">
  4. <el-button
  5. type="primary"
  6. @click="print1()"
  7. v-print="'#pdfDom1'"
  8. style="width: 500px;height: 120px;font-size: 100px"
  9. >
  10. <!--class="el-icon-printer"-->
  11. <!---->
  12. 打印
  13. </el-button>
  14. </div>
  15. <div id="pdfDom1">
  16. <div id="pdfDom" v-for="(item, index) in dataList" :key="index">
  17. <div class="blank"></div>
  18. <div class="title">
  19. <h5 align="center">{{ shippername }} 物资送货单</h5>
  20. <!-- <h5 align="center">物资送货单</h5>-->
  21. </div>
  22. <div>
  23. <!-- tablePart0 -->
  24. <table
  25. border="0"
  26. cellpadding="10"
  27. cellspacing="0"
  28. style="margin: auto; font-size: 20px"
  29. width="1000px"
  30. class="tablePart0"
  31. >
  32. <tr>
  33. <th style="width: 14.5%">销售订单号:</th>
  34. <td style="width: 85.5%">{{ saleNo }}</td>
  35. </tr>
  36. </table>
  37. </div>
  38. <div class="tableBody">
  39. <!-- tablePart1 -->
  40. <table
  41. border="1"
  42. cellpadding="10"
  43. cellspacing="0"
  44. style="margin-top: 10px; text-align: center"
  45. width="1000px"
  46. class="tablePart1"
  47. >
  48. <tr>
  49. <th style="width: 5%; text-align: center">序号</th>
  50. <th style="width: 23.5%; text-align: center">物资名称</th>
  51. <th style="width: 22.5%; text-align: center">规格型号</th>
  52. <th style="width: 14%">件数</th>
  53. <th style="width: 35%">重量</th>
  54. <!-- <th style="width: 21%">订单日期</th>-->
  55. </tr>
  56. <tr v-for="(item, index) in deliveryOrderMaterialList" :key="index">
  57. <td>{{ index + 1 }}</td>
  58. <td>{{ item.materialName }}</td>
  59. <td>{{ item.materialSpe }}{{ item.materialModel }}</td>
  60. <td>{{ item.materialNumber }}</td>
  61. <td>{{ item.materialWeight }}</td>
  62. <!-- <td>{{ item.makeDate }}</td>-->
  63. </tr>
  64. </table>
  65. <!-- tablePart2 -->
  66. <table
  67. border="1"
  68. cellpadding="10"
  69. cellspacing="0"
  70. style="border-top: 0px"
  71. width="1000px"
  72. class="tablePart2"
  73. >
  74. <tr>
  75. <th style="width: 28.5%">收货地点</th>
  76. <td style="width: 71.5%">
  77. {{ province }}{{ district }}{{ town }}{{ deliveryAddress }}
  78. </td>
  79. </tr>
  80. </table>
  81. <!-- tablePart3 -->
  82. <table
  83. border="1"
  84. cellpadding="10"
  85. cellspacing="0"
  86. style="border-top: 0px"
  87. width="1000px"
  88. class="tablePart3"
  89. >
  90. <tr>
  91. <th style="width: 28.5%">收货人</th>
  92. <td style="width: 22.5%">{{ consignee }}</td>
  93. <th style="width: 14%">电话</th>
  94. <td style="width: 35%">{{ consigneeTel }}</td>
  95. </tr>
  96. </table>
  97. <!-- tablePart4 -->
  98. <table
  99. border="0"
  100. cellpadding="10"
  101. cellspacing="0"
  102. style="border-top: 0px"
  103. width="1000px"
  104. class="tablePart4"
  105. >
  106. <tr>
  107. <th style="width: 28.5%">承运商</th>
  108. <td style="width: 36.5%">{{ carrierName }}</td>
  109. <th style="width: 14%">车牌号</th>
  110. <td style="width: 35%">{{ capacityNumber }}</td>
  111. </tr>
  112. </table>
  113. <!-- tablePart9 -->
  114. <table
  115. border="1"
  116. cellpadding="10"
  117. cellspacing="0"
  118. style="border-top: 0px"
  119. width="1000px"
  120. class="tablePart9"
  121. >
  122. <tr>
  123. <th style="width: 28.5%">备注</th>
  124. <td style="width: 71.5%">{{ note }}</td>
  125. </tr>
  126. </table>
  127. </div>
  128. <div>
  129. <!-- tablePart6 margin-top: 10px-->
  130. <table
  131. border="0"
  132. cellpadding="10"
  133. cellspacing="0"
  134. style="margin: auto; font-size: 20px"
  135. width="1000px"
  136. class="tablePart6"
  137. >
  138. <tr>
  139. <th style="width: 8.25%">发货单位:</th>
  140. <td style="width: 30.5%">{{ shippername }}</td>
  141. <th style="width: 8.25%">收货单位:</th>
  142. <td style="width: 30.5%">{{ consigeeName }}</td>
  143. </tr>
  144. </table>
  145. </div>
  146. <!-- <div>
  147. &lt;!&ndash; tablePart6 &ndash;&gt;
  148. <table
  149. border="0"
  150. cellpadding="10"
  151. cellspacing="0"
  152. style="margin: auto; font-size: 20px; margin-top: 10px"
  153. width="1000px"
  154. class="tablePart6"
  155. >
  156. <tr>
  157. <th style="width: 6.25%">收货单位:</th>
  158. <td style="width: 53.5%">{{ consigeeName }}</td>
  159. </tr>
  160. </table>
  161. </div>-->
  162. <div>
  163. <!-- tablePart6 margin-top: 10px-->
  164. <table
  165. border="0"
  166. cellpadding="10"
  167. cellspacing="0"
  168. style="margin: auto; font-size: 20px"
  169. width="1000px"
  170. class="tablePart6"
  171. >
  172. <tr>
  173. <th style="width: 14.5%">签收人:</th>
  174. <th style="width: 14.5%">签收时间:</th>
  175. </tr>
  176. </table>
  177. </div>
  178. <!-- <div>
  179. &lt;!&ndash; tablePart6 &ndash;&gt;
  180. <table
  181. border="0"
  182. cellpadding="10"
  183. cellspacing="0"
  184. style="margin: auto; font-size: 20px; margin-top: 10px"
  185. width="1000px"
  186. class="tablePart6"
  187. >
  188. <tr>
  189. <th style="width: 14.5%">签收时间:</th>
  190. </tr>
  191. </table>
  192. </div>-->
  193. <!--设置中间的间隔以及虚线-->
  194. <div style="height: 80px"></div>
  195. <hr width=1500px style="border:1px dashed black;height:1px">
  196. </div>
  197. </div>
  198. <!-- <el-button style="margin-left: 45%;" type="primary" @click="getPdf()">
  199. <i class="el-icon-download"></i>导出(pdf)
  200. </el-button> -->
  201. <el-button type="primary" @click="backScan()">
  202. <i class="el-icon-back"></i>返回
  203. </el-button>
  204. </div>
  205. </template>
  206. <script>
  207. import table from "@/components/DilCommonUI/packages/table/src/table.vue";
  208. export default {
  209. components: { table },
  210. name: "Login",
  211. data() {
  212. return {
  213. orderNumber: "",
  214. consignee: "",
  215. town: "",
  216. consigneeTel: "",
  217. sendDate: "",
  218. receiptDate: "",
  219. consigeeName: "",
  220. saleNo: "",
  221. deliveryOrderMaterialList: [
  222. {
  223. materialName: "",
  224. materialSpe: "",
  225. materialModel: "",
  226. materialNumber: 0,
  227. materialWeight: 0,
  228. makeDate: ""
  229. }
  230. ],
  231. carrierName: "",
  232. province: "",
  233. deliveryAddress: "",
  234. district: "",
  235. capacityNumber: "",
  236. shippername: "",
  237. year: new Date().getFullYear(),
  238. month: new Date().getMonth() + 1,
  239. date: new Date().getDate(),
  240. htmlTitle: "客户换票送货单",
  241. note: "",
  242. dataList: ["1", "2", "3"],
  243. timer1:''
  244. };
  245. },
  246. created() {
  247. this.getDeliveryOrder();
  248. },
  249. mounted() {
  250. /*this.timer1 = setTimeout(this.print,2000);*/
  251. // 六十秒不操作,自动返回扫码页面
  252. const timer = setInterval(() => {
  253. this.backScan();
  254. }, 30000);
  255. this.$once("hook:beforeDestroy", () => {
  256. clearInterval(timer);
  257. /*clearTimeout(this.timer1)*/
  258. });
  259. },
  260. methods: {
  261. getDeliveryOrder() {
  262. let orderNumber = this.$route.query.orderNumber;
  263. this.axios
  264. .post("/api/v1/tms/getDeliveryOrder?orderNumber=" + orderNumber)
  265. .then(res => {
  266. console.log(res);
  267. this.orderNumber = res.data.orderNumber;
  268. this.carrierName = res.data.carrierName;
  269. this.capacityNumber = res.data.capacityNumber;
  270. this.consigeeName = res.data.consigeeName;
  271. this.consignee = res.data.consignee;
  272. this.consigneeTel = res.data.consigneeTel;
  273. this.sendDate = res.data.sendDate;
  274. this.saleNo = res.data.saleNo;
  275. console.log(this.saleNo);
  276. this.shippername = res.data.shippername;
  277. this.province = res.data.province;
  278. this.district = res.data.district;
  279. this.town = res.data.town;
  280. this.deliveryAddress = res.data.deliveryAddress;
  281. this.deliveryOrderMaterialList = res.data.deliveryOrderMaterialList;
  282. this.note = res.data.note;
  283. });
  284. },
  285. print(){
  286. let newstr=document.getElementById("pdfDom1").innerHTML
  287. let oldstr=document.body.innerHTML
  288. document.body.innerHTML=newstr
  289. window.print()
  290. /*document.body.innerHTML=oldstr*/
  291. let orderNumber = this.$route.query.orderNumber;
  292. this.axios.post("/api/v1/tms/changeNumber?orderNumber=" + orderNumber)
  293. },
  294. print1(){
  295. let orderNumber = this.$route.query.orderNumber;
  296. this.axios.post("/api/v1/tms/changeNumber?orderNumber=" + orderNumber)
  297. this.backScan();
  298. },
  299. backScan() {
  300. this.$router.go(-1);
  301. }
  302. }
  303. };
  304. </script>
  305. <style lang="scss" scoped>
  306. .title {
  307. font-size: 25px;
  308. }
  309. .tableBody {
  310. table,
  311. th,
  312. td {
  313. border: 1px solid black;
  314. font-size: 20px;
  315. margin: auto;
  316. text-align: center;
  317. }
  318. .tablePart1 th {
  319. border-top: 1px solid black;
  320. text-align: center;
  321. }
  322. .tablePart2 td,
  323. th {
  324. border-top: 0px;
  325. text-align: center;
  326. }
  327. .tablePart3 td,
  328. th {
  329. border-top: 0px;
  330. text-align: center;
  331. }
  332. .tablePart4 td,
  333. th {
  334. border-top: 0px;
  335. text-align: center;
  336. }
  337. .tablePart9 td,
  338. th {
  339. border-top: 0px;
  340. text-align: center;
  341. }
  342. }
  343. .blank {
  344. width: 100%;
  345. height: 50px;
  346. }
  347. .button-box {
  348. display: flex;
  349. text-align: center;
  350. align-items: center;
  351. justify-content: center;
  352. margin-top: 0.3125rem;
  353. margin-bottom: 1.25rem;
  354. }
  355. </style>