From ab701df859cd79ae036f8cc86268137d2c8da8ee Mon Sep 17 00:00:00 2001
From: guanqb <18720758508@163.com>
Date: Thu, 22 Feb 2024 18:00:56 +0800
Subject: [PATCH] 消防自查导出、消防自查和场所检查增加场所类别字段

---
 src/views/publicSecurity/positionManage/TransactRegist.vue |  496 +++++++++++++++++++++++++++++++++++--------------------
 1 files changed, 316 insertions(+), 180 deletions(-)

diff --git a/src/views/publicSecurity/positionManage/TransactRegist.vue b/src/views/publicSecurity/positionManage/TransactRegist.vue
index 5c5d9f4..d888c4d 100644
--- a/src/views/publicSecurity/positionManage/TransactRegist.vue
+++ b/src/views/publicSecurity/positionManage/TransactRegist.vue
@@ -7,21 +7,42 @@
             @refresh-change="refreshChange" @on-load="onLoad">
 
             <template slot-scope="{row, size}" slot="menu">
-                <el-button type="text" :size="size" icon="el-icon-view" v-if="permission.place_view" plain
+                <!-- <el-button type="text" :size="size" icon="el-icon-view" v-if="permission.place_view" plain
                     @click="lookDetail(row, 0)">查 看
-                </el-button>
+                </el-button> -->
                 <el-button type="text" :size="size" icon="el-icon-delete" v-if="permission.place_del" plain
                     @click="rowDel(row)">删 除
                 </el-button>
-                <el-button type="text" :size="size" icon="el-icon-s-check" v-if="row.status == 1" plain
-                    @click="goAudit(row)" :disabled="row.status != 1">审 核
+                <el-button type="text" :size="size" icon="el-icon-s-check" plain @click="goAudit(row)"
+                    v-if="row.confirmFlag == 1" :disabled="row.confirmFlag != 1">审 核
                 </el-button>
             </template>
 
-            <template slot="status" slot-scope="{row, size}">
-                <el-tag :size="size" :type="showStatus(row.status).type">
-                    {{ showStatus(row.status).text }}
+            <template slot="confirmFlag" slot-scope="{row, size}">
+                <el-tag :size="size" :type="showStatus(row.confirmFlag).type">
+                    {{ showStatus(row.confirmFlag).text }}
                 </el-tag>
+            </template>
+
+            <template slot="menuLeft">
+                <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>
+            <template slot-scope="{row, size}" slot="idCard">
+                <el-button :size="size" type="text" @click="showStringDispose(row, 'idCardflag')"
+                    v-text="textDispose(row, 'idCardflag', 'idCard')">
+                </el-button>
             </template>
         </avue-crud>
 
@@ -34,21 +55,7 @@
 
         <el-dialog :visible.sync="visible" append-to-body destroy-on-close title="审核" width="30%"
             custom-class="flow-design-dialog" :before-close="handleClose">
-            <el-form ref="auditForm" :model="auditForm" :rules="auditRules">
-                <el-form-item label="审核结论:" prop="status">
-                    <el-radio-group v-model="auditForm.status">
-                        <el-radio :label="2">通过</el-radio>
-                        <el-radio :label="3">不通过</el-radio>
-                    </el-radio-group>
-                </el-form-item>
-                <el-form-item label="不通过原因:" prop="remark" v-if="auditForm.status == 3">
-                    <el-input type="textarea" v-model="auditForm.remark"></el-input>
-                </el-form-item>
-            </el-form>
-            <div style="display:flex;justify-content:center">
-                <el-button @click="submitAudit" size="small" type="primary">保 存</el-button>
-                <el-button @click="cancelAudit" size="small">取 消</el-button>
-            </div>
+            <audit-base @handleSubmit="submitAudit"></audit-base>
         </el-dialog>
     </basic-container>
 </template>
@@ -56,11 +63,26 @@
 <script>
 import {
     getList,
+    getDetail,
     removeTask,
     update,
     add,
-} from "@/api/task/task"
-
+} 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"
@@ -92,7 +114,6 @@
                 status: [{ required: true, message: "必填" }],
                 remark: [{ required: true, message: "必填" }],
             },
-            auditForm: {},
             visible: false,
             taskType: 0,
             curRow: {},
@@ -123,137 +144,219 @@
                 border: true,
                 //stripe:true,
                 index: true,
-                // viewBtn: true,
+                viewBtn: true,
+                addBtn: false,
                 editBtn: false,
                 delBtn: false,
+                refreshBtn: false,
+                searchShowBtn: false,
+                columnBtn: false,
                 selection: true,
-                header: false,
                 dialogClickModal: false,
-                column: [{
-                    span: 12,
-                    label: "社区",
-                    prop: "communityName",
-                    searchSpan: 4,
-                    searchLabelWidth: 46,
-                    search: true,
-                    hide: true,
-                    align: 'center'
-                },
-                {
-                    width: 110,
-                    span: 12,
-                    label: "场所负责人",
-                    prop: "realName",
-                    searchSpan: 4,
-                    searchLabelWidth: 100,
-                    search: true,
-                    align: 'center'
-                }, {
-                    width: 120,
-                    span: 12,
-                    label: "联系方式",
-                    prop: "phone",
-                    searchSpan: 4,
-                    search: true,
-                    rules: [{
-                        validator: validatorPhone,
-                        trigger: 'blur'
-                    }],
-                    align: 'center'
-                }, {
-                    overHidee: true,
-                    span: 12,
-                    label: "地址",
-                    prop: "addressName",
-                    searchSpan: 4,
-                    // search: true,
-                    rules: [{
-                        required: true,
-                        message: "请输入地址",
-                        trigger: "blur",
-                    },],
-                    align: 'center'
-                }, {
-                    width: 110,
-                    label: "所属街道",
-                    // hide: true,
-                    // search: true,
-                    parent: false,
-                    searchSpan: 4,
-                    prop: "streetCode",
-                    type: "tree",
-                    dicUrl: "/api/blade-system/region/getTownTree",
-                    props: {
-                        label: "name",
-                        value: "id"
+                column: [
+                    {
+                        width: 110,
+                        span: 12,
+                        label: "场所名称",
+                        prop: "districtName",
+                        searchSpan: 4,
+                        searchLabelWidth: 100,
+                        search: true,
+                        align: 'center',
+                        labelWidth: 110,
                     },
-                    rules: [{
-                        required: true,
-                        message: "请选择所属街道",
-                        trigger: "blur",
-                    },],
-                    align: 'center'
-                }, {
-                    width: 156,
-                    // hide: true,
-                    parent: false,
-                    searchSpan: 4,
-                    label: "所属社区",
-                    prop: "neiCode",
-                    // search: false,
-                    type: "tree",
-                    dicUrl: "/api/blade-system/region/tree",
-                    props: {
-                        label: "name",
-                        value: "id",
+                    {
+                        span: 12,
+                        label: "场所地址",
+                        prop: "localtion",
+                        searchSpan: 4,
+                        minWidth: 220,
+                        overHidden: true,
+                        // search: true,
+                        rules: [{
+                            required: true,
+                            message: "请输入地址",
+                            trigger: "blur",
+                        },],
+                        align: 'center',
+                        labelWidth: 110,
                     },
-                    rules: [{
-                        required: true,
-                        message: "请选择所属社区",
-                        trigger: "blur",
-                    },],
-                    align: 'center'
-                },
-                {
-                    label: "阵地类型",
-                    prop: "frontType",
-                    dicUrl: "/api/blade-system/dict-biz/tree?code=frontType",
-                    props: {
-                        label: "title",
-                        value: "key",
+                    {
+                        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,
                     },
-                    // type: 'select',
-                    // search: true,
-                    align: 'center',
-                    width: 120,
-                },
-                {
-                    width: 100,
-                    addDisplay: false,
-                    editDisplay: false,
-                    viewDisplay: false,
-                    label: '审核状态',
-                    prop: 'status',
-                    type: 'radio',
-                    slot: true,
-                    dicData: [{
-                        label: '待审核',
-                        value: 1
+                    {
+                        width: 110,
+                        span: 12,
+                        label: "场所负责人",
+                        prop: "owner",
+                        searchSpan: 4,
+                        searchLabelWidth: 110,
+                        search: true,
+                        align: 'center',
+                        labelWidth: 110,
                     }, {
-                        label: '已审核',
-                        value: 2
+                        width: 120,
+                        span: 12,
+                        label: "联系方式",
+                        prop: "phoneNumber",
+                        searchSpan: 4,
+                        search: true,
+                        searchLabelWidth: 96,
+                        rules: [{
+                            validator: validatorPhone,
+                            trigger: 'blur'
+                        }],
+                        align: 'center',
+                        slot: true,
+                        labelWidth: 110,
+                    },
+                    {
+                        width: 110,
+                        span: 12,
+                        label: "交易对象",
+                        prop: "transactionObject",
+                        searchSpan: 4,
+                        searchLabelWidth: 96,
+                        search: true,
+                        align: 'center',
+                        labelWidth: 110,
+                    },
+                    {
+                        width: 110,
+                        span: 12,
+                        label: "交易对象电话",
+                        prop: "transactionObjectTel",
+                        searchSpan: 4,
+                        searchLabelWidth: 120,
+                        searchPlaceholder: '请输入交易电话',
+                        search: true,
+                        align: 'center',
+                        labelWidth: 110,
+                        slot: true
+                    },
+                    {
+                        width: 160,
+                        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,
         }
     },
@@ -316,9 +419,48 @@
 
                 return tags
             }
+        },
+
+        textDispose () {
+            return (row, flag, type) => {
+                if (row[flag] || row[type] == null) {
+                    return row[type]
+                } else {
+                    if (type == 'idCardflag') {
+                        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()
@@ -327,23 +469,21 @@
         // 取消审核
         cancelAudit () {
             this.visible = false
-            this.auditForm = {}
-            this.$refs.auditForm.resetFields()
         },
 
         // 确认提交审核
-        submitAudit () {
-            this.$refs.auditForm.validate((valid) => {
-                if (valid) {
-                    applyTaskExamine(Object.assign(this.auditParams, this.auditForm)).then(res => {
-                        if (res.data.code == 200) {
-                            this.$message.warning("审核成功")
-                            this.onLoad(this.page)
-                            this.cancelAudit()
-                        }
-                    })
-                } else {
-                    return false
+        submitAudit (form) {
+            let auditForm = {
+                status: form.status == '1' ? '2' : '3',
+                remark: form.confirmNotion,
+                reportType: 5
+            }
+
+            applyTaskExamine(Object.assign(this.auditParams, auditForm)).then(res => {
+                if (res.data.code == 200) {
+                    this.$message.warning("审核成功")
+                    this.onLoad(this.page)
+                    this.cancelAudit()
                 }
             })
         },
@@ -351,10 +491,9 @@
         // 审核按钮
         goAudit (row) {
             this.auditParams = {
-                id: row.id,
-                reportType: row.reportType
+                id: row.taskId,
+                reportType: 5
             }
-            console.log('this.auditParams', this.auditParams)
             this.visible = true
         },
 
@@ -538,25 +677,11 @@
         },
 
         beforeOpen (done, type) {
-            if (["edit", "view"].includes(type)) {
-                // getPlace(this.form.id).then((res) => {
-                //   this.form = res.data.data
-                //   if (this.form.imageUrls.length) {
-                //     this.form.imageUrls = this.form.imageUrls.split(",").filter(item => item != '').map(item => website
-                //       .minioUrl + item).join(',')
-                //   }
-                //   if (this.form.placePoiLabelVOList.length) {
-                //     let lebelTwo = this.form.placePoiLabelVOList.find(item => {
-                //       return item.type == 2
-                //     })
-                //     if (lebelTwo) this.form.label = String(lebelTwo.poiCode)
-                //     let lebelThree = this.form.placePoiLabelVOList.find(item => {
-                //       return item.type == 3
-                //     })
-                //     if (lebelThree) this.form.smallLabel = String(lebelThree.poiCode)
-                //   }
-                //   done()
-                // })
+            if (["edit"].includes(type)) {
+                getDetail(this.form.id).then((res) => {
+                    this.form = res.data.data
+                    done()
+                })
             } else {
                 done()
             }
@@ -597,6 +722,9 @@
                 this.page.total = data.total
                 this.data = data.records
                 this.data.forEach(item => {
+                    this.$set(item, 'phoneNumberflag', false)
+                    this.$set(item, 'transactionObjectTelflag', false)
+                    this.$set(item, 'idCardflag', false)
                     if (item.imageUrls && item.imageUrls != '' && item.imageUrls != null && item.imageUrls.length) {
                         var urls = []
                         var names = item.imageUrls.split(",").filter(item => item != '')
@@ -605,6 +733,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()

--
Gitblit v1.9.3