From eca403e764d507646c7a3bac530b6b5fb6c75308 Mon Sep 17 00:00:00 2001
From: linwe <872216996@qq.com>
Date: Thu, 28 Dec 2023 08:40:46 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 src/views/system/dept.vue                      |    2 
 src/api/userHouse/list/houseHold.js            |    4 
 src/views/userHouse/houseList.vue              |    6 
 src/styles/avue-ui.scss                        |   34 +
 src/views/system/user.vue                      |    7 
 src/views/property/propertyCompanyDistrict.vue |   47 +
 src/views/place/components/baseAllInfo.vue     |  516 +++++++++++++++++
 src/api/place/place.js                         |    2 
 src/views/place/components/boxTitle.vue        |  474 ++++++++++++++++
 src/views/cGovernance/taskECall.vue            |   24 
 src/main.js                                    |    1 
 src/views/community/index.vue                  |   21 
 src/views/property/propertyCapitalApply.vue    |   30 
 src/views/article/rotation.vue                 |   52 +
 src/views/grid/gridman.vue                     |   63 +
 src/views/grid/index.vue                       |   23 
 src/views/place/index.vue                      |  387 +++---------
 src/views/base/region.vue                      |    4 
 src/views/district/index.vue                   |   11 
 19 files changed, 1,351 insertions(+), 357 deletions(-)

diff --git a/src/api/place/place.js b/src/api/place/place.js
index ae919d7..1372b57 100644
--- a/src/api/place/place.js
+++ b/src/api/place/place.js
@@ -62,7 +62,7 @@
 
 export const update = (row) => {
   return request({
-    url: "/api/blade-place/place/add",
+    url: "/api/blade-place/place/addOrUpdate",
     method: "post",
     data: row,
   });
diff --git a/src/api/userHouse/list/houseHold.js b/src/api/userHouse/list/houseHold.js
index 4f6e6be..8689ab8 100644
--- a/src/api/userHouse/list/houseHold.js
+++ b/src/api/userHouse/list/houseHold.js
@@ -36,7 +36,7 @@
 
 export const add = (row) => {
   return request({
-    url: '/api/blade-household/household/submit',
+    url: '/api/blade-household/household/saveOrUpdateHousehold',
     method: 'post',
     data: row
   })
@@ -44,7 +44,7 @@
 
 export const update = (row) => {
   return request({
-    url: '/api/blade-household/household/update',
+    url: '/api/blade-household/household/saveOrUpdateHousehold',
     method: 'post',
     data: row
   })
diff --git a/src/main.js b/src/main.js
index 625f2b0..88899a7 100644
--- a/src/main.js
+++ b/src/main.js
@@ -52,6 +52,7 @@
 Vue.use(window.WfDesignBase);
 // 加载website
 Vue.prototype.website = website;
+Vue.prototype.$axios = axios;
 
 iconData.forEach((item) => {
   loadStyle(item.url.replace("$key", item.icon));
diff --git a/src/styles/avue-ui.scss b/src/styles/avue-ui.scss
index 43afc32..85f0911 100644
--- a/src/styles/avue-ui.scss
+++ b/src/styles/avue-ui.scss
@@ -3,4 +3,38 @@
         color: #777 !important;
         cursor: not-allowed;
     }
+}
+
+.place-info-box {
+    .el-dialog {
+        display: flex;
+        flex-direction: column;
+        height: 72% !important;
+
+        .el-dialog__header {
+            padding-top: 10px !important;
+            padding-bottom: 10px !important;
+
+            .el-dialog__headerbtn {
+                top: 10px !important;
+            }
+        }
+
+        .el-dialog__body {
+            padding: 0px !important;
+            padding-bottom: 10px !important;
+            height: 0 !important;
+            flex: 1;
+
+            .el-tabs {
+                display: flex;
+                flex-direction: column;
+                height: 100% !important;
+
+                .el-tabs__content {
+                    flex: 1;
+                }
+            }
+        }
+    }
 }
\ No newline at end of file
diff --git a/src/views/article/rotation.vue b/src/views/article/rotation.vue
index 8af2bfd..8dd4824 100644
--- a/src/views/article/rotation.vue
+++ b/src/views/article/rotation.vue
@@ -57,11 +57,49 @@
                         search: true,
                     },
                     {
-                        label: "跳转地址",
-                        prop: "junpUrl",
+                        label: "类型",
+                        prop: "type",
                         span: 12,
                         searchSpan: 4,
                         search: true,
+                        type:"select",
+                        dicData:[
+                            {
+                                label:"系统",
+                                value:"1"
+                            },
+                            {
+                                label:"社区",
+                                value:"2"
+                            }
+                        ]
+                    },
+                    {
+                        parent: false,
+                        label: "所属社区",
+                        prop: "communityCode",
+                        search: true,
+                        searchSpan: 4,
+                        searchType: 'input',
+                        width: 150,
+                        type: "tree",
+                        dicUrl: "/api/blade-system/region/tree",
+                        props: {
+                            label: "name",
+                            value: "id"
+                        },
+                        rules: [
+                            {
+                                required: true,
+                                message: "请选择所属社区",
+                                trigger: "blur",
+                            },
+                        ],
+                    },
+                    {
+                        label: "跳转地址",
+                        prop: "junpUrl",
+                        span: 12,
                     },
                     {
                         label: "图片",
@@ -246,7 +284,7 @@
             this.onLoad(this.page, this.query)
         },
         onLoad (page, params = {}) {
-            const { dateTime } = this.query
+            const { dateTime, communityCode } = this.query
             let values = {
                 ...params,
             }
@@ -259,6 +297,14 @@
                 }
                 values.dateTime = null
             }
+            if (communityCode) {
+                values = {
+                    ...values,
+                    communityName: communityCode
+                }
+
+                delete values.communityCode
+            }
             this.loading = true
             getList(page.currentPage, page.pageSize, values).then((res) => {
                 const data = res.data.data
diff --git a/src/views/base/region.vue b/src/views/base/region.vue
index a5126e7..62e43bb 100644
--- a/src/views/base/region.vue
+++ b/src/views/base/region.vue
@@ -64,7 +64,7 @@
   export default {
     data() {
       return {
-        topCode: '36',
+        topCode: '361102',
         treeCode: '',
         treeParentCode: '',
         treeData: [],
@@ -72,7 +72,7 @@
           nodeKey: 'id',
           lazy: true,
           treeLoad: function (node, resolve) {
-            const parentCode = (node.level === 0) ? "36" : node.data.id;
+            const parentCode = (node.level === 0) ? "361102" : node.data.id;
             getLazyTree(parentCode).then(res => {
               resolve(res.data.data.map(item => {
                 return {
diff --git a/src/views/cGovernance/taskECall.vue b/src/views/cGovernance/taskECall.vue
index 9eb8858..f9b9b0d 100644
--- a/src/views/cGovernance/taskECall.vue
+++ b/src/views/cGovernance/taskECall.vue
@@ -93,18 +93,35 @@
                     },],
                     // search: true,
                 },
+
                 {
+                    addDisplay: false,
+                    editDisplay: false,
+                    viewDisplay: false,
+                    width: 160,
+                    label: "所属社区",
+                    prop: "communityName",
+                    search: true,
+                    searchSpan: 4,
+                    rules: [{
+                        required: true,
+                        message: "请选择所属社区",
+                        trigger: "blur",
+                    }],
+                },
+
+                {
+                    hide: true,
                     parent: false,
                     label: "所属社区",
                     prop: "communityCode",
-                    search: true,
-                    searchSpan: 4,
+                    search: false,
                     width: 150,
                     type: "tree",
                     dicUrl: "/api/blade-system/region/tree",
                     props: {
                         label: "name",
-                        value: "id"
+                        value: "id",
                     },
                     rules: [
                         {
@@ -114,6 +131,7 @@
                         },
                     ],
                 },
+
                 {
                     label: "数据来源",
                     prop: "source",
diff --git a/src/views/community/index.vue b/src/views/community/index.vue
index 3b043e0..40705e7 100644
--- a/src/views/community/index.vue
+++ b/src/views/community/index.vue
@@ -80,13 +80,25 @@
                             },
                         ],
                     },
+
                     {
+                        parent: false,
+                        addDisplay: false,
+                        editDisplay: false,
+                        viewDisplay: false,
+                        width: 96,
+                        label: "所属街道",
+                        prop: "townName",
+                        search: true,
+                        searchSpan: 4
+                    },
+
+                    {
+                        hide: true,
+                        parent: false,
                         label: "所属街道",
                         prop: "streetCode",
-                        search: true,
-                        searchSpan: 4,
                         width: 150,
-                        labelWidth: 120,
                         type: "tree",
                         dicUrl: "/api/blade-system/region/getTownTree",
                         props: {
@@ -101,6 +113,7 @@
                             },
                         ],
                     },
+
                     {
                         label: "社区民警",
                         prop: "resPoliceUserId",
@@ -163,7 +176,7 @@
                         minRows: 6,
                         span: 24,
                     },
-                    
+
                 ],
             },
             data: [],
diff --git a/src/views/district/index.vue b/src/views/district/index.vue
index c4f0139..dd07e86 100644
--- a/src/views/district/index.vue
+++ b/src/views/district/index.vue
@@ -47,26 +47,17 @@
                 dialogClickModal: false,
                 column: [
                     {
-                        parent: false,
                         label: "小区名称",
                         prop: "name",
                         searchSpan: 4,
                         search: true,
-                        type: 'tree',
-                        dicUrl: `/api/blade-district/district/getDistrictTree`,
-                        props: {
-                            label: "name",
-                            value: "id"
-                        },
-                        defaultExpandedKeys: ["361102003"],
                         span: 12,
                         labelWidth: 120,
                         width: 220,
-                        overHidden: true,
                         rules: [
                             {
                                 required: true,
-                                message: "请选择小区",
+                                message: "请输入小区名称",
                                 trigger: "blur",
                             },
                         ],
diff --git a/src/views/grid/gridman.vue b/src/views/grid/gridman.vue
index 30f3aa9..3373865 100644
--- a/src/views/grid/gridman.vue
+++ b/src/views/grid/gridman.vue
@@ -47,12 +47,41 @@
                 dialogClickModal: false,
                 column: [
                     {
+                        label: "网格员",
+                        prop: "gridmanName",
+                        searchSpan: 4,
+                        search: true,
+                        rules: [
+                            {
+                                required: true,
+                                message: "请输入网格员",
+                                trigger: "blur",
+                            },
+                        ],
+                    },
+
+                    {
+                        addDisplay: false,
+                        editDisplay: false,
+                        viewDisplay: false,
+                        label: "所属社区",
+                        prop: "communityName",
+                        search: true,
+                        searchSpan: 4,
+                        rules: [{
+                            required: true,
+                            message: "请选择所属社区",
+                            trigger: "blur",
+                        }],
+                    },
+
+
+                    {
+                        hide: true,
                         parent: false,
                         label: "所属社区",
                         prop: "communityCode",
-                        search: true,
-                        searchSpan: 4,
-                        width: 150,
+                        search: false,
                         type: "tree",
                         dicUrl: "/api/blade-system/region/tree",
                         props: {
@@ -70,7 +99,20 @@
                     },
 
                     {
-                        label: "网格名称",
+                        addDisplay: false,
+                        editDisplay: false,
+                        viewDisplay: false,
+                        label: "所属网格",
+                        prop: "gridName",
+                        rules: [{
+                            required: true,
+                            message: "请选择所属网格",
+                            trigger: "blur",
+                        }],
+                    },
+
+                    {
+                        label: "所属网格",
                         prop: "gridId",
                         hide: true,
                         type: "tree",
@@ -90,19 +132,6 @@
                         ],
                     },
 
-                    {
-                        label: "网格员",
-                        prop: "gridmanName",
-                        searchSpan: 4,
-                        search: true,
-                        rules: [
-                            {
-                                required: true,
-                                message: "请输入网格员",
-                                trigger: "blur",
-                            },
-                        ],
-                    },
                     {
                         label: "联系电话",
                         prop: "mobile",
diff --git a/src/views/grid/index.vue b/src/views/grid/index.vue
index 4aa24d3..847b9c1 100644
--- a/src/views/grid/index.vue
+++ b/src/views/grid/index.vue
@@ -46,17 +46,33 @@
                 dialogClickModal: false,
                 column: [
                     {
+                        addDisplay: false,
+                        editDisplay: false,
+                        viewDisplay: false,
+                        width: 160,
+                        label: "所属社区",
+                        prop: "communityName",
+                        search: true,
+                        searchSpan: 4,
+                        rules: [{
+                            required: true,
+                            message: "请选择所属社区",
+                            trigger: "blur",
+                        }],
+                    },
+
+                    {
+                        hide: true,
                         parent: false,
                         label: "所属社区",
                         prop: "communityCode",
-                        search: true,
-                        searchSpan: 4,
+                        search: false,
                         width: 150,
                         type: "tree",
                         dicUrl: "/api/blade-system/region/tree",
                         props: {
                             label: "name",
-                            value: "id"
+                            value: "id",
                         },
                         rules: [
                             {
@@ -66,6 +82,7 @@
                             },
                         ],
                     },
+
                     {
                         label: "网格名称",
                         prop: "gridName",
diff --git a/src/views/place/components/baseAllInfo.vue b/src/views/place/components/baseAllInfo.vue
new file mode 100644
index 0000000..1e4a6a7
--- /dev/null
+++ b/src/views/place/components/baseAllInfo.vue
@@ -0,0 +1,516 @@
+<template>
+    <div class="cur-container-box">
+        <div class="content-box">
+            <box-title class="m10" :classVal="9" :title="'基本信息'"></box-title>
+            <avue-form ref="baseForm" :option="option" v-model="form"></avue-form>
+
+            <box-title class="m10" :classVal="9" :title="'其他信息'"></box-title>
+            <avue-form ref="restForm" :option="optionDetail" v-model="placeForm"></avue-form>
+
+            <box-title class="m10" :classVal="9" :title="'从业人员'"></box-title>
+            <avue-crud :option="placeOption" :table-loading="loading" :data="placeExt" ref="crud" v-model="houseHoldForm"
+                :permission="permissionList" @row-del="houseHoldRowDel" @row-update="houseHoldRowUpdate"
+                @row-save="houseHoldRowSave" :page.sync="holdPage" @current-change="holdCurrentChange"
+                @size-change="holdSizeChange" @refresh-change="refreshHoldChange" @on-load="holdOnLoad">
+            </avue-crud>
+        </div>
+
+        <div class="footer-btn-box">
+            <el-button size="small" type="primary" @click="dataUpdate">保 存</el-button>
+
+            <el-button size="small" @click="closeRowDetails">关 闭</el-button>
+        </div>
+    </div>
+</template>
+
+<script>
+import {
+    getPlace,
+    getPlaceExt,
+
+    holdRemove,
+    holdAdd,
+    holdUpdate,
+    getHoldList,
+
+    update,
+    updatePlaceExt,
+} from "@/api/place/place"
+
+import website from '@/config/website'
+
+import boxTitle from './boxTitle'
+
+export default {
+    data () {
+        return {
+            placeExt: [],
+
+            form: {},
+            option: {
+                submitBtn: false,
+                emptyBtn: false,
+
+                column: [
+                    {
+                        span: 8,
+                        label: "场所名称",
+                        prop: "placeName",
+                        rules: [{
+                            required: true,
+                            message: "请输入场所名称",
+                            trigger: "blur",
+                        }],
+                    },
+
+                    {
+                        span: 9,
+                        label: "场所标签",
+                        prop: "label",
+                        type: "cascader",
+                        dicUrl: "/api/blade-category/category/getCategory?level=2",
+                        cascader: ["smallLabel"],
+                        props: {
+                            label: "categoryName",
+                            value: "categoryNo"
+                        },
+                        dataType: "string",
+                        hide: true,
+                        rules: [{
+                            required: true,
+                            message: "请输入场所标签",
+                            trigger: "blur",
+                        },],
+                    },
+                    {
+                        span: 7,
+                        label: "",
+                        labelWidth: 0,
+                        prop: "smallLabel",
+                        type: "cascader",
+                        dicUrl: "/api/blade-category/category/getCategory?parentNo={{label}}",
+                        props: {
+                            label: "categoryName",
+                            value: "categoryNo"
+                        },
+                        dataType: "string",
+                        hide: true,
+                    },
+
+                    {
+                        label: "负责人",
+                        prop: "principal",
+                        rules: [{
+                            required: false,
+                            message: "请输入负责人",
+                            trigger: "blur",
+                        }],
+                    },
+
+                    {
+                        width: 110,
+                        label: "电话",
+                        prop: "principalPhone",
+                        search: true,
+                        searchSpan: 4,
+                        slot: true,
+                    },
+
+                    {
+                        hide: true,
+                        parent: false,
+                        label: "所属社区",
+                        prop: "neiCode",
+                        search: false,
+                        width: 150,
+                        type: "tree",
+                        dicUrl: "/api/blade-system/region/tree",
+                        props: {
+                            label: "name",
+                            value: "id",
+                        },
+                        cascader: ["gridId"],
+                        rules: [
+                            {
+                                required: true,
+                                message: "请选择所属社区",
+                                trigger: "blur",
+                            },
+                        ],
+                    },
+                    {
+                        hide: true,
+                        label: "所属网格",
+                        prop: "gridId",
+                        type: "tree",
+                        cell: true,
+                        props: {
+                            label: "gridName",
+                            value: "id",
+                        },
+                        dicUrl:
+                            "/api/blade-grid/grid/getGridList?communityCode={{neiCode}}",
+                        rules: [
+                            {
+                                required: true,
+                                message: "请选择所属网格",
+                                trigger: "blur",
+                            },
+                        ],
+                    },
+
+                    {
+                        label: "场所照片",
+                        prop: "imageUrls",
+                        width: 80,
+                        type: "upload",
+                        listType: "picture-card",
+                        dataType: "string",
+                        multiple: true,
+                        action: "/api/blade-resource/oss/endpoint/put-file",
+                        propsHttp: {
+                            res: "data",
+                            name: 'name',
+                            url: "link",
+                        },
+                        span: 24,
+                    },
+                    {
+                        label: "场所位置",
+                        prop: "localtion",
+                        span: 24,
+                        minWidth: 220,
+                        overHidden: true,
+                        // rules: [{
+                        //     required: true,
+                        //     message: "请输入区域",
+                        //     trigger: "blur",
+                        // },],
+                    }
+                ]
+            },
+
+            placeForm: {},
+            optionDetail: {
+                submitBtn: false,
+                emptyBtn: false,
+                column: [
+                    {
+                        label: '法人信息',
+                        prop: 'legalPerson'
+                    },
+                    {
+                        label: '法人电话',
+                        prop: 'legalTel'
+                    },
+
+                    {
+                        label: "营业执照",
+                        prop: "imageUrls",
+                        width: 80,
+                        type: "upload",
+                        listType: "picture-card",
+                        dataType: "string",
+                        multiple: true,
+                        action: "/api/blade-resource/oss/endpoint/put-file",
+                        propsHttp: {
+                            res: "data",
+                            name: 'name',
+                            url: "link",
+                        },
+                        span: 24,
+                    },
+
+                    {
+                        label: "场所平面图",
+                        prop: "planImageUrls",
+                        width: 80,
+                        type: "upload",
+                        listType: "picture-card",
+                        dataType: "string",
+                        multiple: true,
+                        action: "/api/blade-resource/oss/endpoint/put-file",
+                        propsHttp: {
+                            res: "data",
+                            name: 'name',
+                            url: "link",
+                        },
+                        span: 24,
+                    },
+
+                ]
+            },
+
+            loading: true,
+            placeOption: {
+                menu: true,
+                height: 300,
+                calcHeight: 54,
+                dialogWidth: 950,
+                tip: false,
+                searchShow: false,
+                addBtn: true,
+                delBtn: true,
+                editBtn: true,
+                border: true,
+                index: true,
+                dialogClickModal: false,
+                column: [{
+                    label: "名称",
+                    prop: "name",
+                    searchSpan: 4,
+                    search: true,
+                }, {
+                    label: "电话",
+                    prop: "telephone",
+                    searchSpan: 4,
+                    search: true,
+                }, {
+                    label: "暂住地",
+                    prop: "tempAddress",
+                    searchSpan: 4,
+                    search: true,
+                },]
+            },
+            holdPage: {
+                pageSize: 20,
+                currentPage: 1,
+                total: 0,
+            },
+            houseHoldForm: {},
+        }
+    },
+
+    components: { boxTitle },
+
+    inject: ["placeElement"],
+
+    watch: {
+        'placeElement.curRow': {
+            handler (newData) {
+                const that = this
+                if (newData && 'id' in newData && newData['id'] != null && newData['id'] != '') {
+
+                    that.$axios.all([
+                        getPlace(newData['id']),
+                        getPlaceExt({ placeId: newData['id'] }),
+                    ]).then(that.$axios.spread(function (baseInfo, restInfo) {
+                        that.form = baseInfo.data.data
+
+                        if (that.form.imageUrls && that.form.imageUrls.length) {
+                            that.form.imageUrls = that.form.imageUrls.split(",").filter(item => item != '').map(item => website.minioUrl + item).join(',')
+                        }
+
+                        if (that.form.placePoiLabelVOList && that.form.placePoiLabelVOList.length) {
+                            let lebelTwo = that.form.placePoiLabelVOList.find(item => {
+                                return item.type == 2
+                            })
+
+                            if (lebelTwo) that.form.label = String(lebelTwo.poiCode)
+
+                            let lebelThree = that.form.placePoiLabelVOList.find(item => {
+                                return item.type == 3
+                            })
+
+                            if (lebelThree) that.form.smallLabel = String(lebelThree.poiCode)
+                        }
+
+                        const data = restInfo.data.data
+
+                        if (data) {
+                            let imageUrls = data.imageUrls
+                            let planImageUrls = data.planImageUrls
+
+                            if (imageUrls && imageUrls.length) {
+                                imageUrls = imageUrls.split(',').filter(item => item != '').map(item => website.minioUrl + item).join(",")
+                            }
+
+                            if (planImageUrls && planImageUrls.length) {
+                                planImageUrls = planImageUrls.split(',').filter(item => item != '').map(item => website.minioUrl + item).join(",")
+                            }
+
+                            that.placeForm = {
+                                ...data,
+                                imageUrls,
+                                planImageUrls
+                            }
+                        }
+
+                    }))
+
+                    that.holdOnLoad(this.holdPage)
+                }
+            },
+            immediate: true
+        }
+    },
+
+    methods: {
+        selectionClear () {
+            this.$nextTick(() => {
+                this.$refs.crud && this.$refs.crud.toggleSelection()
+            })
+        },
+
+        houseHoldRowUpdate (row, index, done, loading) {
+            holdUpdate(row).then(
+                () => {
+                    this.holdOnLoad(this.holdPage)
+                    this.$message({
+                        type: "success",
+                        message: "操作成功!",
+                    })
+                    done()
+                },
+                (error) => {
+                    window.console.log(error)
+                    loading()
+                }
+            )
+        },
+
+        houseHoldRowDel (row) {
+            this.$confirm("确定将选择数据删除?", {
+                confirmButtonText: "确定",
+                cancelButtonText: "取消",
+                type: "warning",
+            })
+                .then(() => {
+                    return holdRemove(row.id)
+                })
+                .then(() => {
+                    this.holdOnLoad(this.holdPage)
+
+                    this.$message({
+                        type: "success",
+                        message: "操作成功!",
+                    })
+                })
+        },
+
+        houseHoldRowSave (row, done, loading) {
+            holdAdd({
+                ...row,
+                placeId: this.placeElement.curRow.id
+            }).then(
+                () => {
+                    this.holdOnLoad(this.holdPage)
+
+                    this.$message({
+                        type: "success",
+                        message: "操作成功!",
+                    })
+                    done()
+                },
+                (error) => {
+                    window.console.log(error)
+                    loading()
+                }
+            )
+        },
+
+        refreshHoldChange () {
+            this.holdOnLoad(this.holdPage)
+        },
+
+        holdOnLoad (holdPage, params = {}) {
+            if (!this.placeElement.curRow.id) return
+
+            let values = {
+                ...params,
+                placeId: this.placeElement.curRow.id
+            }
+
+            getHoldList(holdPage.currentPage, holdPage.pageSize, values).then((res) => {
+                const data = res.data.data
+
+                this.holdPage.total = data.total
+                this.placeExt = data.records
+
+                this.loading = false
+                this.selectionClear()
+            })
+        },
+
+        holdCurrentChange (currentPage) {
+            this.holdPage.currentPage = currentPage
+        },
+
+        holdSizeChange (pageSize) {
+            this.holdPage.pageSize = pageSize
+        },
+
+        dataUpdate () {
+            const that = this
+
+            let imageUrls = this.form.imageUrls
+
+            if (imageUrls.length > 0) {
+                var urls = []
+                var split = imageUrls.split(",").filter(item => item != '')
+                split.forEach(url => {
+                    var names = url.split("jczz/")
+                    urls.push(names[1])
+                })
+                imageUrls = urls.join(",")
+            }
+
+            this.$refs.baseForm.validate((valid, done, msg) => {
+                if (valid) {
+                    that.$axios.all([
+                        update({
+                            // ...this.placeElement.curRow,
+                            ...this.form,
+                            imageUrls
+                        }),
+                        updatePlaceExt(this.placeForm)
+                    ]).then(that.$axios.spread(function () {
+                        that.$message({
+                            type: "success",
+                            message: "操作成功!",
+                        })
+
+                        that.closeRowDetails()
+
+                        that.placeElement.onLoad(that.placeElement.page, that.placeElement.query)
+
+                        done()
+                    }))
+                } else {
+                    console.log('error submit!!')
+                    return false
+                }
+            })
+        },
+
+        closeRowDetails () {
+            this.placeElement.roleBox = false
+        }
+    },
+}
+</script>
+
+<style lang="scss" scoped>
+.cur-container-box {
+    display: flex;
+    flex-direction: column;
+    width: 100%;
+    height: 100%;
+    overflow: hidden;
+
+    .content-box {
+        margin: 0 4px;
+        padding: 0 10px;
+        height: 0;
+        flex: 1;
+        overflow: hidden;
+        overflow-y: auto;
+    }
+
+    .footer-btn-box {
+        margin-top: 10px;
+        display: flex;
+        justify-content: center;
+    }
+}
+</style>
\ No newline at end of file
diff --git a/src/views/place/components/boxTitle.vue b/src/views/place/components/boxTitle.vue
new file mode 100644
index 0000000..952e5ba
--- /dev/null
+++ b/src/views/place/components/boxTitle.vue
@@ -0,0 +1,474 @@
+<!--
+ * @name: name
+ * @description: Description
+ * @lastEditors: Francis
+ * @date: Do not edit
+ * @lastEditTime: Do not edit
+ * @filePath: Do not edit
+-->
+<template>
+    <div class="titleContent">
+        <!-- <div class="title1" data-color="red"></div> -->
+
+        <div :class="'title title' + classVal">
+            {{ title }}</div>
+    </div>
+</template>
+
+<script>
+export default {
+    name: 'boxTitle',
+    props: {
+        title: {
+            type: String,
+            default: ''
+        },
+
+        classVal: {
+            type: Number,
+        }
+    }
+}
+</script>
+
+<style lang="scss" scoped>
+.titleContent {
+    >div {
+        margin: 10px 0;
+    }
+}
+
+.title {
+    height: 32px;
+    font-size: 20px;
+    font-weight: 600;
+    line-height: 32px;
+    margin-left: 5px;
+    padding-left: 5px;
+    position: relative;
+    color: #000;
+    z-index: 0;
+}
+
+.title1 {
+    padding-left: 15px;
+
+    &:after {
+        content: " ";
+        width: 4px;
+        height: 20px;
+        background: #12a3f5;
+        position: absolute;
+        left: 0;
+        top: 6px;
+        border-radius: 2px;
+    }
+}
+
+.title2 {
+    padding-left: 15px;
+
+    &:after {
+        content: " ";
+        width: 8px;
+        height: 8px;
+        border-radius: 50%;
+        background: #12a3f5;
+        position: absolute;
+        left: 0;
+        top: 12px;
+    }
+}
+
+
+.title3 {
+    &:after {
+        content: " ";
+        position: absolute;
+        bottom: 0;
+        left: 0;
+        position: absolute;
+        height: 2px;
+        width: 100%;
+        background: linear-gradient(to right, #01DFE3, rgba(255, 255, 255, 0));
+
+    }
+}
+
+
+.title4 {
+    &:after {
+        content: attr(data-text);
+        position: absolute;
+        display: inline-block;
+        bottom: -8px;
+        left: 5px;
+        opacity: 0.2;
+        z-index: 0;
+        text-align: right;
+        transform: rotateY(30deg);
+        transform: scaleY(30deg);
+
+    }
+}
+
+
+.title5 {
+    color: #10faf8;
+    padding-left: 80px;
+    line-height: 22px;
+    position: relative;
+    border-bottom: 2px solid linear-gradient(to right, #01DFE3, rgba(255, 255, 255, 0));
+
+    &:after {
+        content: "";
+        position: absolute;
+        bottom: 0;
+        top: 0;
+        left: 18px;
+        width: 50px;
+        height: 18px;
+        transform: skewX(35deg);
+        background: linear-gradient(to right,
+                #2d83fa,
+                #10faf8);
+    }
+
+    &:before {
+        content: "|||";
+        display: inline-block;
+        font-weight: 900;
+        color: #FFF;
+        line-height: 30px;
+        font-size: 18px;
+        position: absolute;
+        position: absolute;
+        top: -8px;
+        left: 0;
+        color: #2d83fa;
+        transform: skewX(35deg);
+    }
+}
+
+.title6 {
+    color: #C6D039;
+    padding-left: 80px;
+    line-height: 22px;
+    position: relative;
+    border-bottom: 2px solid linear-gradient(to right, #01DFE3, rgba(255, 255, 255, 0));
+
+    &:after {
+        content: "";
+        position: absolute;
+        bottom: 0;
+        top: 0;
+        left: 18px;
+        width: 50px;
+        height: 18px;
+        transform: skewX(35deg);
+        background: linear-gradient(to right,
+                #4BF15A,
+                #C6D039);
+    }
+
+    &:before {
+        content: "|||";
+        display: inline-block;
+        font-weight: 900;
+        color: #FFF;
+        line-height: 30px;
+        font-size: 18px;
+        position: absolute;
+        position: absolute;
+        top: -8px;
+        left: 0;
+        color: #4BF15A;
+        transform: skewX(35deg);
+    }
+}
+
+.title7 {
+
+    &:after {
+        content: "";
+        position: absolute;
+        bottom: 0;
+        top: 0;
+        left: 0;
+        width: 180px;
+        height: 100%;
+        opacity: 0.3;
+        background: linear-gradient(to right,
+                #4BF15A,
+                #4bf15900);
+    }
+
+    &:before {
+        content: " ";
+        position: absolute;
+        bottom: 0;
+        left: 0;
+        position: absolute;
+        height: 2px;
+        width: 100%;
+        background: linear-gradient(to right, #4BF15A, rgba(255, 255, 255, 0));
+    }
+}
+
+.title8 {
+    border-radius: 16px;
+    border: 1px solid #e8e9fb;
+    box-shadow: 0 0 10px #e8e9fb;
+    text-align: center;
+    width: 160px;
+    color: #12a3f5;
+
+    &:before {
+        content: "";
+        width: 300%;
+        height: 2px;
+        background: #e8e9fb;
+        position: absolute;
+        top: 15px;
+        left: 100%;
+        background: linear-gradient(to right, #e8e9fb, rgba(255, 255, 255, 0));
+    }
+}
+
+.title9 {
+    background: #ECF8FF;
+    border-top-left-radius: 5px;
+    padding-left: 20px;
+
+    &:before {
+        content: "";
+        border-top-left-radius: 5px;
+        border-bottom-left-radius: 5px;
+        width: 4px;
+        height: 100%;
+        background: #50BFFF;
+        position: absolute;
+        top: 0;
+        left: 0;
+    }
+}
+
+.title10 {
+    background: #FFF6F7;
+    border-top-left-radius: 5px;
+    padding-left: 20px;
+
+    &:before {
+        content: "";
+        border-top-left-radius: 5px;
+        border-bottom-left-radius: 5px;
+        width: 4px;
+        height: 100%;
+        background: #FE6C6F;
+        position: absolute;
+        top: 0;
+        left: 0;
+    }
+}
+
+
+
+.title11 {
+    display: inline-block;
+    position: relative;
+    width: 150px;
+    height: 32px;
+    line-height: 32px;
+    padding-left: 15px;
+    background: #50BFFF;
+    left: -8px;
+    color: #FFF;
+
+    &:before {
+        content: "";
+        position: absolute;
+        height: 0;
+        width: 0;
+        border-bottom: 8px solid #4396c5;
+        border-left: 8px solid transparent;
+        top: -8px;
+        left: 0;
+    }
+
+    &:after {
+        content: "";
+        position: absolute;
+        height: 0;
+        width: 0;
+        border-top: 15px solid transparent;
+        border-bottom: 15px solid transparent;
+        border-left: 8px solid #50BFFF;
+        right: -8px;
+    }
+}
+
+.title12 {
+    position: relative;
+    width: 160px;
+    padding-left: 10px;
+    // top: 15px;
+    // padding: 8px 10px;
+    background: #00B3ED;
+    box-shadow: -1px 2px 4px rgba(0, 0, 0, 0.5);
+    color: #FFF;
+    // height: 40px;
+
+    &:before {
+        position: absolute;
+        content: "";
+        display: block;
+        width: 7px;
+        height: 100%;
+        padding: 0 0 7px;
+        top: 0;
+        left: -7px;
+        background: inherit;
+        border-radius: 5px 0 0 5px;
+    }
+
+    &:before {
+        position: absolute;
+        content: "";
+        display: block;
+        width: 5px;
+        height: 5px;
+        background: rgba(0, 0, 0, 0.35);
+        bottom: -5px;
+        left: -5px;
+        border-radius: 5px 0 0 5px;
+    }
+
+}
+
+.title13 {
+    border-left: 2px solid #FE6C6F;
+
+    &:after {
+        content: " ";
+        position: absolute;
+        bottom: 0;
+        left: 0;
+        position: absolute;
+        height: 2px;
+        width: 60%;
+        background: linear-gradient(to right, #FE6C6F, rgba(255, 255, 255, 0));
+    }
+
+    &::before {
+        content: " ";
+        position: absolute;
+        top: 0;
+        left: 0;
+        position: absolute;
+        height: 2px;
+        width: 30%;
+        background: linear-gradient(to right, #FE6C6F, rgba(255, 255, 255, 0));
+    }
+}
+
+.title14 {
+    border-left: 2px solid #01DFE3;
+
+    &:after {
+        content: " ";
+        position: absolute;
+        bottom: 0;
+        left: 0;
+        position: absolute;
+        height: 2px;
+        width: 60%;
+        background: linear-gradient(to right, #01DFE3, rgba(255, 255, 255, 0));
+    }
+
+    &::before {
+        content: " ";
+        position: absolute;
+        top: 0;
+        left: 0;
+        position: absolute;
+        height: 2px;
+        width: 30%;
+        background: linear-gradient(to right, #01DFE3, rgba(255, 255, 255, 0));
+    }
+}
+
+.title15 {
+    color: #FFF;
+    padding-left: 50px;
+    background: linear-gradient(-210deg, transparent 1.5em, #01DFE3 0);
+
+    &::before {
+        content: '';
+        display: block;
+        width: 1.73em;
+        height: 3em;
+        position: absolute;
+        background: linear-gradient(-60deg, #577b98 50%, transparent 0);
+        left: -3px;
+        top: 0;
+        border-bottom-left-radius: inherit;
+        transform: translateY(-0.5em) rotate(30deg);
+        transform-origin: bottom right;
+        box-shadow: .2em .2em .3em -.1em rgba(0, 0, 0, .15);
+    }
+}
+
+.title16 {
+    color: #FFF;
+    padding-left: 50px;
+    background: linear-gradient(-210deg, transparent 1.5em, #FE6C6F 0);
+
+    &::before {
+        content: '';
+        display: block;
+        width: 1.73em;
+        height: 3em;
+        position: absolute;
+        background: linear-gradient(-60deg, #f18384 50%, transparent 0);
+        left: -3px;
+        top: 0;
+        border-bottom-left-radius: inherit;
+        transform: translateY(-0.5em) rotate(30deg);
+        transform-origin: bottom right;
+        box-shadow: .2em .2em .3em -.1em rgba(0, 0, 0, .15);
+    }
+}
+
+.title17 {
+    &:after {
+        content: " ";
+        position: absolute;
+        bottom: 0;
+        left: 0;
+        position: absolute;
+        height: 100%;
+        width: 100%;
+        animation: animation3 1s linear infinite;
+        background: linear-gradient(135deg, #01DFE3 0.25em, transparent 0.25em) -0.5em 0, linear-gradient(225deg, #01DFE3 0.25em, transparent 0.25em) -0.5em 0, linear-gradient(315deg, rgba(238, 161, 99, 0.25) 0.25em, transparent 0.25em) 0 0, linear-gradient(45deg, rgba(238, 161, 99, 0.25) 0.25em, transparent 0.25em) 0 0;
+        background-size: 0.75em 0.75em;
+        opacity: 0.3;
+
+    }
+}
+
+.title18 {
+    &:after {
+        content: " ";
+        position: absolute;
+        bottom: 0;
+        left: 0;
+        position: absolute;
+        height: 100%;
+        width: 100%;
+        opacity: 0.3;
+        animation: animation2 1s linear infinite;
+        background: repeating-linear-gradient(45deg, #01DFE3 0, #01DFE3 0.25em, transparent 0.25em, transparent 0.5em);
+        background-size: 0.75em 0.75em;
+    }
+}
+</style>
\ No newline at end of file
diff --git a/src/views/place/index.vue b/src/views/place/index.vue
index 95963e2..9764e50 100644
--- a/src/views/place/index.vue
+++ b/src/views/place/index.vue
@@ -11,30 +11,15 @@
             </template>
 
             <template slot-scope="scope" slot="menu">
-                <el-button type="text" icon="el-icon-circle-plus-outline" size="small" v-if="permission.househould_manager"
+                <el-button type="text" icon="el-icon-edit" size="small" v-if="permission.househould_manager"
                     @click="ManageTenants(scope.row)">场所维护
                 </el-button>
             </template>
         </avue-crud>
 
-        <el-dialog title="场所维护" append-to-body :visible.sync="roleBox" center>
-            <h3>基本信息:</h3>
-            <avue-form :option="optionDetail" v-model="placeForm"></avue-form>
-
-            <div style="display: flex; justify-content: center;">
-                <el-button size="small" @click="roleBox = false">取 消</el-button>
-                <el-button size="small" type="primary" @click="submitRole">提 交</el-button>
-            </div>
-
-            <h3>从业人员:</h3>
-            <avue-crud :option="placeOption" :search.sync="search" :table-loading="loading" :data="placeExt" ref="crud"
-                v-model="houseHoldForm" :permission="permissionList" @row-del="houseHoldRowDel"
-                @row-update="houseHoldRowUpdate" @row-save="houseHoldRowSave" :page.sync="holdPage"
-                @current-change="holdCurrentChange" @size-change="holdSizeChange" @refresh-change="refreshHoldChange"
-                @on-load="holdOnLoad">
-            </avue-crud>
+        <el-dialog class="place-info-box" title="场所维护" append-to-body :visible.sync="roleBox" center @close="roleBoxClose">
+            <baseAllInfo></baseAllInfo>
         </el-dialog>
-
     </basic-container>
 </template>
 
@@ -46,121 +31,25 @@
     add,
     getPlace,
     getPlaceExt,
-    updatePlaceExt,
-    holdRemove,
-    holdAdd,
-    holdUpdate,
-    getHoldList
 } from "@/api/place/place"
+
 import {
     mapGetters
 } from "vuex"
+
 import website from '@/config/website'
+
+import baseAllInfo from './components/baseAllInfo'
+
 export default {
     data () {
         return {
+            curRow: {},
+            roleBox: false,
+
             form: {},
             query: {},
             loading: true,
-            roleBox: false,
-            placeForm: {},
-            optionDetail: {
-                submitBtn: false,
-                emptyBtn: false,
-                column: [
-                    {
-                        label: '场所名称',
-                        prop: 'placeName',
-                    },
-                    {
-                        label: '法人信息',
-                        prop: 'legalPerson'
-                    },
-                    {
-                        label: '法人电话',
-                        prop: 'legalTel'
-                    },
-                    {
-                        label: '场所位置',
-                        prop: 'localtion'
-                    },
-
-                    {
-                        label: "营业执照",
-                        prop: "imageUrls",
-                        width: 80,
-                        type: "upload",
-                        listType: "picture-card",
-                        dataType: "string",
-                        multiple: true,
-                        action: "/api/blade-resource/oss/endpoint/put-file",
-                        propsHttp: {
-                            res: "data",
-                            name: 'name',
-                            url: "link",
-                        },
-                        span: 24,
-                    },
-
-                    {
-                        label: "场所平面图",
-                        prop: "planImageUrls",
-                        width: 80,
-                        type: "upload",
-                        listType: "picture-card",
-                        dataType: "string",
-                        multiple: true,
-                        action: "/api/blade-resource/oss/endpoint/put-file",
-                        propsHttp: {
-                            res: "data",
-                            name: 'name',
-                            url: "link",
-                        },
-                        span: 24,
-                    },
-
-                ]
-            },
-            rowPlace: {},
-            placeExt: [],
-
-            houseHoldForm: {},
-            placeOption: {
-                menu: true,
-                height: 300,
-                calcHeight: 54,
-                dialogWidth: 950,
-                tip: false,
-                searchShow: false,
-                addBtn: true,
-                delBtn: true,
-                editBtn: true,
-                border: true,
-                index: true,
-                dialogClickModal: false,
-                column: [{
-                    label: "名称",
-                    prop: "name",
-                    searchSpan: 4,
-                    search: true,
-                }, {
-                    label: "电话",
-                    prop: "telephone",
-                    searchSpan: 4,
-                    search: true,
-                }, {
-                    label: "暂住地",
-                    prop: "tempAddress",
-                    searchSpan: 4,
-                    search: true,
-                },]
-            },
-            holdPage: {
-                pageSize: 20,
-                currentPage: 1,
-                total: 0,
-            },
-
 
             page: {
                 pageSize: 10,
@@ -176,15 +65,17 @@
                 tip: false,
                 searchShow: true,
                 searchMenuSpan: 3,
-                menuWidth: 280,
+                menuWidth: 240,
                 border: true,
                 //stripe:true,
                 index: true,
                 viewBtn: true,
+                editBtn: false,
                 selection: true,
                 dialogClickModal: false,
                 column: [
                     {
+                        span: 8,
                         label: "场所名称",
                         prop: "placeName",
                         searchSpan: 4,
@@ -195,6 +86,42 @@
                             trigger: "blur",
                         },],
                     },
+
+                    {
+                        span: 9,
+                        label: "场所标签",
+                        prop: "label",
+                        type: "cascader",
+                        dicUrl: "/api/blade-category/category/getCategory?level=2",
+                        cascader: ["smallLabel"],
+                        props: {
+                            label: "categoryName",
+                            value: "categoryNo"
+                        },
+                        dataType: "string",
+                        hide: true,
+                        rules: [{
+                            required: true,
+                            message: "请输入场所标签",
+                            trigger: "blur",
+                        },],
+                    },
+
+                    {
+                        span: 7,
+                        label: "",
+                        labelWidth: 0,
+                        prop: "smallLabel",
+                        type: "cascader",
+                        dicUrl: "/api/blade-category/category/getCategory?parentNo={{label}}",
+                        props: {
+                            label: "categoryName",
+                            value: "categoryNo"
+                        },
+                        dataType: "string",
+                        hide: true,
+                    },
+
                     {
                         label: "负责人",
                         prop: "principal",
@@ -206,6 +133,16 @@
                             trigger: "blur",
                         },],
                     },
+
+                    {
+                        width: 110,
+                        label: "电话",
+                        prop: "principalPhone",
+                        search: true,
+                        searchSpan: 4,
+                        slot: true,
+                    },
+
                     {
                         addDisplay: false,
                         editDisplay: false,
@@ -293,46 +230,9 @@
                         ],
                     },
 
-                    {
-                        label: "场所标签",
-                        prop: "label",
-                        type: "cascader",
-                        dicUrl: "/api/blade-category/category/getCategory?level=2",
-                        cascader: ["smallLabel"],
-                        props: {
-                            label: "categoryName",
-                            value: "categoryNo"
-                        },
-                        dataType: "string",
-                        hide: true,
-                        rules: [{
-                            required: true,
-                            message: "请输入场所标签",
-                            trigger: "blur",
-                        },],
-                    },
 
-                    {
-                        label: "",
-                        prop: "smallLabel",
-                        type: "cascader",
-                        dicUrl: "/api/blade-category/category/getCategory?parentNo={{label}}",
-                        props: {
-                            label: "categoryName",
-                            value: "categoryNo"
-                        },
-                        dataType: "string",
-                        hide: true,
-                    },
 
-                    {
-                        width: 110,
-                        label: "电话",
-                        prop: "principalPhone",
-                        search: true,
-                        searchSpan: 4,
-                        slot: true,
-                    },
+
 
                     {
                         label: "场所照片",
@@ -386,7 +286,17 @@
             data: [],
         }
     },
+
+    provide () {
+        return {
+            placeElement: this,
+        }
+    },
+
+    components: { baseAllInfo },
+
     watch: {},
+
     computed: {
         ...mapGetters(["permission", "userInfo"]),
         permissionList () {
@@ -406,130 +316,24 @@
         },
     },
     methods: {
-        houseHoldRowUpdate (row, index, done, loading) {
-            holdUpdate(row).then(
-                () => {
-                    this.holdOnLoad(this.holdPage)
-                    this.$message({
-                        type: "success",
-                        message: "操作成功!",
-                    })
-                    done()
-                },
-                (error) => {
-                    window.console.log(error)
-                    loading()
-                }
-            )
+        roleBoxClose () {
+            this.curRow = {}
         },
 
-        houseHoldRowDel (row) {
-            this.$confirm("确定将选择数据删除?", {
-                confirmButtonText: "确定",
-                cancelButtonText: "取消",
-                type: "warning",
-            })
-                .then(() => {
-                    return holdRemove(row.id)
-                })
-                .then(() => {
-                    this.holdOnLoad(this.holdPage)
+        handleClick () {
 
-                    this.$message({
-                        type: "success",
-                        message: "操作成功!",
-                    })
-                })
-        },
-
-        houseHoldRowSave (row, done, loading) {
-            holdAdd({
-                ...row,
-                placeId: this.placeForm.placeId
-            }).then(
-                () => {
-                    this.holdOnLoad(this.holdPage)
-
-                    this.$message({
-                        type: "success",
-                        message: "操作成功!",
-                    })
-                    done()
-                },
-                (error) => {
-                    window.console.log(error)
-                    loading()
-                }
-            )
-        },
-
-        refreshChange () {
-            this.holdOnLoad(this.holdPage)
-        },
-
-        holdOnLoad (holdPage, params = {}) {
-            if (!this.placeForm.placeId) return
-
-            let values = {
-                ...params,
-                placeId: this.placeForm.placeId
-            }
-
-            getHoldList(holdPage.currentPage, holdPage.pageSize, values).then((res) => {
-                const data = res.data.data
-
-                this.page.total = data.total
-                this.placeExt = data.records
-
-                this.loading = false
-            })
-        },
-
-        holdCurrentChange (currentPage) {
-            this.page.currentPage = currentPage
-        },
-        holdSizeChange (pageSize) {
-            this.page.pageSize = pageSize
         },
 
         ManageTenants (item) {
+            this.curRow = item
             this.roleBox = true
-            this.rowPlace = item
-            this.placeForm = {
-                placeName: '',
-                legalPerson: '',
-                legalTel: '',
-                localtion: '',
-                confirmFlag: '',
-                imageUrls: '',
-                planImageUrls: ''
-            }
-            this.placeExt = []
-            this.onLoadPlaceExt()
+            // this.onLoadPlaceExt(item.id)
         },
 
-        submitRole () {
-            updatePlaceExt(this.placeForm).then(
-                () => {
-                    this.$message({
-                        type: "success",
-                        message: "操作成功!",
-                    })
-                    this.roleBox = false
-                },
-                (error) => {
-                    window.console.log(error)
-                    loading()
-                }
-            )
-        },
-
-        onLoadPlaceExt () {
-            let params = {
-                placeId: this.rowPlace.id,
-            }
-            getPlaceExt(Object.assign(params)).then(res => {
+        onLoadPlaceExt (placeId) {
+            getPlaceExt({ placeId }).then(res => {
                 const data = res.data.data
+
                 if (data) {
                     let imageUrls = data.imageUrls
                     let planImageUrls = data.planImageUrls
@@ -629,6 +433,7 @@
                 })
                 .then(() => {
                     this.onLoad(this.page)
+
                     this.$message({
                         type: "success",
                         message: "操作成功!",
@@ -650,7 +455,9 @@
         },
         selectionClear () {
             this.selectionList = []
-            this.$refs.crud.toggleSelection()
+            this.$nextTick(() => {
+                this.$refs.crud && this.$refs.crud.toggleSelection()
+            })
         },
         handleDelete () {
             if (this.selectionList.length === 0) {
@@ -703,8 +510,8 @@
             } else {
                 done()
             }
-
         },
+
         currentChange (currentPage) {
             this.page.currentPage = currentPage
         },
@@ -715,9 +522,7 @@
             this.onLoad(this.page, this.query)
         },
         onLoad (page, params = {}) {
-            const {
-                dateTime
-            } = this.query
+            const { dateTime } = this.query
             let values = {
                 ...params,
             }
@@ -730,23 +535,27 @@
                 }
                 values.dateTime = null
             }
+
             this.loading = true
+
             getList(page.currentPage, page.pageSize, values).then((res) => {
                 const data = res.data.data
+
                 this.page.total = data.total
+
                 this.data = data.records
+
                 this.data.forEach(item => {
-                    if (item.imageUrls) {
-                        if (item.imageUrls.length > 0) {
-                            var urls = []
-                            var names = item.imageUrls.split(",").filter(item => item != '')
-                            names.forEach(name => {
-                                urls.push(website.minioUrl + name)
-                            })
-                            item.imageUrls = urls.join(",")
-                        }
+                    if (item.imageUrls && item.imageUrls != '' && item.imageUrls != null && item.imageUrls.length) {
+                        var urls = []
+                        var names = item.imageUrls.split(",").filter(item => item != '')
+                        names.forEach(name => {
+                            urls.push(website.minioUrl + name)
+                        })
+                        item.imageUrls = urls.join(",")
                     }
                 })
+
                 this.loading = false
                 this.selectionClear()
             })
diff --git a/src/views/property/propertyCapitalApply.vue b/src/views/property/propertyCapitalApply.vue
index c89b281..b42caaa 100644
--- a/src/views/property/propertyCapitalApply.vue
+++ b/src/views/property/propertyCapitalApply.vue
@@ -73,11 +73,27 @@
                 dialogClickModal: false,
                 column: [
                     {
-                        parent: false,
-                        label: "小区",
-                        prop: "districtId",
-                        searchSpan: 5,
+                        addDisplay: false,
+                        editDisplay: false,
+                        viewDisplay: false,
+                        width: 160,
+                        label: "小区名称",
+                        prop: "districtName",
                         search: true,
+                        searchSpan: 4,
+                        rules: [{
+                            required: true,
+                            message: "请输入小区名称",
+                            trigger: "blur",
+                        }],
+                    },
+
+                    {
+                        hide: true,
+                        parent: false,
+                        label: "小区名称",
+                        prop: "districtId",
+                        search: false,
                         type: 'tree',
                         dicUrl: `/api/blade-district/district/getDistrictTree`,
                         props: {
@@ -87,14 +103,14 @@
                         defaultExpandedKeys: ["361102003"],
                         span: 12,
                         labelWidth: 120,
-                        width: 220,
-                        overHidden: true,
+                        width: 260,
                         rules: [{
                             required: true,
-                            message: "请选择小区",
+                            message: "请选择小区名称",
                             trigger: "blur",
                         },],
                     },
+
                     {
                         label: '维修项目名称',
                         prop: 'name',
diff --git a/src/views/property/propertyCompanyDistrict.vue b/src/views/property/propertyCompanyDistrict.vue
index 64660fe..ff2a828 100644
--- a/src/views/property/propertyCompanyDistrict.vue
+++ b/src/views/property/propertyCompanyDistrict.vue
@@ -57,11 +57,27 @@
                 dialogClickModal: false,
                 column: [
                     {
-                        parent: false,
-                        label: "小区",
-                        prop: "districtId",
-                        searchSpan: 5,
+                        addDisplay: false,
+                        editDisplay: false,
+                        viewDisplay: false,
+                        width: 160,
+                        label: "小区名称",
+                        prop: "districtName",
                         search: true,
+                        searchSpan: 4,
+                        rules: [{
+                            required: true,
+                            message: "请输入小区名称",
+                            trigger: "blur",
+                        }],
+                    },
+
+                    {
+                        hide: true,
+                        parent: false,
+                        label: "小区名称",
+                        prop: "districtId",
+                        search: false,
                         type: 'tree',
                         dicUrl: `/api/blade-district/district/getDistrictTree`,
                         props: {
@@ -74,17 +90,32 @@
                         width: 260,
                         rules: [{
                             required: true,
-                            message: "请选择小区",
+                            message: "请选择小区名称",
                             trigger: "blur",
                         },],
                     },
+
                     {
+                        addDisplay: false,
+                        editDisplay: false,
+                        viewDisplay: false,
+                        width: 160,
+                        label: "物业公司",
+                        prop: "propertyCompanyName",
+                        search: true,
+                        searchSpan: 4,
+                        rules: [{
+                            required: true,
+                            message: "请输入物业公司",
+                            trigger: "blur",
+                        }],
+                    },
+
+                    {
+                        hide: true,
                         label: '物业公司',
                         prop: 'propertyCompanyId',
                         type: 'tree',
-                        hide: true,
-                        searchSpan: 5,
-                        search: true,
                         span: 12,
                         labelWidth: 120,
                         dicUrl: `/api/blade-propertyCompany/propertyCompany/getPropertyCompanyList`,
diff --git a/src/views/system/dept.vue b/src/views/system/dept.vue
index b08ef85..c9967d7 100644
--- a/src/views/system/dept.vue
+++ b/src/views/system/dept.vue
@@ -147,7 +147,7 @@
             },
             defaultExpandedKeys: ["361102003"],
             rules: [{
-              required: true,
+              required: false,
               message: "请选择管辖区域",
               trigger: "blur"
             }]
diff --git a/src/views/system/user.vue b/src/views/system/user.vue
index 8eae7ae..5f32427 100644
--- a/src/views/system/user.vue
+++ b/src/views/system/user.vue
@@ -456,10 +456,11 @@
                                 type: "tree",
                                 // multiple: true,
                                 dicData: [],
+                                dataType:"string",
                                 props: {
                                     label: "title"
                                 },
-                                checkStrictly: true,
+                                // checkStrictly: true,
                                 slot: true,
                                 span: 12,
                                 rules: [{
@@ -698,7 +699,7 @@
             row['userType'] = 1
             row.deptId = func.join(row.deptId)
             row.roleId = func.join(row.roleId)
-            // row.postId = func.join(row.postId);
+            row.postId = func.join(row.postId);
             add(row).then(() => {
                 this.initFlag = false
                 this.onLoad(this.page)
@@ -717,7 +718,7 @@
             row['userType'] = 1
             row.deptId = func.join(row.deptId)
             row.roleId = func.join(row.roleId)
-            // row.postId = func.join(row.postId);
+            row.postId = func.join(row.postId);
             update(row).then(() => {
                 this.initFlag = false
                 this.onLoad(this.page)
diff --git a/src/views/userHouse/houseList.vue b/src/views/userHouse/houseList.vue
index d8cdac4..9c26b7c 100644
--- a/src/views/userHouse/houseList.vue
+++ b/src/views/userHouse/houseList.vue
@@ -226,11 +226,10 @@
                     },
 
                     {
+                        hide: true,
                         parent: false,
                         label: "小区名称",
                         prop: "districtCode",
-                        searchSpan: 4,
-                        search: true,
                         type: 'tree',
                         dicUrl: `/api/blade-district/district/getDistrictTree`,
                         props: {
@@ -240,7 +239,6 @@
                         defaultExpandedKeys: ["361102003"],
                         span: 12,
                         width: 220,
-                        hide:true,
                         overHidden: true,
                     },
 
@@ -249,7 +247,7 @@
                         label: "小区名称",
                         prop: "districtName",
                         searchSpan: 4,
-                        display:false,
+                        display: false,
                         search: true,
                         overHidden: true,
                     },

--
Gitblit v1.9.3