From 03f0e2a3220106ec2a9dd8f53d3ef5ab824c3ae7 Mon Sep 17 00:00:00 2001 From: 马宇豪 <978517621@qq.com> Date: 星期五, 10 一月 2025 09:47:02 +0800 Subject: [PATCH] 添加OCR --- src/views/purchase/person.vue | 72 +++++++++++++++++++++++++++-------- 1 files changed, 55 insertions(+), 17 deletions(-) diff --git a/src/views/purchase/person.vue b/src/views/purchase/person.vue index 907ad75..490b233 100644 --- a/src/views/purchase/person.vue +++ b/src/views/purchase/person.vue @@ -8,7 +8,7 @@ <el-date-picker value-format="yyyy-MM-dd HH:mm:ss" v-model="validTime" - type="datetimerange" + type="daterange" :default-time="['00:00:00','23:59:59']" :picker-options="pickerOptions" range-separator="-" @@ -27,6 +27,13 @@ :label="item.label" :value="item.value"> </el-option> + </el-select> + </div> + <div class="basic_search" style="padding-top: 10px;margin-left: 20px" > + <span>OCR识别:</span> + <el-select v-model="listQuery.filter.isOcr" placeholder="请选择" style="width:100px"> + <el-option label="是" key="1" :value="1"></el-option> + <el-option label="否" key="0" :value="0"></el-option> </el-select> </div> </div> @@ -121,7 +128,7 @@ <div class="basic_search" > <el-button style="margin-left: 10px;" type="primary" @click="reset()" size="small">重置</el-button> <el-button style="margin-left: 10px;" type="primary" icon="el-icon-search" @click="searchProductSearch('查询','')" size="small">查询</el-button> - <el-button style="margin-left: 10px;" type="primary" icon="el-icon-download" @click="exportToExcel" size="small">导出</el-button> + <el-button style="margin-left: 10px;" type="primary" icon="el-icon-download" @click="exportToExcel" v-long-re-click size="small">导出</el-button> </div> </div> @@ -155,6 +162,9 @@ <el-table-column label="退货数量(挂、个)" prop="returnnum" align="center" width="100"> </el-table-column> <el-table-column label="最近购买时间" prop="saletime" align="center" width="200"> + <template slot-scope="scope"> + <span>{{scope.row.saletime | formatDate}}</span> + </template> </el-table-column> <el-table-column label="证件照" align="center"> <template slot-scope="scope"> @@ -189,6 +199,17 @@ /> <br> </div> + <el-dialog + title="提示" + center + :visible.sync="reClickTip" + width="50%"> + <span style="color: red">由于导出数据量大,请各监管单位导出数据时不要连续点击,导出按钮已限制30s内只允许点击一次。</span> + <span slot="footer" class="dialog-footer"> + <el-button @click="reClickTip = false">取 消</el-button> + <el-button type="primary" @click="reClickTip = false">确 定</el-button> + </span> + </el-dialog> <personPurchaseDetail ref="person"></personPurchaseDetail> <upload-dialog ref="upload" @refresh="refresh"></upload-dialog> </div> @@ -201,12 +222,14 @@ import {getCityListData, getProvinceListData , } from "../../api/area"; import uploadDialog from "./customerPhoto/index"; import Cookies from "js-cookie"; + export default { - name: "addSelfExam", + name: "person", data(){ return{ tableKey:'', validTime:['',''], + reClickTip: false, listQuery: { pageSize:10, pageIndex:1, @@ -218,6 +241,7 @@ parententerprisename:'', directioncode:'', isNeedUploadPhoto:'', + isOcr: null, province:'', city:'', district:'', @@ -259,14 +283,6 @@ const end = new Date(); const start = new Date(); start.setTime(start.getTime() - 3600 * 1000 * 24 * 30); - picker.$emit('pick', [start, end]); - } - }, { - text: '最近三个月', - onClick(picker) { - const end = new Date(); - const start = new Date(); - start.setTime(start.getTime() - 3600 * 1000 * 24 * 90); picker.$emit('pick', [start, end]); } }] @@ -313,7 +329,6 @@ this.listLoading = false }, - showPurchaseDetail(val){ this.$refs.person.openPersonPurchaseDetail(this.listQuery.filter.starttime,this.listQuery.filter.endtime,val.identify,val.companynumber,this.listQuery.filter.directioncode) }, @@ -325,8 +340,17 @@ }, async exportToExcel(){ + this.reClickTip = true + if( this.validTime !== null ){ + this.listQuery.filter.starttime = this.validTime[0] + this.listQuery.filter.endtime = this.validTime[1] + }else{ + this.listQuery.filter.starttime = '' + this.listQuery.filter.endtime = '' + } let res = await exportPerson(this.listQuery) if(res.data.code === '200'){ + this.reClickTip = false if(res.data.result === null ||res.data.result === [] || res.data.result.length === 0){ this.$message({ type:'warning', @@ -399,6 +423,7 @@ parententerprisename:'', directioncode:'', isNeedUploadPhoto:'', + isOcr: null, province:'', city:'', district:'', @@ -407,9 +432,24 @@ nation:'' }, } + this.validTime = ['', ''] + this.initValidTime() + this.getPersonProductList() }, searchProductSearch(){ + this.listQuery.pageIndex = 1 + const date1 = new Date(this.validTime[0]); + const date2 = new Date(this.validTime[1]); + const differenceInMs = Math.abs(date2 - date1); + const differenceInDays = differenceInMs / (1000 * 60 * 60 * 24) + if(differenceInDays > 32){ + this.$message({ + type: 'warning', + message: '时间跨度超过一个月的,请联系管理员查询数据' + }) + return + } this.getPersonProductList() }, @@ -422,11 +462,9 @@ this.getPersonProductList() }, initValidTime(){ - const start = new Date(); - const end = new Date(); - start.setTime(end.getTime() - 3600 * 1000 * 24 * 0); - this.validTime[0] = [start.getFullYear(), start.getMonth() + 1, start.getDate()].join("-") + " 00:00:00" ; - this.validTime[1] = [end.getFullYear(), end.getMonth() + 1, end.getDate()].join("-") +" 23:59:59"; + const end = new Date(); + this.validTime[0] = end.toISOString().slice(0, 10) + " 00:00:00"; + this.validTime[1] = end.toISOString().slice(0, 10) + " 23:59:59"; }, async getProvince(){ let res = await getProvinceListData() -- Gitblit v1.9.2