App.vue 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. <template>
  2. <div class="form-container">
  3. <div>
  4. <input type="file" @change="onFileChange"/>
  5. </div>
  6. <div>
  7. <select v-model="selectedType">
  8. <option disabled selected>---请选择---</option>
  9. <option value="TrainTicket">火车票</option>
  10. <option value="TaxiInvoice">出租车发票</option>
  11. <option value="QuotaInvoice">定额发票</option>
  12. <option value="Invoice">增值税普通发票</option>
  13. </select>
  14. 金额: <label id="far" style="color: red;"></label> 票号:<label id="ticket_number" style="color: blue;"></label>
  15. </div>
  16. <button @click="uploadFile">Upload</button>
  17. <!-- <button @click="recognizeOcr">发票识别</button>-->
  18. </div>
  19. </template>
  20. <style>
  21. .form-container {
  22. display: flex;
  23. flex-direction: column;
  24. }
  25. .form-container div {
  26. margin-bottom: 10px;
  27. }
  28. </style>
  29. <script>
  30. import axios from 'axios';
  31. export default {
  32. data() {
  33. return {
  34. selectedFile: null,
  35. selectedType: null
  36. };
  37. },
  38. methods: {
  39. onFileChange(e) {
  40. this.selectedFile = e.target.files[0];
  41. },
  42. uploadFile() {
  43. const formData = new FormData();
  44. formData.append('file', this.selectedFile, this.selectedFile.name);
  45. formData.append('type', this.selectedType);
  46. axios.post('/api/upload', formData, {
  47. headers: {
  48. 'Content-Type': 'multipart/form-data'
  49. }
  50. })
  51. .then(response => {
  52. console.log(response);
  53. // Parse the response object
  54. const farValue = response.data.far;
  55. const ticketValue = response.data.ticket_number;
  56. // Render the values on the page
  57. document.getElementById('far').textContent = farValue;
  58. document.getElementById('ticket_number').textContent = ticketValue;
  59. })
  60. .catch(error => {
  61. console.error(error);
  62. });
  63. },
  64. // recognizeOcr() {
  65. //
  66. // }
  67. }
  68. };
  69. </script>