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/grid/index.vue |  103 ++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 81 insertions(+), 22 deletions(-)

diff --git a/src/views/grid/index.vue b/src/views/grid/index.vue
index 847b9c1..107fbec 100644
--- a/src/views/grid/index.vue
+++ b/src/views/grid/index.vue
@@ -9,6 +9,11 @@
                 <el-button size="small" icon="el-icon-delete" plain v-if="permission.grid_delete" @click="handleDelete">删 除
                 </el-button>
             </template>
+            <template slot-scope="{row, size}" slot="principalPhone">
+                <el-button :size="size" type="text" @click="showStringDispose(row, 'principalPhoneflag')"
+                    v-text="textDispose(row, 'principalPhoneflag', 'principalPhone')">
+                </el-button>
+            </template>
         </avue-crud>
     </basic-container>
 </template>
@@ -19,6 +24,18 @@
 // import website from '@/config/website'
 export default {
     data () {
+        //手机号格式校验
+        let validatorPhone = function (rule, value, callback) {
+            if (value) {
+                if (!/^1[3456789]\d{9}$/.test(value)) {
+                    callback(new Error('手机号格式有误!'))
+                } else {
+                    callback()
+                }
+            }
+            callback()
+        }
+
         return {
             form: {},
             query: {},
@@ -31,13 +48,16 @@
             datetime: "",
             selectionList: [],
             option: {
+                labelWidth: 96,
+                searchLabelWidth: 96,
+                searchShow: true,
+                searchMenuSpan: 3,
+                menuWidth: 210,
+
                 height: "auto",
                 calcHeight: 54,
                 dialogWidth: 950,
                 tip: false,
-                searchShow: true,
-                searchMenuSpan: 3,
-                menuWidth: 280,
                 border: true,
                 //stripe:true,
                 index: true,
@@ -46,14 +66,16 @@
                 dialogClickModal: false,
                 column: [
                     {
+                        overHidden: true,
+                        label: "所属社区",
                         addDisplay: false,
                         editDisplay: false,
                         viewDisplay: false,
-                        width: 160,
-                        label: "所属社区",
                         prop: "communityName",
                         search: true,
                         searchSpan: 4,
+                        searchLabelWidth: 76,
+                        row:true, 
                         rules: [{
                             required: true,
                             message: "请选择所属社区",
@@ -67,9 +89,9 @@
                         label: "所属社区",
                         prop: "communityCode",
                         search: false,
-                        width: 150,
                         type: "tree",
                         dicUrl: "/api/blade-system/region/tree",
+                        row:true,                        
                         props: {
                             label: "name",
                             value: "id",
@@ -82,8 +104,8 @@
                             },
                         ],
                     },
-
                     {
+                        overHidden: true,
                         label: "网格名称",
                         prop: "gridName",
                         searchSpan: 4,
@@ -97,6 +119,22 @@
                         ],
                     },
                     {
+                        overHidden: true,
+                        label: "网格编号",
+                        prop: "gridCode",
+                        searchSpan: 4,
+                        search: true,
+                        rules: [
+                            {
+                                required: true,
+                                message: "请输入网格编号",
+                                trigger: "blur",
+                            },
+                        ],
+                    },
+
+                    {
+                        width: 110,
                         label: "负责人",
                         prop: "principal",
                         searchSpan: 4,
@@ -110,6 +148,7 @@
                         ],
                     },
                     {
+                        width: 120,
                         label: "联系电话",
                         prop: "principalPhone",
                         searchSpan: 4,
@@ -120,7 +159,13 @@
                                 message: "请输入联系电话",
                                 trigger: "blur",
                             },
+
+                            {
+                                validator: validatorPhone,
+                                trigger: 'blur'
+                            }
                         ],
+                        slot: true
                     },
                     {
                         label: "区域",
@@ -190,8 +235,26 @@
             })
             return ids.join(",")
         },
+
+        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]
+        },
+
         rowSave (row, done, loading) {
             add(row).then(
                 () => {
@@ -299,22 +362,18 @@
             this.onLoad(this.page, this.query)
         },
         onLoad (page, params = {}) {
-            const { dateTime } = this.query
-            let values = {
-                ...params,
-            }
-            if (dateTime) {
-                values = {
-                    ...params,
-                    startTime: dateTime[0],
-                    endTime: dateTime[1],
-                    ...this.query,
-                }
-                values.dateTime = null
-            }
             this.loading = true
-            getList(page.currentPage, page.pageSize, values).then((res) => {
-                const data = res.data.data
+
+            getList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then((res) => {
+                const data = {
+                    ...res.data.data,
+                    records: res.data.data.records.map(item => {
+                        return {
+                            ...item,
+                            'principalPhoneflag': false
+                        }
+                    })
+                }
                 this.page.total = data.total
                 this.data = data.records
                 this.loading = false

--
Gitblit v1.9.3