printReceipt2.vue 11 KB

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