lin
2024-03-22 ebfc739bdbbc0dd0fccd0bf47b7d2d5397c3c511
src/views/place/index.vue
@@ -22,11 +22,6 @@
                }}</el-tag>
            </template>
            <template slot-scope="{row, size}" slot="confirmFlag">
                <el-tag :size="size" :type="showConfirmFlag(row.confirmFlag).type">{{ showConfirmFlag(row.confirmFlag).text
                }}</el-tag>
            </template>
            <template slot-scope="{row, size}" slot="source">
                <el-tag :size="size" :type="showSource(row.source).type">{{ showSource(row.source).text
                }}</el-tag>
@@ -44,6 +39,17 @@
                <el-button :size="size" type="text" icon="el-icon-edit" v-if="permission.place_manage_tenants"
                    @click="ManageTenants(row)">场所维护
                </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>
            <template slot-scope="{row, size}" slot="principalIdCard">
                <el-button :size="size" type="text" @click="showStringDispose(row, 'principalIdCardflag')"
                    v-text="textDispose(row, 'principalIdCardflag', 'principalIdCard')">
                </el-button>
            </template>
        </avue-crud>
@@ -137,26 +143,6 @@
                            trigger: "blur",
                        },],
                    },
                    {
                        width: 156,
                        overHidden: true,
                        slot: true,
                        label: "地址",
                        prop: "location",
                        type: 'map',
                        dataType: "string",
                        span: 12,
                        value: [117.966460, 28.431002, ""],
                        rules: [
                            {
                                required: true,
                                message: "请选择地址",
                                trigger: "blur",
                            },
                        ],
                    },
                    {
                        width: 110,
                        label: "场所负责人",
@@ -170,7 +156,6 @@
                            trigger: "blur",
                        },],
                    },
                    {
                        width: 120,
                        overHidden: true,
@@ -186,7 +171,22 @@
                            }
                        ],
                    },
                    {
                        width: 120,
                        overHidden: true,
                        label: "身份证号",
                        prop: "principalIdCard",
                        // search: true,
                        searchSpan: 4,
                        slot: true,
                        rules: [
                            {
                                required: false,
                                message: "请输身份证号",
                                trigger: "blur",
                            }
                        ],
                    },
                    {
                        width: 110,
                        label: "所属街道",
@@ -237,7 +237,6 @@
                            },
                        ],
                    },
                    {
                        width: 110,
                        overHidden: true,
@@ -274,8 +273,6 @@
                            },
                        ],
                    },
                    {
                        span: 7,
                        label: "场所标签",
@@ -295,7 +292,6 @@
                            trigger: "blur",
                        },],
                    },
                    {
                        span: 5,
                        label: "",
@@ -310,7 +306,6 @@
                        dataType: "string",
                        hide: true,
                    },
                    {
                        span: 12,
                        label: "标签颜色",
@@ -339,7 +334,6 @@
                        label: "九小场所",
                        prop: "isNine",
                        type: "select",
                        row: true,
                        dicData: [
                            {
                                label: "是",
@@ -351,8 +345,67 @@
                            }
                        ],
                        hide: true,
                        rules: [
                            {
                                required: true,
                                message: "请选择九小场所",
                                trigger: "blur",
                            },
                        ],
                    },
                    {
                        span: 12,
                        label: "九小分类",
                        prop: "nineType",
                        type: "select",
                        display: false,
                        dicUrl: "/api/blade-system/dict-biz/dictionary?code=nineType",
                        dataType: "number",
                        hide: true,
                        props: {
                            label: "dictValue",
                            value: "dictKey",
                        },
                    },
                    {
                        span: 12,
                        label: "阵地",
                        prop: "isFront",
                        type: "select",
                        dicData: [
                            {
                                label: "是",
                                value: 1,
                            },
                            {
                                label: "否",
                                value: 2,
                            }
                        ],
                        hide: true,
                        rules: [
                            {
                                required: true,
                                message: "请选择阵地",
                                trigger: "blur",
                            },
                        ],
                    },
                    {
                        span: 12,
                        label: "阵地类型",
                        prop: "frontType",
                        type: "select",
                        display: false,
                        row: true,
                        dicUrl: "/api/blade-system/dict-biz/dictionary?code=frontType",
                        dataType: "number",
                        hide: true,
                        props: {
                            label: "dictValue",
                            value: "dictKey",
                        },
                    },
                    {
                        width: 110,
                        label: "场所照片",
@@ -367,10 +420,41 @@
                            name: 'name',
                            url: "link",
                        },
                        span: 24,
                        span: 12,
                    },
                    {
                        width: 156,
                        overHidden: true,
                        slot: true,
                        label: "地址",
                        prop: "location",
                        type: 'map',
                        dataType: "string",
                        minWidth: 250,
                        span: 12,
                        value: [117.966460, 28.431002, ""],
                        rules: [
                            {
                                required: true,
                                message: "请选择地址",
                                trigger: "blur",
                            },
                        ],
                    },
                    {
                        label: "备注",
                        prop: "remark",
                        type: 'textarea',
                        hide: true,
                        span: 24,
                        rules: [
                            {
                                required: false,
                                message: "请输入场所备注",
                                trigger: "blur",
                            },
                        ],
                    },
                    {
                        width: 96,
                        slot: true,
@@ -378,9 +462,9 @@
                        editDisplay: false,
                        viewDisplay: false,
                        label: "经度",
                        hide: true,
                        prop: "lng",
                    },
                    {
                        width: 96,
                        slot: true,
@@ -388,9 +472,9 @@
                        editDisplay: false,
                        viewDisplay: false,
                        label: "纬度",
                        hide: true,
                        prop: "lat",
                    },
                    {
                        width: 100,
                        addDisplay: false,
@@ -449,7 +533,40 @@
    components: { auditBase, baseAllInfo },
    watch: {},
    watch: {
        'form.isNine': {
            handler (newData) {
                if (newData) {
                    let nineTypeColumn = this.findObject(
                        this.option.column,
                        'nineType'
                    )
                    if (newData == 1) {
                        nineTypeColumn.display = true
                    } else {
                        nineTypeColumn.display = false
                    }
                }
            },
        },
        'form.isFront': {
            handler (newData) {
                if (newData) {
                    let frontTypeColumn = this.findObject(
                        this.option.column,
                        'frontType'
                    )
                    if (newData == 1) {
                        frontTypeColumn.display = true
                    } else {
                        frontTypeColumn.display = false
                    }
                }
            },
        },
    },
    computed: {
        ...mapGetters(["permission", "userInfo"]),
@@ -544,9 +661,27 @@
                    return ''
                }
            }
        },
        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]
        },
        locationDispose (data) {
            data = data.split(',')
@@ -757,6 +892,8 @@
                this.data = data.records
                this.data.forEach(item => {
                    this.$set(item, 'principalPhoneflag', false)
                    this.$set(item, 'principalIdCardflag', false)
                    if (item.imageUrls && item.imageUrls != '' && item.imageUrls != null && item.imageUrls.length) {
                        var urls = []
                        var names = item.imageUrls.split(",").filter(item => item != '')