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>
@@ -46,11 +41,20 @@
                    @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>
        <el-dialog class="place-info-box" title="场所维护" append-to-body :visible.sync="roleBox" center @close="roleBoxClose">
            <baseAllInfo></baseAllInfo>
        </el-dialog>
        <baseAllInfo ref="BaseAllInfo"></baseAllInfo>
        <el-dialog class="place-info-box audit-info-box" title="审核" append-to-body :visible.sync="auditBasePopup"
            width="30%">
@@ -93,9 +97,6 @@
        }
        return {
            curRow: {},
            roleBox: false,
            form: {},
            query: {},
            loading: true,
@@ -135,32 +136,13 @@
                        prop: "placeName",
                        searchSpan: 5,
                        search: true,
                        searchLabelWidth: 76,
                        rules: [{
                            required: true,
                            message: "请输入场所名称",
                            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: "场所负责人",
@@ -174,7 +156,6 @@
                            trigger: "blur",
                        },],
                    },
                    {
                        width: 120,
                        overHidden: true,
@@ -190,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: "所属街道",
@@ -232,7 +228,7 @@
                            label: "name",
                            value: "id",
                        },
                        cascader: ["gridId"],
                        cascader: ["gridCode"],
                        rules: [
                            {
                                required: true,
@@ -241,7 +237,6 @@
                            },
                        ],
                    },
                    {
                        width: 110,
                        overHidden: true,
@@ -261,12 +256,12 @@
                    {
                        hide: true,
                        label: "所属网格",
                        prop: "gridId",
                        prop: "gridCode",
                        type: "tree",
                        cell: true,
                        props: {
                            label: "gridName",
                            value: "id",
                            value: "gridCode",
                        },
                        dicUrl:
                            "/api/blade-grid/grid/getGridList?communityCode={{neiCode}}",
@@ -278,13 +273,11 @@
                            },
                        ],
                    },
                    {
                        span: 7,
                        label: "场所标签",
                        prop: "label",
                        type: "cascader",
                        type: "select",
                        dicUrl: "/api/blade-category/category/getCategory?level=2",
                        cascader: ["smallLabel"],
                        props: {
@@ -299,13 +292,12 @@
                            trigger: "blur",
                        },],
                    },
                    {
                        span: 5,
                        label: "",
                        labelWidth: 20,
                        prop: "smallLabel",
                        type: "cascader",
                        type: "select",
                        dicUrl: "/api/blade-category/category/getCategory?parentNo={{label}}",
                        props: {
                            label: "categoryName",
@@ -314,12 +306,11 @@
                        dataType: "string",
                        hide: true,
                    },
                    {
                        span: 12,
                        label: "标签颜色",
                        prop: "color",
                        type: "cascader",
                        type: "select",
                        dicData: [
                            {
                                label: '绿',
@@ -337,13 +328,84 @@
                            value: "value"
                        },
                        hide: true,
                        rules: [{
                            required: true,
                            message: "请输入场所标签",
                            trigger: "blur",
                        },],
                    },
                    {
                        span: 12,
                        label: "九小场所",
                        prop: "isNine",
                        type: "select",
                        dicData: [
                            {
                                label: "是",
                                value: 1,
                            },
                            {
                                label: "否",
                                value: 2,
                            }
                        ],
                        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: "场所照片",
@@ -358,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,
@@ -369,9 +462,9 @@
                        editDisplay: false,
                        viewDisplay: false,
                        label: "经度",
                        hide: true,
                        prop: "lng",
                    },
                    {
                        width: 96,
                        slot: true,
@@ -379,9 +472,9 @@
                        editDisplay: false,
                        viewDisplay: false,
                        label: "纬度",
                        hide: true,
                        prop: "lat",
                    },
                    {
                        width: 100,
                        addDisplay: false,
@@ -408,7 +501,7 @@
                        width: 120,
                        display: false,
                        label: '是否有二维码',
                        searchLabelWidth: 110,
                        searchLabelWidth: 104,
                        prop: 'source',
                        type: "select",
                        search: true,
@@ -440,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"]),
@@ -535,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(',')
@@ -553,13 +697,8 @@
            this.auditBasePopup = true
        },
        roleBoxClose () {
            this.curRow = {}
        },
        ManageTenants (item) {
            this.curRow = item
            this.roleBox = true
            this.$refs.BaseAllInfo.initOpen(item)
        },
        rowSave (row, done, loading) {
@@ -753,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 != '')