Browse Source

Signed-off-by: Caner <5658514@qq.com>

Caner 4 years ago
parent
commit
973ed8aebe
2 changed files with 103 additions and 13 deletions
  1. 101 9
      web/src/pages/index/views/index.vue
  2. 2 4
      web/vite.config.js

+ 101 - 9
web/src/pages/index/views/index.vue

@@ -17,7 +17,10 @@
         />
       </div>
     </div>
-    <div class="content">{{ content }}</div>
+    <div class="content">
+      <span v-if="!table.length">{{ err }}</span>
+      <p v-else  v-for="(item,id) in table" :key="id">{{item.name}}:{{item.num}}</p>
+    </div>
     <div class="top">
       <Button type="primary" size="large" @click="save" v-if="!show"
         >识别</Button
@@ -31,6 +34,7 @@
 <script>
 import { Icon, Button } from "view-design";
 import "view-design/dist/styles/iview.css";
+import axios from "@/utils/axios";
 export default {
   components: {
     Icon,
@@ -40,7 +44,8 @@ export default {
     return {
       newImg: [],
       show: false,
-      content: "",
+      err: "",
+      table:[]
     };
   },
   methods: {
@@ -49,14 +54,14 @@ export default {
       const file = event.target.files;
       const size = 10485760; //10M
       const newArr = [];
-      if (file.length > 3) {
-        this.content = "不能超过3张";
+      if (file.length > 1) {
+        this.err = "不能超过1张";
         return;
       }
       for (let j = 0; j < file.length; j++) {
         const el = file[j];
         if (el.size > size) {
-          this.content = el.name + "大小超过限制";
+          this.err = el.name + "大小超过限制";
           continue;
         } else {
           newArr.push({
@@ -66,7 +71,7 @@ export default {
         }
       }
       this.newImg = newArr;
-      this.content = "";
+      this.err = "";
     },
     // 图片临时路径
     getObjectURL(file) {
@@ -81,11 +86,98 @@ export default {
       return url;
     },
     // 识别
-    save() {
+    async save() {
       if (!this.newImg.length) return;
       this.show = true;
-      console.log(this.newImg);
+      const formData = new FormData();
+      formData.append("pic", this.newImg[0].data);
+      const res = await axios.post("/uploadOneInvoicePic", formData);
+      if (res.success) {
+        const newArr = this.setData(res.data.invoice_data.words_result[0].result)
+        this.table = newArr
+      } else {
+        this.err = "识别错误";
+        this.table = []
+      }
+      this.show = false;
+    },
+    // 处理数据
+    setData(data) {
+      let content = [];
+      for (const key in data) {
+        content.push({
+          name: this.names(key) || '无',
+          num: data[key].length ? data[key][0].word : ''
+        })
+      }
+      return content
     },
+    // 名词
+    names(key){
+      let name = ''
+        switch (key) {
+          case "AmountInFiguers":
+            name = "合计"
+            break;
+          case "AmountInWords":
+            name = '合计大写'
+            break;
+          case "CheckCode":
+            name = '校验码'
+            break;  
+          case "Checker":
+            name = '复核'
+            break;
+          case "InvoiceCode":
+            name = '发票代码'
+            break;
+          case "InvoiceCodeConfirm":
+            name = '发票代码确认'
+            break;
+          case "InvoiceDate":
+            name = '发票日期'
+            break;
+          case "InvoiceNum":
+            name = '发票编号'
+            break;
+          case "InvoiceNumConfirm":
+            name = '发票编号确认'
+            break;
+          case "NoteDrawer":
+            name = '开票人'
+            break;   
+          case "Payee":
+            name = '收款人'
+            break; 
+          case "PurchaserAddress":
+            name = '买方地址'
+            break; 
+          case "PurchaserBank":
+            name = '买方银行信息'
+            break; 
+          case "PurchaserName":
+            name = '买方名称'
+            break; 
+          case "PurchaserRegisterNum":
+            name = '买方识别号'
+            break; 
+          case "SellerAddress":
+            name = '卖方地址'
+            break; 
+          case "SellerBank":
+            name = '卖方银行信息'
+            break; 
+          case "SellerName":
+            name = '卖方名称'
+            break;   
+          case "SellerRegisterNum":
+            name = '卖方识别号'
+            break;                                                                                                                                                                                                     
+          default:
+            break;
+        }
+      return name
+    }
   },
 };
 </script>
@@ -144,7 +236,7 @@ export default {
   }
   .content {
     padding: 0.1rem 0;
-    max-height: 2.5rem;
+    max-height: 6rem;
     overflow-y: auto;
     overflow-x: hidden;
   }

+ 2 - 4
web/vite.config.js

@@ -39,9 +39,7 @@ export default ({ mode }) => defineConfig({
       '@': path.resolve(__dirname, './src')
     }
   },
-  plugins: [createVuePlugin(), viteCompression({ //gzip压缩
-    disable: true,
-  })],
+  plugins: [createVuePlugin(), viteCompression()],
   server: {
     host: 'localhost',
     port: 6547,
@@ -75,7 +73,7 @@ export default ({ mode }) => defineConfig({
   },
   define: { //环境变量配置
     'process.env': {
-      'SERVERURL': mode === 'development' ? 'http://127.0.0.1:5000':'http://127.0.0.1:5000'
+      'SERVERURL': mode === 'development' ? 'https://ocrserver.caner.top':'https://ocrserver.caner.top'
     }
   }
 })