马宇豪
2024-02-23 4cfbfd1b425f7b22b876ae6cae95c4fc29ae6bfb
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="-"
@@ -121,7 +121,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 +155,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 +192,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 +215,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,
@@ -261,14 +277,6 @@
                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 +321,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 +332,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',
@@ -407,9 +423,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 +453,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()