printReceipt2.vue 11 KB

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