wangmengwei 2 ماه پیش
والد
کامیت
0f550f609d
60فایلهای تغییر یافته به همراه4065 افزوده شده و 470 حذف شده
  1. 8 1
      ruoyi-ui/src/api/system/menu.js
  2. 11 1
      ruoyi-ui/src/api/system/role.js
  3. 1 1
      ruoyi-ui/src/api/system/user.js
  4. 10 0
      ruoyi-ui/src/api/wuguan/houseInfo.js
  5. 15 5
      ruoyi-ui/src/api/wuguan/landlord.js
  6. 43 0
      ruoyi-ui/src/api/wuguan/staffManage.js
  7. 6 6
      ruoyi-ui/src/api/zhihuixy/tenant.js
  8. 5 5
      ruoyi-ui/src/api/zhihuixy/tenantPackage.js
  9. BIN
      ruoyi-ui/src/assets/images/fenxiang.png
  10. BIN
      ruoyi-ui/src/assets/images/fenxiangtwo.png
  11. BIN
      ruoyi-ui/src/assets/images/icon_htgl_lc_selected.png
  12. BIN
      ruoyi-ui/src/assets/images/icon_htgl_sl.png
  13. BIN
      ruoyi-ui/src/assets/images/touxiang.png
  14. 3 3
      ruoyi-ui/src/components/Pagination/index.vue
  15. 13 11
      ruoyi-ui/src/layout/components/Navbar.vue
  16. 9 1
      ruoyi-ui/src/main.js
  17. 15 13
      ruoyi-ui/src/router/index.js
  18. 2 1
      ruoyi-ui/src/settings.js
  19. 1 0
      ruoyi-ui/src/store/getters.js
  20. 7 1
      ruoyi-ui/src/store/modules/user.js
  21. 5 5
      ruoyi-ui/src/utils/request.js
  22. 6 3
      ruoyi-ui/src/utils/ruoyi.js
  23. 141 61
      ruoyi-ui/src/views/index.vue
  24. 5 4
      ruoyi-ui/src/views/login.vue
  25. 1 1
      ruoyi-ui/src/views/register.vue
  26. 1 1
      ruoyi-ui/src/views/registerx.vue
  27. 833 0
      ruoyi-ui/src/views/registerxmerenz.vue
  28. 1 1
      ruoyi-ui/src/views/system/role/index.vue
  29. 1 0
      ruoyi-ui/src/views/system/tenant/index.vue
  30. 1 2
      ruoyi-ui/src/views/system/tenantPackage/index.vue
  31. 3 1
      ruoyi-ui/src/views/system/user/index.vue
  32. 8 14
      ruoyi-ui/src/views/wuguan/assetType/index.vue
  33. 4 5
      ruoyi-ui/src/views/wuguan/assets/index.vue
  34. 211 41
      ruoyi-ui/src/views/wuguan/baoxiuguanli/index.vue
  35. 7 13
      ruoyi-ui/src/views/wuguan/blackManage/index.vue
  36. 1 1
      ruoyi-ui/src/views/wuguan/cheliangguank/index.vue
  37. 181 22
      ruoyi-ui/src/views/wuguan/fagnwuguanli/index.vue
  38. 4 5
      ruoyi-ui/src/views/wuguan/houseManage/index.vue
  39. 17 18
      ruoyi-ui/src/views/wuguan/news/index.vue
  40. 73 10
      ruoyi-ui/src/views/wuguan/newxq/index.vue
  41. 17 22
      ruoyi-ui/src/views/wuguan/partyNews/index.vue
  42. 2 2
      ruoyi-ui/src/views/wuguan/partyNewxq/index.vue
  43. 4 6
      ruoyi-ui/src/views/wuguan/pinglunshenhe/index.vue
  44. 174 26
      ruoyi-ui/src/views/wuguan/renyuan/index.vue
  45. 986 0
      ruoyi-ui/src/views/wuguan/renyuansh/index.vue
  46. 3 5
      ruoyi-ui/src/views/wuguan/reservRecord/index.vue
  47. 5 5
      ruoyi-ui/src/views/wuguan/settings/index.vue
  48. 8 14
      ruoyi-ui/src/views/wuguan/suggestion/index.vue
  49. 7 9
      ruoyi-ui/src/views/wuguan/visitorManage/index.vue
  50. 5 7
      ruoyi-ui/src/views/wuguan/weitingchel/index.vue
  51. 190 40
      ruoyi-ui/src/views/wuguan/weixiurenyuan/index.vue
  52. 162 41
      ruoyi-ui/src/views/wuguan/weixiurenyuansh/index.vue
  53. 822 0
      ruoyi-ui/src/views/wuguan/weixiurenyuanshme/index.vue
  54. 1 1
      ruoyi-ui/src/views/wuguan/wuyefeigl/index.vue
  55. 5 6
      ruoyi-ui/src/views/wuguan/wuyefeishezhi/index.vue
  56. 5 7
      ruoyi-ui/src/views/wuguan/xungenggl/index.vue
  57. 5 7
      ruoyi-ui/src/views/wuguan/xungengxinx/index.vue
  58. 1 1
      ruoyi-ui/src/views/wuguan/xungengxq/index.vue
  59. 5 7
      ruoyi-ui/src/views/wuguan/yezhuchel/index.vue
  60. 5 7
      ruoyi-ui/src/views/wuguan/yuangongpx/index.vue

+ 8 - 1
ruoyi-ui/src/api/system/menu.js

@@ -57,4 +57,11 @@ export function delMenu(menuId) {
     url: '/system/menu/delete/' + menuId,
     method: 'get'
   })
-}
+}
+// 根据角色ID查询菜单下拉树结构
+export function tenantPackageMenuTreeselect(packageId){
+  return request({
+    url: '/system/menu/tenantPackageMenuTreeselect/' + packageId,
+    method: 'get'
+  });
+};

+ 11 - 1
ruoyi-ui/src/api/system/role.js

@@ -9,6 +9,15 @@ export function listRole(query) {
   })
 }
 
+export function listNoPage(query) {
+  return request({
+    url: '/system/role/listNoPage',
+    method: 'get',
+    params: query
+  })
+}
+
+
 // 查询角色详细
 export function getRole(roleId) {
   return request({
@@ -38,7 +47,7 @@ export function updateRole(data) {
 // 角色数据权限
 export function dataScope(data) {
   return request({
-    url: '/system/role/dataScope/put',
+    url: '/system/role/dataScope',
     method: 'post',
     data: data
   })
@@ -101,6 +110,7 @@ export function authUserCancelAll(data) {
   })
 }
 
+
 // 授权用户选择
 export function authUserSelectAll(data) {
   return request({

+ 1 - 1
ruoyi-ui/src/api/system/user.js

@@ -120,7 +120,7 @@ export function getAuthRole(userId) {
 // 保存授权角色
 export function updateAuthRole(data) {
   return request({
-    url: '/system/user/authRole/put',
+    url: '/system/user/authRole',
     method: 'post',
     params: data
   })

+ 10 - 0
ruoyi-ui/src/api/wuguan/houseInfo.js

@@ -17,6 +17,16 @@ export function listNoPage(query) {
   })
 }
 
+export function listNoPageTenant(query) {
+  return request({
+    url: '/wuYe/houseInfo/listNoPageTenant',
+    method: 'get',
+    params: query
+  })
+}
+
+
+
 // 查询房屋信息详细
 export function getHouseInfo(houseId) {
   return request({

+ 15 - 5
ruoyi-ui/src/api/wuguan/landlord.js

@@ -20,7 +20,7 @@ export function getResidentInfo(residentId) {
 // 新增居住人员信息,存储居住人员的详细信息
 export function addResidentInfo(data) {
   return request({
-    url: '/wuYe/residentInfo',
+    url: '/wuYe/residentInfo/addResidentInfo',
     method: 'post',
     data: data
   })
@@ -29,17 +29,18 @@ export function addResidentInfo(data) {
 // 修改居住人员信息,存储居住人员的详细信息
 export function updateResidentInfo(data) {
   return request({
-    url: '/wuYe/residentInfo/put',
+    url: '/wuYe/residentInfo/put/authentication',
     method: 'post',
     data: data
   })
 }
 
 // 删除居住人员信息,存储居住人员的详细信息
-export function delResidentInfo(residentId) {
+export function delResidentInfo(data) {
   return request({
-    url: '/wuYe/residentInfo/delete/' + residentId,
-    method: 'get'
+    url: '/wuYe/residentInfo/deleteResident',
+     method: 'post',
+     data: data
   })
 }
 
@@ -63,6 +64,15 @@ export function licensePlate(data) {
   })
 }
 
+// 审核用户
+export function examineResident(data) {
+  return request({
+    url: '/wuYe/residentInfo/examineResident',
+    method: 'post',
+    data: data
+  })
+}
+
 // 房产证
 export function realEstateCertificate(data) {
   return request({

+ 43 - 0
ruoyi-ui/src/api/wuguan/staffManage.js

@@ -16,6 +16,16 @@ export function listStaffManagesh(query) {
     params: query
   })
 }
+// 查询员工管理列表
+export function listAuthentication(query) {
+  return request({
+    url: '/wuYe/staffManage/listAuthentication',
+    method: 'get',
+    params: query
+  })
+}
+
+
 
 
 
@@ -46,6 +56,21 @@ export function getStaffManage(staffId) {
   })
 }
 
+export function staffManagexq(staffId) {
+  return request({
+    url: '/wuYe/staffManage/getInfoByUserId/' + staffId,
+    method: 'get'
+  })
+}
+
+export function staffManagexqst(staffId) {
+  return request({
+    url: '/wuYe/staffManage/authentication/' + staffId,
+    method: 'get'
+  })
+}
+
+
 // 新增员工管理
 export function addStaffManage(data) {
   return request({
@@ -54,6 +79,24 @@ export function addStaffManage(data) {
     data: data
   })
 }
+export function authentication(data) {
+  return request({
+    url: '/wuYe/staffManage/authentication',
+    method: 'post',
+    data: data
+  })
+}
+
+export function deleteStaffManage(data) {
+  return request({
+    url: '/wuYe/staffManage/deleteStaffManage',
+    method: 'post',
+    data: data
+  })
+}
+
+
+
 
 // 修改员工管理
 export function updateStaffManage(data) {

+ 6 - 6
ruoyi-ui/src/api/zhihuixy/tenant.js

@@ -41,8 +41,8 @@ export function addTenant(data) {
 // 修改租户
 export function updateTenant(data) {
   return request({
-    url: '/system/tenant',
-    method: 'put',
+    url: '/system/tenant/put',
+    method: 'post',
     data: data
   });
 }
@@ -56,7 +56,7 @@ export function changeTenantStatus(id, tenantId, status) {
   };
   return request({
     url: '/system/tenant/changeStatus',
-    method: 'put',
+    method: 'post',
     data: data
   });
 }
@@ -64,8 +64,8 @@ export function changeTenantStatus(id, tenantId, status) {
 // 删除租户
 export function delTenant(id) {
   return request({
-    url: '/system/tenant/' + id,
-    method: 'delete'
+    url: '/system/tenant/delete/' + id,
+    method: 'get'
   });
 }
 
@@ -80,7 +80,7 @@ export function dynamicTenant(tenantId) {
 // 根据动态切换组合2
 export function dynamicTenantgw(data) {
   return request({
-    url: '/system/tenant/dynamic/loginBody',
+    url: '/auth/dynamic/loginBody',
     method: 'post',
     data: data
   });

+ 5 - 5
ruoyi-ui/src/api/zhihuixy/tenantPackage.js

@@ -37,8 +37,8 @@ export function addTenantPackage(data) {
 // 修改租户套餐
 export function updateTenantPackage(data) {
   return request({
-    url: '/system/tenant/package',
-    method: 'put',
+    url: '/system/tenant/package/put',
+    method: 'post',
     data: data
   });
 }
@@ -51,7 +51,7 @@ export function changePackageStatus(packageId, status) {
   };
   return request({
     url: '/system/tenant/package/changeStatus',
-    method: 'put',
+    method: 'post',
     data: data
   });
 }
@@ -59,7 +59,7 @@ export function changePackageStatus(packageId, status) {
 // 删除租户套餐
 export function delTenantPackage(packageId) {
   return request({
-    url: '/system/tenant/package/' + packageId,
-    method: 'delete'
+    url: '/system/tenant/package/delete/' + packageId,
+    method: 'get'
   });
 }

BIN
ruoyi-ui/src/assets/images/fenxiang.png


BIN
ruoyi-ui/src/assets/images/fenxiangtwo.png


BIN
ruoyi-ui/src/assets/images/icon_htgl_lc_selected.png


BIN
ruoyi-ui/src/assets/images/icon_htgl_sl.png


BIN
ruoyi-ui/src/assets/images/touxiang.png


+ 3 - 3
ruoyi-ui/src/components/Pagination/index.vue

@@ -31,12 +31,12 @@ export default {
     },
     limit: {
       type: Number,
-      default: 20
+      default: 8
     },
     pageSizes: {
       type: Array,
       default() {
-        return [10, 20, 30, 50]
+        return [8]
       }
     },
     // 移动端页码按钮的数量端默认值5
@@ -46,7 +46,7 @@ export default {
     },
     layout: {
       type: String,
-      default: 'total, sizes, prev, pager, next, jumper'
+      default: 'total,  prev, pager, next, jumper'
     },
     background: {
       type: Boolean,

+ 13 - 11
ruoyi-ui/src/layout/components/Navbar.vue

@@ -1,7 +1,6 @@
 <template>
   <div class="navbar">
     <hamburger id="hamburger-container" :is-active="sidebar.opened" class="hamburger-container" @toggleClick="toggleSideBar" />
-
     <!-- <breadcrumb id="breadcrumb-container" class="breadcrumb-container" v-if="!topNav"/> -->
     <!-- <top-nav id="topmenu-container" class="topmenu-container" v-if="topNav"/> -->
     <!-- <div class="sign_box">
@@ -32,7 +31,7 @@
         clearable
         filterable
         reserve-keyword
-        placeholder="选择学校"
+        placeholder="选择小区"
         v-if="userId != 1 && (tenantListtw.length !=0 && tenantListtw.length !=1)"
         @change="dynamicTenantEventg"
         @clear="dynamicClearEvent"
@@ -175,11 +174,14 @@ export default {
   	console.log(this.$store.state.user)
     this.usename = this.$store.state.user.name
     // this.avatar = this.$store.state.user.avatar
-    if(this.usename =='admin'){
-      this.getnhgw()
-    }else{
-      this.getnhgwon()
+    if(this.$store.getters.authenticationUser !='Y'){
+      if(this.usename =='admin'){
+        this.getnhgw()
+      }else{
+        this.getnhgwon()
+      }
     }
+
   },
   mouted(){
     // this.$nextTick(()=>{
@@ -216,24 +218,26 @@ export default {
 			if (this.companyName != null && this.companyName !== '') {
 			  dynamicTenant(this.companyName).then(response => {
 			  	this.dynamic = true;
-
 			  	this.$tab.closeAllPage();
 			  	this.$router.push('/');
 			  });
 			}
 		},
+
     dynamicTenantEventg(){
     	if (this.companyName != null && this.companyName !== '') {
         let ngpw={'tenantId':this.companyName,'clientId':'e5cd7e4891bf95d1d19206ce24a7b32e','grantType':'password'}
-    	  dynamicTenantgw(ngpw).then(response => {
+    	  // dynamicTenantgw ngpw
+        dynamicTenantgw(ngpw).then(response => {
     	  	this.dynamic = true;
-           setToken(response.data.access_token)
+           setToken(response.msg)
            let ngse={'userName': this.usename}
            getInfo().then(response => {
              // this.loading = false;
              location.reload(true)
              this.$tab.closeAllPage();
              this.$router.push('/');
+             this.companyName = response.data.user.tenantId
            });
     	  	// this.$tab.closeAllPage();
     	  	// this.$router.push('/');
@@ -245,8 +249,6 @@ export default {
 				this.dynamic = false;
 				this.$tab.closeAllPage();
 				this.$router.push('/');
-
-
 			});
 		},
     toggleSideBar() {

+ 9 - 1
ruoyi-ui/src/main.js

@@ -42,10 +42,14 @@ import Paginations from "@/components/Paginations";
 import RightToolbar from "@/components/RightToolbar"
 // 富文本组件
 import Editor from "@/components/Editor"
+import Comment from "@/components/Comment"
 // 文件上传组件
 import FileUpload from "@/components/FileUpload"
 import FileUploads from "@/components/FileUploads"
 import FileUploadsch from "@/components/FileUploadsch"
+import FileUploadh from "@/components/FileUploadh"
+import FileUploadvio from "@/components/FileUploadvio"
+
 
 
 // 图片上传组件
@@ -94,10 +98,14 @@ Vue.component('Paginations', Paginations)
 Vue.component('RightToolbar', RightToolbar)
 Vue.component('Editor', Editor)
 Vue.component('Steps', Steps)
+Vue.component('Comment', Comment)
+
 
 Vue.component('FileUpload', FileUpload)
 Vue.component('FileUploads', FileUploads)
-Vue.component('FileUploadsch', FileUploadsch)
+Vue.component('FileUploads', FileUploads)
+Vue.component('FileUploadh', FileUploadh)
+Vue.component('FileUploadvio', FileUploadvio)
 
 
 Vue.component('ImageUpload', ImageUpload)

+ 15 - 13
ruoyi-ui/src/router/index.js

@@ -56,6 +56,7 @@ export const constantRoutes = [
     component: () => import('@/views/registerx'),
     hidden: true
   },
+
   {
     path: '/404',
     component: () => import('@/views/error/404'),
@@ -79,6 +80,19 @@ export const constantRoutes = [
       }
     ]
   },
+  {
+    path: '/registerxmerenz',
+    component: Layout,
+    hidden: true,
+    children: [
+      {
+        path: '/registerxmerenz',
+        component: () => import('@/views/registerxmerenz'),
+        name: 'Registerxmerenz',
+        meta: { title: '我的认证', icon: 'dashboard', affix: false }
+      }
+    ]
+  },
   {
     path: '/user',
     component: Layout,
@@ -107,19 +121,7 @@ export const constantRoutes = [
 	    }
 	  ]
 	},
-  {
-    path: '/flowable',
-    component: Layout,
-    hidden: true,
-    children: [
-      {
-        path: 'definition/model/',
-        component: () => import('@/views/flowable/definition/model'),
-        name: 'Model',
-        meta: { title: '流程设计', icon: '' }
-      }
-    ]
-  },
+
   {
     path: '/flowable',
     component: Layout,

+ 2 - 1
ruoyi-ui/src/settings.js

@@ -1,6 +1,7 @@
 module.exports = {
    // urls:`https://zhsq.qs163.cn`,
-   urls:`http://192.168.101.245:8077`,
+   // http://10.90.90.52:8065
+   urls:`http://192.168.101.86:8077`,
    // http://10.90.90.52:8065
    // zhsq.qs163.cn
   /**

+ 1 - 0
ruoyi-ui/src/store/getters.js

@@ -18,6 +18,7 @@ const getters = {
   dept: state => state.user.dept,
   authenticationUser: state => state.user.authenticationUser,
   phonenumber: state => state.user.phonenumber,
+  companyname: state => state.user.companyname,
   schoolId: state => state.user.schoolId,
   permissions: state => state.user.permissions,
   teacherClass: state => state.user.teacherClass,

+ 7 - 1
ruoyi-ui/src/store/modules/user.js

@@ -19,7 +19,8 @@ const user = {
 	tenantId:0,
   userType:'',
   authenticationUser:'',
-  phonenumber:''
+  phonenumber:'',
+  companyname:''
 
   },
 
@@ -69,6 +70,10 @@ const user = {
   SET_PHONENUMBER: (state, phonenumber) => {
     state.phonenumber = phonenumber
   },
+  SET_COMPANYNAME: (state, companyname) => {
+    state.companyname = companyname
+  },
+
 
 
 
@@ -130,6 +135,7 @@ const user = {
      commit('SET_AVATAR', avatar)
 		 commit('SET_TENANTID', user.tenantId)
      commit('SET_PHONENUMBER', user.phonenumber)
+     commit('SET_COMPANYNAME', user.companyName)
      commit('SET_AUTHENTICATIONUSER', res.data.authenticationUser)
           resolve(res)
         }).catch(error => {

+ 5 - 5
ruoyi-ui/src/utils/request.js

@@ -50,13 +50,13 @@ service.interceptors.request.use(config => {
       const s_url = sessionObj.url;                  // 请求地址
       const s_data = sessionObj.data;                // 请求数据
       const s_time = sessionObj.time;                // 请求时间
-      const interval = 500;                         // 间隔时间(ms),小于此时间视为重复提交
+      const interval = 10;                         // 间隔时间(ms),小于此时间视为重复提交
 	  console.log(sessionObj,requestObj.data)
       if (s_data === requestObj.data && requestObj.time - s_time < interval && s_url === requestObj.url) {
-        const message = '数据正在处理,请勿重复提交';
-        console.warn(`[${s_url}]: ` + message)
-        return Promise.reject(new Error(message))
-         // cache.session.setJSON('sessionObj', requestObj)
+        // const message = '数据正在处理,请勿重复提交';
+        // console.warn(`[${s_url}]: ` + message)
+        // return Promise.reject(new Error(message))
+         cache.session.setJSON('sessionObj', requestObj)
       } else {
         cache.session.setJSON('sessionObj', requestObj)
       }

+ 6 - 3
ruoyi-ui/src/utils/ruoyi.js

@@ -68,17 +68,17 @@ export function roleqh(refName) {
 				  if(rou.roleKey == 'school'){
 					  bgth =  'school'
 				  }else{
-					bgth =  'teacher'  
+					bgth =  'teacher'
 				  }
   			  }
   		  })
-		  
+
   }else{
 	   let element = {roleKey: 'school'}
 	   let elementf = {roleKey: 'teacher'}
 	   if(nhger.some(nhger => nhger.roleKey == element.roleKey)){
 		    // console.log(bgth,931)
-		  bgth =  element.roleKey 
+		  bgth =  element.roleKey
 	   }else if(nhger.some(nhger => nhger.roleKey == elementf.roleKey)){
 		    // console.log(bgth,932)
 		   bgth =  elementf.roleKey
@@ -109,8 +109,11 @@ export function selectDictLabel(datas, value) {
     return "";
   }
   var actions = [];
+  console.log(datas,('' + value),4)
+
   Object.keys(datas).some((key) => {
     if (datas[key].value == ('' + value)) {
+
       actions.push(datas[key].label);
       return true;
     }

+ 141 - 61
ruoyi-ui/src/views/index.vue

@@ -401,6 +401,13 @@ box-shadow: 0px 5px 10px 0px rgba(183,193,206,0.54);
 border-radius: 9px;font-weight: bold;
 font-size: 18px;
 color: #196CFF;">立即完善(管理员)</p>
+<p style="width: 192px;text-align: center;
+height: 45px;line-height: 45px;
+background: #FFFFFF;
+box-shadow: 0px 5px 10px 0px rgba(183,193,206,0.54);
+border-radius: 9px;font-weight: bold;
+font-size: 18px;
+color: #196CFF;margin-left: 20px;"><router-link class="link-type" :to="'/registerxmerenz'" >我的认证</router-link></p>
         </div>
     </div>
 
@@ -453,7 +460,22 @@ color: #196CFF;">立即完善(管理员)</p>
             <el-form-item label="身份证号" prop="idCard" style="position: relative;">
                   <el-input v-model="formg.idCard" placeholder="请输入身份证号码" />
                   <!-- <image-upload :limit="1" v-model="form.idCardBack"/> -->
-                  <image-uploadshib @uploadedSuccessfully="uploadedSuccessfully" :typeg = "1" :limit="1" v-model="form.idCardBack"/>
+                  <image-uploadshib @uploadedSuccessfully="uploadedSuccessfully" :typeg = "1" :limit="1" v-model="formg.idCardBack"/>
+            </el-form-item>
+          </el-col>
+          <el-col :span="24">
+            <el-form-item label="选择小区" prop="tenantId">
+               <el-select
+               style="width:100%;"
+               			  v-model="formg.tenantId"
+               			  clearable
+               			  filterable
+               			  reserve-keyword
+               			  placeholder="选择物业"
+               			>
+               			  <el-option v-for="item in tenantList" :key="item.tenantId" :label="item.companyName" :value="item.tenantId" @click.native="chahue(item)"> </el-option>
+               			  <template ><svg-icon icon-class="company" class="el-input__icon input-icon" /></template>
+               			</el-select>
             </el-form-item>
           </el-col>
           <el-col :span="12">
@@ -469,17 +491,17 @@ color: #196CFF;">立即完善(管理员)</p>
             </el-form-item>
           </el-col>
           <el-col :span="12">
-            <el-form-item label="员工类别" prop="staffCategory">
-                      <el-select v-model="formg.staffCategory" placeholder="请选择员工类别">
-                        <el-option
-                          v-for="dict in dict.type.yaungong"
-                          :key="dict.value"
-                          :label="dict.label"
-                          :value="dict.value"
-                        ></el-option>
-                      </el-select>
-                    </el-form-item>
-          </el-col>
+                     <el-form-item label="员工类别" prop="staffCategory">
+                                           <el-select v-model="formg.staffCategory" placeholder="请选择员工类别">
+                                             <el-option
+                                               v-for="dict in roleList"
+                                               :key="dict.roleKey"
+                                               :label="dict.roleName"
+                                               :value="dict.roleKey"
+                                             ></el-option>
+                                           </el-select>
+                                         </el-form-item>
+                    </el-col>
           <el-col :span="12">
             <el-form-item label="维修分类" prop="maintenanceCategory">
                       <el-select clearable v-model="formg.maintenanceCategory" placeholder="请选择维修分类">
@@ -502,21 +524,7 @@ color: #196CFF;">立即完善(管理员)</p>
                <el-input v-model="formg.staffName" placeholder="请输入员工姓名" />
             </el-form-item>
           </el-col>
-          <el-col :span="24">
-            <el-form-item label="选择小区" prop="tenantId">
-               <el-select
-               style="width:100%;"
-               			  v-model="formg.tenantId"
-               			  clearable
-               			  filterable
-               			  reserve-keyword
-               			  placeholder="选择小区"
-               			>
-               			  <el-option v-for="item in tenantList" :key="item.tenantId" :label="item.companyName" :value="item.tenantId"> </el-option>
-               			  <template ><svg-icon icon-class="company" class="el-input__icon input-icon" /></template>
-               			</el-select>
-            </el-form-item>
-          </el-col>
+
 
           <el-col :span="12" class="shefnze" >
               <el-form-item label="头像" prop="avatarPhoto">
@@ -541,6 +549,12 @@ color: #196CFF;">立即完善(管理员)</p>
         <el-button type="primary" @click="submitFormg">确 定</el-button>
       </div>
     </el-dialog>
+
+    <!-- <el-dialog title="完善信息" :visible.sync="openg" width="640px" append-to-body>
+
+    </el-dialog> -->
+
+
   </div>
 </template>
 
@@ -602,8 +616,9 @@ color: #196CFF;">立即完善(管理员)</p>
     updateCheckPointRecord,
     count
   } from "@/api/wuguan/checkPointRecord";
-  import { examineStaff } from "@/api/wuguan/staffManage";
+  import { examineStaff,addStaffManage,staffManagexq,updateStaffManage } from "@/api/wuguan/staffManage";
   import { getTenantList} from "@/api/login";
+  import {listNoPage} from "@/api/system/role";
   export default {
     name: "Index",
     dicts: ['baoxiutype', 'repair_status', 'patrol_type','yaungong', 'gender', 'weixiutype'],
@@ -613,7 +628,6 @@ color: #196CFF;">立即完善(管理员)</p>
       RaddarChart,
       PieChart,
       BarChart,
-
     },
     data() {
       return {
@@ -689,32 +703,73 @@ color: #196CFF;">立即完善(管理员)</p>
         chelisngguan: {},
         isacr: 0,
         carNume:{},
-        tenantList:[]
+        tenantList:[],
+        ishsoe:false,
+        forewg:{},
+        tesrtw:'',
+        // 角色表格数据
+        roleList: [],
       };
     },
     created() {
       this.userid = this.$store.getters.userId
-      // if(this.$store.getters.authenticationUser =='Y'){
-      //   this.shouzu = false
-      // }else{
-      //   this.shouzu = true
-      // }
+      if(this.$store.getters.authenticationUser =='Y'){
+        // 认证未通过或者未认证
+        this.shouzu = false
+        // this.getxinaqren()
+        this.getrou(this.$store.getters.tenantId)
+      }else{
+        this.shouzu = true
+        // this.getcharnae()
+        // this.setTimer()
+        // this.gettime()
+        // this.getListtion()
+        // this.getListpair()
+        // this.getstaffManageList()
+        // this.getListRecord()
+        // this.getListRecordcun()
+        // this.baozhe()
+        // this.getche()
+      }
       clearInterval(this.timer)
       this.timer = null
-      // this.getcharnae()
-      // this.setTimer()
-      // this.gettime()
-      // this.getListtion()
-      // this.getListpair()
-      // this.getstaffManageList()
-      // this.getListRecord()
-      // this.getListRecordcun()
-      // this.baozhe()
-      // this.getche()
       this.getnhgwzuhue()
-
     },
     methods: {
+      // 小区切换
+         chahue(row){
+           this.getrou(row.tenantId)
+         },
+         // 查询角色信息
+         getrou(row){
+           let pade={'tenantId':row}
+           listNoPage(pade).then(response => {
+               this.roleList = response.rows;
+               this.roleList.filter(rou=>{
+                 rou.dictValue=rou.roleKey
+                 rou.dictLabel=rou.roleName
+               })
+               if(response.rows.length !=0){
+                 this.formg.staffCategory = response.rows[0].roleKey
+               }
+             }
+           );
+         },
+      getxinaqren(){
+        staffManagexq(this.$store.getters.userId).then(response => {
+          if(response.data == null){
+            this.ishsoe = true
+          }else{
+            this.ishsoe = false
+            this.forewg = response.data
+            this.tesrtw = response.data.tenantId
+          }
+          // this.tenantEnabled = response.data.tenantEnabled
+          // this.tenantList = response.data.voList;
+          // this.loading = false;
+        });
+
+      },
       getnhgwzuhue(){
         // this.loading = true;
         getTenantList().then(response => {
@@ -724,15 +779,21 @@ color: #196CFF;">立即完善(管理员)</p>
         });
       },
       zhuhuet(){
-        this.reset()
-        this.formg.phoneNumber =  this.$store.getters.phonenumber
-        this.formg.userId = this.userid
-        console.log(this.formg.userId)
-        if(this.tenantList.length !=0){
-           this.formg.tenantId = this.tenantList[0].tenantId
-        }
+          this.reset()
+          this.formg.phoneNumber =  this.$store.getters.phonenumber
+          this.formg.userId = this.userid
+          if(this.tenantList.length !=0){
+             this.formg.tenantId = this.tenantList[0].tenantId
+             this.getrou(this.$store.getters.tenantId)
+                 this.openg = true
+          }else{
+            this.openg = true
+          }
+
+        console.log(this.formg)
+        // console.log(this.formg.userId)
         // console.log(this.formg.phoneNumber,this.$store.getters.user.phonenumber)
-        this.openg = true
+
       },
       // 车辆进入\
       getcharnae(){
@@ -986,15 +1047,33 @@ color: #196CFF;">立即完善(管理员)</p>
           }
         });
       },
+
       /** 注册认证提交按钮 */
       submitFormg: function() {
         this.$refs["formg"].validate(valid => {
          if (valid) {
-                     examineStaff(this.formg).then(response => {
-                       this.$modal.msgSuccess("操作成功,等待管理员审核");
-                       this.open = false;
-                       // this.getList();
-                     });
+           if(this.ishsoe == false){
+             if(this.tesrtw == this.formg.tenantId){
+               updateStaffManage(this.formg).then(response => {
+                 this.$modal.msgSuccess("修改成功,等待管理员审核");
+                 this.openg = false;
+               });
+             }else{
+               addStaffManage(this.formg).then(response => {
+                 this.$modal.msgSuccess("操作成功,等待管理员审核");
+                 this.openg = false;
+                 // this.getList();
+               });
+             }
+           }else{
+              addStaffManage(this.formg).then(response => {
+                this.$modal.msgSuccess("操作成功,等待管理员审核");
+                this.openg = false;
+                // this.getList();
+              });
+           }
+
+
           }
         });
       },
@@ -1130,7 +1209,7 @@ color: #196CFF;">立即完善(管理员)</p>
                       staffId: null,
                       staffName: null,
                       gender: null,
-                      staffCategory: 'test1',
+                      staffCategory: null,
                       maintenanceCategory: null,
                       phoneNumber: null,
                       avatarPhoto: null,
@@ -1145,7 +1224,8 @@ color: #196CFF;">立即完善(管理员)</p>
                       updateTime: null,
                       remark: null,
                       tenantId:null,
-                      userId:this.userid
+                      userId:this.userid,
+                      userType:'pc_user'
                     };
               this.resetForm("formg");
             },

+ 5 - 4
ruoyi-ui/src/views/login.vue

@@ -84,9 +84,9 @@
         <!-- <el-form-item  prop="confirmPassword"  class="njhyter" v-if="xgmemberMe" style="margin-bottom: 17px;">
           <fileUpload :limit="5"  v-model="loginForm.registerSchoolFileList" />
         </el-form-item> -->
-        <div class="njuyehaf" style="justify-content: space-between;align-items: center;margin-bottom: 25px;margin-left:20px;">
+        <div class="njuyehaf" style="justify-content: space-between;align-items: center;margin-bottom: 25px;">
           <el-checkbox v-model="loginForm.rememberMe" style="margin:0px 0px 0 0px;">记住密码</el-checkbox>
-          <el-form-item style="float: right;margin-bottom: 0;">
+          <el-form-item style="float: right;margin-bottom: 0; padding-left: 20px;">
             <el-button circle title="微信登录" @click="doSocialLogin('wechat')">
               <svg-icon icon-class="wechat" />
             </el-button>
@@ -96,7 +96,7 @@
           </el-form-item>
       <!-- <el-checkbox v-model="xgmemberMe"  @change=" xgmes " style="margin:0px 0px 25px 25px;">找回密码</el-checkbox> -->
         <p  v-if="!zhucemiber">
-          <span style="color:red;margin-right: 10px;"><router-link class="link-type" :to="'/registerx'">忘记密码</router-link> </span>
+          <span style="color: #46CB99;margin-right: 10px;"><router-link class="link-type" :to="'/registerx'" style="color: #46CB99;">忘记密码</router-link> </span>
           <span><router-link class="link-type" :to="'/register'">注册</router-link> </span></p>
         <!-- <span @click="zhuc">注册</span> -->
 
@@ -253,10 +253,11 @@ export default {
             Cookies.remove("password");
             Cookies.remove('rememberMe');
           }
+
 		  // this.loginForm.tenantId = '000000'
       // this.loginForm.clientId = 'e5cd7e4891bf95d1d19206ce24a7b32e'
       this.loginForm.grantType = 'password'
-		   console.log(1,this.loginForm,this.$store.dispatch("Login", this.loginForm))
+		   // console.log(1,this.loginForm,this.$store.dispatch("Login", this.loginForm))
           this.$store.dispatch("Login", this.loginForm).then(() => {
 			  console.log(3)
             this.$router.push({ path: this.redirect || "/" }).catch(()=>{});

+ 1 - 1
ruoyi-ui/src/views/register.vue

@@ -190,7 +190,7 @@ export default {
         if (valid) {
           this.loading = true;
           this.registerForm.phonenumber = this.registerForm.username
-          this.registerForm.tenantId = ''
+          this.registerForm.tenantId ='000000'
           this.registerForm.clientId = 'e5cd7e4891bf95d1d19206ce24a7b32e'
           this.registerForm.grantType = 'password,social'
           this.registerForm.userType = 'pc_user'

+ 1 - 1
ruoyi-ui/src/views/registerx.vue

@@ -207,7 +207,7 @@ export default {
               this.$router.push("/login");
               // this.handleLogin(this.registerForm)
             }).catch(() => {
-              this.$router.push("/login");
+              // this.$router.push("/login");
             });
           }).catch(() => {
             this.loading = false;

+ 833 - 0
ruoyi-ui/src/views/registerxmerenz.vue

@@ -0,0 +1,833 @@
+<template>
+  <div class="app-container">
+    <div style="background-color: #fff;padding: 20px;border-radius: 10px;">
+      <p style="margin: 0; font-weight: 800;font-size: 16px;color: #343434;display: flex;align-items: center;margin-bottom: 20px;">
+        <img src="../assets/images/icon_htgl_btzs.png" alt="" style="width: 16px;height: 20px;">
+       <span style="margin-left: 10px;">我的认证</span>
+      </p>
+      <div style="background: #F3F3F3;padding: 20px 15px; padding-bottom: 0;margin-bottom: 20px;">
+        <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="88px">
+          <el-row>
+            <el-col :span="24">
+              <el-col :span="8">
+                <el-form-item label="员工姓名" prop="staffName">
+                        <el-input
+                          v-model="queryParams.staffName"
+                          placeholder="请输入员工姓名"
+                          clearable
+                          @keyup.enter.native="handleQuery"
+                        />
+                      </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="维修分类" prop="maintenanceCategory">
+                        <el-select v-model="queryParams.maintenanceCategory" placeholder="请选择维修分类" clearable>
+                          <el-option
+                            v-for="dict in dict.type.weixiutype"
+                            :key="dict.value"
+                            :label="dict.label"
+                            :value="dict.value"
+                          />
+                        </el-select>
+                      </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                 <el-form-item label="手机号码" prop="phoneNumber">
+                        <el-input
+                          v-model="queryParams.phoneNumber"
+                          placeholder="请输入手机号码"
+                          clearable
+                          @keyup.enter.native="handleQuery"
+                        />
+                      </el-form-item>
+              </el-col>
+            </el-col>
+            <el-col :span="24">
+
+              <el-col :span="8">
+                <el-form-item label="审核状态" prop="examine">
+                        <el-select v-model="queryParams.examine" placeholder="请选择审核状态" clearable>
+                          <el-option
+                            v-for="dict in dict.type.renzhen_sh"
+                            :key="dict.value"
+                            :label="dict.label"
+                            :value="dict.value"
+                          />
+                        </el-select>
+                      </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item class="butt bnjle">
+                  <el-button size="mini" type="primary"   @click="handleQuery">搜索</el-button>
+                  <el-button size="mini"   @click="resetQuery">重置</el-button>
+                </el-form-item>
+              </el-col>
+            </el-col>
+          </el-row>
+
+        </el-form>
+      </div>
+
+
+      <div class="casr "  >
+              <el-row :gutter="10" class="mb8" >
+                <!-- <el-col :span="1.5">
+                  <div style="font-weight: bold;font-size: 14px;color: #343434; display: flex;align-items: center;">
+                    当夜全选
+                  </div>
+                </el-col> -->
+                <el-col :span="1.5">
+                  <el-button
+                    type="primary"
+                    plain
+                    size="mini"
+                    @click="handleAdd"
+                  >添加</el-button>
+                </el-col>
+                <!-- <el-col :span="1.5">
+                  <el-button
+                    type="success"
+                    plain
+                    size="mini"
+                    :disabled="single"
+                    @click="handleUpdate"
+                    v-hasPermi="['system:post:edit']"
+                  >修改</el-button>
+                </el-col>
+                <el-col :span="1.5">
+                  <el-button
+                    type="danger"
+                    plain
+                    size="mini"
+                    :disabled="multiple"
+                    @click="handleDelete"
+                    v-hasPermi="['system:post:remove']"
+                  >删除</el-button>
+                </el-col> -->
+                <el-col :span="1.5">
+                  <el-button
+                    type="warning"
+                    plain
+                    size="mini"
+                    @click="handleExport"
+                    v-hasPermi="['wuYe:staffManage:export']"
+                  >导出</el-button>
+                </el-col>
+                <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+              </el-row>
+              <div class="infinite-list" :style="dynamicStyle">
+                <el-row :gutter="10" v-if="staffManageList.length !=0" style="width: 100%;margin-left: 0;">
+                  <el-col :span="6" v-for="(item,index) in staffManageList" :key="index" >
+                    <div v-if="isshoe"  :class=" item.isnum ==true ? 'ingwe' :'' " style="position: relative; background-color: #fff;box-shadow: 0px 0px 10px 0px #CDCDCD;border-radius: 4px;margin-bottom: 10px;">
+                      <!-- @click="isac(item)" -->
+                      <div style="display: flex; align-items: center;padding: 15px 20px;">
+                        <img src="../assets/images/icon_htgl_rygl_tx_nv.png" alt="" style="width: 50px;height: 50px;border-radius: 50%;" v-if="item.avatarPhoto ==  null">
+                         <image-preview :src="item.avatarPhoto" :width="50" :height="50" v-if="item.avatarPhoto !=  null" style="border-radius: 50%;"/>
+                        <span style="font-weight: bold;font-size: 16px;color: #161616;margin-left: 15px;">{{item.staffName == null? '暂无数据' : item.staffName}}</span>
+                        <div style="width: 73px;height: 24px;position: absolute;right: 0;top: 15px;background-color:#28C529; font-size: 12px;color: #fff;line-height: 24px;text-align: center;border-bottom-left-radius: 5px;border-top-left-radius: 5px;" v-if="item.examine == '1'">
+                          <!-- <dict-tag :options="dict.type.renzhen_sh" :value="item.examine"/> -->
+                          待审核
+                        </div>
+                        <div style="width: 73px;height: 24px;position: absolute;right: 0;top: 15px;background-color:#28C529; font-size: 12px;color: #fff;line-height: 24px;text-align: center;border-bottom-left-radius: 5px;border-top-left-radius: 5px;" v-if="item.examine == '2'">
+                          <!-- <dict-tag :options="dict.type.renzhen_sh" :value="item.examine"/> -->
+                          审核通过
+                        </div>
+                        <div style="width: 73px;height: 24px;position: absolute;right: 0;top: 15px;background-color:#28C529; font-size: 12px;color: #fff;line-height: 24px;text-align: center;border-bottom-left-radius: 5px;border-top-left-radius: 5px;" v-if="item.examine == '3'">
+                          <!-- <dict-tag :options="dict.type.renzhen_sh" :value="item.examine"/> -->
+                          审核驳回
+                        </div>
+                        <!-- <img src="../assets/images/pic_htgl_wxrygl_yhlx_zp.png" alt="" style="width: 73px;height: 24px;position: absolute;right: 0;top: 15px;"> -->
+                      </div>
+                      <div class="goe renyuangs" style="padding: 0 20px;">
+                        <!-- <div style="margin-bottom: 10px; display: flex;align-items: center;">
+                          人员类别:<dict-tag :options="dict.type.yaungong" :value="item.staffCategory"/>
+                        </div> -->
+                        <div style="line-height: 28px;">维修类别:<dict-tag :options="dict.type.weixiutype" :value="item.maintenanceCategory"/></div>
+                        <p>
+                          手机号码:{{item.phoneNumber == null? '暂无数据' : item.phoneNumber}}
+                        </p>
+                        <p>
+                          身份证号:{{item.idCard == null? '暂无数据' : item.idCard}}
+                        </p>
+                      </div>
+                      <div style="height: 150px;padding: 0 10px;" class="ingsek">
+                        <el-carousel :interval="4000"  arrow="hover" height="150px;width:100%;" indicator-position="none" >
+                            <el-carousel-item  v-for="(itemg,index) in item.imges" :key="index" v-if="item.imges.length !=0">
+                        										<div style="position: relative;" @click="imge(itemg)">
+                                              <!-- defaultSettings.urls+baseUrl +itemt.url -->
+                                              <!-- +baseUrl -->
+                        											<img :src="defaultSettings.urls +itemg" alt="" style="width: 100%;height: 150px;">
+                        											<!-- <p style="position: absolute;bottom: 0;left: 0;font-weight: 500; height: 24px;background-color: rgba(0,0,0,.5);color: #fff;font-size: 14px;width: 100%;padding-left: 10px;line-height: 24px;margin: 0;">{{itemt.title}}</p> -->
+                        										</div>
+                            </el-carousel-item>
+                            <el-carousel-item   v-if="item.imges.length ==0">
+                                   <div style="position: relative;" >
+                                              <!-- defaultSettings.urls+baseUrl +itemt.url -->
+                                   <img src="../assets/images/zwshuj.png" alt="" style="width: 100%;height: 150px;">
+                                             <!-- <p style="position: absolute;bottom: 0;left: 0;font-weight: 500; height: 24px;background-color: rgba(0,0,0,.5);color: #fff;font-size: 14px;width: 100%;padding-left: 10px;line-height: 24px;margin: 0;">{{itemt.title}}</p> -->
+                                   </div>
+                            </el-carousel-item>
+                          </el-carousel>
+                      </div>
+                      <div class="bortt tongty" style="justify-content: space-between;cursor: pointer;">
+                        <p ><span  style="color:#28C529 ;"  @click="handleUpdate(item)" v-if="item.examine !=2">修改</span>  </p>
+                        <p  style="border-left: 1px solid #DADADAd;" @click="handleUpdatef(item)" :class="item.examine !=2?'':'wide'">查看</p>
+                        <!-- <span @click="handleUpdatef(item)">查看</span> -->
+                        <p  style="color:red" @click="handleDelete(item)">删除</p>
+                      </div>
+                      <img v-if="item.isnum == true" src="../assets/images/icon_htgl_kp_gx.png" alt="" style="width: 35px;height: 35px;position: absolute;bottom: 0;right: 0;">
+                    </div>
+                  </el-col>
+                </el-row>
+                <div style="margin-top: 20px;display: flex;justify-content: center;align-items: center;" v-if="staffManageList.length ==0">
+                   <img   src="../assets/images/zwshjbig.png" alt="" style="">
+                </div>
+              </div>
+      </div>
+
+
+      <pagination
+        v-show="total>0"
+        :total="total"
+        :page.sync="queryParams.pageNum"
+        :limit.sync="queryParams.pageSize"
+        @pagination="getList"
+      />
+    </div>
+
+    <!-- 添加或修改岗位对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="640px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-row>
+          <el-col :span="24" class="ngeshimg" >
+            <el-form-item label="身份证号" prop="idCard" style="position: relative;">
+                  <el-input v-model="form.idCard" placeholder="请输入身份证号码" />
+                  <!-- <image-upload :limit="1" v-model="form.idCardBack"/> -->
+                  <image-uploadshib @uploadedSuccessfully="uploadedSuccessfully" :typeg = "1" :limit="1" v-model="form.idCardBack"/>
+            </el-form-item>
+          </el-col>
+          <el-col :span="24">
+            <el-form-item label="选择小区" prop="tenantId">
+               <el-select
+               style="width:100%;"
+               			  v-model="form.tenantId"
+               			  clearable
+               			  filterable
+               			  reserve-keyword
+               			  placeholder="选择物业"
+               			>
+               			  <el-option v-for="item in tenantList" :key="item.tenantId" :label="item.companyName" :value="item.tenantId" @click.native="chahue(item)"> </el-option>
+               			  <template ><svg-icon icon-class="company" class="el-input__icon input-icon" /></template>
+               			</el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="员工性别" prop="gender">
+                      <el-select v-model="form.gender" placeholder="请选择员工性别">
+                        <el-option
+                          v-for="dict in dict.type.gender"
+                          :key="dict.value"
+                          :label="dict.label"
+                          :value="dict.value"
+                        ></el-option>
+                      </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+           <el-form-item label="员工类别" prop="staffCategory">
+                                 <el-select v-model="form.staffCategory" placeholder="请选择员工类别">
+                                   <el-option
+                                     v-for="dict in roleList"
+                                     :key="dict.roleKey"
+                                     :label="dict.roleName"
+                                     :value="dict.roleKey"
+                                   ></el-option>
+                                 </el-select>
+                               </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="维修分类" prop="maintenanceCategory">
+                      <el-select clearable v-model="form.maintenanceCategory" placeholder="请选择维修分类">
+                        <el-option
+                          v-for="dict in dict.type.weixiutype"
+                          :key="dict.value"
+                          :label="dict.label"
+                          :value="dict.value"
+                        ></el-option>
+                      </el-select>
+                    </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="手机号码" prop="phoneNumber">
+                <el-input v-model="form.phoneNumber" placeholder="请输入手机号码" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="15">
+            <el-form-item label="员工姓名" prop="staffName">
+                      <el-input v-model="form.staffName" placeholder="请输入员工姓名" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="12" class="shefnze" >
+              <el-form-item label="头像" prop="avatarPhoto">
+            <image-upload :limit="1" v-model="form.avatarPhoto"/>
+          </el-form-item>
+            </el-col>
+          <el-col :span="12" class="shefnze">
+             <el-form-item label="身份证国徽面" prop="idCardFront">
+               <image-upload :limit="1" v-model="form.idCardFront"/>
+             </el-form-item>
+          </el-col>
+
+          <el-col :span="24" >
+              <el-form-item label="相关证件" prop="certificate">
+                        <file-upload v-model="form.certificate"/>
+             </el-form-item>
+          </el-col>
+        </el-row>
+
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm" v-if="title !='查看信息'">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+    <el-dialog title="查看图片" :visible.sync="openg" width="440px" append-to-body>
+      <div>
+        <!-- +baseUrl -->
+        <img :src="defaultSettings.urls+ imgurw" alt="" style="width: 100%;">
+      </div>
+      </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listStaffManage, listAuthentication,getStaffManage, delStaffManage, addStaffManage, updateStaffManage,authentication,deleteStaffManage,staffManagexqst } from "@/api/wuguan/staffManage";
+import 'videojs-flash'
+import { getTenantList} from "@/api/login";
+import {listNoPage} from "@/api/system/role";
+const defaultSettings = require("@/settings.js");
+export default {
+   name: "StaffManage",
+    dicts: ['yaungong', 'gender', 'technician_selection','weixiutype','renzhen_sh'],
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      openg:false,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      baseUrl: process.env.VUE_APP_BASE_API,
+      defaultSettings:defaultSettings,
+      // 员工管理表格数据
+      staffManageList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      tenantList:[],
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+               pageSize: 8,
+               staffName: null,
+               gender: null,
+               staffCategory: null,
+               maintenanceCategory: null,
+               phoneNumber: null,
+               avatarPhoto: null,
+               idCard: null,
+               idCardFront: null,
+               idCardBack: null,
+               certificate: null,
+               status: null,
+               examine:null,
+               userId:this.$store.getters.userId
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        staffName: [
+                  { required: true, message: "员工姓名不能为空", trigger: "blur" }
+                ],
+                staffCategory: [
+                  { required: true, message: "员工类别,1:保安 2:维修人员 3:物业管理不能为空", trigger: "change" }
+                ],
+
+                phoneNumber: [
+                  { required: true, message: "手机号码不能为空", trigger: "blur" }
+                ],
+      },
+      activeName:'first',
+      videoState: false, // 视频播放状态
+      poster:true,
+      controls:true,
+      videoData:{},
+       player: null,
+       isshoe:true,
+       tableMaxHeight:'200',
+       imgurw:'',
+       roleList:[],
+       userid:0,
+       ishse:false
+    };
+  },
+  computed: {
+    dynamicStyle() {
+      return {
+        overflow:'auto',
+        height: this.tableMaxHeight+ 'px',
+        paddingTop:'10px'
+      }
+    }
+    },
+
+  created() {
+    this.getList();
+    this.getnhgwzuhue()
+    this.getrou(this.$store.getters.tenantId)
+    this.userid = this.$store.getters.userId
+  window.onresize = () => {
+  	      this.changeTableMaxHeight()
+  	    }
+  	    this.changeTableMaxHeight()
+  },
+  mounted() {
+  	window.onresize = () => {
+  	          this.changeTableMaxHeight()
+  	        }
+  	        this.changeTableMaxHeight()
+  },
+  beforeDestroy() {
+      if (this.player) {
+        this.player.dispose()
+      }
+    },
+  methods: {
+
+     // 小区切换
+        chahue(row){
+          this.getrou(row.tenantId)
+        },
+        // 查询角色信息
+        getrou(row){
+          let pade={'tenantId':row}
+          listNoPage(pade).then(response => {
+              this.roleList = response.rows;
+              this.roleList.filter(rou=>{
+                rou.dictValue=rou.roleKey
+                rou.dictLabel=rou.roleName
+              })
+              if (this.form.staffId != null) {
+
+              }else{
+                if(response.rows.length !=0){
+                  this.form.staffCategory = response.rows[0].roleKey
+                }
+              }
+            }
+          );
+        },
+    getnhgwzuhue(){
+      // this.loading = true;
+      getTenantList().then(response => {
+    	  // this.tenantEnabled = response.data.tenantEnabled
+        this.tenantList = response.data.voList;
+        // this.loading = false;
+      });
+    },
+    /** 查询岗位列表 */
+    getList() {
+          this.loading = true;
+          listAuthentication(this.queryParams).then(response => {
+            this.staffManageList  = response.rows;
+            this.staffManageList .filter(rou=>{
+              rou.imges = []
+              if(rou.idCardFront != null && rou.idCardFront != ''){
+                rou.imges.push(rou.idCardFront)
+              }
+              if(rou.idCardBack != null && rou.idCardBack != ''){
+                rou.imges.push(rou.idCardBack)
+              }
+              rou.isnum = false
+            })
+            // this.getge(this.postList)
+            this.total = response.total;
+            this.loading = false;
+          });
+        },
+        imge(row){
+          this.openg = true
+          this.imgurw = row
+        },
+    getInfo(idCard) {
+            let sex = null;
+            let birth = null;
+            let myDate = new Date();
+            let month = myDate.getMonth() + 1;
+            let day = myDate.getDate();
+            let age = 0;
+
+            if (idCard.length === 18) {
+              age = myDate.getFullYear() - idCard.substring(6, 10) - 1;
+              sex = idCard.substring(16, 17);
+              birth = idCard.substring(6, 10) + "-" + idCard.substring(10, 12) + "-" + idCard.substring(12, 14);
+              if (idCard.substring(10, 12) < month || idCard.substring(10, 12) === month && idCard.substring(12, 14) <= day)
+                age++;
+
+            }
+            if (idCard.length === 15) {
+              age = myDate.getFullYear() - idCard.substring(6, 8) - 1901;
+              sex = idCard.substring(13, 14);
+              birth = "19" + idCard.substring(6, 8) + "-" + idCard.substring(8, 10) + "-" + idCard.substring(10, 12);
+              if (idCard.substring(8, 10) < month || idCard.substring(8, 10) === month && idCard.substring(10, 12) <= day)
+                age++;
+            }
+
+            if (sex % 2 === 0)
+              sex = 2; // 性别代码 1代表男,0代表女,暂时不涉及其他类型性别
+            else
+              sex = 1;
+            return {
+              age,
+              sex,
+              birth
+            }
+          },
+     getBirthday(idCard) {
+             let birthday = "";
+             if (idCard != null && idCard !== "") {
+               if (idCard.length === 15) {
+                 birthday = "19" + idCard.substr(6, 6);
+               } else if (idCard.length === 18) {
+                 birthday = idCard.substr(6, 8);
+               }
+               birthday = birthday.replace(/(.{4})(.{2})/, "$1-$2-");
+             }
+             return birthday;
+           },
+    uploadedSuccessfully(row){
+      // console.log('上传重构员工',row)
+      if(row.length !=0){
+        row.filter(ru=>{
+          this.form.staffName = ru.realName
+          this.form.idCard = ru.idCard
+          let sge = this.getInfo( this.form.idCard)
+          // this.form.yearsOld = sge.age
+          this.form.gender = sge.sex + ''
+          // this.form.residentBirthday = sge.birth
+        })
+
+      }
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+              staffId: null,
+              staffName: null,
+              gender: null,
+              staffCategory: null,
+              maintenanceCategory: null,
+              phoneNumber: null,
+              avatarPhoto: null,
+              idCard: null,
+              idCardFront: null,
+              idCardBack: null,
+              certificate: null,
+              status: null,
+              createBy: null,
+              createTime: null,
+              updateBy: null,
+              updateTime: null,
+              remark: null,
+              tenantId:this.$store.getters.tenantId,
+              userId:this.userid,
+              userType:' pc_user',
+              examine:1
+            };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.staffId)
+      this.single = selection.length!=1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.form.phoneNumber =  this.$store.getters.phonenumber
+       if(this.tenantList.length !=0){
+           this.form.tenantId = this.tenantList[0].tenantId
+           let pade={'tenantId':this.form.tenantId}
+           this.getrou(this.$store.getters.tenantId)
+             this.open = true;
+
+
+                }
+      this.title = "添加员工管理";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+     this.reset();
+           const staffId = row.staffId || this.ids
+           staffManagexqst(staffId).then(response => {
+             this.form = response.data;
+             this.getrou(this.form.tenantId)
+             this.open = true;
+
+             this.title = "修改员工管理";
+           });
+    },
+    handleUpdatef(row){
+      this.reset();
+            const staffId = row.staffId || this.ids
+            staffManagexqst(staffId).then(response => {
+              this.form = response.data;
+              this.getrou(this.form.tenantId)
+              this.open = true;
+              this.title = "查看信息";
+            });
+    },
+    /** 提交按钮 */
+    submitForm: function() {
+      this.$refs["form"].validate(valid => {
+       if (valid) {
+                 if (this.form.staffId != null) {
+                   this.form.isFilter = true
+                   updateStaffManage(this.form).then(response => {
+                     this.$modal.msgSuccess("修改成功");
+                     this.open = false;
+                     this.getList();
+                   });
+                 } else {
+                   addStaffManage(this.form).then(response => {
+                     this.$modal.msgSuccess("新增成功");
+                     this.open = false;
+                     this.getList();
+                   });
+                 }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+        handleDelete(row) {
+          // const staffIds = row.staffId || this.ids;
+          let staffIds={'staffId':row.staffId,'userId':row.userId,'tenantId':row.tenantId}
+          this.$modal.confirm('是否确认删除员工的数据项?').then(function() {
+            return deleteStaffManage(staffIds);
+          }).then(() => {
+            this.getList();
+            this.$modal.msgSuccess("删除成功");
+          }).catch(() => {});
+        },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('wuYe/staffManage/export', {
+        ...this.queryParams
+      }, `staffManage_${new Date().getTime()}.xlsx`)
+    },
+
+      handleClick(){
+
+      },
+    isac(val){
+      console.log(5,val)
+      val.isnum = !val.isnum
+      this.isshoe = false
+      this.isshoe = true
+    },
+    // 获取屏幕高度
+    showFilterForm () {
+          this.filterActive = !this.filterActive
+          this.changeTableMaxHeight()
+        },
+
+        changeTableMaxHeight () {
+          let height = document.body.offsetHeight // 网页可视区域高度
+          // if (this.filterActive) {
+          //   this.tableMaxHeight = height - 320
+          // } else {
+            this.tableMaxHeight = height - 150
+          // }
+          console.log(height)
+        }
+
+  }
+};
+</script>
+<style  lang="scss">
+  .ingsek{
+   .el-carousel__container{
+  	 height: 150px;
+   }
+   .el-carousel--horizontal{
+     width: 100%;
+   }
+  }
+  .shefnze{
+    .el-upload--picture-card{
+      width: 80px;
+      height: 80px;
+      line-height: 80px;
+    }
+    .el-upload-list--picture-card .el-upload-list__item{
+      width: 80px;
+      height: 80px;
+    }
+    .el-upload__tip{
+      overflow: hidden;
+        text-overflow: ellipsis;
+        white-space: nowrap;
+    }
+  }
+  .ngeshimg{
+    .el-upload--picture-card{
+      width: 36px;
+      height: 36px;
+      line-height: 36px;
+      position: absolute;
+      top:0;
+      right: 0;
+    }
+    .component-upload-image{
+      position: absolute;
+      top:0;
+      right: 0;
+    }
+    .el-upload--picture-card i{
+      font-size: 20px;
+    }
+    .el-upload-list--picture-card .el-upload-list__item{
+      width: 58px;
+      height: 36px;
+      position: absolute;
+      top:0;
+      right: -10px;
+    }
+  }
+  .unimg{
+    .el-upload--picture-card{
+      width:102px;
+      height: 102px;
+      line-height: 102px;
+    }
+    .el-upload-list--picture-card .el-upload-list__item{
+      width:102px;
+      height: 102px;
+      line-height: 102px;
+    }
+  }
+
+  .bnjle{
+    margin-left: 20px;
+  }
+  .butt{
+    .el-button--small{
+      padding: 9px 23px !important;
+      font-size: 14px;
+    }
+  }
+  .casr{
+    .el-tabs__item.is-active{
+      color: #196CFF;
+    }
+    .el-tabs--card > .el-tabs__header .el-tabs__item{
+      padding: 0  30px !important;
+    }
+  }
+  .el-table .el-table__header-wrapper th{
+    background-color:#F5F6F8;
+    color:#343434;
+  }
+  .el-table{
+    color:#343434;
+  }
+</style>
+<style scoped lang="scss">
+
+  .goe{
+    p{
+      margin: 0;
+      font-weight: 800;
+      font-size: 16px;
+      color: #161616;
+      margin-top: 10px;
+      margin-bottom: 3px;
+      padding: 0 10px;
+      overflow: hidden;
+      text-overflow: ellipsis;
+      display:-webkit-box; //作为弹性伸缩盒子模型显示。
+      -webkit-box-orient:vertical; //设置伸缩盒子的子元素排列方式--从上到下垂直排列
+      -webkit-line-clamp:1; //显示的行
+    }
+    p:nth-child(2){
+
+    }
+  }
+  .ingwe{
+    border: 2px solid #196CFF;
+  }
+  .renyuangs{
+    p{
+      font-weight: 500;
+      font-size: 14px;
+      color: #161616;
+      padding: 0;
+    }
+    div{
+      font-weight: 500;
+      font-size: 14px;
+      color: #161616;
+      height: 28px;
+      // margin-bottom: 20px;
+      display: flex;
+    }
+  }
+  .tongty{
+    display: flex;
+    align-items: center;
+  }
+  .bortt{
+    border-top: 1px solid #DADADA;
+    margin-top: 15px;
+
+    p{
+      margin: 0;
+      font-weight: bold;
+      font-size: 14px;
+      color: #5F8BF4;
+      width:50%;
+      padding: 10px;
+      text-align: center;
+    }
+  }
+  .wide{
+    width:100% !important;
+  }
+  </style>
+
+

+ 1 - 1
ruoyi-ui/src/views/system/role/index.vue

@@ -253,7 +253,7 @@
 </template>
 
 <script>
-import { listRole, getRole, delRole, addRole, updateRole, dataScope, changeRoleStatus, deptTreeSelect } from "@/api/system/role";
+import { listRole, listNoPage,getRole, delRole, addRole, updateRole, dataScope, changeRoleStatus, deptTreeSelect } from "@/api/system/role";
 import { treeselect as menuTreeselect, roleMenuTreeselect } from "@/api/system/menu";
 
 export default {

+ 1 - 0
ruoyi-ui/src/views/system/tenant/index.vue

@@ -155,6 +155,7 @@
 			<el-col :span="8">
 				<el-form-item label="过期时间" prop="expireTime">
 					<el-date-picker clearable
+          style="width:100%;"
 					  v-model="form.expireTime"
 					  type="datetime"
 					  value-format="yyyy-MM-dd HH:mm:ss"

+ 1 - 2
ruoyi-ui/src/views/system/tenantPackage/index.vue

@@ -205,7 +205,6 @@ export default {
 	  kiuesegh:[],
 	  kiueseghs:[],
 	  fku:false
-
     };
   },
   created() {
@@ -336,7 +335,7 @@ export default {
 	       })
 	     });
 	   });
-	   this.title = "修改角色";
+	   this.title = "修改信息";
 	 });
     },
     /** 提交按钮 */

+ 3 - 1
ruoyi-ui/src/views/system/user/index.vue

@@ -451,7 +451,9 @@ export default {
         // 是否更新已经存在的用户数据
         updateSupport: 0,
         // 设置上传的请求头部
-        headers: { Authorization: "Bearer " + getToken() },
+        headers: { Authorization: "Bearer " + getToken(),
+        clientid:'e5cd7e4891bf95d1d19206ce24a7b32e'
+         },
         // 上传的地址
         url: process.env.VUE_APP_BASE_API + "/system/user/importData"
       },

+ 8 - 14
ruoyi-ui/src/views/wuguan/assetType/index.vue

@@ -107,8 +107,8 @@
         <template slot-scope="scope">
           <el-switch
             v-model="scope.row.status"
-            active-value="1"
-            inactive-value="2"
+            active-value="0"
+            inactive-value="1"
             @change="handleStatusChange(scope.row)"
           ></el-switch>
         </template>
@@ -315,14 +315,10 @@ export default {
     },
     // 用户状态修改
     handleStatusChange(row) {
-      let text = row.status === "1" ? "启用" : "停用";
-      var that = this
-      this.$modal.confirm('确认要"' + text + '""' + row.assetName + '"').then(function() {
-         that.gwths(row);
-      }).then(() => {
+      let text = row.status === "0" ? "启用" : "停用";
+      updateAssetType(row).then(response => {
         this.$modal.msgSuccess(text + "成功");
-      }).catch(function() {
-        row.status = row.status === "1" ? "2" : "1";
+        this.getList();
       });
     },
     gwths(row){
@@ -388,12 +384,10 @@ export default {
     /** 删除按钮操作 */
     handleDelete(row) {
       const assetIds = row.assetId || this.ids;
-      this.$modal.confirm('是否确认删除资产类型编号为"' + assetIds + '"的数据项?').then(function() {
-        return delAssetType(assetIds);
-      }).then(() => {
-        this.getList();
+      delAssetType(assetIds).then(response => {
         this.$modal.msgSuccess("删除成功");
-      }).catch(() => {});
+        this.getList();
+      });
     },
     /** 导出按钮操作 */
     handleExport() {

+ 4 - 5
ruoyi-ui/src/views/wuguan/assets/index.vue

@@ -581,12 +581,11 @@ export default {
        /** 删除按钮操作 */
        handleDelete(row) {
          const assetIds = row.communityAssetId || this.ids;
-         this.$modal.confirm('是否确认删除社区资产编号为"' + assetIds + '"的数据项?').then(function() {
-           return delAssets(assetIds);
-         }).then(() => {
-           this.getList();
+         delAssets(assetIds).then(response => {
            this.$modal.msgSuccess("删除成功");
-         }).catch(() => {});
+           this.getList();
+         });
+
        },
      /** 导出按钮操作 */
         handleExport() {

+ 211 - 41
ruoyi-ui/src/views/wuguan/baoxiuguanli/index.vue

@@ -8,18 +8,6 @@
       <div style="background: #F3F3F3;padding: 20px 15px; padding-bottom: 0;margin-bottom: 20px;">
         <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="88px">
           <el-row>
-
-            <el-col :span="24">
-              <el-col :span="8">
-                <el-form-item label="报修标题" prop="repairTitle">
-                        <el-input
-                          v-model="queryParams.repairTitle"
-                          placeholder="请输入报修标题"
-                          clearable
-                          @keyup.enter.native="handleQuery"
-                        />
-                      </el-form-item>
-              </el-col>
               <el-col :span="8">
                 <el-form-item label="手机号码" prop="phoneNumber">
                         <el-input
@@ -42,8 +30,6 @@
                         </el-select>
                       </el-form-item>
               </el-col>
-            </el-col>
-            <el-col :span="24">
               <el-col :span="8">
                 <el-form-item label="报修状态" prop="repairStatus">
                         <el-select v-model="queryParams.repairStatus" placeholder="请选择报修状态" clearable>
@@ -62,7 +48,6 @@
                   <el-button size="mini"  @click="resetQuery">重置</el-button>
                 </el-form-item>
               </el-col>
-            </el-col>
           </el-row>
 
         </el-form>
@@ -120,33 +105,84 @@
                 <el-row :gutter="10" v-if="repairList.length != 0" style="width: 100%;margin-left: 0;">
                   <el-col :span="6" v-for="(item,index) in repairList" :key="index" >
                     <!-- @click="isac(item)" -->
-                    <div v-if="isshoe"  :class=" item.isnum ==true ? 'ingwe' :'' " style="position: relative; background-color: #fff;box-shadow: 0px 0px 10px 0px #CDCDCD;border-radius: 4px;margin-bottom: 10px;">
-                     <div class="carlist houselist">
-                     	<div class="ctop flexc" style="align-items: center;">
-                     		<!-- <img src="../../../assets/images/icon_fwgl_yz.png" class="imgs" /> -->
-                     		<!-- <image src="../../../assets/images/icon_fwgl_zhs.png" class="imgs" v-if="ite.type==2"></image> -->
-                     		<div class="tit">{{item.repairTitle == null?'暂无数据' : item.repairTitle }}</div>
-                     		<!-- div class="btn btnbga">预约</div>
-                     		<div class="btn btnbgb">已来访</div>
-                     		<div class="btn btnbgc">待来访</div> -->
-                     		<!-- <div class="flex1"></div> -->
-                     		<div class="txt ca" style="width: 25%; text-align: right;cursor: pointer;" @click="daifeng(item)"><dict-tag style=" text-align: right;" :options="dict.type.repair_status" :value="item.repairStatus" /></div>
-                     	<!-- 	<div class="txt cb" v-if="ite.type==2">租户</div> -->
-                     	</div>
-                     	<div class="clists">
+                    <div v-if="isshoe && isryr"  :class=" item.isnum ==true ? 'ingwe' :'' " style="position: relative; background-color: #fff;box-shadow: 0px 0px 10px 0px #CDCDCD;border-radius: 4px;margin-bottom: 10px;">
+                     <div class="carlist houselist" style="padding: 10px;margin-bottom: 0;padding-bottom: 0;">
+                      <div class="ingsek" style="border-radius: 4px;">
+                        <el-carousel :interval="4000"  arrow="hover" height="150px;width:100%;" indicator-position="none" >
+                            <el-carousel-item  v-for="(itemg,index) in item.imges" :key="index" v-if="item.imges.length !=0">
+                        										<div style="position: relative;" @click="imge(itemg)">
+                                              <!-- defaultSettings.urls+baseUrl +itemt.url -->
+                        											<img :src="defaultSettings.urls+baseUrl +itemg" alt="" style="width: 100%;height: 150px;">
+                        											<!-- <p style="position: absolute;bottom: 0;left: 0;font-weight: 500; height: 24px;background-color: rgba(0,0,0,.5);color: #fff;font-size: 14px;width: 100%;padding-left: 10px;line-height: 24px;margin: 0;">{{itemt.title}}</p> -->
+                        										</div>
+                            </el-carousel-item>
+                            <el-carousel-item   v-if="item.imges.length ==0">
+                                   <div style="position: relative;" >
+                                              <!-- defaultSettings.urls+baseUrl +itemt.url -->
+                                   <img src="../../../assets/images/zwshuj.png" alt="" style="width: 100%;height: 150px;">
+                                             <!-- <p style="position: absolute;bottom: 0;left: 0;font-weight: 500; height: 24px;background-color: rgba(0,0,0,.5);color: #fff;font-size: 14px;width: 100%;padding-left: 10px;line-height: 24px;margin: 0;">{{itemt.title}}</p> -->
+                                   </div>
+                            </el-carousel-item>
+                          </el-carousel>
+                      </div>
+                      <el-tooltip class="item" effect="dark" :content="item.repairDetails == null?'暂无数据' : item.repairDetails" placement="top-start">
+                      <div style="padding-top: 10px; " class="xiangque">
+                        {{item.repairDetails == null?'暂无数据' : item.repairDetails}}
+                      </div>
+                       </el-tooltip>
+                     	<div class="clists" style="padding: 0; padding-top: 10px;">
                      		<div class="w50 ">
-                     			<div class="clist" style="width: 100%;"><div class="tit">报修类别:</div><dict-tag :options="dict.type.baoxiutype" :value="item.maintenanceCategory"/></div>
+                     			<div class="clist" style="width: 100%;"><div class="tit" style="line-height: 28px;">报修类别:</div><dict-tag :options="dict.type.baoxiutype" :value="item.maintenanceCategory"/></div>
                      			<div class="clist" style="width: 100%;"><div class="tit">报修门户:</div>{{item.houseAddress == null?'暂无数据' : item.houseAddress}}</div>
                      		</div>
                      		<div class="w50 ">
+                          <div class="clist" style="width: 100%;"><div class="tit">联系方式:</div>{{item.phoneNumber == null?'暂无数据' : item.phoneNumber}}</div>
                      			<div class="clist" style="width: 100%;"><div class="tit">报修时间:</div>{{item.repairTime == null?'暂无数据' : item.repairTime}}</div>
-                     			<div class="clist" style="width: 100%;"><div class="tit">完成时间:</div>{{item.completionTime == null?'暂无数据' : item.completionTime}}</div>
-                     		</div>
 
+                     		</div>
                      		<!-- <div class="clist"><div class="tit">手机号码</div>13656788668</div> -->
                      	</div>
                      </div>
-                      <div class="bortt tongty" style="justify-content: space-between;">
+                     <div style="background-color: #F6F9FF;padding: 10px;" :class="item.isryr==true ?'het' :''">
+                       <div  style="font-weight: 800;font-size: 16px;color: #161616;display: flex;justify-content: space-between;"><div>流程记录</div><div style="display: flex;align-items: center;" @click="icthg(item)"> <img src="../../../assets/images/icon_htgl_sl.png" alt="" style="width: 8px;height: 8px;"> </div></div>
+                        <div v-show="item.isryr && isryr">
+                          <div class="buzhout">
+                            <p :class="item.repairStatus == 4?' acft' : 'pb'">已完成<span style="padding-left: 5px;">{{item.completionTime == null?'暂无数据' : item.completionTime}}</span></p>
+                            <div class="jisdei">
+                              <el-tooltip class="item" effect="dark" :content="item.staffName == null?'暂无数据' : item.staffName" placement="top-start">
+                              <p class="p">【{{item.staffName == null?'暂无数据' : item.staffName}} {{item.staffPhone == null?'暂无数据' : item.staffPhone}}】已完成报修业务
+                              </p>
+                               </el-tooltip>
+                              <div style="padding-left: 22px;" >
+                                <image-preview :src="item.completionPhoto" :width="50" :height="50"  style="border-radius:10px;margin-top: 10px;"/>
+                              </div>
+                            </div>
+                          </div>
+                          <div class="buzhout">
+                            <p :class="item.repairStatus == 3?' acft' : 'pb'">处理中<span style="padding-left: 5px;">{{item.visitTime == null?'暂无数据' : item.visitTime}}</span></p>
+                            <div class="jisdei">
+                              <p class="p">【{{item.staffName == null?'暂无数据' : item.staffName}} {{item.staffPhone == null?'暂无数据' : item.staffPhone}}】已上门处理中
+                              </p>
+                              <div style="padding-left: 22px;">
+                                <image-preview :src="item.visitPhoto" :width="50" :height="50"  style="border-radius:10px;margin-top: 10px;"/>
+                              </div>
+                            </div>
+                          </div>
+                          <div class="buzhout">
+                            <p :class="item.repairStatus == 2?' acft' : 'pb'">待上门<span style="padding-left: 5px;">{{item.assignTime == null?'暂无数据' : item.assignTime}}</span></p>
+                            <el-tooltip class="item" effect="dark" :content="item.staffName == null?'暂无数据' :( item.staffName  + item.staffPhone)" placement="top-start">
+                            <p class="p">报修申请已派于【{{item.staffName == null?'暂无数据' : item.staffName}} {{item.staffPhone == null?'暂无数据' : item.staffPhone}}】处理</p>
+                            </el-tooltip>
+                          </div>
+                          <div class="buzhout" style="margin-top: 10px;">
+                            <p :class="item.repairStatus == 1?' acft' : 'pb'">代指派<span style="padding-left: 5px;">{{item.repairTime == null?'暂无数据' : item.repairTime}}</span></p>
+                            <p class="ph">您的报修申请已提交,请耐心等待</p>
+                          </div>
+                        </div>
+                       <div>
+                       </div>
+                     </div>
+                      <div class="bortt tongty" style="justify-content: space-between; margin-top: 0;">
                         <p style="cursor: pointer;"><span @click="handleUpdatef(item)" >查看</span></span>  </p>
                         <!-- <span @click="handleUpdatef(item)">查看</span> -->
                         <p v-hasPermi="['wuYe:repair:assign']" style="border-left: 1px solid #DADADA;color:red;cursor: pointer;" @click="handleDelete(item)">删除  </p>
@@ -288,6 +324,7 @@ import { listRepair, getRepair, delRepair, addRepair, updateRepair,assign } from
 import { listStaffManage, listStaffManageNoPage,   getStaffManage, delStaffManage, addStaffManage, updateStaffManage } from "@/api/wuguan/staffManage";
 import { listHouseInfo,listNoPage, getHouseInfo, delHouseInfo, addHouseInfo, updateHouseInfo } from "@/api/wuguan/houseInfo";
 import 'videojs-flash'
+const defaultSettings = require("@/settings.js");
 export default {
   name: "Repair",
     dicts: ['baoxiutype', 'repair_status'],
@@ -313,10 +350,12 @@ export default {
       open: false,
       openz:false,
       houseInfoLise:[],
+      defaultSettings:defaultSettings,
+      baseUrl: process.env.VUE_APP_BASE_API,
       // 查询参数
       queryParams: {
         pageNum: 1,
-                pageSize: 10,
+                pageSize: 4,
                 portalId: null,
                 houseAddress: null,
                 repairTime: null,
@@ -375,6 +414,7 @@ export default {
        isnusle:1,
        staffManageList: [],
        tableMaxHeight:'200',
+       isryr:true
 
     };
   },
@@ -382,7 +422,7 @@ export default {
     dynamicStyle() {
       return {
         overflow:'auto',
-        height: this.tableMaxHeight+ 'px',
+        height:  this.tableMaxHeight + 'px',
         paddingTop:'10px'
       }
     }
@@ -408,6 +448,13 @@ export default {
       }
     },
   methods: {
+    icthg(row){
+      // console.log(row)
+      this.isryr = false
+     row.isryr = !row.isryr
+     this.isryr = true
+     console.log(row.isryr,this.isryr)
+    },
     getListhouvr() {
        listNoPage().then(response => {
          this.houseInfoLise  = response.rows;
@@ -420,7 +467,12 @@ export default {
       listRepair(this.queryParams).then(response => {
         this.repairList  = response.rows;
         this.repairList .filter(rou=>{
+          rou.imges = []
+          if(rou.repairImages != null && rou.repairImages != ''){
+            rou.imges = rou.repairImages.split(',')
+          }
           rou.isnum = false
+          rou.isryr = false
         })
         this.total = response.total;
         this.loading = false;
@@ -566,7 +618,7 @@ export default {
                       this.getList();
                     });
                   } else {
-                    this.form.userId = this.$store.getters.id
+                    this.form.userId = this.$store.getters.userId
                     addRepair(this.form).then(response => {
                       this.$modal.msgSuccess("新增成功");
                       this.open = false;
@@ -579,12 +631,10 @@ export default {
     /** 删除按钮操作 */
         handleDelete(row) {
           const repairIds = row.repairId || this.ids;
-          this.$modal.confirm('是否确认删除物业报修编号为"' + repairIds + '"的数据项?').then(function() {
-            return delRepair(repairIds);
-          }).then(() => {
-            this.getList();
+          delRepair(repairIds).then(response => {
             this.$modal.msgSuccess("删除成功");
-          }).catch(() => {});
+            this.getList();
+          });
         },
     /** 导出按钮操作 */
     handleExport() {
@@ -633,6 +683,14 @@ export default {
 };
 </script>
 <style  lang="scss">
+  .ingsek{
+   .el-carousel__container{
+  	 height: 150px;
+   }
+   .el-carousel--horizontal{
+     width: 100%;
+   }
+  }
   .unimg{
     .el-upload--picture-card{
       width:102px;
@@ -665,6 +723,19 @@ export default {
   .el-table{
     color:#343434;
   }
+ ::-webkit-scrollbar {
+   width: 7px; /* 滚动条宽度 */
+ }
+ ::-webkit-scrollbar-track {
+   background: #f1f1f1; /* 滚动条轨道背景色 */
+ }
+ ::-webkit-scrollbar-thumb {
+  background: #999; /* 滚动条滑块背景色 */
+   border-radius: 10px; /* 滚动条滑块圆角 */
+ }
+ ::-webkit-scrollbar-thumb:hover {
+   // background: red; /* 滚动条滑块悬停时的背景色 */
+ }
 </style>
 <style scoped lang="scss">
   .flexc{
@@ -758,6 +829,105 @@ export default {
       text-align: center;
     }
   }
+  .xiangque{
+    overflow: hidden;
+    text-overflow: ellipsis;
+    display:-webkit-box; //作为弹性伸缩盒子模型显示。
+    -webkit-box-orient:vertical; //设置伸缩盒子的子元素排列方式--从上到下垂直排列
+    -webkit-line-clamp:2; //显示的行
+    height: 46px;
+  }
+  .buzhout{
+    margin-top: 20px;
+    p{
+      margin: 0;
+      font-weight: bold;
+      font-size: 16px;
+      color: #666666;
+      span{
+        font-size: 14px;
+        font-weight: 400;
+      }
+    }
+    .p{
+      font-weight: 500;
+      font-size: 14px;
+      color: #666666;
+      margin-top: 10px;
+      padding-left: 22px;
+      overflow: hidden;
+      text-overflow: ellipsis;
+      display:-webkit-box; //作为弹性伸缩盒子模型显示。
+      -webkit-box-orient:vertical; //设置伸缩盒子的子元素排列方式--从上到下垂直排列
+      -webkit-line-clamp:1; //显示的行
+      position: relative;
+
+    }
+    .p:before{
+      position: absolute;
+      display: inline-block;
+      content: "";
+      width: 1px;
+      height: 30px;
+      background-color: #C1C1C1;
+      top:0;
+      left:6px;
+    }
+    .ph{
+      font-weight: 500;
+      font-size: 14px;
+      color: #666666;
+      margin-top: 10px;
+      padding-left: 22px;
+      overflow: hidden;
+      text-overflow: ellipsis;
+      display:-webkit-box; //作为弹性伸缩盒子模型显示。
+      -webkit-box-orient:vertical; //设置伸缩盒子的子元素排列方式--从上到下垂直排列
+      -webkit-line-clamp:1; //显示的行
+      position: relative;
+
+    }
+    .pb:before{
+      			display: inline-block;
+      			content: "";
+      			width: 12px;
+      			height: 12px;
+      			border-radius: 50%;
+            background-color: #C1C1C1;
+            margin-right: 10px;
+    }
+    .jisdei{
+      position: relative;
+    }
+    .jisdei:before{
+      position: absolute;
+      display: inline-block;
+      content: "";
+      width: 1px;
+      height: 98px;
+      background-color: #C1C1C1;
+      top:0;
+      left:6px;
+      // margin-right: 10px;
+    }
+    .acft{
+      color: #0156FE ;
+    }
+    .acft:before{
+      display: inline-block;
+        content: "";
+                  background:url("../../../assets/images/icon_htgl_lc_selected.png") no-repeat;
+                  background-size: 12px 12px;
+            			width: 12px;
+            			height: 12px;
+                  margin-right: 10px;
+    }
+
+  }
+  .het{
+    height: 450px;
+  }
+
   </style>
 
 

+ 7 - 13
ruoyi-ui/src/views/wuguan/blackManage/index.vue

@@ -326,16 +326,11 @@ export default {
     handleStatusChange(row) {
       let text = row.isDel === "Y" ? "启用" : "停用";
       console.log(7)
-      var that = this
-      this.$modal.confirm('确认要"' + text + '"吗?').then(function() {
-        console.log(5)
-         that.getti(row);
-      }).then(() => {
+      updateBlackManage(row).then(response => {
         this.$modal.msgSuccess(text + "成功");
-      }).catch(function() {
-        console.log(6)
-        row.isDel = row.isDel === "Y" ? "N" : "Y";
+        this.getList();
       });
+
     },
     getti(row){
       console.log(3)
@@ -368,12 +363,11 @@ export default {
     /** 删除按钮操作 */
     handleDelete(row) {
       const blackManageIds = row.blackManageId || this.ids;
-      this.$modal.confirm('是否确认删除黑名单管理编号为"' + blackManageIds + '"的数据项?').then(function() {
-        return delBlackManage(blackManageIds);
-      }).then(() => {
-        this.getList();
+      delBlackManage(blackManageIds).then(response => {
         this.$modal.msgSuccess("删除成功");
-      }).catch(() => {});
+        this.getList();
+      });
+
     },
     /** 导出按钮操作 */
     handleExport() {

+ 1 - 1
ruoyi-ui/src/views/wuguan/cheliangguank/index.vue

@@ -252,7 +252,7 @@ export default {
       // 查询参数
       queryParams: {
             pageNum: 1,
-                pageSize: 10,
+                pageSize: 8,
                 houseId: null,
                 detailedAddress: null,
                 userId: null,

+ 181 - 22
ruoyi-ui/src/views/wuguan/fagnwuguanli/index.vue

@@ -104,6 +104,16 @@
                     v-hasPermi="['system:post:remove']"
                   >删除</el-button>
                 </el-col> -->
+                <el-col :span="1.5">
+                            <el-button
+                              type="info"
+                              plain
+                              icon="el-icon-upload2"
+                              size="mini"
+                              @click="handleImport"
+                              v-hasPermi="['wuYe:houseInfo:importData']"
+                            >导入</el-button>
+                          </el-col>
                 <el-col :span="1.5">
                   <el-button
                     type="warning"
@@ -124,7 +134,7 @@
                      	<div class="ctop flexc" style="align-items: center;">
                      		<img src="../../../assets/images/icon_fwgl_yz.png" class="imgs" />
                      		<!-- <image src="../../../assets/images/icon_fwgl_zhs.png" class="imgs" v-if="ite.type==2"></image> -->
-                     		<div class="tit">{{item.communityName ==null?'暂无数据' : item.communityName}}{{item.detailedAddress ==null?'暂无数据' : item.detailedAddress}}</div>
+                     		<div class="tit">{{item.detailedAddress ==null?'暂无数据' : item.detailedAddress}}</div>
                      		<!-- div class="btn btnbga">预约</div>
                      		<div class="btn btnbgb">已来访</div>
                      		<div class="btn btnbgc">待来访</div> -->
@@ -182,17 +192,36 @@
                       <el-input v-model="form.location" placeholder="请输入房屋坐落位置" />
                     </el-form-item>
           </el-col>
-
           <el-col :span="6">
             <el-form-item label="小区名称" prop="communityName">
-                      <el-input v-model="form.communityName" placeholder="请输入房屋所在小区名称" />
-                    </el-form-item>
+            <el-select
+            style="width: 100%;"
+              v-model="form.communityName"
+              clearable
+              filterable
+              reserve-keyword
+              placeholder="选择小区"
+            >
+              <el-option v-for="item in tenantListtw" :key="item.tenantId" :label="item.companyName" :value="item.companyName" @click.native="dynamicTenantEventg(item)"> </el-option>
+              <template ><svg-icon icon-class="company" class="el-input__icon input-icon" /></template>
+            </el-select>
+             </el-form-item>
           </el-col>
           <el-col :span="6">
             <el-form-item label="面积(m²)" prop="area">
                 <el-input v-model="form.area" placeholder="请输入面积" />
             </el-form-item>
           </el-col>
+          <el-col :span="6">
+            <el-form-item label="楼栋(栋)" prop="loudong">
+                <el-input v-model="form.loudong" placeholder="请输入楼栋" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="单元" prop="danyuan">
+                      <el-input v-model="form.danyuan" placeholder="请输入房屋的单元号" />
+            </el-form-item>
+          </el-col>
           <el-col :span="6">
             <el-form-item label="详细门牌号" prop="detailedAddress">
                       <el-input v-model="form.detailedAddress" placeholder="请输入房屋的详细门牌号" />
@@ -293,17 +322,19 @@
                     </el-form-item>
           </el-col>
 
-
-
-
           <el-col :span="12">
             <el-form-item label="备注" prop="remark">
               <el-input v-model="form.remark"  placeholder="请输入内容" />
             </el-form-item>
           </el-col>
+          <el-col :span="6">
+            <el-form-item label="车位号" prop="parkingNumber" v-if="form.hasParkingSpace == 'Y'">
+              <el-input  v-model="form.parkingNumber"  placeholder="请输入内容" />
+            </el-form-item>
+          </el-col>
           <el-col :span="24" class="unimg">
-            <el-form-item label="上传房产证" prop="entrancePermit">
-               <image-uploadshib @uploadedSuccessfully="uploadedSuccessfully"  :typeg = "4" :limit="1" v-model="form.entrancePermit"/>
+            <el-form-item label="上传房产证" prop="houseImage">
+               <image-uploadshib @uploadedSuccessfully="uploadedSuccessfully"  :typeg = "4" :limit="1" v-model="form.houseImage"/>
               <!-- <image-upload v-model="form.entrancePermit"/> -->
             </el-form-item>
           </el-col>
@@ -317,12 +348,42 @@
         <el-button @click="cancel">取 消</el-button>
       </div>
     </el-dialog>
+    <el-dialog :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body>
+      <el-upload
+        ref="upload"
+        :limit="1"
+        accept=".xlsx, .xls"
+        :headers="upload.headers"
+        :action="upload.url + '?updateSupport=' + upload.updateSupport"
+        :disabled="upload.isUploading"
+        :on-progress="handleFileUploadProgress"
+        :on-success="handleFileSuccess"
+        :auto-upload="false"
+        drag
+      >
+        <i class="el-icon-upload"></i>
+        <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
+        <div class="el-upload__tip text-center" slot="tip">
+          <!-- <div class="el-upload__tip" slot="tip">
+            <el-checkbox v-model="upload.updateSupport" /> 是否更新已经存在的用户数据
+          </div> -->
+          <span>仅允许导入xls、xlsx格式文件。</span>
+          <el-link type="primary" :underline="false" style="font-size:12px;vertical-align: baseline;" @click="importTemplate">下载模板</el-link>
+        </div>
+      </el-upload>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitFileForm">确 定</el-button>
+        <el-button @click="upload.open = false">取 消</el-button>
+      </div>
+    </el-dialog>
   </div>
 </template>
 
 <script>
 import { listHouseInfo, getHouseInfo, delHouseInfo, addHouseInfo, updateHouseInfo } from "@/api/wuguan/houseInfo";
-import 'videojs-flash'
+import 'videojs-flash';
+import { getToken } from "@/utils/auth";
+import { getCodeImg,register,getTenantList,getInfo } from "@/api/login";
 export default {
   name: "HouseInfo",
     dicts: ['sys_notice_status', 'use_remises','types_rights','resident_type','sys_yes_no','house_status'],
@@ -349,7 +410,7 @@ export default {
       // 查询参数
       queryParams: {
         pageNum: 1,
-                pageSize: 10,
+                pageSize: 12,
                 ownerName: null,
                 location: null,
                 rightType: null,
@@ -382,6 +443,13 @@ export default {
                area: [
                  { required: true, message: "不能为空", trigger: "blur" }
                ],
+               loudong:[
+                 { required: true, message: "不能为空", trigger: "blur" },
+
+               ],
+               danyuan:[
+                 { required: true, message: "不能为空", trigger: "blur" }
+               ]
       },
       activeName:'first',
       videoState: false, // 视频播放状态
@@ -392,6 +460,25 @@ export default {
        isshoe:true,
        ishoew:false,
        tableMaxHeight:'200',
+       // 导入参数
+       upload: {
+         // 是否显示弹出层(用户导入)
+         open: false,
+         // 弹出层标题(用户导入)
+         title: "",
+         // 是否禁用上传
+         isUploading: false,
+         // 是否更新已经存在的用户数据
+         updateSupport: 0,
+         // 设置上传的请求头部
+         headers: { Authorization: "Bearer " + getToken(),
+         clientid:'e5cd7e4891bf95d1d19206ce24a7b32e'
+          },
+         // 上传的地址
+         url: process.env.VUE_APP_BASE_API + "/wuYe/houseInfo/importData"
+       },
+       usename:'',
+       tenantListtw:[]
     };
   },
   computed: {
@@ -405,6 +492,8 @@ export default {
     },
   created() {
     this.getList();
+    this.usename = this.$store.state.user.name
+    this.getnhgwon()
   window.onresize = () => {
   	      this.changeTableMaxHeight()
   	    }
@@ -422,6 +511,25 @@ export default {
       }
     },
   methods: {
+    // 查看租户
+    getnhgwon(){
+      // this.loading = true;
+      let ngse={'userName': this.usename}
+      if(this.usename == 'admin'){
+        getTenantList().then(response => {
+          // this.tenantEnabled = response.data.tenantEnabled
+          this.tenantListtw = response.data.voList;
+          // this.loading = false;
+        });
+      }else{
+        userNamet(ngse).then(response => {
+          // this.tenantEnabled = response.data.tenantEnabled
+          this.tenantListtw = response.data;
+          // this.loading = false;
+        });
+      }
+
+    },
     /** 查询岗位列表 */
     getList() {
       this.loading = true;
@@ -475,14 +583,17 @@ export default {
               registrationDate: null,
               coOwner: null,
               detailedAddress: null,
-              hasParkingSpace: null,
-              communityName: null,
-              houseStatus: null,
+              hasParkingSpace: 'N',
+              communityName: this.$store.state.user.companyname,
+              houseStatus: 1,
               createBy: null,
               createTime: null,
               updateBy: null,
               updateTime: null,
-              remark: null
+              remark: null,
+              loudong:null,
+              danyuan:null,
+              parkingNumber:null
             };
       this.resetForm("form");
     },
@@ -508,6 +619,7 @@ export default {
       this.open = true;
       this.title = "添加房屋信息(先上传房产证可识别信息,无房产证可只填标星信息.)";
       this.ishoew = true
+      console.log(this.form)
     },
     /** 修改按钮操作 */
     handleUpdate(row) {
@@ -515,9 +627,15 @@ export default {
            const houseId = row.houseId || this.ids
            getHouseInfo(houseId).then(response => {
              this.form = response.data;
+              let sef=this.form.detailedAddress.split('栋')
+              this.form.loudong = sef[0]
+              let sye=sef[1]
+              let syest=sye.split('单元')
+              this.form.danyuan = syest[0]
+              this.form.detailedAddress = syest[1]
              this.open = true;
              this.ishoew = true
-             this.title = "修改房屋信息";
+             this.title = "修改房屋信息(先上传房产证可识别信息,无房产证可只填标星信息.)";
            });
     },
     handleUpdateg(row){
@@ -531,7 +649,22 @@ export default {
     /** 提交按钮 */
     submitForm: function() {
       this.$refs["form"].validate(valid => {
+        this.form.loudong = this.form.loudong.replace(
+         /[\s|\#|\@|\!|\$|\&|\?|\%| \^|\~|`|\*|\(|\)|\-|\_|\+|\=|\||\|\[|\]|\{|\}|\;|\!|\?|\?|\!|\;|\:|\:|\“|\”|\、|\"|\'|\,|\,|\<|\.|\。|\>|\/|\?]/g,
+          ""
+        );
+        this.form.danyuan = this.form.danyuan.replace(
+         /[\s|\#|\@|\!|\$|\&|\?|\%| \^|\~|`|\*|\(|\)|\-|\_|\+|\=|\||\|\[|\]|\{|\}|\;|\!|\?|\?|\!|\;|\:|\:|\“|\”|\、|\"|\'|\,|\,|\<|\.|\。|\>|\/|\?]/g,
+          ""
+        );
+        this.form.detailedAddress = this.form.detailedAddress.replace(
+         /[\s|\#|\@|\!|\$|\&|\?|\%| \^|\~|`|\*|\(|\)|\-|\_|\+|\=|\||\|\[|\]|\{|\}|\;|\!|\?|\?|\!|\;|\:|\:|\“|\”|\、|\"|\'|\,|\,|\<|\.|\。|\>|\/|\?]/g,
+          ""
+        );
+
+        // console.log(sef)
          if (valid) {
+                 this.form.detailedAddress = this.form.loudong + '栋' + this.form.danyuan + '单元' + this.form.detailedAddress
                   if (this.form.houseId != null) {
                     updateHouseInfo(this.form).then(response => {
                       this.$modal.msgSuccess("修改成功");
@@ -539,6 +672,8 @@ export default {
                       this.getList();
                     });
                   } else {
+                    console.log(this.form.detailedAddress)
+                    // return
                     addHouseInfo(this.form).then(response => {
                       this.$modal.msgSuccess("新增成功");
                       this.open = false;
@@ -551,18 +686,16 @@ export default {
      /** 删除按钮操作 */
         handleDelete(row) {
           const houseIds = row.houseId || this.ids;
-          this.$modal.confirm('是否确认删除房屋信息编号为"' + houseIds + '"的数据项?').then(function() {
-            return delHouseInfo(houseIds);
-          }).then(() => {
-            this.getList();
+          delHouseInfo(houseIds).then(response => {
             this.$modal.msgSuccess("删除成功");
-          }).catch(() => {});
+            this.getList();
+          });
         },
     /** 导出按钮操作 */
     handleExport() {
       this.download('wuYe/houseInfo/export', {
         ...this.queryParams
-      }, `houseInfo_${new Date().getTime()}.xlsx`)
+      }, `房屋管理.xlsx`)
     },
 
       handleClick(){
@@ -584,6 +717,32 @@ export default {
              this.title = "修改房屋信息";
            });
     },
+    /** 导入按钮操作 */
+    handleImport() {
+      this.upload.title = "房屋导入";
+      this.upload.open = true;
+    },
+    /** 下载模板操作 */
+    importTemplate() {
+      this.download('system/user/importTemplate', {
+      }, `user_template_${new Date().getTime()}.xlsx`)
+    },
+    // 文件上传中处理
+    handleFileUploadProgress(event, file, fileList) {
+      this.upload.isUploading = true;
+    },
+    // 文件上传成功处理
+    handleFileSuccess(response, file, fileList) {
+      this.upload.open = false;
+      this.upload.isUploading = false;
+      this.$refs.upload.clearFiles();
+      this.$alert("<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" + response.msg + "</div>", "导入结果", { dangerouslyUseHTMLString: true });
+      this.getList();
+    },
+    // 提交上传文件
+    submitFileForm() {
+      this.$refs.upload.submit();
+    },
     // 获取屏幕高度
     showFilterForm () {
           this.filterActive = !this.filterActive

+ 4 - 5
ruoyi-ui/src/views/wuguan/houseManage/index.vue

@@ -333,12 +333,11 @@ export default {
     /** 删除按钮操作 */
     handleDelete(row) {
       const portalIds = row.portalId || this.ids;
-      this.$modal.confirm('是否确认删除房屋管理编号为"' + portalIds + '"的数据项?').then(function() {
-        return delHouseManage(portalIds);
-      }).then(() => {
-        this.getList();
+      delHouseManage(this.form).then(response => {
         this.$modal.msgSuccess("删除成功");
-      }).catch(() => {});
+        this.getList();
+      });
+
     },
     /** 导出按钮操作 */
     handleExport() {

+ 17 - 18
ruoyi-ui/src/views/wuguan/news/index.vue

@@ -139,8 +139,8 @@
         <template slot-scope="scope">
           <el-switch
             v-model="scope.row.status"
-            active-value="1"
-            inactive-value="2"
+            active-value="0"
+            inactive-value="1"
             @change="handleStatusChange(scope.row)"
           ></el-switch>
         </template>
@@ -336,7 +336,7 @@ export default {
         pageNum: 1,
         pageSize: 10,
         communityTitle: null,
-        communityType: null,
+        communityType: '3',
         communityContent: null,
         publishTime: null,
         author: null,
@@ -365,6 +365,7 @@ export default {
   created() {
     this.getList();
     this.gettenum()
+    console.log(this.gettime())
   window.onresize = () => {
   	      this.changeTableMaxHeight()
   	    }
@@ -394,7 +395,10 @@ export default {
       				    month: nowDate.getMonth() + 1,
       				    date: nowDate.getDate()
       				  }
-
+                 // console.log(parseInt(date.date),date.month,4)
+                 if (date.month < 10) {
+                    date.month = '0' + date.month
+                  }
       				   if (parseInt(date.date) < 10) {
       				      date.date = '0' + date.date
       				    }
@@ -412,9 +416,9 @@ export default {
       this.form = {
         communityId: null,
         communityTitle: null,
-        communityType: null,
+        communityType: '3',
         communityContent: null,
-        status: '1',
+        status: '0',
         publishTime: this.gettime(),
         author: null,
         source: null,
@@ -436,15 +440,12 @@ export default {
     },
     // 用户状态修改
     handleStatusChange(row) {
-      let text = row.status === "1" ? "启用" : "停用";
-      var that = this
-      this.$modal.confirm('确认要"' + text + '"吗?').then(function() {
-         that.getti(row);
-      }).then(() => {
+      let text = row.status === "0" ? "启用" : "停用";
+      updateNews(row).then(response => {
         this.$modal.msgSuccess(text + "成功");
-      }).catch(function() {
-        row.status = row.status === "1" ? "2" : "1";
+        this.getList();
       });
+
     },
     /** 重置按钮操作 */
     resetQuery() {
@@ -512,12 +513,10 @@ export default {
     /** 删除按钮操作 */
     handleDelete(row) {
       const communityIds = row.communityId || this.ids;
-      this.$modal.confirm('是否确认删除社区资讯编号为"' + communityIds + '"的数据项?').then(function() {
-        return delNews(communityIds);
-      }).then(() => {
-        this.getList();
+      delNews(communityIds).then(response => {
         this.$modal.msgSuccess("删除成功");
-      }).catch(() => {});
+        this.getList();
+      });
     },
     /** 导出按钮操作 */
     handleExport() {

+ 73 - 10
ruoyi-ui/src/views/wuguan/newxq/index.vue

@@ -37,6 +37,12 @@
                    <img src="../../../assets/images/shoucangx.png" alt="" style="width: 20px;height: 20px;" v-if="shouca">
                     <div style="margin-left: 5px;font-weight: 500;color: #666666;font-size: 16px;padding-top: 5px;">{{form.userStars == null? 0 : form.userStars }}</div>
                  </div>
+                 <div style="display: flex; align-items: center ;margin-right: 20px;" @click="shoucang">
+                   <!-- <img src="../../../assets/images/icon_dt_sc_normal.png" alt="" style="width: 20px;height: 20px;" v-if="!shouca"> -->
+                   <img src="../../../assets/images/fenxiangtwo.png" alt="" style="width: 20px;height: 20px;" >
+                    <div style="margin-left: 5px;font-weight: 500;color: #666666;font-size: 16px;padding-top: 5px;">{{form.userShare == null? 0 : form.userShare }}</div>
+                 </div>
+
                </div>
 
              </div>
@@ -156,7 +162,7 @@ import { listNews, getNews, delNews, addNews, updateNews,delNewsp,commentIndexad
 export default {
   name: "News",
   dicts: ['community_typ','sys_yes_no'],
-
+  // components: { comment },
   data() {
     return {
       // 遮罩层
@@ -214,26 +220,76 @@ export default {
     if(this.$route.query.id != undefined){
        this.handleUpdate(this.$route.query.id)
     }
-    this.userid = this.$store.getters.id
+    this.userid = this.$store.getters.userId
     this.avatar = this.$store.getters.avatar
-    this.nickName = this.$store.getters.nickname
-    console.log(this.$route.query.id)
+    this.nickName = this.$store.getters.nickName
+    console.log(this.$route.query.id, this.nickName)
+    // console.log(this.gettije())
     // this.getList();
 
   },
     watch: {
       '$route': function () {
         // this.created()
-        if(this.$route.query.id != undefined){
-           this.handleUpdate(this.$route.query.id)
-           this.userid = this.$store.getters.id
+        if(this.$route.query.userId != undefined){
+           this.handleUpdate(this.$route.query.userId)
+           this.userid = this.$store.getters.userId
            this.avatar = this.$store.getters.avatar
-           this.nickName = this.$store.getters.nickname
+           this.nickName = this.$store.getters.nickName
         }
       }
     },
 
   methods: {
+    gettije(row){
+      console.log(row)
+      // 假设这是你要比较的时间字符串
+      var timeStr = row;
+      // 将时间字符串转换为Date对象
+      var class_time = new Date(timeStr);
+      // 获取当前时间
+      var now_time = new Date();
+      // 计算两个时间的总毫秒数
+      var totalSecs = (now_time - class_time  ) / 1000;
+      // 计算天数
+      var days = Math.floor(totalSecs / 3600 / 24);
+      // 计算剩余的小时数
+      var hours = Math.floor((totalSecs - days * 24 * 3600) / 3600);
+      // 计算剩余的分钟数
+      var mins = Math.floor((totalSecs - days * 24 * 3600 - hours * 3600) / 60);
+      // 计算剩余的秒数
+      var secs = Math.floor((totalSecs - days * 24 * 3600 - hours * 3600 - mins * 60));
+      // if(month >0){
+      //   return month
+      // }
+      if(days >0){
+        return days + '天前'
+      }
+      if(hours >0){
+        return hours + '小时前'
+      }
+      if(mins >0){
+        return mins + '分钟前'
+      }
+      if(secs >0){
+        return secs + '秒前'
+      }
+      console.log("还有" + days + "天" + hours + "小时" + mins + "分钟" + secs + "秒");
+    },
+    getdang(dateStr){
+     var date1 = new Date("2017-2-18 12:12:12"); // 要对比的时间
+     var date2 = new Date(); // 获取当前时间对象
+     var num = 24 * 60 * 60 * 1000; // 一天的毫秒数
+     var cha = date2.getTime() - date1.getTime(); // 两个时间的毫秒差
+     if (cha < 0) {
+         // alert("不是今天的过去时间");
+     } else if (cha > num) {
+         return true
+     } else if (cha == 0) {
+         return false
+     }
+    },
+
     /** 查询社区资讯回复列表 */
     getList() {
       this.loading = true;
@@ -264,7 +320,6 @@ export default {
             rou.iss = false
           }
           if(rou.childrenList.length != 0){
-
             rou.childrenList.filter(rotu=>{
               if(rotu.commentUser.avatar == undefined){
                 rotu.avatar = null
@@ -285,6 +340,14 @@ export default {
           }else{
 
           }
+          console.log(this.getdang(rou.createTime))
+          if(this.getdang(rou.createTime) == true){
+              rou.createTime = this.gettije(rou.createTime)
+              console.log(rou.createTime,this.gettije(rou.createTime))
+          }else{
+            rou.createTime = rou.createTime
+          }
+
         })
         this.commentList = response.rows;
         this.total = response.total;
@@ -416,7 +479,7 @@ export default {
        }
        getParentComment(this.siegsq).then(response => {
          item.childrenListCounts = item.childrenListCount
-        item.childrenList = item.childrenList.concat(response.data)
+        item.childrenList = item.childrenList.concat(response.rows)
         item.childrenListCount = item.childrenListCount - 0-item.childrenList.length
         item.pageNum = item.pageNum+1
         console.log(item)

+ 17 - 22
ruoyi-ui/src/views/wuguan/partyNews/index.vue

@@ -131,8 +131,8 @@
         <template slot-scope="scope">
           <el-switch
             v-model="scope.row.status"
-            active-value="1"
-            inactive-value="2"
+            active-value="0"
+            inactive-value="1"
             @change="handleStatusChange(scope.row)"
           ></el-switch>
         </template>
@@ -378,7 +378,9 @@ export default {
       				    month: nowDate.getMonth() + 1,
       				    date: nowDate.getDate()
       				  }
-
+                if (date.month < 10) {
+                   date.month = '0' + date.month
+                 }
       				   if (parseInt(date.date) < 10) {
       				      date.date = '0' + date.date
       				    }
@@ -395,9 +397,9 @@ export default {
       this.form = {
               partyId: null,
               partyTitle: null,
-              partyType: null,
+              partyType: '3',
               partyContent: null,
-              status: '1',
+              status: '0',
               publishTime: this.systemTime,
               author: null,
               source: null,
@@ -419,18 +421,12 @@ export default {
     },
     // 用户状态修改
     handleStatusChange(row) {
-      let text = row.status === "1" ? "启用" : "停用";
-      console.log(7)
-      var that = this
-      this.$modal.confirm('确认要"' + text + '"吗?').then(function() {
-        console.log(5)
-         that.getti(row);
-      }).then(() => {
-        this.$modal.msgSuccess(text + "成功");
-      }).catch(function() {
-        console.log(6)
-        row.status = row.status === "1" ? "2" : "1";
+      let text = row.status === "0" ? "启用" : "停用";
+      updatePartyNews(row).then(response => {
+              this.$modal.msgSuccess(text + "成功");
+             this.getList();
       });
+
     },
     getti(row){
       console.log(3)
@@ -500,12 +496,11 @@ export default {
     /** 删除按钮操作 */
     handleDelete(row) {
           const partyIds = row.partyId || this.ids;
-          this.$modal.confirm('是否确认删除党建资讯编号为"' + partyIds + '"的数据项?').then(function() {
-            return delPartyNews(partyIds);
-          }).then(() => {
-            this.getList();
-            this.$modal.msgSuccess("删除成功");
-          }).catch(() => {});
+          delPartyNews(partyIds).then(response => {
+                         this.$modal.msgSuccess("删除成功");
+                         this.getList();
+          });
+
         },
     /** 导出按钮操作 */
     handleExport() {

+ 2 - 2
ruoyi-ui/src/views/wuguan/partyNewxq/index.vue

@@ -211,9 +211,9 @@ export default {
     if(this.$route.query.id != undefined){
        this.handleUpdate(this.$route.query.id)
     }
-    this.userid = this.$store.getters.id
+    this.userid = this.$store.getters.userId
     this.avatar = this.$store.getters.avatar
-    this.nickName = this.$store.getters.nickname
+    this.nickName = this.$store.getters.nickName
     console.log(this.$store.getters)
     // this.getList();
 

+ 4 - 6
ruoyi-ui/src/views/wuguan/pinglunshenhe/index.vue

@@ -452,12 +452,10 @@ export default {
     /** 删除按钮操作 */
     handleDelete(row) {
           const partyIds = row.partyId || this.ids;
-          this.$modal.confirm('是否确认删除党建资讯编号为"' + partyIds + '"的数据项?').then(function() {
-            return delPartyNews(partyIds);
-          }).then(() => {
-            this.getList();
-            this.$modal.msgSuccess("删除成功");
-          }).catch(() => {});
+          delPartyNews(partyIds).then(response => {
+                         this.$modal.msgSuccess("删除成功");
+                         this.getList();
+          });
         },
     /** 导出按钮操作 */
     handleExport() {

+ 174 - 26
ruoyi-ui/src/views/wuguan/renyuan/index.vue

@@ -40,7 +40,7 @@
                         <el-select v-model="queryParams.houseId" placeholder="请选择门牌号" >
                           <el-option
                            @click.native="itneg(dict)"
-                            v-for="dict in houseInfoLise"
+                            v-for="dict in houseInfoLisen"
                             :key="dict.houseId"
                             :label="dict.detailedAddress"
                             :value="dict.houseId"
@@ -75,6 +75,18 @@
                                 </el-select>
                       </el-form-item>
               </el-col>
+              <el-col :span="8">
+                              <el-form-item label="审核状态" prop="examine">
+                                      <el-select v-model="queryParams.examine" placeholder="请选择审核状态" clearable>
+                                        <el-option
+                                          v-for="dict in dict.type.renzhen_sh"
+                                          :key="dict.value"
+                                          :label="dict.label"
+                                          :value="dict.value"
+                                        />
+                                      </el-select>
+                                    </el-form-item>
+                            </el-col>
               <el-col :span="8">
                 <el-form-item class="butt bnjle">
                   <el-button type="primary" size="mini"   @click="handleQuery">搜索</el-button>
@@ -141,8 +153,8 @@
                     <!-- @click="isac(item)" -->
                     <div v-if="isshoe"  :class=" item.isnum ==true ? 'ingwe' :'' " style="position: relative; background-color: #fff;box-shadow: 0px 0px 10px 0px #CDCDCD;border-radius: 4px;margin-bottom: 10px;">
                       <div style="display: flex; align-items: center;padding: 15px 20px; position: relative;">
-                        <img src="../../../assets/images/icon_htgl_rygl_tx_nv.png" alt="" style="width: 50px;height: 50px;border-radius: 50%;" v-if="item.residentGender == 2">
-                        <img src="../../../assets/images/icon_htgl_rygl_tx_nan.png" alt="" style="width: 50px;height: 50px;border-radius: 50%;" v-if="item.residentGender == 1">
+                       <img src="../../../assets/images/icon_htgl_rygl_tx_nv.png" alt="" style="width: 50px;height: 50px;border-radius: 50%;" v-if="item.facePhoto ==  null">
+                                               <image-preview :src="item.facePhoto" :width="50" :height="50" v-if="item.facePhoto !=  null" style="border-radius: 50%;"/>
                         <span style="font-weight: bold;font-size: 16px;color: #161616;margin-left: 15px;">{{item.residentName == null?'暂无数据' : item.residentName}}</span>
                         <!-- <span style="font-weight: 500;font-size: 14px;color: #666666;margin: 0 7px 0 15px;">{{item.yearsOld == null?'暂无数据' : item.yearsOld}}岁</span> -->
                         <span style="font-weight: 500;font-size: 14px;color: #666666;margin: 0 7px 0 15px;">{{item.residentGender == 1?'男' : item.residentGender == 2?'女' : '暂无数据'}}</span>
@@ -161,12 +173,31 @@
                           与户主关系: <dict-tag :options="dict.type.relationship_householder" :value="item.residentRelationship"/>
                         </div>
                       </div>
+                      <div style="height: 150px;padding: 0 10px;margin-top: 10px;" class="ingsek">
+                                              <el-carousel :interval="4000"  arrow="hover" height="150px;width:100%;" indicator-position="none" >
+                                                  <el-carousel-item  v-for="(itemg,index) in item.imges" :key="index" v-if="item.imges.length !=0">
+                                              										<div style="position: relative;" @click="imge(itemg)">
+                                                                    <!-- defaultSettings.urls+baseUrl +itemt.url -->
+                                                                    <!-- +baseUrl -->
+                                              											<img :src="defaultSettings.urls +itemg" alt="" style="width: 100%;height: 150px;">
+                                              											<!-- <p style="position: absolute;bottom: 0;left: 0;font-weight: 500; height: 24px;background-color: rgba(0,0,0,.5);color: #fff;font-size: 14px;width: 100%;padding-left: 10px;line-height: 24px;margin: 0;">{{itemt.title}}</p> -->
+                                              										</div>
+                                                  </el-carousel-item>
+                                                  <el-carousel-item   v-if="item.imges.length ==0">
+                                                         <div style="position: relative;" >
+                                                                    <!-- defaultSettings.urls+baseUrl +itemt.url -->
+                                                         <img src="../../../assets/images/zwshuj.png" alt="" style="width: 100%;height: 150px;">
+                                                                   <!-- <p style="position: absolute;bottom: 0;left: 0;font-weight: 500; height: 24px;background-color: rgba(0,0,0,.5);color: #fff;font-size: 14px;width: 100%;padding-left: 10px;line-height: 24px;margin: 0;">{{itemt.title}}</p> -->
+                                                         </div>
+                                                  </el-carousel-item>
+                                                </el-carousel>
+                                            </div>
                       <div class="bortt tongty" style="justify-content: space-between;">
-                        <p style="cursor: pointer;"><span  v-hasPermi="['wuYe:residentInfo:edit']" @click="handleUpdate(item)">修改</span>  </p>
+                        <p style="cursor: pointer;color: #28C529;"><span  v-hasPermi="['wuYe:residentInfo:edit']" @click="handleUpdate(item)">修改</span>  </p>
                         <!-- <span @click="handleUpdatef(item)">查看</span> -->
-
                         <p v-hasPermi="['wuYe:residentInfo:remove']" style="border-left: 1px solid #DADADA;color:red;cursor: pointer;" @click="handleDelete(item)">删除</p>
                       </div>
+
                       <img v-if="item.isnum == true" src="../../../assets/images/icon_htgl_kp_gx.png" alt="" style="width: 35px;height: 35px;position: absolute;bottom: 0;right: 0;">
                     </div>
                   </el-col>
@@ -192,9 +223,40 @@
     <el-dialog :title="title" :visible.sync="open" width="1000px" append-to-body>
           <el-form ref="form" :model="form" :rules="rules" label-width="120px">
             <el-row>
+              <el-col :span="24">
+                <el-col :span="8">
+                  <el-form-item label="人员类型" prop="residentType">
+                                    <el-select style="width: 100%;" v-model="form.residentType" placeholder="请选择人员类型" clearable>
+                                              <el-option
+                                                v-for="dict in dict.type.zhuhu_type"
+                                                :key="dict.value"
+                                                :label="dict.label"
+                                                :value="dict.value"
+                                              />
+                                    </el-select>
+                  </el-form-item>
+                </el-col>
+                <el-col :span="16">
+                  <el-form-item label="小区名称" prop="tenantId">
+                  <el-select
+                  disabled
+                  style="width: 100%;"
+                    v-model="form.tenantId"
+                    clearable
+                    filterable
+                    reserve-keyword
+                    placeholder="选择小区"
+                  >
+                    <el-option v-for="item in tenantListtw" :key="item.tenantId" :label="item.companyName" :value="item.tenantId" @click.native="dynamicTenantEventg(item)"> </el-option>
+                    <template ><svg-icon icon-class="company" class="el-input__icon input-icon" /></template>
+                  </el-select>
+                   </el-form-item>
+                </el-col>
+              </el-col>
+
               <el-col :span="8">
                 <el-form-item label="门牌号" prop="houseId">
-                   <el-select style="width: 100%;" v-model="form.houseId" placeholder="请选择门牌号" clearable>
+                   <el-select disabled style="width: 100%;" v-model="form.houseId" placeholder="请选择门牌号" clearable>
                      <el-option
                      style="width:100%"
                       @click.native="itnegadd(dict)"
@@ -276,7 +338,7 @@
                 </el-form-item>
               </el-col>
               <el-col :span="8">
-                <el-form-item label="与户主的关系" prop="residentRelationship">
+                <el-form-item label="与户主的关系" prop="residentRelationship" v-if="form.isHouseholder == 'Y'">
                           <el-select style="width: 100%;" v-model="form.residentRelationship" placeholder="请选择居住人员与户主的关系">
                             <el-option
                               v-for="dict in dict.type.relationship_householder"
@@ -287,7 +349,7 @@
                           </el-select>
                         </el-form-item>
               </el-col>
-              <el-col :span="16">
+              <el-col :span="form.isHouseholder == 'Y'?16 : 24">
                 <el-form-item label="工作单位" prop="residentEmployer">
                           <el-input v-model="form.residentEmployer" placeholder="请输入居住人员工作单位" />
                         </el-form-item>
@@ -322,11 +384,14 @@
 <script>
 import { listPost, getPost, delPost, addPost, updatePost } from "@/api/system/post";
 import { listResidentInfo, getResidentInfo, delResidentInfo, addResidentInfo, updateResidentInfo } from "@/api/wuguan/landlord";
-import { listHouseInfo,listNoPage, getHouseInfo, delHouseInfo, addHouseInfo, updateHouseInfo } from "@/api/wuguan/houseInfo";
+import { listHouseInfo,listNoPage, getHouseInfo, delHouseInfo, addHouseInfo, updateHouseInfo,listNoPageTenant } from "@/api/wuguan/houseInfo";
+import {userNamet} from "@/api/zhihuixy/tenant";
+import { getCodeImg,register,getTenantList,getInfo } from "@/api/login";
+const defaultSettings = require("@/settings.js");
 import 'videojs-flash'
 export default {
    name: "ResidentInfo",
-    dicts: ['affiliation_personnel', 'sys_yes_no', 'gender', 'relationship_householder'],
+    dicts: ['affiliation_personnel', 'sys_yes_no', 'gender','zhuhu_type', 'relationship_householder','renzhen_sh'],
   data() {
     return {
      // 遮罩层
@@ -344,6 +409,8 @@ export default {
            // 业主管理表格数据
            residentInfoList: [],
            houseInfoLise:[],
+           baseUrl: process.env.VUE_APP_BASE_API,
+           defaultSettings:defaultSettings,
            // 弹出层标题
            title: "",
            // 是否显示弹出层
@@ -351,7 +418,7 @@ export default {
            // 查询参数
            queryParams: {
              pageNum: 1,
-                    pageSize: 10,
+                    pageSize: 8,
                     houseId: null,
                     userId: null,
                     detailedAddress: null,
@@ -364,14 +431,21 @@ export default {
                     isHouseholder: null,
                     residentEmployer: null,
                     residentAppearance: null,
+                    examine:'2',
            },
       // 表单参数
       form: {},
       // 表单校验
       // 表单校验
             rules: {
+              residentType: [
+                        { required: true, message: "不能为空", trigger: "blur" }
+                      ],
+              tenantId: [
+                        { required: true, message: "不能为空", trigger: "blur" }
+                      ],
              houseId: [
-                       { required: true, message: "关联房屋信息不能为空", trigger: "blur" }
+                       { required: true, message: "不能为空", trigger: "blur" }
                      ],
             residentName: [
                       { required: true, message: "不能为空", trigger: "blur" }
@@ -398,6 +472,8 @@ export default {
        player: null,
        isshoe:true,
        tableMaxHeight:'200',
+       tenantListtw:[],
+       houseInfoLisen:[]
     };
   },
   computed: {
@@ -412,9 +488,12 @@ export default {
   created() {
     if(this.$route.query.id != undefined){
        this.queryParams.houseId = this.$route.query.id  - 0
-    }
+    }
+    this.usename = this.$store.state.user.name
     this.getList();
-    this.getListhouvr()
+    this.getnhgwon()
+    this.getListhouvr(this.$store.getters.tenantId)
+    this.getListhouvrna()
  window.onresize = () => {
  	      this.changeTableMaxHeight()
  	    }
@@ -432,21 +511,73 @@ export default {
       }
     },
   methods: {
+    getnhgwon(){
+      // this.loading = true;
+      let ngse={'userName': this.usename}
+      if(this.usename == 'admin'){
+        getTenantList().then(response => {
+          // this.tenantEnabled = response.data.tenantEnabled
+          this.tenantListtw = response.data.voList;
+          // this.loading = false;
+        });
+      }else{
+        userNamet(ngse).then(response => {
+          // this.tenantEnabled = response.data.tenantEnabled
+          this.tenantListtw = response.data;
+          // this.loading = false;
+        });
+      }
+
+    },
+    dynamicTenantEventg(row){
+    	// if (this.companyName != null && this.companyName !== '') {
+        // let ngpw={'tenantId':this.companyName,'clientId':'e5cd7e4891bf95d1d19206ce24a7b32e','grantType':'password'}
+    	  // dynamicTenantgw ngpw
+        console.log(3)
+        this.getListhouvr(row.tenantId)
+    	// }
+    },
     /** 查询岗位列表 */
     getList() {
    this.loading = true;
       listResidentInfo(this.queryParams).then(response => {
         this.residentInfoList  = response.rows;
         this.residentInfoList .filter(rou=>{
+          rou.imges = []
+          if(rou.idCardFront != null && rou.idCardFront != ''){
+            rou.imges.push(rou.idCardFront)
+          }
+          if(rou.idCardBack != null && rou.idCardBack != ''){
+            rou.imges.push(rou.idCardBack)
+          }
           rou.isnum = false
         })
         this.total = response.total;
         this.loading = false;
       });
     },
-    getListhouvr() {
+    // 带租户id查询房屋 新增使用
+    getListhouvr(row) {
+      let ne={'tenantId':row}
+      // listNoPage  listNoPageTenant
+       listNoPageTenant(ne).then(response => {
+         this.houseInfoLise  = response.data;
+         if(this.$route.query.id != undefined){
+            this.form.houseId = this.$route.query.id  - 0
+         }else{
+           if(this.houseInfoLise.length !=0){
+             this.form.houseId = this.houseInfoLise[0].houseId
+             this.form.detailedAddress = this.houseInfoLise[0].detailedAddress
+           }
+         }
+
+
+       });
+     },
+     // 不带租户id查询房屋  搜索使用
+     getListhouvrna(){
        listNoPage().then(response => {
-         this.houseInfoLise  = response.rows;
+         this.houseInfoLisen  = response.data;
        });
      },
      shiegw(val){
@@ -535,7 +666,7 @@ export default {
    this.form = {
            residentId: null,
            houseId: null,
-           userId: null,
+           userId: undefined,
            detailedAddress: null,
            residentName: null,
            residentIdCard: null,
@@ -543,14 +674,17 @@ export default {
            residentPhone: null,
            residentGender: null,
            residentRelationship: null,
-           isHouseholder: 'Y',
+           isHouseholder: 'N',
            residentEmployer: null,
-           residentAppearance: null,
+           residentAppearance: '5',
            createBy: null,
            createTime: null,
            updateBy: null,
            updateTime: null,
-           remark: null
+           remark: null,
+           userType:'pc_user',
+           tenantId:this.$store.getters.tenantId,
+           residentType:'1'
          };
       this.resetForm("form");
     },
@@ -579,7 +713,8 @@ export default {
       this.reset();
       if(this.$route.query.id != undefined){
          this.form.houseId = this.$route.query.id  - 0
-      }
+      }
+      this.getListhouvr(this.$store.getters.tenantId)
       this.open = true;
        this.title = "添加居住人员";
     },
@@ -589,6 +724,12 @@ export default {
              const residentId = row.residentId || this.ids
              getResidentInfo(residentId).then(response => {
                this.form = response.data;
+               let ne={'tenantId':this.form.tenantId}
+               // listNoPage  listNoPageTenant
+                listNoPage(ne).then(response => {
+                  this.houseInfoLise  = response.data;
+                });
+                this.form.isFilter = false
                this.title = "修改居住人员";
                this.form.residentGender  = this.form.residentGender + ''
                this.open = true;
@@ -618,12 +759,11 @@ export default {
     /** 删除按钮操作 */
         handleDelete(row) {
           const residentIds = row.residentId || this.ids;
-          this.$modal.confirm('是否确认删除居住人员信息的数据项?').then(function() {
-            return delResidentInfo(residentIds);
-          }).then(() => {
-            this.getList();
+          let sgwe={'residentId':row.residentId,'userId':row.userId,'tenantId':row.tenantId}
+          delResidentInfo(row).then(response => {
             this.$modal.msgSuccess("删除成功");
-          }).catch(() => {});
+            this.getList();
+          });
         },
     /** 导出按钮操作 */
     handleExport() {
@@ -669,6 +809,14 @@ export default {
 };
 </script>
 <style  lang="scss">
+  .ingsek{
+   .el-carousel__container{
+  	 height: 150px;
+   }
+   .el-carousel--horizontal{
+     width: 100%;
+   }
+  }
   .shefnze{
     .el-upload--picture-card{
       width: 80px;

+ 986 - 0
ruoyi-ui/src/views/wuguan/renyuansh/index.vue

@@ -0,0 +1,986 @@
+<template>
+  <div class="app-container">
+    <div style="background-color: #fff;padding: 20px;border-radius: 10px;">
+      <p style="margin: 0; font-weight: 800;font-size: 16px;color: #343434;display: flex;align-items: center;margin-bottom: 20px;">
+        <img src="../../../assets/images/icon_htgl_btzs.png" alt="" style="width: 16px;height: 20px;">
+       <span style="margin-left: 10px;">人员管理</span>
+      </p>
+      <div style="background: #F3F3F3;padding: 20px 15px; padding-bottom: 0;margin-bottom: 20px;">
+        <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="88px">
+          <el-row>
+            <!-- <el-col :span="24">
+              <el-form-item label="创建时间:" prop="postCode">
+               <el-date-picker
+                     v-model="queryParams.value1"
+                     type="date"
+                     placeholder="选择日期">
+              </el-date-picker>
+              <span style="margin: 0  10px;">至</span>
+              <el-date-picker
+                     v-model="queryParams.value1"
+                     type="date"
+                     placeholder="选择日期">
+              </el-date-picker>
+              </el-form-item>
+            </el-col> -->
+            <el-col :span="24">
+              <el-col :span="8">
+                <el-form-item label="姓名" prop="residentName">
+                        <el-input
+                          v-model="queryParams.residentName"
+                          placeholder="请输入姓名"
+                          clearable
+                          @keyup.enter.native="handleQuery"
+                        />
+                </el-form-item>
+                  </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="门牌号" prop="houseId">
+                        <el-select v-model="queryParams.houseId" placeholder="请选择门牌号" >
+                          <el-option
+                           @click.native="itneg(dict)"
+                            v-for="dict in houseInfoLise"
+                            :key="dict.houseId"
+                            :label="dict.detailedAddress"
+                            :value="dict.houseId"
+                          />
+                        </el-select>
+                      </el-form-item>
+              </el-col>
+
+              <el-col :span="8">
+                <el-form-item label="与户主关系" prop="residentRelationship">
+                        <el-select v-model="queryParams.residentRelationship" placeholder="请选择居住人员与户主" clearable>
+                          <el-option
+                            v-for="dict in dict.type.relationship_householder"
+                            :key="dict.value"
+                            :label="dict.label"
+                            :value="dict.value"
+                          />
+                        </el-select>
+                      </el-form-item>
+              </el-col>
+            </el-col>
+            <el-col :span="24">
+              <el-col :span="8">
+                <el-form-item label="性别" prop="residentGender">
+                        <el-select v-model="queryParams.residentGender" placeholder="请选择性别" clearable>
+                                  <el-option
+                                    v-for="dict in dict.type.gender"
+                                    :key="dict.value"
+                                    :label="dict.label"
+                                    :value="dict.value"
+                                  />
+                                </el-select>
+                      </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                              <el-form-item label="审核状态" prop="examine">
+                                      <el-select v-model="queryParams.examine" placeholder="请选择审核状态" clearable>
+                                        <el-option
+                                          v-for="dict in dict.type.renzhen_sh"
+                                          :key="dict.value"
+                                          :label="dict.label"
+                                          :value="dict.value"
+                                        />
+                                      </el-select>
+                                    </el-form-item>
+                            </el-col>
+              <el-col :span="8">
+                <el-form-item class="butt bnjle">
+                  <el-button type="primary" size="mini"   @click="handleQuery">搜索</el-button>
+                  <el-button  size="mini"  @click="resetQuery">重置</el-button>
+                </el-form-item>
+              </el-col>
+            </el-col>
+          </el-row>
+
+        </el-form>
+      </div>
+
+
+      <div class="casr"  >
+              <el-row :gutter="10" class="mb8">
+                <!-- <el-col :span="1.5">
+                  <div style="font-weight: bold;font-size: 14px;color: #343434; display: flex;align-items: center;">
+                    当夜全选
+                  </div>
+                </el-col> -->
+                <el-col :span="1.5">
+                  <el-button
+                    type="primary"
+                    plain
+                    size="mini"
+                    @click="handleAdd"
+                    v-hasPermi="['wuYe:residentInfo:add']"
+                  >添加</el-button>
+                </el-col>
+                <!-- <el-col :span="1.5">
+                  <el-button
+                    type="success"
+                    plain
+                    size="mini"
+                    :disabled="single"
+                    @click="handleUpdate"
+                    v-hasPermi="['system:post:edit']"
+                  >修改</el-button>
+                </el-col>
+                <el-col :span="1.5">
+                  <el-button
+                    type="danger"
+                    plain
+                    size="mini"
+                    :disabled="multiple"
+                    @click="handleDelete"
+                    v-hasPermi="['system:post:remove']"
+                  >删除</el-button>
+                </el-col> -->
+                <el-col :span="1.5">
+                  <el-button
+                    type="warning"
+                    plain
+                    size="mini"
+                    @click="handleExport"
+                    v-hasPermi="['wuYe:residentInfo:export']"
+                  >导出</el-button>
+                </el-col>
+                <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+              </el-row>
+              <div class=" infinite-list" :style="dynamicStyle">
+                <el-row :gutter="10" v-if="residentInfoList.length !=0" style="width:100%;margin-left: 0;">
+                  <el-col :span="6" v-for="(item,index) in residentInfoList" :key="index"  >
+                    <!-- @click="isac(item)" -->
+                    <div v-if="isshoe"  :class=" item.isnum ==true ? 'ingwe' :'' " style="position: relative; background-color: #fff;box-shadow: 0px 0px 10px 0px #CDCDCD;border-radius: 4px;margin-bottom: 10px;">
+                      <div style="display: flex; align-items: center;padding: 15px 20px; position: relative;">
+                       <img src="../../../assets/images/touxiang.png" alt="" style="width: 50px;height: 50px;border-radius: 50%;" v-if="item.facePhoto ==  null">
+                        <image-preview :src="item.facePhoto" :width="50" :height="50" v-if="item.facePhoto !=  null" style="border-radius: 50%;"/>
+                        <span style="font-weight: bold;font-size: 16px;color: #161616;margin-left: 15px;">{{item.residentName == null?'暂无数据' : item.residentName}}</span>
+                        <!-- <span style="font-weight: 500;font-size: 14px;color: #666666;margin: 0 7px 0 15px;">{{item.yearsOld == null?'暂无数据' : item.yearsOld}}岁</span> -->
+                        <!-- <span style="font-weight: 500;font-size: 14px;color: #666666;margin: 0 7px 0 15px;">{{item.residentGender == 1?'男' : item.residentGender == 2?'女' : '暂无数据'}}</span> -->
+                        <img src="../../../assets/images/pic_htgl_rygl_yhlx_yzs.png" alt="" style="position: absolute;top:5px;right: 0;" v-if="item.isHouseholder == 'Y'">
+                        <!-- <img src="../../../assets/images/pic_htgl_rygl_yhlx_zh.png" alt="" style="position: absolute;top:5px;right: 0;"> -->
+                      </div>
+                      <div class="goe renyuangs" style="padding: 0 20px;">
+                        <p>{{"房\u2002屋\u2002号:"}}{{item.detailedAddress == null?'暂无数据' : item.detailedAddress}}</p>
+                        <p>
+                          联系方式:{{item.residentPhone == null?'暂无数据' : item.residentPhone}}
+                        </p>
+                        <p>
+                          身份证号:{{item.residentIdCard == null?'暂无数据' : item.residentIdCard}}
+                        </p>
+                        <div style="margin-top: 10px;">
+                          与户主关系: <dict-tag :options="dict.type.relationship_householder" :value="item.residentRelationship"/>
+                        </div>
+                      </div>
+                      <div style="height: 150px;padding: 0 10px; margin-top: 10px;" class="ingsek">
+                                              <el-carousel :interval="4000"  arrow="hover" height="150px;width:100%;" indicator-position="none" >
+                                                  <el-carousel-item  v-for="(itemg,index) in item.imges" :key="index" v-if="item.imges.length !=0">
+                                              										<div style="position: relative;" @click="imge(itemg)">
+                                                                    <!-- defaultSettings.urls+baseUrl +itemt.url -->
+                                                                    <!-- +baseUrl -->
+
+                                              											<img :src="defaultSettings.urls +itemg" alt="" style="width: 100%;height: 150px;">
+                                              											<!-- <p style="position: absolute;bottom: 0;left: 0;font-weight: 500; height: 24px;background-color: rgba(0,0,0,.5);color: #fff;font-size: 14px;width: 100%;padding-left: 10px;line-height: 24px;margin: 0;">{{itemt.title}}</p> -->
+                                              										</div>
+                                                  </el-carousel-item>
+                                                  <el-carousel-item   v-if="item.imges.length ==0">
+                                                         <div style="position: relative;" >
+                                                                    <!-- defaultSettings.urls+baseUrl +itemt.url -->
+                                                         <img src="../../../assets/images/zwshuj.png" alt="" style="width: 100%;height: 150px;">
+                                                                   <!-- <p style="position: absolute;bottom: 0;left: 0;font-weight: 500; height: 24px;background-color: rgba(0,0,0,.5);color: #fff;font-size: 14px;width: 100%;padding-left: 10px;line-height: 24px;margin: 0;">{{itemt.title}}</p> -->
+                                                         </div>
+                                                  </el-carousel-item>
+                                                </el-carousel>
+                                            </div>
+                      <div class="bortt tongty" style="justify-content: space-between;">
+                       <p  v-hasPermi="['wuYe:residentInfo:examineStaff']" v-if="item.examine==1"><span style="color: #28C529;cursor: pointer;"   @click="handleUpdatef(item)">通过</span>  </p>
+                       <p  v-hasPermi="['wuYe:residentInfo:examineStaff']" v-if="item.examine==1" style="color:#E6A23C;cursor: pointer;" @click="handleUpdateb(item)">驳回</p>
+                       <!-- <span @click="handleUpdatef(item)">查看</span> -->
+                       <p  style="border-left: 1px solid #DADADAd;border-right: 1px solid #DADADAd ;cursor: pointer;" @click="handleUpdate(item)">查看</p>
+                       <p v-hasPermi="['wuYe:staffManage:remove']"   style="color:red;cursor: pointer;" @click="handleDelete(item)">删除</p>
+
+                      </div>
+                      <img v-if="item.isnum == true" src="../../../assets/images/icon_htgl_kp_gx.png" alt="" style="width: 35px;height: 35px;position: absolute;bottom: 0;right: 0;">
+                    </div>
+                  </el-col>
+                </el-row>
+                <div style="margin-top: 20px;display: flex;justify-content: center;align-items: center;" v-if="residentInfoList.length ==0">
+                   <img   src="../../../assets/images/zwshjbig.png" alt="" style="">
+                </div>
+              </div>
+      </div>
+
+
+
+      <pagination
+        v-show="total>0"
+        :total="total"
+        :page.sync="queryParams.pageNum"
+        :limit.sync="queryParams.pageSize"
+        @pagination="getList"
+      />
+    </div>
+
+    <!-- 添加或修改岗位对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="1000px" append-to-body>
+          <el-form ref="form" :model="form" :rules="rules" label-width="120px">
+
+            <el-row>
+              <el-col :span="24">
+                <el-form-item label="小区名称" prop="tenantId">
+                <el-select
+                style="width: 100%;"
+                  v-model="form.tenantId"
+                  clearable
+                  filterable
+                  reserve-keyword
+                  disabled
+                  placeholder="选择小区"
+                  @change="dynamicTenantEventg"
+                >
+                  <el-option v-for="item in tenantListtw" :key="item.tenantId" :label="item.companyName" :value="item.tenantId"> </el-option>
+                  <template ><svg-icon icon-class="company" class="el-input__icon input-icon" /></template>
+                </el-select>
+                 </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="门牌号" prop="houseId">
+                   <el-select disabled style="width: 100%;" v-model="form.houseId" placeholder="请选择门牌号" clearable>
+                     <el-option
+                     style="width:100%"
+                      @click.native="itnegadd(dict)"
+                       v-for="dict in houseInfoLise"
+                       :key="dict.houseId"
+                       :label="dict.detailedAddress"
+                       :value="dict.houseId"
+                     />
+                   </el-select>
+                </el-form-item>
+              </el-col>
+              <el-col :span="16" class="ngeshimg"  v-if="form.isHouseholder == 'Y'">
+                <el-form-item label="身份证号" prop="residentIdCard" style="position: relative;">
+                  <el-input @blur="shiegw" v-model="form.residentIdCard" placeholder="请输入身份证号码" />
+                   <template style="">
+                     <image-uploadshib @uploadedSuccessfully="uploadedSuccessfully" :typeg = "1" :limit="1" v-model="form.idCardBack"/>
+                   </template>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="姓名" prop="residentName">
+                  <el-input v-model="form.residentName" placeholder="请输入姓名" />
+                </el-form-item>
+              </el-col>
+
+              <el-col :span="8" v-if="form.isHouseholder == 'Y'">
+                <el-form-item label="性别" prop="residentGender">
+                  <el-select style="width: 100%;" v-model="form.residentGender" placeholder="请选择性别" clearable>
+                            <el-option
+                              v-for="dict in dict.type.gender"
+                              :key="dict.value"
+                              :label="dict.label"
+                              :value="dict.value"
+                            />
+                  </el-select>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="是否户主" prop="isHouseholder">
+                 <el-select style="width: 100%;" v-model="form.isHouseholder" placeholder="请选择是否户主" clearable>
+                           <el-option
+                             v-for="dict in dict.type.sys_yes_no"
+                             :key="dict.value"
+                             :label="dict.label"
+                             :value="dict.value"
+                           />
+                 </el-select>
+                </el-form-item>
+              </el-col>
+
+              <el-col :span="8">
+                <el-form-item label="手机号码" prop="residentPhone">
+                  <el-input v-model="form.residentPhone" placeholder="请输入手机号码" />
+                </el-form-item>
+              </el-col>
+
+              <el-col :span="8" v-if="form.isHouseholder == 'Y'">
+                <el-form-item label="出生日期" prop="birthday">
+                  <el-date-picker clearable
+                  style="width:100%"
+                              v-model="form.residentBirthday"
+                              type="date"
+                              value-format="yyyy-MM-dd"
+                              placeholder="请选择居住人员出生日期">
+                            </el-date-picker>
+                </el-form-item>
+              </el-col>
+
+              <!-- <el-col :span="8">
+                <el-form-item label="人员面貌" prop="residentAppearance">
+                          <el-select style="width: 100%;" v-model="form.residentAppearance" placeholder="请选择居住人员面貌">
+                            <el-option
+                              v-for="dict in dict.type.affiliation_personnel"
+                              :key="dict.value"
+                              :label="dict.label"
+                              :value="dict.value"
+                            ></el-option>
+                          </el-select>
+                </el-form-item>
+              </el-col> -->
+              <!-- <el-col :span="8" v-if="form.isHouseholder == 'N'">
+                <el-form-item label="与户主的关系" prop="residentRelationship">
+                          <el-select style="width: 100%;" v-model="form.residentRelationship" placeholder="请选择居住人员与户主的关系">
+                            <el-option
+                              v-for="dict in dict.type.relationship_householder"
+                              :key="dict.value"
+                              :label="dict.label"
+                              :value="dict.value"
+                            ></el-option>
+                          </el-select>
+                        </el-form-item>
+              </el-col> -->
+              <el-col :span="8">
+                <el-form-item label="人员类型" prop="residentType">
+                          <el-select style="width: 100%;" v-model="form.residentType" placeholder="请选择居住人员与户主的关系">
+                            <el-option
+                              v-for="dict in dict.type.zhuhu_type"
+                              :key="dict.value"
+                              :label="dict.label"
+                              :value="dict.value"
+                            ></el-option>
+                          </el-select>
+                        </el-form-item>
+              </el-col>
+              <!-- <el-col :span="16">
+                <el-form-item label="工作单位" prop="residentEmployer">
+                          <el-input v-model="form.residentEmployer" placeholder="请输入居住人员工作单位" />
+                        </el-form-item>
+              </el-col> -->
+              <!-- <el-col :span="8" class="shefnze">
+                <el-form-item label="身份证国徽面" prop="idCardFront">
+                  <image-upload v-model="form.idCardFront"/>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8" class="shefnze">
+                <el-form-item label="头像" prop="facePhoto">
+                  <image-upload v-model="form.facePhoto" :limit="1"/>
+                </el-form-item>
+              </el-col> -->
+            </el-row>
+            <el-row>
+              <el-col>
+                <div style="font-size: 16px;color: #333;margin-bottom: 10px;font-weight: 700;">
+                  房屋信息
+                </div>
+              </el-col>
+              <el-col :span="24">
+                <el-table max-height="200" v-loading="loading" :data="form.houseInfoRedidentList" >
+                  <!-- <el-table-column type="selection" width="55" align="center" /> -->
+                  <el-table-column label="坐落位置" align="center" prop="location"  show-overflow-tooltip />
+                  <el-table-column label="小区名称" align="center" prop="communityName"  show-overflow-tooltip />
+                   <el-table-column label="门牌号" align="center" prop="detailedAddress"  show-overflow-tooltip />
+                    <el-table-column label="面积/m²" align="center" prop="area"  show-overflow-tooltip />
+                  <el-table-column label="不动产单元号" align="center" prop="propertyUnitNumber"  show-overflow-tooltip />
+                  <el-table-column label="车位" align="center" prop="hasParkingSpace" >
+                    <template slot-scope="scope">
+                      <dict-tag :options="dict.type.sys_yes_no" :value="scope.row.hasParkingSpace"/>
+                    </template>
+                  </el-table-column>
+                  <el-table-column label="房屋状态" align="center" prop="houseStatus" >
+                    <template slot-scope="scope">
+                      <dict-tag :options="dict.type.house_status" :value="scope.row.houseStatus"/>
+                    </template>
+                  </el-table-column>
+
+                  <!-- <el-table-column label="作者" align="center" prop="author" />
+                  <el-table-column label="来源" align="center" prop="source" width="100" show-overflow-tooltip/> -->
+                  <el-table-column label="房本照片" align="center" prop="houseImage" width="100">
+                    <template slot-scope="scope">
+                      <image-preview :src="scope.row.houseImage" :width="40" :height="40"/>
+                    </template>
+                  </el-table-column>
+
+                </el-table>
+              </el-col>
+            </el-row>
+
+          </el-form>
+          <div slot="footer" class="dialog-footer">
+            <!-- <el-button type="primary" @click="submitForm">确 定</el-button> -->
+            <el-button  v-hasPermi="['wuYe:residentInfo:examineStaff']" v-if=" form.examine==1" type="success" @click="handleUpdatef(form)">通 过</el-button>
+            <el-button  v-hasPermi="['wuYe:residentInfo:examineStaff']" v-if=" form.examine==1" type="warning" @click="handleUpdateb(form)">驳 回</el-button>
+            <el-button @click="cancel">取 消</el-button>
+          </div>
+        </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listPost, getPost, delPost, addPost, updatePost } from "@/api/system/post";
+import { listResidentInfo, getResidentInfo, delResidentInfo, addResidentInfo, updateResidentInfo,examineResident } from "@/api/wuguan/landlord";
+import { listHouseInfo,listNoPage, getHouseInfo, delHouseInfo, addHouseInfo, updateHouseInfo,listNoPageTenant } from "@/api/wuguan/houseInfo";
+import {userNamet} from "@/api/zhihuixy/tenant";
+import { getCodeImg,register,getTenantList,getInfo,} from "@/api/login";
+const defaultSettings = require("@/settings.js");
+import 'videojs-flash'
+export default {
+   name: "ResidentInfo",
+    dicts: ['affiliation_personnel', 'sys_yes_no', 'gender', 'relationship_householder','zhuhu_type', 'renzhen_sh','house_status'],
+  data() {
+    return {
+     // 遮罩层
+           loading: true,
+           // 选中数组
+           ids: [],
+           // 非单个禁用
+           single: true,
+           // 非多个禁用
+           multiple: true,
+           // 显示搜索条件
+           showSearch: true,
+           // 总条数
+           total: 0,
+           // 业主管理表格数据
+           residentInfoList: [],
+           houseInfoLise:[],
+           baseUrl: process.env.VUE_APP_BASE_API,
+           defaultSettings:defaultSettings,
+           // 弹出层标题
+           title: "",
+           // 是否显示弹出层
+           open: false,
+           // 查询参数
+           queryParams: {
+             pageNum: 1,
+                    pageSize: 8,
+                    houseId: null,
+                    userId: null,
+                    detailedAddress: null,
+                    residentName: null,
+                    residentIdCard: null,
+                    residentBirthday: null,
+                    residentPhone: null,
+                    residentGender: null,
+                    residentRelationship: null,
+                    isHouseholder: null,
+                    residentEmployer: null,
+                    residentAppearance: null,
+                    examine:'1',
+           },
+      // 表单参数
+      form: {},
+      // 表单校验
+      // 表单校验
+            rules: {
+              tenantId: [
+                        { required: true, message: "不能为空", trigger: "blur" }
+                      ],
+             houseId: [
+                       { required: true, message: "不能为空", trigger: "blur" }
+                     ],
+            residentName: [
+                      { required: true, message: "不能为空", trigger: "blur" }
+                    ],
+            residentPhone:[
+                      { required: true, message: "不能为空", trigger: "blur" },
+                      {
                   pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
                   message: "请输入正确的手机号码",
                    trigger: "blur"
                   }
+                    ],
+            residentIdCard:[
+              { required: true, message: "不能为空", trigger: "blur" },
+                 {
+              pattern: /^([1-6][1-9]|50)\d{4}(18|19|20)\d{2}((0[1-9])|10|11|12)(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/,
+              message: "请输入正确的身份证号码",
+               trigger: "blur"
+              }
+            ]
+
+            },
+      activeName:'first',
+      videoState: false, // 视频播放状态
+      poster:true,
+      controls:true,
+      videoData:{},
+       player: null,
+       isshoe:true,
+       tableMaxHeight:'200',
+       tenantListtw:[]
+    };
+  },
+  computed: {
+    dynamicStyle() {
+      return {
+        overflow:'auto',
+        height: this.tableMaxHeight+ 'px',
+        paddingTop:'10px'
+      }
+    }
+    },
+  created() {
+    if(this.$route.query.id != undefined){
+       this.queryParams.houseId = this.$route.query.id  - 0
+    }
+    this.usename = this.$store.state.user.name
+    this.getList();
+    this.getnhgwon()
+    this.getListhouvr(this.$store.getters.tenantId)
+
+ window.onresize = () => {
+ 	      this.changeTableMaxHeight()
+ 	    }
+ 	    this.changeTableMaxHeight()
+ },
+ mounted() {
+ 	window.onresize = () => {
+ 	          this.changeTableMaxHeight()
+ 	        }
+ 	        this.changeTableMaxHeight()
+ },
+  beforeDestroy() {
+      if (this.player) {
+        this.player.dispose()
+      }
+    },
+  methods: {
+    getnhgwon(){
+      // this.loading = true;
+      let ngse={'userName': this.usename}
+      if(this.usename == 'admin'){
+        getTenantList().then(response => {
+          // this.tenantEnabled = response.data.tenantEnabled
+          this.tenantListtw = response.data.voList;
+          // this.loading = false;
+        });
+      }else{
+        // ngse
+        userNamet(ngse).then(response => {
+          // this.tenantEnabled = response.data.tenantEnabled
+          this.tenantListtw = response.data;
+          // this.loading = false;
+        });
+      }
+
+
+    },
+    dynamicTenantEventg(){
+    	if (this.companyName != null && this.companyName !== '') {
+        let ngpw={'tenantId':this.companyName,'clientId':'e5cd7e4891bf95d1d19206ce24a7b32e','grantType':'password'}
+    	  // dynamicTenantgw ngpw
+        this.getListhouvr()
+    	}
+    },
+    /** 查询岗位列表 */
+    getList() {
+   this.loading = true;
+      listResidentInfo(this.queryParams).then(response => {
+        this.residentInfoList  = response.rows;
+        this.residentInfoList .filter(rou=>{
+          rou.imges = []
+          if(rou.idCardFront != null && rou.idCardFront != ''){
+            rou.imges.push(rou.idCardFront)
+          }
+          if(rou.idCardBack != null && rou.idCardBack != ''){
+            rou.imges.push(rou.idCardBack)
+          }
+          rou.isnum = false
+        })
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    getListhouvr(row) {
+      let ne={'tenantId':row}
+      // listNoPage  listNoPageTenant
+      // ne
+       listNoPage().then(response => {
+         this.houseInfoLise  = response.data;
+         if(this.houseInfoLise.length !=0){
+           this.form.houseId = this.houseInfoLise[0].houseId
+           this.form.detailedAddress = this.houseInfoLise[0].detailedAddress
+         }
+
+       });
+     },
+     shiegw(val){
+       console.log(val)
+       	var _IDRe18 = /^([1-6][1-9]|50)\d{4}(18|19|20)\d{2}((0[1-9])|10|11|12)(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/
+       	// var _IDre15 =  /^([1-6][1-9]|50)\d{4}\d{2}((0[1-9])|10|11|12)(([0-2][1-9])|10|20|30|31)\d{3}$/
+       	// 校验身份证:
+       	// return (_IDRe18.test(idNo) || _IDre15.test(idNo)) ? true : false;
+        if(_IDRe18.test(this.form.residentIdCard) == true){
+          let sge = this.getInfo( this.form.residentIdCard)
+          this.form.yearsOld = sge.age
+          this.form.residentGender = sge.sex + ''
+          this.form.residentBirthday = sge.birth
+          console.log(sge)
+        }
+
+     },
+     getInfo(idCard) {
+             let sex = null;
+             let birth = null;
+             let myDate = new Date();
+             let month = myDate.getMonth() + 1;
+             let day = myDate.getDate();
+             let age = 0;
+
+             if (idCard.length === 18) {
+               age = myDate.getFullYear() - idCard.substring(6, 10) - 1;
+               sex = idCard.substring(16, 17);
+               birth = idCard.substring(6, 10) + "-" + idCard.substring(10, 12) + "-" + idCard.substring(12, 14);
+               if (idCard.substring(10, 12) < month || idCard.substring(10, 12) === month && idCard.substring(12, 14) <= day)
+                 age++;
+
+             }
+             if (idCard.length === 15) {
+               age = myDate.getFullYear() - idCard.substring(6, 8) - 1901;
+               sex = idCard.substring(13, 14);
+               birth = "19" + idCard.substring(6, 8) + "-" + idCard.substring(8, 10) + "-" + idCard.substring(10, 12);
+               if (idCard.substring(8, 10) < month || idCard.substring(8, 10) === month && idCard.substring(10, 12) <= day)
+                 age++;
+             }
+
+             if (sex % 2 === 0)
+               sex = 2; // 性别代码 1代表男,0代表女,暂时不涉及其他类型性别
+             else
+               sex = 1;
+             return {
+               age,
+               sex,
+               birth
+             }
+           },
+      getBirthday(idCard) {
+              let birthday = "";
+              if (idCard != null && idCard !== "") {
+                if (idCard.length === 15) {
+                  birthday = "19" + idCard.substr(6, 6);
+                } else if (idCard.length === 18) {
+                  birthday = idCard.substr(6, 8);
+                }
+                birthday = birthday.replace(/(.{4})(.{2})/, "$1-$2-");
+              }
+              return birthday;
+            },
+
+   uploadedSuccessfully(row){
+     console.log('上传重构',row)
+     if(row.length !=0){
+       row.filter(ru=>{
+         this.form.residentName = ru.realName
+         this.form.residentIdCard = ru.idCard
+         let sge = this.getInfo( this.form.residentIdCard)
+         this.form.yearsOld = sge.age
+         this.form.residentGender = sge.sex + ''
+         this.form.residentBirthday = sge.birth
+       })
+
+     }
+   },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+   this.form = {
+           residentId: null,
+           houseId: null,
+           userId: undefined,
+           detailedAddress: null,
+           residentName: null,
+           residentIdCard: null,
+           residentBirthday: null,
+           residentPhone: null,
+           residentGender: null,
+           residentRelationship: null,
+           isHouseholder: 'Y',
+           residentEmployer: null,
+           residentAppearance: '5',
+           createBy: null,
+           createTime: null,
+           updateBy: null,
+           updateTime: null,
+           remark: null,
+           userType:'pc_user',
+           tenantId:this.$store.getters.tenantId
+         };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+
+
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.queryParams.houseId = null
+      this.queryParams.pageNum = 1;
+      this.queryParams.detailedAddress =null
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.residentId)
+     this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      if(this.$route.query.id != undefined){
+         this.form.houseId = this.$route.query.id  - 0
+      }
+      this.getListhouvr(this.$store.getters.tenantId)
+      this.open = true;
+       this.title = "添加居住人员";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+        this.reset();
+             const residentId = row.residentId || this.ids
+             getResidentInfo(residentId).then(response => {
+               this.form = response.data;
+               let ne={'tenantId':this.form.tenantId}
+               // listNoPage  listNoPageTenant
+                listNoPage(ne).then(response => {
+                  this.houseInfoLise  = response.data;
+                });
+               this.title = "查看信息";
+               this.form.residentGender  = this.form.residentGender + ''
+               this.open = true;
+             });
+    },
+    // 通过
+    handleUpdatef(row) {
+          row.examine = 2
+             examineResident(row).then(response => {
+               this.$modal.msgSuccess("操作成功");
+               this.getList();
+             });
+    },
+    // 驳回
+    handleUpdateb(row) {
+           row.examine = 3
+             examineResident(row).then(response => {
+               this.$modal.msgSuccess("操作成功");
+               this.getList();
+             });
+    },
+
+    /** 提交按钮 */
+        submitForm() {
+          this.$refs["form"].validate(valid => {
+           if (valid) {
+                     if (this.form.residentId != null) {
+                       updateResidentInfo(this.form).then(response => {
+                         this.$modal.msgSuccess("修改成功");
+                         this.open = false;
+                         this.getList();
+                       });
+                     } else {
+                       addResidentInfo(this.form).then(response => {
+                         this.$modal.msgSuccess("新增成功");
+                         this.open = false;
+                         this.getList();
+                       });
+              }
+            }
+          });
+        },
+    /** 删除按钮操作 */
+        handleDelete(row) {
+          const residentIds = row.residentId || this.ids;
+          let sgwe={'residentId':row.residentId,'userId':row.userId,'tenantId':row.tenantId}
+         delResidentInfo(row).then(response => {
+                     this.$modal.msgSuccess("删除成功");
+                     this.getList();
+                   });
+        },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('wuYe/residentInfo/export', {
+              ...this.queryParams
+            }, `residentInfo_${new Date().getTime()}.xlsx`)
+    },
+
+      handleClick(){
+
+      },
+    isac(val){
+      console.log(5,val)
+      val.isnum = !val.isnum
+      this.isshoe = false
+      this.isshoe = true
+    },
+    itneg(item){
+      this.queryParams.houseId = item.houseId
+      this.queryParams.detailedAddress = item.detailedAddress
+    },
+    itnegadd(item){
+      this.form.houseId = item.houseId
+      this.form.detailedAddress = item.detailedAddress
+    },
+    // 获取屏幕高度
+    showFilterForm () {
+          this.filterActive = !this.filterActive
+          this.changeTableMaxHeight()
+        },
+
+        changeTableMaxHeight () {
+          let height = document.body.offsetHeight // 网页可视区域高度
+          // if (this.filterActive) {
+          //   this.tableMaxHeight = height - 320
+          // } else {
+            this.tableMaxHeight = height - 150
+          // }
+          console.log(height)
+        }
+
+  }
+};
+</script>
+<style  lang="scss">
+  .ingsek{
+   .el-carousel__container{
+  	 height: 150px;
+   }
+   .el-carousel--horizontal{
+     width: 100%;
+   }
+  }
+  .shefnze{
+    .el-upload--picture-card{
+      width: 80px;
+      height: 80px;
+      line-height: 80px;
+    }
+    .el-upload-list--picture-card .el-upload-list__item{
+      width: 80px;
+      height: 80px;
+    }
+    .el-upload__tip{
+      overflow: hidden;
+        text-overflow: ellipsis;
+        white-space: nowrap;
+    }
+  }
+  .ngeshimg{
+    .el-upload--picture-card{
+      width: 36px;
+      height: 36px;
+      line-height: 36px;
+      position: absolute;
+      top:0;
+      right: 0;
+    }
+    .component-upload-image{
+      position: absolute;
+      top:0;
+      right: 0;
+    }
+    .el-upload--picture-card i{
+      font-size: 20px;
+    }
+    .el-upload-list--picture-card .el-upload-list__item{
+      width: 58px;
+      height: 36px;
+      position: absolute;
+      top:0;
+      right: -10px;
+    }
+  }
+  .unimg{
+    .el-upload--picture-card{
+      width:102px;
+      height: 102px;
+      line-height: 102px;
+    }
+  }
+
+  .bnjle{
+    margin-left: 20px;
+  }
+  .butt{
+    .el-button--small{
+      padding: 9px 23px !important;
+      font-size: 14px;
+    }
+  }
+  .casr{
+    .el-tabs__item.is-active{
+      color: #196CFF;
+    }
+    .el-tabs--card > .el-tabs__header .el-tabs__item{
+      padding: 0  30px !important;
+    }
+  }
+  .el-table .el-table__header-wrapper th{
+    background-color:#F5F6F8;
+    color:#343434;
+  }
+  .el-table{
+    color:#343434;
+  }
+</style>
+<style scoped lang="scss">
+  .goe{
+    p{
+      margin: 0;
+      font-weight: 800;
+      font-size: 16px;
+      color: #161616;
+      margin-top: 10px;
+      margin-bottom: 3px;
+      padding: 0 10px;
+      overflow: hidden;
+      text-overflow: ellipsis;
+      display:-webkit-box; //作为弹性伸缩盒子模型显示。
+      -webkit-box-orient:vertical; //设置伸缩盒子的子元素排列方式--从上到下垂直排列
+      -webkit-line-clamp:1; //显示的行
+    }
+    p:nth-child(2){
+
+    }
+  }
+  .ingwe{
+    border: 2px solid #196CFF;
+  }
+  .renyuangs{
+    p{
+      font-weight: 500;
+      font-size: 14px;
+      color: #161616;
+      padding: 0;
+    }
+    div{
+      font-weight: 500;
+      font-size: 14px;
+      color: #161616;
+      padding: 0;
+      display: flex;
+    }
+  }
+  .tongty{
+    display: flex;
+    align-items: center;
+  }
+  .bortt{
+    border-top: 1px solid #DADADA;
+    margin-top: 15px;
+
+    p{
+      margin: 0;
+      font-weight: bold;
+      font-size: 14px;
+      color: #5F8BF4;
+      width:50%;
+      padding: 10px;
+      text-align: center;
+    }
+  }
+  </style>
+
+

+ 3 - 5
ruoyi-ui/src/views/wuguan/reservRecord/index.vue

@@ -434,12 +434,10 @@ export default {
     /** 删除按钮操作 */
     handleDelete(row) {
       const reservRecordIds = row.reservRecordId || this.ids;
-      this.$modal.confirm('是否确认删除预约记录编号为"' + reservRecordIds + '"的数据项?').then(function() {
-        return delReservRecord(reservRecordIds);
-      }).then(() => {
-        this.getList();
+      delReservRecord(reservRecordIds).then(response => {
         this.$modal.msgSuccess("删除成功");
-      }).catch(() => {});
+        this.getList();
+      });
     },
     /** 导出按钮操作 */
     handleExport() {

+ 5 - 5
ruoyi-ui/src/views/wuguan/settings/index.vue

@@ -78,12 +78,14 @@
           <el-button
             size="mini"
             type="text"
+            style="color: #28C529;"
             @click="handleUpdate(scope.row)"
             v-hasPermi="['wuYe:settings:edit']"
           >修改</el-button>
           <el-button
             size="mini"
             type="text"
+            style="color: red;"
             @click="handleDelete(scope.row)"
             v-hasPermi="['wuYe:settings:remove']"
           >删除</el-button>
@@ -250,12 +252,10 @@ export default {
     /** 删除按钮操作 */
     handleDelete(row) {
       const settingsIds = row.settingsId || this.ids;
-      this.$modal.confirm('是否确认删除物业管家的数据项?').then(function() {
-        return delSettings(settingsIds);
-      }).then(() => {
-        this.getList();
+      delSettings(settingsIds).then(response => {
         this.$modal.msgSuccess("删除成功");
-      }).catch(() => {});
+        this.getList();
+      });
     },
     /** 导出按钮操作 */
     handleExport() {

+ 8 - 14
ruoyi-ui/src/views/wuguan/suggestion/index.vue

@@ -378,12 +378,10 @@ export default {
     /** 删除按钮操作 */
     handleDelete(row) {
       const suggestionIds = row.suggestionId || this.ids;
-      this.$modal.confirm('是否确认删除投诉建议编号为"' + suggestionIds + '"的数据项?').then(function() {
-        return delSuggestion(suggestionIds);
-      }).then(() => {
-        this.getList();
-        this.$modal.msgSuccess("删除成功");
-      }).catch(() => {});
+     delSuggestion(suggestionIds).then(response => {
+              this.$modal.msgSuccess("删除成功");
+              this.getList();
+            });
     },
     /** 导出按钮操作 */
     handleExport() {
@@ -393,14 +391,10 @@ export default {
     },
     handleStatusChange(row) {
       let text = row.isPublic === "Y" ? "启用" : "停用";
-      var that = this
-      this.$modal.confirm('确认要"' + text + '"吗?').then(function() {
-         that.getti(row);
-      }).then(() => {
-        this.$modal.msgSuccess(text + "成功");
-      }).catch(function() {
-        row.isPublic = row.isPublic === "Y" ? "N" : "Y";
-      });
+      updateSuggestion(settingsIds).then(response => {
+              this.$modal.msgSuccess(text + "成功");
+              this.getList();
+            });
     },
     // 获取屏幕高度
     showFilterForm () {

+ 7 - 9
ruoyi-ui/src/views/wuguan/visitorManage/index.vue

@@ -140,7 +140,7 @@
         </template>
       </el-table-column>
       <el-table-column label="车牌号码" align="center" prop="plateNumber" />
-      <el-table-column label="来访时间" align="center" prop="visitorTime" width="120">
+      <el-table-column label="来访时间" align="center" prop="visitorTime" width="100">
         <template slot-scope="scope">
           <span>{{ scope.row.visitorTime }}</span>
         </template>
@@ -191,7 +191,7 @@
         <el-row>
           <el-col :span="12">
             <el-form-item label="门牌号" prop="houseAddress">
-               <el-select style="width: 100%;" v-model="form.houseAddress" placeholder="请选择门牌号" clearable>
+               <el-select filterable  style="width: 100%;" v-model="form.houseAddress" placeholder="请选择门牌号" clearable>
                  <el-option
                   @click.native="itnegadd(dict)"
                    v-for="dict in houseInfoLise"
@@ -291,7 +291,7 @@ export default {
       // 查询参数
       queryParams: {
         pageNum: 1,
-        pageSize: 10,
+        pageSize: 8,
         portalId: null,
         houseAddress: null,
         name: null,
@@ -462,12 +462,10 @@ export default {
     /** 删除按钮操作 */
     handleDelete(row) {
       const visitorManageIds = row.visitorManageId || this.ids;
-      this.$modal.confirm('是否确认删除来访管理编号为"' + visitorManageIds + '"的数据项?').then(function() {
-        return delVisitorManage(visitorManageIds);
-      }).then(() => {
-        this.getList();
-        this.$modal.msgSuccess("删除成功");
-      }).catch(() => {});
+      delVisitorManage(visitorManageIds).then(response => {
+              this.$modal.msgSuccess("删除成功");
+              this.getList();
+            });
     },
     /** 导出按钮操作 */
     handleExport() {

+ 5 - 7
ruoyi-ui/src/views/wuguan/weitingchel/index.vue

@@ -326,7 +326,7 @@ export default {
       // 查询参数
       queryParams: {
         pageNum: 1,
-                pageSize: 10,
+                pageSize: 8,
                 plateNumber: null,
                 portalId: null,
                 visitPortal: null,
@@ -548,12 +548,10 @@ export default {
     /** 删除按钮操作 */
         handleDelete(row) {
           const illegalParkingIds = row.illegalParkingId || this.ids;
-          this.$modal.confirm('是否确认删除违章停车登记编号为"' + illegalParkingIds + '"的数据项?').then(function() {
-            return delIllegalParking(illegalParkingIds);
-          }).then(() => {
-            this.getList();
-            this.$modal.msgSuccess("删除成功");
-          }).catch(() => {});
+          delIllegalParking(illegalParkingIds).then(response => {
+                  this.$modal.msgSuccess("删除成功");
+                  this.getList();
+                });
         },
     /** 导出按钮操作 */
     handleExport() {

+ 190 - 40
ruoyi-ui/src/views/wuguan/weixiurenyuan/index.vue

@@ -23,10 +23,10 @@
                 <el-form-item label="员工类别" prop="staffCategory">
                         <el-select v-model="queryParams.staffCategory" placeholder="请选择员工类别" clearable>
                           <el-option
-                            v-for="dict in dict.type.yaungong"
-                            :key="dict.value"
-                            :label="dict.label"
-                            :value="dict.value"
+                            v-for="dict in roleListt"
+                            :key="dict.roleKey"
+                            :label="dict.roleName"
+                            :value="dict.roleKey"
                           />
                         </el-select>
                       </el-form-item>
@@ -55,6 +55,18 @@
                         />
                       </el-form-item>
               </el-col>
+              <el-col :span="8">
+                              <el-form-item label="审核状态" prop="examine">
+                                      <el-select v-model="queryParams.examine" placeholder="请选择审核状态" clearable>
+                                        <el-option
+                                          v-for="dict in dict.type.renzhen_sh"
+                                          :key="dict.value"
+                                          :label="dict.label"
+                                          :value="dict.value"
+                                        />
+                                      </el-select>
+                                    </el-form-item>
+                            </el-col>
               <el-col :span="8">
                 <el-form-item class="butt bnjle">
                   <el-button size="mini" type="primary"   @click="handleQuery">搜索</el-button>
@@ -81,7 +93,7 @@
                     plain
                     size="mini"
                     @click="handleAdd"
-                    v-hasPermi="['wuYe:staffManage:add']"
+                    v-hasPermi="['wuYe:staffManage:authentication']"
                   >添加</el-button>
                 </el-col>
                 <!-- <el-col :span="1.5">
@@ -128,10 +140,10 @@
                         <!-- <img src="../../../assets/images/pic_htgl_wxrygl_yhlx_zp.png" alt="" style="width: 73px;height: 24px;position: absolute;right: 0;top: 15px;"> -->
                       </div>
                       <div class="goe renyuangs" style="padding: 0 20px;">
-                        <div style="margin-bottom: 10px;">
-                          人员类别:<dict-tag :options="dict.type.yaungong" :value="item.staffCategory"/>
+                        <div style="margin-bottom: 10px; display: flex;align-items: center;">
+                          人员类别:<div style="width: 67%;"><div style="  line-height: 28px; background-color: #b5c8f7; padding: 0 5px;border-radius: 2px; color: #fff;">{{item.staffCategorylable}}</div></div>
                         </div>
-                        <div>维修类别:<dict-tag :options="dict.type.weixiutype" :value="item.maintenanceCategory"/></div>
+                        <div style="line-height: 28px;">维修类别:<dict-tag :options="dict.type.weixiutype" :value="item.maintenanceCategory"/></div>
                         <p>
                           手机号码:{{item.phoneNumber == null? '暂无数据' : item.phoneNumber}}
                         </p>
@@ -139,10 +151,29 @@
                           身份证号:{{item.idCard == null? '暂无数据' : item.idCard}}
                         </p>
                       </div>
+                      <div style="height: 150px;padding: 0 10px;" class="ingsek">
+                        <el-carousel :interval="4000"  arrow="hover" height="150px;width:100%;" indicator-position="none" >
+                            <el-carousel-item  v-for="(itemg,index) in item.imges" :key="index" v-if="item.imges.length !=0">
+                        										<div style="position: relative;" @click="imge(itemg)">
+                                              <!-- defaultSettings.urls+baseUrl +itemt.url -->
+                                              <!-- +baseUrl -->
+                        											<img :src="defaultSettings.urls +itemg" alt="" style="width: 100%;height: 150px;">
+                        											<!-- <p style="position: absolute;bottom: 0;left: 0;font-weight: 500; height: 24px;background-color: rgba(0,0,0,.5);color: #fff;font-size: 14px;width: 100%;padding-left: 10px;line-height: 24px;margin: 0;">{{itemt.title}}</p> -->
+                        										</div>
+                            </el-carousel-item>
+                            <el-carousel-item   v-if="item.imges.length ==0">
+                                   <div style="position: relative;" >
+                                              <!-- defaultSettings.urls+baseUrl +itemt.url -->
+                                   <img src="../../../assets/images/zwshuj.png" alt="" style="width: 100%;height: 150px;">
+                                             <!-- <p style="position: absolute;bottom: 0;left: 0;font-weight: 500; height: 24px;background-color: rgba(0,0,0,.5);color: #fff;font-size: 14px;width: 100%;padding-left: 10px;line-height: 24px;margin: 0;">{{itemt.title}}</p> -->
+                                   </div>
+                            </el-carousel-item>
+                          </el-carousel>
+                      </div>
                       <div class="bortt tongty" style="justify-content: space-between;cursor: pointer;">
-                        <p ><span  v-hasPermi="['wuYe:staffManage:edit']" @click="handleUpdate(item)">修改</span>  </p>
+                        <p ><span style="cursor: pointer;color: #28C529;"  v-hasPermi="['wuYe:staffManage:editAuthentication']" @click="handleUpdate(item)">修改</span>  </p>
                         <!-- <span @click="handleUpdatef(item)">查看</span> -->
-                        <p v-hasPermi="['wuYe:staffManage:remove']" style="border-left: 1px solid #DADADA;color:red" @click="handleDelete(item)">删除</p>
+                        <p v-hasPermi="['wuYe:staffManage:deleteStaffManage']" style="cursor: pointer;border-left: 1px solid #DADADA;color:red" @click="handleDelete(item)">删除</p>
                       </div>
                       <img v-if="item.isnum == true" src="../../../assets/images/icon_htgl_kp_gx.png" alt="" style="width: 35px;height: 35px;position: absolute;bottom: 0;right: 0;">
                     </div>
@@ -175,6 +206,21 @@
                   <image-uploadshib @uploadedSuccessfully="uploadedSuccessfully" :typeg = "1" :limit="1" v-model="form.idCardBack"/>
             </el-form-item>
           </el-col>
+          <el-col :span="24">
+            <el-form-item label="选择小区" prop="tenantId">
+               <el-select
+               style="width:100%;"
+               			  v-model="form.tenantId"
+               			  clearable
+               			  filterable
+               			  reserve-keyword
+               			  placeholder="选择物业"
+               			>
+               			  <el-option v-for="item in tenantList" :key="item.tenantId" :label="item.companyName" :value="item.tenantId" @click.native="chahue(item)"> </el-option>
+               			  <template ><svg-icon icon-class="company" class="el-input__icon input-icon" /></template>
+               			</el-select>
+            </el-form-item>
+          </el-col>
           <el-col :span="12">
             <el-form-item label="员工性别" prop="gender">
                       <el-select v-model="form.gender" placeholder="请选择员工性别">
@@ -191,10 +237,10 @@
             <el-form-item label="员工类别" prop="staffCategory">
                       <el-select v-model="form.staffCategory" placeholder="请选择员工类别">
                         <el-option
-                          v-for="dict in dict.type.yaungong"
-                          :key="dict.value"
-                          :label="dict.label"
-                          :value="dict.value"
+                          v-for="dict in roleList"
+                          :key="dict.roleKey"
+                          :label="dict.roleName"
+                          :value="dict.roleKey"
                         ></el-option>
                       </el-select>
                     </el-form-item>
@@ -222,6 +268,7 @@
             </el-form-item>
           </el-col>
 
+
           <el-col :span="12" class="shefnze" >
               <el-form-item label="头像" prop="avatarPhoto">
             <image-upload :limit="1" v-model="form.avatarPhoto"/>
@@ -246,15 +293,25 @@
         <el-button @click="cancel">取 消</el-button>
       </div>
     </el-dialog>
+    <el-dialog title="查看图片" :visible.sync="openg" width="440px" append-to-body>
+      <div>
+        <!-- +baseUrl -->
+        <img :src="defaultSettings.urls+ imgurw" alt="" style="width: 100%;">
+      </div>
+      </el-dialog>
   </div>
 </template>
 
 <script>
-import { listStaffManage, getStaffManage, delStaffManage, addStaffManage, updateStaffManage } from "@/api/wuguan/staffManage";
+import { listStaffManage, getStaffManage, delStaffManage, addStaffManage, updateStaffManage,authentication,deleteStaffManage } from "@/api/wuguan/staffManage";
 import 'videojs-flash'
+import { getTenantList} from "@/api/login";
+import {userNamet} from "@/api/zhihuixy/tenant";
+import {listNoPage,listRole} from "@/api/system/role";
+const defaultSettings = require("@/settings.js");
 export default {
    name: "StaffManage",
-    dicts: ['yaungong', 'gender', 'technician_selection','weixiutype'],
+    dicts: ['yaungong', 'gender', 'technician_selection','weixiutype','renzhen_sh'],
   data() {
     return {
       // 遮罩层
@@ -263,22 +320,26 @@ export default {
       ids: [],
       // 非单个禁用
       single: true,
+      openg:false,
       // 非多个禁用
       multiple: true,
       // 显示搜索条件
       showSearch: true,
       // 总条数
       total: 0,
+      baseUrl: process.env.VUE_APP_BASE_API,
+      defaultSettings:defaultSettings,
       // 员工管理表格数据
       staffManageList: [],
       // 弹出层标题
       title: "",
       // 是否显示弹出层
       open: false,
+      tenantList:[],
       // 查询参数
       queryParams: {
         pageNum: 1,
-               pageSize: 10,
+               pageSize:8,
                staffName: null,
                gender: null,
                staffCategory: null,
@@ -290,7 +351,7 @@ export default {
                idCardBack: null,
                certificate: null,
                status: null,
-               examine:2
+               examine:'2'
       },
       // 表单参数
       form: {},
@@ -315,6 +376,10 @@ export default {
        player: null,
        isshoe:true,
        tableMaxHeight:'200',
+       imgurw:'',
+       roleList:[],
+       roleListt:[],
+       usename:''
     };
   },
 
@@ -329,11 +394,16 @@ export default {
     },
 
   created() {
-    this.getList();
+    this.usename = this.$store.state.user.name
+   this.getrou(this.$store.getters.tenantId)
+    this.getnhgwzuhue()
+    this.getListtne()
+
   window.onresize = () => {
   	      this.changeTableMaxHeight()
   	    }
   	    this.changeTableMaxHeight()
+
   },
   mounted() {
   	window.onresize = () => {
@@ -347,20 +417,89 @@ export default {
       }
     },
   methods: {
-    /** 查询岗位列表 */
-    getList() {
-      this.loading = true;
+    /** 查询角色列表 根据选择小区不带tenid*/
+    getListtne() {
+     let queryParams={  'pageNum': 1,
+               'pageSize': 18,}
+      listRole(queryParams).then(response => {
+          this.roleListt = response.rows;
+                    this.roleListt.filter(rou=>{
+                      rou.dictValue=rou.roleKey
+                      rou.dictLabel=rou.roleName
+                      rou.value=rou.roleKey
+                      rou.label=rou.roleName
+                    })
+        }
+      );
+    },
+    // 小区切换
+    chahue(row){
+      this.getrou(row.tenantId)
+    },
+    // 查询角色信息
+    getrou(row){
+                      let pade={'tenantId':row}
+                      listNoPage(pade).then(response => {
+                          this.roleList = response.rows;
+                          this.roleList.filter(rou=>{
+                            rou.dictValue=rou.roleKey
+                            rou.dictLabel=rou.roleName
+                            rou.value=rou.roleKey
+                            rou.label=rou.roleName
+                          })
+                          if (this.form.staffId != null) {
+                          }else{
+                            if(response.rows.length !=0){
+                              this.form.staffCategory = response.rows[0].roleKey
+                            }
+                          }
+                          // this.getList();
+                        }
+                      );
+                    },
+    getnhgwzuhue(){
+      // this.loading = true;
+      let ngse={'userName': this.usename}
+      if(this.usename == 'admin'){
+        getTenantList().then(response => {
+          // this.tenantEnabled = response.data.tenantEnabled
+          this.tenantList = response.data.voList;
+          // this.loading = false;
+        });
+      }else{
+        userNamet(ngse).then(response => {
+          // this.tenantEnabled = response.data.tenantEnabled
+          this.tenantList = response.data;
+          // this.loading = false;
+        });
+      }
 
-      listStaffManage(this.queryParams).then(response => {
-        this.staffManageList  = response.rows;
-        this.staffManageList .filter(rou=>{
-          rou.isnum = false
-        })
-        // this.getge(this.postList)
-        this.total = response.total;
-        this.loading = false;
-      });
     },
+    /** 查询岗位列表 */
+    getList() {
+          this.loading = true;
+          listStaffManage(this.queryParams).then(response => {
+            this.staffManageList  = response.rows;
+            this.staffManageList .filter(rou=>{
+              rou.imges = []
+              if(rou.idCardFront != null && rou.idCardFront != ''){
+                rou.imges.push(rou.idCardFront)
+              }
+              if(rou.idCardBack != null && rou.idCardBack != ''){
+                rou.imges.push(rou.idCardBack)
+              }
+              rou.isnum = false
+              rou.staffCategorylable = this.selectDictLabel(this.roleListt, rou.staffCategory)
+            })
+            // this.getge(this.postList)
+            this.total = response.total;
+            this.loading = false;
+          });
+        },
+        imge(row){
+          this.openg = true
+          this.imgurw = row
+        },
     getInfo(idCard) {
             let sex = null;
             let birth = null;
@@ -446,7 +585,9 @@ export default {
               updateBy: null,
               updateTime: null,
               remark: null,
-              examine:2
+              tenantId:this.$store.getters.tenantId,
+              examine:2,
+              userType:' pc_user'
             };
       this.resetForm("form");
     },
@@ -469,6 +610,7 @@ export default {
     /** 新增按钮操作 */
     handleAdd() {
       this.reset();
+      this.getrou(this.$store.getters.tenantId)
       this.open = true;
       this.title = "添加员工管理";
     },
@@ -478,6 +620,7 @@ export default {
            const staffId = row.staffId || this.ids
            getStaffManage(staffId).then(response => {
              this.form = response.data;
+             this.getrou( this.form.tenantId)
              this.open = true;
              this.title = "修改员工管理";
            });
@@ -493,7 +636,7 @@ export default {
                      this.getList();
                    });
                  } else {
-                   addStaffManage(this.form).then(response => {
+                   authentication(this.form).then(response => {
                      this.$modal.msgSuccess("新增成功");
                      this.open = false;
                      this.getList();
@@ -504,13 +647,12 @@ export default {
     },
     /** 删除按钮操作 */
         handleDelete(row) {
-          const staffIds = row.staffId || this.ids;
-          this.$modal.confirm('是否确认删除员工管理编号为"' + staffIds + '"的数据项?').then(function() {
-            return delStaffManage(staffIds);
-          }).then(() => {
-            this.getList();
-            this.$modal.msgSuccess("删除成功");
-          }).catch(() => {});
+          // const staffIds = row.staffId || this.ids;
+          let staffIds={'staffId':row.staffId,'userId':row.userId,'tenantId':row.tenantId}
+          deleteStaffManage(staffIds).then(response => {
+                  this.$modal.msgSuccess("删除成功");
+                  this.getList();
+                });
         },
     /** 导出按钮操作 */
     handleExport() {
@@ -548,6 +690,14 @@ export default {
 };
 </script>
 <style  lang="scss">
+  .ingsek{
+   .el-carousel__container{
+  	 height: 150px;
+   }
+   .el-carousel--horizontal{
+     width: 100%;
+   }
+  }
   .shefnze{
     .el-upload--picture-card{
       width: 80px;

+ 162 - 41
ruoyi-ui/src/views/wuguan/weixiurenyuansh/index.vue

@@ -20,17 +20,17 @@
                       </el-form-item>
               </el-col>
               <el-col :span="8">
-                <el-form-item label="员类别" prop="staffCategory">
-                        <el-select v-model="queryParams.staffCategory" placeholder="请选择员类别" clearable>
-                          <el-option
-                            v-for="dict in dict.type.yaungong"
-                            :key="dict.value"
-                            :label="dict.label"
-                            :value="dict.value"
-                          />
-                        </el-select>
-                      </el-form-item>
-              </el-col>
+                              <el-form-item label="员类别" prop="staffCategory">
+                                      <el-select v-model="queryParams.staffCategory" placeholder="请选择员类别" clearable>
+                                        <el-option
+                                          v-for="dict in roleListt"
+                                          :key="dict.roleKey"
+                                          :label="dict.roleName"
+                                          :value="dict.roleKey"
+                                        />
+                                      </el-select>
+                                    </el-form-item>
+                            </el-col>
               <el-col :span="8">
                 <el-form-item label="维修分类" prop="maintenanceCategory">
                         <el-select v-model="queryParams.maintenanceCategory" placeholder="请选择维修分类" clearable>
@@ -55,6 +55,18 @@
                         />
                       </el-form-item>
               </el-col>
+              <el-col :span="8">
+                <el-form-item label="审核状态" prop="examine">
+                        <el-select v-model="queryParams.examine" placeholder="请选择审核状态" clearable>
+                          <el-option
+                            v-for="dict in dict.type.renzhen_sh"
+                            :key="dict.value"
+                            :label="dict.label"
+                            :value="dict.value"
+                          />
+                        </el-select>
+                      </el-form-item>
+              </el-col>
               <el-col :span="8">
                 <el-form-item class="butt bnjle">
                   <el-button size="mini" type="primary"   @click="handleQuery">搜索</el-button>
@@ -124,12 +136,12 @@
                         <img src="../../../assets/images/icon_htgl_rygl_tx_nv.png" alt="" style="width: 50px;height: 50px;border-radius: 50%;" v-if="item.avatarPhoto ==  null">
                          <image-preview :src="item.avatarPhoto" :width="50" :height="50" v-if="item.avatarPhoto !=  null" style="border-radius: 50%;"/>
                         <span style="font-weight: bold;font-size: 16px;color: #161616;margin-left: 15px;">{{item.staffName == null? '暂无数据' : item.staffName}}</span>
-                        <img src="../../../assets/images/renyuandelet.png" alt="" style="width: 73px;height: 24px;position: absolute;right: 0;top: 15px;" @click="handleDelete(item)" >
+                        <img src="../../../assets/images/renyuandelet.png" alt="" style="width: 73px;height: 24px;position: absolute;right: 0;top: 10px;" @click="handleDelete(item)"  >
                         <!-- <img src="../../../assets/images/pic_htgl_wxrygl_yhlx_zp.png" alt="" style="width: 73px;height: 24px;position: absolute;right: 0;top: 15px;"> -->
                       </div>
                       <div class="goe renyuangs" style="padding: 0 20px;">
-                        <div style="margin-bottom: 10px;">
-                          人员类别:<dict-tag :options="dict.type.yaungong" :value="item.staffCategory"/>
+                        <div style="margin-bottom: 10px;display: flex;align-items: center;">
+                          人员类别:<div style="width: 67%;"><div style="  line-height: 28px; background-color: #b5c8f7; padding: 0 5px;border-radius: 2px; color: #fff;">{{item.staffCategorylable}}</div></div>
                         </div>
                         <div>维修类别:<dict-tag :options="dict.type.weixiutype" :value="item.maintenanceCategory"/></div>
                         <p>
@@ -139,11 +151,33 @@
                           身份证号:{{item.idCard == null? '暂无数据' : item.idCard}}
                         </p>
                       </div>
+                      <div style="height: 150px;padding: 0 10px;" class="ingsek">
+                        <el-carousel :interval="4000"  arrow="hover" height="150px;width:100%;" indicator-position="none" >
+                            <el-carousel-item  v-for="(itemg,index) in item.imges" :key="index" v-if="item.imges.length !=0">
+                        										<div style="position: relative;" @click="imge(itemg)">
+                                              <!-- defaultSettings.urls+baseUrl +itemt.url -->
+                                              <!-- +baseUrl -->
+                        											<img :src="defaultSettings.urls  +itemg" alt="" style="width: 100%;height: 150px;" v-if="baseUrl == '/dev-api'">
+                                              <img :src="defaultSettings.urls +baseUrl +itemg" alt="" style="width: 100%;height: 150px;" v-else>
+                        											<!-- <p style="position: absolute;bottom: 0;left: 0;font-weight: 500; height: 24px;background-color: rgba(0,0,0,.5);color: #fff;font-size: 14px;width: 100%;padding-left: 10px;line-height: 24px;margin: 0;">{{itemt.title}}</p> -->
+                        										</div>
+                            </el-carousel-item>
+                            <el-carousel-item   v-if="item.imges.length ==0">
+                                   <div style="position: relative;" >
+                                              <!-- defaultSettings.urls+baseUrl +itemt.url -->
+                                   <img src="../../../assets/images/zwshuj.png" alt="" style="width: 100%;height: 150px;">
+                                             <!-- <p style="position: absolute;bottom: 0;left: 0;font-weight: 500; height: 24px;background-color: rgba(0,0,0,.5);color: #fff;font-size: 14px;width: 100%;padding-left: 10px;line-height: 24px;margin: 0;">{{itemt.title}}</p> -->
+                                   </div>
+                            </el-carousel-item>
+                          </el-carousel>
+                      </div>
+
                       <div class="bortt tongty" style="justify-content: space-between;cursor: pointer;">
-                        <p ><span  v-hasPermi="['wuYe:staffManage:edit']" @click="handleUpdate(item)">通过</span>  </p>
+                        <p v-if="item.examine == 1" v-hasPermi="['wuYe:staffManage:examine']"><span style="color: #28C529; cursor: pointer;"   @click="handleUpdate(item)">通过</span>  </p>
                         <!-- <span @click="handleUpdatef(item)">查看</span> -->
+                        <p  style="border-left: 1px solid #DADADAd;border-right: 1px solid #DADADAd ;cursor: pointer;" :class="item.examine == 1?'' :'nh'" @click="handleUpdatef(item)">查看</p>
                         <!-- <p v-hasPermi="['wuYe:staffManage:remove']" style="border-left: 1px solid #DADADA;color:red" @click="handleDelete(item)">删除</p> -->
-                        <p v-hasPermi="['wuYe:staffManage:remove']" style="border-left: 1px solid #DADADA;color:red" @click="handleUpdateb(item)">驳回</p>
+                        <p v-if="item.examine == 1" v-hasPermi="['wuYe:staffManage:examine']" style="color:red;cursor: pointer;" @click="handleUpdateb(item)">驳回</p>
                       </div>
                       <img v-if="item.isnum == true" src="../../../assets/images/icon_htgl_kp_gx.png" alt="" style="width: 35px;height: 35px;position: absolute;bottom: 0;right: 0;">
                     </div>
@@ -190,15 +224,15 @@
           </el-col>
           <el-col :span="12">
             <el-form-item label="员工类别" prop="staffCategory">
-                      <el-select v-model="form.staffCategory" placeholder="请选择员工类别">
-                        <el-option
-                          v-for="dict in dict.type.yaungong"
-                          :key="dict.value"
-                          :label="dict.label"
-                          :value="dict.value"
-                        ></el-option>
-                      </el-select>
-                    </el-form-item>
+                                  <el-select v-model="form.staffCategory" placeholder="请选择员工类别">
+                                    <el-option
+                                      v-for="dict in roleList"
+                                      :key="dict.roleKey"
+                                      :label="dict.roleName"
+                                      :value="dict.roleKey"
+                                    ></el-option>
+                                  </el-select>
+                                </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="维修分类" prop="maintenanceCategory">
@@ -247,15 +281,24 @@
         <el-button @click="cancel">取 消</el-button>
       </div>
     </el-dialog>
+    <el-dialog title="查看图片" :visible.sync="openg" width="440px" append-to-body>
+      <div>
+        <!-- +baseUrl -->
+        <img :src="defaultSettings.urls+ imgurw" alt="" style="width: 100%;" v-if="baseUrl == '/dev-api'">
+        <img :src="defaultSettings.urls+baseUrl+ imgurw" alt="" style="width: 100%;" v-else>
+      </div>
+      </el-dialog>
   </div>
 </template>
 
 <script>
-import { listStaffManage,listStaffManagesh, getStaffManage, delStaffManage, addStaffManage, updateStaffManage,examineStaff } from "@/api/wuguan/staffManage";
+import { listStaffManage,listStaffManagesh, getStaffManage, delStaffManage, addStaffManage, updateStaffManage,examineStaff,deleteStaffManage } from "@/api/wuguan/staffManage";
 import 'videojs-flash'
+const defaultSettings = require("@/settings.js");
+import {listNoPage,listRole} from "@/api/system/role";
 export default {
    name: "StaffManage",
-    dicts: ['yaungong', 'gender', 'technician_selection','weixiutype'],
+    dicts: ['yaungong', 'gender', 'technician_selection','weixiutype','renzhen_sh'],
   data() {
     return {
       // 遮罩层
@@ -266,8 +309,11 @@ export default {
       single: true,
       // 非多个禁用
       multiple: true,
+      openg:false,
       // 显示搜索条件
       showSearch: true,
+      baseUrl: process.env.VUE_APP_BASE_API,
+      defaultSettings:defaultSettings,
       // 总条数
       total: 0,
       // 员工管理表格数据
@@ -279,7 +325,7 @@ export default {
       // 查询参数
       queryParams: {
         pageNum: 1,
-               pageSize: 10,
+               pageSize: 8,
                staffName: null,
                gender: null,
                staffCategory: null,
@@ -291,7 +337,7 @@ export default {
                idCardBack: null,
                certificate: null,
                status: null,
-               examine:1
+               examine:'1'
       },
       // 表单参数
       form: {},
@@ -316,6 +362,10 @@ export default {
        player: null,
        isshoe:true,
        tableMaxHeight:'200',
+       imgurw:'',
+       roleListt:[],
+       roleList:[],
+       usename:''
     };
   },
 
@@ -330,11 +380,14 @@ export default {
     },
 
   created() {
-    this.getList();
+    this.getListtne()
+    this.usename = this.$store.state.user.name
+    console.log(this.baseUrl)
   window.onresize = () => {
   	      this.changeTableMaxHeight()
   	    }
   	    this.changeTableMaxHeight()
+        this.getList();
   },
   mounted() {
   	window.onresize = () => {
@@ -348,20 +401,55 @@ export default {
       }
     },
   methods: {
+    /** 查询角色列表 根据选择小区不带tenid*/
+    getListtne() {
+     let queryParams={  'pageNum': 1,
+               'pageSize': 18,}
+      listRole(this.addDateRange(queryParams)).then(response => {
+          this.roleListt = response.rows;
+                    this.roleListt.filter(rou=>{
+                      rou.dictValue=rou.roleKey
+                      rou.dictLabel=rou.roleName
+                      rou.value=rou.roleKey
+                      rou.label=rou.roleName
+                      rou.listClass = 'primary'
+                      rou.dictCode = rou.staffId
+                      rou.dictSort = 1
+                      rou.cssClass = null
+                      rou.isDefault = 'N'
+                    })
+
+            console.log( this.roleListt)
+        }
+      );
+    },
     /** 查询岗位列表 */
     getList() {
       this.loading = true;
-
       listStaffManage(this.queryParams).then(response => {
         this.staffManageList  = response.rows;
         this.staffManageList .filter(rou=>{
+          rou.imges = []
+          if(rou.idCardFront != null && rou.idCardFront != ''){
+            rou.imges.push(rou.idCardFront)
+          }
+          if(rou.idCardBack != null && rou.idCardBack != ''){
+            rou.imges.push(rou.idCardBack)
+          }
           rou.isnum = false
+          rou.staffCategorylable = this.selectDictLabel(this.roleListt, rou.staffCategory)
+          // console.log(this.selectDictLabel(this.roleListt, rou.staffCategory),1)
+
         })
         // this.getge(this.postList)
         this.total = response.total;
         this.loading = false;
       });
     },
+    imge(row){
+      this.openg = true
+      this.imgurw = row
+    },
     getInfo(idCard) {
             let sex = null;
             let birth = null;
@@ -472,7 +560,27 @@ export default {
       this.open = true;
       this.title = "添加员工管理";
     },
-    /** 修改按钮操作 */
+
+    /** 查看按钮操作 */
+    handleUpdatef(row) {
+     this.reset();
+           const staffId = row.staffId || this.ids
+           getStaffManage(staffId).then(response => {
+             this.form = response.data;
+             let sie={'tenantId':this.form.tenantId}
+             listNoPage(sie).then(response => {
+                 this.roleList = response.rows;
+                 this.roleList.filter(rou=>{
+                   rou.dictValue=rou.roleKey
+                   rou.dictLabel=rou.roleName
+                 })
+               })
+             this.open = true;
+             this.title = "查看信息";
+           });
+    },
+
+    /** 通过按钮操作 */
     handleUpdate(row) {
      // this.reset();
            // const staffId = row.staffId || this.ids
@@ -480,7 +588,9 @@ export default {
            examineStaff(row).then(response => {
              // this.form = response.data;
              // this.open = true;
-             this.title = "修改员工管理";
+             this.$modal.msgSuccess("操作成功");
+             this.getList();
+             // this.title = "修改员工管理";
            });
     },
     // 驳回
@@ -491,7 +601,9 @@ export default {
            examineStaff(row).then(response => {
              // this.form = response.data;
              // this.open = true;
-             this.title = "修改员工管理";
+             this.$modal.msgSuccess("操作成功");
+             this.getList();
+             // this.title = "修改员工管理";
            });
     },
     /** 提交按钮 */
@@ -516,13 +628,11 @@ export default {
     },
     /** 删除按钮操作 */
         handleDelete(row) {
-          const staffIds = row.staffId || this.ids;
-          this.$modal.confirm('是否确认删除员工管理编号为"' + staffIds + '"的数据项?').then(function() {
-            return delStaffManage(staffIds);
-          }).then(() => {
-            this.getList();
-            this.$modal.msgSuccess("删除成功");
-          }).catch(() => {});
+          let staffIds={'staffId':row.staffId,'userId':row.userId,'tenantId':row.tenantId}
+          deleteStaffManage(staffIds).then(response => {
+                  this.$modal.msgSuccess("删除成功");
+                  this.getList();
+                });
         },
     /** 导出按钮操作 */
     handleExport() {
@@ -560,6 +670,14 @@ export default {
 };
 </script>
 <style  lang="scss">
+  .ingsek{
+   .el-carousel__container{
+  	 height: 150px;
+   }
+   .el-carousel--horizontal{
+     width: 100%;
+   }
+  }
   .shefnze{
     .el-upload--picture-card{
       width: 80px;
@@ -696,6 +814,9 @@ export default {
       text-align: center;
     }
   }
+  .nh{
+    width: 100% !important;
+  }
   </style>
 
 

+ 822 - 0
ruoyi-ui/src/views/wuguan/weixiurenyuanshme/index.vue

@@ -0,0 +1,822 @@
+<template>
+  <div class="app-container">
+    <div style="background-color: #fff;padding: 20px;border-radius: 10px;">
+      <p style="margin: 0; font-weight: 800;font-size: 16px;color: #343434;display: flex;align-items: center;margin-bottom: 20px;">
+        <img src="../../../assets/images/icon_htgl_btzs.png" alt="" style="width: 16px;height: 20px;">
+       <span style="margin-left: 10px;">员工管理</span>
+      </p>
+      <div style="background: #F3F3F3;padding: 20px 15px; padding-bottom: 0;margin-bottom: 20px;">
+        <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="88px">
+          <el-row>
+            <el-col :span="24">
+              <el-col :span="8">
+                <el-form-item label="员工姓名" prop="staffName">
+                        <el-input
+                          v-model="queryParams.staffName"
+                          placeholder="请输入员工姓名"
+                          clearable
+                          @keyup.enter.native="handleQuery"
+                        />
+                      </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="维修分类" prop="maintenanceCategory">
+                        <el-select v-model="queryParams.maintenanceCategory" placeholder="请选择维修分类" clearable>
+                          <el-option
+                            v-for="dict in dict.type.weixiutype"
+                            :key="dict.value"
+                            :label="dict.label"
+                            :value="dict.value"
+                          />
+                        </el-select>
+                      </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                 <el-form-item label="手机号码" prop="phoneNumber">
+                        <el-input
+                          v-model="queryParams.phoneNumber"
+                          placeholder="请输入手机号码"
+                          clearable
+                          @keyup.enter.native="handleQuery"
+                        />
+                      </el-form-item>
+              </el-col>
+            </el-col>
+            <el-col :span="24">
+
+              <el-col :span="8">
+                <el-form-item label="审核状态" prop="examine">
+                        <el-select v-model="queryParams.examine" placeholder="请选择审核状态" clearable>
+                          <el-option
+                            v-for="dict in dict.type.renzhen_sh"
+                            :key="dict.value"
+                            :label="dict.label"
+                            :value="dict.value"
+                          />
+                        </el-select>
+                      </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item class="butt bnjle">
+                  <el-button size="mini" type="primary"   @click="handleQuery">搜索</el-button>
+                  <el-button size="mini"   @click="resetQuery">重置</el-button>
+                </el-form-item>
+              </el-col>
+            </el-col>
+          </el-row>
+
+        </el-form>
+      </div>
+
+
+      <div class="casr "  >
+              <el-row :gutter="10" class="mb8" >
+                <!-- <el-col :span="1.5">
+                  <div style="font-weight: bold;font-size: 14px;color: #343434; display: flex;align-items: center;">
+                    当夜全选
+                  </div>
+                </el-col> -->
+                <el-col :span="1.5">
+                  <el-button
+                    type="primary"
+                    plain
+                    size="mini"
+                    @click="handleAdd"
+                  >添加</el-button>
+                </el-col>
+                <!-- <el-col :span="1.5">
+                  <el-button
+                    type="success"
+                    plain
+                    size="mini"
+                    :disabled="single"
+                    @click="handleUpdate"
+                    v-hasPermi="['system:post:edit']"
+                  >修改</el-button>
+                </el-col>
+                <el-col :span="1.5">
+                  <el-button
+                    type="danger"
+                    plain
+                    size="mini"
+                    :disabled="multiple"
+                    @click="handleDelete"
+                    v-hasPermi="['system:post:remove']"
+                  >删除</el-button>
+                </el-col> -->
+                <el-col :span="1.5">
+                  <el-button
+                    type="warning"
+                    plain
+                    size="mini"
+                    @click="handleExport"
+                    v-hasPermi="['wuYe:staffManage:export']"
+                  >导出</el-button>
+                </el-col>
+                <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+              </el-row>
+              <div class="infinite-list" :style="dynamicStyle">
+                <el-row :gutter="10" v-if="staffManageList.length !=0" style="width: 100%;margin-left: 0;">
+                  <el-col :span="6" v-for="(item,index) in staffManageList" :key="index" >
+                    <div v-if="isshoe"  :class=" item.isnum ==true ? 'ingwe' :'' " style="position: relative; background-color: #fff;box-shadow: 0px 0px 10px 0px #CDCDCD;border-radius: 4px;margin-bottom: 10px;">
+                      <!-- @click="isac(item)" -->
+                      <div style="display: flex; align-items: center;padding: 15px 20px;">
+                        <img src="../../../assets/images/icon_htgl_rygl_tx_nv.png" alt="" style="width: 50px;height: 50px;border-radius: 50%;" v-if="item.avatarPhoto ==  null">
+                         <image-preview :src="item.avatarPhoto" :width="50" :height="50" v-if="item.avatarPhoto !=  null" style="border-radius: 50%;"/>
+                        <span style="font-weight: bold;font-size: 16px;color: #161616;margin-left: 15px;">{{item.staffName == null? '暂无数据' : item.staffName}}</span>
+                        <div style="width: 73px;height: 24px;position: absolute;right: 0;top: 15px;background-color:#28C529; font-size: 12px;color: #fff;line-height: 24px;text-align: center;border-bottom-left-radius: 5px;border-top-left-radius: 5px;" v-if="item.examine == '1'">
+                          <!-- <dict-tag :options="dict.type.renzhen_sh" :value="item.examine"/> -->
+                          待审核
+                        </div>
+                        <div style="width: 73px;height: 24px;position: absolute;right: 0;top: 15px;background-color:#28C529; font-size: 12px;color: #fff;line-height: 24px;text-align: center;border-bottom-left-radius: 5px;border-top-left-radius: 5px;" v-if="item.examine == '2'">
+                          <!-- <dict-tag :options="dict.type.renzhen_sh" :value="item.examine"/> -->
+                          审核通过
+                        </div>
+                        <div style="width: 73px;height: 24px;position: absolute;right: 0;top: 15px;background-color:#28C529; font-size: 12px;color: #fff;line-height: 24px;text-align: center;border-bottom-left-radius: 5px;border-top-left-radius: 5px;" v-if="item.examine == '3'">
+                          <!-- <dict-tag :options="dict.type.renzhen_sh" :value="item.examine"/> -->
+                          审核驳回
+                        </div>
+                        <!-- <img src="../../../assets/images/pic_htgl_wxrygl_yhlx_zp.png" alt="" style="width: 73px;height: 24px;position: absolute;right: 0;top: 15px;"> -->
+                      </div>
+                      <div class="goe renyuangs" style="padding: 0 20px;">
+                        <!-- <div style="margin-bottom: 10px; display: flex;align-items: center;">
+                          人员类别:<dict-tag :options="dict.type.yaungong" :value="item.staffCategory"/>
+                        </div> -->
+                        <div style="line-height: 28px;">维修类别:<dict-tag :options="dict.type.weixiutype" :value="item.maintenanceCategory"/></div>
+                        <p>
+                          手机号码:{{item.phoneNumber == null? '暂无数据' : item.phoneNumber}}
+                        </p>
+                        <p>
+                          身份证号:{{item.idCard == null? '暂无数据' : item.idCard}}
+                        </p>
+                      </div>
+                      <div style="height: 150px;padding: 0 10px;" class="ingsek">
+                        <el-carousel :interval="4000"  arrow="hover" height="150px;width:100%;" indicator-position="none" >
+                            <el-carousel-item  v-for="(itemg,index) in item.imges" :key="index" v-if="item.imges.length !=0">
+                        										<div style="position: relative;" @click="imge(itemg)">
+                                              <!-- defaultSettings.urls+baseUrl +itemt.url -->
+                                              <!-- +baseUrl -->
+                        											<img :src="defaultSettings.urls +itemg" alt="" style="width: 100%;height: 150px;">
+                        											<!-- <p style="position: absolute;bottom: 0;left: 0;font-weight: 500; height: 24px;background-color: rgba(0,0,0,.5);color: #fff;font-size: 14px;width: 100%;padding-left: 10px;line-height: 24px;margin: 0;">{{itemt.title}}</p> -->
+                        										</div>
+                            </el-carousel-item>
+                            <el-carousel-item   v-if="item.imges.length ==0">
+                                   <div style="position: relative;" >
+                                              <!-- defaultSettings.urls+baseUrl +itemt.url -->
+                                   <img src="../../../assets/images/zwshuj.png" alt="" style="width: 100%;height: 150px;">
+                                             <!-- <p style="position: absolute;bottom: 0;left: 0;font-weight: 500; height: 24px;background-color: rgba(0,0,0,.5);color: #fff;font-size: 14px;width: 100%;padding-left: 10px;line-height: 24px;margin: 0;">{{itemt.title}}</p> -->
+                                   </div>
+                            </el-carousel-item>
+                          </el-carousel>
+                      </div>
+                      <div class="bortt tongty" style="justify-content: space-between;cursor: pointer;">
+                        <p v-hasPermi="['wuYe:staffManage:edit']"><span   @click="handleUpdate(item)" v-if="item.examine !=2">修改</span>  </p>
+                        <p  style="border-left: 1px solid #DADADAd;border-left: 1px solid #DADADAd ;" @click="handleUpdatef(item)" :class="item.examine !=2?'':'wide'">查看</p>
+                        <!-- <span @click="handleUpdatef(item)">查看</span> -->
+                        <!-- <p v-hasPermi="['wuYe:staffManage:remove']" style="border-left: 1px solid #DADADA;color:red" @click="handleDelete(item)">删除</p> -->
+                      </div>
+                      <img v-if="item.isnum == true" src="../../../assets/images/icon_htgl_kp_gx.png" alt="" style="width: 35px;height: 35px;position: absolute;bottom: 0;right: 0;">
+                    </div>
+                  </el-col>
+                </el-row>
+                <div style="margin-top: 20px;display: flex;justify-content: center;align-items: center;" v-if="staffManageList.length ==0">
+                   <img   src="../../../assets/images/zwshjbig.png" alt="" style="">
+                </div>
+              </div>
+      </div>
+
+
+      <pagination
+        v-show="total>0"
+        :total="total"
+        :page.sync="queryParams.pageNum"
+        :limit.sync="queryParams.pageSize"
+        @pagination="getList"
+      />
+    </div>
+
+    <!-- 添加或修改岗位对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="640px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-row>
+          <el-col :span="24" class="ngeshimg" >
+            <el-form-item label="身份证号" prop="idCard" style="position: relative;">
+                  <el-input v-model="form.idCard" placeholder="请输入身份证号码" />
+                  <!-- <image-upload :limit="1" v-model="form.idCardBack"/> -->
+                  <image-uploadshib @uploadedSuccessfully="uploadedSuccessfully" :typeg = "1" :limit="1" v-model="form.idCardBack"/>
+            </el-form-item>
+          </el-col>
+          <el-col :span="24">
+            <el-form-item label="选择小区" prop="tenantId">
+               <el-select
+               style="width:100%;"
+               			  v-model="form.tenantId"
+               			  clearable
+               			  filterable
+               			  reserve-keyword
+               			  placeholder="选择物业"
+               			>
+               			  <el-option v-for="item in tenantList" :key="item.tenantId" :label="item.companyName" :value="item.tenantId" @click.native="chahue(item)"> </el-option>
+               			  <template ><svg-icon icon-class="company" class="el-input__icon input-icon" /></template>
+               			</el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="员工性别" prop="gender">
+                      <el-select v-model="form.gender" placeholder="请选择员工性别">
+                        <el-option
+                          v-for="dict in dict.type.gender"
+                          :key="dict.value"
+                          :label="dict.label"
+                          :value="dict.value"
+                        ></el-option>
+                      </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+           <el-form-item label="员工类别" prop="staffCategory">
+                                 <el-select v-model="form.staffCategory" placeholder="请选择员工类别">
+                                   <el-option
+                                     v-for="dict in roleList"
+                                     :key="dict.roleKey"
+                                     :label="dict.roleName"
+                                     :value="dict.roleKey"
+                                   ></el-option>
+                                 </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="维修分类" prop="maintenanceCategory">
+                      <el-select clearable v-model="form.maintenanceCategory" placeholder="请选择维修分类">
+                        <el-option
+                          v-for="dict in dict.type.weixiutype"
+                          :key="dict.value"
+                          :label="dict.label"
+                          :value="dict.value"
+                        ></el-option>
+                      </el-select>
+                    </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="手机号码" prop="phoneNumber">
+                <el-input v-model="form.phoneNumber" placeholder="请输入手机号码" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="15">
+            <el-form-item label="员工姓名" prop="staffName">
+                      <el-input v-model="form.staffName" placeholder="请输入员工姓名" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="12" class="shefnze" >
+              <el-form-item label="头像" prop="avatarPhoto">
+            <image-upload :limit="1" v-model="form.avatarPhoto"/>
+          </el-form-item>
+            </el-col>
+          <el-col :span="12" class="shefnze">
+             <el-form-item label="身份证国徽面" prop="idCardFront">
+               <image-upload :limit="1" v-model="form.idCardFront"/>
+             </el-form-item>
+          </el-col>
+
+          <el-col :span="24" >
+              <el-form-item label="相关证件" prop="certificate">
+                        <file-upload v-model="form.certificate"/>
+             </el-form-item>
+          </el-col>
+        </el-row>
+
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm" v-if="title !='查看信息'">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+    <el-dialog title="查看图片" :visible.sync="openg" width="440px" append-to-body>
+      <div>
+        <!-- +baseUrl -->
+        <img :src="defaultSettings.urls+ imgurw" alt="" style="width: 100%;">
+      </div>
+      </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listStaffManage, listAuthentication,getStaffManage, delStaffManage, addStaffManage, updateStaffManage,authentication,deleteStaffManage } from "@/api/wuguan/staffManage";
+import 'videojs-flash'
+import { getTenantList} from "@/api/login";
+import {listNoPage} from "@/api/system/role";
+const defaultSettings = require("@/settings.js");
+export default {
+   name: "StaffManage",
+    dicts: ['yaungong', 'gender', 'technician_selection','weixiutype','renzhen_sh'],
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      openg:false,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      baseUrl: process.env.VUE_APP_BASE_API,
+      defaultSettings:defaultSettings,
+      // 员工管理表格数据
+      staffManageList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      tenantList:[],
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+               pageSize: 8,
+               staffName: null,
+               gender: null,
+               staffCategory: null,
+               maintenanceCategory: null,
+               phoneNumber: null,
+               avatarPhoto: null,
+               idCard: null,
+               idCardFront: null,
+               idCardBack: null,
+               certificate: null,
+               status: null,
+               examine:null,
+               userId:this.$store.getters.userId
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        staffName: [
+                  { required: true, message: "员工姓名不能为空", trigger: "blur" }
+                ],
+                staffCategory: [
+                  { required: true, message: "员工类别,1:保安 2:维修人员 3:物业管理不能为空", trigger: "change" }
+                ],
+
+                phoneNumber: [
+                  { required: true, message: "手机号码不能为空", trigger: "blur" }
+                ],
+      },
+      activeName:'first',
+      videoState: false, // 视频播放状态
+      poster:true,
+      controls:true,
+      videoData:{},
+       player: null,
+       isshoe:true,
+       tableMaxHeight:'200',
+       imgurw:'',
+       roleList:[]
+    };
+  },
+
+  computed: {
+    dynamicStyle() {
+      return {
+        overflow:'auto',
+        height: this.tableMaxHeight+ 'px',
+        paddingTop:'10px'
+      }
+    }
+    },
+
+  created() {
+    this.getList();
+    this.getnhgwzuhue()
+    this.getrou(this.$store.getters.tenantId)
+  window.onresize = () => {
+  	      this.changeTableMaxHeight()
+  	    }
+  	    this.changeTableMaxHeight()
+  },
+  mounted() {
+  	window.onresize = () => {
+  	          this.changeTableMaxHeight()
+  	        }
+  	        this.changeTableMaxHeight()
+  },
+  beforeDestroy() {
+      if (this.player) {
+        this.player.dispose()
+      }
+    },
+  methods: {
+
+     // 小区切换
+        chahue(row){
+          this.getrou(row.tenantId)
+        },
+        // 查询角色信息
+        getrou(row){
+                  let pade={'tenantId':row}
+                  listNoPage(pade).then(response => {
+                      this.roleList = response.rows;
+                      this.roleList.filter(rou=>{
+                        rou.dictValue=rou.roleKey
+                        rou.dictLabel=rou.roleName
+                        rou.value=rou.roleKey
+                        rou.label=rou.roleName
+                      })
+                      if (this.form.staffId != null) {
+                      }else{
+                        if(response.rows.length !=0){
+                          this.form.staffCategory = response.rows[0].roleKey
+                        }
+                      }
+                    }
+                  );
+                },
+    getnhgwzuhue(){
+      // this.loading = true;
+      getTenantList().then(response => {
+    	  // this.tenantEnabled = response.data.tenantEnabled
+        this.tenantList = response.data.voList;
+        // this.loading = false;
+      });
+    },
+    /** 查询岗位列表 */
+    getList() {
+          this.loading = true;
+          listAuthentication(this.queryParams).then(response => {
+            this.staffManageList  = response.rows;
+            this.staffManageList .filter(rou=>{
+              rou.imges = []
+              if(rou.idCardFront != null && rou.idCardFront != ''){
+                rou.imges.push(rou.idCardFront)
+              }
+              if(rou.idCardBack != null && rou.idCardBack != ''){
+                rou.imges.push(rou.idCardBack)
+              }
+              rou.isnum = false
+            })
+            // this.getge(this.postList)
+            this.total = response.total;
+            this.loading = false;
+          });
+        },
+        imge(row){
+          this.openg = true
+          this.imgurw = row
+        },
+    getInfo(idCard) {
+            let sex = null;
+            let birth = null;
+            let myDate = new Date();
+            let month = myDate.getMonth() + 1;
+            let day = myDate.getDate();
+            let age = 0;
+
+            if (idCard.length === 18) {
+              age = myDate.getFullYear() - idCard.substring(6, 10) - 1;
+              sex = idCard.substring(16, 17);
+              birth = idCard.substring(6, 10) + "-" + idCard.substring(10, 12) + "-" + idCard.substring(12, 14);
+              if (idCard.substring(10, 12) < month || idCard.substring(10, 12) === month && idCard.substring(12, 14) <= day)
+                age++;
+
+            }
+            if (idCard.length === 15) {
+              age = myDate.getFullYear() - idCard.substring(6, 8) - 1901;
+              sex = idCard.substring(13, 14);
+              birth = "19" + idCard.substring(6, 8) + "-" + idCard.substring(8, 10) + "-" + idCard.substring(10, 12);
+              if (idCard.substring(8, 10) < month || idCard.substring(8, 10) === month && idCard.substring(10, 12) <= day)
+                age++;
+            }
+
+            if (sex % 2 === 0)
+              sex = 2; // 性别代码 1代表男,0代表女,暂时不涉及其他类型性别
+            else
+              sex = 1;
+            return {
+              age,
+              sex,
+              birth
+            }
+          },
+     getBirthday(idCard) {
+             let birthday = "";
+             if (idCard != null && idCard !== "") {
+               if (idCard.length === 15) {
+                 birthday = "19" + idCard.substr(6, 6);
+               } else if (idCard.length === 18) {
+                 birthday = idCard.substr(6, 8);
+               }
+               birthday = birthday.replace(/(.{4})(.{2})/, "$1-$2-");
+             }
+             return birthday;
+           },
+    uploadedSuccessfully(row){
+      // console.log('上传重构员工',row)
+      if(row.length !=0){
+        row.filter(ru=>{
+          this.form.staffName = ru.realName
+          this.form.idCard = ru.idCard
+          let sge = this.getInfo( this.form.idCard)
+          // this.form.yearsOld = sge.age
+          this.form.gender = sge.sex + ''
+          // this.form.residentBirthday = sge.birth
+        })
+
+      }
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+              staffId: null,
+              staffName: null,
+              gender: null,
+              staffCategory: null,
+              maintenanceCategory: null,
+              phoneNumber: null,
+              avatarPhoto: null,
+              idCard: null,
+              idCardFront: null,
+              idCardBack: null,
+              certificate: null,
+              status: null,
+              createBy: null,
+              createTime: null,
+              updateBy: null,
+              updateTime: null,
+              remark: null,
+              tenantId:this.$store.getters.tenantId,
+              userId:this.$store.getters.userId,
+              userType:' pc_user',
+              examine:1
+            };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.staffId)
+      this.single = selection.length!=1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.getrou(this.$store.getters.tenantId)
+      this.open = true;
+      this.title = "添加认证信息";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+     this.reset();
+           const staffId = row.staffId || this.ids
+           getStaffManage(staffId).then(response => {
+             this.form = response.data;
+             this.getrou(this.form.tenantId)
+             this.open = true;
+             this.title = "修改信息";
+           });
+    },
+    handleUpdatef(row){
+      this.reset();
+            const staffId = row.staffId || this.ids
+            getStaffManage(staffId).then(response => {
+              this.form = response.data;
+              this.getrou(this.form.tenantId)
+              this.open = true;
+              this.title = "查看信息";
+            });
+    },
+    /** 提交按钮 */
+    submitForm: function() {
+      this.$refs["form"].validate(valid => {
+       if (valid) {
+                 if (this.form.staffId != null) {
+                   this.form.isFilter = false
+                   updateStaffManage(this.form).then(response => {
+                     this.$modal.msgSuccess("修改成功");
+                     this.open = false;
+                     this.getList();
+                   });
+                 } else {
+                   addStaffManage(this.form).then(response => {
+                     this.$modal.msgSuccess("新增成功");
+                     this.open = false;
+                     this.getList();
+                   });
+                 }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+        handleDelete(row) {
+          // const staffIds = row.staffId || this.ids;
+          let staffIds={'staffId':row.staffId,'userId':row.userId,'tenantId':row.tenantId}
+                    deleteStaffManage(staffIds).then(response => {
+                            this.$modal.msgSuccess("删除成功");
+                            this.getList();
+                          });
+        },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('wuYe/staffManage/export', {
+        ...this.queryParams
+      }, `staffManage_${new Date().getTime()}.xlsx`)
+    },
+
+      handleClick(){
+
+      },
+    isac(val){
+      console.log(5,val)
+      val.isnum = !val.isnum
+      this.isshoe = false
+      this.isshoe = true
+    },
+    // 获取屏幕高度
+    showFilterForm () {
+          this.filterActive = !this.filterActive
+          this.changeTableMaxHeight()
+        },
+
+        changeTableMaxHeight () {
+          let height = document.body.offsetHeight // 网页可视区域高度
+          // if (this.filterActive) {
+          //   this.tableMaxHeight = height - 320
+          // } else {
+            this.tableMaxHeight = height - 150
+          // }
+          console.log(height)
+        }
+
+  }
+};
+</script>
+<style  lang="scss">
+  .ingsek{
+   .el-carousel__container{
+  	 height: 150px;
+   }
+   .el-carousel--horizontal{
+     width: 100%;
+   }
+  }
+  .shefnze{
+    .el-upload--picture-card{
+      width: 80px;
+      height: 80px;
+      line-height: 80px;
+    }
+    .el-upload-list--picture-card .el-upload-list__item{
+      width: 80px;
+      height: 80px;
+    }
+    .el-upload__tip{
+      overflow: hidden;
+        text-overflow: ellipsis;
+        white-space: nowrap;
+    }
+  }
+  .ngeshimg{
+    .el-upload--picture-card{
+      width: 36px;
+      height: 36px;
+      line-height: 36px;
+      position: absolute;
+      top:0;
+      right: 0;
+    }
+    .component-upload-image{
+      position: absolute;
+      top:0;
+      right: 0;
+    }
+    .el-upload--picture-card i{
+      font-size: 20px;
+    }
+    .el-upload-list--picture-card .el-upload-list__item{
+      width: 58px;
+      height: 36px;
+      position: absolute;
+      top:0;
+      right: -10px;
+    }
+  }
+  .unimg{
+    .el-upload--picture-card{
+      width:102px;
+      height: 102px;
+      line-height: 102px;
+    }
+    .el-upload-list--picture-card .el-upload-list__item{
+      width:102px;
+      height: 102px;
+      line-height: 102px;
+    }
+  }
+
+  .bnjle{
+    margin-left: 20px;
+  }
+  .butt{
+    .el-button--small{
+      padding: 9px 23px !important;
+      font-size: 14px;
+    }
+  }
+  .casr{
+    .el-tabs__item.is-active{
+      color: #196CFF;
+    }
+    .el-tabs--card > .el-tabs__header .el-tabs__item{
+      padding: 0  30px !important;
+    }
+  }
+  .el-table .el-table__header-wrapper th{
+    background-color:#F5F6F8;
+    color:#343434;
+  }
+  .el-table{
+    color:#343434;
+  }
+</style>
+<style scoped lang="scss">
+
+  .goe{
+    p{
+      margin: 0;
+      font-weight: 800;
+      font-size: 16px;
+      color: #161616;
+      margin-top: 10px;
+      margin-bottom: 3px;
+      padding: 0 10px;
+      overflow: hidden;
+      text-overflow: ellipsis;
+      display:-webkit-box; //作为弹性伸缩盒子模型显示。
+      -webkit-box-orient:vertical; //设置伸缩盒子的子元素排列方式--从上到下垂直排列
+      -webkit-line-clamp:1; //显示的行
+    }
+    p:nth-child(2){
+
+    }
+  }
+  .ingwe{
+    border: 2px solid #196CFF;
+  }
+  .renyuangs{
+    p{
+      font-weight: 500;
+      font-size: 14px;
+      color: #161616;
+      padding: 0;
+    }
+    div{
+      font-weight: 500;
+      font-size: 14px;
+      color: #161616;
+      height: 28px;
+      // margin-bottom: 20px;
+      display: flex;
+    }
+  }
+  .tongty{
+    display: flex;
+    align-items: center;
+  }
+  .bortt{
+    border-top: 1px solid #DADADA;
+    margin-top: 15px;
+
+    p{
+      margin: 0;
+      font-weight: bold;
+      font-size: 14px;
+      color: #5F8BF4;
+      width:50%;
+      padding: 10px;
+      text-align: center;
+    }
+  }
+  .wide{
+    width:100% !important;
+  }
+  </style>
+
+

+ 1 - 1
ruoyi-ui/src/views/wuguan/wuyefeigl/index.vue

@@ -331,7 +331,7 @@ export default {
       // 查询参数
       queryParams: {
         pageNum: 1,
-        pageSize: 10,
+        pageSize: 8,
         postCode: undefined,
         postName: undefined,
         status: undefined

+ 5 - 6
ruoyi-ui/src/views/wuguan/wuyefeishezhi/index.vue

@@ -89,6 +89,7 @@
             size="mini"
             type="text"
             @click="handleUpdate(scope.row)"
+            style="color: #28C529;"
             v-hasPermi="['wuYe:fee:settings:edit']"
           >修改</el-button>
           <el-button
@@ -266,12 +267,10 @@ export default {
     /** 删除按钮操作 */
     handleDelete(row) {
       const settingsIds = row.settingsId || this.ids;
-      this.$modal.confirm('是否确认删除物业费设置编号为"' + settingsIds + '"的数据项?').then(function() {
-        return delSettings(settingsIds);
-      }).then(() => {
-        this.getList();
-        this.$modal.msgSuccess("删除成功");
-      }).catch(() => {});
+      delSettings(settingsIds).then(response => {
+              this.$modal.msgSuccess("删除成功");
+              this.getList();
+            });
     },
     /** 导出按钮操作 */
     handleExport() {

+ 5 - 7
ruoyi-ui/src/views/wuguan/xungenggl/index.vue

@@ -189,7 +189,7 @@ export default {
       // 查询参数
       queryParams: {
          pageNum: 1,
-                pageSize: 10,
+                pageSize: 8,
                 dateTimeNum: null,
                 checkType: null,
                 checkTime: null,
@@ -335,12 +335,10 @@ export default {
     /** 删除按钮操作 */
         handleDelete(row) {
               const checkPointManageIds = row.checkPointManageId || this.ids;
-              this.$modal.confirm('是否确认删除巡更点的数据项?').then(function() {
-                return delCheckPointManage(checkPointManageIds);
-              }).then(() => {
-                this.getList();
-                this.$modal.msgSuccess("删除成功");
-              }).catch(() => {});
+              delCheckPointManage(checkPointManageIds).then(response => {
+                      this.$modal.msgSuccess("删除成功");
+                      this.getList();
+                    });
             },
     /** 导出按钮操作 */
     handleExport() {

+ 5 - 7
ruoyi-ui/src/views/wuguan/xungengxinx/index.vue

@@ -340,7 +340,7 @@ export default {
       // 查询参数
       queryParams: {
         pageNum: 1,
-        pageSize: 10,
+        pageSize: 8,
         checkPointManageId: null,
         dateTimeNum: null,
         checkType: null,
@@ -525,12 +525,10 @@ export default {
     /** 删除按钮操作 */
         handleDelete(row) {
           const checkPointRecordIds = row.checkPointRecordId || this.ids;
-          this.$modal.confirm('是否确认删除巡检点记录编号为"' + checkPointRecordIds + '"的数据项?').then(function() {
-            return delCheckPointRecord(checkPointRecordIds);
-          }).then(() => {
-            this.getList();
-            this.$modal.msgSuccess("删除成功");
-          }).catch(() => {});
+          delCheckPointRecord(checkPointRecordIds).then(response => {
+                  this.$modal.msgSuccess("删除成功");
+                  this.getList();
+                });
         },
     /** 导出按钮操作 */
     handleExport() {

+ 1 - 1
ruoyi-ui/src/views/wuguan/xungengxq/index.vue

@@ -307,7 +307,7 @@ export default {
       // 查询参数
       queryParams: {
         pageNum: 1,
-        pageSize: 10,
+        pageSize: 8,
         schoolName: null,
         oneStartTime: null,
         oneEndTime: null,

+ 5 - 7
ruoyi-ui/src/views/wuguan/yezhuchel/index.vue

@@ -245,7 +245,7 @@ export default {
       // 查询参数
       queryParams: {
             pageNum: 1,
-                pageSize: 10,
+                pageSize: 8,
                 houseId: null,
                 detailedAddress: null,
                 userId: null,
@@ -435,12 +435,10 @@ export default {
    /** 删除按钮操作 */
        handleDelete(row) {
          const carIds = row.carId || this.ids;
-         this.$modal.confirm('是否确认删除业主车辆数据项?').then(function() {
-           return delCar(carIds);
-         }).then(() => {
-           this.getList();
-           this.$modal.msgSuccess("删除成功");
-         }).catch(() => {});
+         delCar(carIds).then(response => {
+                 this.$modal.msgSuccess("删除成功");
+                 this.getList();
+               });
        },
     /** 导出按钮操作 */
     handleExport() {

+ 5 - 7
ruoyi-ui/src/views/wuguan/yuangongpx/index.vue

@@ -470,7 +470,7 @@ export default {
       // 查询参数
       queryParams: {
          pageNum: 1,
-          pageSize: 10,
+          pageSize: 8,
           manualTitle: null,
           manualType: '1',
           manualContent: null,
@@ -750,12 +750,10 @@ export default {
     /** 删除按钮操作 */
      handleDelete(row) {
           const manualIds = row.manualId || this.ids;
-          this.$modal.confirm('是否确认删除员工培训手册编号为"' + manualIds + '"的数据项?').then(function() {
-            return delManual(manualIds);
-          }).then(() => {
-            this.getList();
-            this.$modal.msgSuccess("删除成功");
-          }).catch(() => {});
+          delManual(manualIds).then(response => {
+                  this.$modal.msgSuccess("删除成功");
+                  this.getList();
+                });
         },
     /** 导出按钮操作 */
     handleExport() {