ソースを参照

社区代码生成

chenwj 5 年 前
コミット
87f600d154

+ 2 - 0
package.json

@@ -23,6 +23,8 @@
     "js-cookie": "^2.2.0",
     "js-md5": "^0.7.3",
     "layui-layer": "^1.0.9",
+    "less": "^4.1.1",
+    "less-loader": "^8.0.0",
     "mockjs": "^1.0.1-beta3",
     "node-gyp": "^5.0.6",
     "nprogress": "^0.2.0",

+ 0 - 29
src/api/community/building.js

@@ -48,32 +48,3 @@ export const update = (row) => {
   })
 }
 
-export const getBuildingList = (current, size, params) => {
-  return request({
-    url: '/grid/community/showBuildingList',
-    method: 'get',
-    params: {
-      ...params,
-      current,
-      size,
-    }
-  })
-}
-
-export const getBuildingDetail = (id) => {
-  return request({
-    url: '/grid/community/findBuildingById/' + id,
-    method: 'get',
-    params: {
-    }
-  })
-}
-
-
-export const batchAddSubmit = (row) => {
-  return request({
-    url: '/api/community/building/batchAdd',
-    method: 'post',
-    data: row
-  })
-}

+ 1 - 1
src/api/community/floor.js

@@ -34,7 +34,7 @@ export const remove = (ids) => {
 
 export const add = (row) => {
   return request({
-    url: '/api/community/floor/save',
+    url: '/api/community/floor/submit',
     method: 'post',
     data: row
   })

+ 50 - 0
src/api/community/houseuser.js

@@ -0,0 +1,50 @@
+import request from '@/router/axios';
+
+export const getList = (current, size, params) => {
+  return request({
+    url: '/api/community/houseuser/list',
+    method: 'get',
+    params: {
+      ...params,
+      current,
+      size,
+    }
+  })
+}
+
+export const getDetail = (id) => {
+  return request({
+    url: '/api/community/houseuser/detail',
+    method: 'get',
+    params: {
+      id
+    }
+  })
+}
+
+export const remove = (ids) => {
+  return request({
+    url: '/api/community/houseuser/remove',
+    method: 'post',
+    params: {
+      ids,
+    }
+  })
+}
+
+export const add = (row) => {
+  return request({
+    url: '/api/community/houseuser/submit',
+    method: 'post',
+    data: row
+  })
+}
+
+export const update = (row) => {
+  return request({
+    url: '/api/community/houseuser/submit',
+    method: 'post',
+    data: row
+  })
+}
+

+ 0 - 83
src/api/community/residential.js

@@ -12,15 +12,6 @@ export const getList = (current, size, params) => {
   })
 }
 
-export const getAllList = () => {
-  return request({
-    url: '/api/community/residential/select',
-    method: 'get',
-    params: {
-    }
-  })
-}
-
 export const getDetail = (id) => {
   return request({
     url: '/api/community/residential/detail',
@@ -57,77 +48,3 @@ export const update = (row) => {
   })
 }
 
-export const getResidentialList = (current, size, params) => {
-  return request({
-    url: '/grid/estate/showResidentialList',
-    method: 'get',
-    params: {
-      ...params,
-      current,
-      size,
-    }
-  })
-}
-
-export const getResidentialDetail = (id) => {
-  return request({
-    url: '/grid/estate/findResidentialById/' + id,
-    method: 'get',
-    params: {
-    }
-  })
-}
-
-
-export const updateResidential = (row) => {
-  return request({
-    url: '/grid/estate/updateResidential',
-    method: 'post',
-    data: row
-  })
-}
-
-export const syncBuilding = (residentialOldId) => {
-  return request({
-    url: '/api/sync/syncBuilding/' + residentialOldId,
-    method: 'post',
-    params: {
-    }
-  })
-}
-
-export const syncUnit = (residentialOldId) => {
-  return request({
-    url: '/api/sync/syncUnit/' + residentialOldId,
-    method: 'post',
-    params: {
-    }
-  })
-}
-
-export const syncFloor = (residentialOldId) => {
-  return request({
-    url: '/api/sync/syncFloor/' + residentialOldId,
-    method: 'post',
-    params: {
-    }
-  })
-}
-
-export const syncRoom = (residentialOldId) => {
-  return request({
-    url: '/api/sync/syncRoom/' + residentialOldId,
-    method: 'post',
-    params: {
-    }
-  })
-}
-
-export const syncUser = (residentialOldId) => {
-  return request({
-    url: '/api/sync/syncUser/' + residentialOldId,
-    method: 'post',
-    params: {
-    }
-  })
-}

+ 1 - 37
src/api/community/room.js

@@ -34,7 +34,7 @@ export const remove = (ids) => {
 
 export const add = (row) => {
   return request({
-    url: '/api/community/room/save',
+    url: '/api/community/room/submit',
     method: 'post',
     data: row
   })
@@ -48,39 +48,3 @@ export const update = (row) => {
   })
 }
 
-
-
-
-
-export const getRoomList = (current, size, params) => {
-  return request({
-    url: '/grid/room/showRoomList',
-    method: 'get',
-    params: {
-      ...params,
-      current,
-      size,
-    }
-  })
-}
-
-export const getRoomDetail = (id) => {
-  return request({
-    url: '/grid/room/findRoomById/' + id,
-    method: 'get',
-    params: {
-    }
-  })
-}
-
-export const getRoomByPersonId = (personId) => {
-  return request({
-    url: '/api/community/room/getRoomByPersonId',
-    method: 'get',
-    params: {
-      personId
-    }
-  })
-}
-
-

+ 1 - 22
src/api/community/unit.js

@@ -34,7 +34,7 @@ export const remove = (ids) => {
 
 export const add = (row) => {
   return request({
-    url: '/api/community/unit/save',
+    url: '/api/community/unit/submit',
     method: 'post',
     data: row
   })
@@ -48,24 +48,3 @@ export const update = (row) => {
   })
 }
 
-export const getUnitList = (current, size, params) => {
-  return request({
-    url: '/grid/unit/showUnitList',
-    method: 'get',
-    params: {
-      ...params,
-      current,
-      size,
-    }
-  })
-}
-
-export const getUnitDetail = (id) => {
-  return request({
-    url: '/grid/unit/findUnitById/' + id,
-    method: 'get',
-    params: {
-    }
-  })
-}
-

+ 143 - 238
src/views/community/agency.vue

@@ -1,48 +1,43 @@
 <template>
   <basic-container>
-    <avue-crud :option="option" :table-loading="loading" :data="data" :page="page" :permission="permissionList"
-      :before-open="beforeOpen" v-model="form" ref="crud" @row-update="rowUpdate" @row-save="rowSave" @row-del="rowDel"
-      @search-change="searchChange" @search-reset="searchReset" @selection-change="selectionChange" @current-change="currentChange"
-      @size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad">
+    <avue-crud :option="option"
+               :table-loading="loading"
+               :data="data"
+               :page.sync="page"
+               :permission="permissionList"
+               :before-open="beforeOpen"
+               v-model="form"
+               ref="crud"
+               @row-update="rowUpdate"
+               @row-save="rowSave"
+               @row-del="rowDel"
+               @search-change="searchChange"
+               @search-reset="searchReset"
+               @selection-change="selectionChange"
+               @current-change="currentChange"
+               @size-change="sizeChange"
+               @refresh-change="refreshChange"
+               @on-load="onLoad">
       <template slot="menuLeft">
-        <el-button type="danger" size="small" icon="el-icon-delete" plain v-if="permission.agency_delete" @click="handleDelete">删
-          除
+        <el-button type="danger"
+                   size="small"
+                   icon="el-icon-delete"
+                   plain
+                   v-if="permission.agency_delete"
+                   @click="handleDelete">删 除
         </el-button>
-        <cy-excel-import :flag="4" file-name="社区信息导入模板" @success="onLoad(page)"></cy-excel-import>
       </template>
-      <template slot="iconLocationForm">
-<!--        <el-button type="text" icon="el-icon-place" size="medium" display>经纬度选择</el-button>-->
-      </template>
-      <template slot="mapSelectForm" slot-scope="scope">
-         <avue-map v-model="scope.row.mapSelect"></avue-map>
-      </template>
-
     </avue-crud>
   </basic-container>
 </template>
 
 <script>
-  import {
-    getList,
-    getDetail,
-    add,
-    update,
-    remove
-  } from "@/api/community/agency.js";
-  import {
-    mapGetters
-  } from "vuex";
-  import {
-    validatePhone
-  } from "@/util/validator"
-  import areaJsonData from "../../components/cy-area-select/areaData.json"
-  import CyExcelImport from "../../components/excel/cy-excel-import"
+  import {getList, getDetail, add, update, remove} from "@/api/community/agency";
+  import {mapGetters} from "vuex";
 
   export default {
-    components: {CyExcelImport},
     data() {
       return {
-        areaData: [],
         form: {},
         query: {},
         loading: true,
@@ -53,273 +48,205 @@
         },
         selectionList: [],
         option: {
-          height: 'auto',
-          calcHeight: 60,
+          height:'auto',
+          calcHeight: 30,
           tip: false,
           searchShow: true,
           searchMenuSpan: 6,
           border: true,
           index: true,
-          // addBtn: false,
-          // editBtn: false,
           viewBtn: true,
           selection: true,
           dialogClickModal: false,
-          column: [{
-              label: "名称",
-              prop: "agencyName",
-              search: true,
-              width: 120,
-              overHidden: true,
-              rules: [{
-                required: true,
-                message: "请输入名称",
-                trigger: "blur"
-              }]
-            },
-            // {
-            //     label: "所属街道",
-            //     prop: "streetId",
-            //     search: true,
-            //     type:"select",
-            //     dicUrl: "/api/system_street/street/list?size=500",
-            //     props: {
-            //       label: "name",
-            //       value: "id"
-            //     },
-            //     dicFormatter: (res)=>{
-            //       return res.data.records;
-            //     },
-            //     rules: [{
-            //       required: true,
-            //       message: "请输入街道id",
-            //       trigger: "blur"
-            //     }]
-            //   },
-            // {
-            //   prop: "iconLocation",
-            //   hide: true,
-            //   formslot: true,
-            //   span:4
-            // },
+          column: [
             {
-              label:'',
-              prop:'mapSelect',
-              // row: true,
-              // span: 20,
-              formslot: true,
-              hide: true,
-            },
-            {
-              label: "社区编号",
-              prop: "agencyNo",
-              // search: true,
-              hide: true,
-              // display: false,
-              viewDisplay: false,
-              addDisplay: false,
-              editDisplay: false,
-              width: 120,
+              label: "社区名称",
+              prop: "name",
               rules: [{
                 required: true,
-                message: "请输入社区编号",
-                trigger: "blur"
-              }]
-            },
-            {
-              label: "经度",
-              prop: "longitude",
-              width: 120,
-              hide: true,
-              rules: [{
-                required: false,
-                message: "请输入经度",
-                trigger: "blur"
-              }]
-            },
-            {
-              label: "纬度",
-              prop: "latitude",
-              width: 120,
-              hide: true,
-              rules: [{
-                required: false,
-                message: "请输入纬度",
+                message: "请输入社区名称",
                 trigger: "blur"
               }]
             },
             {
               label: "所属省",
               prop: "regionProvince",
-              type: "select",
-              width: 150,
-              dicUrl: "/api/system-expand/sysarea/getAllProvince",
-              cascaderItem:["regionCity"],
-              props:{
-                label:"sname",
-                value: "scode"
-              },
               rules: [{
                 required: true,
-                message: "请输入省行政编码",
+                message: "请输入所属省",
                 trigger: "blur"
               }]
             },
             {
               label: "所属市",
               prop: "regionCity",
-              type: "select",
-              cascaderItem: ["regionArea"],
-              dicUrl: `/api/system-expand/sysarea/getCityOrAreaByParentCode?code={{key}}`,
-              dicFlag: false,
-              props:{
-                label: "sname",
-                value: "scode"
-              },
               rules: [{
-                required: false,
-                message: "请输入市行政编码",
+                required: true,
+                message: "请输入所属市",
                 trigger: "blur"
               }]
             },
             {
               label: "所属区",
               prop: "regionArea",
-              type: "select",
-              dicFlag: false,
-              cascaderItem: ["streetId"],
-              dicUrl:  `/api/system-expand/sysarea/getCityOrAreaByParentCode?code={{key}}`,
-              props: {
-                label: "sname",
-                value: "scode"
-              },
               rules: [{
-                required: false,
-                message: "请输入区行政编码",
+                required: true,
+                message: "请输入所属区",
                 trigger: "blur"
               }]
             },
             {
               label: "所属街道",
               prop: "regionStreet",
-              type:"select",
-              dicFlag:false,
-              width: 150,
-              dicUrl: `/api/system-expand/street/list?size=500&areaCode={{key}}`,
-              props: {
-                label: "name",
-                value: "code"
-              },
-
-              dicFormatter: (res)=>{
-                return res.data.records;
-              },
               rules: [{
                 required: true,
-                message: "请输入街道id",
+                message: "请输入所属街道",
                 trigger: "blur"
               }]
             },
             {
               label: "详细地址",
-              search: true,
               prop: "address",
-              // width: 300,
-              overHidden: true,
               rules: [{
-                required: false,
+                required: true,
                 message: "请输入详细地址",
                 trigger: "blur"
               }]
             },
             {
-              label: "负责人名称",
-              prop: "personName",
-              width: 150,
-              labelWidth: 100,
+              label: "经度",
+              prop: "longitude",
               rules: [{
-                required: false,
-                message: "请输入负责人名称",
+                required: true,
+                message: "请输入经度",
                 trigger: "blur"
               }]
             },
             {
-              label: "联系方式",
-              prop: "personPhone",
-              width: 120,
+              label: "纬度",
+              prop: "latitude",
               rules: [{
-                required: false,
-                message: "请输入负责人联系方式",
+                required: true,
+                message: "请输入纬度",
                 trigger: "blur"
-              }, {
-                validator: validatePhone,
+              }]
+            },
+            {
+              label: "负责人名称",
+              prop: "personName",
+              rules: [{
+                required: true,
+                message: "请输入负责人名称",
                 trigger: "blur"
-              }],
+              }]
             },
             {
-              label: "背景图",
-              prop: "pic",
-              type: 'upload',
-              hide: true,
-              propsHttp: {
-                url: 'data'
-              },
-              listType: 'picture-img',
-              span: 24,
-              row: true,
-              action: "/api/upload/putfile",
-              display: true,
+              label: "负责人联系方式",
+              prop: "personPhone",
               rules: [{
-                required: false,
-                message: "请输入封面图片",
+                required: true,
+                message: "请输入负责人联系方式",
                 trigger: "blur"
               }]
             },
             {
               label: "小区数量",
               prop: "residentialCount",
-              display: false,
-              hide: true,
+              rules: [{
+                required: true,
+                message: "请输入小区数量",
+                trigger: "blur"
+              }]
             },
             {
-              label: "楼栋数量",
+              label: "楼栋数",
               prop: "buildingCount",
-              hide: true,
-              display: false,
+              rules: [{
+                required: true,
+                message: "请输入楼栋数",
+                trigger: "blur"
+              }]
             },
             {
               label: "单元数量",
               prop: "unitCount",
-              hide: true,
-              display: false,
+              rules: [{
+                required: true,
+                message: "请输入单元数量",
+                trigger: "blur"
+              }]
             },
             {
-              label: "楼层数量",
+              label: "楼层数",
               prop: "floorCount",
-              hide: true,
-              display: false,
+              rules: [{
+                required: true,
+                message: "请输入楼层数",
+                trigger: "blur"
+              }]
             },
             {
               label: "房间数量",
               prop: "roomCount",
-              hide: true,
-              display: false,
+              rules: [{
+                required: true,
+                message: "请输入房间数量",
+                trigger: "blur"
+              }]
             },
             {
               label: "人员数量",
               prop: "personCount",
-              hide: true,
-              display: false,
+              rules: [{
+                required: true,
+                message: "请输入人员数量",
+                trigger: "blur"
+              }]
+            },
+            {
+              label: "车辆数量",
+              prop: "carCount",
+              rules: [{
+                required: true,
+                message: "请输入车辆数量",
+                trigger: "blur"
+              }]
+            },
+            {
+              label: "社区背景图",
+              prop: "pic",
+              rules: [{
+                required: true,
+                message: "请输入社区背景图",
+                trigger: "blur"
+              }]
             },
-            // {
-            //   label: "车辆数量",
-            //   prop: "carCount",
-            //   display: false,
-            // },
             {
               label: "备注",
               prop: "remark",
-              hide: true,
+              rules: [{
+                required: true,
+                message: "请输入备注",
+                trigger: "blur"
+              }]
+            },
+            {
+              label: "机构路径",
+              prop: "orgPosition",
+              rules: [{
+                required: true,
+                message: "请输入机构路径",
+                trigger: "blur"
+              }]
+            },
+            {
+              label: "旧平台id",
+              prop: "oldId",
+              rules: [{
+                required: true,
+                message: "请输入旧平台id",
+                trigger: "blur"
+              }]
             },
           ]
         },
@@ -342,28 +269,10 @@
           ids.push(ele.id);
         });
         return ids.join(",");
-      },
-    },
-    watch: {
-      'form.mapSelect': {
-        handler: function(value) {
-          if (!value){
-            return
-          }else{
-            this.form.longitude = this.form.mapSelect.longitude;
-            this.form.latitude = this.form.mapSelect.latitude;
-            this.form.address = this.form.mapSelect.formattedAddress;
-          }
-        },
       }
     },
     methods: {
       rowSave(row, done, loading) {
-        row.residentialCount = 0;
-        row.unitCount = 0;
-        row.roomCount = 0;
-        row.personCount = 0;
-        row.carCount = 0;
         add(row).then(() => {
           this.onLoad(this.page);
           this.$message({
@@ -377,7 +286,6 @@
         });
       },
       rowUpdate(row, index, done, loading) {
-        row.agencyArea = row.agencyArea.toString();
         update(row).then(() => {
           this.onLoad(this.page);
           this.$message({
@@ -392,10 +300,10 @@
       },
       rowDel(row) {
         this.$confirm("确定将选择数据删除?", {
-            confirmButtonText: "确定",
-            cancelButtonText: "取消",
-            type: "warning"
-          })
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        })
           .then(() => {
             return remove(row.id);
           })
@@ -413,10 +321,10 @@
           return;
         }
         this.$confirm("确定将选择数据删除?", {
-            confirmButtonText: "确定",
-            cancelButtonText: "取消",
-            type: "warning"
-          })
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        })
           .then(() => {
             return remove(this.ids);
           })
@@ -430,7 +338,6 @@
           });
       },
       beforeOpen(done, type) {
-
         if (["edit", "view"].includes(type)) {
           getDetail(this.form.id).then(res => {
             this.form = res.data.data;
@@ -455,19 +362,17 @@
         this.selectionList = [];
         this.$refs.crud.toggleSelection();
       },
-      currentChange(currentPage) {
+      currentChange(currentPage){
         this.page.currentPage = currentPage;
       },
-      sizeChange(pageSize) {
+      sizeChange(pageSize){
         this.page.pageSize = pageSize;
       },
       refreshChange() {
         this.onLoad(this.page, this.query);
       },
       onLoad(page, params = {}) {
-        debugger
         this.loading = true;
-        this.areaData = areaJsonData;
         getList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
           const data = res.data.data;
           this.page.total = data.total;

+ 65 - 142
src/views/community/building.vue

@@ -1,19 +1,9 @@
 <template>
   <basic-container>
-    <el-dialog  :append-to-body="true" :close-on-click-modal="false" :modal-append-to-body="false" :visible.sync="editVisible" title="楼栋编辑"
-      width="80%">
-     <avue-form v-model="editForm" :option="option" @submit="submitBuilding"></avue-form>
-    </el-dialog>
-    <el-dialog :modal-append-to-body="false" :visible.sync="deviceDialog" title="设备管理" width="70%">
-      <devicebuilding :buildingId="buildingId"></devicebuilding>
-    </el-dialog>
-    <el-dialog :modal-append-to-body="false" :visible.sync="videoDialog" title="设备管理" width="70%">
-      <buildingvideo :buildingId="buildingId"></buildingvideo>
-    </el-dialog>
     <avue-crud :option="option"
                :table-loading="loading"
                :data="data"
-               :page="page"
+               :page.sync="page"
                :permission="permissionList"
                :before-open="beforeOpen"
                v-model="form"
@@ -37,52 +27,17 @@
                    @click="handleDelete">删 除
         </el-button>
       </template>
-      <template slot="menu" slot-scope="scope">
-        <el-button type="text" size="small" icon="el-icon-setting">
-          <el-dropdown @command="tip">
-            <span class="el-dropdown-link">
-              操作<i class="el-icon-arrow-down el-icon--right"> </i>
-            </span>
-            <el-dropdown-menu slot="dropdown">
-             <el-dropdown-item divided @click.native="edit(scope.row)" icon="el-icon-school">编辑</el-dropdown-item>
-              <el-dropdown-item divided @click.native="buildingManage(scope.row.id,1)" icon="el-icon-school">单元管理</el-dropdown-item>
-              <el-dropdown-item divided @click.native="buildingManage(scope.row.id,2)" icon="el-icon-s-order">楼层管理</el-dropdown-item>
-              <el-dropdown-item divided @click.native="buildingManage(scope.row.id,3)" icon="el-icon-s-home">房间管理</el-dropdown-item>
-              <el-dropdown-item divided @click.native="buildingManage(scope.row.id,4)" icon="el-icon-user-solid" v-if="permission.permanent_people_view">住户管理</el-dropdown-item>
-<!--              <el-dropdown-item divided @click.native="manageDevice(scope.row)" icon="el-icon-s-management">设备管理</el-dropdown-item>-->
-<!--              <el-dropdown-item divided @click.native="manageVideo(scope.row)" icon="el-icon-s-management">视频监控</el-dropdown-item>-->
-              <!-- <el-dropdown-item divided @click.native="tip(2,scope.row)">审核通过</el-dropdown-item> -->
-            </el-dropdown-menu>
-          </el-dropdown>
-        </el-button>
-        <!-- <el-button type="text" icon="el-icon-setting" size="mini" @click="manageResidential(scope.row.oldId)">管理</el-button> -->
-      </template>
-      <template slot="residentialId" slot-scope="scope">
-        <div>{{scope.row.residentialName}}</div>
-      </template>
     </avue-crud>
   </basic-container>
 </template>
 
 <script>
-  import {getList, getDetail, add, update, remove,getBuildingList,getBuildingDetail} from "../../api/community/building.js";
-  // import devicebuilding from "@/views/smartapplication/devicebuilding";
-  // import buildingvideo from "@/views/smartapplication/buildingvideo";
-  import {communityManage} from "@/views/community/util/communityManage";
+  import {getList, getDetail, add, update, remove} from "@/api/community/building";
   import {mapGetters} from "vuex";
 
   export default {
-    components: {
-      // devicebuilding,
-      // buildingvideo
-    },
     data() {
       return {
-        buildingId : '',
-        deviceDialog: false,
-        videoDialog: false,
-        editForm: {},
-        editVisible: false,
         form: {},
         query: {},
         loading: true,
@@ -94,16 +49,13 @@
         selectionList: [],
         option: {
           height:'auto',
-          calcHeight: 60,
+          calcHeight: 30,
           tip: false,
           searchShow: true,
           searchMenuSpan: 6,
           border: true,
           index: true,
-          viewBtn: false,
-          // addBtn: false,
-          editBtn: false,
-          delBtn: true,
+          viewBtn: true,
           selection: true,
           dialogClickModal: false,
           column: [
@@ -112,88 +64,106 @@
               prop: "name",
               rules: [{
                 required: true,
-                message: "请输入",
+                message: "请输入楼栋名称",
                 trigger: "blur"
               }]
             },
             {
-              label: "归属",
+              label: "社区id",
+              prop: "agencyId",
+              rules: [{
+                required: true,
+                message: "请输入社区id",
+                trigger: "blur"
+              }]
+            },
+            {
+              label: "社区名称",
+              prop: "agencyName",
+              rules: [{
+                required: true,
+                message: "请输入社区名称",
+                trigger: "blur"
+              }]
+            },
+            {
+              label: "小区id",
               prop: "residentialId",
-              type:"select",
-              remote: true,
-              //回显的时候有问题,如果所选不在前十条内,下拉框只会显示id
-              dicUrl: "/api/community/residential/select?name={{key}}",
-              props:{
-                label: "name",
-                value: "id"
-              },
-              searchFilterable: true,
-              search: true,
-              slot: true,
               rules: [{
                 required: true,
-                message: "请输入",
+                message: "请输入小区id",
                 trigger: "blur"
               }]
             },
             {
-              label: "图片",
-              prop: "pic",
-              type: 'upload',
-              dataType: 'string',
-              hide: true,
-              propsHttp: {
-                url: 'data'
-              },
-              listType: 'picture-card',
-              span: 24,
-              row: true,
-              value: "/img/default/building.png",
-              action: "/api/upload/putfile",
+              label: "小区名称",
+              prop: "residentialName",
               rules: [{
-                required: false,
-                message: "请输入封面图片",
+                required: true,
+                message: "请输入小区名称",
                 trigger: "blur"
               }]
             },
             {
               label: "单元数",
-              prop: "unitNumber",
-              display: false,
+              prop: "unitCount",
               rules: [{
                 required: true,
-                message: "请输入",
+                message: "请输入单元数",
                 trigger: "blur"
               }]
             },
             {
               label: "楼层数",
-              prop: "floorNumber",
-              display: false,
+              prop: "floorCount",
               rules: [{
                 required: true,
-                message: "请输入",
+                message: "请输入楼层数",
                 trigger: "blur"
               }]
             },
             {
               label: "房间数",
-              prop: "roomNumber",
-              display: false,
+              prop: "roomCount",
+              rules: [{
+                required: true,
+                message: "请输入房间数",
+                trigger: "blur"
+              }]
+            },
+            {
+              label: "住户数",
+              prop: "userCount",
+              rules: [{
+                required: true,
+                message: "请输入住户数",
+                trigger: "blur"
+              }]
+            },
+            {
+              label: "图片",
+              prop: "pic",
               rules: [{
                 required: true,
-                message: "请输入",
+                message: "请输入图片",
                 trigger: "blur"
               }]
             },
             {
-              label: "总人口数",
-              prop: "personNumber",
-              display: false,
-              hide: true,
+              label: "旧平台id",
+              prop: "oldId",
               rules: [{
                 required: true,
-                message: "请输入",
+                message: "请输入旧平台id",
+                trigger: "blur"
+              }]
+            },
+            {
+              label: "机构路径",
+              prop: "orgPosition",
+              rules: [{
+                required: true,
+                message: "请输入机构路径",
                 trigger: "blur"
               }]
             },
@@ -221,36 +191,6 @@
       }
     },
     methods: {
-      submitBuilding(row,done,loading){
-        update(this.editForm).then(() => {
-          this.onLoad(this.page);
-          this.editVisible = false;
-          this.$message({
-            type: "success",
-            message: "操作成功!"
-          });
-          done();
-        }, error => {
-          loading();
-          console.log(error);
-        });
-      },
-      edit(row){
-        this.editForm = row;
-        this.editVisible = true;
-      },
-      buildingManage(id,type){
-        let query = {buildingId: id};
-        communityManage(this,type,query)
-      },
-      manageDevice(row){
-        this.buildingId = row.id;
-        this.deviceDialog = true
-      },
-      manageVideo(row){
-        this.buildingId = row.id;
-        this.videoDialog = true
-      },
       rowSave(row, done, loading) {
         add(row).then(() => {
           this.onLoad(this.page);
@@ -352,15 +292,6 @@
       },
       onLoad(page, params = {}) {
         this.loading = true;
-
-
-        console.log("dfdf:"+ this.$route.query.residentialOldId);
-        if(this.$route.query.residentialOldId != undefined){
-
-          params.residentialId = this.$route.query.oldId;
-          // this.query.residentialId = params.residentialId;
-          // this.option.column[1].value = params.residentialId;
-        }
         getList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
           const data = res.data.data;
           this.page.total = data.total;
@@ -368,14 +299,6 @@
           this.loading = false;
           this.selectionClear();
         });
-        // getBuildingList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
-        //   const data = res.data.data;
-        //   this.page.total =Number.parseInt(data.total);
-        //   console.log(this.page.total)
-        //   this.data = data.records;
-        //   this.loading = false;
-        //   this.selectionClear();
-        // });
       }
     }
   };

+ 66 - 158
src/views/community/floor.vue

@@ -3,7 +3,7 @@
     <avue-crud :option="option"
                :table-loading="loading"
                :data="data"
-               :page="page"
+               :page.sync="page"
                :permission="permissionList"
                :before-open="beforeOpen"
                v-model="form"
@@ -27,32 +27,13 @@
                    @click="handleDelete">删 除
         </el-button>
       </template>
-      <template slot="menu" slot-scope="scope">
-        <el-button type="text" size="small" icon="el-icon-setting">
-          <el-dropdown @command="tip">
-            <span class="el-dropdown-link">
-              操作<i class="el-icon-arrow-down el-icon--right"> </i>
-            </span>
-            <el-dropdown-menu slot="dropdown">
-              <el-dropdown-item divided @click.native="floorManage(scope.row.id,3)" icon="el-icon-s-home">房间管理</el-dropdown-item>
-              <el-dropdown-item divided @click.native="floorManage(scope.row.id,4)" icon="el-icon-user-solid">住户管理</el-dropdown-item>
-              <!-- <el-dropdown-item divided @click.native="tip(2,scope.row)">审核通过</el-dropdown-item> -->
-            </el-dropdown-menu>
-          </el-dropdown>
-        </el-button>
-        <!-- <el-button type="text" icon="el-icon-setting" size="mini" @click="manageResidential(scope.row.oldId)">管理</el-button> -->
-      </template>
-      <template slot="residentialId" slot-scope="scope">{{scope.row.residentialName}}</template>
-      <template slot="buildingId" slot-scope="scope">{{scope.row.buildingName}}</template>
-      <template slot="unitId" slot-scope="scope">{{scope.row.unitName}}</template>
     </avue-crud>
   </basic-container>
 </template>
 
 <script>
-  import {getList, getDetail, add, update, remove} from "../../api/community/floor.js";
+  import {getList, getDetail, add, update, remove} from "@/api/community/floor";
   import {mapGetters} from "vuex";
-  import {communityManage} from "@/views/community/util/communityManage";
 
   export default {
     data() {
@@ -68,13 +49,13 @@
         selectionList: [],
         option: {
           height:'auto',
-          calcHeight: 60,
+          calcHeight: 30,
           tip: false,
           searchShow: true,
           searchMenuSpan: 6,
           border: true,
           index: true,
-          viewBtn: false,
+          viewBtn: true,
           selection: true,
           dialogClickModal: false,
           column: [
@@ -87,225 +68,159 @@
                 trigger: "blur"
               }]
             },
-            // {
-            //   label: "所属社区",
-            //   prop: "agencyId",
-            //   hide: true,
-            //   display: false,
-            //   slot: true,
-
-            //   rules: [{
-            //     required: true,
-            //     message: "请选择所属社区",
-            //     trigger: "blur"
-            //   }]
-            // },
             {
-              label: "归属",
-              prop: "residentialId",
-              search: true,
-              slot: true,
-              cascaderItem: ['buildingId','unitId'],
-              type: "select",
-              remote: true,
-              //回显的时候有问题,如果所选不在前十条内,下拉框只会显示id
-              dicUrl: "/api/community/residential/select?name={{key}}",
-              props: {
-                label: "name",
-                value: "id"
-              },
+              label: "社区id",
+              prop: "agencyId",
               rules: [{
                 required: true,
-                message: "请选择归属",
+                message: "请输入社区id",
                 trigger: "blur"
               }]
             },
             {
-              label: "所属楼栋",
-              prop: "buildingId",
-              slot: true,
-              search: true,
-              type: "select",
-              cascaderIndex:0,
-              dicUrl: "/api/building/building/select?residentialId={{key}}",
-              filterable: true,
-              dicFlag: false,
-              props: {
-                label: "name",
-                value: "id"
-              },
+              label: "社区名称",
+              prop: "agencyName",
               rules: [{
                 required: true,
-                message: "请选择所属楼栋",
+                message: "请输入社区名称",
                 trigger: "blur"
               }]
             },
             {
-              label: "所属单元",
-              prop: "unitId",
-              search: true,
-              slot: true,
-              type: "select",
-              dicFlag: false,
-              cascaderIndex: 1,
-              dicUrl: "/api/community/unit/select?buildingId={{key}}",
-              filterable: true,
-              props: {
-                label: "name",
-                value: "id"
-              },
+              label: "小区id",
+              prop: "residentialId",
               rules: [{
                 required: true,
-                message: "请输入所属单元id",
+                message: "请输入小区id",
                 trigger: "blur"
               }]
             },
             {
-              label: "负责人姓名",
-              prop: "personName",
-              hide: true,
-              labelWidth: 100,
+              label: "小区名称",
+              prop: "residentialName",
               rules: [{
-                required: false,
-                message: "请输入负责人姓名",
+                required: true,
+                message: "请输入小区名称",
                 trigger: "blur"
               }]
             },
             {
-              label: "负责人电话",
-              prop: "personTel",
-              labelWidth: 100,
-              hide: true,
+              label: "楼栋id",
+              prop: "buildingId",
               rules: [{
-                required: false,
-                message: "请输入负责人电话",
+                required: true,
+                message: "请输入楼栋id",
                 trigger: "blur"
               }]
             },
             {
-              label: "建筑年代",
-              prop: "builtYear",
-              hide: true,
+              label: "楼栋名称",
+              prop: "buildingName",
               rules: [{
-                required: false,
-                message: "请输入建筑年代",
+                required: true,
+                message: "请输入楼栋名称",
                 trigger: "blur"
               }]
             },
             {
-              label: "产权性质",
-              prop: "propertyNature",
-              hide: true,
+              label: "单元id",
+              prop: "unitId",
               rules: [{
-                required: false,
-                message: "请输入产权性质",
+                required: true,
+                message: "请输入单元id",
                 trigger: "blur"
               }]
             },
             {
-              label: "有无电梯",
-              prop: "includingElevator",
-              type: "select",
-              dicUrl: "/api/blade-system/dict-biz/dictionary?code=including_elevator",
-              props:{
-                label: "dictValue",
-                value: "dictKey",
-              },
-              dataType: "number",
-              hide: true,
+              label: "单元名称",
+              prop: "unitName",
               rules: [{
-                required: false,
-                message: "请输入有无电梯",
+                required: true,
+                message: "请输入单元名称",
                 trigger: "blur"
               }]
             },
             {
-              label: "房间数量",
-              prop: "roomNumber",
-              display: false,
+              label: "负责人姓名",
+              prop: "personName",
               rules: [{
-                required: false,
-                message: "请输入房间数量",
+                required: true,
+                message: "请输入负责人姓名",
                 trigger: "blur"
               }]
             },
             {
-              label: "住户数量",
-              prop: "userNumber",
-              hide: true,
-              display: false,
+              label: "负责人电话",
+              prop: "personTel",
               rules: [{
-                required: false,
-                message: "请输入住户数量",
+                required: true,
+                message: "请输入负责人电话",
                 trigger: "blur"
               }]
             },
             {
-              label: "序号",
-              prop: "serial",
-              hide: true,
-              display: false,
+              label: "建筑年代",
+              prop: "builtYear",
               rules: [{
                 required: true,
-                message: "请输入序号",
+                message: "请输入建筑年代",
                 trigger: "blur"
               }]
             },
             {
-              label: "备注",
-              prop: "remark",
-              hide: true,
+              label: "有无电梯",
+              prop: "includingElevator",
               rules: [{
-                required: false,
-                message: "请输入备注",
+                required: true,
+                message: "请输入有无电梯",
                 trigger: "blur"
               }]
             },
             {
-              label: "所属机构id(属于社区机构,则存社区机构ID;无社区机构,则存小区ID)",
-              prop: "orgPid",
-              hide: true,
-              display: false,
+              label: "房间数量",
+              prop: "roomCount",
+              rules: [{
+                required: true,
+                message: "请输入房间数量",
+                trigger: "blur"
+              }]
+            },
+            {
+              label: "住户数量",
+              prop: "userCount",
               rules: [{
                 required: true,
-                message: "请输入所属机构id(属于社区机构,则存社区机构ID;无社区机构,则存小区ID)",
+                message: "请输入住户数量",
                 trigger: "blur"
               }]
             },
             {
-              label: "所属机构名称(属于社区机构,则存社区机构名称;无社区机构,则存小区名称)",
-              prop: "orgPidName",
-              hide: true,
-              display: false,
+              label: "备注",
+              prop: "remark",
               rules: [{
                 required: true,
-                message: "请输入所属机构名称(属于社区机构,则存社区机构名称;无社区机构,则存小区名称)",
+                message: "请输入备注",
                 trigger: "blur"
               }]
             },
             {
-              label: "根机构Id",
-              prop: "rootOrgId",
-              hide: true,
-              display: false,
+              label: "机构路径",
+              prop: "orgPosition",
               rules: [{
                 required: true,
-                message: "请输入根机构Id",
+                message: "请输入机构路径",
                 trigger: "blur"
               }]
             },
             {
               label: "原数据的Id",
               prop: "oldId",
-              hide: true,
-              display: false,
               rules: [{
                 required: true,
                 message: "请输入原数据的Id",
                 trigger: "blur"
               }]
             },
-
           ]
         },
         data: []
@@ -330,10 +245,6 @@
       }
     },
     methods: {
-      floorManage(id,type){
-        let query = {floorId: id};
-        communityManage(this,type,query)
-      },
       rowSave(row, done, loading) {
         add(row).then(() => {
           this.onLoad(this.page);
@@ -435,9 +346,6 @@
       },
       onLoad(page, params = {}) {
         this.loading = true;
-        if (this.$route.query){
-          Object.assign(this.query,this.$route.query)
-        }
         getList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
           const data = res.data.data;
           this.page.total = data.total;

+ 551 - 0
src/views/community/houseuser.vue

@@ -0,0 +1,551 @@
+<template>
+  <basic-container>
+    <avue-crud :option="option"
+               :table-loading="loading"
+               :data="data"
+               :page.sync="page"
+               :permission="permissionList"
+               :before-open="beforeOpen"
+               v-model="form"
+               ref="crud"
+               @row-update="rowUpdate"
+               @row-save="rowSave"
+               @row-del="rowDel"
+               @search-change="searchChange"
+               @search-reset="searchReset"
+               @selection-change="selectionChange"
+               @current-change="currentChange"
+               @size-change="sizeChange"
+               @refresh-change="refreshChange"
+               @on-load="onLoad">
+      <template slot="menuLeft">
+        <el-button type="danger"
+                   size="small"
+                   icon="el-icon-delete"
+                   plain
+                   v-if="permission.houseuser_delete"
+                   @click="handleDelete">删 除
+        </el-button>
+      </template>
+    </avue-crud>
+  </basic-container>
+</template>
+
+<script>
+  import {getList, getDetail, add, update, remove} from "@/api/community/houseuser";
+  import {mapGetters} from "vuex";
+
+  export default {
+    data() {
+      return {
+        form: {},
+        query: {},
+        loading: true,
+        page: {
+          pageSize: 10,
+          currentPage: 1,
+          total: 0
+        },
+        selectionList: [],
+        option: {
+          height:'auto',
+          calcHeight: 30,
+          tip: false,
+          searchShow: true,
+          searchMenuSpan: 6,
+          border: true,
+          index: true,
+          viewBtn: true,
+          selection: true,
+          dialogClickModal: false,
+          column: [
+            {
+              label: "住户名字",
+              prop: "name",
+              rules: [{
+                required: true,
+                message: "请输入住户名字",
+                trigger: "blur"
+              }]
+            },
+            {
+              label: "社区id",
+              prop: "agencyId",
+              rules: [{
+                required: true,
+                message: "请输入社区id",
+                trigger: "blur"
+              }]
+            },
+            {
+              label: "社区名称",
+              prop: "agencyName",
+              rules: [{
+                required: true,
+                message: "请输入社区名称",
+                trigger: "blur"
+              }]
+            },
+            {
+              label: "小区id",
+              prop: "residentialId",
+              rules: [{
+                required: true,
+                message: "请输入小区id",
+                trigger: "blur"
+              }]
+            },
+            {
+              label: "小区名称",
+              prop: "residentialName",
+              rules: [{
+                required: true,
+                message: "请输入小区名称",
+                trigger: "blur"
+              }]
+            },
+            {
+              label: "楼栋id",
+              prop: "buildingId",
+              rules: [{
+                required: true,
+                message: "请输入楼栋id",
+                trigger: "blur"
+              }]
+            },
+            {
+              label: "楼栋名称",
+              prop: "buildingName",
+              rules: [{
+                required: true,
+                message: "请输入楼栋名称",
+                trigger: "blur"
+              }]
+            },
+            {
+              label: "单元id",
+              prop: "unitId",
+              rules: [{
+                required: true,
+                message: "请输入单元id",
+                trigger: "blur"
+              }]
+            },
+            {
+              label: "单元名称",
+              prop: "unitName",
+              rules: [{
+                required: true,
+                message: "请输入单元名称",
+                trigger: "blur"
+              }]
+            },
+            {
+              label: "楼层id",
+              prop: "floorId",
+              rules: [{
+                required: true,
+                message: "请输入楼层id",
+                trigger: "blur"
+              }]
+            },
+            {
+              label: "楼层名称",
+              prop: "floorName",
+              rules: [{
+                required: true,
+                message: "请输入楼层名称",
+                trigger: "blur"
+              }]
+            },
+            {
+              label: "房间id",
+              prop: "roomId",
+              rules: [{
+                required: true,
+                message: "请输入房间id",
+                trigger: "blur"
+              }]
+            },
+            {
+              label: "房间名称",
+              prop: "roomName",
+              rules: [{
+                required: true,
+                message: "请输入房间名称",
+                trigger: "blur"
+              }]
+            },
+            {
+              label: "机构路径",
+              prop: "orgPosition",
+              rules: [{
+                required: true,
+                message: "请输入机构路径",
+                trigger: "blur"
+              }]
+            },
+            {
+              label: "审核状态:,0-待审核 1-审核通过 2-审核不通过",
+              prop: "checkState",
+              rules: [{
+                required: true,
+                message: "请输入审核状态:,0-待审核 1-审核通过 2-审核不通过",
+                trigger: "blur"
+              }]
+            },
+            {
+              label: "审核意见",
+              prop: "checkOpinion",
+              rules: [{
+                required: true,
+                message: "请输入审核意见",
+                trigger: "blur"
+              }]
+            },
+            {
+              label: "人员分类:常住;重点。。。。",
+              prop: "personType",
+              rules: [{
+                required: true,
+                message: "请输入人员分类:常住;重点。。。。",
+                trigger: "blur"
+              }]
+            },
+            {
+              label: "手机号",
+              prop: "tel",
+              rules: [{
+                required: true,
+                message: "请输入手机号",
+                trigger: "blur"
+              }]
+            },
+            {
+              label: "国籍,0 中国大陆 1 中国香港/澳门 2 中国台湾 3海外",
+              prop: "nationality",
+              rules: [{
+                required: true,
+                message: "请输入国籍,0 中国大陆 1 中国香港/澳门 2 中国台湾 3海外",
+                trigger: "blur"
+              }]
+            },
+            {
+              label: "证件号码 中国大陆:身份证;中国香港/澳门:港澳居民来往内地通行证;中国台湾:台湾居民来往内地通行证;海外:护照",
+              prop: "idCard",
+              rules: [{
+                required: true,
+                message: "请输入证件号码 中国大陆:身份证;中国香港/澳门:港澳居民来往内地通行证;中国台湾:台湾居民来往内地通行证;海外:护照",
+                trigger: "blur"
+              }]
+            },
+            {
+              label: "籍贯(nationality = 0时,国籍为中国大陆)",
+              prop: "birthPlace",
+              rules: [{
+                required: true,
+                message: "请输入籍贯(nationality = 0时,国籍为中国大陆)",
+                trigger: "blur"
+              }]
+            },
+            {
+              label: "护照照片url",
+              prop: "passportImgUri",
+              rules: [{
+                required: true,
+                message: "请输入护照照片url",
+                trigger: "blur"
+              }]
+            },
+            {
+              label: "入境证明url",
+              prop: "entryImgUri",
+              rules: [{
+                required: true,
+                message: "请输入入境证明url",
+                trigger: "blur"
+              }]
+            },
+            {
+              label: "性别  0-未定义  1-男 2-女",
+              prop: "sex",
+              rules: [{
+                required: true,
+                message: "请输入性别  0-未定义  1-男 2-女",
+                trigger: "blur"
+              }]
+            },
+            {
+              label: "备注",
+              prop: "remark",
+              rules: [{
+                required: true,
+                message: "请输入备注",
+                trigger: "blur"
+              }]
+            },
+            {
+              label: "脸部照片url(没有域名)",
+              prop: "imageUri",
+              rules: [{
+                required: true,
+                message: "请输入脸部照片url(没有域名)",
+                trigger: "blur"
+              }]
+            },
+            {
+              label: "根据图片生成的faceId",
+              prop: "faceCode",
+              rules: [{
+                required: true,
+                message: "请输入根据图片生成的faceId",
+                trigger: "blur"
+              }]
+            },
+            {
+              label: "小区省(id)",
+              prop: "regionProvince",
+              rules: [{
+                required: true,
+                message: "请输入小区省(id)",
+                trigger: "blur"
+              }]
+            },
+            {
+              label: "小区市(id)",
+              prop: "regionCity",
+              rules: [{
+                required: true,
+                message: "请输入小区市(id)",
+                trigger: "blur"
+              }]
+            },
+            {
+              label: "小区区/县(id)",
+              prop: "regionArea",
+              rules: [{
+                required: true,
+                message: "请输入小区区/县(id)",
+                trigger: "blur"
+              }]
+            },
+            {
+              label: "住户来源创建类型,0-小程序添加 1-后台添加  2-后台导入 3-app添加",
+              prop: "createType",
+              rules: [{
+                required: true,
+                message: "请输入住户来源创建类型,0-小程序添加 1-后台添加  2-后台导入 3-app添加",
+                trigger: "blur"
+              }]
+            },
+            {
+              label: "创建时间",
+              prop: "createDate",
+              rules: [{
+                required: true,
+                message: "请输入创建时间",
+                trigger: "blur"
+              }]
+            },
+            {
+              label: "是否激活App",
+              prop: "isMember",
+              rules: [{
+                required: true,
+                message: "请输入是否激活App",
+                trigger: "blur"
+              }]
+            },
+            {
+              label: "住户类型 1-业主 2-成员 3-租户",
+              prop: "type",
+              rules: [{
+                required: true,
+                message: "请输入住户类型 1-业主 2-成员 3-租户",
+                trigger: "blur"
+              }]
+            },
+            {
+              label: "民族",
+              prop: "nation",
+              rules: [{
+                required: true,
+                message: "请输入民族",
+                trigger: "blur"
+              }]
+            },
+            {
+              label: "政治面貌",
+              prop: "political",
+              rules: [{
+                required: true,
+                message: "请输入政治面貌",
+                trigger: "blur"
+              }]
+            },
+            {
+              label: "文化程度",
+              prop: "education",
+              rules: [{
+                required: true,
+                message: "请输入文化程度",
+                trigger: "blur"
+              }]
+            },
+            {
+              label: "旧平台id",
+              prop: "oldId",
+              rules: [{
+                required: true,
+                message: "请输入旧平台id",
+                trigger: "blur"
+              }]
+            },
+            {
+              label: "人员标签",
+              prop: "personTag",
+              rules: [{
+                required: true,
+                message: "请输入人员标签",
+                trigger: "blur"
+              }]
+            },
+          ]
+        },
+        data: []
+      };
+    },
+    computed: {
+      ...mapGetters(["permission"]),
+      permissionList() {
+        return {
+          addBtn: this.vaildData(this.permission.houseuser_add, false),
+          viewBtn: this.vaildData(this.permission.houseuser_view, false),
+          delBtn: this.vaildData(this.permission.houseuser_delete, false),
+          editBtn: this.vaildData(this.permission.houseuser_edit, false)
+        };
+      },
+      ids() {
+        let ids = [];
+        this.selectionList.forEach(ele => {
+          ids.push(ele.id);
+        });
+        return ids.join(",");
+      }
+    },
+    methods: {
+      rowSave(row, done, loading) {
+        add(row).then(() => {
+          this.onLoad(this.page);
+          this.$message({
+            type: "success",
+            message: "操作成功!"
+          });
+          done();
+        }, error => {
+          loading();
+          window.console.log(error);
+        });
+      },
+      rowUpdate(row, index, done, loading) {
+        update(row).then(() => {
+          this.onLoad(this.page);
+          this.$message({
+            type: "success",
+            message: "操作成功!"
+          });
+          done();
+        }, error => {
+          loading();
+          console.log(error);
+        });
+      },
+      rowDel(row) {
+        this.$confirm("确定将选择数据删除?", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        })
+          .then(() => {
+            return remove(row.id);
+          })
+          .then(() => {
+            this.onLoad(this.page);
+            this.$message({
+              type: "success",
+              message: "操作成功!"
+            });
+          });
+      },
+      handleDelete() {
+        if (this.selectionList.length === 0) {
+          this.$message.warning("请选择至少一条数据");
+          return;
+        }
+        this.$confirm("确定将选择数据删除?", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        })
+          .then(() => {
+            return remove(this.ids);
+          })
+          .then(() => {
+            this.onLoad(this.page);
+            this.$message({
+              type: "success",
+              message: "操作成功!"
+            });
+            this.$refs.crud.toggleSelection();
+          });
+      },
+      beforeOpen(done, type) {
+        if (["edit", "view"].includes(type)) {
+          getDetail(this.form.id).then(res => {
+            this.form = res.data.data;
+          });
+        }
+        done();
+      },
+      searchReset() {
+        this.query = {};
+        this.onLoad(this.page);
+      },
+      searchChange(params, done) {
+        this.query = params;
+        this.page.currentPage = 1;
+        this.onLoad(this.page, params);
+        done();
+      },
+      selectionChange(list) {
+        this.selectionList = list;
+      },
+      selectionClear() {
+        this.selectionList = [];
+        this.$refs.crud.toggleSelection();
+      },
+      currentChange(currentPage){
+        this.page.currentPage = currentPage;
+      },
+      sizeChange(pageSize){
+        this.page.pageSize = pageSize;
+      },
+      refreshChange() {
+        this.onLoad(this.page, this.query);
+      },
+      onLoad(page, params = {}) {
+        this.loading = true;
+        getList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
+          const data = res.data.data;
+          this.page.total = data.total;
+          this.data = data.records;
+          this.loading = false;
+          this.selectionClear();
+        });
+      }
+    }
+  };
+</script>
+
+<style>
+</style>

+ 145 - 546
src/views/community/residential.vue

@@ -1,122 +1,44 @@
-
 <template>
   <basic-container>
-    <el-dialog :append-to-body="true" :close-on-click-modal="false" :modal-append-to-body="false" :visible.sync="manageVisible"
-      title="管理" fullscreen="true" @close="closeManage">
-
-      <residentialManage ref="resMang" :residentialId="selectedResidentialId" :residentialName="selectedResidentialName"
-        :visible="manageVisible">
-
-      </residentialManage>
-
-    </el-dialog>
-    <el-dialog :append-to-body="true" :close-on-click-modal="false" :modal-append-to-body="false" :visible.sync="detailVisible"
-      title="详情" width="80%">
-      <residential-detail :form="detailForm"></residential-detail>
-    </el-dialog>
-    <el-dialog :append-to-body="true" :close-on-click-modal="false" :modal-append-to-body="false" :visible.sync="editVisible"
-      title="编辑" width="80%">
-      <avue-form v-model="editForm" :option="option" @submit="submitResidential">
-        <template slot="mapSelect">
-          <avue-map v-model="editForm.mapSelect"></avue-map>
-        </template>
-      </avue-form>
-
-    </el-dialog>
-    <avue-crud :option="option" :table-loading="loading" :data="data" :page="page" :permission="permissionList"
-      :before-open="beforeOpen" v-model="form" ref="crud" @row-update="rowUpdate" @row-save="rowSave" @row-del="rowDel"
-      @search-change="searchChange" @search-reset="searchReset" @selection-change="selectionChange" @current-change="currentChange"
-      @size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad">
+    <avue-crud :option="option"
+               :table-loading="loading"
+               :data="data"
+               :page.sync="page"
+               :permission="permissionList"
+               :before-open="beforeOpen"
+               v-model="form"
+               ref="crud"
+               @row-update="rowUpdate"
+               @row-save="rowSave"
+               @row-del="rowDel"
+               @search-change="searchChange"
+               @search-reset="searchReset"
+               @selection-change="selectionChange"
+               @current-change="currentChange"
+               @size-change="sizeChange"
+               @refresh-change="refreshChange"
+               @on-load="onLoad">
       <template slot="menuLeft">
-        <el-button type="danger" size="small" icon="el-icon-delete" plain v-if="permission.residential_delete" @click="handleDelete">删除
-        </el-button>
-        <cy-excel-import :flag="5" file-name="小区信息导入模板" @success="onLoad(page)"></cy-excel-import>
-      </template>
-       <template slot-scope="scope" slot="regionForm">
-        <avue-cascader v-model="scope.row.region" :dic="regionDic" key-value="value"></avue-cascader>
-               <cy-area-select></cy-area-select>
-      </template>
-      <template slot="agencyId" slot-scope="scope">{{scope.row.agencyName}}</template>
-      <template slot="menu" slot-scope="scope">
-        <el-button type="text" size="small" icon="el-icon-setting">
-          <el-dropdown @command="tip">
-            <span class="el-dropdown-link">
-              操作<i class="el-icon-arrow-down el-icon--right"> </i>
-            </span>
-            <el-dropdown-menu slot="dropdown">
-              <el-dropdown-item divided @click.native="detail(scope.row)" icon="el-icon-office-building">详情</el-dropdown-item>
-              <el-dropdown-item divided @click.native="edit(scope.row)" icon="el-icon-school">编辑</el-dropdown-item>
-              <el-dropdown-item divided @click.native="manage(scope.row)" icon="el-icon-s-order">管理</el-dropdown-item>
-              <el-dropdown-item divided @click.native="syncBuilding(scope.row)" v-if="permission.residential_syncBuilding">同步楼栋</el-dropdown-item>
-              <el-dropdown-item divided @click.native="syncUnit(scope.row)" v-if="permission.residential_syncUnit">同步单元</el-dropdown-item>
-              <el-dropdown-item divided @click.native="syncFloor(scope.row)" v-if="permission.residential_syncFloor">同步楼层</el-dropdown-item>
-              <el-dropdown-item divided @click.native="syncRoom(scope.row)" v-if="permission.residential_syncRoom">同步房间</el-dropdown-item>
-              <el-dropdown-item divided @click.native="syncUser(scope.row)" v-if="permission.residential_syncUser">同步住户</el-dropdown-item>
-             <!-- <el-dropdown-item divided @click.native="manageUser(scope.row.oldId)" icon="el-icon-user-solid">住户管理</el-dropdown-item>
-              <el-dropdown-item divided @click.native="tip(2,scope.row)">审核通过</el-dropdown-item> -->
-            </el-dropdown-menu>
-          </el-dropdown>
+        <el-button type="danger"
+                   size="small"
+                   icon="el-icon-delete"
+                   plain
+                   v-if="permission.residential_delete"
+                   @click="handleDelete">删 除
         </el-button>
-        <!-- <el-button type="text" icon="el-icon-setting" size="mini" @click="manageResidential(scope.row.oldId)">管理</el-button> -->
-      </template>
-
-      <template slot="mapSelectForm" slot-scope="scope">
-        <avue-map v-model="scope.row.mapSelect"></avue-map>
       </template>
-
     </avue-crud>
   </basic-container>
 </template>
 
 <script>
-  import {
-    getList,
-    getDetail,
-    add,
-    update,
-    remove,
-    getResidentialList,
-    getResidentialDetail,
-    updateResidential,
-    syncBuilding,
-    syncUnit,
-    syncFloor,
-    syncRoom,
-    syncUser
-  } from "@/api/community/residential";
-  import {
-    mapGetters
-  } from "vuex";
-  import request from '@/router/axios';
-  import CyAreaSelect from "../../components/cy-area-select/cy-area-select";
-  // import {
-  //   residentialData
-  // } from "./data";
-  import {
-    validatePhone
-  } from "@/util/validator"
-  import residentialManage from "./residentialManage.vue";
-  // import residentialDetail from "../../components/residential/residentialDetail.vue";
-  import CyExcelImport from "../../components/excel/cy-excel-import.vue"
+  import {getList, getDetail, add, update, remove} from "@/api/community/residential";
+  import {mapGetters} from "vuex";
 
   export default {
-    components: {
-      CyAreaSelect,
-      residentialManage,
-      // residentialDetail,
-      CyExcelImport
-    },
     data() {
       return {
-        selectedResidentialId: "",
-        selectedResidentialName: "",
-        manageVisible: false,
         form: {},
-        detailForm: {},
-        detailVisible: false,
-        editForm: {},
-        editVisible: false,
-        regionDic: [],
         query: {},
         loading: true,
         page: {
@@ -126,361 +48,198 @@
         },
         selectionList: [],
         option: {
-          height: 'auto',
-          calcHeight: 60,
+          height:'auto',
+          calcHeight: 30,
           tip: false,
           searchShow: true,
           searchMenuSpan: 6,
           border: true,
           index: true,
-          viewBtn: false,
-          addBtn: true,
-          editBtn: false,
-          delBtn: true,
+          viewBtn: true,
           selection: true,
           dialogClickModal: false,
-          menuWidth: 200,
-          column: [{
-              label: "名称",
-              width: 150,
+          column: [
+            {
+              label: "小区名字",
               prop: "name",
-              // row: true,
-              overHidden: true,
-              search: true,
               rules: [{
                 required: true,
-                message: "请输入名称",
+                message: "请输入小区名字",
                 trigger: "blur"
               }]
             },
             {
-              label:'',
-              prop:'mapSelect',
-              // row: true,
-              // span: 20,
-              formslot: true,
-              hide: true,
-            },
-            {
-              label: "经度",
-              prop: "longitude",
-              width: 120,
-              hide: true,
+              label: "社区id",
+              prop: "agencyId",
               rules: [{
-                required: false,
-                message: "请输入经度",
+                required: true,
+                message: "请输入社区id",
                 trigger: "blur"
               }]
             },
             {
-              label: "纬度",
-              prop: "latitude",
-              width: 120,
-              hide: true,
+              label: "社区名称",
+              prop: "agencyName",
               rules: [{
-                required: false,
-                message: "请输入纬度",
+                required: true,
+                message: "请输入社区名称",
                 trigger: "blur"
               }]
             },
             {
-              label: "归属",
-              prop: "agencyId",
-              slot: true,
-              search: true,
-              width: 150,
-              overHidden: true,
-              type: "select",
-              remote: true,
-              dicUrl: "/api/community/agency/select?size=10&agencyName={{key}}",
-              props: {
-                label: "agencyName",
-                value: "id"
-              },
+              label: "省(id)",
+              prop: "regionProvince",
               rules: [{
                 required: true,
-                message: "请输入所属机构名称",
+                message: "请输入省(id)",
                 trigger: "blur"
               }]
-
             },
-
             {
-              label: "详细地址",
-              prop: "address",
-              overHidden: true,
+              label: "市(id)",
+              prop: "regionCity",
+              rules: [{
+                required: true,
+                message: "请输入市(id)",
+                trigger: "blur"
+              }]
             },
             {
-              label: "楼栋数量",
-              prop: "buildingNumber",
-              width: 100,
-              display: false,
+              label: "区/县(id)",
+              prop: "regionArea",
+              rules: [{
+                required: true,
+                message: "请输入区/县(id)",
+                trigger: "blur"
+              }]
             },
             {
-              label: "单元数量",
-              prop: "unitNumber",
-              width: 100,
-              display: false,
+              label: "详细地址",
+              prop: "address",
+              rules: [{
+                required: true,
+                message: "请输入详细地址",
+                trigger: "blur"
+              }]
             },
             {
-              label: "楼层数量",
-              prop: "floorNumber",
-              width: 100,
-              display: false,
+              label: "经度",
+              prop: "longitude",
+              rules: [{
+                required: true,
+                message: "请输入经度",
+                trigger: "blur"
+              }]
             },
             {
-              label: "房间数量",
-              prop: "roomNumber",
-              width: 100,
-              display: false,
+              label: "纬度",
+              prop: "latitude",
+              rules: [{
+                required: true,
+                message: "请输入纬度",
+                trigger: "blur"
+              }]
             },
             {
-              label: "住户数量",
-              prop: "userNumber",
-              width: 100,
-              display: false,
-              hide: true,
+              label: "楼栋总数",
+              prop: "buildingCount",
+              rules: [{
+                required: true,
+                message: "请输入楼栋总数",
+                trigger: "blur"
+              }]
             },
             {
-              label: "已录入人脸住户数",
-              prop: "userFaceNumber",
-              hide: true,
-              width: 120,
-              display: false,
+              label: "单元总数",
+              prop: "unitCount",
+              rules: [{
+                required: true,
+                message: "请输入单元总数",
+                trigger: "blur"
+              }]
             },
             {
-              label: "物业名称",
-              prop: "estatePidName",
-              labelWidth: 110,
-              hide: true,
+              label: "楼层总数",
+              prop: "floorCount",
               rules: [{
                 required: true,
-                message: "请输入物业名称",
+                message: "请输入楼层总数",
                 trigger: "blur"
               }]
             },
             {
-              label: "物业电话",
-              prop: "estatePidPhone",
-              labelWidth: 110,
-              hide: true,
+              label: "房间总数",
+              prop: "roomCount",
               rules: [{
                 required: true,
-                message: "请输入物业电话",
-                trigger: "blur"
-              }, {
-                // validator: validatePhone,
+                message: "请输入房间总数",
                 trigger: "blur"
               }]
             },
             {
-              label: "负责人姓名",
-              prop: "personName",
-              labelWidth: 110,
-              hide: true,
+              label: "住户总数",
+              prop: "userCount",
               rules: [{
                 required: true,
-                message: "请输入负责人姓名",
+                message: "请输入住户总数",
                 trigger: "blur"
               }]
             },
             {
-              label: "负责人电话",
-              prop: "personTel",
-              labelWidth: 110,
-              hide: true,
+              label: "所属物业名称",
+              prop: "estateName",
               rules: [{
                 required: true,
-                message: "请输入负责人电话",
-                trigger: "blur"
-              }, {
-                // validator: validatePhone,
+                message: "请输入所属物业名称",
                 trigger: "blur"
               }]
             },
             {
-              label: "图片",
-              prop: "pic",
-              type: 'upload',
-              hide: true,
-              propsHttp: {
-                url: 'data'
-              },
-              listType: 'picture-img',
-              span: 24,
-              row: true,
-
-              action: "/api/upload/putfile",
-              display: true,
+              label: "所属物业联系方式",
+              prop: "estatePhone",
               rules: [{
-                required: false,
-                message: "请输入封面图片",
+                required: true,
+                message: "请输入所属物业联系方式",
                 trigger: "blur"
               }]
             },
             {
               label: "备注",
-              hide: true,
               prop: "remark",
-              type: "textarea"
-            },
-            {
-              label: "创建时间",
-              hide: true,
-              width: 85,
-              prop: "createTime",
-              type: "datetime",
-              valueFormat: "yyyy-MM-dd HH:mm:ss",
-              display: false,
+              rules: [{
+                required: true,
+                message: "请输入备注",
+                trigger: "blur"
+              }]
             },
             {
-              label: "旧平台id",
-              prop: "oldId",
-              hide: true,
-              display: false
-            }
-          ]
-        },
-        menuData: {
-          list: [],
-          form: {
-            parentId: 0
-          },
-          option: {
-            column: [{
-              label: "父级编码",
-              prop: "parentId",
-              value: 0,
-              disabled: true,
-              span: 24
-            }, {
-              label: "权限名称",
-              prop: "name",
-              span: 24,
+              label: "小区图片",
+              prop: "pic",
               rules: [{
                 required: true,
-                message: "请输入权限名称",
+                message: "请输入小区图片",
                 trigger: "blur"
               }]
-            }, {
-              label: "权限标识",
-              prop: "code",
-              span: 24,
+            },
+            {
+              label: "旧平台id",
+              prop: "oldId",
               rules: [{
                 required: true,
-                message: "请输入权限标识",
+                message: "请输入旧平台id",
                 trigger: "blur"
               }]
-            }, {
-              label: "类型",
-              prop: "state",
-              span: 24,
-              type: "radio",
-              dicData: [{
-                label: '系统',
-                value: 0
-              }, {
-                label: '菜单',
-                value: 1
-              }, {
-                label: '按钮',
-                value: 2
-              }],
+            },
+            {
+              label: "机构路径",
+              prop: "orgPosition",
               rules: [{
                 required: true,
-                message: "请输入类型",
+                message: "请输入机构路径",
                 trigger: "blur"
               }]
-            }, {
-              label: "组件地址",
-              prop: "component",
-              span: 24
-            }, {
-              label: "图标",
-              prop: "icon",
-              span: 24
-            }, {
-              label: "请求地址",
-              prop: "path",
-              span: 24
-            }, {
-              label: "权限描述",
-              prop: "des",
-              span: 24
-            }, {
-              label: "排序",
-              prop: "order",
-              span: 24
-            }]
-          }
-        },
-        menuOption: {
-          column: [{
-            label: "父级编码",
-            prop: "parentId",
-            disabled: true,
-            span: 24
-          }, {
-            label: "权限名称",
-            prop: "name",
-            span: 24,
-            rules: [{
-              required: true,
-              message: "请输入权限名称",
-              trigger: "blur"
-            }]
-          }, {
-            label: "权限标识",
-            prop: "code",
-            span: 24,
-            rules: [{
-              required: true,
-              message: "请输入权限标识",
-              trigger: "blur"
-            }]
-          }, {
-            label: "类型",
-            prop: "state",
-            span: 24,
-            type: "radio",
-            dicData: [{
-              label: '系统',
-              value: 0
-            }, {
-              label: '菜单',
-              value: 1
-            }, {
-              label: '按钮',
-              value: 2
-            }],
-            rules: [{
-              required: true,
-              message: "请输入类型",
-              trigger: "blur"
-            }]
-          }, {
-            label: "组件地址",
-            prop: "component",
-            span: 24
-          }, {
-            label: "图标",
-            prop: "icon",
-            span: 24
-
-
-          }, {
-            label: "请求地址",
-            prop: "path",
-            span: 24
-          }, {
-            label: "权限描述",
-            prop: "des",
-            span: 24
-          }, {
-            label: "排序",
-            prop: "order",
-            span: 24
-          }]
+            },
+          ]
         },
         data: []
       };
@@ -503,128 +262,8 @@
         return ids.join(",");
       }
     },
-    mounted() {
-
-    },
-    watch: {
-      'form.mapSelect': {
-        handler: function(value) {
-          if (!value){
-            return
-          }else{
-            this.form.longitude = this.form.mapSelect.longitude;
-            this.form.latitude = this.form.mapSelect.latitude;
-            this.form.address = this.form.mapSelect.formattedAddress;
-          }
-        },
-        immediate: false
-      },
-      'editForm.mapSelect': {
-        handler: function(value) {
-          if (!value){
-            return
-          }else{
-            this.editForm.longitude = this.editForm.mapSelect.longitude;
-            this.editForm.latitude = this.editForm.mapSelect.latitude;
-            // this.editForm.address = this.editForm.mapSelect.formattedAddress;
-          }
-        },
-        immediate: false
-      },
-    },
     methods: {
-      syncUser(row){
-        syncUser(row.oldId).then(() => {
-          this.onLoad(this.page);
-          this.$message({
-            type: "success",
-            message: "操作成功!"
-          });
-          done();
-        }, error => {
-          loading();
-          window.console.log(error);
-        });
-      },
-      syncBuilding(row){
-
-        syncBuilding(row.oldId).then(() => {
-          this.onLoad(this.page);
-          this.$message({
-            type: "success",
-            message: "操作成功!"
-          });
-          done();
-        }, error => {
-          loading();
-          window.console.log(error);
-        });
-      },
-      syncUnit(row){
-
-        syncUnit(row.oldId).then(() => {
-          this.onLoad(this.page);
-          this.$message({
-            type: "success",
-            message: "操作成功!"
-          });
-          done();
-        }, error => {
-          loading();
-          window.console.log(error);
-        });
-      },
-      syncFloor(row){
-
-        syncFloor(row.oldId).then(() => {
-          this.onLoad(this.page);
-          this.$message({
-            type: "success",
-            message: "操作成功!"
-          });
-          done();
-        }, error => {
-          loading();
-          window.console.log(error);
-        });
-      },
-      syncRoom(row){
-
-        syncRoom(row.oldId).then(() => {
-          this.onLoad(this.page);
-          this.$message({
-            type: "success",
-            message: "操作成功!"
-          });
-          done();
-        }, error => {
-          loading();
-          window.console.log(error);
-        });
-      },
-      closeManage() {
-        this.manageVisible = false;
-      },
-      manage(row) {
-        this.selectedResidentialId = row.id;
-        this.selectedResidentialName = row.name;
-        console.log("id:" + this.selectedResidentialId + "  name" + this.selectedResidentialName)
-        this.manageVisible = true;
-        this.$nextTick(() => {
-          this.$refs.resMang.init();
-        })
-      },
-      edit(row) {
-        this.editForm = row;
-        this.editVisible = true;
-      },
-      detail(row) {
-        this.detailForm = row;
-        this.detailVisible = true;
-      },
-
       rowSave(row, done, loading) {
-
         add(row).then(() => {
           this.onLoad(this.page);
           this.$message({
@@ -637,24 +276,8 @@
           window.console.log(error);
         });
       },
-      submitResidential(row,done, loading) {
-        update(this.editForm).then(() => {
-          this.onLoad(this.page);
-          this.editVisible = false;
-          this.$message({
-            type: "success",
-            message: "操作成功!"
-          });
-          done();
-        }, error => {
-          loading();
-          console.log(error);
-        });
-      },
       rowUpdate(row, index, done, loading) {
-        row.isUpdateOrg = false;
-        updateResidential(row).then(() => {
-          // update(row).then(() => {
+        update(row).then(() => {
           this.onLoad(this.page);
           this.$message({
             type: "success",
@@ -667,15 +290,11 @@
         });
       },
       rowDel(row) {
-        if (row.unitNumber > 0) {
-          this.$message.error("请先删除其下单元和其他数据")
-          return
-        }
         this.$confirm("确定将选择数据删除?", {
-            confirmButtonText: "确定",
-            cancelButtonText: "取消",
-            type: "warning"
-          })
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        })
           .then(() => {
             return remove(row.id);
           })
@@ -693,10 +312,10 @@
           return;
         }
         this.$confirm("确定将选择数据删除?", {
-            confirmButtonText: "确定",
-            cancelButtonText: "取消",
-            type: "warning"
-          })
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        })
           .then(() => {
             return remove(this.ids);
           })
@@ -710,17 +329,10 @@
           });
       },
       beforeOpen(done, type) {
-        let _this = this;
         if (["edit", "view"].includes(type)) {
-          // getResidentialDetail(this.form.id).then(res => {
-          //   _this.form = res.data.data;
-          //   let region = [];
-          //   region.push(_this.form.regionProvince);
-          //   region.push(_this.form.regionCity);
-          //   region.push(_this.form.regionArea);
-          //
-          //   _this.form.region = region;
-          // });
+          getDetail(this.form.id).then(res => {
+            this.form = res.data.data;
+          });
         }
         done();
       },
@@ -741,10 +353,10 @@
         this.selectionList = [];
         this.$refs.crud.toggleSelection();
       },
-      currentChange(currentPage) {
+      currentChange(currentPage){
         this.page.currentPage = currentPage;
       },
-      sizeChange(pageSize) {
+      sizeChange(pageSize){
         this.page.pageSize = pageSize;
       },
       refreshChange() {
@@ -759,23 +371,10 @@
           this.loading = false;
           this.selectionClear();
         });
-        // getResidentialList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
-        //   const data = res.data.data;
-        //   this.page.total = Number.parseInt(data.total);
-        //   this.data = data.records;
-        //   this.loading = false;
-        //   this.selectionClear();
-        // });
-
-
-      },
-
+      }
     }
   };
 </script>
 
-<style scoped>
-  >>>.el-cascader-menu__wrap {
-    height: 300px !important;
-  }
+<style>
 </style>

+ 0 - 1427
src/views/community/residentialManage.vue

@@ -1,1427 +0,0 @@
-<template v-if="visible">
-  <basic-container>
-    <el-container style="height: 700px; border: 1px solid #eee">
-      <div style="position: fixed;right: 120px;top: 25px;">
-        <el-button type="danger" icon="el-icon-plus" @click="batchVisible = true">批量新增</el-button>
-      </div>
-      <el-aside width="200px" style="background-color: rgb(238, 241, 246)">
-        <el-tree :props="treeOption" :data="treeData" :expand-on-click-node="false"   @node-click="nodeClick"  >
-           <span class="custom-tree-node" slot-scope="{ node, data }">
-            <span>{{ node.label }}</span>
-            <el-popover
-              placement="right"
-              width="200"
-              trigger="hover"
-            >
-              <span slot="reference">
-                <i class="el-icon-arrow-down"></i>
-              </span>
-              <div style="display: grid">
-                <el-link :underline="false" type="primary">添加下一级</el-link>
-                <el-link :underline="false" type="primary">修改</el-link>
-                <el-link :underline="false" type="danger">删除</el-link>
-              </div>
-            </el-popover>
-          </span>
-        </el-tree>
-      </el-aside>
-      <el-main>
-        <avue-crud
-          :data="data"
-          :option="option"
-          :table-loading="loading"
-          :permission="permissionDataList"
-          ref="crud"
-          v-model="form"
-          :before-open="beforeOpen"
-          @row-update="rowDataUpdate"
-          @row-save="rowDataSave"
-          @row-del="rowDataDel"
-        >
-        </avue-crud>
-      </el-main>
-    </el-container>
-
-    <!-- <el-row>
-       <el-col style="margin-right: 5px; padding-right: 10px; width: 25%;border: 1px solid #0073EB;">
-         <el-tree :props="treeOption" :data="treeData" :expand-on-click-node="false"   @node-click="nodeClick"></el-tree>
-       </el-col>
-      <el-col style="width: 70%;">
-         <avue-crud
-           :data="data"
-           :option="option"
-           :table-loading="loading"
-           :permission="permissionDataList"
-           ref="crud"
-           v-model="form"
-           :before-open="beforeOpen"
-           @row-update="rowDataUpdate"
-           @row-save="rowDataSave"
-           @row-del="rowDataDel"
-         >
-         </avue-crud>
-       </el-col>
-     </el-row> -->
-
-    <el-dialog title="批量新增" :append-to-body="true" :close-on-click-modal="false" :modal-append-to-body="false" width="90%" :visible.sync="batchVisible" center>
-      <el-form :inline="true" :rules="batchRules" ref="batchForm" :model="batchForm" label-width="100px">
-        <el-row>
-          <el-form-item label="楼栋区间" required>
-            <el-col :span="11">
-              <el-form-item prop="buildingBegin">
-                <el-input v-model="batchForm.buildingBegin"></el-input>
-              </el-form-item>
-            </el-col>
-            <el-col class="line" style="width: 15px" :span="2">-</el-col>
-            <el-col :span="11">
-              <el-form-item prop="buildingEnd">
-                <el-input v-model="batchForm.buildingEnd"></el-input>
-              </el-form-item>
-            </el-col>
-          </el-form-item>
-          <el-form-item label="前后缀规则">
-            <el-col :span="11">
-              <el-form-item prop="date1">
-                <el-input placeholder="前缀" v-model="batchForm.buildingPrefix" style="width: 100%;"></el-input>
-              </el-form-item>
-            </el-col>
-            <el-col class="line" style="width: 15px" :span="2">-</el-col>
-            <el-col :span="11">
-              <el-form-item prop="date2">
-                <el-input placeholder="后缀" v-model="batchForm.buildingSuffix" style="width: 100%;"></el-input>
-              </el-form-item>
-            </el-col>
-          </el-form-item>
-        </el-row>
-        <el-row>
-          <el-form-item label="单元区间" required>
-            <el-col :span="11">
-              <el-form-item prop="unitBegin">
-                <el-input v-model="batchForm.unitBegin"></el-input>
-              </el-form-item>
-            </el-col>
-            <el-col class="line" style="width: 15px" :span="2">-</el-col>
-            <el-col :span="11">
-              <el-form-item prop="unitEnd">
-                <el-input v-model="batchForm.unitEnd"></el-input>
-              </el-form-item>
-            </el-col>
-          </el-form-item>
-          <el-form-item label="前后缀规则">
-            <el-col :span="11">
-              <el-form-item prop="date1">
-                <el-input placeholder="前缀" v-model="batchForm.unitPrefix" style="width: 100%;"></el-input>
-              </el-form-item>
-            </el-col>
-            <el-col class="line" style="width: 15px" :span="2">-</el-col>
-            <el-col :span="11">
-              <el-form-item prop="date2">
-                <el-input placeholder="后缀" v-model="batchForm.unitSuffix" style="width: 100%;"></el-input>
-              </el-form-item>
-            </el-col>
-          </el-form-item>
-        </el-row>
-        <el-row>
-          <el-form-item label="楼层区间" required>
-            <el-col :span="11">
-              <el-form-item prop="floorBegin">
-                <el-input v-model="batchForm.floorBegin"></el-input>
-              </el-form-item>
-            </el-col>
-            <el-col class="line" style="width: 15px" :span="2">-</el-col>
-            <el-col :span="11">
-              <el-form-item prop="floorEnd">
-                <el-input v-model="batchForm.floorEnd"></el-input>
-              </el-form-item>
-            </el-col>
-          </el-form-item>
-          <el-form-item label="前后缀规则">
-            <el-col :span="11">
-              <el-form-item prop="date1">
-                <el-input placeholder="前缀" v-model="batchForm.floorPrefix" style="width: 100%;"></el-input>
-              </el-form-item>
-            </el-col>
-            <el-col class="line" style="width: 15px" :span="2">-</el-col>
-            <el-col :span="11">
-              <el-form-item prop="date2">
-                <el-input placeholder="后缀" v-model="batchForm.floorSuffix" style="width: 100%;"></el-input>
-              </el-form-item>
-            </el-col>
-          </el-form-item>
-          <el-form-item label="排除楼层" :span="2">
-            <el-input style="width: 100%;" v-model="batchForm.floorExclude"></el-input>
-          </el-form-item>
-        </el-row>
-        <el-row>
-          <el-form-item label="房屋区间" required>
-            <el-col :span="11">
-              <el-form-item prop="roomBegin">
-                <el-input v-model="batchForm.roomBegin"></el-input>
-              </el-form-item>
-            </el-col>
-            <el-col class="line" style="width: 15px" :span="2">-</el-col>
-            <el-col :span="11">
-              <el-form-item prop="roomEnd">
-                <el-input v-model="batchForm.roomEnd"></el-input>
-              </el-form-item>
-            </el-col>
-          </el-form-item>
-          <el-form-item label="前后缀规则">
-            <el-col :span="11">
-              <el-form-item prop="date1">
-                <el-input placeholder="前缀" v-model="batchForm.roomPrefix" style="width: 100%;"></el-input>
-              </el-form-item>
-            </el-col>
-            <el-col class="line" style="width: 15px" :span="2">-</el-col>
-            <el-col :span="11">
-              <el-form-item prop="date2">
-                <el-input placeholder="后缀" v-model="batchForm.roomSuffix" style="width: 100%;"></el-input>
-              </el-form-item>
-            </el-col>
-          </el-form-item>
-          <el-form-item label="排除房屋" :span="2">
-            <el-input style="width: 100%;" v-model="batchForm.roomExclude"></el-input>
-          </el-form-item>
-        </el-row>
-        <div style="text-align: center">
-          <el-button type="primary" @click="batchAdd" :disabled="batchDisabled" :icon="batchIcon">{{batchText}}</el-button>
-        </div>
-      </el-form>
-    </el-dialog>
-  </basic-container>
-</template>
-
-<script>
-  import { getList as getBuildingListByResidentialOldId,add as buildingAdd,getDetail as buildingGetDetail,update as buildingUpdate,remove as buildingRemove } from '../../api/community/building.js';
-  import { getList as getUnitListByBuildingOldId } from "../../api/community/unit.js";
-  import { getList as getFloorListByUnitOldId } from "../../api/community/floor.js";
-  import { getList as getRoomListByFloorOldId } from "../../api/community/room.js";
-  import { mapGetters } from 'vuex';
-  import Log from '../../api/tool/MyLog.js';
-  import ArrUtil from '../../api/tool/ArrUtil.js';
-
-  import {batchAddSubmit} from "@/api/community/building";
-
-  export default {
-    props:{
-      residentialId: "",
-      residentialName: "",
-      visible: false
-    },
-    data() {
-      return {
-        permissionDataList: [],
-        loading: false,
-        batchVisible: false,
-        batchIcon: 'el-icon-circle-plus-outline',
-        batchDisabled: false,
-        batchText: '提交',
-        typeParent: 'parent',
-        typeBuilding: 'building',
-        typeUnit: 'unit',
-        typeFloor: 'floor',
-        typeRoom: 'room',
-        form: {},
-        batchForm: {},
-        batchRules: {
-          buildingBegin: [
-            { required: true, message: '请输入楼栋区间', trigger: 'blur' },
-          ],
-          buildingEnd: [
-            { required: true, message: '请输入楼栋区间', trigger: 'blur' },
-          ],
-          unitBegin: [
-            { required: true, message: '请输入单元区间', trigger: 'blur' },
-          ],
-          unitEnd: [
-            { required: true, message: '请输入单元区间', trigger: 'blur' },
-          ],
-          floorBegin: [
-            { required: true, message: '请输入楼层区间', trigger: 'blur' },
-          ],
-          floorEnd: [
-            { required: true, message: '请输入楼层区间', trigger: 'blur' },
-          ],
-          roomBegin: [
-            { required: true, message: '请输入房屋区间', trigger: 'blur' },
-          ],
-          roomEnd: [
-            { required: true, message: '请输入房屋区间', trigger: 'blur' },
-          ],
-        },
-        treeData: [],
-        treeOption:{
-          label:"name",
-          value: "id",
-          children: "children"
-        },
-
-
-        // treeOption: {
-        //   nodeKey: 'id',
-        //   addBtn: false,
-        //   menu: false,
-        //   props: {
-        //     label: 'name',
-        //     value: 'id',
-        //     children: 'children'
-        //   }
-        // },
-        optionBuilding: {
-          labelWidth: 100,
-          tip: false,
-          viewBtn: true,
-          selection: false,
-          border: true,
-          column: [
-            {
-              label: '楼栋名称',
-              prop: 'name',
-              rules: [
-                {
-                  required: true,
-                  message: '请输入楼房名称',
-                  trigger: 'blur'
-                }
-              ]
-            },
-            {
-
-              prop: 'residentialId',
-              display: false,
-              hide: true,
-              rules: [
-                {
-                  required: true,
-                  message: '请输入楼房名称',
-                  trigger: 'blur'
-                }
-              ]
-            },
-            {
-              label: "图片",
-              prop: "pic",
-              type: 'upload',
-              hide: true,
-              propsHttp: {
-                url: 'data'
-              },
-              listType: 'picture-img',
-              span: 24,
-              row: true,
-              action: "/api/upload/putfile",
-              display: true,
-              rules: [{
-                required: false,
-                message: "请输入封面图片",
-                trigger: "blur"
-              }]
-            },
-            {
-              label: '单元总数',
-              prop: 'unitNumber',
-              display: false,
-              rules: [
-                {
-                  required: false,
-                  message: '请输入楼房编号',
-                  trigger: 'blur'
-                }
-              ]
-            },
-            {
-              label: '楼层总数',
-              prop: 'floorNumber',
-              display: false,
-              rules: [
-                {
-                  required: true,
-                  message: '请输入楼房层数',
-                  trigger: 'blur'
-                }
-              ]
-            },
-            {
-              label: '房间总数',
-              prop: 'roomNumber',
-              display: false,
-              rules: [
-                {
-                  required: true,
-                  message: '请输入房间数量',
-                  trigger: 'blur'
-                }
-              ]
-            },
-            {
-              label: '住户总数',
-              prop: 'userNumber',
-              hide: true,
-              display: false,
-              rules: [
-                {
-                  required: false,
-                  message: '请输入楼房地址',
-                  trigger: 'blur'
-                }
-              ]
-            },
-            {
-              prop: 'type',
-              value: 'building',
-              disabled: true,
-              hide: true,
-              display: false
-            }
-          ]
-        },
-        optionUnit: {
-          labelWidth: 100,
-          tip: false,
-          // addBtn: true,
-          viewBtn: true,
-          selection: false,
-          border: true,
-          column: [
-            {
-              label: "所属社区",
-              prop: "agencyId",
-              hide: true,
-              display: false,
-              rules: [{
-                required: true,
-                message: "请选择所属社区",
-                trigger: "blur"
-              }]
-            },
-            {
-              label: "所属小区",
-              prop: "residentialId",
-              hide: true,
-              display: false,
-              rules: [{
-                required: true,
-                message: "请选择所属小区",
-                trigger: "blur"
-              }]
-            },
-            {
-              label: "所属楼栋",
-              prop: "buildingId",
-              hide: true,
-              display: false,
-              rules: [{
-                required: true,
-                message: "请选择所属小区",
-                trigger: "blur"
-              }]
-            },
-            {
-              label: '单元名称',
-              prop: 'name',
-              maxlength: 10,
-              showWordLimit: true,
-              rules: [
-                {
-                  required: true,
-                  message: '请输入楼层名称',
-                  trigger: 'blur'
-                }
-              ]
-            },
-            {
-              label: "图片",
-              prop: "pic",
-              type: 'upload',
-              hide: true,
-              propsHttp: {
-                url: 'data'
-              },
-              listType: 'picture-img',
-              span: 24,
-              row: true,
-
-              action: "/api/upload/putfile",
-              display: true,
-              rules: [{
-                required: false,
-                message: "请输入封面图片",
-                trigger: "blur"
-              }]
-            },
-            {
-              label: "负责人姓名",
-              prop: "personName",
-              labelWidth: 110,
-              hide: true,
-              rules: [{
-                required: true,
-                message: "请输入负责人姓名",
-                trigger: "blur"
-              }]
-            }, {
-              label: "负责人电话",
-              prop: "personTel",
-              labelWidth: 110,
-              hide: true,
-              rules: [{
-                required: true,
-                message: "请输入负责人电话",
-                trigger: "blur"
-              }]
-            }, {
-              label: "建筑年代",
-              prop: "builtYear",
-              hide: true,
-            }, {
-              label: "产权性质",
-              prop: "propertyNature",
-              hide: true,
-            },
-            // {
-            //   label: "有无电梯",
-            //   prop: "includingElevator",
-            //   hide: true,
-            //   type: "select",
-            //   search: true,
-            //   dicUrl: "/api/blade-system/dict-biz/dictionary?code=including_elevator",
-            //   props: {
-            //     label: "dictValue",
-            //     value: "dictKey"
-            //   },
-            // },
-            {
-              label: "楼层数量",
-              prop: "floorNumber",
-              display: false
-            },
-            {
-              label: "房间数量",
-              prop: "roomNumber",
-              display: false
-            },
-            {
-              label: "住户数量",
-              prop: "userNumber",
-              display: false,
-              hide: true,
-            },
-            {
-              prop: 'type',
-              value: 'unit',
-              disabled: true,
-              hide: true,
-              display: false,
-            }
-          ]
-        },
-        optionFloor: {
-          labelWidth: 100,
-          tip: false,
-          viewBtn: true,
-          selection: false,
-          border: true,
-          column: [
-            {
-              label: '所属单元',
-              prop: 'unitId',
-              type: 'select',
-              dicData: [],
-              disabled: true,
-              hide: true,
-              props: {
-                label: 'name',
-                value: 'id'
-              },
-              rules: [
-                {
-                  required: true,
-                  message: '请选择所属楼房',
-                  trigger: 'blur'
-                }
-              ]
-            },
-            {
-              label: "所属小区",
-              prop: "residentialId",
-              hide: true,
-              // slot: true,
-              cascaderItem: ['buildingId'],
-              type: "select",
-              dicUrl: "/api/community/residential/list?size=900000000",
-              filterable: true,
-              props: {
-                label: "name",
-                value: "id"
-              },
-              dicFormatter: (res) => {
-                return res.data.records;
-              },
-              rules: [{
-                required: true,
-                message: "请选择所属小区",
-                trigger: "blur"
-              }]
-            },
-            {
-              label: "所属楼栋",
-              prop: "buildingId",
-              // slot: true,
-              type: "select",
-              dicUrl: `/api/building/building/list?size=500&residentialId={{key}}`,
-              filterable: true,
-              props: {
-                label: "name",
-                value: "id"
-              },
-              dicFormatter: (res) => {
-                return res.data.records;
-              },
-              rules: [{
-                required: true,
-                message: "请选择所属小区",
-                trigger: "blur"
-              }]
-            },
-            {
-              label: '楼层名称',
-              prop: 'name',
-              rules: [
-                {
-                  required: true,
-                  message: '请输入房间名称',
-                  trigger: 'blur'
-                }
-              ]
-            },
-            {
-              label: '房间类型',
-              prop: 'roomTypeId',
-              type: 'select',
-              hide: true,
-              dicData: [],
-              props: {
-                label: 'name',
-                value: 'id'
-              },
-              rules: [
-                {
-                  required: true,
-                  message: '请输入房间类型',
-                  trigger: 'blur'
-                }
-              ]
-            },
-            {
-              label: "负责人姓名",
-              prop: "personName",
-              hide: true,
-              rules: [{
-                required: true,
-                message: "请输入负责人姓名",
-                trigger: "blur"
-              }]
-            },
-            {
-              label: "负责人电话",
-              prop: "personTel",
-              hide: true,
-              rules: [{
-                required: true,
-                message: "请输入负责人电话",
-                trigger: "blur"
-              }]
-            },
-            {
-              label: "建筑年代",
-              prop: "builtYear",
-              hide: true,
-              rules: [{
-                required: true,
-                message: "请输入建筑年代",
-                trigger: "blur"
-              }]
-            },
-            {
-              label: "产权性质",
-              prop: "propertyNature",
-              hide: true,
-              rules: [{
-                required: true,
-                message: "请输入产权性质",
-                trigger: "blur"
-              }]
-            },
-            {
-              label: "有无电梯",
-              prop: "includingElevator",
-              hide: true,
-              rules: [{
-                required: true,
-                message: "请输入有无电梯",
-                trigger: "blur"
-              }]
-            },
-            {
-              label: "房间数量",
-              prop: "roomNumber",
-
-              rules: [{
-                required: true,
-                message: "请输入房间数量",
-                trigger: "blur"
-              }]
-            },
-            {
-              label: "住户数量",
-              prop: "userNumber",
-              hide: true,
-              rules: [{
-                required: true,
-                message: "请输入住户数量",
-                trigger: "blur"
-              }]
-            },
-            {
-              prop: 'type',
-              value: 'buildingRoom',
-              disabled: true,
-              hide: true,
-              display: false,
-            }
-          ]
-        },
-        optionRoom: {
-          labelWidth: 100,
-          tip: false,
-          viewBtn: true,
-          selection: false,
-          border: true,
-          column: [
-            {
-              label: "门牌号 ",
-              prop: "name",
-              // search: true,
-              rules: [{
-                required: true,
-                message: "请输入门牌号-限制数字,单元楼下唯一  ",
-                trigger: "blur"
-              }]
-            },{
-              label: "所属社区",
-              prop: "agencyId",
-              slot: true,
-              hide: true,
-              type: "select",
-              // search: true,
-              dicUrl: "/api/agency/agency/list",
-              cascaderItem: ['residentialId','unitId'],
-              props: {
-                label: "agencyName",
-                value: "id"
-              },
-              dicFormatter: (res)=>{
-                return res.data.records;
-              },
-              rules: [{
-                required: true,
-                message: "请选择所属社区",
-                trigger: "blur"
-              }]
-            },{
-              label: "所属小区",
-              prop: "residentialId",
-              // slot: true,
-              type: "select",
-              hide: true,
-              // search: true,
-              cascaderIndex:0,
-              // dicUrl: "/grid/estate/getResidentialList",
-              dicUrl: "/api/community/residential/list?agencyId={{key}}",
-              dicFormatter: (res)=>{
-                return res.data.records;
-              },
-              dicFlag: false,
-              props: {
-                label: "name",
-                value: "id"
-              },
-              rules: [{
-                required: true,
-                message: "请输入所属小区名称",
-                trigger: "blur"
-              }]
-            },
-            {
-              label: "所属楼栋",
-              prop: "buildingId",
-              // slot: true,
-              hide: true,
-              type: "select",
-              // search: true,
-              dicFlag: false,
-              cascaderIndex:1,
-              // dicUrl: "/grid/estate/getUnitList",
-              dicUrl: "/api/community/unit/list?residentialId={{key}}",
-              dicFormatter: (res)=>{
-                return res.data.records;
-              },
-              props: {
-                label: "name",
-                value: "id"
-              },
-              rules: [{
-                required: true,
-                message: "请输入所属单元名称",
-                trigger: "blur"
-              }]
-            },
-            {
-              label: "所属单元",
-              prop: "unitId",
-              // slot: true,
-              type: "select",
-              // search: true,
-              dicFlag: false,
-              cascaderIndex:1,
-              // dicUrl: "/grid/estate/getUnitList",
-              dicUrl: "/api/community/unit/list?residentialId={{key}}",
-              dicFormatter: (res)=>{
-                return res.data.records;
-              },
-              props: {
-                label: "name",
-                value: "id"
-              },
-              rules: [{
-                required: true,
-                message: "请输入所属单元名称",
-                trigger: "blur"
-              }]
-            },
-            {
-              label: "所属楼层",
-              prop: "floorId",
-              // slot: true,
-              hide: true,
-              type: "select",
-              // search: true,
-              dicFlag: false,
-              cascaderIndex:1,
-              // dicUrl: "/grid/estate/getUnitList",
-              dicUrl: "/api/community/unit/list?residentialId={{key}}",
-              dicFormatter: (res)=>{
-                return res.data.records;
-              },
-              props: {
-                label: "name",
-                value: "id"
-              },
-              rules: [{
-                required: true,
-                message: "请输入所属单元名称",
-                trigger: "blur"
-              }]
-            },
-            {
-              label: "房屋面积",
-              prop: "area",
-              hide: true,
-            },{
-              label: "入住用户数量",
-              prop: "userNumber",
-              display: false,
-            },
-            {
-              label: "户型",
-              prop: "houseType",
-              hide: true,
-              type: "select",
-              // search: true,
-              dicUrl: "/api/blade-system/dict-biz/dictionary?code=house_type",
-              props: {
-                label: "dictValue",
-                value: "dictKey"
-              },
-            },
-            {
-              label: "楼层",
-              prop: "floor",
-              hide: true,
-            },
-            {
-              label: "装饰",
-              prop: "ornament",
-              hide: true,
-            },
-            {
-              label: "房屋朝向",
-              prop: "orientation",
-              hide: true,
-            },{
-              label: "序号",
-              prop: "serial",
-              value: 1,
-              hide: true,
-              display: false,
-            }, {
-              label: "备注",
-              prop: "remark",
-              hide: true,
-            },
-            {
-              label: "创建时间",
-              prop: "createTime",
-              hide: true,
-              type: "datetime",
-              valueFormat: "yyyy-MM-dd HH:mm:ss",
-              display: false,
-            },
-            {
-              prop: 'type',
-              valueDefault: 'bed',
-              disabled: true,
-              hide: true,
-              display: false,
-            }
-          ]
-        },
-        data: [],
-        option: {
-          tip: false,
-          viewBtn: true,
-          selection: false,
-          column: []
-        }
-      };
-    },
-
-    mounted() {
-
-    },
-    computed: {
-      ...mapGetters(['permission']),
-      permissionBuildingList() {
-        return {
-          addBtn: this.vaildData(this.permission.building_add, false),
-          viewBtn: this.vaildData(this.permission.building_view, false),
-          delBtn: this.vaildData(this.permission.building_delete, false),
-          editBtn: this.vaildData(this.permission.building_edit, false)
-        };
-      },
-      permissionBuildinglayerList() {
-        return {
-          addBtn: this.vaildData(this.permission.buildinglayer_add, false),
-          viewBtn: this.vaildData(this.permission.buildinglayer_view, false),
-          delBtn: this.vaildData(this.permission.buildinglayer_delete, false),
-          editBtn: this.vaildData(this.permission.buildinglayer_edit, false)
-        };
-      },
-      permissionBuildingroomList() {
-        return {
-          addBtn: this.vaildData(this.permission.buildingroom_add, false),
-          viewBtn: this.vaildData(this.permission.buildingroom_view, false),
-          delBtn: this.vaildData(this.permission.buildingroom_delete, false),
-          editBtn: this.vaildData(this.permission.buildingroom_edit, false)
-        };
-      },
-      permissionBedList() {
-        return {
-          addBtn: this.vaildData(this.permission.bed_add, false),
-          viewBtn: this.vaildData(this.permission.bed_view, false),
-          delBtn: this.vaildData(this.permission.bed_delete, false),
-          editBtn: this.vaildData(this.permission.bed_edit, false)
-        };
-      },
-      permissionTreeList() {
-        return {
-          addBtn: this.vaildData(this.permission.building_add, false),
-          viewBtn: this.vaildData(this.permission.building_view, false),
-          delBtn: this.vaildData(this.permission.building_delete, false),
-          editBtn: this.vaildData(this.permission.building_edit, false)
-        };
-      },
-      permissionDataList() {
-        return {
-          addBtn: this.vaildData(this.permission.building_add, false),
-          viewBtn: this.vaildData(this.permission.building_view, false),
-          delBtn: this.vaildData(this.permission.building_delete, false),
-          editBtn: this.vaildData(this.permission.building_edit, false)
-        };
-      },
-      ids() {
-        let ids = [];
-        this.selectionList.forEach(ele => {
-          ids.push(ele.id);
-        });
-        return ids.join(',');
-      }
-    },
-    methods: {
-      init(){
-        this.option = this.optionBuilding;
-        this.treeData = [{ id: this.residentialId, type: this.typeParent, name: this.residentialName, children: [] }];
-        this.onLoadBuilding(this.residentialId);
-      },
-      rowDataSave(row, loading, done) {
-        row.residentialId = this.residentialId;
-        row.residentialName = this.residentialName;
-        if (row.type == this.typeBuilding) {
-          buildingAdd(row).then(
-            () => {
-              loading();
-              this.onLoadBuilding(this.residentialId);
-              this.$message({ type: 'success', message: '操作成功!' });
-            },
-            error => {
-              done();
-              Log.d(error);
-            }
-          );
-        } else if (row.type == this.typeBuildingLayer) {
-          buildingLayerAdd(row).then(
-            () => {
-              loading();
-              this.onLoadUnit(row.buildingId);
-              this.$message({ type: 'success', message: '操作成功!' });
-            },
-            error => {
-              done();
-              Log.d(error);
-            }
-          );
-        } else if (row.type == this.typeBuildingRoom) {
-          buildingRoomAdd(row).then(
-            () => {
-              loading();
-              this.onLoadFloor(row.buildingId, row.buildingLayerId);
-              this.$message({ type: 'success', message: '操作成功!' });
-            },
-            error => {
-              done();
-              Log.d(error);
-            }
-          );
-        } else if (row.type == this.typeBed) {
-          bedAdd(row).then(
-            () => {
-              loading();
-              this.onLoadRoom(row.buildingId, row.buildingLayerId, row.buildingRoomId);
-              this.$message({ type: 'success', message: '操作成功!' });
-            },
-            error => {
-              done();
-              Log.d(error);
-            }
-          );
-        }
-      },
-      rowDataUpdate(row, index, loading, done) {
-        if (row.type == this.typeBuilding) {
-          buildingUpdate(row).then(
-            () => {
-              loading();
-              this.onLoadBuilding(this.residentialId);
-              this.$message({ type: 'success', message: '操作成功!' });
-            },
-            error => {
-              done();
-              Log.d(error);
-            }
-          );
-        } else if (row.type == this.typeBuildingLayer) {
-          buildingLayerUpdate(row).then(
-            () => {
-              loading();
-              this.onLoadUnit(row.buildingId);
-              this.$message({ type: 'success', message: '操作成功!' });
-            },
-            error => {
-              done();
-              Log.d(error);
-            }
-          );
-        } else if (row.type == this.typeBuildingRoom) {
-          buildingRoomUpdate(row).then(
-            () => {
-              loading();
-              this.onLoadFloor(row.buildingId, row.buildingLayerId);
-              this.$message({ type: 'success', message: '操作成功!' });
-            },
-            error => {
-              done();
-              Log.d(error);
-            }
-          );
-        } else if (row.type == this.typeBed) {
-          bedUpdate(row).then(
-            () => {
-              loading();
-              this.onLoadRoom(row.buildingId, row.buildingLayerId, row.buildingRoomId);
-              this.$message({ type: 'success', message: '操作成功!' });
-            },
-            error => {
-              done();
-              Log.d(error);
-            }
-          );
-        }
-      },
-      rowDataDel(row) {
-        this.$confirm('确定将选择数据删除?', {
-          confirmButtonText: '确定',
-          cancelButtonText: '取消',
-          type: 'warning'
-        })
-          .then(() => {
-            Log.e(row);
-            if (row.type == this.typeBuilding) {
-              return buildingRemove(row.id);
-            } else if (row.type == this.typeBuildingLayer) {
-              return buildingLayerRemove(row.id);
-            } else if (row.type == this.typeBuildingRoom) {
-              return buildingRoomRemove(row.id);
-            } else if (row.type == this.typeBed) {
-              return bedRemove(row.id);
-            }
-          })
-          .then(() => {
-            if (row.type == this.typeBuilding) {
-              this.onLoadBuilding(this.residentialId);
-            } else if (row.type == this.typeBuildingLayer) {
-              this.onLoadUnit(row.buildingId);
-            } else if (row.type == this.typeBuildingRoom) {
-              this.onLoadFloor(row.buildingId, row.buildingLayerId);
-            } else if (row.type == this.typeBed) {
-              this.onLoadRoom(row.buildingId, row.buildingLayerId, row.buildingRoomId);
-            }
-            this.$message({
-              type: 'success',
-              message: '操作成功!'
-            });
-          });
-      },
-      nodeClick(data) {
-        // Log.e('======data>>' + JSON.stringify(data));
-        if (data.type == this.typeParent) {
-          this.initBuildingDatas();
-        } else if (data.type == this.typeBuilding) {
-          console.log("获取单元树")
-          this.initUnitDatas(data);
-        } else if (data.type == this.typeUnit) {
-          console.log("获取楼层树")
-          console.log("所属单元名称:"+data.name)
-          // debugger
-          this.initFloorDatas(data);
-        } else if (data.type == this.typeFloor) {
-          console.log("获取房间树")
-          console.log("所属楼层:"+data.name)
-
-          this.initRoomDatas(data);
-        }
-      },
-      beforeOpen(done, type) {
-
-        console.log('------------->>>' + type);
-        console.log('------------->>>' + JSON.stringify(this.form));
-
-        if (['edit', 'view'].includes(type)) {
-          if (this.form.type == this.typeBuilding) {
-            buildingGetDetail(this.form.id).then(res => {
-              this.form = res.data.data;
-              this.form.type = this.typeBuilding;
-              this.$set(this, 'form', this.form);
-            });
-          } else if (this.form.type == this.typeBuildingLayer) {
-            buildingLayerGetDetail(this.form.id).then(res => {
-              this.form = res.data.data;
-              this.form.type = this.typeBuildingLayer;
-              this.$set(this, 'form', this.form);
-            });
-          } else if (this.form.type == this.typeBuildingRoom) {
-            buildingRoomGetDetail(this.form.id).then(res => {
-              this.form = res.data.data;
-              this.form.type = this.typeBuildingRoom;
-              this.$set(this, 'form', this.form);
-            });
-          } else if (this.form.type == this.typeBed) {
-            bedGetDetail(this.form.id).then(res => {
-              this.form = res.data.data;
-              this.form.type = this.typeBed;
-              this.$set(this, 'form', this.form);
-            });
-          }
-        }else{
-          this.form.pic = "/img/default/building.png"
-        }
-        done();
-      },
-
-      //加载右侧数据
-      onLoadBuilding(id,params={}) {
-        this.loading = true;
-
-        params.residentialId = id;
-        console.log("residential")
-        getBuildingListByResidentialOldId(1,99999999,params).then(res => {
-          this.data = res.data.data.records;
-          this.initTreeDatasByBuilding(this.data);
-          this.loading = false;
-        });
-      },
-      onLoadUnit(buildingId,params={}) {
-        this.loading = true;
-        params.buildingId = buildingId;
-        getUnitListByBuildingOldId(1,999999999,params).then(res => {
-          this.data = res.data.data.records;
-          this.initTreeDatasByUnit(this.data, buildingId);
-          this.loading = false;
-        });
-      },
-      onLoadFloor(buildingId, unitId,params={}) {
-        this.loading = true;
-        params.unitId = unitId;
-        getFloorListByUnitOldId(1,999999999,params).then(res => {
-          this.data = res.data.data.records;
-          this.initTreeDatasByFloor(this.data, buildingId, unitId);
-          this.loading = false;
-        });
-      },
-      onLoadRoom(buildingId, unitId, floorId,params={}) {
-        this.loading = true;
-        params.floorId = floorId;
-        console.log("楼层id:"+floorId)
-        getRoomListByFloorOldId(1, 99999999, params).then(res => {
-          this.data = res.data.data.records;
-          // debugger
-          for (let data of this.data) data.type = this.typeRoom;
-          this.initTreeDatasByRoom(this.data, buildingId, unitId, floorId);
-          this.loading = false;
-        });
-      },
-
-      // 点击左侧树形Item后初始化右侧数据
-      initBuildingDatas() {
-        //初始化楼栋
-        this.form = { type: this.typeBuilding };
-        this.$set(this, 'form', this.form);
-        this.$set(this, 'option', this.optionBuilding);
-        this.onLoadBuilding(this.residentialId);
-      },
-      initUnitDatas(data) {
-        //初始化单元
-        this.form = {
-          type: this.typeUnit,
-          buildingOldId: data.id
-        };
-        this.initUnitDicData(data.id, this.optionUnit);
-        this.$set(this, 'form', this.form);
-        this.$set(this, 'option', this.optionUnit);
-        this.onLoadUnit(data.id);
-      },
-      initFloorDatas(data) {
-        //初始化楼层
-        this.form = {
-          type: this.typeFloor,
-          buildingId: data.buildingId,
-          unitId: data.id
-        };
-        this.initFloorDicDatas(data.buildingId, data.id, this.optionFloor);
-        this.$set(this, 'form', this.form);
-        this.$set(this, 'option', this.optionFloor);
-        this.onLoadFloor(data.buildingId, data.id);
-      },
-      initRoomDatas(data) {
-        //初始化房间
-        this.form = {
-          type: this.typeRoom,
-          buildingId: data.buildingId,
-          unitId: data.unitId,
-          floorId: data.id
-        };
-        this.initRoomDicData(data.buildingId, data.unitId, data.id);
-        this.$set(this, 'form', this.form);
-        this.$set(this, 'option', this.optionRoom);
-
-        this.onLoadRoom(data.buildingId, data.unitId, data.id);
-      },
-
-      // 点击左侧树形Item后初始化右侧选择项目数据
-      initUnitDicData(buildingOldId, option) {
-        if (option == null) option = this.optionUnit;
-        //初始化上一级下拉数据
-        for (let column of option.column) {
-          if (column.prop == 'buildingId') {
-            column.valueDefault = buildingOldId;
-            column.dicData = this.treeData[0].children;
-            break;
-          }
-        }
-      },
-      initFloorDicDatas(buildingId, unitId, option) {
-        if (option == null) option = this.optionFloor;
-        // this.initFloorDicData(buildingId, option);
-        //初始化上一级下拉数据
-        for (let column of option.column) {
-          if (column.prop == 'unitId') {
-            column.valueDefault = unitId;
-            for (let building of this.treeData[0].children) {
-              if (building.id == buildingId) {
-                column.dicData = building.children;
-                break;
-              }
-            }
-            break;
-          }
-        }
-      },
-      initRoomDicData(buildingId, unitId, floorId) {
-        // this.initFloorDicData(buildingId, this.optionRoom);
-        this.initFloorDicDatas(buildingId, unitId, this.optionRoom);
-        //初始化上一级下拉数据
-        // for (let column of this.optionRoom.column) {
-        //   if (column.prop == 'buildingRoomId') {
-        //     column.valueDefault = roomId;
-        //     for (let building of this.treeData[0].children) {
-        //       if (building.id == buildingId) {
-        //         for (let layer of building.children) {
-        //           if (layer.id == layerId) {
-        //             column.dicData = layer.children;
-        //             break;
-        //           }
-        //         }
-        //         break;
-        //       }
-        //     }
-        //     break;
-        //   }
-        // }
-      },
-
-      // 初始化右侧数据后更新左侧树形数据
-      initTreeDatasByBuilding(datas) {
-        let treeData = [];
-        if (!ArrUtil.isNullOrLength(datas)) {
-          for (let data of datas) {
-            data.type = this.typeBuilding;
-            //初始化楼栋数据
-            treeData = ArrUtil.add(treeData, {
-              id: data.id,
-              type: "building",
-              leaf: false,
-              name: data.name,
-              children: [],
-              tag: data
-            });
-          }
-        }
-        this.treeData[0].children = treeData;
-      },
-      initTreeDatasByUnit(datas, buildingId) {
-        // debugger
-        for (let children of this.treeData[0].children) {
-          if (children.id == buildingId) {
-            this.optionUnit.addBtn = children.tag.floorNum > datas.length;
-            let treeData = [];
-            for (let data of datas) {
-              data.type = this.typeUnit;
-              treeData = ArrUtil.add(treeData, {
-                id: data.id,
-                buildingId: buildingId,
-                type: data.type,
-                name: data.name,
-                children: [],
-                tag: data
-              });
-            }
-            children.children = treeData;
-            break;
-          }
-        }
-      },
-      initTreeDatasByFloor(datas, buildingId, unitId) {
-        for (let building of this.treeData[0].children) {
-          if (building.id == buildingId) {
-            for (let layer of building.children) {
-              if (layer.id == unitId) {
-                this.optionFloor.addBtn = building.tag.roomNum > datas.length;
-                let treeData = [];
-                for (let data of datas) {
-                  data.type = this.typeFloor;
-                  treeData = ArrUtil.add(treeData, {
-                    id: data.id,
-                    buildingId: buildingId,
-                    unitId: unitId,
-                    type: data.type,
-                    name: data.name,
-                    children: [],
-                    tag: data
-                  });
-                }
-                layer.children = treeData;
-                break;
-              }
-            }
-            break;
-          }
-        }
-      },
-      initTreeDatasByRoom(datas, buildingId, unitId, floorId) {
-        for (let building of this.treeData[0].children) {
-          if (building.id == buildingId) {
-            for (let unit of building.children) {
-              if (unit.id == unitId) {
-                for (let floor of unit.children) {
-                  if (floor.id == floorId) {
-                    this.optionRoom.addBtn = floor.tag.bedNum > datas.length;
-
-                    let treeData = [];
-                    for (let data of datas) {
-                      data.type = this.typeRoom;
-                      treeData = ArrUtil.add(treeData, {
-                        id: data.id,
-                        buildingId: buildingId,
-                        unitId: unitId,
-                        floorId: floorId,
-                        type: data.type,
-                        name: data.name,
-                        children: [],
-                        tag: data
-                      });
-                    }
-                    floor.children = treeData;
-                    break;
-                  }
-                }
-                break;
-              }
-            }
-            break;
-          }
-        }
-      },
-      batchAdd(){
-
-        this.$refs['batchForm'].validate((valid) => {
-          if (valid) {
-            this.batchForm.residentialId = this.residentialId;
-            this.batchDisabled = true;
-            this.batchText = '正在创建中···';
-            this.batchIcon = 'el-icon-loading';
-
-            batchAddSubmit(this.batchForm).then(res => {
-              if (res.data.code == 200){
-                this.batchVisible = false;
-                this.init();
-              }else{
-                this.batchIcon = 'el-icon-circle-plus-outline';
-                this.batchText = '提交';
-                this.batchDisabled = false;
-              }
-            });
-          }
-        });
-      },
-    }
-  };
-</script>

+ 123 - 181
src/views/community/room.vue

@@ -3,7 +3,7 @@
     <avue-crud :option="option"
                :table-loading="loading"
                :data="data"
-               :page="page"
+               :page.sync="page"
                :permission="permissionList"
                :before-open="beforeOpen"
                v-model="form"
@@ -27,26 +27,13 @@
                    @click="handleDelete">删 除
         </el-button>
       </template>
-      <template slot="residentialId" slot-scope="scope">
-        <div>{{scope.row.residentialName}}</div>
-      </template>
-      <template slot="unitId" slot-scope="scope">
-        {{scope.row.unitName}}
-      </template>
-      <template slot="buildingId" slot-scope="scope">
-        {{scope.row.buildingName}}
-      </template>
-      <template slot="floorId" slot-scope="scope">
-        {{scope.row.floorName}}
-      </template>
     </avue-crud>
   </basic-container>
 </template>
 
 <script>
-  import {getList, getDetail, add, update, remove, getRoomList, getRoomDetail} from "@/api/community/room";
+  import {getList, getDetail, add, update, remove} from "@/api/community/room";
   import {mapGetters} from "vuex";
-  // import {roomData1} from "./data";
 
   export default {
     data() {
@@ -62,203 +49,177 @@
         selectionList: [],
         option: {
           height:'auto',
-          calcHeight: 60,
+          calcHeight: 30,
           tip: false,
           searchShow: true,
           searchMenuSpan: 6,
           border: true,
           index: true,
           viewBtn: true,
-          // delBtn: false,
           selection: true,
           dialogClickModal: false,
           column: [
-            // {
-            //   label: "房间名称",
-            //   prop: "name",
-            //   search: true,
-            //   rules: [{
-            //     required: true,
-            //     message: "请输入房间名称",
-            //     trigger: "blur"
-            //   }]
-            // },
             {
-              label: "门牌号 ",
+              label: "房间名称",
               prop: "name",
-              search: true,
               rules: [{
                 required: true,
-                message: "请输入门牌号-限制数字,单元楼下唯一  ",
+                message: "请输入房间名称",
                 trigger: "blur"
               }]
-            },{
-              label: "所属社区",
+            },
+            {
+              label: "社区id",
               prop: "agencyId",
-              slot: true,
-              hide: true,
-              display:false,
-              type: "select",
-              // search: true,
-              dicUrl: "/api/community/agency/list",
-              // cascaderItem: ['residentialId','unitId'],
-              props: {
-                label: "agencyName",
-                value: "id"
-              },
-              dicFormatter: (res)=>{
-                return res.data.records;
-              },
               rules: [{
                 required: true,
-                message: "请选择所属社区",
+                message: "请输入社区id",
                 trigger: "blur"
               }]
-            },{
-              label: "归属",
+            },
+            {
+              label: "社区名称",
+              prop: "agencyName",
+              rules: [{
+                required: true,
+                message: "请输入社区名称",
+                trigger: "blur"
+              }]
+            },
+            {
+              label: "小区id",
               prop: "residentialId",
-              slot: true,
-              type: "select",
-              search: true,
-              cascaderItem: ["buildingId"],
-              // dicUrl: "/grid/estate/getResidentialList",
-              remote: true,
-              //回显的时候有问题,如果所选不在前十条内,下拉框只会显示id
-              dicUrl: "/api/community/residential/select?name={{key}}",
-              // dicFlag: false,
-              props: {
-                label: "name",
-                value: "id"
-              },
               rules: [{
                 required: true,
-                message: "请输入归属",
+                message: "请输入小区id",
+                trigger: "blur"
+              }]
+            },
+            {
+              label: "小区名称",
+              prop: "residentialName",
+              rules: [{
+                required: true,
+                message: "请输入小区名称",
                 trigger: "blur"
               }]
             },
             {
-              label: "所属楼栋",
+              label: "楼栋id",
               prop: "buildingId",
-              cascaderItem: ["unitId"],
-              slot: true,
-              type: "select",
-              search: true,
-              dicFlag: false,
-              filterable: true,
-              dicUrl: "/api/community/building/list?select?residentialId={{key}}",
-              dicFormatter: (res)=>{
-                return res.data.records;
-              },
-              props: {
-                label: "name",
-                value: "id"
-              },
               rules: [{
                 required: true,
-                message: "请输入所属单元名称",
+                message: "请输入楼栋id",
                 trigger: "blur"
               }]
             },
             {
-              label: "所属单元",
+              label: "楼栋名称",
+              prop: "buildingName",
+              rules: [{
+                required: true,
+                message: "请输入楼栋名称",
+                trigger: "blur"
+              }]
+            },
+            {
+              label: "单元id",
               prop: "unitId",
-              slot: true,
-              type: "select",
-              search: true,
-              dicFlag: false,
-              cascaderItem: ["floorId"],
-              filterable: true,
-              dicUrl: "/api/community/unit/select?buildingId={{key}}",
-              dicFormatter: (res)=>{
-                return res.data.records;
-              },
-              props: {
-                label: "name",
-                value: "id"
-              },
               rules: [{
                 required: true,
-                message: "请输入所属单元名称",
+                message: "请输入单元id",
+                trigger: "blur"
+              }]
+            },
+            {
+              label: "单元名称",
+              prop: "unitName",
+              rules: [{
+                required: true,
+                message: "请输入单元名称",
                 trigger: "blur"
               }]
             },
             {
-              label: "所属楼层",
+              label: "楼层id",
               prop: "floorId",
-              slot: true,
-              type: "select",
-              search: true,
-              dicFlag: false,
-              // cascaderIndex:1,
-              // dicUrl: "/grid/estate/getUnitList",
-              dicUrl: "/api/community/floor/list?unitId={{key}}&size=900000",
-              dicFormatter: (res)=>{
-                return res.data.records;
-              },
-              props: {
-                label: "name",
-                value: "id"
-              },
               rules: [{
                 required: true,
-                message: "请输入所属单元名称",
+                message: "请输入楼层id",
+                trigger: "blur"
+              }]
+            },
+            {
+              label: "楼层名称",
+              prop: "floorName",
+              rules: [{
+                required: true,
+                message: "请输入楼层名称",
+                trigger: "blur"
+              }]
+            },
+            {
+              label: "房屋面积m2",
+              prop: "area",
+              rules: [{
+                required: true,
+                message: "请输入房屋面积m2",
                 trigger: "blur"
               }]
             },
             {
-                label: "房屋面积",
-                prop: "area",
-                hide: true,
-              },{
-                label: "入住用户数量",
-                prop: "userNumber",
-                hide: true,
-                display: false,
-              },
-              {
-                label: "户型",
-                prop: "houseType",
-                hide: true,
-                type: "select",
-                // search: true,
-                dicUrl: "/api/blade-system/dict-biz/dictionary?code=house_type",
-                props: {
-                  label: "dictValue",
-                  value: "dictKey"
-                },
-              },
-              {
-                label: "楼层",
-                prop: "floor",
-                hide: true,
-              },
-              {
-                label: "装饰",
-                prop: "ornament",
-                hide: true,
-              },
-              {
-                label: "房屋朝向",
-                prop: "orientation",
-                hide: true,
-             },{
-                label: "序号",
-                prop: "serial",
-                value: 1,
-                hide: true,
-                display: false,
-              }, {
-                label: "备注",
-                prop: "remark",
-                hide: true,
+              label: "户型",
+              prop: "houseType",
+              rules: [{
+                required: true,
+                message: "请输入户型",
+                trigger: "blur"
+              }]
             },
             {
-              label: "创建时间",
-              prop: "createTime",
-              hide: true,
-              type: "datetime",
-              valueFormat: "yyyy-MM-dd HH:mm:ss",
-              display: false,
+              label: "房屋朝向",
+              prop: "orientation",
+              rules: [{
+                required: true,
+                message: "请输入房屋朝向",
+                trigger: "blur"
+              }]
+            },
+            {
+              label: "住户数",
+              prop: "userCount",
+              rules: [{
+                required: true,
+                message: "请输入住户数",
+                trigger: "blur"
+              }]
+            },
+            {
+              label: "备注",
+              prop: "remark",
+              rules: [{
+                required: true,
+                message: "请输入备注",
+                trigger: "blur"
+              }]
+            },
+            {
+              label: "旧平台id",
+              prop: "oldId",
+              rules: [{
+                required: true,
+                message: "请输入旧平台id",
+                trigger: "blur"
+              }]
+            },
+            {
+              label: "机构路径",
+              prop: "orgPosition",
+              rules: [{
+                required: true,
+                message: "请输入机构路径",
+                trigger: "blur"
+              }]
             },
           ]
         },
@@ -285,7 +246,6 @@
     },
     methods: {
       rowSave(row, done, loading) {
-        row.userNumber = 0;
         add(row).then(() => {
           this.onLoad(this.page);
           this.$message({
@@ -299,7 +259,6 @@
         });
       },
       rowUpdate(row, index, done, loading) {
-        // done()
         update(row).then(() => {
           this.onLoad(this.page);
           this.$message({
@@ -313,9 +272,6 @@
         });
       },
       rowDel(row) {
-        if (row.userNumber > 0){
-          this.$message.error("请先删除该房间的住户和其他数据")
-        }
         this.$confirm("确定将选择数据删除?", {
           confirmButtonText: "确定",
           cancelButtonText: "取消",
@@ -390,18 +346,6 @@
       },
       onLoad(page, params = {}) {
         this.loading = true;
-
-
-        // getRoomList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
-        //   let data = res.data.data;
-        //   this.page.total = Number.parseInt(data.total);
-        //   this.data = data.records;
-        //   this.loading = false;
-        //   this.selectionClear();
-        // });
-        if (this.$route.query){
-          Object.assign(this.query,this.$route.query)
-        }
         getList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
           const data = res.data.data;
           this.page.total = data.total;
@@ -409,8 +353,6 @@
           this.loading = false;
           this.selectionClear();
         });
-
-
       }
     }
   };

+ 135 - 237
src/views/community/unit.vue

@@ -1,13 +1,23 @@
 <template>
   <basic-container>
-    <el-dialog :append-to-body="true" :close-on-click-modal="false" :modal-append-to-body="false" :visible.sync="editVisible"
-      title="单元编辑" width="80%">
-      <avue-form v-model="editForm" :option="option" @submit="submitUnit"></avue-form>
-    </el-dialog>
-    <avue-crud :option="option" :table-loading="loading" :data="data" :page="page" :permission="permissionList"
-      :before-open="beforeOpen" v-model="form" ref="crud" @row-update="rowUpdate" @row-save="rowSave" @row-del="rowDel"
-      @search-change="searchChange" @search-reset="searchReset" @selection-change="selectionChange" @current-change="currentChange"
-      @size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad">
+    <avue-crud :option="option"
+               :table-loading="loading"
+               :data="data"
+               :page.sync="page"
+               :permission="permissionList"
+               :before-open="beforeOpen"
+               v-model="form"
+               ref="crud"
+               @row-update="rowUpdate"
+               @row-save="rowSave"
+               @row-del="rowDel"
+               @search-change="searchChange"
+               @search-reset="searchReset"
+               @selection-change="selectionChange"
+               @current-change="currentChange"
+               @size-change="sizeChange"
+               @refresh-change="refreshChange"
+               @on-load="onLoad">
       <template slot="menuLeft">
         <el-button type="danger"
                    size="small"
@@ -17,60 +27,17 @@
                    @click="handleDelete">删 除
         </el-button>
       </template>
-      <template slot="menu" slot-scope="scope">
-        <el-button type="text" size="small" icon="el-icon-setting">
-          <el-dropdown @command="tip">
-            <span class="el-dropdown-link">
-              操作<i class="el-icon-arrow-down el-icon--right"> </i>
-            </span>
-            <el-dropdown-menu slot="dropdown">
-              <el-dropdown-item divided @click.native="edit(scope.row)" icon="el-icon-school">编辑</el-dropdown-item>
-              <el-dropdown-item divided @click.native="unitManage(scope.row.id,2)" icon="el-icon-s-home">楼层管理</el-dropdown-item>
-              <el-dropdown-item divided @click.native="unitManage(scope.row.id,3)" icon="el-icon-s-home">房间管理</el-dropdown-item>
-              <el-dropdown-item divided @click.native="unitManage(scope.row.id,4)" icon="el-icon-user-solid" v-if="permission.permanent_people_view">住户管理</el-dropdown-item>
-              <!-- <el-dropdown-item divided @click.native="tip(2,scope.row)">审核通过</el-dropdown-item> -->
-            </el-dropdown-menu>
-          </el-dropdown>
-        </el-button>
-        <!-- <el-button type="text" icon="el-icon-setting" size="mini" @click="manageResidential(scope.row.oldId)">管理</el-button> -->
-      </template>
-      <template slot="agencyId" slot-scope="scope">
-        <div>{{scope.row.agencyName}}</div>
-      </template>
-      <template slot="residentialId" slot-scope="scope">
-        <div>{{scope.row.residentialName}}</div>
-      </template>
-      <template slot="buildingId" slot-scope="scope">
-        <div>{{scope.row.buildingName}}</div>
-      </template>
     </avue-crud>
   </basic-container>
 </template>
 
 <script>
-  import {
-    getList,
-    getDetail,
-    add,
-    update,
-    remove,
-    getUnitList,
-    getUnitDetail
-  } from "@/api/community/unit";
-  import {
-    mapGetters
-  } from "vuex";
-  // import {
-  //   unitData1
-  // } from "./data";
-  import {communityManage} from "@/views/community/util/communityManage";
-  import form from "@/views/util/form";
+  import {getList, getDetail, add, update, remove} from "@/api/community/unit";
+  import {mapGetters} from "vuex";
 
   export default {
     data() {
       return {
-        editForm: {},
-        editVisible: false,
         form: {},
         query: {},
         loading: true,
@@ -81,24 +48,20 @@
         },
         selectionList: [],
         option: {
-          height: 'auto',
-          calcHeight: 60,
+          height:'auto',
+          calcHeight: 30,
           tip: false,
           searchShow: true,
           searchMenuSpan: 6,
           border: true,
           index: true,
-          viewBtn: false,
-          delBtn: true,
-          editBtn: false,
+          viewBtn: true,
           selection: true,
           dialogClickModal: false,
-          menuWidth: 200,
-          column: [{
+          column: [
+            {
               label: "单元名称",
               prop: "name",
-              search: true,
-              // hide: true,
               rules: [{
                 required: true,
                 message: "请输入单元名称",
@@ -106,190 +69,166 @@
               }]
             },
             {
-              label: "单元编号",
-              prop: "unitNumber",
-              display: false,
-              hide: true,
-              // search: true,
+              label: "社区id",
+              prop: "agencyId",
+              rules: [{
+                required: true,
+                message: "请输入社区id",
+                trigger: "blur"
+              }]
             },
             {
-              label: "单元楼类型",
-              prop: "type",
-              hide: true,
-
-              type: "select",
-              // search: true,
-              dataType: "number",
-              searchLabelWidth: 110,
-              labelWidth: 110,
-              dicUrl: "/api/blade-system/dict-biz/dictionary?code=unit_type",
-              props: {
-                label: "dictValue",
-                value: "dictKey"
-              },
+              label: "社区名称",
+              prop: "agencyName",
               rules: [{
-                required: false,
-                message: "请选择单元楼类型",
+                required: true,
+                message: "请输入社区名称",
                 trigger: "blur"
               }]
             },
             {
-              label: "归属",
-              prop: "agencyId",
-              slot: true,
-              search: true,
-              cascaderItem: ['residentialId'],
-              type: "select",
-              remote: true,
-              dicUrl: "/api/community/agency/select?agencyName={{key}}",
-              props: {
-                label: "agencyName",
-                value: "id"
-              },
+              label: "小区id",
+              prop: "residentialId",
               rules: [{
                 required: true,
-                message: "请选择所属社区",
+                message: "请输入小区id",
                 trigger: "blur"
               }]
             },
             {
-              label: "所属小区",
-              prop: "residentialId",
-              slot: true,
-              type: "select",
-              search: true,
-              cascaderItem: ['buildingId'],
-              // remote: true,
-              //回显的时候有问题,如果所选不在前十条内,下拉框只会显示id
-              dicUrl: "/api/community/residential/select?agencyId={{key}}",
-              dicFlag: false,
-              filterable: true,
-              props: {
-                label: "name",
-                value: "id"
-              },
+              label: "小区名称",
+              prop: "residentialName",
               rules: [{
                 required: true,
-                message: "请选择归属",
+                message: "请输入小区名称",
                 trigger: "blur"
               }]
             },
             {
-              label: "所属楼栋",
+              label: "楼栋id",
               prop: "buildingId",
-              slot: true,
-              type: "select",
-              search: true,
-              dicUrl: `/api/community/building/select?residentialId={{key}}`,
-              dicFlag: false,
-              filterable: true,
-              props: {
-                label: "name",
-                value: "id"
-              },
               rules: [{
                 required: true,
-                message: "请选择所属小区",
+                message: "请输入楼栋id",
+                trigger: "blur"
+              }]
+            },
+            {
+              label: "楼栋名称",
+              prop: "buildingName",
+              rules: [{
+                required: true,
+                message: "请输入楼栋名称",
                 trigger: "blur"
               }]
             },
             {
               label: "负责人姓名",
               prop: "personName",
-              labelWidth: 110,
-              hide: true,
-
               rules: [{
-                required: false,
+                required: true,
                 message: "请输入负责人姓名",
                 trigger: "blur"
               }]
-            }, {
+            },
+            {
               label: "负责人电话",
               prop: "personTel",
-              labelWidth: 110,
-              hide: true,
               rules: [{
-                required: false,
+                required: true,
                 message: "请输入负责人电话",
                 trigger: "blur"
               }]
-            }, {
+            },
+            {
               label: "建筑年代",
               prop: "builtYear",
-              hide: true,
-            }, {
-              label: "产权性质",
-              prop: "propertyNature",
-              hide: true,
-            }, {
-              label: "有无电梯",
-              prop: "includingElevator",
-              hide: true,
-              // type: "select",
-              // search: true,
-              // dicUrl: "/api/blade-system/dict-biz/dictionary?code=including_elevator",
-              // props: {
-              //   label: "dictValue",
-              //   value: "dictKey"
-              // },
+              rules: [{
+                required: true,
+                message: "请输入建筑年代",
+                trigger: "blur"
+              }]
             },
             {
-              label: "图片",
-              prop: "pic",
-              type: 'upload',
-              hide: true,
-              propsHttp: {
-                url: 'data'
-              },
-              listType: 'picture-img',
-              span: 24,
-              row: true,
-
-              action: "/api/upload/putfile",
-              display: true,
+              label: "有无电梯",
+              prop: "includingElevator",
               rules: [{
-                required: false,
-                message: "请输入封面图片",
+                required: true,
+                message: "请输入有无电梯",
                 trigger: "blur"
               }]
             },
             {
-              label: "楼层数量",
-              prop: "floorNumber",
-              display: false
+              label: "楼层数",
+              prop: "floorCount",
+              rules: [{
+                required: true,
+                message: "请输入楼层数",
+                trigger: "blur"
+              }]
             },
             {
               label: "房间数量",
-              prop: "roomNumber",
-              display: false
+              prop: "roomCount",
+              rules: [{
+                required: true,
+                message: "请输入房间数量",
+                trigger: "blur"
+              }]
             },
             {
               label: "住户数量",
-              prop: "userNumber",
-              display: false,
-              hide: true,
+              prop: "userCount",
+              rules: [{
+                required: true,
+                message: "请输入住户数量",
+                trigger: "blur"
+              }]
             },
             {
-              label: "序号",
-              prop: "serial",
-              hide: true,
-              display: false,
-              value: 1
+              label: "单元楼图片",
+              prop: "pic",
+              rules: [{
+                required: true,
+                message: "请输入单元楼图片",
+                trigger: "blur"
+              }]
+            },
+            {
+              label: "备注",
+              prop: "remark",
+              rules: [{
+                required: true,
+                message: "请输入备注",
+                trigger: "blur"
+              }]
             },
             {
               label: "创建时间",
-              prop: "createTime",
-              type: "datetime",
-              hide: true,
-              valueFormat: "yyyy-MM-dd HH:mm:ss",
-              display: false
+              prop: "createDate",
+              rules: [{
+                required: true,
+                message: "请输入创建时间",
+                trigger: "blur"
+              }]
             },
             {
-              label: "备注",
-              prop: "remark",
-              hide: true,
-              type: "textarea"
+              label: "旧平台id",
+              prop: "oldId",
+              rules: [{
+                required: true,
+                message: "请输入旧平台id",
+                trigger: "blur"
+              }]
+            },
+            {
+              label: "机构路径",
+              prop: "orgPosition",
+              rules: [{
+                required: true,
+                message: "请输入机构路径",
+                trigger: "blur"
+              }]
             },
           ]
         },
@@ -315,32 +254,7 @@
       }
     },
     methods: {
-      submitUnit(row,done,loading) {
-        update(this.editForm).then(() => {
-          this.onLoad(this.page);
-          this.editVisible = false;
-          this.$message({
-            type: "success",
-            message: "操作成功!"
-          });
-          done();
-        }, error => {
-          loading();
-          console.log(error);
-        });
-      },
-      edit(row) {
-        this.editForm = row;
-        this.editVisible = true;
-      },
-      unitManage(id,type){
-        let query = {unitId: id};
-        communityManage(this,type,query)
-      },
       rowSave(row, done, loading) {
-        row.roomNumber = 0;
-        row.floorNumber = 0;
-        row.userNumber = 0;
         add(row).then(() => {
           this.onLoad(this.page);
           this.$message({
@@ -354,7 +268,6 @@
         });
       },
       rowUpdate(row, index, done, loading) {
-        // done()
         update(row).then(() => {
           this.onLoad(this.page);
           this.$message({
@@ -368,15 +281,11 @@
         });
       },
       rowDel(row) {
-        if (row.roomNumber > 0) {
-          this.$message.error("请先删除该单元的房间和其他数据")
-          return
-        }
         this.$confirm("确定将选择数据删除?", {
-            confirmButtonText: "确定",
-            cancelButtonText: "取消",
-            type: "warning"
-          })
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        })
           .then(() => {
             return remove(row.id);
           })
@@ -394,10 +303,10 @@
           return;
         }
         this.$confirm("确定将选择数据删除?", {
-            confirmButtonText: "确定",
-            cancelButtonText: "取消",
-            type: "warning"
-          })
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        })
           .then(() => {
             return remove(this.ids);
           })
@@ -435,10 +344,10 @@
         this.selectionList = [];
         this.$refs.crud.toggleSelection();
       },
-      currentChange(currentPage) {
+      currentChange(currentPage){
         this.page.currentPage = currentPage;
       },
-      sizeChange(pageSize) {
+      sizeChange(pageSize){
         this.page.pageSize = pageSize;
       },
       refreshChange() {
@@ -446,9 +355,6 @@
       },
       onLoad(page, params = {}) {
         this.loading = true;
-        if (this.$route.query){
-          Object.assign(this.query,this.$route.query)
-        }
         getList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
           const data = res.data.data;
           this.page.total = data.total;
@@ -456,14 +362,6 @@
           this.loading = false;
           this.selectionClear();
         });
-        // getUnitList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
-        //   const data = res.data.data;
-        //   this.page.total =Number.parseInt(data.total);
-        //   console.log(this.page.total)
-        //   this.data = data.records;
-        //   this.loading = false;
-        //   this.selectionClear();
-        // });
       }
     }
   };

+ 0 - 19
src/views/community/util/communityManage.js

@@ -1,19 +0,0 @@
-
-export const communityManage = (obj,type,query) =>{
-    switch (type){
-      case 1:
-        obj.$router.push({path:"/community/unit",query:query});
-        break;
-      case 2:
-        obj.$router.push({path:"/community/floor",query:query});
-        break;
-      case 3:
-        obj.$router.push({path:"/community/room",query:query});
-        break;
-      case 4:
-        obj.$router.push({path:"/community/permanentPeople",query});
-        break;
-      default:
-        break
-  }
-}