Lou
2024-02-20 9081024f205ed8c4ebee00c8731b7213acb2c6fa
src/views/publicSecurity/positionManage/TransactRegist.vue
@@ -28,6 +28,17 @@
                <el-button type="warning" size="small" plain icon="el-icon-download" @click="handleExport">导出
                </el-button>
            </template>
            <template slot-scope="{row, size}" slot="phoneNumber">
                <el-button :size="size" type="text" @click="showStringDispose(row, 'phoneNumberflag')"
                    v-text="textDispose(row, 'phoneNumberflag', 'phoneNumber')">
                </el-button>
            </template>
            <template slot-scope="{row, size}" slot="transactionObjectTel">
                <el-button :size="size" type="text" @click="showStringDispose(row, 'transactionObjectTelflag')"
                    v-text="textDispose(row, 'transactionObjectTelflag', 'transactionObjectTel')">
                </el-button>
            </template>
        </avue-crud>
@@ -66,7 +77,21 @@
    update,
    add,
} from "@/api/task/labelReporting"
import NProgress from 'nprogress'
import 'nprogress/nprogress.css'
import Qs from "qs"
import {
    exportBlob
} from "@/api/common"
import {
    getToken
} from '@/util/auth'
import {
    downloadXls
} from "@/util/util"
import {
    dateNow
} from "@/util/date"
import {
    mapGetters
} from "vuex"
@@ -139,155 +164,207 @@
                selection: true,
                dialogClickModal: false,
                column: [
                {
                    width: 110,
                    span: 12,
                    label: "交易对象",
                    prop: "transactionObject",
                    searchSpan: 4,
                    searchLabelWidth: 100,
                    search: true,
                    align: 'center'
                },
                {
                    width: 110,
                    span: 12,
                    label: "交易对象电话",
                    prop: "transactionObjectTel",
                    searchSpan: 4,
                    searchLabelWidth: 100,
                    search: true,
                    align: 'center'
                },
                {
                    width: 110,
                    span: 12,
                    label: "身份证号",
                    prop: "idCard",
                    searchSpan: 4,
                    searchLabelWidth: 100,
                    search: true,
                    align: 'center'
                },
                {
                    width: 110,
                    span: 12,
                    label: "交易数量",
                    prop: "goodsNums",
                    align: 'center'
                },
                {
                    width: 110,
                    span: 12,
                    label: "交易金额",
                    prop: "transactionMoney",
                    align: 'center'
                },
                {
                    width: 110,
                    span: 12,
                    label: "场所名称",
                    prop: "placeName",
                    searchSpan: 4,
                    searchLabelWidth: 100,
                    search: true,
                    align: 'center'
                },
                {
                    width: 110,
                    span: 12,
                    label: "场所负责人",
                    prop: "principal",
                    searchSpan: 4,
                    searchLabelWidth: 100,
                    search: true,
                    align: 'center'
                }, {
                    width: 120,
                    span: 12,
                    label: "联系方式",
                    prop: "principalPhone",
                    searchSpan: 4,
                    search: true,
                    rules: [{
                        validator: validatorPhone,
                        trigger: 'blur'
                    }],
                    align: 'center'
                }, {
                    overHidee: true,
                    span: 12,
                    label: "地址",
                    prop: "location",
                    searchSpan: 4,
                    minWidth:220,
                    overHidden:true,
                    // search: true,
                    rules: [{
                        required: true,
                        message: "请输入地址",
                        trigger: "blur",
                    },],
                    align: 'center'
                }, {
                    width: 110,
                    label: "所属街道",
                    // hide: true,
                    // search: true,
                    parent: false,
                    searchSpan: 4,
                    prop: "streetName",
                    align: 'center'
                }, {
                    width: 156,
                    parent: false,
                    searchSpan: 4,
                    label: "所属社区",
                    prop: "communityName",
                    align: 'center'
                },
                {
                    label: "阵地类型",
                    prop: "frontType",
                    dicUrl: "/api/blade-system/dict-biz/tree?code=frontType",
                    props: {
                        label: "title",
                        value: "key",
                    {
                        width: 110,
                        span: 12,
                        label: "场所名称",
                        prop: "districtName",
                        searchSpan: 4,
                        searchLabelWidth: 100,
                        search: true,
                        align: 'center',
                        labelWidth: 110,
                    },
                    type: 'select',
                    search: true,
                    searchSpan:4,
                    align: 'center',
                    width: 120,
                },
                {
                    width: 100,
                    addDisplay: false,
                    editDisplay: false,
                    viewDisplay: false,
                    label: '审核状态',
                    prop: 'confirmFlag',
                    type: 'radio',
                    slot: true,
                    dicData: [{
                        label: '待审核',
                        value: 1
                    {
                        span: 12,
                        label: "场所地址",
                        prop: "localtion",
                        searchSpan: 4,
                        minWidth: 220,
                        overHidden: true,
                        // search: true,
                        rules: [{
                            required: true,
                            message: "请输入地址",
                            trigger: "blur",
                        },],
                        align: 'center',
                        labelWidth: 110,
                    },
                    {
                        label: "阵地类型",
                        prop: "frontType",
                        dicUrl: "/api/blade-system/dict-biz/tree?code=frontType",
                        props: {
                            label: "title",
                            value: "key",
                        },
                        type: 'select',
                        search: true,
                        searchSpan: 4,
                        align: 'center',
                        width: 120,
                        labelWidth: 110,
                    },
                    {
                        width: 110,
                        span: 12,
                        label: "场所负责人",
                        prop: "owner",
                        searchSpan: 4,
                        searchLabelWidth: 100,
                        search: true,
                        align: 'center',
                        labelWidth: 110,
                    }, {
                        label: '已审核',
                        value: 2
                        width: 120,
                        span: 12,
                        label: "联系方式",
                        prop: "phoneNumber",
                        searchSpan: 4,
                        search: true,
                        rules: [{
                            validator: validatorPhone,
                            trigger: 'blur'
                        }],
                        align: 'center',
                        slot: true,
                        labelWidth: 110,
                    },
                    {
                        width: 110,
                        span: 12,
                        label: "交易对象",
                        prop: "transactionObject",
                        searchSpan: 4,
                        searchLabelWidth: 100,
                        search: true,
                        align: 'center',
                        labelWidth: 110,
                    },
                    {
                        width: 110,
                        span: 12,
                        label: "交易对象电话",
                        prop: "transactionObjectTel",
                        searchSpan: 4,
                        searchLabelWidth: 100,
                        search: true,
                        align: 'center',
                        labelWidth: 110,
                        slot: true
                    },
                    {
                        width: 110,
                        span: 12,
                        label: "身份证号",
                        prop: "idCard",
                        searchSpan: 4,
                        searchLabelWidth: 100,
                        search: true,
                        align: 'center',
                        labelWidth: 110,
                    },
                    {
                        width: 110,
                        span: 12,
                        label: "交易数量",
                        prop: "goodsNums",
                        align: 'center',
                        labelWidth: 110,
                    },
                    {
                        width: 110,
                        span: 12,
                        label: "交易金额",
                        prop: "transactionMoney",
                        align: 'center',
                        labelWidth: 110,
                    },
                    {
                        width: 110,
                        span: 12,
                        label: "交易过程",
                        prop: "transactionProcess",
                        align: 'center',
                        labelWidth: 110,
                    },
                    {
                        width: 140,
                        span: 12,
                        label: "发生时间",
                        prop: "createTime",
                        align: 'center',
                        labelWidth: 110,
                    },
                    {
                        width: 110,
                        label: "所属街道",
                        // hide: true,
                        // search: true,
                        parent: false,
                        searchSpan: 4,
                        prop: "streetName",
                        align: 'center',
                        labelWidth: 110,
                    }, {
                        label: '未通过',
                        value: 3
                        width: 156,
                        parent: false,
                        searchSpan: 4,
                        label: "所属社区",
                        prop: "communityName",
                        align: 'center',
                        labelWidth: 110,
                    },
                    {
                        width: 100,
                        addDisplay: false,
                        editDisplay: false,
                        viewDisplay: false,
                        label: '审核状态',
                        prop: 'confirmFlag',
                        type: 'radio',
                        slot: true,
                        dicData: [{
                            label: '待审核',
                            value: 1
                        }, {
                            label: '已审核',
                            value: 2
                        }, {
                            label: '未通过',
                            value: 3
                        }, {
                            label: '待接收',
                            value: 4
                        }],
                        align: 'center',
                        labelWidth: 110,
                    }, {
                        label: '待接收',
                        value: 4
                    }],
                    align: 'center'
                }],
                        width: 110,
                        label: '物品图片',
                        prop: 'goodsImageUrls',
                        fileType: 'img',
                        type: "upload",
                        listType: "picture-card",
                        dataType: "string",
                        disabled: true,
                        span: 12,
                        labelWidth: 110,
                    }, {
                        width: 110,
                        label: '身份证照片',
                        prop: 'imageUrls',
                        fileType: 'img',
                        type: "upload",
                        listType: "picture-card",
                        dataType: "string",
                        disabled: true,
                        span: 12,
                        labelWidth: 110,
                    },],
            },
            data: [],
            auditBasePopup: false,
        }
    },
@@ -350,9 +427,48 @@
                return tags
            }
        },
        textDispose () {
            return (row, flag, type) => {
                if (row[flag] || row[type] == null) {
                    return row[type]
                } else {
                    if (type == 'principalIdCard') {
                        return row[type].replace(/^(.{6})(?:\d+)(.{4})$/, "$1******$2")
                    } else {
                        return row[type].replace(/^(.{3})(?:\d+)(.{4})$/, "$1****$2")
                    }
                }
            }
        }
    },
    methods: {
        showStringDispose (row, type) {
            row[type] = !row[type]
        },
        handleExport () {
            this.$confirm("是否导出交易登记数据?", "提示", {
                confirmButtonText: "确定",
                cancelButtonText: "取消",
                type: "warning"
            }).then(() => {
                NProgress.start()
                var data = {
                    ...this.query
                }
                // data.isNine = 1
                data = Qs.stringify(data)
                exportBlob(
                    `/api/blade-taskLabelReportingEvent/taskLabelReportingEvent/export-taskLabelReportingEvent?${this.website.tokenHeader}=${getToken()}&` + data
                ).then(res => {
                    console.log('exportBlob', res)
                    downloadXls(res.data, `交易登记${dateNow()}.xlsx`)
                    NProgress.done()
                })
            })
        },
        // 弹窗关闭回调
        handleClose () {
            this.cancelAudit()
@@ -572,10 +688,10 @@
        },
        beforeOpen (done, type) {
            if (["edit", "view"].includes(type)) {
            if (["edit"].includes(type)) {
                getDetail(this.form.id).then((res) => {
                  this.form = res.data.data
                  done()
                    this.form = res.data.data
                    done()
                })
            } else {
                done()
@@ -617,6 +733,8 @@
                this.page.total = data.total
                this.data = data.records
                this.data.forEach(item => {
                    this.$set(item, 'phoneNumberflag', false)
                    this.$set(item, 'transactionObjectTelflag', false)
                    if (item.imageUrls && item.imageUrls != '' && item.imageUrls != null && item.imageUrls.length) {
                        var urls = []
                        var names = item.imageUrls.split(",").filter(item => item != '')
@@ -625,6 +743,14 @@
                        })
                        item.imageUrls = urls.join(",")
                    }
                    if (item.goodsImageUrls && item.goodsImageUrls != '' && item.goodsImageUrls != null && item.goodsImageUrls.length) {
                        var urls = []
                        var names = item.goodsImageUrls.split(",").filter(item => item != '')
                        names.forEach(name => {
                            urls.push(website.minioUrl + name)
                        })
                        item.goodsImageUrls = urls.join(",")
                    }
                })
                this.loading = false
                this.selectionClear()