From 335642b3d8a4cdda3d43ea5a784087bdccdd2f73 Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Fri, 05 Jan 2024 17:51:17 +0800
Subject: [PATCH] Merge branch 'master' of http://s16s652780.51mypc.cn:49896/r/jczz_web

---
 src/views/userHouse/houseList.vue                      |   20 
 src/views/article/components/discussionManageChild.vue |    4 
 src/views/article/components/deitDiscussion.vue        |    6 
 src/util/util.js                                       |  249 ++-
 src/views/gzll/components/ownersMemberManager.vue      |    3 
 src/views/gzll/owners.vue                              |    4 
 src/views/property/propertyCompanyDistrict.vue         |    9 
 src/views/place/components/baseAllInfo.vue             |   87 
 src/views/cGovernance/taskECall.vue                    |   10 
 src/views/article/components/publicSignUpChild.vue     |  750 +++++-----
 src/views/userHouse/hireInfoList.vue                   | 1461 ++++++++++----------
 src/views/community/index.vue                          |   28 
 src/views/property/propertyCapitalApply.vue            |    9 
 src/views/article/rotation.vue                         |   17 
 src/views/grid/gridman.vue                             |    9 
 src/views/userHouse/components/householdManager.vue    |  770 ++++++----
 src/views/grid/index.vue                               |    8 
 src/views/place/index.vue                              |   56 
 src/views/task/reportForRepairs.vue                    |  193 +-
 src/views/userHouse/houseHoldList.vue                  |  512 ++++--
 src/views/district/index.vue                           |   24 
 src/views/owners_committee/index.vue                   |    4 
 22 files changed, 2,359 insertions(+), 1,874 deletions(-)

diff --git a/src/util/util.js b/src/util/util.js
index dd8d384..83cd2f7 100644
--- a/src/util/util.js
+++ b/src/util/util.js
@@ -1,53 +1,55 @@
-import {validatenull} from './validate'
+import { validatenull } from "./validate";
 //表单序列化
-export const serialize = data => {
+export const serialize = (data) => {
   let list = [];
-  Object.keys(data).forEach(ele => {
-    list.push(`${ele}=${data[ele]}`)
-  })
-  return list.join('&');
+  Object.keys(data).forEach((ele) => {
+    list.push(`${ele}=${data[ele]}`);
+  });
+  return list.join("&");
 };
-export const getObjType = obj => {
+export const getObjType = (obj) => {
   var toString = Object.prototype.toString;
   var map = {
-    '[object Boolean]': 'boolean',
-    '[object Number]': 'number',
-    '[object String]': 'string',
-    '[object Function]': 'function',
-    '[object Array]': 'array',
-    '[object Date]': 'date',
-    '[object RegExp]': 'regExp',
-    '[object Undefined]': 'undefined',
-    '[object Null]': 'null',
-    '[object Object]': 'object'
+    "[object Boolean]": "boolean",
+    "[object Number]": "number",
+    "[object String]": "string",
+    "[object Function]": "function",
+    "[object Array]": "array",
+    "[object Date]": "date",
+    "[object RegExp]": "regExp",
+    "[object Undefined]": "undefined",
+    "[object Null]": "null",
+    "[object Object]": "object",
   };
   if (obj instanceof Element) {
-    return 'element';
+    return "element";
   }
   return map[toString.call(obj)];
 };
 export const getViewDom = () => {
-  return window.document.getElementById('avue-view').getElementsByClassName('el-scrollbar__wrap')[0]
-}
+  return window.document
+    .getElementById("avue-view")
+    .getElementsByClassName("el-scrollbar__wrap")[0];
+};
 /**
  * 对象深拷贝
  */
-export const deepClone = data => {
+export const deepClone = (data) => {
   var type = getObjType(data);
   var obj;
-  if (type === 'array') {
+  if (type === "array") {
     obj = [];
-  } else if (type === 'object') {
+  } else if (type === "object") {
     obj = {};
   } else {
     //不再具有下一层次
     return data;
   }
-  if (type === 'array') {
+  if (type === "array") {
     for (var i = 0, len = data.length; i < len; i++) {
       obj.push(deepClone(data[i]));
     }
-  } else if (type === 'object') {
+  } else if (type === "object") {
     for (var key in data) {
       obj[key] = deepClone(data[key]);
     }
@@ -59,9 +61,9 @@
  */
 export const toggleGrayMode = (status) => {
   if (status) {
-    document.body.className = document.body.className + ' grayMode';
+    document.body.className = document.body.className + " grayMode";
   } else {
-    document.body.className = document.body.className.replace(' grayMode', '');
+    document.body.className = document.body.className.replace(" grayMode", "");
   }
 };
 /**
@@ -69,32 +71,25 @@
  */
 export const setTheme = (name) => {
   document.body.className = name;
-}
+};
 
 /**
  * 加密处理
  */
 export const encryption = (params) => {
-  let {
-    data,
-    type,
-    param,
-    key
-  } = params;
+  let { data, type, param, key } = params;
   let result = JSON.parse(JSON.stringify(data));
-  if (type == 'Base64') {
-    param.forEach(ele => {
+  if (type == "Base64") {
+    param.forEach((ele) => {
       result[ele] = btoa(result[ele]);
-    })
-  } else if (type == 'Aes') {
-    param.forEach(ele => {
+    });
+  } else if (type == "Aes") {
+    param.forEach((ele) => {
       result[ele] = window.CryptoJS.AES.encrypt(result[ele], key).toString();
-    })
-
+    });
   }
   return result;
 };
-
 
 /**
  * 浏览器判断是否全屏
@@ -111,7 +106,7 @@
  */
 export const listenfullscreen = (callback) => {
   function listen() {
-    callback()
+    callback();
   }
 
   document.addEventListener("fullscreenchange", function () {
@@ -131,9 +126,12 @@
  * 浏览器判断是否全屏
  */
 export const fullscreenEnable = () => {
-  var isFullscreen = document.isFullScreen || document.mozIsFullScreen || document.webkitIsFullScreen
+  var isFullscreen =
+    document.isFullScreen ||
+    document.mozIsFullScreen ||
+    document.webkitIsFullScreen;
   return isFullscreen;
-}
+};
 
 /**
  * 浏览器全屏
@@ -186,12 +184,12 @@
  * 动态插入css
  */
 
-export const loadStyle = url => {
-  const link = document.createElement('link');
-  link.type = 'text/css';
-  link.rel = 'stylesheet';
+export const loadStyle = (url) => {
+  const link = document.createElement("link");
+  link.type = "text/css";
+  link.rel = "stylesheet";
   link.href = url;
-  const head = document.getElementsByTagName('head')[0];
+  const head = document.getElementsByTagName("head")[0];
   head.appendChild(link);
 };
 /**
@@ -201,7 +199,8 @@
   delete obj1.close;
   var o1 = obj1 instanceof Object;
   var o2 = obj2 instanceof Object;
-  if (!o1 || !o2) { /*  判断不是对象  */
+  if (!o1 || !o2) {
+    /*  判断不是对象  */
     return obj1 === obj2;
   }
 
@@ -220,14 +219,18 @@
     }
   }
   return true;
-}
+};
 /**
  * 根据字典的value显示label
  */
 export const findByvalue = (dic, value) => {
-  let result = '';
+  let result = "";
   if (validatenull(dic)) return value;
-  if (typeof (value) == 'string' || typeof (value) == 'number' || typeof (value) == 'boolean') {
+  if (
+    typeof value == "string" ||
+    typeof value == "number" ||
+    typeof value == "boolean"
+  ) {
     let index = 0;
     index = findArray(dic, value);
     if (index != -1) {
@@ -238,7 +241,7 @@
   } else if (value instanceof Array) {
     result = [];
     let index = 0;
-    value.forEach(ele => {
+    value.forEach((ele) => {
       index = findArray(dic, ele);
       if (index != -1) {
         result.push(dic[index].label);
@@ -265,8 +268,10 @@
  * 生成随机len位数字
  */
 export const randomLenNum = (len, date) => {
-  let random = '';
-  random = Math.ceil(Math.random() * 100000000000000).toString().substr(0, len ? len : 4);
+  let random = "";
+  random = Math.ceil(Math.random() * 100000000000000)
+    .toString()
+    .substr(0, len ? len : 4);
   if (date) random = random + Date.now();
   return random;
 };
@@ -275,28 +280,49 @@
  */
 export const openWindow = (url, title, w, h) => {
   // Fixes dual-screen position                            Most browsers       Firefox
-  const dualScreenLeft = window.screenLeft !== undefined ? window.screenLeft : screen.left
-  const dualScreenTop = window.screenTop !== undefined ? window.screenTop : screen.top
+  const dualScreenLeft =
+    window.screenLeft !== undefined ? window.screenLeft : screen.left;
+  const dualScreenTop =
+    window.screenTop !== undefined ? window.screenTop : screen.top;
 
-  const width = window.innerWidth ? window.innerWidth : document.documentElement.clientWidth ? document.documentElement.clientWidth : screen.width
-  const height = window.innerHeight ? window.innerHeight : document.documentElement.clientHeight ? document.documentElement.clientHeight : screen.height
+  const width = window.innerWidth
+    ? window.innerWidth
+    : document.documentElement.clientWidth
+    ? document.documentElement.clientWidth
+    : screen.width;
+  const height = window.innerHeight
+    ? window.innerHeight
+    : document.documentElement.clientHeight
+    ? document.documentElement.clientHeight
+    : screen.height;
 
-  const left = ((width / 2) - (w / 2)) + dualScreenLeft
-  const top = ((height / 2) - (h / 2)) + dualScreenTop
-  const newWindow = window.open(url, title, 'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=yes, copyhistory=no, width=' + w + ', height=' + h + ', top=' + top + ', left=' + left)
+  const left = width / 2 - w / 2 + dualScreenLeft;
+  const top = height / 2 - h / 2 + dualScreenTop;
+  const newWindow = window.open(
+    url,
+    title,
+    "toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=yes, copyhistory=no, width=" +
+      w +
+      ", height=" +
+      h +
+      ", top=" +
+      top +
+      ", left=" +
+      left
+  );
 
   // Puts focus on the newWindow
   if (window.focus) {
-    newWindow.focus()
+    newWindow.focus();
   }
-}
+};
 
 /**
  * 获取顶部地址栏地址
  */
 export const getTopUrl = () => {
   return window.location.href.split("/#/")[0];
-}
+};
 
 /**
  * 获取url参数
@@ -307,7 +333,7 @@
   let r = window.location.search.substr(1).match(reg);
   if (r != null) return unescape(decodeURI(r[2]));
   return null;
-}
+};
 
 /**
  * 下载文件
@@ -316,19 +342,19 @@
  */
 export const downloadFileBlob = (path, name) => {
   const xhr = new XMLHttpRequest();
-  xhr.open('get', path);
-  xhr.responseType = 'blob';
+  xhr.open("get", path);
+  xhr.responseType = "blob";
   xhr.send();
   xhr.onload = function () {
     if (this.status === 200 || this.status === 304) {
       // 如果是IE10及以上,不支持download属性,采用msSaveOrOpenBlob方法,但是IE10以下也不支持msSaveOrOpenBlob
-      if ('msSaveOrOpenBlob' in navigator) {
+      if ("msSaveOrOpenBlob" in navigator) {
         navigator.msSaveOrOpenBlob(this.response, name);
         return;
       }
       const url = URL.createObjectURL(this.response);
-      const a = document.createElement('a');
-      a.style.display = 'none';
+      const a = document.createElement("a");
+      a.style.display = "none";
       a.href = url;
       a.download = name;
       document.body.appendChild(a);
@@ -337,7 +363,7 @@
       URL.revokeObjectURL(url);
     }
   };
-}
+};
 
 /**
  * 下载文件
@@ -346,16 +372,16 @@
  */
 export const downloadFileBase64 = (path, name) => {
   const xhr = new XMLHttpRequest();
-  xhr.open('get', path);
-  xhr.responseType = 'blob';
+  xhr.open("get", path);
+  xhr.responseType = "blob";
   xhr.send();
   xhr.onload = function () {
     if (this.status === 200 || this.status === 304) {
       const fileReader = new FileReader();
       fileReader.readAsDataURL(this.response);
       fileReader.onload = function () {
-        const a = document.createElement('a');
-        a.style.display = 'none';
+        const a = document.createElement("a");
+        a.style.display = "none";
         a.href = this.result;
         a.download = name;
         document.body.appendChild(a);
@@ -364,7 +390,7 @@
       };
     }
   };
-}
+};
 
 /**
  * 下载excel
@@ -372,34 +398,63 @@
  * @param {String} filename 文件名称
  */
 export const downloadXls = (fileArrayBuffer, filename) => {
-  let data = new Blob([fileArrayBuffer], {type: 'application/vnd.ms-excel,charset=utf-8'});
-  if (typeof window.chrome !== 'undefined') {
+  let data = new Blob([fileArrayBuffer], {
+    type: "application/vnd.ms-excel,charset=utf-8",
+  });
+  if (typeof window.chrome !== "undefined") {
     // Chrome
-    var link = document.createElement('a');
+    var link = document.createElement("a");
     link.href = window.URL.createObjectURL(data);
     link.download = filename;
     link.click();
-  } else if (typeof window.navigator.msSaveBlob !== 'undefined') {
+  } else if (typeof window.navigator.msSaveBlob !== "undefined") {
     // IE
-    var blob = new Blob([data], {type: 'application/force-download'});
+    var blob = new Blob([data], { type: "application/force-download" });
     window.navigator.msSaveBlob(blob, filename);
   } else {
     // Firefox
-    var file = new File([data], filename, {type: 'application/force-download'});
+    var file = new File([data], filename, {
+      type: "application/force-download",
+    });
     window.open(URL.createObjectURL(file));
   }
-}
+};
 
 export const processArray = (arr) => {
-    arr.forEach(item => {
-        if ('children' in item && item.children.length > 0) {
-            item.children = processArray(item.children)
-        } else {
-            if ('children' in item) {
-                delete item.children
-            }
-        }
-    })
+  arr.forEach((item) => {
+    if ("children" in item && item.children.length > 0) {
+      item.children = processArray(item.children);
+    } else {
+      if ("children" in item) {
+        delete item.children;
+      }
+    }
+  });
 
-    return arr
-}
\ No newline at end of file
+  return arr;
+};
+
+export const findParentOrCur = (data, targetId) => {
+  function traverse(node, path) {
+    if (node.id === targetId) {
+      return path.concat(node.name);
+    }
+    if (node.children) {
+      for (let child of node.children) {
+        let result = traverse(child, path.concat(node.name));
+        if (result) {
+          return result;
+        }
+      }
+    }
+  }
+
+  for (let node of data) {
+    let result = traverse(node, []);
+    if (result) {
+      return result.join("-");
+    }
+  }
+
+  return null; // 如果找不到目标id,返回null
+};
diff --git a/src/views/article/components/deitDiscussion.vue b/src/views/article/components/deitDiscussion.vue
index 23eb4db..a92bef0 100644
--- a/src/views/article/components/deitDiscussion.vue
+++ b/src/views/article/components/deitDiscussion.vue
@@ -2,7 +2,7 @@
  * @Author: shuishen 1109946754@qq.com
  * @Date: 2024-01-04 15:18:13
  * @LastEditors: shuishen 1109946754@qq.com
- * @LastEditTime: 2024-01-04 17:13:22
+ * @LastEditTime: 2024-01-05 17:23:39
  * @FilePath: \jczz_web\src\views\article\components\deitDiscussion.vue
  * @Description: 
  * 
@@ -201,7 +201,9 @@
                     label: '手机',
                     prop: 'phone'
                 }, {
-                    label: '小区',
+                    width: 220,
+                    overHidden: true,
+                    label: '小区名称',
                     prop: 'aoiName'
                 }, {
                     label: '地址',
diff --git a/src/views/article/components/discussionManageChild.vue b/src/views/article/components/discussionManageChild.vue
index d9ac977..d4e3232 100644
--- a/src/views/article/components/discussionManageChild.vue
+++ b/src/views/article/components/discussionManageChild.vue
@@ -116,7 +116,9 @@
                     label: '手机',
                     prop: 'phone'
                 }, {
-                    label: '小区',
+                    width: 220,
+                    overHidden: true,
+                    label: '小区名称',
                     prop: 'aoiName'
                 }, {
                     label: '地址',
diff --git a/src/views/article/components/publicSignUpChild.vue b/src/views/article/components/publicSignUpChild.vue
index 209c0e9..c7d0590 100644
--- a/src/views/article/components/publicSignUpChild.vue
+++ b/src/views/article/components/publicSignUpChild.vue
@@ -1,415 +1,417 @@
 <template>
-  <basicContainer>
-    <avue-crud :data="data" ref="crud" :table-loading="loading" @current-change="currentChange"
-      @search-change="searchChange" @search-reset="searchReset" @size-change="sizeChange" :option="option"
-      v-model="data" :page="page" @selection-change="selectionChange" @row-del="rowDel" @refresh-change="refreshChange"
-      @on-load="onLoad">
-      <template slot="menuLeft">
-        <!-- <el-button size="small" icon="el-icon-delete" plain v-if="permission.article_delete" @click="handleDelete">删 除
+    <basicContainer>
+        <avue-crud :data="data" ref="crud" :table-loading="loading" @current-change="currentChange"
+            @search-change="searchChange" @search-reset="searchReset" @size-change="sizeChange" :option="option"
+            v-model="data" :page="page" @selection-change="selectionChange" @row-del="rowDel"
+            @refresh-change="refreshChange" @on-load="onLoad">
+            <template slot="menuLeft">
+                <!-- <el-button size="small" icon="el-icon-delete" plain v-if="permission.article_delete" @click="handleDelete">删 除
         </el-button> -->
-        <el-button type="danger" size="small" plain icon="el-icon-delete" v-if="permission.user_delete"
-          @click="handleDelete">批量删除
-        </el-button>
-      </template>
+                <el-button type="danger" size="small" plain icon="el-icon-delete" v-if="permission.user_delete"
+                    @click="handleDelete">批量删除
+                </el-button>
+            </template>
 
-      <template slot-scope="scope" slot="menu">
-        <el-button type="text" icon="el-icon-s-custom" size="small" @click.stop="openDilog(scope.row,0)">
-          编辑
-        </el-button>
-        <el-button type="primary" icon="el-icon-s-custom" size="small" @click.stop="openUser(scope.row,0)">
-          参与用户
-        </el-button>
-      </template>
-    </avue-crud>
+            <template slot-scope="scope" slot="menu">
+                <el-button type="text" icon="el-icon-s-custom" size="small" @click.stop="openDilog(scope.row, 0)">
+                    编辑
+                </el-button>
+                <el-button type="primary" icon="el-icon-s-custom" size="small" @click.stop="openUser(scope.row, 0)">
+                    参与用户
+                </el-button>
+            </template>
+        </avue-crud>
 
-    <el-dialog title="" append-to-body :visible.sync="dialogVisibles" width="50%" :before-close="handleClose">
-      <avue-form @submit="handleSubmit" :option="optionEnroll" v-model="discussForm">
-      </avue-form>
-    </el-dialog>
+        <el-dialog title="" append-to-body :visible.sync="dialogVisibles" width="50%" :before-close="handleClose">
+            <avue-form @submit="handleSubmit" :option="optionEnroll" v-model="discussForm">
+            </avue-form>
+        </el-dialog>
 
 
-    <el-dialog title="" append-to-body :visible.sync="dialogVisiblesUser" width="50%" :before-close="userHandleClose">
-      <!-- <span slot="title" class="dialog-footer">
+        <el-dialog title="" append-to-body :visible.sync="dialogVisiblesUser" width="50%" :before-close="userHandleClose">
+            <!-- <span slot="title" class="dialog-footer">
         {{discussForm.ontitle}}
       </span> -->
-      <avue-crud :data="dataUser" :page="pageUser" :option="option1" @on-load="getUser"></avue-crud>
-    </el-dialog>
+            <avue-crud :data="dataUser" :page="pageUser" :option="option1" @on-load="getUser"></avue-crud>
+        </el-dialog>
 
 
-  </basicContainer>
+    </basicContainer>
 </template>
 
 <script>
-  import {
+import {
     getListPd,
     getDetailPd,
     addPd,
     updatePd,
     removePd,
-  } from "@/api/discuss/publicDiscuss";
-  import {
+} from "@/api/discuss/publicDiscuss"
+import {
     getPageUser,
-  } from "@/api/discuss/userPublicEnroll";
-  import option from "@/option/discuss/publicDiscuss";
-  import {
+} from "@/api/discuss/userPublicEnroll"
+import option from "@/option/discuss/publicDiscuss"
+import {
     mapGetters
-  } from "vuex";
-  import {
+} from "vuex"
+import {
     getDictionary
-  } from '@/api/system/dict'
+} from '@/api/system/dict'
 
-  export default {
-    data() {
-      return {
-        option1: {
-          menu: false,
-          addBtn: false,
-          column: [{
-            label: '姓名',
-            prop: 'name'
-          }, {
-            label: '头像',
-            prop: 'avatar'
-          }, {
-            label: '手机',
-            prop: 'phone'
-          }, {
-            label: '小区',
-            prop: 'aoiName'
-          }, {
-            label: '地址',
-            prop: 'addressName'
-          }, {
-            label: '时间',
-            prop: 'createTime'
-          }]
-        },
-        discussForm: {
-          ontitle: '',
-          title: '',
-          openFlag: 0,
-          numberRestrictions: 0,
-          voteRestrictions: 0,
-          userRestrictions: 0,
-          endTime: '',
-          articleId: '',
-          createTime: '',
-          updateTime: '',
-          deleteFlag: '',
-          repeatVote: 0,
-          voteNumberPublic: 0,
-          appointUser: '',
-          userIds: '',
-          eventType: 1,
-        },
-        optionEnroll: {
-          column: [{
-              label: "",
-              type: 'title',
-              prop: "title",
-              span: 24,
-              row: true,
-              offset: 2,
-              styles: {
-                fontSize: '24px'
-              }
-            }, {
-              labelWidth: 100,
-              label: '开启',
-              prop: 'openFlag',
-              type: 'radio',
-              button: true,
-              row: true,
-              offset: 6,
-              dicData: [{
-                label: '开启',
-                value: 0
-              }, {
-                label: '不开启',
-                value: 1
-              }]
+export default {
+    data () {
+        return {
+            option1: {
+                menu: false,
+                addBtn: false,
+                column: [{
+                    label: '姓名',
+                    prop: 'name'
+                }, {
+                    label: '头像',
+                    prop: 'avatar'
+                }, {
+                    label: '手机',
+                    prop: 'phone'
+                }, {
+                    width: 220,
+                    overHidden: true,
+                    label: '小区名称',
+                    prop: 'aoiName'
+                }, {
+                    label: '地址',
+                    prop: 'addressName'
+                }, {
+                    label: '时间',
+                    prop: 'createTime'
+                }]
             },
-            {
-              labelWidth: 100,
-              label: '开启投票',
-              prop: 'openFlag',
-              type: 'radio',
-              button: true,
-              row: true,
-              offset: 6,
-              dicData: [{
-                label: '开启',
-                value: 0
-              }, {
-                label: '不开启',
-                value: 1
-              }]
+            discussForm: {
+                ontitle: '',
+                title: '',
+                openFlag: 0,
+                numberRestrictions: 0,
+                voteRestrictions: 0,
+                userRestrictions: 0,
+                endTime: '',
+                articleId: '',
+                createTime: '',
+                updateTime: '',
+                deleteFlag: '',
+                repeatVote: 0,
+                voteNumberPublic: 0,
+                appointUser: '',
+                userIds: '',
+                eventType: 1,
             },
-            {
-              label: "截止时间",
-              row: true,
-              offset: 6,
-              prop: "endTime",
-              type: "datetime",
-              format: "yyyy-MM-dd hh:mm:ss",
-              valueFormat: "timestamp",
+            optionEnroll: {
+                column: [{
+                    label: "",
+                    type: 'title',
+                    prop: "title",
+                    span: 24,
+                    row: true,
+                    offset: 2,
+                    styles: {
+                        fontSize: '24px'
+                    }
+                }, {
+                    labelWidth: 100,
+                    label: '开启',
+                    prop: 'openFlag',
+                    type: 'radio',
+                    button: true,
+                    row: true,
+                    offset: 6,
+                    dicData: [{
+                        label: '开启',
+                        value: 0
+                    }, {
+                        label: '不开启',
+                        value: 1
+                    }]
+                },
+                {
+                    labelWidth: 100,
+                    label: '开启投票',
+                    prop: 'openFlag',
+                    type: 'radio',
+                    button: true,
+                    row: true,
+                    offset: 6,
+                    dicData: [{
+                        label: '开启',
+                        value: 0
+                    }, {
+                        label: '不开启',
+                        value: 1
+                    }]
+                },
+                {
+                    label: "截止时间",
+                    row: true,
+                    offset: 6,
+                    prop: "endTime",
+                    type: "datetime",
+                    format: "yyyy-MM-dd hh:mm:ss",
+                    valueFormat: "timestamp",
+                },
+                ]
             },
-          ]
-        },
-        dialogVisibles: false,
-        dialogVisiblesUser: false,
-        // 弹框标题
-        title: '',
-        // 是否展示弹框
-        box: false,
-        // 是否显示查询
-        search: true,
-        // 加载中
-        loading: true,
-        // 是否为查看模式
-        view: false,
-        // 查询信息
-        query: {},
-        // 分页信息
-        page: {
-          pageSize: 10,
-          pageSizes: [10, 20, 30, 50, 100],
-          currentPage: 1,
-          total: 0
-        },
+            dialogVisibles: false,
+            dialogVisiblesUser: false,
+            // 弹框标题
+            title: '',
+            // 是否展示弹框
+            box: false,
+            // 是否显示查询
+            search: true,
+            // 加载中
+            loading: true,
+            // 是否为查看模式
+            view: false,
+            // 查询信息
+            query: {},
+            // 分页信息
+            page: {
+                pageSize: 10,
+                pageSizes: [10, 20, 30, 50, 100],
+                currentPage: 1,
+                total: 0
+            },
 
-        // 分页信息
-        pageUser: {
-          pageSize: 10,
-          pageSizes: [10, 20, 30, 50, 100],
-          currentPage: 1,
-          total: 0
-        },
-        // 表单数据
-        form: {},
-        // 选择行
-        selectionList: [],
-        // 表单配置
-        option: {
-          selection: true,
-          height: "auto",
-          calcHeight: 54,
-          align: 'center',
-          menuAlign: 'center',
-          addBtn: false,
-          editBtn: false,
-          searchMenuSpan: 3,
-          searchBtn: true,
-          menuWidth: 500,
-          column: [{
-              label: 'ID',
-              prop: 'id',
-              searchSpan: 4,
-              // search: true,
+            // 分页信息
+            pageUser: {
+                pageSize: 10,
+                pageSizes: [10, 20, 30, 50, 100],
+                currentPage: 1,
+                total: 0
             },
-            {
-              label: '标题',
-              prop: 'title',
-              searchSpan: 4,
-              search: true,
+            // 表单数据
+            form: {},
+            // 选择行
+            selectionList: [],
+            // 表单配置
+            option: {
+                selection: true,
+                height: "auto",
+                calcHeight: 54,
+                align: 'center',
+                menuAlign: 'center',
+                addBtn: false,
+                editBtn: false,
+                searchMenuSpan: 3,
+                searchBtn: true,
+                menuWidth: 500,
+                column: [{
+                    label: 'ID',
+                    prop: 'id',
+                    searchSpan: 4,
+                    // search: true,
+                },
+                {
+                    label: '标题',
+                    prop: 'title',
+                    searchSpan: 4,
+                    search: true,
+                },
+                {
+                    label: '参与人数',
+                    prop: 'enrollCount',
+                    searchSpan: 4,
+                    search: true,
+                },
+                {
+                    label: '截止时间',
+                    prop: 'endTime',
+                    searchSpan: 4,
+                    search: true,
+                }
+                ]
             },
-            {
-              label: '参与人数',
-              prop: 'enrollCount',
-              searchSpan: 4,
-              search: true,
-            },
-            {
-              label: '截止时间',
-              prop: 'endTime',
-              searchSpan: 4,
-              search: true,
-            }
-          ]
-        },
-        // 表单列表
-        data: [],
-        dataUser: [],
-      }
+            // 表单列表
+            data: [],
+            dataUser: [],
+        }
     },
-    mounted() {
-      // this.init();
-      // this.onLoad(this.page);
+    mounted () {
+        // this.init();
+        // this.onLoad(this.page);
     },
     computed: {
-      ...mapGetters(["permission"]),
-      ids() {
-        let ids = [];
-        this.selectionList.forEach(ele => {
-          ids.push(ele.id);
-        });
-        return ids.join(",");
-      }
+        ...mapGetters(["permission"]),
+        ids () {
+            let ids = []
+            this.selectionList.forEach(ele => {
+                ids.push(ele.id)
+            })
+            return ids.join(",")
+        }
     },
     methods: {
-      init(data) {
-        this.houseCode = data.houseCode
-        this.onLoad(this.page)
-      },
-      getUser(page, params = {}) {
-        getPageUser(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
-          const data = res.data.data;
-          this.pageUser.total = data.total;
-          this.dataUser = data.records;
-          this.loading = false;
-          this.selectionClear();
-        });
-      },
-      userHandleClose() {
-        this.dialogVisiblesUser = false
-      },
-      openUser(row) {
-        this.dialogVisiblesUser = true
-        this.getUser(this.pageUser, params = {})
-      },
-      openDilog(row, type) {
-        this.dialogVisibles = true
-        this.discussForm = row
-        let times = new Date(row.endTime).getTime();
-        this.discussForm.endTime = times
-        console.table(this.discussForm)
-        if (type == 0) {
-          this.discussForm.ontitle = '公益报名'
-        } else {
-          this.discussForm.ontitle = '创建议题'
-        }
-      },
+        init (data) {
+            this.houseCode = data.houseCode
+            this.onLoad(this.page)
+        },
+        getUser (page, params = {}) {
+            getPageUser(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
+                const data = res.data.data
+                this.pageUser.total = data.total
+                this.dataUser = data.records
+                this.loading = false
+                this.selectionClear()
+            })
+        },
+        userHandleClose () {
+            this.dialogVisiblesUser = false
+        },
+        openUser (row) {
+            this.dialogVisiblesUser = true
+            this.getUser(this.pageUser, params = {})
+        },
+        openDilog (row, type) {
+            this.dialogVisibles = true
+            this.discussForm = row
+            let times = new Date(row.endTime).getTime()
+            this.discussForm.endTime = times
+            console.table(this.discussForm)
+            if (type == 0) {
+                this.discussForm.ontitle = '公益报名'
+            } else {
+                this.discussForm.ontitle = '创建议题'
+            }
+        },
 
-      searchHide() {
-        this.search = !this.search;
-      },
-      searchChange() {
-        this.onLoad(this.page);
-      },
-      searchReset() {
-        this.query = {};
-        this.page.currentPage = 1;
-        this.onLoad(this.page);
-      },
-      handleSubmit(form, done) {
-        done()
-        if (!this.discussForm.id) {
-          addPd(this.discussForm).then(() => {
-            this.dialogVisibles = false
-            this.onLoad(this.page);
-            this.$message({
-              type: "success",
-              message: "操作成功!"
-            });
-          });
-        } else {
-          updatePd(this.discussForm).then(() => {
-            this.dialogVisibles = false
-            this.onLoad(this.page);
-            this.$message({
-              type: "success",
-              message: "操作成功!"
-            });
-          })
+        searchHide () {
+            this.search = !this.search
+        },
+        searchChange () {
+            this.onLoad(this.page)
+        },
+        searchReset () {
+            this.query = {}
+            this.page.currentPage = 1
+            this.onLoad(this.page)
+        },
+        handleSubmit (form, done) {
+            done()
+            if (!this.discussForm.id) {
+                addPd(this.discussForm).then(() => {
+                    this.dialogVisibles = false
+                    this.onLoad(this.page)
+                    this.$message({
+                        type: "success",
+                        message: "操作成功!"
+                    })
+                })
+            } else {
+                updatePd(this.discussForm).then(() => {
+                    this.dialogVisibles = false
+                    this.onLoad(this.page)
+                    this.$message({
+                        type: "success",
+                        message: "操作成功!"
+                    })
+                })
+            }
+        },
+        handleAdd () {
+            this.title = '新增'
+            this.form = {}
+            this.box = true
+        },
+        handleEdit (row) {
+            this.title = '编辑'
+            this.box = true
+            getDetailPd(row.id).then(res => {
+                this.form = res.data.data
+            })
+        },
+        handleView (row) {
+            this.title = '查看'
+            this.view = true
+            this.box = true
+            getDetailPd(row.id).then(res => {
+                this.form = res.data.data
+            })
+        },
+        handleDelete () {
+            if (this.selectionList.length === 0) {
+                this.$message.warning("请选择至少一条数据")
+                return
+            }
+            this.$confirm("确定将选择数据删除?", {
+                confirmButtonText: "确定",
+                cancelButtonText: "取消",
+                type: "warning"
+            })
+                .then(() => {
+                    return removePd(this.ids)
+                })
+                .then(() => {
+                    this.selectionClear()
+                    this.onLoad(this.page)
+                    this.$message({
+                        type: "success",
+                        message: "操作成功!"
+                    })
+                })
+        },
+        rowDel (row) {
+            this.$confirm("确定将选择数据删除?", {
+                confirmButtonText: "确定",
+                cancelButtonText: "取消",
+                type: "warning"
+            })
+                .then(() => {
+                    return remove(row.id)
+                })
+                .then(() => {
+                    this.onLoad(this.page)
+                    this.$message({
+                        type: "success",
+                        message: "操作成功!"
+                    })
+                })
+        },
+        beforeClose (done) {
+            done()
+            this.form = {}
+            this.view = false
+        },
+        selectionChange (list) {
+            this.selectionList = list
+        },
+        selectionClear () {
+            this.selectionList = []
+            // this.$refs.table.clearSelection();
+        },
+        currentChange (currentPage) {
+            this.page.currentPage = currentPage
+            this.onLoad(this.page)
+        },
+        sizeChange (pageSize) {
+            this.page.pageSize = pageSize
+            this.onLoad(this.page)
+        },
+        onLoad (page, params = {
+            eventType: 0
+        }) {
+            this.loading = true
+            getListPd(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()
+            })
         }
-      },
-      handleAdd() {
-        this.title = '新增'
-        this.form = {}
-        this.box = true
-      },
-      handleEdit(row) {
-        this.title = '编辑'
-        this.box = true
-        getDetailPd(row.id).then(res => {
-          this.form = res.data.data;
-        });
-      },
-      handleView(row) {
-        this.title = '查看'
-        this.view = true;
-        this.box = true;
-        getDetailPd(row.id).then(res => {
-          this.form = res.data.data;
-        });
-      },
-      handleDelete() {
-        if (this.selectionList.length === 0) {
-          this.$message.warning("请选择至少一条数据");
-          return;
-        }
-        this.$confirm("确定将选择数据删除?", {
-            confirmButtonText: "确定",
-            cancelButtonText: "取消",
-            type: "warning"
-          })
-          .then(() => {
-            return removePd(this.ids);
-          })
-          .then(() => {
-            this.selectionClear();
-            this.onLoad(this.page);
-            this.$message({
-              type: "success",
-              message: "操作成功!"
-            });
-          });
-      },
-      rowDel(row) {
-        this.$confirm("确定将选择数据删除?", {
-            confirmButtonText: "确定",
-            cancelButtonText: "取消",
-            type: "warning"
-          })
-          .then(() => {
-            return remove(row.id);
-          })
-          .then(() => {
-            this.onLoad(this.page);
-            this.$message({
-              type: "success",
-              message: "操作成功!"
-            });
-          });
-      },
-      beforeClose(done) {
-        done()
-        this.form = {};
-        this.view = false;
-      },
-      selectionChange(list) {
-        this.selectionList = list;
-      },
-      selectionClear() {
-        this.selectionList = [];
-        // this.$refs.table.clearSelection();
-      },
-      currentChange(currentPage) {
-        this.page.currentPage = currentPage;
-        this.onLoad(this.page);
-      },
-      sizeChange(pageSize) {
-        this.page.pageSize = pageSize;
-        this.onLoad(this.page);
-      },
-      onLoad(page, params = {
-        eventType: 0
-      }) {
-        this.loading = true;
-        getListPd(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 lang="scss" scoped>
-  .el-pagination {
+.el-pagination {
     margin-top: 20px;
-  }
+}
 </style>
\ No newline at end of file
diff --git a/src/views/article/rotation.vue b/src/views/article/rotation.vue
index 8dd4824..ef298b4 100644
--- a/src/views/article/rotation.vue
+++ b/src/views/article/rotation.vue
@@ -62,26 +62,27 @@
                         span: 12,
                         searchSpan: 4,
                         search: true,
-                        type:"select",
-                        dicData:[
+                        type: "select",
+                        dicData: [
                             {
-                                label:"系统",
-                                value:"1"
+                                label: "系统",
+                                value: "1"
                             },
                             {
-                                label:"社区",
-                                value:"2"
+                                label: "社区",
+                                value: "2"
                             }
                         ]
                     },
                     {
-                        parent: false,
+                        width: 156,
+                        overHidden: true,
                         label: "所属社区",
+                        parent: false,
                         prop: "communityCode",
                         search: true,
                         searchSpan: 4,
                         searchType: 'input',
-                        width: 150,
                         type: "tree",
                         dicUrl: "/api/blade-system/region/tree",
                         props: {
diff --git a/src/views/cGovernance/taskECall.vue b/src/views/cGovernance/taskECall.vue
index 9656c39..1417aca 100644
--- a/src/views/cGovernance/taskECall.vue
+++ b/src/views/cGovernance/taskECall.vue
@@ -95,11 +95,12 @@
                 },
 
                 {
+                    width: 156,
+                    overHidden: true,
+                    label: "所属社区",
                     addDisplay: false,
                     editDisplay: false,
                     viewDisplay: false,
-                    width: 160,
-                    label: "所属社区",
                     prop: "communityName",
                     search: true,
                     searchSpan: 4,
@@ -111,12 +112,11 @@
                 },
 
                 {
+                    label: "所属社区",
                     hide: true,
                     parent: false,
-                    label: "所属社区",
                     prop: "communityCode",
                     search: false,
-                    width: 150,
                     type: "tree",
                     dicUrl: "/api/blade-system/region/tree",
                     props: {
@@ -353,7 +353,7 @@
                     //经纬度替换
                     this.form.lat = arr[1]
                     this.form.lng = arr[0]
-                    this.form.address = arr[2];
+                    this.form.address = arr[2]
                 }
             },
             immediate: true,
diff --git a/src/views/community/index.vue b/src/views/community/index.vue
index 40705e7..4b197f1 100644
--- a/src/views/community/index.vue
+++ b/src/views/community/index.vue
@@ -32,6 +32,7 @@
             datetime: "",
             selectionList: [],
             option: {
+                labelWidth: 120,
                 height: "auto",
                 calcHeight: 54,
                 dialogWidth: 950,
@@ -47,14 +48,13 @@
                 dialogClickModal: false,
                 column: [
                     {
+                        width: 156,
+                        overHidden: true,
                         label: "社区名称",
                         prop: "name",
                         searchSpan: 5,
                         search: true,
                         span: 12,
-                        labelWidth: 120,
-                        width: 220,
-                        overHidden: true,
                         rules: [
                             {
                                 required: true,
@@ -64,14 +64,13 @@
                         ],
                     },
                     {
+                        width: 110,
+                        overHidden: true,
                         label: "社区编号",
                         prop: "code",
                         searchSpan: 5,
                         search: true,
                         span: 12,
-                        labelWidth: 120,
-                        width: 220,
-                        overHidden: true,
                         rules: [
                             {
                                 required: true,
@@ -82,23 +81,22 @@
                     },
 
                     {
+                        width: 110,
+                        label: "所属街道",
                         parent: false,
                         addDisplay: false,
                         editDisplay: false,
                         viewDisplay: false,
-                        width: 96,
-                        label: "所属街道",
                         prop: "townName",
                         search: true,
                         searchSpan: 4
                     },
 
                     {
+                        label: "所属街道",
                         hide: true,
                         parent: false,
-                        label: "所属街道",
                         prop: "streetCode",
-                        width: 150,
                         type: "tree",
                         dicUrl: "/api/blade-system/region/getTownTree",
                         props: {
@@ -115,9 +113,9 @@
                     },
 
                     {
+                        width: 110,
                         label: "社区民警",
                         prop: "resPoliceUserId",
-                        labelWidth: 120,
                         type: "tree",
                         dicUrl: "/api/blade-system/user/getUserListByParam?roleName=民警",
                         props: {
@@ -127,16 +125,15 @@
                         rules: [
                             {
                                 required: true,
-                                message: "请选择所属街道",
+                                message: "请选择社区民警",
                                 trigger: "blur",
                             },
                         ],
                     },
                     {
+                        width: 110,
                         label: "社区图片",
                         prop: "picUrl",
-                        width: 80,
-                        labelWidth: 120,
                         type: "upload",
                         listType: "picture-img",
                         action: "/api/blade-resource/oss/endpoint/put-file",
@@ -148,10 +145,10 @@
                     },
 
                     {
+                        overHidden: true,
                         label: "地址",
                         prop: "address",
                         span: 24,
-                        labelWidth: 120,
                         rules: [
                             {
                                 required: false,
@@ -163,7 +160,6 @@
                     {
                         label: "社区简介",
                         prop: "remark",
-                        labelWidth: 120,
                         component: "AvueUeditor",
                         options: {
                             action: "/api/blade-resource/oss/endpoint/put-file",
diff --git a/src/views/district/index.vue b/src/views/district/index.vue
index dd07e86..b7ec598 100644
--- a/src/views/district/index.vue
+++ b/src/views/district/index.vue
@@ -32,6 +32,7 @@
             datetime: "",
             selectionList: [],
             option: {
+                labelWidth: 120,
                 height: "auto",
                 calcHeight: 54,
                 dialogWidth: 950,
@@ -47,13 +48,13 @@
                 dialogClickModal: false,
                 column: [
                     {
-                        label: "小区名称",
+                        width: 220,
+                        overHidden: true,
+                        label: '小区名称',
                         prop: "name",
                         searchSpan: 4,
                         search: true,
                         span: 12,
-                        labelWidth: 120,
-                        width: 220,
                         rules: [
                             {
                                 required: true,
@@ -65,25 +66,26 @@
 
 
                     {
+                        width: 110,
+                        label: "所属街道",
                         parent: false,
                         addDisplay: false,
                         editDisplay: false,
                         viewDisplay: false,
-                        width: 96,
-                        label: "所属街道",
                         prop: "townStreetName",
                         search: true,
                         searchSpan: 4
                     },
 
                     {
-                        parent: false,
+                        width: 156,
+                        overHidden: true,
                         label: "所属社区",
+                        parent: false,
                         prop: "communityCode",
                         search: true,
                         searchSpan: 4,
                         searchType: 'input',
-                        width: 150,
                         type: "tree",
                         dicUrl: "/api/blade-system/region/tree",
                         props: {
@@ -100,18 +102,19 @@
                     },
 
                     {
+                        width: 110,
+                        overHidden: true,
+                        label: "所属网格",
                         addDisplay: false,
                         editDisplay: false,
                         viewDisplay: false,
-                        width: 96,
-                        label: "所属网格",
                         prop: "gridName",
                     },
 
                     {
+                        width: 110,
                         label: "小区图片",
                         prop: "picUrl",
-                        width: 80,
                         type: "upload",
                         listType: "picture-img",
                         action: "/api/blade-resource/oss/endpoint/put-file",
@@ -142,6 +145,7 @@
                         label: "地址",
                         prop: "address",
                         span: 24,
+                        overHidden: true,
                         rules: [
                             {
                                 required: true,
diff --git a/src/views/grid/gridman.vue b/src/views/grid/gridman.vue
index 69b9b94..8509b4d 100644
--- a/src/views/grid/gridman.vue
+++ b/src/views/grid/gridman.vue
@@ -90,6 +90,7 @@
                     },
 
                     {
+                        width: 110,
                         label: "网格员",
                         prop: "gridmanName",
                         searchSpan: 4,
@@ -118,10 +119,12 @@
                     },
 
                     {
+                        width: 156,
+                        overHidden: true,
+                        label: "所属社区",
                         addDisplay: false,
                         editDisplay: false,
                         viewDisplay: false,
-                        label: "所属社区",
                         prop: "communityName",
                         search: true,
                         searchSpan: 4,
@@ -133,10 +136,12 @@
                     },
 
                     {
+                        width: 110,
+                        overHidden: true,
+                        label: "所属网格",
                         addDisplay: false,
                         editDisplay: false,
                         viewDisplay: false,
-                        label: "所属网格",
                         prop: "gridName",
                         rules: [{
                             required: true,
diff --git a/src/views/grid/index.vue b/src/views/grid/index.vue
index 847b9c1..5f1c1e3 100644
--- a/src/views/grid/index.vue
+++ b/src/views/grid/index.vue
@@ -46,11 +46,12 @@
                 dialogClickModal: false,
                 column: [
                     {
+                        width: 156,
+                        overHidden: true,
+                        label: "所属社区",
                         addDisplay: false,
                         editDisplay: false,
                         viewDisplay: false,
-                        width: 160,
-                        label: "所属社区",
                         prop: "communityName",
                         search: true,
                         searchSpan: 4,
@@ -67,7 +68,6 @@
                         label: "所属社区",
                         prop: "communityCode",
                         search: false,
-                        width: 150,
                         type: "tree",
                         dicUrl: "/api/blade-system/region/tree",
                         props: {
@@ -84,6 +84,8 @@
                     },
 
                     {
+                        width: 110,
+                        overHidden: true,
                         label: "网格名称",
                         prop: "gridName",
                         searchSpan: 4,
diff --git a/src/views/gzll/components/ownersMemberManager.vue b/src/views/gzll/components/ownersMemberManager.vue
index 1ea4ab7..9a86c5e 100644
--- a/src/views/gzll/components/ownersMemberManager.vue
+++ b/src/views/gzll/components/ownersMemberManager.vue
@@ -135,7 +135,8 @@
                         message: "请输入手机号",
                         trigger: "blur",
                     },],
-                }, {
+                },
+                {
                     label: "小区",
                     prop: "areaId",
                     searchSpan: 5,
diff --git a/src/views/gzll/owners.vue b/src/views/gzll/owners.vue
index bb994bc..e89b733 100644
--- a/src/views/gzll/owners.vue
+++ b/src/views/gzll/owners.vue
@@ -106,10 +106,12 @@
                     },
 
                     {
+                        width: 220,
+                        overHidden: true,
+                        label: '小区名称',
                         addDisplay: false,
                         editDisplay: false,
                         viewDisplay: false,
-                        label: "小区",
                         prop: "areaName"
                     },
 
diff --git a/src/views/owners_committee/index.vue b/src/views/owners_committee/index.vue
index e3613e6..0fb3e97 100644
--- a/src/views/owners_committee/index.vue
+++ b/src/views/owners_committee/index.vue
@@ -51,7 +51,9 @@
                         search: true
                     },
                     {
-                        label: "小区名称",
+                        width: 220,
+                        overHidden: true,
+                        label: '小区名称',
                         prop: "areaName",
                         search: true
                     },
diff --git a/src/views/place/components/baseAllInfo.vue b/src/views/place/components/baseAllInfo.vue
index 06842f8..1faa0fb 100644
--- a/src/views/place/components/baseAllInfo.vue
+++ b/src/views/place/components/baseAllInfo.vue
@@ -43,6 +43,19 @@
 
 export default {
     data () {
+
+        //手机号格式校验
+        let validatorPhone = function (rule, value, callback) {
+            if (value) {
+                if (!/^1[3456789]\d{9}$/.test(value)) {
+                    callback(new Error('手机号格式有误!'))
+                } else {
+                    callback()
+                }
+            }
+            callback()
+        }
+
         return {
             placeExt: [],
 
@@ -108,12 +121,19 @@
                     },
 
                     {
-                        width: 110,
-                        label: "电话",
+                        width: 96,
+                        label: "手机号码",
                         prop: "principalPhone",
                         search: true,
                         searchSpan: 4,
                         slot: true,
+                        overHidden: true,
+                        rules: [
+                            {
+                                validator: validatorPhone,
+                                trigger: 'blur'
+                            }
+                        ],
                     },
 
                     {
@@ -122,7 +142,6 @@
                         label: "所属社区",
                         prop: "neiCode",
                         search: false,
-                        width: 150,
                         type: "tree",
                         dicUrl: "/api/blade-system/region/tree",
                         props: {
@@ -206,9 +225,21 @@
                         label: '法人信息',
                         prop: 'legalPerson'
                     },
+
                     {
-                        label: '法人电话',
-                        prop: 'legalTel'
+                        width: 96,
+                        label: "法人电话",
+                        prop: "legalTel",
+                        search: true,
+                        searchSpan: 4,
+                        slot: true,
+                        overHidden: true,
+                        rules: [
+                            {
+                                validator: validatorPhone,
+                                trigger: 'blur'
+                            }
+                        ],
                     },
 
                     {
@@ -262,22 +293,36 @@
                 border: true,
                 index: true,
                 dialogClickModal: false,
-                column: [{
-                    label: "名称",
-                    prop: "name",
-                    searchSpan: 4,
-                    search: true,
-                }, {
-                    label: "电话",
-                    prop: "telephone",
-                    searchSpan: 4,
-                    search: true,
-                }, {
-                    label: "暂住地",
-                    prop: "tempAddress",
-                    searchSpan: 4,
-                    search: true,
-                },]
+                column: [
+                    {
+                        label: "名称",
+                        prop: "name",
+                        searchSpan: 4,
+                        search: true,
+                    },
+
+                    {
+                        width: 96,
+                        label: "手机号码",
+                        prop: "telephone",
+                        search: true,
+                        searchSpan: 4,
+                        slot: true,
+                        overHidden: true,
+                        rules: [
+                            {
+                                validator: validatorPhone,
+                                trigger: 'blur'
+                            }
+                        ],
+                    },
+
+                    {
+                        label: "暂住地",
+                        prop: "tempAddress",
+                        searchSpan: 4,
+                        search: true,
+                    },]
             },
             holdPage: {
                 pageSize: 20,
diff --git a/src/views/place/index.vue b/src/views/place/index.vue
index fb3f85f..152f6d9 100644
--- a/src/views/place/index.vue
+++ b/src/views/place/index.vue
@@ -28,8 +28,8 @@
             </template>
 
             <template slot-scope="scope" slot="menu">
-                <el-button type="text" :disabled="scope.row.confirmFlag == 2" icon="el-icon-s-check" size="small"
-                    v-if="permission.place_audit_cur && scope.row.confirmFlag != 4" @click="auditCur(scope.row)">审核
+                <el-button type="text" :disabled="scope.row.confirmFlag == 2 || scope.row.confirmFlag != 4"
+                    icon="el-icon-s-check" size="small" v-if="permission.place_audit_cur" @click="auditCur(scope.row)">审核
                 </el-button>
 
                 <el-button type="text" icon="el-icon-edit" size="small" v-if="permission.place_manage_tenants"
@@ -69,6 +69,19 @@
 
 export default {
     data () {
+
+        //手机号格式校验
+        let validatorPhone = function (rule, value, callback) {
+            if (value) {
+                if (!/^1[3456789]\d{9}$/.test(value)) {
+                    callback(new Error('手机号格式有误!'))
+                } else {
+                    callback()
+                }
+            }
+            callback()
+        }
+
         return {
             curRow: {},
             roleBox: false,
@@ -100,14 +113,16 @@
                 selection: true,
                 dialogClickModal: false,
                 menuFixed: 'right',
+                labelWidth: 120,
                 column: [
                     {
                         width: 160,
                         span: 12,
                         label: "场所名称",
                         prop: "placeName",
-                        searchSpan: 4,
+                        searchSpan: 5,
                         search: true,
+                        overHidden: true,
                         rules: [{
                             required: true,
                             message: "请输入场所名称",
@@ -151,9 +166,11 @@
                     },
 
                     {
-                        label: "负责人",
+                        width: 96,
+                        searchLabelWidth: 120,
+                        label: "场所负责人",
                         prop: "principal",
-                        searchSpan: 4,
+                        searchSpan: 5,
                         search: true,
                         rules: [{
                             required: false,
@@ -163,33 +180,41 @@
                     },
 
                     {
-                        width: 110,
-                        label: "电话",
+                        width: 96,
+                        label: "手机号码",
                         prop: "principalPhone",
                         search: true,
-                        searchSpan: 3,
+                        searchSpan: 4,
                         slot: true,
+                        overHidden: true,
+                        rules: [
+                            {
+                                validator: validatorPhone,
+                                trigger: 'blur'
+                            }
+                        ],
                     },
 
                     {
+                        width: 110,
+                        label: "所属街道",
                         addDisplay: false,
                         editDisplay: false,
                         viewDisplay: false,
-                        width: 96,
-                        label: "所属街道",
                         prop: "townStreetName",
                         search: true,
                         searchSpan: 4
                     },
                     {
+                        width: 156,
+                        overHidden: true,
+                        label: "所属社区",
                         addDisplay: false,
                         editDisplay: false,
                         viewDisplay: false,
-                        label: "所属社区",
                         prop: "neiName",
                         search: true,
                         searchSpan: 4,
-                        width: 150,
                         rules: [
                             {
                                 required: true,
@@ -222,12 +247,13 @@
                     },
 
                     {
+                        width: 110,
+                        overHidden: true,
+                        label: "所属网格",
                         addDisplay: false,
                         editDisplay: false,
                         viewDisplay: false,
-                        label: "所属网格",
                         prop: "gridName",
-                        width: 150,
                         rules: [
                             {
                                 required: true,
@@ -339,7 +365,7 @@
                         prop: 'source',
                         type: "select",
                         search: true,
-                        searchSpan: 4,
+                        searchSpan: 5,
                         dicData: [{
                             label: '是',
                             value: 1
diff --git a/src/views/property/propertyCapitalApply.vue b/src/views/property/propertyCapitalApply.vue
index b42caaa..c7954db 100644
--- a/src/views/property/propertyCapitalApply.vue
+++ b/src/views/property/propertyCapitalApply.vue
@@ -73,11 +73,12 @@
                 dialogClickModal: false,
                 column: [
                     {
+                        width: 220,
+                        overHidden: true,
+                        label: '小区名称',
                         addDisplay: false,
                         editDisplay: false,
                         viewDisplay: false,
-                        width: 160,
-                        label: "小区名称",
                         prop: "districtName",
                         search: true,
                         searchSpan: 4,
@@ -91,7 +92,7 @@
                     {
                         hide: true,
                         parent: false,
-                        label: "小区名称",
+                        label: "小区",
                         prop: "districtId",
                         search: false,
                         type: 'tree',
@@ -106,7 +107,7 @@
                         width: 260,
                         rules: [{
                             required: true,
-                            message: "请选择小区名称",
+                            message: "请选择小区",
                             trigger: "blur",
                         },],
                     },
diff --git a/src/views/property/propertyCompanyDistrict.vue b/src/views/property/propertyCompanyDistrict.vue
index ff2a828..b1457a3 100644
--- a/src/views/property/propertyCompanyDistrict.vue
+++ b/src/views/property/propertyCompanyDistrict.vue
@@ -57,11 +57,12 @@
                 dialogClickModal: false,
                 column: [
                     {
+                        width: 220,
+                        overHidden: true,
+                        label: '小区名称',
                         addDisplay: false,
                         editDisplay: false,
                         viewDisplay: false,
-                        width: 160,
-                        label: "小区名称",
                         prop: "districtName",
                         search: true,
                         searchSpan: 4,
@@ -75,7 +76,7 @@
                     {
                         hide: true,
                         parent: false,
-                        label: "小区名称",
+                        label: "小区",
                         prop: "districtId",
                         search: false,
                         type: 'tree',
@@ -90,7 +91,7 @@
                         width: 260,
                         rules: [{
                             required: true,
-                            message: "请选择小区名称",
+                            message: "请选择小区",
                             trigger: "blur",
                         },],
                     },
diff --git a/src/views/task/reportForRepairs.vue b/src/views/task/reportForRepairs.vue
index 5914901..1ca0cf4 100644
--- a/src/views/task/reportForRepairs.vue
+++ b/src/views/task/reportForRepairs.vue
@@ -2,7 +2,7 @@
  * @Author: shuishen 1109946754@qq.com
  * @Date: 2023-12-14 17:10:00
  * @LastEditors: shuishen 1109946754@qq.com
- * @LastEditTime: 2024-01-02 10:14:01
+ * @LastEditTime: 2024-01-05 15:46:34
  * @FilePath: \jczz_web\src\views\task\reportForRepairs.vue
  * @Description:
  *
@@ -143,6 +143,17 @@
 
 export default {
     data () {
+        let validatorPhone = function (rule, value, callback) {
+            if (value) {
+                if (!/^1[3456789]\d{9}$/.test(value)) {
+                    callback(new Error('手机号格式有误!'))
+                } else {
+                    callback()
+                }
+            }
+            callback()
+        }
+
         return {
             colors: ['#99A9BF', '#F7BA2A', '#FF9900'],
             form: {},
@@ -173,93 +184,103 @@
                 //stripe:true,
                 // excelBtn: true,
                 dialogClickModal: false,
-                column: [{
-                    label: "类型",
-                    prop: "type",
-                    span: 12,
-                    searchSpan: 4,
-                    dataType: "number",
-                    type: "select",
-                    width: 100,
-                    dicUrl: "/api/blade-system/dict-biz/dictionary?code=reportForRepairsType",
-                    props: {
-                        label: "dictValue",
-                        value: "dictKey",
+                column: [
+                    {
+                        width: 96,
+                        label: "类型",
+                        prop: "type",
+                        span: 12,
+                        searchSpan: 4,
+                        dataType: "number",
+                        type: "select",
+                        dicUrl: "/api/blade-system/dict-biz/dictionary?code=reportForRepairsType",
+                        props: {
+                            label: "dictValue",
+                            value: "dictKey",
+                        },
+                        search: true,
                     },
-                    search: true,
-                },
-                {
-                    label: "姓名",
-                    prop: "realName",
-                    span: 12,
-                    searchSpan: 4,
-                    width: 100,
-                    search: true,
-                },
-                {
-                    label: "手机号",
-                    prop: "phone",
-                    span: 12,
-                    width: 100,
-                    searchSpan: 4,
-                    search: true,
-                },
-                {
-                    label: "图片",
-                    prop: "imageUrls",
-                    width: 80,
-                    type: "upload",
-                    listType: "picture-card",
-                    dataType: "string",
-                    multiple: true,
-                    action: "/api/blade-resource/oss/endpoint/put-file",
-                    propsHttp: {
-                        res: "data",
-                        name: 'name',
-                        url: "link",
+                    {
+                        width: 96,
+                        label: "姓名",
+                        prop: "realName",
+                        span: 12,
+                        searchSpan: 4,
+                        search: true,
                     },
-                    span: 24,
-                },
-                {
-                    label: "地点",
-                    prop: "addressName",
-                    overHidden: true
-                },
-                {
-                    addDisplay: false,
-                    editDisplay: false,
-                    slot: true,
-                    label: "状态",
-                    prop: "confirmFlag",
-                    overHidden: true
-                },
-                {
-                    label: "上报时间",
-                    prop: "createTime",
-                    width: 160,
-                    addDisplay: false,
-                    editDisplay: false,
-                    type: "date",
-                    format: "yyyy-MM-dd HH:mm:ss",
-                    valueFormat: "yyyy-MM-dd HH:mm:ss",
-                },
-                {
-                    label: "处理时间",
-                    prop: "confirmTime",
-                    width: 160,
-                    addDisplay: false,
-                    editDisplay: false,
-                    type: "date",
-                    format: "yyyy-MM-dd HH:mm:ss",
-                    valueFormat: "yyyy-MM-dd HH:mm:ss",
-                },
-                {
-                    label: "描述",
-                    prop: "remark",
-                    type: "textarea",
-                    hide: true,
-                    span: 24,
-                }
+
+                    {
+                        width: 96,
+                        label: "手机号码",
+                        prop: "phone",
+                        search: true,
+                        searchSpan: 3,
+                        slot: true,
+                        rules: [
+                            {
+                                validator: validatorPhone,
+                                trigger: 'blur'
+                            }
+                        ],
+                    },
+
+                    {
+                        width: 160,
+                        label: "图片",
+                        prop: "imageUrls",
+                        type: "upload",
+                        listType: "picture-card",
+                        dataType: "string",
+                        multiple: true,
+                        action: "/api/blade-resource/oss/endpoint/put-file",
+                        propsHttp: {
+                            res: "data",
+                            name: 'name',
+                            url: "link",
+                        },
+                        span: 24,
+                    },
+                    {
+                        label: "地点",
+                        prop: "addressName",
+                        overHidden: true
+                    },
+                    {
+                        width: 120,
+                        addDisplay: false,
+                        editDisplay: false,
+                        slot: true,
+                        label: "状态",
+                        prop: "confirmFlag",
+                        overHidden: true
+                    },
+                    {
+                        label: "上报时间",
+                        prop: "createTime",
+                        width: 160,
+                        addDisplay: false,
+                        editDisplay: false,
+                        type: "date",
+                        format: "yyyy-MM-dd HH:mm:ss",
+                        valueFormat: "yyyy-MM-dd HH:mm:ss",
+                    },
+                    {
+                        label: "处理时间",
+                        prop: "confirmTime",
+                        width: 160,
+                        addDisplay: false,
+                        editDisplay: false,
+                        type: "date",
+                        format: "yyyy-MM-dd HH:mm:ss",
+                        valueFormat: "yyyy-MM-dd HH:mm:ss",
+                    },
+                    {
+                        label: "描述",
+                        prop: "remark",
+                        type: "textarea",
+                        hide: true,
+                        span: 24,
+                    }
                 ],
             },
             data: [],
diff --git a/src/views/userHouse/components/householdManager.vue b/src/views/userHouse/components/householdManager.vue
index 731b74f..9341a25 100644
--- a/src/views/userHouse/components/householdManager.vue
+++ b/src/views/userHouse/components/householdManager.vue
@@ -48,7 +48,8 @@
     getToken
 } from '@/util/auth'
 import {
-    downloadXls
+    downloadXls,
+    findParentOrCur,
 } from "@/util/util"
 import {
     dateNow
@@ -59,6 +60,62 @@
 
 export default {
     data () {
+        let isCardId = function (rule, value, callback) {
+            // 15位和18位身份证号码的正则表达式
+            var regIdCard = /^(^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$)|(^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])((\d{4})|\d{3}[Xx])$)$/
+
+            // 如果通过该验证,说明身份证格式正确,但准确性还需计算
+            if (regIdCard.test(value)) {
+                if (value.length == 18) {
+                    var idCardWi = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10,
+                        5, 8, 4, 2) // 将前17位加权因子保存在数组里
+                    var idCardY = new Array(1, 0, 10, 9, 8, 7, 6, 5, 4, 3, 2) // 这是除以11后,可能产生的11位余数、验证码,也保存成数组
+                    var idCardWiSum = 0 // 用来保存前17位各自乖以加权因子后的总和
+                    for (var i = 0; i < 17; i++) {
+                        idCardWiSum += value.substring(i, i + 1) * idCardWi[i]
+                    }
+
+                    var idCardMod = idCardWiSum % 11// 计算出校验码所在数组的位置
+                    var idCardLast = value.substring(17)// 得到最后一位身份证号码
+
+                    // 如果等于2,则说明校验码是10,身份证号码最后一位应该是X
+                    if (idCardMod == 2) {
+                        if (idCardLast == "X" || idCardLast == "x") {
+                            callback()
+                        } else {
+                            callback(new Error("身份证号格式有误!"))
+                        }
+                    } else {
+                        // 用计算出的验证码与最后一位身份证号码匹配,如果一致,说明通过,否则是无效的身份证号码
+                        if (idCardLast == idCardY[idCardMod]) {
+                            callback()
+                        } else {
+                            callback(new Error("身份证号格式有误!"))
+                        }
+                    }
+                } else {
+                    callback()
+                }
+            } else {
+                //alert("身份证格式不正确!");
+                callback(new Error("身份证号格式有误!"))
+            }
+
+            callback()
+        }
+
+        //手机号格式校验
+        let validatorPhone = function (rule, value, callback) {
+            if (value) {
+                if (!/^1[3456789]\d{9}$/.test(value)) {
+                    callback(new Error('手机号格式有误!'))
+                } else {
+                    callback()
+                }
+            }
+            callback()
+        }
+
         return {
             form: {},
             search: {},
@@ -85,340 +142,397 @@
                 addBtn: true,
                 dialogType: 'dialog',
                 dialogClickModal: false,
-                column: [{
-                    label: "姓名",
-                    prop: "name",
-                    search: true,
-                    searchSpan: 4,
-                },
-
-                {
-                    label: "性别",
-                    prop: "gender",
-                    type: "select",
-                    dicData: [
-                        {
-                            label: "男",
-                            value: 1
+                column: [
+                    {
+                        label: "与业主关系",
+                        prop: "relationship",
+                        type: "select",
+                        dicUrl: "/api/blade-system/dict-biz/dictionary?code=roleRelation",
+                        dataType: "number",
+                        hide: true,
+                        props: {
+                            label: "dictValue",
+                            value: "dictKey",
                         },
-                        {
-                            label: "女",
-                            value: 0
+                        rules: [
+                            {
+                                required: true,
+                                message: "请选择与业主关系",
+                                trigger: "blur",
+                            }
+                        ],
+                    },
+
+                    {
+                        width: 96,
+                        label: "姓名",
+                        prop: "name",
+                        search: true,
+                        searchSpan: 3,
+                        rules: [
+                            {
+                                required: true,
+                                message: "请输入姓名",
+                                trigger: "blur",
+                            }
+                        ],
+                    },
+
+                    {
+                        hide: true,
+                        label: "证件类型",
+                        prop: "cardType",
+                        type: "select",
+                        dicUrl: "/api/blade-system/dict-biz/dictionary?code=cardType",
+                        dataType: "number",
+                        props: {
+                            label: "dictValue",
+                            value: "dictKey",
                         },
-                        {
-                            label: "未知",
-                            value: 1
-                        }
-                    ],
-                },
-
-                {
-                    label: "电话",
-                    prop: "phoneNumber",
-                    search: true,
-                    searchSpan: 4,
-                },
-
-                {
-                    label: "身份证号",
-                    prop: "idCard",
-                },
-                {
-                    label: "证件类型",
-                    prop: "cardType",
-                    type: "select",
-                    dicUrl: "/api/blade-system/dict-biz/dictionary?code=cardType",
-                    dataType: "number",
-                    props: {
-                        label: "dictValue",
-                        value: "dictKey",
                     },
-                },
-                {
-                    width: 160,
-                    label: "证件号码",
-                    prop: "cardNo",
-                },
 
-                // {
-                // label: "关系",
-                // prop: "roleType",
-                // type: "select",
-                // dicUrl: "/api/blade-system/dict-biz/dictionary?code=roleType",
-                // dataType: "number",
-                //     props: {
-                //         label: "dictValue",
-                //         value: "dictKey",
-                //     },
-                // },
-                {
-                    label: "与业主关系",
-                    prop: "relationship",
-                    type: "select",
-                    dicUrl: "/api/blade-system/dict-biz/dictionary?code=roleRelation",
-                    dataType: "number",
-                    hide: true,
-                    props: {
-                        label: "dictValue",
-                        value: "dictKey",
+                    {
+                        display: true,
+                        width: 160,
+                        label: "身份证号",
+                        prop: "idCard",
+                        search: true,
+                        searchSpan: 4,
+                        slot: true,
+                        rules: [
+                            {
+                                validator: isCardId,
+                                trigger: 'blur'
+                            }
+                        ],
                     },
-                },
-                {
-                    label: "小区",
-                    prop: "aoiName",
-                    display: false
-                },
-                {
-                    label: "地址",
-                    prop: "address",
-                    display: false
-                },
-                {
-                    label: "主要联系人",
-                    prop: "isPrimaryContact",
-                    type: "select",
-                    dicUrl: "/api/blade-system/dict-biz/dictionary?code=primaryContactType",
-                    dataType: "number",
-                    hide: true,
-                    props: {
-                        label: "dictValue",
-                        value: "dictKey",
+
+                    {
+                        hide: true,
+                        display: false,
+                        width: 160,
+                        label: "证件号码",
+                        prop: "cardNo",
                     },
-                },
-                {
-                    label: "居住情况",
-                    prop: "residentialStatus",
-                    type: "select",
-                    hide: true,
-                    dicUrl: "/api/blade-system/dict-biz/dictionary?code=residentialStatusType",
-                    dataType: "number",
-                    props: {
-                        label: "dictValue",
-                        value: "dictKey",
+
+
+                    {
+                        label: "出生日期",
+                        prop: "birthday",
+                        type: "date",
+                        format: "yyyy-MM-dd",
+                        valueFormat: "yyyy-MM-dd",
+                        hide: true,
                     },
-                },
 
-                {
-                    label: "生日",
-                    prop: "birthday",
-                    type: "date",
-                    format: "yyyy-MM-dd",
-                    valueFormat: "yyyy-MM-dd",
-                    hide: true,
-                },
-                {
-                    label: "港澳台通行证",
-                    prop: "hkmtPass",
-                    hide: true,
-                },
-                {
-                    label: "护照",
-                    prop: "passport",
-                    hide: true,
-                },
-                {
-                    label: "民族",
-                    prop: "ethnicity",
-                    type: "select",
-                    hide: true,
-                    dicUrl: "/api/blade-system/dict-biz/dictionary?code=nationType",
-                    dataType: "number",
-                    props: {
-                        label: "dictValue",
-                        value: "dictKey",
+
+                    {
+                        label: "性别",
+                        prop: "gender",
+                        type: "select",
+                        dicData: [
+                            {
+                                label: "男",
+                                value: 1
+                            },
+                            {
+                                label: "女",
+                                value: 0
+                            },
+                            {
+                                label: "未知",
+                                value: 1
+                            }
+                        ],
                     },
-                },
-                {
-                    label: "学历",
-                    prop: "education",
-                    type: "select",
-                    hide: true,
-                    dicUrl: "/api/blade-system/dict-biz/dictionary?code=educationType",
-                    dataType: "number",
-                    props: {
-                        label: "dictValue",
-                        value: "dictKey",
+
+                    {
+                        width: 120,
+                        label: "手机号码",
+                        prop: "phoneNumber",
+                        search: true,
+                        searchSpan: 3,
+                        slot: true,
+                        rules: [
+                            {
+                                required: true,
+                                message: "请输入手机号码",
+                                trigger: "blur",
+                            },
+                            {
+                                validator: validatorPhone,
+                                trigger: 'blur'
+                            }
+                        ],
                     },
-                },
 
-                {
-                    hide: true,
-                    parent: false,
-                    width: 160,
-                    label: "籍贯地行政区划",
-                    prop: "nativePlaceAdcode",
-                    type: "tree",
-                    props: {
-                        label: 'name',
-                        value: 'id'
+                    {
+                        label: "居住情况",
+                        prop: "residentialStatus",
+                        type: "select",
+                        hide: true,
+                        dicUrl: "/api/blade-system/dict-biz/dictionary?code=residentialStatusType",
+                        dataType: "number",
+                        props: {
+                            label: "dictValue",
+                            value: "dictKey",
+                        },
                     },
-                    dicUrl: `/api/blade-system/region/getBaseTree`,
-                },
 
-                {
-                    label: "户籍类型",
-                    prop: "residentType",
-                    type: "select",
-                    dicUrl: "/api/blade-system/dict-biz/dictionary?code=residentType",
-                    dataType: "number",
-                    props: {
-                        label: "dictValue",
-                        value: "dictKey",
+                    {
+                        label: "其他联系方式",
+                        prop: "otherContact",
+                        hide: true,
+                        rules: [
+                            {
+                                validator: validatorPhone,
+                                trigger: 'blur'
+                            }
+                        ],
                     },
-                },
 
-                {
-                    hide: true,
-                    parent: false,
-                    width: 160,
-                    label: "户籍地行政区划",
-                    prop: "residentAdcode",
-                    type: "tree",
-                    props: {
-                        label: 'name',
-                        value: 'id'
+                    {
+                        label: "主要联系人",
+                        prop: "isPrimaryContact",
+                        type: "select",
+                        dicUrl: "/api/blade-system/dict-biz/dictionary?code=primaryContactType",
+                        dataType: "number",
+                        hide: true,
+                        props: {
+                            label: "dictValue",
+                            value: "dictKey",
+                        },
                     },
-                    dicUrl: `/api/blade-system/region/getBaseTree`,
-                },
 
-                {
-                    label: "户籍地址",
-                    prop: "hukouRegistration",
-                    hide: true,
-                },
-
-                {
-                    disabled: false,
-                    label: "居住地行政区划",
-                    prop: "homeAdcode",
-                    hide: true,
-                    type: 'select',
-                    props: {
-                        label: 'name',
-                        value: 'code'
+                    {
+                        width: 220,
+                        overHidden: true,
+                        label: '小区名称',
+                        prop: "aoiName",
+                        display: false
                     },
-                    dicUrl: `/api/blade-system/region/select?code=361102`,
-                },
 
-                {
-                    disabled: false,
-                    label: "现居住地址",
-                    prop: "currentAddress",
-                    hide: true,
-                },
-
-                {
-                    label: "婚姻状态",
-                    prop: "maritalStatus",
-                    type: "select",
-                    hide: true,
-                    dicUrl: "/api/blade-system/dict-biz/dictionary?code=marriageStatusType",
-                    dataType: "number",
-                    props: {
-                        label: "dictValue",
-                        value: "dictKey",
+                    {
+                        label: "地址",
+                        prop: "address",
+                        display: false
                     },
-                },
-                {
-                    label: "车牌号",
-                    prop: "cardNumber",
-                    hide: true,
-                },
-                {
-                    label: "残疾证",
-                    prop: "disabilityCert",
-                    hide: true,
-                },
 
-                {
-                    hide: true,
-                    width: 160,
-                    label: "宗教信仰",
-                    prop: "religiousBelief",
-                },
-                {
-                    hide: true,
-                    label: "健康状况",
-                    prop: "healthStatus",
-                    type: "select",
-                    dicUrl: "/api/blade-system/dict-biz/dictionary?code=healthStatus",
-                    dataType: "number",
-                    props: {
-                        label: "dictValue",
-                        value: "dictKey",
+                    {
+                        hide: true,
+                        parent: false,
+                        width: 160,
+                        label: "籍贯地区",
+                        prop: "nativePlaceAdcode",
+                        type: "tree",
+                        typeformat (item, label, value) {
+                            return item.addressDetail
+                        },
+                        change: ({ value, column, item, dic }) => {
+                            item.addressDetail = findParentOrCur(dic, item.id)
+                        },
+                        props: {
+                            label: 'name',
+                            value: 'id'
+                        },
+                        dicUrl: `/api/blade-system/region/getBaseTree`,
                     },
-                },
-                {
-                    hide: true,
-                    width: 160,
-                    label: "疾病名称",
-                    prop: "diseaseName"
-                },
 
-                {
-                    hide: true,
-                    width: 160,
-                    label: "外出时间",
-                    prop: "goOutTime"
-                },
-                {
-                    hide: true,
-                    width: 160,
-                    label: "外出原因",
-                    prop: "goOutReason"
-                },
-
-                {
-                    hide: true,
-                    width: 160,
-                    label: "外出去向",
-                    prop: "goOutWhere"
-                },
-
-                {
-                    hide: true,
-                    width: 160,
-                    label: "外出详址",
-                    prop: "goOutAddr"
-                },
-
-                {
-                    label: "工作状态",
-                    prop: "workStatus",
-                    type: "select",
-                    hide: true,
-                    dicUrl: "/api/blade-system/dict-biz/dictionary?code=workStatusType",
-                    dataType: "number",
-                    props: {
-                        label: "dictValue",
-                        value: "dictKey",
+                    {
+                        hide: true,
+                        label: "户籍类型",
+                        prop: "residentType",
+                        type: "select",
+                        dicUrl: "/api/blade-system/dict-biz/dictionary?code=residentType",
+                        dataType: "number",
+                        props: {
+                            label: "dictValue",
+                            value: "dictKey",
+                        },
                     },
-                },
 
-                {
-                    label: "就职单位",
-                    prop: "employer",
-                    hide: true,
-                },
+                    {
+                        hide: true,
+                        parent: false,
+                        width: 160,
+                        label: "户籍地区",
+                        prop: "residentAdcode",
+                        type: "tree",
+                        typeformat (item, label, value) {
+                            return item.addressDetail
+                        },
+                        change: ({ value, column, item, dic }) => {
+                            item.addressDetail = findParentOrCur(dic, item.id)
+                        },
+                        props: {
+                            label: 'name',
+                            value: 'id'
+                        },
+                        dicUrl: `/api/blade-system/region/getBaseTree`,
+                    },
 
-                {
-                    hide: true,
-                    width: 160,
-                    label: "职业类别",
-                    prop: "occupation"
-                },
+                    {
+                        label: "户籍地址",
+                        prop: "hukouRegistration",
+                        hide: true,
+                    },
 
-                {
-                    hide: true,
-                    width: 160,
-                    label: "就职单位地址",
-                    prop: "cmpyRegAddr"
-                },
-                {
-                    label: "其他联系方式",
-                    prop: "otherContact",
-                    hide: true,
-                },
+                    {
+                        disabled: false,
+                        label: "居住地区",
+                        prop: "homeAdcode",
+                        hide: true,
+                        type: 'select',
+                        props: {
+                            label: 'name',
+                            value: 'code'
+                        },
+                        dicUrl: `/api/blade-system/region/select?code=361102`,
+                    },
+
+                    {
+                        disabled: false,
+                        label: "现居住地",
+                        prop: "currentAddress",
+                        hide: true,
+                    },
+
+                    {
+                        label: "民族",
+                        prop: "ethnicity",
+                        type: "select",
+                        hide: true,
+                        dicUrl: "/api/blade-system/dict-biz/dictionary?code=nationType",
+                        dataType: "number",
+                        props: {
+                            label: "dictValue",
+                            value: "dictKey",
+                        },
+                    },
+
+                    {
+                        label: "学历",
+                        prop: "education",
+                        type: "select",
+                        hide: true,
+                        dicUrl: "/api/blade-system/dict-biz/dictionary?code=educationType",
+                        dataType: "number",
+                        props: {
+                            label: "dictValue",
+                            value: "dictKey",
+                        },
+                    },
+
+                    {
+                        hide: true,
+                        width: 160,
+                        label: "职业类别",
+                        prop: "occupation"
+                    },
+
+                    {
+                        label: "工作单位",
+                        prop: "employer",
+                        hide: true,
+                    },
+
+                    {
+                        hide: true,
+                        width: 160,
+                        label: "工作单位地址",
+                        prop: "cmpyRegAddr"
+                    },
+
+                    {
+                        label: "工作状态",
+                        prop: "workStatus",
+                        type: "select",
+                        hide: true,
+                        dicUrl: "/api/blade-system/dict-biz/dictionary?code=workStatusType",
+                        dataType: "number",
+                        props: {
+                            label: "dictValue",
+                            value: "dictKey",
+                        },
+                    },
+
+                    {
+                        label: "婚姻状态",
+                        prop: "maritalStatus",
+                        type: "select",
+                        hide: true,
+                        dicUrl: "/api/blade-system/dict-biz/dictionary?code=marriageStatusType",
+                        dataType: "number",
+                        props: {
+                            label: "dictValue",
+                            value: "dictKey",
+                        },
+                    },
+
+                    {
+                        hide: true,
+                        width: 160,
+                        label: "宗教信仰",
+                        prop: "religiousBelief",
+                    },
+
+                    {
+                        hide: true,
+                        label: "健康状态",
+                        prop: "healthStatus",
+                        type: "select",
+                        dicUrl: "/api/blade-system/dict-biz/dictionary?code=healthStatus",
+                        dataType: "number",
+                        props: {
+                            label: "dictValue",
+                            value: "dictKey",
+                        },
+                    },
+
+                    {
+                        disabled: true,
+                        hide: true,
+                        width: 160,
+                        label: "疾病名称",
+                        prop: "diseaseName"
+                    },
+
+                    {
+                        hide: true,
+                        width: 160,
+                        label: "外出去向",
+                        prop: "goOutWhere"
+                    },
+
+                    {
+                        hide: true,
+                        width: 160,
+                        label: "外出原因",
+                        prop: "goOutReason"
+                    },
+
+                    {
+                        hide: true,
+                        label: "外出时间",
+                        prop: "goOutTime",
+                        type: "date",
+                        format: "yyyy-MM-dd",
+                        valueFormat: "yyyy-MM-dd",
+                        width: 160,
+                    },
+
+                    {
+                        hide: true,
+                        width: 160,
+                        label: "外出详址",
+                        prop: "goOutAddr"
+                    },
+
+                    {
+                        label: "车牌号",
+                        prop: "cardNumber",
+                        hide: true,
+                    },
                 ]
             },
             houseCode: "",
@@ -494,8 +608,44 @@
                     homeAdcodeColumn.disabled = false
                 }
             },
-            immediate: true
-        }
+        },
+
+        'form.cardType': {
+            handler (newData) {
+                let idCardColumn = this.findObject(
+                    this.option.column,
+                    'idCard'
+                )
+
+                let cardNoColumn = this.findObject(
+                    this.option.column,
+                    'cardNo'
+                )
+
+                if (newData == 111) {
+                    idCardColumn.display = true
+                    cardNoColumn.display = false
+                } else {
+                    idCardColumn.display = false
+                    cardNoColumn.display = true
+                }
+            },
+        },
+
+        'form.healthStatus': {
+            handler (newData) {
+                let diseaseNameColumn = this.findObject(
+                    this.option.column,
+                    'diseaseName'
+                )
+
+                if (newData == 3) {
+                    diseaseNameColumn.disabled = false
+                } else {
+                    diseaseNameColumn.disabled = true
+                }
+            },
+        },
     },
     computed: {
         ...mapGetters(["userInfo", "permission"]),
diff --git a/src/views/userHouse/hireInfoList.vue b/src/views/userHouse/hireInfoList.vue
index a3ec365..5a2dc50 100644
--- a/src/views/userHouse/hireInfoList.vue
+++ b/src/views/userHouse/hireInfoList.vue
@@ -1,801 +1,808 @@
 <template>
-  <el-row>
-    <el-col :span="24">
-      <basic-container>
-        <avue-crud :option="option" :search.sync="search" :table-loading="loading" :data="data" ref="crud"
-          v-model="form" :permission="permissionList" @row-del="rowDel" @row-update="rowUpdate" @row-save="rowSave"
-          :before-open="beforeOpen" :page.sync="page" @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" plain icon="el-icon-delete" v-if="permission.houseRental_delete"
-              @click="handleDelete">删 除
-            </el-button>
-          </template>
+    <el-row>
+        <el-col :span="24">
+            <basic-container>
+                <avue-crud :option="option" :search.sync="search" :table-loading="loading" :data="data" ref="crud"
+                    v-model="form" :permission="permissionList" @row-del="rowDel" @row-update="rowUpdate"
+                    @row-save="rowSave" :before-open="beforeOpen" :page.sync="page" @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" plain icon="el-icon-delete"
+                            v-if="permission.houseRental_delete" @click="handleDelete">删 除
+                        </el-button>
+                    </template>
 
-          <template slot-scope="scope" slot="menu">
-            <el-button type="text" icon="el-icon-circle-plus-outline" size="small" v-if="permission.househould_manager"
-              @click="ManageTenants(scope.row)">管理租户
-            </el-button>
-          <!--  <el-button type="success" size="small" plain icon="el-icon-upload2" @click="handleImport">导入
+                    <template slot-scope="scope" slot="menu">
+                        <el-button type="text" icon="el-icon-circle-plus-outline" size="small"
+                            v-if="permission.househould_manager" @click="ManageTenants(scope.row)">管理租户
+                        </el-button>
+                        <!--  <el-button type="success" size="small" plain icon="el-icon-upload2" @click="handleImport">导入
             </el-button>
             <el-button type="warning" size="small" plain icon="el-icon-download" @click="handleExport">导出
             </el-button> -->
-          </template>
-          <template slot-scope="{row}" slot="tenantName">
-            <el-tag>{{ row.tenantName }}</el-tag>
-          </template>
-          <template slot-scope="{row}" slot="roleName">
-            <el-tag>{{ row.roleName }}</el-tag>
-          </template>
-          <template slot-scope="{row}" slot="deptName">
-            <el-tag>{{ row.deptName }}</el-tag>
-          </template>
-          <template slot-scope="{row}" slot="userTypeName">
-            <el-tag>{{ row.userTypeName }}</el-tag>
-          </template>
-        </avue-crud>
+                    </template>
+                    <template slot-scope="{row}" slot="tenantName">
+                        <el-tag>{{ row.tenantName }}</el-tag>
+                    </template>
+                    <template slot-scope="{row}" slot="roleName">
+                        <el-tag>{{ row.roleName }}</el-tag>
+                    </template>
+                    <template slot-scope="{row}" slot="deptName">
+                        <el-tag>{{ row.deptName }}</el-tag>
+                    </template>
+                    <template slot-scope="{row}" slot="userTypeName">
+                        <el-tag>{{ row.userTypeName }}</el-tag>
+                    </template>
+                </avue-crud>
 
 
-        <el-dialog title="租户管理" append-to-body :visible.sync="roleBox">
-          <avue-crud :option="houseHoldOption" :search.sync="search" :table-loading="loading" :data="houseHold"
-            ref="crud" v-model="houseHoldForm" :permission="permissionList" @row-del="houseHoldRowDel"
-            @row-update="houseHoldRowUpdate" @row-save="houseHoldRowSave" :page.sync="holdPage"
-            @search-change="searchChange" @search-reset="searchReset" @selection-change="selectionChange"
-            @current-change="currentChange" @size-change="sizeChange" @refresh-change="refreshChange"></avue-crud>
+                <el-dialog title="租户管理" append-to-body :visible.sync="roleBox">
+                    <avue-crud :option="houseHoldOption" :search.sync="search" :table-loading="loading" :data="houseHold"
+                        ref="crud" v-model="houseHoldForm" :permission="permissionList" @row-del="houseHoldRowDel"
+                        @row-update="houseHoldRowUpdate" @row-save="houseHoldRowSave" :page.sync="holdPage"
+                        @search-change="searchChange" @search-reset="searchReset" @selection-change="selectionChange"
+                        @current-change="currentChange" @size-change="sizeChange"
+                        @refresh-change="refreshChange"></avue-crud>
 
-          <span slot="footer" class="dialog-footer">
-            <el-button @click="roleBox = false">取 消</el-button>
-            <el-button type="primary" @click="submitRole">确 定</el-button>
-          </span>
-        </el-dialog>
+                    <span slot="footer" class="dialog-footer">
+                        <el-button @click="roleBox = false">取 消</el-button>
+                        <el-button type="primary" @click="submitRole">确 定</el-button>
+                    </span>
+                </el-dialog>
 
 
-        <el-dialog title="用户数据导入" append-to-body :visible.sync="excelBox" width="555px">
-          <avue-form :option="excelOption" v-model="excelForm" :upload-after="uploadAfter">
-            <template slot="excelTemplate">
-              <el-button type="primary" @click="handleTemplate">
-                点击下载<i class="el-icon-download el-icon--right"></i>
-              </el-button>
-            </template>
-          </avue-form>
-        </el-dialog>
-      </basic-container>
-    </el-col>
-  </el-row>
+                <el-dialog title="用户数据导入" append-to-body :visible.sync="excelBox" width="555px">
+                    <avue-form :option="excelOption" v-model="excelForm" :upload-after="uploadAfter">
+                        <template slot="excelTemplate">
+                            <el-button type="primary" @click="handleTemplate">
+                                点击下载<i class="el-icon-download el-icon--right"></i>
+                            </el-button>
+                        </template>
+                    </avue-form>
+                </el-dialog>
+            </basic-container>
+        </el-col>
+    </el-row>
 </template>
 
 <script>
-  import {
+import {
     getList as getHouseholdList,
     remove as householdDel,
     add as householdAdd,
     update as householdUpdate,
     getDetatil as getHouseholdDetatil
-  } from "@/api/userHouse/list/houseHold.js";
-  import {
+} from "@/api/userHouse/list/houseHold.js"
+import {
     getList,
     getPageList,
     remove,
     add,
     update,
     getDetatil
-  } from "@/api/userHouse/list/houseRental.js";
-  import {
+} from "@/api/userHouse/list/houseRental.js"
+import {
     getList as getHouseList,
     getDetatil as getHouseDetail
-  } from "@/api/userHouse/list/house.js";
-  import {
+} from "@/api/userHouse/list/house.js"
+import {
     exportBlob
-  } from "@/api/common";
-  import {
+} from "@/api/common"
+import {
     mapGetters
-  } from "vuex";
-  import {
+} from "vuex"
+import {
     getToken
-  } from '@/util/auth';
-  import {
+} from '@/util/auth'
+import {
     downloadXls
-  } from "@/util/util";
-  import {
+} from "@/util/util"
+import {
     dateNow
-  } from "@/util/date";
-  import NProgress from 'nprogress';
-  import 'nprogress/nprogress.css';
-  import func from "@/util/func";
-  import Qs from "qs";
-  import website from '@/config/website';
-  export default {
-    data() {
-      return {
-        roleBox: false,
-        form: {},
-        search: {},
-        excelBox: false,
-        selectionList: [],
-        query: {},
-        loading: true,
-        page: {
-          pageSize: 10,
-          currentPage: 1,
-          total: 0
-        },
-        rowHouseHold: {},
-        houseHoldForm: {
-          relationship: 18,
-          roleType: 2,
-        },
-        houseHold: [],
-        holdPage: {
-          pageSize: 100,
-          currentPage: 1,
-          total: 0
-        },
-        houseHoldOption: {
-          height: 'auto',
-          calcHeight: 80,
-          tip: false,
-          searchShow: true,
-          searchMenuSpan: 6,
-          border: true,
-          index: true,
-          // selection: true,
-          viewBtn: true,
-          addBtn: true,
-          dialogType: 'drawer',
-          dialogClickModal: false,
-          column: [{
-              label: "姓名",
-              prop: "name",
-              // search: true,
-              searchSpan: 4,
-            },
-            {
-              label: "电话",
-              prop: "phoneNumber",
-              // search: true,
-              searchSpan: 4,
-            },
-            {
-              label: "身份证号",
-              prop: "idCard",
-              // search: true,
-              searchSpan: 4,
-            },
-            {
-              label: "性别",
-              prop: "gender",
-              type: "select",
-              dicData: [{
-                  label: "男",
-                  value: 1
-                },
-                {
-                  label: "女",
-                  value: 0
-                },
-                {
-                  label: "未知",
-                  value: 1
-                }
-              ],
-            },
-            {
-              label: "关系",
-              prop: "relationship",
-              type: "select",
-              dicUrl: "/api/blade-system/dict-biz/dictionary?code=roleRelation",
-              dataType: "number",
-              props: {
-                label: "dictValue",
-                value: "dictKey",
-              },
-              display: false
-            },
-            {
-              label: "小区",
-              prop: "aoiName",
-              // search: true,
-              searchSpan: 4,
-              display: false
-            },
-            {
-              label: "地址",
-              prop: "address",
-              display: false
-            },
-          ]
-        },
-        option: {
-          height: 'auto',
-          calcHeight: 80,
-          tip: false,
-          searchShow: true,
-          searchMenuSpan: 6,
-          border: true,
-          index: true,
-          selection: true,
-          viewBtn: true,
-          addBtn: true,
-          dialogType: 'drawer',
-          dialogClickModal: false,
-          menuWidth: 280,
-          column: [{
-              label: "房屋",
-              prop: "address",
-              display: false
-            },
-            {
-              label: "房屋",
-              prop: "houseCode",
-              hide: true,
-              type: "table",
-              children: {
-                border: true,
-                height: 400,
-                searchShow: true,
-                searchMenuSpan: 6,
-                submitText: "确定",
-                column: [{
-                    label: "小区",
-                    prop: "districtName",
-                    search: true,
-                    searchSpan: 4,
-                    rules: [{
-                      required: true,
-                      message: "请选择小区",
-                      trigger: "blur",
-                    }, ],
-                  }, {
-                    label: "地址",
-                    prop: "address",
-                    width: 180,
-                    display: false
-                  },
-                  {
-                    label: "手机",
-                    prop: "phone",
-                    rules: [{
-                      required: true,
-                      message: "请输入绑定手机",
-                      trigger: "blur",
-                    }, ],
-                  },
-                ],
-              },
-              page: {
+} from "@/util/date"
+import NProgress from 'nprogress'
+import 'nprogress/nprogress.css'
+import func from "@/util/func"
+import Qs from "qs"
+import website from '@/config/website'
+export default {
+    data () {
+        return {
+            roleBox: false,
+            form: {},
+            search: {},
+            excelBox: false,
+            selectionList: [],
+            query: {},
+            loading: true,
+            page: {
                 pageSize: 10,
                 currentPage: 1,
                 total: 0
-              },
-              formatter: (row) => {
-                console.log(row, 888)
-                if (!row.districtName) return ''
-                return row.districtName + '-' + row.unit + row.building + row.room
-              },
-              onLoad: ({
-                page,
-                value,
-                data
-              }, callback) => {
-                //首次加载去查询对应的值
-                if (value) {
-                  getHouseDetail({
-                    houseCode: value
-                  }).then(res => {
-                    var resData = res.data.data;
-                    // 查询对应行数据
-                    callback(resData)
-                    return
-                  });
-                }
-                if (page) {
-                  this.loading = true;
-                  getHouseList(page.currentPage, page.pageSize, Object.assign(data)).then(res => {
-                    const resData = res.data.data;
-                    var total = resData.total;
-                    var data = resData.records;
-                    this.loading = false;
-                    this.selectionClear();
-                    //分页查询信息
-                    callback({
-                      total: total,
-                      data: data
-                    })
-                  });
-                }
-              },
-              props: {
-                label: 'address',
-                value: 'houseCode'
-              }
             },
-            {
-              label: "关系",
-              prop: "tenantRelationship",
-              search: true,
-              searchSpan: 4,
-              width: 100,
-              type: "select",
-              dicData: [{
-                  label: "同一户",
-                  value: 1
+            rowHouseHold: {},
+            houseHoldForm: {
+                relationship: 18,
+                roleType: 2,
+            },
+            houseHold: [],
+            holdPage: {
+                pageSize: 100,
+                currentPage: 1,
+                total: 0
+            },
+            houseHoldOption: {
+                height: 'auto',
+                calcHeight: 80,
+                tip: false,
+                searchShow: true,
+                searchMenuSpan: 6,
+                border: true,
+                index: true,
+                // selection: true,
+                viewBtn: true,
+                addBtn: true,
+                dialogType: 'drawer',
+                dialogClickModal: false,
+                column: [{
+                    label: "姓名",
+                    prop: "name",
+                    // search: true,
+                    searchSpan: 4,
                 },
                 {
-                  label: "不同一户",
-                  value: 2
-                }
-              ],
-              rules: [{
-                required: true,
-                message: "请选择关系",
-                trigger: "blur",
-              }, ],
-            },
-            {
-              label: "房屋状态",
-              prop: "houseStatus",
-              search: true,
-              searchSpan: 4,
-              width: 100,
-              type: "select",
-              dicData: [{
-                  label: "部分出租",
-                  value: 1
+                    label: "电话",
+                    prop: "phoneNumber",
+                    // search: true,
+                    searchSpan: 4,
                 },
                 {
-                  label: "全部出租",
-                  value: 2
-                }
-              ],
-              rules: [{
-                required: true,
-                message: "请选择房屋状态",
-                trigger: "blur",
-              }, ],
+                    label: "身份证号",
+                    prop: "idCard",
+                    // search: true,
+                    searchSpan: 4,
+                },
+                {
+                    label: "性别",
+                    prop: "gender",
+                    type: "select",
+                    dicData: [{
+                        label: "男",
+                        value: 1
+                    },
+                    {
+                        label: "女",
+                        value: 0
+                    },
+                    {
+                        label: "未知",
+                        value: 1
+                    }
+                    ],
+                },
+                {
+                    label: "关系",
+                    prop: "relationship",
+                    type: "select",
+                    dicUrl: "/api/blade-system/dict-biz/dictionary?code=roleRelation",
+                    dataType: "number",
+                    props: {
+                        label: "dictValue",
+                        value: "dictKey",
+                    },
+                    display: false
+                },
+                {
+                    width: 220,
+                    overHidden: true,
+                    label: '小区名称',
+                    prop: "aoiName",
+                    // search: true,
+                    searchSpan: 4,
+                    display: false
+                },
+                {
+                    label: "地址",
+                    prop: "address",
+                    display: false
+                },
+                ]
             },
-            {
-              label: "用途",
-              prop: "rentalUse",
-              type: "select",
-              search: true,
-              searchSpan: 3,
-              dataType: "number",
-              width: 100,
-              dicUrl: "/api/blade-system/dict-biz/dictionary?code=rentalUseType",
-              props: {
-                label: "dictValue",
-                value: "dictKey",
-              },
-              rules: [{
-                required: true,
-                message: "请选择用途",
-                trigger: "blur",
-              }, ],
-            },
-            {
-              label: "租房时间",
-              prop: "rentalTime",
-              type: "date",
-              format: "yyyy-MM-dd",
-              valueFormat: "yyyy-MM-dd",
-              width: 100,
-              rules: [{
-                required: true,
-                message: "请选择租房时间",
-                trigger: "blur",
-              }, ],
-            },
-            {
-              label: "到期时间",
-              prop: "dueTime",
-              type: "date",
-              format: "yyyy-MM-dd",
-              valueFormat: "yyyy-MM-dd",
-              width: 100,
-              rules: [{
-                required: true,
-                message: "请选择到期时间",
-                trigger: "blur",
-              }, ],
-            },
+            option: {
+                height: 'auto',
+                calcHeight: 80,
+                tip: false,
+                searchShow: true,
+                searchMenuSpan: 6,
+                border: true,
+                index: true,
+                selection: true,
+                viewBtn: true,
+                addBtn: true,
+                dialogType: 'drawer',
+                dialogClickModal: false,
+                menuWidth: 280,
+                column: [{
+                    label: "房屋",
+                    prop: "address",
+                    display: false
+                },
+                {
+                    label: "房屋",
+                    prop: "houseCode",
+                    hide: true,
+                    type: "table",
+                    children: {
+                        border: true,
+                        height: 400,
+                        searchShow: true,
+                        searchMenuSpan: 6,
+                        submitText: "确定",
+                        column: [
+                            {
+                                width: 220,
+                                overHidden: true,
+                                label: '小区名称',
+                                prop: "districtName",
+                                search: true,
+                                searchSpan: 4,
+                                rules: [{
+                                    required: true,
+                                    message: "请输入小区名称",
+                                    trigger: "blur",
+                                },],
+                            },
+                            {
+                                label: "地址",
+                                prop: "address",
+                                width: 180,
+                                display: false
+                            },
+                            {
+                                label: "手机",
+                                prop: "phone",
+                                rules: [{
+                                    required: true,
+                                    message: "请输入绑定手机",
+                                    trigger: "blur",
+                                },],
+                            },
+                        ],
+                    },
+                    page: {
+                        pageSize: 10,
+                        currentPage: 1,
+                        total: 0
+                    },
+                    formatter: (row) => {
+                        console.log(row, 888)
+                        if (!row.districtName) return ''
+                        return row.districtName + '-' + row.unit + row.building + row.room
+                    },
+                    onLoad: ({
+                        page,
+                        value,
+                        data
+                    }, callback) => {
+                        //首次加载去查询对应的值
+                        if (value) {
+                            getHouseDetail({
+                                houseCode: value
+                            }).then(res => {
+                                var resData = res.data.data
+                                // 查询对应行数据
+                                callback(resData)
+                                return
+                            })
+                        }
+                        if (page) {
+                            this.loading = true
+                            getHouseList(page.currentPage, page.pageSize, Object.assign(data)).then(res => {
+                                const resData = res.data.data
+                                var total = resData.total
+                                var data = resData.records
+                                this.loading = false
+                                this.selectionClear()
+                                //分页查询信息
+                                callback({
+                                    total: total,
+                                    data: data
+                                })
+                            })
+                        }
+                    },
+                    props: {
+                        label: 'address',
+                        value: 'houseCode'
+                    }
+                },
+                {
+                    label: "关系",
+                    prop: "tenantRelationship",
+                    search: true,
+                    searchSpan: 4,
+                    width: 100,
+                    type: "select",
+                    dicData: [{
+                        label: "同一户",
+                        value: 1
+                    },
+                    {
+                        label: "不同一户",
+                        value: 2
+                    }
+                    ],
+                    rules: [{
+                        required: true,
+                        message: "请选择关系",
+                        trigger: "blur",
+                    },],
+                },
+                {
+                    label: "房屋状态",
+                    prop: "houseStatus",
+                    search: true,
+                    searchSpan: 4,
+                    width: 100,
+                    type: "select",
+                    dicData: [{
+                        label: "部分出租",
+                        value: 1
+                    },
+                    {
+                        label: "全部出租",
+                        value: 2
+                    }
+                    ],
+                    rules: [{
+                        required: true,
+                        message: "请选择房屋状态",
+                        trigger: "blur",
+                    },],
+                },
+                {
+                    label: "用途",
+                    prop: "rentalUse",
+                    type: "select",
+                    search: true,
+                    searchSpan: 3,
+                    dataType: "number",
+                    width: 100,
+                    dicUrl: "/api/blade-system/dict-biz/dictionary?code=rentalUseType",
+                    props: {
+                        label: "dictValue",
+                        value: "dictKey",
+                    },
+                    rules: [{
+                        required: true,
+                        message: "请选择用途",
+                        trigger: "blur",
+                    },],
+                },
+                {
+                    label: "租房时间",
+                    prop: "rentalTime",
+                    type: "date",
+                    format: "yyyy-MM-dd",
+                    valueFormat: "yyyy-MM-dd",
+                    width: 100,
+                    rules: [{
+                        required: true,
+                        message: "请选择租房时间",
+                        trigger: "blur",
+                    },],
+                },
+                {
+                    label: "到期时间",
+                    prop: "dueTime",
+                    type: "date",
+                    format: "yyyy-MM-dd",
+                    valueFormat: "yyyy-MM-dd",
+                    width: 100,
+                    rules: [{
+                        required: true,
+                        message: "请选择到期时间",
+                        trigger: "blur",
+                    },],
+                },
 
-            {
-              label: "租赁期限",
-              prop: "dldType",
-              width: 100,
-              display: false,
-              search: true,
-              searchSpan: 3,
-              type: "select",
-              dicData: [{
-                  label: "长期",
-                  value: 1
+                {
+                    label: "租赁期限",
+                    prop: "dldType",
+                    width: 100,
+                    display: false,
+                    search: true,
+                    searchSpan: 3,
+                    type: "select",
+                    dicData: [{
+                        label: "长期",
+                        value: 1
+                    },
+                    {
+                        label: "中期",
+                        value: 2
+                    },
+                    {
+                        label: "短期",
+                        value: 3
+                    }
+                    ],
                 },
                 {
-                  label: "中期",
-                  value: 2
+                    label: "审核状态",
+                    prop: "auditStatus",
+                    type: "select",
+                    width: 80,
+                    search: true,
+                    searchSpan: 4,
+                    display: false,
+                    dicData: [{
+                        label: "已确认",
+                        value: 1
+                    },
+                    {
+                        label: "待确认",
+                        value: 0
+                    }
+                    ],
                 },
                 {
-                  label: "短期",
-                  value: 3
-                }
-              ],
-            },
-            {
-              label: "审核状态",
-              prop: "auditStatus",
-              type: "select",
-              width: 80,
-              search: true,
-              searchSpan: 4,
-              display: false,
-              dicData: [{
-                  label: "已确认",
-                  value: 1
+                    label: "创建时间",
+                    prop: "createTime",
+                    display: false,
+                    width: 160,
                 },
                 {
-                  label: "待确认",
-                  value: 0
-                }
-              ],
+                    label: "合同",
+                    prop: "fileUrls",
+                    // align:'center',
+                    width: 80,
+                    type: "upload",
+                    listType: "picture-img",
+                    action: "/api/blade-resource/oss/endpoint/put-file",
+                    propsHttp: {
+                        res: "data",
+                        url: "link",
+                    },
+                    hide: true,
+                    span: 24,
+                },
+                ]
             },
-            {
-              label: "创建时间",
-              prop: "createTime",
-              display: false,
-              width: 160,
-            },
-            {
-              label: "合同",
-              prop: "fileUrls",
-              // align:'center',
-              width: 80,
-              type: "upload",
-              listType: "picture-img",
-              action: "/api/blade-resource/oss/endpoint/put-file",
-              propsHttp: {
-                res: "data",
-                url: "link",
-              },
-              hide: true,
-              span: 24,
-            },
-          ]
-        },
-        data: [],
+            data: [],
 
-        excelForm: {},
-        excelOption: {
-          submitBtn: false,
-          emptyBtn: false,
-          column: [{
-              label: '模板上传',
-              prop: 'excelFile',
-              type: 'upload',
-              drag: true,
-              loadText: '模板上传中,请稍等',
-              span: 24,
-              propsHttp: {
-                res: 'data'
-              },
-              tip: '请上传 .xls,.xlsx 标准格式文件',
-              action: "/api/blade-system/user/import-user"
-            },
-            {
-              label: "数据覆盖",
-              prop: "isCovered",
-              type: "switch",
-              align: "center",
-              width: 80,
-              dicData: [{
-                  label: "否",
-                  value: 0
+            excelForm: {},
+            excelOption: {
+                submitBtn: false,
+                emptyBtn: false,
+                column: [{
+                    label: '模板上传',
+                    prop: 'excelFile',
+                    type: 'upload',
+                    drag: true,
+                    loadText: '模板上传中,请稍等',
+                    span: 24,
+                    propsHttp: {
+                        res: 'data'
+                    },
+                    tip: '请上传 .xls,.xlsx 标准格式文件',
+                    action: "/api/blade-system/user/import-user"
                 },
                 {
-                  label: "是",
-                  value: 1
+                    label: "数据覆盖",
+                    prop: "isCovered",
+                    type: "switch",
+                    align: "center",
+                    width: 80,
+                    dicData: [{
+                        label: "否",
+                        value: 0
+                    },
+                    {
+                        label: "是",
+                        value: 1
+                    }
+                    ],
+                    value: 0,
+                    slot: true,
+                    rules: [{
+                        required: true,
+                        message: "请选择是否覆盖",
+                        trigger: "blur"
+                    }]
+                },
+                {
+                    label: '模板下载',
+                    prop: 'excelTemplate',
+                    formslot: true,
+                    span: 24,
                 }
-              ],
-              value: 0,
-              slot: true,
-              rules: [{
-                required: true,
-                message: "请选择是否覆盖",
-                trigger: "blur"
-              }]
-            },
-            {
-              label: '模板下载',
-              prop: 'excelTemplate',
-              formslot: true,
-              span: 24,
+                ]
             }
-          ]
         }
-      };
     },
     watch: {},
     computed: {
-      ...mapGetters(["userInfo", "permission"]),
-      permissionList() {
-        return {
-          addBtn: this.vaildData(this.permission.houseRental_add, true),
-          viewBtn: this.vaildData(this.permission.houseRental_view, true),
-          delBtn: this.vaildData(this.permission.houseRental_delete, true),
-          editBtn: this.vaildData(this.permission.houseRental_edit, true)
-        };
-      }
+        ...mapGetters(["userInfo", "permission"]),
+        permissionList () {
+            return {
+                addBtn: this.vaildData(this.permission.houseRental_add, true),
+                viewBtn: this.vaildData(this.permission.houseRental_view, true),
+                delBtn: this.vaildData(this.permission.houseRental_delete, true),
+                editBtn: this.vaildData(this.permission.houseRental_edit, true)
+            }
+        }
     },
-    mounted() {},
+    mounted () { },
     methods: {
 
-      ManageTenants(item) {
-        this.roleBox = true
-        this.rowHouseHold = item
-        this.onLoadHouseHold()
-      },
+        ManageTenants (item) {
+            this.roleBox = true
+            this.rowHouseHold = item
+            this.onLoadHouseHold()
+        },
 
-      onLoadHouseHold() {
-        let params = {
-          housingRentalId: this.rowHouseHold.id,
-        }
-        getHouseholdList(this.holdPage.currentPage, this.holdPage.pageSize, Object.assign(params)).then(res => {
-          const data = res.data.data;
-          this.houseHold = data.records;
-          this.loading = false;
-          this.selectionClear();
-        });
-      },
+        onLoadHouseHold () {
+            let params = {
+                housingRentalId: this.rowHouseHold.id,
+            }
+            getHouseholdList(this.holdPage.currentPage, this.holdPage.pageSize, Object.assign(params)).then(res => {
+                const data = res.data.data
+                this.houseHold = data.records
+                this.loading = false
+                this.selectionClear()
+            })
+        },
 
-      houseHoldRowSave(row, done, loading) {
-        row.aoiName = this.rowHouseHold.aoiName
-        row.address = this.rowHouseHold.address
-        row.housingRentalId = this.rowHouseHold.id
-        row.houseCode = this.rowHouseHold.houseCode
-        householdAdd(row).then(() => {
-          this.initFlag = false;
-          this.onLoadHouseHold();
-          this.$message({
-            type: "success",
-            message: "操作成功!"
-          });
-          done();
-        }, error => {
-          window.console.log(error);
-          loading();
-        });
-      },
-      rowSave(row, done, loading) {
-        if (row.fileUrls.length > 0) {
-          var urls = []
-          var split = row.fileUrls.split(",");
-          split.forEach(url => {
-            var names = url.split("jczz/");
-            urls.push(names[1])
-          })
-          row.fileUrls = urls.join(",")
-        }
-        add(row).then(() => {
-          this.initFlag = false;
-          this.onLoad(this.page);
-          this.$message({
-            type: "success",
-            message: "操作成功!"
-          });
-          done();
-        }, error => {
-          window.console.log(error);
-          loading();
-        });
-      },
-      rowUpdate(row, index, done, loading) {
-        if (row.fileUrls.length > 0) {
-          var urls = []
-          var split = row.fileUrls.split(",");
-          split.forEach(url => {
-            var names = url.split("jczz/");
-            urls.push(names[1])
-          })
-          row.fileUrls = urls.join(",")
-        }
-        update(row).then(() => {
-          this.initFlag = false;
-          this.onLoad(this.page);
-          this.$message({
-            type: "success",
-            message: "操作成功!"
-          });
-          done();
-        }, error => {
-          window.console.log(error);
-          loading();
-        });
-      },
-      houseHoldRowUpdate(row, index, done, loading) {
-        householdUpdate(row).then(() => {
-          this.initFlag = false;
-          this.onLoadHouseHold();
-          this.$message({
-            type: "success",
-            message: "操作成功!"
-          });
-          done();
-        }, error => {
-          window.console.log(error);
-          loading();
-        });
-      },
-      houseHoldRowDel(row) {
-        this.$confirm("确定将选择数据删除?", {
-            confirmButtonText: "确定",
-            cancelButtonText: "取消",
-            type: "warning"
-          })
-          .then(() => {
-            return householdDel(row.id);
-          })
-          .then(() => {
-            this.onLoadHouseHold();
-            this.$message({
-              type: "success",
-              message: "操作成功!"
-            });
-          });
-      },
-      rowDel(row) {
-        this.$confirm("确定将选择数据删除?", {
-            confirmButtonText: "确定",
-            cancelButtonText: "取消",
-            type: "warning"
-          })
-          .then(() => {
-            return remove(row.id);
-          })
-          .then(() => {
-            this.onLoad(this.page);
-            this.$message({
-              type: "success",
-              message: "操作成功!"
-            });
-          });
-      },
-      searchReset() {
-        this.query = {};
-        this.treeDeptId = '';
-        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();
-      },
-      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();
-          });
-      },
-      handleImport() {
-        this.excelBox = true;
-      },
-      uploadAfter(res, done, loading, column) {
-        window.console.log(column);
-        this.excelBox = false;
-        this.refreshChange();
-        done();
-      },
-      handleExport() {
-        const account = func.toStr(this.search.account);
-        const realName = func.toStr(this.search.realName);
-        this.$confirm("是否导出出租信息数据?", "提示", {
-          confirmButtonText: "确定",
-          cancelButtonText: "取消",
-          type: "warning"
-        }).then(() => {
-          NProgress.start();
-          var data = {
-            ...this.query
-          }
-          data = Qs.stringify(data);
-          exportBlob(
-            `/api/blade-houseRental/houseRental/export-houseRental?${this.website.tokenHeader}=${getToken()}&` +
-            data
-          ).then(res => {
-            downloadXls(res.data, `出租信息数据表${dateNow()}.xlsx`);
-            NProgress.done();
-          })
-        });
-      },
-      handleTemplate() {
-        exportBlob(`/api/blade-system/user/export-template?${this.website.tokenHeader}=${getToken()}`).then(res => {
-          downloadXls(res.data, "出租信息数据模板.xlsx");
-        })
-      },
-      beforeOpen(done, type) {
-        if (["edit", "view"].includes(type)) {
-          getDetatil(this.form.id).then(res => {
-            this.form = res.data.data;
-            if (this.form.fileUrls.length > 0) {
-              var urls = []
-              var names = this.form.fileUrls.split(",");
-              names.forEach(name => {
-                urls.push(website.minioUrl + name)
-              })
-              this.form.fileUrls = urls.join(",")
+        houseHoldRowSave (row, done, loading) {
+            row.aoiName = this.rowHouseHold.aoiName
+            row.address = this.rowHouseHold.address
+            row.housingRentalId = this.rowHouseHold.id
+            row.houseCode = this.rowHouseHold.houseCode
+            householdAdd(row).then(() => {
+                this.initFlag = false
+                this.onLoadHouseHold()
+                this.$message({
+                    type: "success",
+                    message: "操作成功!"
+                })
+                done()
+            }, error => {
+                window.console.log(error)
+                loading()
+            })
+        },
+        rowSave (row, done, loading) {
+            if (row.fileUrls.length > 0) {
+                var urls = []
+                var split = row.fileUrls.split(",")
+                split.forEach(url => {
+                    var names = url.split("jczz/")
+                    urls.push(names[1])
+                })
+                row.fileUrls = urls.join(",")
             }
-          });
-        }
-        this.initFlag = true;
-        done();
-      },
-      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.data.forEach(item => {
-            if (item.fileUrls.length > 0) {
-              var urls = []
-              var names = item.fileUrls.split(",");
-              names.forEach(name => {
-                urls.push(website.minioUrl + name)
-              })
-              item.fileUrls = urls.join(",")
+            add(row).then(() => {
+                this.initFlag = false
+                this.onLoad(this.page)
+                this.$message({
+                    type: "success",
+                    message: "操作成功!"
+                })
+                done()
+            }, error => {
+                window.console.log(error)
+                loading()
+            })
+        },
+        rowUpdate (row, index, done, loading) {
+            if (row.fileUrls.length > 0) {
+                var urls = []
+                var split = row.fileUrls.split(",")
+                split.forEach(url => {
+                    var names = url.split("jczz/")
+                    urls.push(names[1])
+                })
+                row.fileUrls = urls.join(",")
             }
-          })
-          this.loading = false;
-          this.selectionClear();
-        });
-      }
+            update(row).then(() => {
+                this.initFlag = false
+                this.onLoad(this.page)
+                this.$message({
+                    type: "success",
+                    message: "操作成功!"
+                })
+                done()
+            }, error => {
+                window.console.log(error)
+                loading()
+            })
+        },
+        houseHoldRowUpdate (row, index, done, loading) {
+            householdUpdate(row).then(() => {
+                this.initFlag = false
+                this.onLoadHouseHold()
+                this.$message({
+                    type: "success",
+                    message: "操作成功!"
+                })
+                done()
+            }, error => {
+                window.console.log(error)
+                loading()
+            })
+        },
+        houseHoldRowDel (row) {
+            this.$confirm("确定将选择数据删除?", {
+                confirmButtonText: "确定",
+                cancelButtonText: "取消",
+                type: "warning"
+            })
+                .then(() => {
+                    return householdDel(row.id)
+                })
+                .then(() => {
+                    this.onLoadHouseHold()
+                    this.$message({
+                        type: "success",
+                        message: "操作成功!"
+                    })
+                })
+        },
+        rowDel (row) {
+            this.$confirm("确定将选择数据删除?", {
+                confirmButtonText: "确定",
+                cancelButtonText: "取消",
+                type: "warning"
+            })
+                .then(() => {
+                    return remove(row.id)
+                })
+                .then(() => {
+                    this.onLoad(this.page)
+                    this.$message({
+                        type: "success",
+                        message: "操作成功!"
+                    })
+                })
+        },
+        searchReset () {
+            this.query = {}
+            this.treeDeptId = ''
+            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();
+        },
+        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()
+                })
+        },
+        handleImport () {
+            this.excelBox = true
+        },
+        uploadAfter (res, done, loading, column) {
+            window.console.log(column)
+            this.excelBox = false
+            this.refreshChange()
+            done()
+        },
+        handleExport () {
+            const account = func.toStr(this.search.account)
+            const realName = func.toStr(this.search.realName)
+            this.$confirm("是否导出出租信息数据?", "提示", {
+                confirmButtonText: "确定",
+                cancelButtonText: "取消",
+                type: "warning"
+            }).then(() => {
+                NProgress.start()
+                var data = {
+                    ...this.query
+                }
+                data = Qs.stringify(data)
+                exportBlob(
+                    `/api/blade-houseRental/houseRental/export-houseRental?${this.website.tokenHeader}=${getToken()}&` +
+                    data
+                ).then(res => {
+                    downloadXls(res.data, `出租信息数据表${dateNow()}.xlsx`)
+                    NProgress.done()
+                })
+            })
+        },
+        handleTemplate () {
+            exportBlob(`/api/blade-system/user/export-template?${this.website.tokenHeader}=${getToken()}`).then(res => {
+                downloadXls(res.data, "出租信息数据模板.xlsx")
+            })
+        },
+        beforeOpen (done, type) {
+            if (["edit", "view"].includes(type)) {
+                getDetatil(this.form.id).then(res => {
+                    this.form = res.data.data
+                    if (this.form.fileUrls.length > 0) {
+                        var urls = []
+                        var names = this.form.fileUrls.split(",")
+                        names.forEach(name => {
+                            urls.push(website.minioUrl + name)
+                        })
+                        this.form.fileUrls = urls.join(",")
+                    }
+                })
+            }
+            this.initFlag = true
+            done()
+        },
+        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.data.forEach(item => {
+                    if (item.fileUrls.length > 0) {
+                        var urls = []
+                        var names = item.fileUrls.split(",")
+                        names.forEach(name => {
+                            urls.push(website.minioUrl + name)
+                        })
+                        item.fileUrls = urls.join(",")
+                    }
+                })
+                this.loading = false
+                this.selectionClear()
+            })
+        }
     }
-  };
+}
 </script>
 
 <style>
-  .box {
+.box {
     height: 800px;
-  }
+}
 
-  .el-scrollbar {
+.el-scrollbar {
     height: 100%;
-  }
+}
 
-  .box .el-scrollbar__wrap {
+.box .el-scrollbar__wrap {
     overflow: scroll;
-  }
+}
 </style>
diff --git a/src/views/userHouse/houseHoldList.vue b/src/views/userHouse/houseHoldList.vue
index ef4249d..089cb7b 100644
--- a/src/views/userHouse/houseHoldList.vue
+++ b/src/views/userHouse/houseHoldList.vue
@@ -138,7 +138,8 @@
     getToken
 } from '@/util/auth'
 import {
-    downloadXls
+    downloadXls,
+    findParentOrCur,
 } from "@/util/util"
 import {
     dateNow
@@ -150,6 +151,62 @@
 
 export default {
     data () {
+        let isCardId = function (rule, value, callback) {
+            // 15位和18位身份证号码的正则表达式
+            var regIdCard = /^(^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$)|(^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])((\d{4})|\d{3}[Xx])$)$/
+
+            // 如果通过该验证,说明身份证格式正确,但准确性还需计算
+            if (regIdCard.test(value)) {
+                if (value.length == 18) {
+                    var idCardWi = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10,
+                        5, 8, 4, 2) // 将前17位加权因子保存在数组里
+                    var idCardY = new Array(1, 0, 10, 9, 8, 7, 6, 5, 4, 3, 2) // 这是除以11后,可能产生的11位余数、验证码,也保存成数组
+                    var idCardWiSum = 0 // 用来保存前17位各自乖以加权因子后的总和
+                    for (var i = 0; i < 17; i++) {
+                        idCardWiSum += value.substring(i, i + 1) * idCardWi[i]
+                    }
+
+                    var idCardMod = idCardWiSum % 11// 计算出校验码所在数组的位置
+                    var idCardLast = value.substring(17)// 得到最后一位身份证号码
+
+                    // 如果等于2,则说明校验码是10,身份证号码最后一位应该是X
+                    if (idCardMod == 2) {
+                        if (idCardLast == "X" || idCardLast == "x") {
+                            callback()
+                        } else {
+                            callback(new Error("身份证号格式有误!"))
+                        }
+                    } else {
+                        // 用计算出的验证码与最后一位身份证号码匹配,如果一致,说明通过,否则是无效的身份证号码
+                        if (idCardLast == idCardY[idCardMod]) {
+                            callback()
+                        } else {
+                            callback(new Error("身份证号格式有误!"))
+                        }
+                    }
+                } else {
+                    callback()
+                }
+            } else {
+                //alert("身份证格式不正确!");
+                callback(new Error("身份证号格式有误!"))
+            }
+
+            callback()
+        }
+
+        //手机号格式校验
+        let validatorPhone = function (rule, value, callback) {
+            if (value) {
+                if (!/^1[3456789]\d{9}$/.test(value)) {
+                    callback(new Error('手机号格式有误!'))
+                } else {
+                    callback()
+                }
+            }
+            callback()
+        }
+
         return {
             labelData: [],
             form: {},
@@ -183,14 +240,89 @@
                 menuFixed: 'right',
                 column: [
                     {
-                        width: 96,
+                        label: "与业主关系",
+                        prop: "relationship",
+                        type: "select",
+                        dicUrl: "/api/blade-system/dict-biz/dictionary?code=roleRelation",
+                        dataType: "number",
+                        hide: true,
+                        props: {
+                            label: "dictValue",
+                            value: "dictKey",
+                        },
+                        rules: [
+                            {
+                                required: true,
+                                message: "请选择与业主关系",
+                                trigger: "blur",
+                            }
+                        ],
+                    },
+
+                    {
+                        width: 110,
                         label: "姓名",
                         prop: "name",
                         search: true,
                         searchSpan: 3,
+                        rules: [
+                            {
+                                required: true,
+                                message: "请输入姓名",
+                                trigger: "blur",
+                            }
+                        ],
                     },
 
                     {
+                        hide: true,
+                        label: "证件类型",
+                        prop: "cardType",
+                        type: "select",
+                        dicUrl: "/api/blade-system/dict-biz/dictionary?code=cardType",
+                        dataType: "number",
+                        props: {
+                            label: "dictValue",
+                            value: "dictKey",
+                        },
+                    },
+
+                    {
+                        width: 160,
+                        display: true,
+                        label: "身份证号",
+                        prop: "idCard",
+                        search: true,
+                        searchSpan: 4,
+                        slot: true,
+                        rules: [
+                            {
+                                validator: isCardId,
+                                trigger: 'blur'
+                            }
+                        ],
+                    },
+
+                    {
+                        hide: true,
+                        display: false,
+                        width: 160,
+                        label: "证件号码",
+                        prop: "cardNo",
+                    },
+
+                    {
+                        label: "出生日期",
+                        prop: "birthday",
+                        type: "date",
+                        format: "yyyy-MM-dd",
+                        valueFormat: "yyyy-MM-dd",
+                        hide: true,
+                    },
+
+
+                    {
+                        width: 60,
                         label: "性别",
                         prop: "gender",
                         type: "select",
@@ -210,36 +342,61 @@
                     },
 
                     {
-                        width: 110,
-                        label: "电话",
+                        width: 120,
+                        label: "手机号码",
                         prop: "phoneNumber",
                         search: true,
                         searchSpan: 3,
                         slot: true,
+                        rules: [
+                            {
+                                required: true,
+                                message: "请输入手机号码",
+                                trigger: "blur",
+                            },
+                            {
+                                validator: validatorPhone,
+                                trigger: 'blur'
+                            }
+                        ],
                     },
+
                     {
-                        width: 160,
-                        label: "身份证号",
-                        prop: "idCard",
-                        search: true,
-                        searchSpan: 4,
-                        slot: true,
-                    },
-                    {
-                        label: "证件类型",
-                        prop: "cardType",
+                        label: "居住情况",
+                        prop: "residentialStatus",
                         type: "select",
-                        dicUrl: "/api/blade-system/dict-biz/dictionary?code=cardType",
+                        hide: true,
+                        dicUrl: "/api/blade-system/dict-biz/dictionary?code=residentialStatusType",
                         dataType: "number",
                         props: {
                             label: "dictValue",
                             value: "dictKey",
                         },
                     },
+
                     {
-                        width: 160,
-                        label: "证件号码",
-                        prop: "cardNo",
+                        label: "其他联系方式",
+                        prop: "otherContact",
+                        hide: true,
+                        rules: [
+                            {
+                                validator: validatorPhone,
+                                trigger: 'blur'
+                            }
+                        ],
+                    },
+
+                    {
+                        label: "是否主要联系人",
+                        prop: "isPrimaryContact",
+                        type: "select",
+                        dicUrl: "/api/blade-system/dict-biz/dictionary?code=primaryContactType",
+                        dataType: "number",
+                        hide: true,
+                        props: {
+                            label: "dictValue",
+                            value: "dictKey",
+                        },
                     },
 
                     // {
@@ -253,21 +410,11 @@
                     //         value: "dictKey",
                     //     },
                     // },
+
                     {
-                        label: "与业主关系",
-                        prop: "relationship",
-                        type: "select",
-                        dicUrl: "/api/blade-system/dict-biz/dictionary?code=roleRelation",
-                        dataType: "number",
-                        hide: true,
-                        props: {
-                            label: "dictValue",
-                            value: "dictKey",
-                        },
-                    },
-                    {
-                        width: 132,
-                        label: "小区",
+                        width: 220,
+                        overHidden: true,
+                        label: '小区名称',
                         prop: "aoiName",
                         search: true,
                         searchSpan: 4,
@@ -275,121 +422,59 @@
                     },
 
                     {
+                        width: 110,
+                        label: "所属街道",
                         addDisplay: false,
                         editDisplay: false,
                         viewDisplay: false,
-                        width: 96,
-                        label: "所属街道",
                         prop: "townStreetName",
                         search: true,
                         searchSpan: 4
                     },
+
                     {
+                        width: 156,
+                        overHidden: true,
+                        label: "所属社区",
                         addDisplay: false,
                         editDisplay: false,
                         viewDisplay: false,
-                        width: 160,
-                        label: "所属社区",
                         prop: "neiName",
                         search: true,
                         searchSpan: 4
                     },
+
                     {
+                        width: 110,
+                        overHidden: true,
+                        label: "所属网格",
                         addDisplay: false,
                         editDisplay: false,
                         viewDisplay: false,
-                        width: 96,
-                        label: "所属网格",
                         prop: "gridName",
                     },
 
                     {
-                        width: 132,
+                        width: 140,
                         label: "地址",
                         prop: "address",
                         display: false
                     },
 
-                    {
-                        width: 210,
-                        label: "标签",
-                        prop: "householdLabelList",
-                        display: false
-                    },
-                    {
-                        label: "主要联系人",
-                        prop: "isPrimaryContact",
-                        type: "select",
-                        dicUrl: "/api/blade-system/dict-biz/dictionary?code=primaryContactType",
-                        dataType: "number",
-                        hide: true,
-                        props: {
-                            label: "dictValue",
-                            value: "dictKey",
-                        },
-                    },
-                    {
-                        label: "居住情况",
-                        prop: "residentialStatus",
-                        type: "select",
-                        hide: true,
-                        dicUrl: "/api/blade-system/dict-biz/dictionary?code=residentialStatusType",
-                        dataType: "number",
-                        props: {
-                            label: "dictValue",
-                            value: "dictKey",
-                        },
-                    },
-                    {
-                        label: "生日",
-                        prop: "birthday",
-                        type: "date",
-                        format: "yyyy-MM-dd",
-                        valueFormat: "yyyy-MM-dd",
-                        hide: true,
-                    },
-                    {
-                        label: "港澳台通行证",
-                        prop: "hkmtPass",
-                        hide: true,
-                    },
-                    {
-                        label: "护照",
-                        prop: "passport",
-                        hide: true,
-                    },
-                    {
-                        label: "民族",
-                        prop: "ethnicity",
-                        type: "select",
-                        hide: true,
-                        dicUrl: "/api/blade-system/dict-biz/dictionary?code=nationType",
-                        dataType: "number",
-                        props: {
-                            label: "dictValue",
-                            value: "dictKey",
-                        },
-                    },
-                    {
-                        label: "学历",
-                        prop: "education",
-                        type: "select",
-                        hide: true,
-                        dicUrl: "/api/blade-system/dict-biz/dictionary?code=educationType",
-                        dataType: "number",
-                        props: {
-                            label: "dictValue",
-                            value: "dictKey",
-                        },
-                    },
 
                     {
                         hide: true,
                         parent: false,
                         width: 160,
-                        label: "籍贯地行政区划",
+                        label: "籍贯地区",
                         prop: "nativePlaceAdcode",
                         type: "tree",
+                        typeformat (item, label, value) {
+                            return item.addressDetail
+                        },
+                        change: ({ value, column, item, dic }) => {
+                            item.addressDetail = findParentOrCur(dic, item.id)
+                        },
                         props: {
                             label: 'name',
                             value: 'id'
@@ -398,6 +483,7 @@
                     },
 
                     {
+                        hide: true,
                         label: "户籍类型",
                         prop: "residentType",
                         type: "select",
@@ -413,9 +499,15 @@
                         hide: true,
                         parent: false,
                         width: 160,
-                        label: "户籍地行政区划",
+                        label: "户籍地区",
                         prop: "residentAdcode",
                         type: "tree",
+                        typeformat (item, label, value) {
+                            return item.addressDetail
+                        },
+                        change: ({ value, column, item, dic }) => {
+                            item.addressDetail = findParentOrCur(dic, item.id)
+                        },
                         props: {
                             label: 'name',
                             value: 'id'
@@ -431,7 +523,7 @@
 
                     {
                         disabled: false,
-                        label: "居住地行政区划",
+                        label: "居住地区",
                         prop: "homeAdcode",
                         hide: true,
                         type: 'select',
@@ -444,83 +536,62 @@
 
                     {
                         disabled: false,
-                        label: "现居住地址",
+                        label: "现居住地",
                         prop: "currentAddress",
                         hide: true,
                     },
 
                     {
-                        label: "婚姻状态",
-                        prop: "maritalStatus",
+                        width: 210,
+                        label: "标签",
+                        prop: "householdLabelList",
+                        display: false
+                    },
+
+                    {
+                        label: "民族",
+                        prop: "ethnicity",
                         type: "select",
                         hide: true,
-                        dicUrl: "/api/blade-system/dict-biz/dictionary?code=marriageStatusType",
+                        dicUrl: "/api/blade-system/dict-biz/dictionary?code=nationType",
                         dataType: "number",
                         props: {
                             label: "dictValue",
                             value: "dictKey",
                         },
                     },
-                    {
-                        label: "车牌号",
-                        prop: "cardNumber",
-                        hide: true,
-                    },
 
                     {
-                        label: "残疾证",
-                        prop: "disabilityCert",
-                        hide: true,
-                    },
-                    {
-                        hide: true,
-                        width: 160,
-                        label: "宗教信仰",
-                        prop: "religiousBelief",
-                    },
-                    {
-                        hide: true,
-                        label: "健康状况",
-                        prop: "healthStatus",
+                        label: "学历",
+                        prop: "education",
                         type: "select",
-                        dicUrl: "/api/blade-system/dict-biz/dictionary?code=healthStatus",
+                        hide: true,
+                        dicUrl: "/api/blade-system/dict-biz/dictionary?code=educationType",
                         dataType: "number",
                         props: {
                             label: "dictValue",
                             value: "dictKey",
                         },
                     },
+
                     {
                         hide: true,
                         width: 160,
-                        label: "疾病名称",
-                        prop: "diseaseName"
+                        label: "职业类别",
+                        prop: "occupation"
+                    },
+
+                    {
+                        label: "工作单位",
+                        prop: "employer",
+                        hide: true,
                     },
 
                     {
                         hide: true,
                         width: 160,
-                        label: "外出时间",
-                        prop: "goOutTime"
-                    },
-                    {
-                        hide: true,
-                        width: 160,
-                        label: "外出原因",
-                        prop: "goOutReason"
-                    },
-
-                    {
-                        hide: true,
-                        width: 160,
-                        label: "外出去向",
-                        prop: "goOutWhere"
-                    },
-                    {
-                        hide: true,
-                        width: 160,
-                        label: "外出详址",
-                        prop: "goOutAddr"
+                        label: "工作单位地址",
+                        prop: "cmpyRegAddr"
                     },
 
                     {
@@ -537,28 +608,80 @@
                     },
 
                     {
+                        label: "婚姻状态",
+                        prop: "maritalStatus",
+                        type: "select",
                         hide: true,
-                        width: 160,
-                        label: "职业类别",
-                        prop: "occupation"
-                    },
-
-                    {
-                        label: "就职单位",
-                        prop: "employer",
-                        hide: true,
+                        dicUrl: "/api/blade-system/dict-biz/dictionary?code=marriageStatusType",
+                        dataType: "number",
+                        props: {
+                            label: "dictValue",
+                            value: "dictKey",
+                        },
                     },
 
                     {
                         hide: true,
                         width: 160,
-                        label: "就职单位地址",
-                        prop: "cmpyRegAddr"
+                        label: "宗教信仰",
+                        prop: "religiousBelief",
                     },
 
                     {
-                        label: "其他联系方式",
-                        prop: "otherContact",
+                        hide: true,
+                        label: "健康状态",
+                        prop: "healthStatus",
+                        type: "select",
+                        dicUrl: "/api/blade-system/dict-biz/dictionary?code=healthStatus",
+                        dataType: "number",
+                        props: {
+                            label: "dictValue",
+                            value: "dictKey",
+                        },
+                    },
+
+                    {
+                        disabled: true,
+                        hide: true,
+                        width: 160,
+                        label: "疾病名称",
+                        prop: "diseaseName"
+                    },
+
+                    {
+                        hide: true,
+                        width: 160,
+                        label: "外出去向",
+                        prop: "goOutWhere"
+                    },
+
+                    {
+                        hide: true,
+                        width: 160,
+                        label: "外出原因",
+                        prop: "goOutReason"
+                    },
+
+                    {
+                        hide: true,
+                        label: "外出时间",
+                        prop: "goOutTime",
+                        type: "date",
+                        format: "yyyy-MM-dd",
+                        valueFormat: "yyyy-MM-dd",
+                        width: 160,
+                    },
+
+                    {
+                        hide: true,
+                        width: 160,
+                        label: "外出详址",
+                        prop: "goOutAddr"
+                    },
+
+                    {
+                        label: "车牌号",
+                        prop: "cardNumber",
                         hide: true,
                     },
                 ]
@@ -674,8 +797,44 @@
                     homeAdcodeColumn.disabled = false
                 }
             },
-            immediate: true
-        }
+        },
+
+        'form.cardType': {
+            handler (newData) {
+                let idCardColumn = this.findObject(
+                    this.option.column,
+                    'idCard'
+                )
+
+                let cardNoColumn = this.findObject(
+                    this.option.column,
+                    'cardNo'
+                )
+
+                if (newData == 111) {
+                    idCardColumn.display = true
+                    cardNoColumn.display = false
+                } else {
+                    idCardColumn.display = false
+                    cardNoColumn.display = true
+                }
+            },
+        },
+
+        'form.healthStatus': {
+            handler (newData) {
+                let diseaseNameColumn = this.findObject(
+                    this.option.column,
+                    'diseaseName'
+                )
+
+                if (newData == 3) {
+                    diseaseNameColumn.disabled = false
+                } else {
+                    diseaseNameColumn.disabled = true
+                }
+            },
+        },
     },
     computed: {
         ...mapGetters(["userInfo", "permission"]),
@@ -875,7 +1034,6 @@
             this.excelBox = true
         },
         uploadAfter (res, done, loading, column) {
-            window.console.log(column)
             this.excelBox = false
             this.refreshChange()
             done()
diff --git a/src/views/userHouse/houseList.vue b/src/views/userHouse/houseList.vue
index b9eaf08..fe280c0 100644
--- a/src/views/userHouse/houseList.vue
+++ b/src/views/userHouse/houseList.vue
@@ -244,32 +244,34 @@
                     },
 
                     {
+                        width: 220,
+                        overHidden: true,
+                        label: '小区名称',
                         parent: false,
-                        label: "小区名称",
                         prop: "districtName",
                         searchSpan: 4,
                         display: false,
                         search: true,
-                        overHidden: true,
                     },
 
                     {
+                        width: 110,
+                        label: "所属街道",
                         addDisplay: false,
                         editDisplay: false,
                         viewDisplay: false,
-                        width: 96,
-                        label: "所属街道",
                         prop: "townStreetName",
                         search: true,
                         searchSpan: 4
                     },
 
                     {
+                        width: 156,
+                        overHidden: true,
+                        label: "所属社区",
                         addDisplay: false,
                         editDisplay: false,
                         viewDisplay: false,
-                        width: 160,
-                        label: "所属社区",
                         prop: "neiName",
                         search: true,
                         searchSpan: 4,
@@ -286,7 +288,6 @@
                         label: "所属社区",
                         prop: "neiCode",
                         search: false,
-                        width: 150,
                         type: "tree",
                         dicUrl: "/api/blade-system/region/tree",
                         props: {
@@ -304,11 +305,12 @@
                     },
 
                     {
+                        width: 110,
+                        overHidden: true,
+                        label: "所属网格",
                         addDisplay: false,
                         editDisplay: false,
                         viewDisplay: false,
-                        width: 96,
-                        label: "所属网格",
                         prop: "gridName",
                         rules: [{
                             required: true,

--
Gitblit v1.9.3