wangmengwei 1 сар өмнө
parent
commit
f5337d6f37
38 өөрчлөгдсөн 1753 нэмэгдсэн , 412 устгасан
  1. 3 2
      ruoyi-ui/src/api/login.js
  2. 1 1
      ruoyi-ui/src/api/wuguan/houseInfo.js
  3. 3 1
      ruoyi-ui/src/components/Comment/Avatar.vue
  4. 4 2
      ruoyi-ui/src/components/Editor/index.vue
  5. 1 1
      ruoyi-ui/src/components/FileUpload/index.vue
  6. 18 3
      ruoyi-ui/src/layout/components/Navbar.vue
  7. 1 0
      ruoyi-ui/src/store/getters.js
  8. 8 1
      ruoyi-ui/src/store/modules/user.js
  9. 67 35
      ruoyi-ui/src/views/index.vue
  10. 5 0
      ruoyi-ui/src/views/login.vue
  11. 22 21
      ruoyi-ui/src/views/registerxmerenz.vue
  12. 25 4
      ruoyi-ui/src/views/system/app/index.vue
  13. 1 1
      ruoyi-ui/src/views/system/tenant/index.vue
  14. 1 1
      ruoyi-ui/src/views/system/tenantPackage/index.vue
  15. 33 1
      ruoyi-ui/src/views/system/user/profile/userAvatar.vue
  16. 20 11
      ruoyi-ui/src/views/wuguan/assetType/index.vue
  17. 44 25
      ruoyi-ui/src/views/wuguan/baoxiuguanli/index.vue
  18. 952 0
      ruoyi-ui/src/views/wuguan/baoxiuguanlime/index.vue
  19. 3 0
      ruoyi-ui/src/views/wuguan/blackManage/index.vue
  20. 1 1
      ruoyi-ui/src/views/wuguan/cheliangguank/index.vue
  21. 47 18
      ruoyi-ui/src/views/wuguan/fagnwuguanli/index.vue
  22. 1 1
      ruoyi-ui/src/views/wuguan/news/index.vue
  23. 11 8
      ruoyi-ui/src/views/wuguan/newxq/index.vue
  24. 8 6
      ruoyi-ui/src/views/wuguan/partyNewxq/index.vue
  25. 1 0
      ruoyi-ui/src/views/wuguan/pinglunshenhe/index.vue
  26. 25 18
      ruoyi-ui/src/views/wuguan/renyuan/index.vue
  27. 7 4
      ruoyi-ui/src/views/wuguan/renyuansh/index.vue
  28. 117 65
      ruoyi-ui/src/views/wuguan/reservRecord/index.vue
  29. 1 1
      ruoyi-ui/src/views/wuguan/suggestion/index.vue
  30. 87 48
      ruoyi-ui/src/views/wuguan/visitorManage/index.vue
  31. 41 24
      ruoyi-ui/src/views/wuguan/weitingchel/index.vue
  32. 66 53
      ruoyi-ui/src/views/wuguan/weixiurenyuan/index.vue
  33. 17 19
      ruoyi-ui/src/views/wuguan/weixiurenyuansh/index.vue
  34. 24 23
      ruoyi-ui/src/views/wuguan/weixiurenyuanshme/index.vue
  35. 21 4
      ruoyi-ui/src/views/wuguan/wuyefeishezhi/index.vue
  36. 7 2
      ruoyi-ui/src/views/wuguan/xungengxinx/index.vue
  37. 1 1
      ruoyi-ui/src/views/wuguan/yezhuchel/index.vue
  38. 58 6
      ruoyi-ui/src/views/wuguan/yuangongpx/index.vue

+ 3 - 2
ruoyi-ui/src/api/login.js

@@ -8,7 +8,7 @@ const clientId = process.env.VUE_APP_CLIENT_ID
  * @param data {LoginData}
  * @returns
  */
-export function login(username, password, code, uuid,tenantId,grantType,phonenumber,smsCode) {
+export function login(username, password, code, uuid,tenantId,grantType,clientKey,phonenumber,smsCode) {
 	const data = {
 	  username,
 	  password,
@@ -17,7 +17,8 @@ export function login(username, password, code, uuid,tenantId,grantType,phonenum
 	  tenantId,
     grantType,
     phonenumber,
-    smsCode
+    smsCode,
+    clientKey
 	}
   const params = {
     ...data,

+ 1 - 1
ruoyi-ui/src/api/wuguan/houseInfo.js

@@ -3,7 +3,7 @@ import request from '@/utils/request'
 // 查询房屋信息列表
 export function listHouseInfo(query) {
   return request({
-    url: '/wuYe/houseInfo/list',
+    url: '/wuYe/houseInfo/listManage',
     method: 'get',
     params: query
   })

+ 3 - 1
ruoyi-ui/src/components/Comment/Avatar.vue

@@ -1,6 +1,8 @@
 <template>
 	<div class="user">
-		<div class="user-img" v-if="jsegs"><img :src="avatar? baseUrl + avatar:require('./img/icon/avatar.jpg')"/></div>
+		<div class="user-img" v-if="jsegs">
+      <!-- <img :src="avatar? baseUrl + avatar:require('./img/icon/avatar.jpg')"/></div> -->
+     <image-preview :src="avatar" :width="45" :height="45" style="border-radius: 50%;"  /></div>
     <div class="user-img" v-if="!jsegs"><img :src="avatar?avatar:require('./img/icon/avatar.jpg')"/></div>
 	</div>
 </template>

+ 4 - 2
ruoyi-ui/src/components/Editor/index.vue

@@ -62,7 +62,8 @@ export default {
     return {
       uploadUrl: process.env.VUE_APP_BASE_API + "/common/upload", // 上传的图片服务器地址
       headers: {
-        Authorization: "Bearer " + getToken()
+        Authorization: "Bearer " + getToken(),
+        clientid:'e5cd7e4891bf95d1d19206ce24a7b32e'
       },
       Quill: null,
       currentValue: "",
@@ -169,6 +170,7 @@ export default {
       return true;
     },
     handleUploadSuccess(res, file) {
+      console.log(res,4)
       // 获取富文本组件实例
       let quill = this.Quill;
       // 如果上传成功
@@ -176,7 +178,7 @@ export default {
         // 获取光标所在位置
         let length = quill.getSelection().index;
         // 插入图片  res.url为服务器返回的图片地址
-        quill.insertEmbed(length, "image", process.env.VUE_APP_BASE_API + res.fileName);
+        quill.insertEmbed(length, "image", process.env.VUE_APP_BASE_API + res.data.fileName);
         // 调整光标到最后
         quill.setSelection(length + 1);
       } else {

+ 1 - 1
ruoyi-ui/src/components/FileUpload/index.vue

@@ -60,7 +60,7 @@ export default {
     // 文件类型, 例如['png', 'jpg', 'jpeg']
     fileType: {
       type: Array,
-      default: () => ["doc", "xls", "ppt", "txt", "pdf","wgt"],
+      default: () => ["doc", "xls", "ppt", "txt", "pdf","wgt","apk"],
     },
     // 是否显示提示
     isShowTip: {

+ 18 - 3
ruoyi-ui/src/layout/components/Navbar.vue

@@ -174,10 +174,17 @@ export default {
   	console.log(this.$store.state.user)
     this.usename = this.$store.state.user.name
     // this.avatar = this.$store.state.user.avatar
-    if(this.$store.getters.authenticationUser !='Y'){
+    if(this.$store.getters.authenticationUser =='4' || this.$store.getters.authenticationUser =='3'){
       if(this.usename =='admin'){
+        console.log(5)
         this.getnhgw()
       }else{
+        if(sessionStorage.getItem('companyName') != null ){
+          if(sessionStorage.getItem('companyName') != undefined ){
+            this.companyName = sessionStorage.getItem('companyName')
+          }
+        }
+        console.log(3)
         this.getnhgwon()
       }
     }
@@ -226,6 +233,7 @@ export default {
 
     dynamicTenantEventg(){
     	if (this.companyName != null && this.companyName !== '') {
+        sessionStorage.setItem('companyName', this.companyName)
         let ngpw={'tenantId':this.companyName,'clientId':'e5cd7e4891bf95d1d19206ce24a7b32e','grantType':'password'}
     	  // dynamicTenantgw ngpw
         dynamicTenantgw(ngpw).then(response => {
@@ -234,9 +242,14 @@ export default {
            let ngse={'userName': this.usename}
            getInfo().then(response => {
              // this.loading = false;
-             location.reload(true)
-             this.$tab.closeAllPage();
              this.$router.push('/');
+             this.$tab.closeAllPage();
+             setTimeout(() => {
+               location.reload(true)
+                             }, 1000)
+             //
+             // location.reload(true)
+
              this.companyName = response.data.user.tenantId
            });
     	  	// this.$tab.closeAllPage();
@@ -292,6 +305,7 @@ export default {
         cancelButtonText: '取消',
         type: 'warning'
       }).then(() => {
+         sessionStorage.removeItem('companyName')
         this.$store.dispatch('LogOut').then(() => {
           location.href = '/index';
         })
@@ -303,6 +317,7 @@ export default {
         cancelButtonText: '取消',
         type: 'warning'
       }).then(() => {
+        sessionStorage.removeItem('companyName')
         this.$store.dispatch('LogOut').then(() => {
           location.href = '/index';
         })

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

@@ -7,6 +7,7 @@ const getters = {
   cachedViews: state => state.tagsView.cachedViews,
   token: state => state.user.token,
   avatar: state => state.user.avatar,
+  avatars: state => state.user.avatars,
   name: state => state.user.name,
   introduction: state => state.user.introduction,
   roles: state => state.user.roles,

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

@@ -8,6 +8,7 @@ const user = {
     token: getToken(),
     name: '',
     avatar: '',
+    avatars:'',
     roles: [],
     permissions: [],
 	teacherClass:[],
@@ -34,6 +35,9 @@ const user = {
     SET_AVATAR: (state, avatar) => {
       state.avatar = avatar
     },
+    SET_AVATARS: (state, avatars) => {
+      state.avatars = avatars
+    },
     SET_ROLES: (state, roles) => {
       state.roles = roles
     },
@@ -92,10 +96,12 @@ const user = {
       const uuid = userInfo.uuid
 	  const tenantId = userInfo.tenantId
     const grantType = userInfo.grantType
+    const clientKey = userInfo.clientKey
+
     const phonenumber = userInfo.phonenumber
     const smsCode = userInfo.smsCode
       return new Promise((resolve, reject) => {
-        login(username, password, code, uuid,tenantId,grantType,phonenumber,smsCode).then(res => {
+        login(username, password, code, uuid,tenantId,grantType,clientKey,phonenumber,smsCode).then(res => {
           setToken(res.data.access_token)
           commit('SET_TOKEN', res.data.access_token)
           resolve()
@@ -112,6 +118,7 @@ const user = {
 			console.log(res.data.permissions,4)
           const user = res.data.user
           let avatar = user.avatar || ""
+           commit('SET_AVATARS', avatar)
           if (!isHttp(avatar)) {
             avatar = (isEmpty(avatar)) ? defAva : process.env.VUE_APP_BASE_API + avatar
           }

+ 67 - 35
ruoyi-ui/src/views/index.vue

@@ -108,12 +108,12 @@
                   <span class="text_65">{{xunjiantj.yCheckPoint}}</span>
                   <span class="text_66">{{xunjiantj.wCheckPoint}}</span>
                 </div>
-                <div class="image-text_1 flex-row justify-between">
+                <div class="image-text_1 flex-row justify-between" v-hasPermi="['wuYe:checkPointRecord:list']">
                   <span class="thumbnail_17" style="background-color: #196CFF;border-radius: 50%;"></span>
                   <span
                     class="text-group_1">{{checkPointRecordList[0].checkTime == null?'暂无数据': checkPointRecordList[0].checkTime }}</span>
                 </div>
-                <div class="group_10 flex-row justify-between">
+                <div class="group_10 flex-row justify-between" v-hasPermi="['wuYe:checkPointRecord:list']">
 
                   <span class="image_7" style="background-color: #E6E6E6;"> </span>
                   <div class="section_13 flex-col">
@@ -173,9 +173,8 @@
               </div>
             </el-col>
           </el-row>
-
         </el-col>
-        <el-col :span="7">
+        <el-col :span="7" v-hasPermi="['wuYe:suggestion:list']">
           <div class="block_19 flex-row">
             <span class="text_94">{{getyer}}</span> <span class="text_95">{{getmor}}/{{getday}}</span>
             <div class="box_16 flex-col justify-between">
@@ -185,7 +184,7 @@
               <span class="text_97">{{getweek}}</span>
             </div>
           </div>
-          <div class="block_16 flex-col">
+          <div class="block_16 flex-col" >
             <div class="group_9 flex-row" style="display: flex;justify-content: space-between;">
               <div style="display: flex;">
                 <div class="block_15 flex-col"></div>
@@ -195,7 +194,7 @@
                 v-hasPermi="['wuYe:suggestion:add']">查看更多&nbsp;→</span>
             </div>
 
-            <div class="box_12 flex-row" style="display: flex;justify-content: space-between;">
+            <div class="box_12 flex-row" style="display: flex;justify-content: space-between;" v-hasPermi="['wuYe:suggestion:add']">
               <div style="display: flex;flex: 1;">
                 <span class="text_81">已回投诉</span>
                 <!-- <div class="section_15 flex-col"></div>
@@ -347,7 +346,7 @@
 
           </div>
         </el-col>
-        <el-col :span="16">
+        <el-col :span="16"  v-hasPermi="['wuYe:repair:list']">
           <div class="block_12 flex-col">
             <div class="group_9 flex-row" style="display: flex;justify-content: space-between;">
               <div style="display: flex;">
@@ -394,13 +393,13 @@ box-shadow: 0px 5px 10px 0px rgba(183,193,206,0.54);
 border-radius: 9px;font-weight: bold;
 font-size: 18px;
 color: #FFFFFF;" @click="zhuhuet">立即完善(员工)</p>
-          <p style="width: 192px;text-align: center;
+          <!-- <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;">立即完善(管理员)</p>
+color: #196CFF;">立即完善(管理员)</p> -->
 <p style="width: 192px;text-align: center;
 height: 45px;line-height: 45px;
 background: #FFFFFF;
@@ -473,7 +472,8 @@ color: #196CFF;margin-left: 20px;"><router-link class="link-type" :to="'/registe
                			  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>
+                    <!-- @click.native="chahue(item)" -->
+               			  <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>
@@ -493,12 +493,12 @@ color: #196CFF;margin-left: 20px;"><router-link class="link-type" :to="'/registe
           <el-col :span="12">
                      <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-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>
@@ -709,31 +709,40 @@ color: #196CFF;margin-left: 20px;"><router-link class="link-type" :to="'/registe
         tesrtw:'',
         // 角色表格数据
         roleList: [],
+        rowt:null
       };
     },
     created() {
       this.userid = this.$store.getters.userId
-      if(this.$store.getters.authenticationUser =='Y'){
+      if(this.$store.getters.roles != null && this.$store.getters.roles.length != 0){
+        this.rowt = this.$store.getters.roles[0]
+      }
+      console.log(this.$store.getters)
+      if(this.$store.getters.authenticationUser =='1' || this.$store.getters.authenticationUser =='2'){
         // 认证未通过或者未认证
         this.shouzu = false
         // this.getxinaqren()
-        this.getrou(this.$store.getters.tenantId)
+        // this.getrou(this.$store.getters.tenantId)
       }else{
+        // if(){
+
+        // }
         this.shouzu = true
-        // this.getcharnae()
-        // this.setTimer()
-        // this.gettime()
-        // this.getListtion()
-        // this.getListpair()
-        // this.getstaffManageList()
-        // this.getListRecord()
-        // this.getListRecordcun()
-        // this.baozhe()
-        // this.getche()
+        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.getnhgwzuhue()
+      console.log(this.shouzu)
     },
     methods: {
       // 小区切换
@@ -784,7 +793,7 @@ color: #196CFF;margin-left: 20px;"><router-link class="link-type" :to="'/registe
           this.formg.userId = this.userid
           if(this.tenantList.length !=0){
              this.formg.tenantId = this.tenantList[0].tenantId
-             this.getrou(this.$store.getters.tenantId)
+             // this.getrou(this.$store.getters.tenantId)
                  this.openg = true
           }else{
             this.openg = true
@@ -823,9 +832,17 @@ color: #196CFF;margin-left: 20px;"><router-link class="link-type" :to="'/registe
         let sgmse = {
           'pageNum': 1,
           'pageSize': 2,
-          'checkTime': this.getyer + '-' + this.getmor + '-' + this.getday,
+          'params':{
+            'createTime':this.getyer + '-' + this.getmor + '-' + this.getday,
+          },
+          // params:{'checkTime': this.getyer + '-' + this.getmor + '-' + this.getday},
+          // 'createTime': this.getyer + '-' + this.getmor + '-' + this.getday,
           'checkStatus': 2,
-          'userId': this.userid
+        }
+        if(this.rowt != "superadmin" && this.rowt != "admin"){
+            sgmse.userId = this.userid
+        }else{
+          sgmse.userId = undefined
         }
         this.isxug = false
         listCheckPointRecord(sgmse).then(response => {
@@ -862,7 +879,7 @@ color: #196CFF;margin-left: 20px;"><router-link class="link-type" :to="'/registe
       },
       getListRecordcun() {
         count().then(response => {
-          this.xunjiantj = response.data.data
+          this.xunjiantj = response.data
         });
       },
       // 报修列表
@@ -870,7 +887,11 @@ color: #196CFF;margin-left: 20px;"><router-link class="link-type" :to="'/registe
         let sgmse = {
           'pageNum': 1,
           'pageSize': 2,
-          'userId': this.userid
+        }
+        if(this.rowt != "superadmin" && this.rowt != "admin"){
+            sgmse.userId = this.userid
+        }else{
+          sgmse.userId = undefined
         }
         listRepair(sgmse).then(response => {
           this.repairList = response.rows;
@@ -942,7 +963,12 @@ color: #196CFF;margin-left: 20px;"><router-link class="link-type" :to="'/registe
         let sgmse = {
           'pageNum': 1,
           'pageSize': 10,
-          'isPublic':'Y'
+          'isPublic':'Y',
+        }
+        if(this.rowt != "superadmin" && this.rowt != "admin"){
+            sgmse.userId = this.userid
+        }else{
+          sgmse.userId = undefined
         }
         listSuggestion(sgmse).then(response => {
         if(response.rows.length !=0){
@@ -1091,8 +1117,14 @@ color: #196CFF;margin-left: 20px;"><router-link class="link-type" :to="'/registe
         let wk = new Date().getDay()
         let yy = new Date().getFullYear();
         let mm = new Date().getMonth() + 1;
+        if(mm < 10){
+          mm = '0'+mm
+        }
         let dd = new Date().getDate();
-        let hh = new Date().getHours();
+        if(dd < 10){
+          dd = '0'+dd
+        }
+        let hh = new Date().getHours() < 10 ? '0' + new Date().getHours() : new Date().getHours();
         let mf = new Date().getMinutes() < 10 ? '0' + new Date().getMinutes() : new Date().getMinutes();
         let ss = new Date().getSeconds() < 10 ? '0' + new Date().getSeconds() : new Date().getSeconds();
         let weeks = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六']

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

@@ -244,11 +244,13 @@ export default {
 		  // this.loginForm.tenantId = '000000'
           if (this.loginForm.rememberMe) {
 			      Cookies.set("grantType", 'password', { expires: 30 });
+            Cookies.set("clientKey", 'pc_user', { expires: 30 });
             Cookies.set("username", this.loginForm.username, { expires: 30 });
             Cookies.set("password", encrypt(this.loginForm.password), { expires: 30 });
             Cookies.set('rememberMe', this.loginForm.rememberMe, { expires: 30 });
           } else {
 			Cookies.remove("grantType");
+      Cookies.remove("clientKey");
             Cookies.remove("username");
             Cookies.remove("password");
             Cookies.remove('rememberMe');
@@ -257,6 +259,8 @@ export default {
 		  // this.loginForm.tenantId = '000000'
       // this.loginForm.clientId = 'e5cd7e4891bf95d1d19206ce24a7b32e'
       this.loginForm.grantType = 'password'
+      this.loginForm.clientKey = 'pc_user'
+
 		   // console.log(1,this.loginForm,this.$store.dispatch("Login", this.loginForm))
           this.$store.dispatch("Login", this.loginForm).then(() => {
 			  console.log(3)
@@ -324,6 +328,7 @@ export default {
 	 nhse.code = this.loginForm.codexd
    nhse.clientId = 'e5cd7e4891bf95d1d19206ce24a7b32e'
    nhse.grantType = 'sms'
+   nhse.clientKey = 'pc_user'
    nhse.username = this.loginForm.phone
    nhse.smsCode = this.loginForm.codexd
 	 // nhse.password = this.loginForm.passwordxm

+ 22 - 21
ruoyi-ui/src/views/registerxmerenz.vue

@@ -23,7 +23,7 @@
                 <el-form-item label="维修分类" prop="maintenanceCategory">
                         <el-select v-model="queryParams.maintenanceCategory" placeholder="请选择维修分类" clearable>
                           <el-option
-                            v-for="dict in dict.type.weixiutype"
+                            v-for="dict in dict.type.baoxiutype"
                             :key="dict.value"
                             :label="dict.label"
                             :value="dict.value"
@@ -139,10 +139,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; display: flex;align-items: center;">
+                        <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>
+                        </div>
+                        <div style="line-height: 28px;">维修类别:<dict-tag :options="dict.type.baoxiutype" :value="item.maintenanceCategory"/></div>
                         <p>
                           手机号码:{{item.phoneNumber == null? '暂无数据' : item.phoneNumber}}
                         </p>
@@ -216,7 +216,8 @@
                			  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>
+                    <!-- @click.native="chahue(item)" -->
+               			  <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>
@@ -235,21 +236,21 @@
           </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-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-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"
+                          v-for="dict in dict.type.baoxiutype"
                           :key="dict.value"
                           :label="dict.label"
                           :value="dict.value"
@@ -308,7 +309,7 @@ import {listNoPage} from "@/api/system/role";
 const defaultSettings = require("@/settings.js");
 export default {
    name: "StaffManage",
-    dicts: ['yaungong', 'gender', 'technician_selection','weixiutype','renzhen_sh'],
+    dicts: ['yaungong', 'gender', 'technician_selection','weixiutype','renzhen_sh','baoxiutype'],
   data() {
     return {
       // 遮罩层
@@ -393,7 +394,7 @@ export default {
   created() {
     this.getList();
     this.getnhgwzuhue()
-    this.getrou(this.$store.getters.tenantId)
+    // this.getrou(this.$store.getters.tenantId)
     this.userid = this.$store.getters.userId
   window.onresize = () => {
   	      this.changeTableMaxHeight()
@@ -539,7 +540,7 @@ export default {
               staffId: null,
               staffName: null,
               gender: null,
-              staffCategory: null,
+              staffCategory: 'property_management',
               maintenanceCategory: null,
               phoneNumber: null,
               avatarPhoto: null,
@@ -583,7 +584,7 @@ export default {
        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.getrou(this.$store.getters.tenantId)
              this.open = true;
 
 
@@ -596,7 +597,7 @@ export default {
            const staffId = row.staffId || this.ids
            staffManagexqst(staffId).then(response => {
              this.form = response.data;
-             this.getrou(this.form.tenantId)
+             // this.getrou(this.form.tenantId)
              this.open = true;
 
              this.title = "修改员工管理";
@@ -607,7 +608,7 @@ export default {
             const staffId = row.staffId || this.ids
             staffManagexqst(staffId).then(response => {
               this.form = response.data;
-              this.getrou(this.form.tenantId)
+              // this.getrou(this.form.tenantId)
               this.open = true;
               this.title = "查看信息";
             });
@@ -636,7 +637,7 @@ export default {
     /** 删除按钮操作 */
         handleDelete(row) {
           // const staffIds = row.staffId || this.ids;
-          let staffIds={'staffId':row.staffId,'userId':row.userId,'tenantId':row.tenantId}
+          let staffIds={'staffId':row.staffId,'userId':row.userId,'tenantId':row.tenantId,'examine':row.examine}
           this.$modal.confirm('是否确认删除员工的数据项?').then(function() {
             return deleteStaffManage(staffIds);
           }).then(() => {

+ 25 - 4
ruoyi-ui/src/views/system/app/index.vue

@@ -122,6 +122,11 @@
        <el-table-column type="selection" width="55" align="center" />
        <el-table-column label="系统类型" align="center" prop="model" />
        <el-table-column label="版本名称" align="center" prop="name" />
+       <el-table-column label="版本类型" align="center" prop="appPort" >
+          <template slot-scope="scope">
+              <dict-tag :options="dict.type.app_portype" :value="scope.row.appPort"/>
+            </template>
+          </el-table-column>
        <el-table-column label="版本号" align="center" prop="code" />
        <el-table-column label="版本描述" align="center" prop="description" />
        <el-table-column label="下载地址" align="center" prop="path" />
@@ -160,9 +165,24 @@
     <el-dialog :title="title" :visible.sync="open" width="800px" append-to-body>
       <el-form ref="form" :model="form" :rules="rules" label-width="80px">
         <el-row>
+          <el-col :span="8">
+             <el-form-item label="版本类型" prop="appPort">
+               <el-select
+                 v-model="form.appPort"
+                 placeholder="版本类型"
+                 clearable
+               >
+                 <el-option
+                   v-for="dict in dict.type.app_portype"
+                   :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="model">
-
                <el-select
                  v-model="form.model"
                  placeholder="系统类型"
@@ -197,7 +217,7 @@
                <fileUpload :limit="5" v-model="form.path" />
              </el-form-item>
           </el-col>
-         
+
         </el-row>
       </el-form>
       <div slot="footer" class="dialog-footer">
@@ -213,7 +233,7 @@ import { listApp, getApp, delApp, addApp, updateApp } from "@/api/system/app";
 
 export default {
   name: "App",
-  dicts: ['model','sys_is_del'],
+  dicts: ['model','sys_is_del','app_portype'],
   data() {
     return {
       // 遮罩层
@@ -280,7 +300,8 @@ export default {
         description: null,
         path: null,
         isDel: null,
-        createTime: null
+        createTime: null,
+        appPort:null
       };
       this.resetForm("form");
     },

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

@@ -356,7 +356,7 @@ export default {
         address: '',
         intro: '',
         remark: '',
-        packageId: '',
+        packageId: null,
         expireTime: '',
         accountCount: 0,
         status: '0',

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

@@ -377,7 +377,7 @@ export default {
 	},
     /** 删除按钮操作 */
     handleDelete(row) {
-      const ids = row.id || this.ids;
+      const ids = row.packageId || this.ids;
 	  // delClass(ids).then(response => {
 	  // 		this.getList();
 	  // 		this.$modal.msgSuccess("删除成功");

+ 33 - 1
ruoyi-ui/src/views/system/user/profile/userAvatar.vue

@@ -76,6 +76,8 @@ export default {
       title: "修改头像",
       options: {
         img: store.getters.avatar, //裁剪图片的地址
+        name:store.getters.avatar,
+        filePath:store.getters.avatar,
         autoCrop: true, // 是否默认生成截图框
         autoCropWidth: 200, // 默认生成截图框宽度
         autoCropHeight: 200, // 默认生成截图框高度
@@ -130,14 +132,44 @@ export default {
         reader.readAsDataURL(file);
         reader.onload = () => {
           this.options.img = reader.result;
+          // console.log(this.options.img)
         };
       }
     },
     // 上传图片
     uploadImg() {
+      // console.log(this.options,this.$refs.cropper)
       this.$refs.cropper.getCropBlob(data => {
+        // 将base64的数据部分提取出来
+          const parts = this.options.img.split(';base64,');
+          const contentType = parts[0].split(':')[1];
+          const raw = window.atob(parts[1]);
+
+          // 将原始数据转换为Uint8Array
+          const rawLength = raw.length;
+          const uInt8Array = new Uint8Array(rawLength);
+          for (let i = 0; i < rawLength; ++i) {
+            uInt8Array[i] = raw.charCodeAt(i);
+          }
+          // 使用Blob创建一个新的文件
+            const blob = new Blob([uInt8Array], {type: contentType});
+            // 创建File对象
+              const file = new File([blob], 'image.png', {type: contentType});
         let formData = new FormData();
-        formData.append("avatarfile", data);
+        // let  dar={'name':this.options.img,'filePath':this.options.img}
+        // // 将对象转换为 JSON 字符串
+        //       const jsonString = JSON.stringify(dar);
+        //       // 创建一个 Blob 对象
+        //       const blob = new Blob([jsonString], { type: 'application/json' });
+        //       // 创建一个读取 Blob 的流
+        //       const stream = blob.stream();
+        //       console.log(data,stream,5)
+
+                // 转为 base64
+                // let reader = new FileReader();
+        formData.append("avatarfile", file);
+        // let file = formData.get("avatarfile");
+        console.log(file)
         uploadAvatar(formData).then(response => {
           this.open = false;
           this.options.img = process.env.VUE_APP_BASE_API + response.imgUrl;

+ 20 - 11
ruoyi-ui/src/views/wuguan/assetType/index.vue

@@ -11,9 +11,9 @@
 
         <el-col :span="24">
           <el-col :span="8">
-            <el-form-item label="资产类型名称" prop="postCode">
+            <el-form-item label="资产类型名称" prop="assetName">
               <el-input
-                v-model="queryParams.postCode"
+                v-model="queryParams.assetName"
                 placeholder="请输入资产类型名称"
                 clearable
                 @keyup.enter.native="handleQuery"
@@ -232,8 +232,6 @@ export default {
       open: false,
       // 查询参数
       queryParams: {
-        pageNum: 1,
-        pageSize: 10,
         parentId: null,
         ancestors: null,
         assetName: null,
@@ -279,11 +277,11 @@ export default {
     reset() {
       this.form = {
         assetId: null,
-        parentId: 0,
+        parentId: null,
         ancestors: null,
         assetName: null,
         orderNum: null,
-        status: null,
+        status: '0',
         delFlag: null,
         createBy: null,
         createTime: null,
@@ -343,11 +341,9 @@ export default {
     /** 新增按钮操作 */
     handleAdd(row) {
       this.reset();
-      if (row != null && row.assetId) {
-        this.form.parentId = row.assetId;
-      } else {
-        this.form.parentId = 0;
-      }
+       if (row != null && row.assetId) {
+         this.form.parentId = row.assetId;
+       }
       this.open = true;
       this.title = "添加资产类型";
     },
@@ -357,13 +353,26 @@ export default {
       const assetId = row.assetId || this.ids
       getAssetType(assetId).then(response => {
         this.form = response.data;
+        if(this.form.parentId == 0){
+          this.$set(this.form,'parentId',null)
+        }
         this.open = true;
         this.title = "修改资产类型";
       });
     },
     /** 提交按钮 */
     submitForm() {
+      if(this.form.assetId != null){
+        if(this.form.parentId == null || this.form.parentId == ''){
+          this.form.parentId = 0
+        }
+      }else{
+        if(this.form.parentId == null || this.form.parentId == ''){
+          this.form.parentId = 0
+        }
+      }
       this.$refs["form"].validate(valid => {
+
         if (valid) {
           if (this.form.assetId != null) {
             updateAssetType(this.form).then(response => {

+ 44 - 25
ruoyi-ui/src/views/wuguan/baoxiuguanli/index.vue

@@ -183,9 +183,10 @@
                        </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>
+                         <p v-hasPermi="['wuYe:repair:assign']"   style="cursor: pointer;color: #28C529;" @click="daifeng(item)" v-if="item.repairStatus == 1"><span  >指派</span></span>  </p>
+                        <p style="cursor: pointer;" @click="handleUpdatef(item)"><span  >查看</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>
+                        <p v-if="item.repairStatus == 1" v-hasPermi="['wuYe:repair: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>
@@ -356,7 +357,7 @@ export default {
       queryParams: {
         pageNum: 1,
                 pageSize: 4,
-                portalId: null,
+                houseId: null,
                 houseAddress: null,
                 repairTime: null,
                 phoneNumber: null,
@@ -379,15 +380,16 @@ export default {
       formz: {},
       // 表单校验
       rules: {
-        houseAddress: [
-                  { required: true, message: "详细门牌号不能为空", trigger: "blur" }
-                ],
         repairTime: [
                   { required: true, message: "不能为空", trigger: "blur" }
                 ],
+        repairDetails: [
+                  { required: true, message: "不能为空", trigger: "blur" }
+                ],
         maintenanceCategory: [
                   { required: true, message: "不能为空", trigger: "blur" }
                 ],
+
         phoneNumber: [
                  { required: true, message: "不能为空", trigger: "blur" },
                  {
@@ -457,7 +459,7 @@ export default {
     },
     getListhouvr() {
        listNoPage().then(response => {
-         this.houseInfoLise  = response.rows;
+         this.houseInfoLise  = response.data;
        });
      },
     /** 查询岗位列表 */
@@ -472,7 +474,7 @@ export default {
             rou.imges = rou.repairImages.split(',')
           }
           rou.isnum = false
-          rou.isryr = false
+          rou.isryr = true
         })
         this.total = response.total;
         this.loading = false;
@@ -480,7 +482,7 @@ export default {
     },
     getstaffManageList(row){
       let bsdf={'staffCategory':2}
-      listStaffManageNoPage(bsdf).then(response => {
+      listStaffManageNoPage().then(response => {
         this.staffManageList  = response.rows;
         // this.staffManageList.filrter(rout=>{
         //   rout.lable = rout.staffName + '<p>'
@@ -510,19 +512,35 @@ export default {
     },
     cancelz() {
       this.openz = false;
+    },
+    gettimeg(){
+      let nowDate = new Date()
+                //获取当前时间并打印
+                        var _this = this;
+                        let sgse=''
+                      let yy = new Date().getFullYear();
+                      let mm = new Date().getMonth()+1;
+                      let dd = new Date().getDate();
+                      let hh = new Date().getHours();
+                      let mf = new Date().getMinutes()<10 ? '0'+new Date().getMinutes() : new Date().getMinutes();
+                      let ss = new Date().getSeconds()<10 ? '0'+new Date().getSeconds() : new Date().getSeconds();
+                       sgse = yy+'-'+mm+'-'+dd+' '+hh+':'+mf+':'+ss;
+                    return  sgse
+
+
     },
     // 表单重置
     reset() {
       this.form = {
               repairId: null,
-              portalId: null,
+              houseId: null,
               houseAddress: null,
               repairTime: null,
               phoneNumber: null,
               repairTitle: null,
               maintenanceCategory: null,
               repairDetails: null,
-              repairTime:this.gettime() + ' ' + '00:00:00',
+              repairTime:this.gettimeg() + ' ' + '00:00:00',
               repairImages: null,
               repairStatus: null,
               staffName: null,
@@ -656,10 +674,11 @@ export default {
       console.log(val)
      this.formz.staffName = val.staffName
      this.formz.staffId = val.staffId
+     this.formz.staffUserId = val.userId
      this.formz.staffPhone = val.phoneNumber
     },
     itnegadd(item){
-      this.form.portalId = item.houseId
+      this.form.houseId = item.houseId
       this.form.houseAddress = item.detailedAddress
       console.log(item)
     },
@@ -723,19 +742,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; /* 滚动条滑块悬停时的背景色 */
- }
+ // ::-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{

+ 952 - 0
ruoyi-ui/src/views/wuguan/baoxiuguanlime/index.vue

@@ -0,0 +1,952 @@
+<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="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 :span="8">
+                <el-form-item label="报修类别" prop="maintenanceCategory">
+                        <el-select v-model="queryParams.maintenanceCategory" placeholder="请选择报修类别" clearable>
+                          <el-option
+                            v-for="dict in dict.type.baoxiutype"
+                            :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="repairStatus">
+                        <el-select v-model="queryParams.repairStatus" placeholder="请选择报修状态" clearable>
+                          <el-option
+                            v-for="dict in dict.type.repair_status"
+                            :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-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:repair: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:repair: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="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 && 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" 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>
+                     		<!-- <div class="clist"><div class="tit">手机号码</div>13656788668</div> -->
+                     	</div>
+                     </div>
+                     <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 v-hasPermi="['wuYe:repair:assign']"   style="cursor: pointer;color: #28C529;" @click="daifeng(item)" v-if="item.repairStatus == 1"><span  >指派</span></span>  </p>
+                        <p style="cursor: pointer;" @click="handleUpdatef(item)"><span  >查看</span></span>  </p>
+                        <!-- <span @click="handleUpdatef(item)">查看</span> -->
+                        <p v-hasPermi="['wuYe:repair: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="repairList.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" v-if="isnusle == 0">
+            <el-form-item label="报修标题" prop="repairTitle">
+                      <el-input v-model="form.repairTitle" placeholder="请输入报修标题,简要描述报修内容" />
+            </el-form-item>
+
+          </el-col> -->
+          <el-col :span="12" v-if="isnusle == 0">
+             <el-form-item label="手机号码" prop="phoneNumber">
+                      <el-input v-model="form.phoneNumber" placeholder="请输入报修用户手机号码" />
+             </el-form-item>
+          </el-col>
+          <el-col :span="12" v-if="isnusle == 0">
+            <el-form-item label="门牌号" prop="houseAddress">
+                 <el-select filterable  v-model="form.houseAddress" placeholder="请选择门牌号" clearable>
+                   <el-option
+                    @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="24" v-if="isnusle == 0">
+             <el-form-item label="报修详情" prop="repairDetails">
+                      <el-input v-model="form.repairDetails" type="textarea" placeholder="请输入内容" />
+                    </el-form-item>
+          </el-col>
+          <el-col :span="12" v-if="isnusle == 0">
+           <el-form-item label="报修类别" prop="maintenanceCategory">
+                     <el-select v-model="form.maintenanceCategory" placeholder="请选择报修类别">
+                       <el-option
+                         v-for="dict in dict.type.baoxiutype"
+                         :key="dict.value"
+                         :label="dict.label"
+                         :value="dict.value"
+                       ></el-option>
+                     </el-select>
+                   </el-form-item>
+          </el-col>
+          <el-col :span="12" v-if="isnusle == 0">
+            <el-form-item label="报修时间" prop="repairTime">
+                      <el-date-picker
+                      style="width:100%"
+                        v-model="form.repairTime"
+                        type="datetime"
+                        value-format="yyyy-MM-dd HH:mm:ss"
+                        placeholder="请选择报修时间">
+                      </el-date-picker>
+                    </el-form-item>
+          </el-col>
+          <el-col :span="24" v-if="isnusle == 0">
+            <el-form-item label="备注" prop="remark">
+              <el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="24" v-if="isnusle == 2">
+             <el-form-item label="维修详情" prop="repairCompletionDetails">
+                      <el-input v-model="form.repairCompletionDetails" type="textarea" placeholder="请输入内容" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="24" class="unimg" v-if="isnusle == 1" >
+            <el-form-item label="上门拍照" prop="visitPhoto">
+              <image-upload v-model="form.visitPhoto"/>
+            </el-form-item>
+          </el-col>
+          <el-col :span="24" class="unimg" v-if="isnusle == 2">
+            <el-form-item label="结束拍照" prop="completionPhoto">
+              <image-upload v-model="form.completionPhoto"/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+
+
+
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+    <el-dialog title="指派" :visible.sync="openz" width="640px" append-to-body>
+      <el-form ref="formz" :model="formz" :rules="rulesz" label-width="80px">
+        <el-row>
+          <el-col :span="24" >
+            <el-form-item label="选择人员" prop="staffName">
+                      <el-select style="width: 100%;" v-model="formz.staffName" placeholder="请选择维修人员">
+                        <el-option
+                        @click.native="xuanse(dict)"
+                          v-for="dict in staffManageList"
+                          :key="dict.staffId"
+                          :label="dict.staffName + '('+ (dict.status == null?'' : dict.status == 1?'空闲中' : '指派中') + ')'"
+                          :value="dict.staffId"
+                        ></el-option>
+                      </el-select>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitFormz">确 定</el-button>
+        <el-button @click="cancelz">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listRepair, getRepair, delRepair, addRepair, updateRepair,assign } from "@/api/wuguan/repair";
+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'],
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 物业报修表格数据
+       repairList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      openz:false,
+      houseInfoLise:[],
+      defaultSettings:defaultSettings,
+      baseUrl: process.env.VUE_APP_BASE_API,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+                pageSize: 4,
+                houseId: null,
+                houseAddress: null,
+                repairTime: null,
+                phoneNumber: null,
+                repairTitle: null,
+                maintenanceCategory: null,
+                repairDetails: null,
+                repairImages: null,
+                repairStatus: null,
+                staffName: null,
+                staffId: null,
+                staffPhone: null,
+                visitTime: null,
+                visitPhoto: null,
+                completionTime: null,
+                completionPhoto: null,
+                repairCompletionDetails: null,
+      },
+      // 表单参数
+      form: {},
+      formz: {},
+      // 表单校验
+      rules: {
+        repairTime: [
+                  { required: true, message: "不能为空", trigger: "blur" }
+                ],
+        repairDetails: [
+                  { required: true, message: "不能为空", trigger: "blur" }
+                ],
+        maintenanceCategory: [
+                  { required: true, message: "不能为空", trigger: "blur" }
+                ],
+
+        phoneNumber: [
+                 { required: true, message: "不能为空", trigger: "blur" },
+                 {
+                   pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
+                   message: "请输入正确的手机号码",
+                    trigger: "blur"
+                   }
+               ],
+
+      },
+      rulesz: {
+        staffName: [
+                  { required: true, message: "不能为空", trigger: "blur" }
+                ],
+
+      },
+      activeName:'first',
+      videoState: false, // 视频播放状态
+      poster:true,
+      controls:true,
+      videoData:{},
+       player: null,
+       isshoe:true,
+       isnusle:1,
+       staffManageList: [],
+       tableMaxHeight:'200',
+       isryr:true
+
+    };
+  },
+  computed: {
+    dynamicStyle() {
+      return {
+        overflow:'auto',
+        height:  this.tableMaxHeight + 'px',
+        paddingTop:'10px'
+      }
+    }
+    },
+  created() {
+    this.queryParams.staffUserId = this.$store.getters.userId
+    this.getList();
+    this.getstaffManageList()
+    this.getListhouvr()
+  window.onresize = () => {
+  	      this.changeTableMaxHeight()
+  	    }
+  	    this.changeTableMaxHeight()
+  },
+  mounted() {
+  	window.onresize = () => {
+  	          this.changeTableMaxHeight()
+  	        }
+  	        this.changeTableMaxHeight()
+  },
+  beforeDestroy() {
+      if (this.player) {
+        this.player.dispose()
+      }
+    },
+  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.data;
+       });
+     },
+    /** 查询岗位列表 */
+    getList() {
+      this.loading = true;
+
+      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 = true
+        })
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    getstaffManageList(row){
+      let bsdf={'staffCategory':2}
+      listStaffManageNoPage().then(response => {
+        this.staffManageList  = response.rows;
+        // this.staffManageList.filrter(rout=>{
+        //   rout.lable = rout.staffName + '<p>'
+        // })
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 获取当前时间
+    gettime(){
+      let nowDate = new Date()
+      				  let date = {
+      				    year: nowDate.getFullYear(),
+      				    month: nowDate.getMonth() + 1,
+      				    date: nowDate.getDate()
+      				  }
+
+      				   if (parseInt(date.date) < 10) {
+      				      date.date = '0' + date.date
+      				    }
+                  let nghe = date.year + '-' + date.month + '-' + date.date
+      				  return nghe
+
+    },
+    cancelz() {
+      this.openz = false;
+    },
+    gettimeg(){
+      let nowDate = new Date()
+                //获取当前时间并打印
+                        var _this = this;
+                        let sgse=''
+                      let yy = new Date().getFullYear();
+                      let mm = new Date().getMonth()+1;
+                      let dd = new Date().getDate();
+                      let hh = new Date().getHours();
+                      let mf = new Date().getMinutes()<10 ? '0'+new Date().getMinutes() : new Date().getMinutes();
+                      let ss = new Date().getSeconds()<10 ? '0'+new Date().getSeconds() : new Date().getSeconds();
+                       sgse = yy+'-'+mm+'-'+dd+' '+hh+':'+mf+':'+ss;
+                    return  sgse
+
+
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+              repairId: null,
+              houseId: null,
+              houseAddress: null,
+              repairTime: null,
+              phoneNumber: null,
+              repairTitle: null,
+              maintenanceCategory: null,
+              repairDetails: null,
+              repairTime:this.gettimeg() + ' ' + '00:00:00',
+              repairImages: null,
+              repairStatus: null,
+              staffName: null,
+              staffId: null,
+              staffPhone: null,
+              visitTime: null,
+              visitPhoto: null,
+              completionTime: null,
+              completionPhoto: null,
+              repairCompletionDetails: null,
+              createBy: null,
+              createTime: null,
+              updateBy: null,
+              updateTime: null,
+              remark: null
+            };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.repairId)
+      this.single = selection.length!=1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.isnusle = 0
+      this.title = "添加物业报修";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row,val) {
+      this.reset();
+            const repairId = row.repairId || this.ids
+            getRepair(repairId).then(response => {
+              this.form = response.data;
+              this.open = true;
+              this.title = "报修信息";
+              this.isnusle = val
+            });
+    },
+    handleUpdatef(row){
+      this.$router.push({
+        path: '/wuguan/baoxiuxq',
+        query: {
+        	'id':row.repairId,
+        }
+      })
+    },
+    // 待分配
+    daifeng(row){
+     if(row.repairStatus ==1){
+       // 待分配
+       // this.formz.maintenanceCategory = row.maintenanceCategory
+       this.openz = true
+       this.formz.repairId = row.repairId
+
+
+     }
+    },
+    // 待分配提交
+    submitFormz(){
+      this.$refs["formz"].validate(valid => {
+        if (valid) {
+          assign(this.formz).then(response => {
+            this.$modal.msgSuccess("操作成功");
+            this.openz = false;
+            this.getList();
+          });
+        }
+        })
+
+    },
+    /** 提交按钮 */
+    submitForm: function() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+                  if (this.form.repairId != null) {
+                    updateRepair(this.form).then(response => {
+                      this.$modal.msgSuccess("修改成功");
+                      this.open = false;
+                      this.getList();
+                    });
+                  } else {
+                    this.form.userId = this.$store.getters.userId
+                    addRepair(this.form).then(response => {
+                      this.$modal.msgSuccess("新增成功");
+                      this.open = false;
+                      this.getList();
+                    });
+                  }
+                  }
+      });
+    },
+    /** 删除按钮操作 */
+        handleDelete(row) {
+          const repairIds = row.repairId || this.ids;
+          delRepair(repairIds).then(response => {
+            this.$modal.msgSuccess("删除成功");
+            this.getList();
+          });
+        },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('wuYe/repair/export', {
+        ...this.queryParams
+      }, `repair_${new Date().getTime()}.xlsx`)
+    },
+
+      handleClick(){
+
+      },
+    isac(val){
+      console.log(5,val)
+      val.isnum = !val.isnum
+      this.isshoe = false
+      this.isshoe = true
+    },
+    xuanse(val){
+      console.log(val)
+     this.formz.staffName = val.staffName
+     this.formz.staffId = val.staffId
+     this.formz.staffPhone = val.phoneNumber
+    },
+    itnegadd(item){
+      this.form.houseId = item.houseId
+      this.form.houseAddress = item.detailedAddress
+      console.log(item)
+    },
+    // 获取屏幕高度
+    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%;
+   }
+  }
+  .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;
+  }
+ // ::-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{
+    display: flex;
+    justify-content: space-between;
+  }
+  	.carlist{background: #FFFFFF;border-radius: 10px;margin-bottom: 14px;
+  		.ctop{border-bottom: 1px solid #E5E5E5;padding:13px 12px;
+  			.imgs{width: 20px;height: 21px;margin-right: 15px;}
+  			.tit{font-size: 16px;color: #272727;font-weight: bold;margin-right: 7px;overflow: hidden;
+  text-overflow: ellipsis;
+  white-space: nowrap;}
+  			.txt{font-weight: 500;font-size: 14px;
+  				&.ca{color: #3565ED;}
+  				&.cb{color: #FE5A0E;}
+  				&.cc{color: #28C529;}
+  			}
+  			.txta{font-weight: 500;font-size: 14px;color: #AAAAAA;}
+  			.num{font-size: 14px;color: #AAAAAA;}
+  		}
+  		.btn{height: 17px;border-radius: 9px;display: flex;align-items: center;justify-content: center;padding: 0 5px;font-size:12px;margin-right: 12px;
+  			&.btna{border: 1px solid #06C770;color: #06C770;}
+  			&.btnb{border: 1px solid #3565ED;color: #3565ED;}
+  			&.btnc{border: 1px solid #FE5A0E;color: #FE5A0E;}
+  			&.btnbga{border: 1px solid #0156FE;color: #3565ED;background: #DFEAFF;height: 18px;}
+  			&.btnbgb{border: 1px solid #C1C1C1;color: #666666;background: #F1F1F1;height: 18px;}
+  			&.btnbgc{border: 1px solid #FE5A0E;color:#FE5A0E;background:#FFEEE6;height: 18px;}
+  		}
+  		.clists{padding: 12px 12px 4px;
+  			.clist{font-weight: 500;margin-bottom: 8px;
+  	font-size: 13px;color: #272727;display: flex;line-height: 17px;
+  				.tit{font-size: 14px;color: #AAAAAA;flex: 0 0 auto;margin-right: 8px;text-align-last: justify;}
+  				.imgas{display: flex;align-items: center;flex-wrap: wrap;
+  					image{width: 71px;height: 71px;margin-right: 15px;margin-top:4px;}
+  				}
+  			}
+  			.w50{
+  				.clist{width: 50%;}
+  			}
+  		}
+  	}
+  	.houselist{
+  		.clists{padding-bottom: 1px !important;}
+  		.clist{margin-bottom: 11px !important;}
+  	}
+  .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;
+    }
+  }
+  .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;
+    }
+  }
+  .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>
+
+

+ 3 - 0
ruoyi-ui/src/views/wuguan/blackManage/index.vue

@@ -235,6 +235,9 @@ export default {
       form: {},
       // 表单校验
       rules: {
+        blackNum: [
+          { required: true, message: "不能为空", trigger: "change" }
+        ],
         blackType: [
           { required: true, message: "黑名单类型不能为空", trigger: "change" }
         ],

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

@@ -132,7 +132,7 @@
                      	</div>
                      </div>
                       <div class="bortt tongty" style="justify-content: space-between;">
-                        <p ><span  v-hasPermi="['student:info:edit']" @click="handleUpdate(item)">修改</span>  </p>
+                        <p @click="handleUpdate(item)" v-hasPermi="['student:info:edit']"><span   >修改</span>  </p>
                         <!-- <span @click="handleUpdatef(item)">查看</span> -->
                         <p @click="handleDelete(item)" v-hasPermi="['student:info:remove']" style="border-left: 1px solid #DADADA;color:red">删除</p>
                       </div>

+ 47 - 18
ruoyi-ui/src/views/wuguan/fagnwuguanli/index.vue

@@ -23,7 +23,7 @@
                       </el-form-item>
               </el-col>
               <el-col :span="8">
-                <el-form-item label="房屋户号" prop="detailedAddress">
+                <el-form-item label="门牌号" prop="detailedAddress">
                         <el-input
                           v-model="queryParams.detailedAddress"
                           placeholder="请输入房屋户号"
@@ -146,21 +146,23 @@
                      	</div>
                      	<div class="clists">
                      		<div class="w50 flexc">
-                     			<div class="clist" style="width: 100%;"><div class="tit">房屋所属</div>{{item.ownerName ==null?'暂无数据' : item.ownerName}}</div>
+                     			<div class="clist" style="width: 100%;"><div class="tit">房屋所属</div>{{item.ownerName ==null? '暂无数据': item.ownerName ==''? '暂无数据' : item.ownerName}}</div>
                      		</div>
                         <div class="w50 flexc">
-                        	<div class="clist" style="width: 100%;"><div class="tit">建筑面积</div>{{item.area ==null?'' : item.area}}/m²</div>
+                        	<div class="clist" style="width: 100%;"><div class="tit">建筑面积</div>{{item.area ==null? '暂无数据' : item.area}}/m²</div>
                         </div>
                      		<div class="w50 flexc">
-                     			<div class="clist" style="width: 100%;"><div class="tit">房屋坐落  </div>{{item.location ==null?'暂无数据' : item.location}}</div>
+                          <el-tooltip class="item" effect="dark" :content="item.location ==null?'暂无数据' : item.location" placement="top-start">
+                     			<div class="clist" style="width: 100%;"><div class="tit">房屋坐落  </div><div style="overflow:hidden;text-overflow:ellipsis;white-space:nowrap;">{{item.location ==null?'暂无数据' : item.location}}</div></div>
+                          </el-tooltip>
                      		</div>
                      		<!-- <div class="clist"><div class="tit">手机号码</div>13656788668</div> -->
                      	</div>
                      </div>
                       <div class="bortt tongty" style="justify-content: space-between;">
-                        <p style="cursor: pointer;" ><span  v-hasPermi="['wuYe:houseInfo:edit']" @click="handleUpdate(item)">修改</span>  </p>
+                        <p @click="handleUpdate(item)" v-hasPermi="['wuYe:houseInfo:edit']" style="cursor: pointer;" ><span   >修改</span>  </p>
                         <!-- <span @click="handleUpdatef(item)">查看</span> -->
-                         <p style="cursor: pointer;border-left: 1px solid #DADADA;border-right: 1px solid #DADADA;"> <span style="color: #46CB99;"  v-hasPermi="['wuYe:residentInfo:edit']" @click="handleUpdateg(item)">居住人员</span></p>
+                         <p v-hasPermi="['wuYe:residentInfo:edit']" @click="handleUpdateg(item)" style="cursor: pointer;border-left: 1px solid #DADADA;border-right: 1px solid #DADADA;"> <span style="color: #46CB99;"   >居住人员</span></p>
                         <p v-hasPermi="['wuYe:houseInfo: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;">
@@ -168,7 +170,7 @@
                   </el-col>
                 </el-row>
                 <div style="margin-top: 20px;display: flex;justify-content: center;align-items: center;" v-if="houseInfoList.length ==0">
-                   <!-- <img   src="../../../assets/images/zwshjbig.png" alt="" style=""> -->
+                   <img   src="../../../assets/images/zwshjbig.png" alt="" style="">
                 </div>
               </div>
       </div>
@@ -214,17 +216,17 @@
           </el-col>
           <el-col :span="6">
             <el-form-item label="楼栋(栋)" prop="loudong">
-                <el-input v-model="form.loudong" placeholder="请输入楼栋" />
+                <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-input @blur="nghsedan" 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="请输入房屋的详细门牌号" />
+            <el-form-item label="门牌号" prop="detailedAddress">
+                      <el-input v-model="form.detailedAddress" placeholder="请输入房屋的门牌号" />
                     </el-form-item>
           </el-col>
           <el-col :span="6">
@@ -332,6 +334,18 @@
               <el-input  v-model="form.parkingNumber"  placeholder="请输入内容" />
             </el-form-item>
           </el-col>
+          <el-col :span="6">
+                      <el-form-item label="房屋类型" prop="houseType">
+                                <el-select v-model="form.houseType" placeholder="请选择房屋类型">
+                                  <el-option
+                                    v-for="dict in dict.type.house_type"
+                                    :key="dict.value"
+                                    :label="dict.label"
+                                    :value="parseInt(dict.value)"
+                                  ></el-option>
+                                </el-select>
+                              </el-form-item>
+                    </el-col>
           <el-col :span="24" class="unimg">
             <el-form-item label="上传房产证" prop="houseImage">
                <image-uploadshib @uploadedSuccessfully="uploadedSuccessfully"  :typeg = "4" :limit="1" v-model="form.houseImage"/>
@@ -383,10 +397,11 @@
 import { listHouseInfo, getHouseInfo, delHouseInfo, addHouseInfo, updateHouseInfo } from "@/api/wuguan/houseInfo";
 import 'videojs-flash';
 import { getToken } from "@/utils/auth";
+import {userNamet} from "@/api/zhihuixy/tenant";
 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'],
+    dicts: ['sys_notice_status', 'use_remises','types_rights','resident_type','sys_yes_no','house_status','house_type'],
   data() {
     return {
       // 遮罩层
@@ -572,7 +587,7 @@ export default {
       this.form = {
               houseId: null,
               ownerName: null,
-              location: null,
+              location: '安徽省',
               rightType: null,
               area: null,
               documentNumber: null,
@@ -593,7 +608,8 @@ export default {
               remark: null,
               loudong:null,
               danyuan:null,
-              parkingNumber:null
+              parkingNumber:null,
+              houseType:1
             };
       this.resetForm("form");
     },
@@ -628,10 +644,12 @@ export default {
            getHouseInfo(houseId).then(response => {
              this.form = response.data;
               let sef=this.form.detailedAddress.split('栋')
-              this.form.loudong = sef[0]
+              this.$set(this.form,'loudong',sef[0])
+              // this.form.loudong = sef[0]
               let sye=sef[1]
               let syest=sye.split('单元')
-              this.form.danyuan = syest[0]
+              // this.form.danyuan = syest[0]
+              this.$set(this.form,'danyuan',syest[0])
               this.form.detailedAddress = syest[1]
              this.open = true;
              this.ishoew = true
@@ -646,6 +664,15 @@ export default {
         }
       })
     },
+    nghsedan(val){
+      console.log(val,this.form.danyuan)
+      var reg = /[\u4E00-\u9FA5]|[\uFE30-\uFFA0]/g;
+      	if (reg.test(this.form.danyuan)) {
+          this.$message.error('不能有中文!!');
+          this.$set(this.form,'danyuan',null)
+      	}
+
+    },
     /** 提交按钮 */
     submitForm: function() {
       this.$refs["form"].validate(valid => {
@@ -724,8 +751,10 @@ export default {
     },
     /** 下载模板操作 */
     importTemplate() {
-      this.download('system/user/importTemplate', {
-      }, `user_template_${new Date().getTime()}.xlsx`)
+         window.open( process.env.VUE_APP_BASE_API+ '/profile/muban/房屋管理模板.xlsx','_blank');
+      // window.open('file/test.xls')
+      // this.download('system/user/importTemplate', {
+      // }, `user_template_${new Date().getTime()}.xlsx`)
     },
     // 文件上传中处理
     handleFileUploadProgress(event, file, fileList) {

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

@@ -336,7 +336,7 @@ export default {
         pageNum: 1,
         pageSize: 10,
         communityTitle: null,
-        communityType: '3',
+        communityType: null,
         communityContent: null,
         publishTime: null,
         author: null,

+ 11 - 8
ruoyi-ui/src/views/wuguan/newxq/index.vue

@@ -47,7 +47,7 @@
 
              </div>
              <div style="background: #FFFFFF;border-radius: 20px;padding: 20px; margin-top:20px;">
-                   <comment @doReplydiabs="doReplydiabs" @doChidSend="doChidSend" @doSend="doSend" @doReplydiabh="doReplydiabh" :commentList = 'commentList' @doReplydiab="doReplydiab" :commentNum="commentNum"/>
+                   <comment :authorId="this.$store.getters.userId" @doReplydiabs="doReplydiabs" @doChidSend="doChidSend" @doSend="doSend" @doReplydiabh="doReplydiabh" :commentList = 'commentList' @doReplydiab="doReplydiab" :commentNum="commentNum"/>
                   <pagination
                     v-show="total>0"
                     :total="total"
@@ -221,9 +221,9 @@ export default {
        this.handleUpdate(this.$route.query.id)
     }
     this.userid = this.$store.getters.userId
-    this.avatar = this.$store.getters.avatar
+    this.avatar = this.$store.getters.avatars
     this.nickName = this.$store.getters.nickName
-    console.log(this.$route.query.id, this.nickName)
+    console.log(this.$route.query.id, this.nickName,this.avatar)
     // console.log(this.gettije())
     // this.getList();
 
@@ -294,6 +294,7 @@ export default {
     getList() {
       this.loading = true;
       this.queryParams.communityId = this.form.communityId
+      this.queryParams.tenantId = this.$store.getters.tenantId
       // let sngs={'communityId':this.form.communityId,'pageNum':1,'pageSize':3}
       getRootComment(this.queryParams).then(response => {
         response.rows.filter(rou=>{
@@ -356,7 +357,7 @@ export default {
     // 初始文本框发送事件
     doSend(row){
       console.log(row)
-      let sgs={'communityId':this.form.communityId,'communityType':this.form.communityType,'isRoot':1,'commentContent':row,
+      let sgs={ 'tenantId':this.$store.getters.tenantId, 'communityId':this.form.communityId,'communityType':this.form.communityType,'isRoot':1,'commentContent':row,
       'targetTitle':this.form.communityTitle, 'communityTitle':this.form.communityTitle, 'userId':this.userid,'avatar':this.avatar,'nickName':this.nickName
 
       }
@@ -368,7 +369,7 @@ export default {
     },
     // 评论列表中文本框发送事件
     doChidSend(row,val,id,item){
-      let sgs={'communityId':this.form.communityId,'communityType':this.form.communityType,
+      let sgs={'tenantId':this.$store.getters.tenantId,'communityId':this.form.communityId,'communityType':this.form.communityType,
       'communityTitle':this.form.communityTitle,'isRoot':2,'commentContent':row,'targetTitle':item.content,'parentId': id,
       'toUserId':item.commentUser.id,'toNickName':item.commentUser.nickName,'toAvatar':item.commentUser.avatar,
       'userId':this.userid,'avatar':this.avatar,'nickName':this.nickName
@@ -406,10 +407,10 @@ export default {
          }
 
          let sng={'targetId':row,'targetType':2,'userId':this.userid,'avatar':this.avatar,'nickName':this.nickName,
-         'targetTitle': item.content,'communityId':this.form.communityId,}
+         'targetTitle': item.content,'communityId':this.form.communityId,'tenantId':this.$store.getters.tenantId,}
          giveTheThumbs(sng).then(response => {
            // this.$modal.msgSuccess("操作成功");
-           this.isdianz = !this.isdianz
+           // this.isdianz = !this.isdianz
            this.isgs = !this.isgs
            if(this.isgs == true){
              item.isLike = 'Y'
@@ -426,6 +427,7 @@ export default {
     dianzan(){
        let sng={'targetId':this.form.communityId,'targetType':1,'userId':this.userid,
        'avatar':this.avatar,'nickName':this.nickName,'targetTitle': this.form.communityTitle,
+       'tenantId':this.$store.getters.tenantId,
        }
        giveTheThumbs(sng).then(response => {
          // this.$modal.msgSuccess("操作成功");
@@ -445,7 +447,7 @@ export default {
     // 收藏文章
     shoucang(){
       let sng={'targetId':this.form.communityId,'targetType':1,'userId':this.userid,
-      'avatar':this.avatar,'nickName':this.nickName,'targetTitle': this.form.communityTitle}
+      'avatar':this.avatar,'nickName':this.nickName,'targetTitle': this.form.communityTitle,'tenantId':this.$store.getters.tenantId,}
       getStars(sng).then(response => {
         // this.$modal.msgSuccess("操作成功");
         this.shouca = !this.shouca
@@ -469,6 +471,7 @@ export default {
        this.siegsq.parentId = row
        this.siegsq.pageNum = item.pageNum
        this.siegsq.communityId = this.form.communityId
+       this.siegsq.tenantId = this.$store.getters.tenantId
        if(item.childrenListCount == 0){
          item.childrenList = []
          item.childrenListCount = item.childrenListCounts

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

@@ -270,7 +270,7 @@ export default {
     doSend(row){
       console.log(row)
       let sgs={'communityId':this.form.communityId,'communityType':this.form.communityId,'isRoot':1,'commentContent':row,
-      'targetTitle':this.form.communityTitle,'userId':this.userid,'avatar':this.avatar,'nickName':this.nickName
+      'targetTitle':this.form.communityTitle,'userId':this.userid,'avatar':this.avatar,'nickName':this.nickName,'tenantId':this.$store.getters.tenantId,
 
       }
       commentIndexadd(sgs).then(response => {
@@ -284,7 +284,7 @@ export default {
       let sgs={'communityId':this.form.communityId,'communityType':this.form.communityId,
       'isRoot':2,'commentContent':row,'targetTitle':item.content,'parentId': item.id,
       'toUserId':item.commentUser.id,'toNickName':item.commentUser.nickName,'toAvatar':item.commentUser.avatar,
-      'userId':this.userid,'avatar':this.avatar,'nickName':this.nickName
+      'userId':this.userid,'avatar':this.avatar,'nickName':this.nickName,'tenantId':this.$store.getters.tenantId,
       }
       commentIndexadd(sgs).then(response => {
         this.$modal.msgSuccess("评论成功,需等待审核通过后才可展示。");
@@ -303,7 +303,7 @@ export default {
          }
 
          let sng={'targetId':row,'targetType':2,'userId':this.userid,'avatar':this.avatar,'nickName':this.nickName,
-         'targetTitle': item.content}
+         'targetTitle': item.content,'tenantId':this.$store.getters.tenantId,}
          giveTheThumbs(sng).then(response => {
            this.$modal.msgSuccess("操作成功");
            this.isdianz = !this.isdianz
@@ -323,7 +323,8 @@ export default {
     // 点赞文章
     dianzan(){
        let sng={'targetId':this.form.communityId,'targetType':1,'userId':this.userid,
-       'avatar':this.avatar,'nickName':this.nickName,'targetTitle': this.form.communityTitle
+       'avatar':this.avatar,'nickName':this.nickName,'targetTitle': this.form.communityTitle,
+       'tenantId':this.$store.getters.tenantId,
        }
        giveTheThumbs(sng).then(response => {
          this.$modal.msgSuccess("操作成功");
@@ -343,7 +344,9 @@ export default {
     // 收藏文章
     shoucang(){
       let sng={'targetId':this.form.partyId,'targetType':2,'userId':this.userid,
-      'avatar':this.avatar,'nickName':this.nickName,'targetTitle': this.form.partyTitle}
+      'avatar':this.avatar,'nickName':this.nickName,'targetTitle': this.form.partyTitle,
+      'tenantId':this.$store.getters.tenantId,
+      }
       getPartyNewsStars(sng).then(response => {
         this.$modal.msgSuccess("操作成功");
         this.shouca = !this.shouca
@@ -383,7 +386,6 @@ export default {
         item.pageNum = item.pageNum+1
         console.log(item)
        })
-
     },
     // 获取当前时间
     gettime(){

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

@@ -284,6 +284,7 @@ export default {
         coverImage: null,
         viewCount: null,
         isTop: null,
+        tenantId:this.$store.getters.tenantId
       },
       // 表单参数
       form: {},

+ 25 - 18
ruoyi-ui/src/views/wuguan/renyuan/index.vue

@@ -193,9 +193,10 @@
                                                 </el-carousel>
                                             </div>
                       <div class="bortt tongty" style="justify-content: space-between;">
-                        <p style="cursor: pointer;color: #28C529;"><span  v-hasPermi="['wuYe:residentInfo:edit']" @click="handleUpdate(item)">修改</span>  </p>
+                        <p  :class="item.examine ==2?'wide':''" v-if="item.examine !=1" v-hasPermi="['wuYe:residentInfo:edit']" @click="handleUpdate(item)" style="cursor: pointer;color: #28C529;"><span  >修改</span>  </p>
+                         <!-- v-if="item.examine !=2" -->
                         <!-- <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>
+                        <p v-hasPermi="['wuYe:residentInfo:remove']" v-if="item.examine !=2" 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;">
@@ -239,7 +240,7 @@
                 <el-col :span="16">
                   <el-form-item label="小区名称" prop="tenantId">
                   <el-select
-                  disabled
+                  :disabled="isxin && form.examine ==2"
                   style="width: 100%;"
                     v-model="form.tenantId"
                     clearable
@@ -256,7 +257,7 @@
 
               <el-col :span="8">
                 <el-form-item label="门牌号" prop="houseId">
-                   <el-select disabled style="width: 100%;" v-model="form.houseId" placeholder="请选择门牌号" clearable>
+                   <el-select :disabled="isxin && form.examine ==2" style="width: 100%;" v-model="form.houseId" placeholder="请选择门牌号" clearable>
                      <el-option
                      style="width:100%"
                       @click.native="itnegadd(dict)"
@@ -313,7 +314,7 @@
                 </el-form-item>
               </el-col>
 
-              <el-col :span="8">
+              <!-- <el-col :span="8">
                 <el-form-item label="出生日期" prop="birthday">
                   <el-date-picker clearable
                   style="width:100%"
@@ -323,7 +324,7 @@
                               placeholder="请选择居住人员出生日期">
                             </el-date-picker>
                 </el-form-item>
-              </el-col>
+              </el-col> -->
 
               <el-col :span="8">
                 <el-form-item label="人员面貌" prop="residentAppearance">
@@ -454,14 +455,14 @@ export default {
                       { 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"
-              }
-            ]
+            // 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',
@@ -473,7 +474,8 @@ export default {
        isshoe:true,
        tableMaxHeight:'200',
        tenantListtw:[],
-       houseInfoLisen:[]
+       houseInfoLisen:[],
+       isxin:false
     };
   },
   computed: {
@@ -651,7 +653,7 @@ export default {
          let sge = this.getInfo( this.form.residentIdCard)
          this.form.yearsOld = sge.age
          this.form.residentGender = sge.sex + ''
-         this.form.residentBirthday = sge.birth
+         // this.form.residentBirthday = sge.birth
        })
 
      }
@@ -716,7 +718,8 @@ export default {
       }
       this.getListhouvr(this.$store.getters.tenantId)
       this.open = true;
-       this.title = "添加居住人员";
+       this.title = "添加居住人员";
+       this.isxin = false
     },
     /** 修改按钮操作 */
     handleUpdate(row) {
@@ -733,6 +736,7 @@ export default {
                this.title = "修改居住人员";
                this.form.residentGender  = this.form.residentGender + ''
                this.open = true;
+               this.isxin = true
              });
     },
 
@@ -759,7 +763,7 @@ export default {
     /** 删除按钮操作 */
         handleDelete(row) {
           const residentIds = row.residentId || this.ids;
-          let sgwe={'residentId':row.residentId,'userId':row.userId,'tenantId':row.tenantId}
+          let sgwe={'residentId':row.residentId,'userId':row.userId,'tenantId':row.tenantId,'examine':row.examine}
           delResidentInfo(row).then(response => {
             this.$modal.msgSuccess("删除成功");
             this.getList();
@@ -947,6 +951,9 @@ export default {
       text-align: center;
     }
   }
+  .wide{
+      width:100% !important;
+    }
   </style>
 
 

+ 7 - 4
ruoyi-ui/src/views/wuguan/renyuansh/index.vue

@@ -197,8 +197,8 @@
                        <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>
+                       <p :class="item.examine ==2?'wide':''"  style="border-left: 1px solid #DADADAd;border-right: 1px solid #DADADAd ;cursor: pointer;" @click="handleUpdate(item)">查看</p>
+                       <p v-if="item.examine !=2" 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;">
@@ -367,7 +367,7 @@
                 </el-form-item>
               </el-col> -->
             </el-row>
-            <el-row>
+            <el-row v-if="form.residentType == 1 && form.isHouseholder == 'Y'">
               <el-col>
                 <div style="font-size: 16px;color: #333;margin-bottom: 10px;font-weight: 700;">
                   房屋信息
@@ -793,7 +793,7 @@ export default {
     /** 删除按钮操作 */
         handleDelete(row) {
           const residentIds = row.residentId || this.ids;
-          let sgwe={'residentId':row.residentId,'userId':row.userId,'tenantId':row.tenantId}
+          let sgwe={'residentId':row.residentId,'userId':row.userId,'tenantId':row.tenantId,'examine':row.examine}
          delResidentInfo(row).then(response => {
                      this.$modal.msgSuccess("删除成功");
                      this.getList();
@@ -981,6 +981,9 @@ export default {
       text-align: center;
     }
   }
+  .wide{
+      width:100% !important;
+    }
   </style>
 
 

+ 117 - 65
ruoyi-ui/src/views/wuguan/reservRecord/index.vue

@@ -7,61 +7,88 @@
       </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="68px">
-      <el-row>
+          <el-row>
+            <el-col :span="8">
+              <el-form-item label="访客姓名" prop="name">
+                <el-input
+                style="width: 238px;"
+                  v-model="queryParams.name"
+                  placeholder="请输入访客姓名"
+                  @keyup.enter.native="handleQuery"
+                />
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="门牌号码" prop="houseAddress">
+                <el-select  style="width:100%" filterable  v-model="queryParams.houseAddress" 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="name">
-            <el-input
-              v-model="queryParams.name"
-              placeholder="请输入访客姓名"
-              clearable
-              @keyup.enter.native="handleQuery"
-            />
-          </el-form-item>
-        </el-col>
-        <el-col :span="8">
-          <el-form-item label="手机号码" prop="mobileNumber">
-            <el-input
-              v-model="queryParams.mobileNumber"
-              placeholder="请输入手机号码"
-              clearable
-              @keyup.enter.native="handleQuery"
-            />
-          </el-form-item>
-        </el-col>
-        <el-col :span="8">
-          <el-form-item label="是否驾车 " prop="isCar">
-            <el-select v-model="queryParams.isCar" 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="status">
-            <el-select v-model="queryParams.status" placeholder="请选择状态" clearable>
-              <el-option
-                v-for="dict in dict.type.yuyetype"
-                :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">
-            <el-button type="primary"  size="mini" @click="handleQuery">搜索</el-button>
-            <el-button  size="mini" @click="resetQuery">重置</el-button>
-          </el-form-item>
-        </el-col>
-      </el-row>
+            <el-col :span="8">
+              <el-form-item label="手机号码" prop="mobileNumber">
+                <el-input
+                  v-model="queryParams.mobileNumber"
+                  placeholder="请输入手机号码"
+                  clearable
+                  style="width: 238px;"
+                  @keyup.enter.native="handleQuery"
+                />
+              </el-form-item>
+            </el-col>
 
-    </el-form>
+            <el-col :span="8">
+              <el-form-item label="是否驾车" prop="isCar">
+                <el-select  style="width: 238px;" v-model="queryParams.isCar" 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="status">
+                <el-select v-model="queryParams.status" placeholder="请选择状态" clearable>
+                  <el-option
+                    v-for="dict in dict.type.visitor_status"
+                    :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="createTime">
+                      <el-date-picker clearable
+                      style="width:238px"
+                        v-model="queryParams.params.createTime"
+                        type="date"
+                        value-format="yyyy-MM-dd"
+                        placeholder="请选择来访时间">
+                      </el-date-picker>
+               </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item class="butt">
+                <el-button type="primary"  size="mini" @click="handleQuery">搜索</el-button>
+                <el-button  size="mini" @click="resetQuery">重置</el-button>
+              </el-form-item>
+            </el-col>
+          </el-row>
+
+        </el-form>
     </div>
    <div class="casr">
     <el-row :gutter="10" class="mb8">
@@ -108,24 +135,34 @@
 
     <el-table :max-height="tableMaxHeight" v-loading="loading" :data="reservRecordList" @selection-change="handleSelectionChange">
       <el-table-column type="selection" width="55" align="center" />
-      <el-table-column label="详细门牌号" align="center" prop="houseAddress" width="100"/>
+      <el-table-column label="详细门牌号" align="center" prop="houseAddress" width="140"/>
       <el-table-column label="分享人姓名" align="center" prop="shareName" width="100" />
       <el-table-column label="访客姓名" align="center" prop="name" />
       <el-table-column label="来访人数" align="center" prop="num" />
-      <el-table-column label="来访事由" align="center" prop="reason" width="100" show-overflow-tooltip/>
+      <el-table-column label="来访事由" align="center" prop="reason" width="100" show-overflow-tooltip>
+        <template slot-scope="scope">
+          <dict-tag :options="dict.type.visit_reason" :value="scope.row.reason"/>
+        </template>
+      </el-table-column>
+     <!-- <el-table-column label="来访事由" align="center"  width="100" show-overflow-tooltip/>
+      <template slot-scope="scope">
+      <dict-tag :options="dict.type.visit_reason" :value="scope.row.reason - 0"/>
+      </template>
+      </el-table-column> -->
+      <!-- <el-table-column label="来访事由" align="center" prop="reason" width="100" show-overflow-tooltip/> -->
       <el-table-column label="手机号码" align="center" prop="mobileNumber" width="120" />
       <el-table-column label="是否驾车" align="center" prop="isCar">
         <template slot-scope="scope">
           <dict-tag :options="dict.type.sys_yes_no" :value="scope.row.isCar"/>
         </template>
       </el-table-column>
-      <el-table-column label="车牌号码" align="center" prop="plateNumber" width="100"/>
+      <el-table-column label="车牌号码" align="center" prop="plateNumber" width="100" show-overflow-tooltip/>
       <el-table-column label="预约时间" align="center" prop="reserveTime" width="120">
         <template slot-scope="scope">
           <span>{{ scope.row.reserveTime}}</span>
         </template>
       </el-table-column>
-      <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>
@@ -169,8 +206,8 @@
     <!-- 添加或修改预约记录对话框 -->
     <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
       <el-form ref="form" :model="form" :rules="rules" label-width="80px">
-        <el-form-item label="门户id" prop="portalId">
-          <el-input v-model="form.portalId" placeholder="请输入门户id" />
+        <el-form-item label="门户id" prop="houseId">
+          <el-input v-model="form.houseId" placeholder="请输入门户id" />
         </el-form-item>
         <el-form-item label="详细门牌号" prop="houseAddress">
           <el-input v-model="form.houseAddress" placeholder="请输入详细门牌号" />
@@ -247,11 +284,11 @@
 </template>
 
 <script>
-import { listReservRecord, getReservRecord, delReservRecord, addReservRecord, updateReservRecord } from "@/api/wuguan/reservRecord";
-
+import { listReservRecord, getReservRecord, delReservRecord, addReservRecord, updateReservRecord, } from "@/api/wuguan/reservRecord";
+import { listHouseInfo,listNoPage, getHouseInfo, delHouseInfo, addHouseInfo, updateHouseInfo } from "@/api/wuguan/houseInfo";
 export default {
   name: "ReservRecord",
-  dicts: ['yuyetype','sys_yes_no'],
+  dicts: ['yuyetype','sys_yes_no','visit_reason'],
   data() {
     return {
       // 遮罩层
@@ -276,7 +313,7 @@ export default {
       queryParams: {
         pageNum: 1,
         pageSize: 10,
-        portalId: null,
+        houseId: null,
         houseAddress: null,
         detailAddress: null,
         lgt: null,
@@ -292,13 +329,16 @@ export default {
         visitorTime: null,
         status: null,
         photo: null,
+        params:{
+          createTime:null
+        }
 
       },
       // 表单参数
       form: {},
       // 表单校验
       rules: {
-        portalId: [
+        houseId: [
           { required: true, message: "门户id不能为空", trigger: "blur" }
         ],
         houseAddress: [
@@ -321,10 +361,12 @@ export default {
         ],
       },
       tableMaxHeight:'200',
+      houseInfoLise:[]
     };
   },
   created() {
     this.getList();
+    this.getListhouvr()
   window.onresize = () => {
   	      this.changeTableMaxHeight()
   	    }
@@ -337,6 +379,11 @@ export default {
   	        this.changeTableMaxHeight()
   },
   methods: {
+    getListhouvr() {
+       listNoPage().then(response => {
+         this.houseInfoLise  = response.data;
+       });
+     },
     /** 查询预约记录列表 */
     getList() {
       this.loading = true;
@@ -355,7 +402,7 @@ export default {
     reset() {
       this.form = {
         reservRecordId: null,
-        portalId: null,
+        houseId: null,
         houseAddress: null,
         detailAddress: null,
         lgt: null,
@@ -386,6 +433,7 @@ export default {
     },
     /** 重置按钮操作 */
     resetQuery() {
+      this.queryParams.params.createTime = null
       this.resetForm("queryForm");
       this.handleQuery();
     },
@@ -445,6 +493,10 @@ export default {
         ...this.queryParams
       }, `reservRecord_${new Date().getTime()}.xlsx`)
     },
+    itneg(item){
+      // this.queryParams.houseId = item.houseId
+      this.queryParams.houseAddress = item.detailedAddress
+    },
     // 获取屏幕高度
     showFilterForm () {
           this.filterActive = !this.filterActive

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

@@ -106,7 +106,7 @@
     </el-row>
     <el-table :max-height="tableMaxHeight" v-loading="loading" :data="suggestionList" @selection-change="handleSelectionChange">
       <el-table-column type="selection" width="55" align="center" />
-      <el-table-column label="标题" align="center" prop="title" />
+      <!-- <el-table-column label="标题" align="center" prop="title" /> -->
       <el-table-column label="内容" align="center" prop="content" width="180"show-overflow-tooltip/>
       <el-table-column label="投诉照片" align="center" prop="images" >
       <template slot-scope="scope">

+ 87 - 48
ruoyi-ui/src/views/wuguan/visitorManage/index.vue

@@ -8,9 +8,19 @@
       <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="68px">
       <el-row>
+        <el-col :span="8">
+          <el-form-item label="访客姓名" prop="name">
+            <el-input
+            style="width: 238px;"
+              v-model="queryParams.name"
+              placeholder="请输入访客姓名"
+              @keyup.enter.native="handleQuery"
+            />
+          </el-form-item>
+        </el-col>
         <el-col :span="8">
           <el-form-item label="门牌号码" prop="houseAddress">
-            <el-select v-model="queryParams.houseAddress" placeholder="请选择门牌号" >
+            <el-select  style="width:100%" filterable  v-model="queryParams.houseAddress" placeholder="请选择门牌号" >
               <el-option
                @click.native="itneg(dict)"
                 v-for="dict in houseInfoLise"
@@ -21,21 +31,23 @@
             </el-select>
           </el-form-item>
         </el-col>
+
         <el-col :span="8">
-          <el-form-item label="访客姓名" prop="name">
+          <el-form-item label="手机号码" prop="mobileNumber">
             <el-input
-            style="width: 238px;"
-              v-model="queryParams.name"
-              placeholder="请输入访客姓名"
+              v-model="queryParams.mobileNumber"
+              placeholder="请输入手机号码"
+              clearable
               @keyup.enter.native="handleQuery"
             />
           </el-form-item>
         </el-col>
         <el-col :span="8">
-          <el-form-item label="手机号码" prop="mobileNumber">
+          <el-form-item label="车牌号码" prop="plateNumber">
             <el-input
-              v-model="queryParams.mobileNumber"
-              placeholder="请输入手机号码"
+            style="width: 238px;"
+              v-model="queryParams.plateNumber"
+              placeholder="请输入车牌号码"
               clearable
               @keyup.enter.native="handleQuery"
             />
@@ -43,7 +55,7 @@
         </el-col>
         <el-col :span="8">
           <el-form-item label="是否驾车" prop="isCar">
-            <el-select v-model="queryParams.isCar" placeholder="请选择是否驾车" clearable>
+            <el-select  style="width:100%" v-model="queryParams.isCar" placeholder="请选择是否驾车" clearable>
               <el-option
                 v-for="dict in dict.type.sys_yes_no"
                 :key="dict.value"
@@ -53,17 +65,7 @@
             </el-select>
           </el-form-item>
         </el-col>
-        <el-col :span="8">
-          <el-form-item label="车牌号码" prop="plateNumber">
-            <el-input
-            style="width: 238px;"
-              v-model="queryParams.plateNumber"
-              placeholder="请输入车牌号码"
-              clearable
-              @keyup.enter.native="handleQuery"
-            />
-          </el-form-item>
-        </el-col>
+
         <el-col :span="8">
           <el-form-item label="状态" prop="status">
             <el-select v-model="queryParams.status" placeholder="请选择状态" clearable>
@@ -76,11 +78,25 @@
             </el-select>
           </el-form-item>
         </el-col>
+        <el-col :span="8">
+          <el-form-item label="来访时间" prop="createTime">
+                  <el-date-picker clearable
+                  style="width:238px"
+                    v-model="queryParams.params.createTime"
+                    type="date"
+                    value-format="yyyy-MM-dd"
+                    placeholder="请选择来访时间">
+                  </el-date-picker>
+           </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item class="butt">
+            <el-button type="primary"  size="mini" @click="handleQuery">搜索</el-button>
+            <el-button  size="mini" @click="resetQuery">重置</el-button>
+          </el-form-item>
+        </el-col>
       </el-row>
-      <el-form-item class="butt">
-        <el-button type="primary"  size="mini" @click="handleQuery">搜索</el-button>
-        <el-button  size="mini" @click="resetQuery">重置</el-button>
-      </el-form-item>
+
     </el-form>
     </div>
 
@@ -126,13 +142,18 @@
       </el-col>
       <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
     </el-row>
-
-    <el-table :max-height="tableMaxHeight" v-loading="loading" :data="visitorManageList" @selection-change="handleSelectionChange">
-      <el-table-column type="selection" width="55" align="center" />
-      <el-table-column label="门牌号" align="center" prop="houseAddress" />
+  <!-- :max-height="tableMaxHeight" -->
+    <el-table  v-loading="loading" :data="visitorManageList" @selection-change="handleSelectionChange">
+      <!-- <el-table-column type="selection" width="55" align="center" /> -->
+      <el-table-column label="门牌号" align="center" prop="houseAddress"  />
       <el-table-column label="访客姓名" align="center" prop="name" />
       <el-table-column label="来访人数" align="center" prop="num" />
-      <el-table-column label="来访事由" align="center" prop="reason" width="100" show-overflow-tooltip/>
+      <el-table-column label="来访事由" align="center" prop="reason" width="100" show-overflow-tooltip>
+        <template slot-scope="scope">
+          <dict-tag :options="dict.type.visit_reason" :value="scope.row.reason"/>
+        </template>
+      </el-table-column>
+
       <el-table-column label="手机号码" align="center" prop="mobileNumber" width="120" />
       <el-table-column label="是否驾车" align="center" prop="isCar">
         <template slot-scope="scope">
@@ -190,7 +211,7 @@
       <el-form ref="form" :model="form" :rules="rules" label-width="80px">
         <el-row>
           <el-col :span="12">
-            <el-form-item label="门牌号" prop="houseAddress">
+            <el-form-item  label="门牌号" prop="houseAddress">
                <el-select filterable  style="width: 100%;" v-model="form.houseAddress" placeholder="请选择门牌号" clearable>
                  <el-option
                   @click.native="itnegadd(dict)"
@@ -241,15 +262,22 @@
               <el-date-picker clearable
               style="width:100%"
                 v-model="form.visitorTime"
-                type="date"
-                value-format="yyyy-MM-dd"
+                type="datetime"
+                value-format="yyyy-MM-dd HH:mm:ss"
                 placeholder="请选择来访时间">
               </el-date-picker>
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="来访事由" prop="reason">
-              <el-input v-model="form.reason" type="textarea" placeholder="请输入内容" />
+              <el-select v-model="form.reason" placeholder="请选择来访事由">
+                <el-option
+                  v-for="dict in dict.type.visit_reason"
+                  :key="dict.value"
+                  :label="dict.label"
+                  :value="dict.value"
+                ></el-option>
+              </el-select>
             </el-form-item>
           </el-col>
         </el-row>
@@ -267,7 +295,7 @@ import { listVisitorManage, getVisitorManage, delVisitorManage, addVisitorManage
 import { listHouseInfo,listNoPage, getHouseInfo, delHouseInfo, addHouseInfo, updateHouseInfo } from "@/api/wuguan/houseInfo";
 export default {
   name: "VisitorManage",
-  dicts: ['visitor_status', 'sys_yes_no'],
+  dicts: ['visitor_status', 'sys_yes_no','visit_reason'],
   data() {
     return {
       // 遮罩层
@@ -292,7 +320,7 @@ export default {
       queryParams: {
         pageNum: 1,
         pageSize: 8,
-        portalId: null,
+        houseId: null,
         houseAddress: null,
         name: null,
         num: null,
@@ -304,6 +332,9 @@ export default {
         visitorTime: null,
         status: null,
         photo: null,
+        params:{
+          createTime:null
+        }
       },
       // 表单参数
       form: {},
@@ -361,21 +392,21 @@ export default {
     // 获取当前时间
     gettime(){
       let nowDate = new Date()
-      				  let date = {
-      				    year: nowDate.getFullYear(),
-      				    month: nowDate.getMonth() + 1,
-      				    date: nowDate.getDate()
-      				  }
+                //获取当前时间并打印
+                        var _this = this;
+                      let yy = new Date().getFullYear();
+                      let mm = new Date().getMonth()+1;
+                      let dd = new Date().getDate();
+                      let hh = new Date().getHours();
+                      let mf = new Date().getMinutes()<10 ? '0'+new Date().getMinutes() : new Date().getMinutes();
+                      let ss = new Date().getSeconds()<10 ? '0'+new Date().getSeconds() : new Date().getSeconds();
+                      _this.systemTime = yy+'-'+mm+'-'+dd+' '+hh+':'+mf+':'+ss;
 
-      				   if (parseInt(date.date) < 10) {
-      				      date.date = '0' + date.date
-      				    }
-      				  this.systemTime = date.year + '-' + date.month + '-' + date.date
 
     },
     getListhouvr() {
        listNoPage().then(response => {
-         this.houseInfoLise  = response.rows;
+         this.houseInfoLise  = response.data;
        });
      },
     // 取消按钮
@@ -387,7 +418,7 @@ export default {
     reset() {
       this.form = {
         visitorManageId: null,
-        portalId: null,
+        houseId: null,
         houseAddress: null,
         name: null,
         num: null,
@@ -410,10 +441,12 @@ export default {
     /** 搜索按钮操作 */
     handleQuery() {
       this.queryParams.pageNum = 1;
+
       this.getList();
     },
     /** 重置按钮操作 */
     resetQuery() {
+      this.queryParams.params.createTime = null
       this.resetForm("queryForm");
       this.handleQuery();
     },
@@ -474,11 +507,11 @@ export default {
       }, `visitorManage_${new Date().getTime()}.xlsx`)
     },
     itneg(item){
-      // this.queryParams.portalId = item.houseId
+      // this.queryParams.houseId = item.houseId
       this.queryParams.houseAddress = item.detailedAddress
     },
     itnegadd(item){
-      this.form.portalId = item.houseId
+      this.form.houseId = item.houseId
       this.form.houseAddress = item.detailedAddress
       console.log(item)
     },
@@ -489,6 +522,12 @@ export default {
         this.$message.error('请输入正确格式的车牌号码');
       }
     },
+   uploadedSuccessfully(row){
+     row.filter(rou=>{
+       this.form.plateNumber = rou.plateNumber
+       // this.getListcd(rou.plateNumber)
+     })
+   },
     // 获取屏幕高度
     showFilterForm () {
           this.filterActive = !this.filterActive

+ 41 - 24
ruoyi-ui/src/views/wuguan/weitingchel/index.vue

@@ -79,6 +79,17 @@
                         </el-select>
                       </el-form-item>
               </el-col>
+              <el-col :span="8">
+                <el-form-item label="违停时间" prop="createTime">
+                        <el-date-picker clearable
+
+                          v-model="queryParams.params.createTime"
+                          type="date"
+                          value-format="yyyy-MM-dd"
+                          placeholder="请选择违停时间">
+                        </el-date-picker>
+                 </el-form-item>
+              </el-col>
 
             </el-col>
           </el-row>
@@ -169,9 +180,9 @@
                         <p>
                           手机号码:{{item.mobileNumber == null?'暂无数据' : item.mobileNumber}}
                         </p>
-                        <!-- <p>
+                        <p>
                           登记时间:{{item.createTime == null?'暂无数据' : item.createTime}}
-                        </p> -->
+                        </p>
                         <p>
                           人员姓名:{{item.visitName == null?'暂无数据' : item.visitName}}
                         </p>
@@ -183,12 +194,12 @@
                         </div>
                       </div>
                       <div class="bortt tongty" style="justify-content: space-between;">
-                        <p v-if="item.isBlack == 'Y'" style="cursor: pointer;overflow: hidden;text-overflow: ellipsis; white-space: nowrap;"> <span v-hasPermi="['wuYe:illegalParking:cancel']" @click="handleUpdatef(item)" style="color: #ffba00; cursor: pointer;">解除黑名单</span>  </p>
+                        <p v-if="item.isBlack == 'Y'" v-hasPermi="['wuYe:illegalParking:cancel']" @click="handleUpdatef(item)" style="cursor: pointer;overflow: hidden;text-overflow: ellipsis; white-space: nowrap;"> <span  style="color: #ffba00; cursor: pointer;">解除黑名单</span>  </p>
                         <!-- <span @click="handleUpdatef(item)">查看</span> -->
-                        <p style="cursor: pointer;border-left: 1px solid #DADADA;border-right: 1px solid #DADADA;"><span  v-hasPermi="['wuYe:illegalParking:edit']" @click="handleUpdate(item)" style="color: #1890ff;">修改</span></p>
-                        <p  style="cursor: pointer;;">
+                        <p style="cursor: pointer;border-left: 1px solid #DADADA;border-right: 1px solid #DADADA;" v-hasPermi="['wuYe:illegalParking:edit']" @click="handleUpdate(item)"><span   style="color: #1890ff;">修改</span></p>
+                        <p  style="cursor: pointer;;"  v-hasPermi="['wuYe:illegalParking:remove']" @click="handleDelete(item)">
                          <!-- <span   style="cursor: pointer;;margin: 0 5px;color:rgb(218, 218, 218);">|</span> -->
-                         <span v-hasPermi="['wuYe:illegalParking:remove']" style="color:red" @click="handleDelete(item)">删除</span>
+                         <span style="color:red" >删除</span>
                          </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;">
@@ -328,13 +339,16 @@ export default {
         pageNum: 1,
                 pageSize: 8,
                 plateNumber: null,
-                portalId: null,
+                houseId: null,
                 visitPortal: null,
                 mobileNumber: null,
                 visitName: null,
                 illegalPhoto: null,
                 carType: '1',
                 isBlack: 'N',
+                params:{
+                  createTime:null
+                }
       },
       // 表单参数
       form: {},
@@ -343,12 +357,12 @@ export default {
         plateNumber: [
                   { required: true, message: "车牌号码不能为空", trigger: "blur" }
                 ],
-      portalId: [
-                  { required: true, message: "门户id不能为空", trigger: "blur" }
-                ],
-                visitPortal: [
-                  { required: true, message: "关联门户不能为空", trigger: "blur" }
-                ],
+      // houseId: [
+      //             { required: true, message: "门户id不能为空", trigger: "blur" }
+      //           ],
+      //           visitPortal: [
+      //             { required: true, message: "关联门户不能为空", trigger: "blur" }
+      //           ],
                 mobileNumber: [
                   { required: true, message: "手机号码不能为空", trigger: "blur" }
                 ],
@@ -414,11 +428,13 @@ export default {
           }
           if(rou.children != null){
             rou.children.filter(routt=>{
-              routt.illegalPhoto = routt.illegalPhoto.split(',')
-               routt.illegalPhoto.filter(routti =>{
-                 let sngse = {'url':routti,'time':routt.createTime}
-                 rou.imgs.push(sngse)
-               })
+              if(routt.illegalPhoto != null && routt.illegalPhoto !=''){
+                routt.illegalPhoto = routt.illegalPhoto.split(',')
+                 routt.illegalPhoto.filter(routti =>{
+                   let sngse = {'url':routti,'time':routt.createTime}
+                   rou.imgs.push(sngse)
+                 })
+              }
             })
 
           }
@@ -432,7 +448,7 @@ export default {
     },
     getListhouvr() {
        listNoPage().then(response => {
-         this.houseInfoLise  = response.rows;
+         this.houseInfoLise  = response.data;
        });
      },
      uploadedSuccessfully(row){
@@ -450,7 +466,7 @@ export default {
           if(this.carList.length != 0){
             this.carList.filter(rou=>{
               this.form.visitPortal = rou.detailedAddress
-              this.form.portalId = rou.houseId
+              this.form.houseId = rou.houseId
               this.form.mobileNumber = rou.residentPhone
             })
           }
@@ -467,7 +483,7 @@ export default {
       this.form = {
               illegalParkingId: null,
               plateNumber: null,
-              portalId: null,
+              houseId: null,
               visitPortal: null,
               mobileNumber: null,
               visitName: null,
@@ -491,7 +507,8 @@ export default {
     resetQuery() {
       this.resetForm("queryForm");
       this.queryParams.carType = null
-      this.queryParams.portalId = null
+      this.queryParams.houseId = null
+      this.queryParams.params.createTime = null
       this.handleQuery();
     },
     // 多选框选中数据
@@ -570,11 +587,11 @@ export default {
       this.isshoe = true
     },
     itneg(item){
-      this.queryParams.portalId = item.houseId
+      this.queryParams.houseId = item.houseId
       this.queryParams.visitPortal = item.detailedAddress
     },
     itnegadd(item){
-      this.form.portalId = item.houseId
+      this.form.houseId = item.houseId
       this.form.visitPortal = item.detailedAddress
       console.log(item)
     },

+ 66 - 53
ruoyi-ui/src/views/wuguan/weixiurenyuan/index.vue

@@ -23,11 +23,11 @@
                 <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"
-                          />
+                                                     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>
@@ -35,7 +35,7 @@
                 <el-form-item label="维修分类" prop="maintenanceCategory">
                         <el-select v-model="queryParams.maintenanceCategory" placeholder="请选择维修分类" clearable>
                           <el-option
-                            v-for="dict in dict.type.weixiutype"
+                            v-for="dict in dict.type.baoxiutype"
                             :key="dict.value"
                             :label="dict.label"
                             :value="dict.value"
@@ -127,7 +127,7 @@
                 </el-col>
                 <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
               </el-row>
-              <div class="infinite-list" :style="dynamicStyle">
+              <div class="infinite-list" :style="dynamicStyle" v-if="isshoue">
                 <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;">
@@ -140,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; 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 style="margin-bottom: 10px; line-height: 28px; ">
+                          人员类别:<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>
+                        <div style="line-height: 28px;">维修类别:<dict-tag :options="dict.type.baoxiutype" :value="item.maintenanceCategory"/></div>
                         <p>
                           手机号码:{{item.phoneNumber == null? '暂无数据' : item.phoneNumber}}
                         </p>
@@ -171,9 +171,9 @@
                           </el-carousel>
                       </div>
                       <div class="bortt tongty" style="justify-content: space-between;cursor: pointer;">
-                        <p ><span style="cursor: pointer;color: #28C529;"  v-hasPermi="['wuYe:staffManage:editAuthentication']" @click="handleUpdate(item)">修改</span>  </p>
+                        <p :class="item.examine ==2?'wide':''" v-if="item.examine !=1"><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:deleteStaffManage']" style="cursor: pointer;border-left: 1px solid #DADADA;color:red" @click="handleDelete(item)">删除</p>
+                        <p  v-if="item.examine !=2" 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>
@@ -213,10 +213,12 @@
                			  v-model="form.tenantId"
                			  clearable
                			  filterable
+                      :disabled="ijsgwe && form.examine ==2"
                			  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>
+                    <!-- @click.native="chahue(item)" -->
+               			  <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>
@@ -235,21 +237,21 @@
           </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 :disabled="ijsgwe && form.examine ==2" 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-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"
+                          v-for="dict in dict.type.baoxiutype"
                           :key="dict.value"
                           :label="dict.label"
                           :value="dict.value"
@@ -311,7 +313,7 @@ import {listNoPage,listRole} from "@/api/system/role";
 const defaultSettings = require("@/settings.js");
 export default {
    name: "StaffManage",
-    dicts: ['yaungong', 'gender', 'technician_selection','weixiutype','renzhen_sh'],
+    dicts: ['yaungong', 'gender', 'technician_selection','weixiutype','renzhen_sh','baoxiutype'],
   data() {
     return {
       // 遮罩层
@@ -379,7 +381,9 @@ export default {
        imgurw:'',
        roleList:[],
        roleListt:[],
-       usename:''
+       usename:'',
+       isshoue:false,
+       ijsgwe:false
     };
   },
 
@@ -395,10 +399,10 @@ export default {
 
   created() {
     this.usename = this.$store.state.user.name
-   this.getrou(this.$store.getters.tenantId)
+   // this.getrou(this.$store.getters.tenantId)
     this.getnhgwzuhue()
-    this.getListtne()
-
+    this.getList()
+    // this.getListtne()
   window.onresize = () => {
   	      this.changeTableMaxHeight()
   	    }
@@ -429,34 +433,35 @@ export default {
                       rou.value=rou.roleKey
                       rou.label=rou.roleName
                     })
+                // this.getList();
         }
       );
     },
     // 小区切换
     chahue(row){
-      this.getrou(row.tenantId)
+      // 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();
-                        }
-                      );
-                    },
+    // 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}
@@ -478,6 +483,7 @@ export default {
     /** 查询岗位列表 */
     getList() {
           this.loading = true;
+          this.isshoue = false
           listStaffManage(this.queryParams).then(response => {
             this.staffManageList  = response.rows;
             this.staffManageList .filter(rou=>{
@@ -489,11 +495,12 @@ export default {
                 rou.imges.push(rou.idCardBack)
               }
               rou.isnum = false
-              rou.staffCategorylable = this.selectDictLabel(this.roleListt, rou.staffCategory)
+              // rou.staffCategorylable = this.selectDictLabel(this.roleListt, rou.staffCategory)
             })
             // this.getge(this.postList)
             this.total = response.total;
             this.loading = false;
+            this.isshoue = true
           });
         },
         imge(row){
@@ -571,7 +578,7 @@ export default {
               staffId: null,
               staffName: null,
               gender: null,
-              staffCategory: null,
+              staffCategory:'property_management',
               maintenanceCategory: null,
               phoneNumber: null,
               avatarPhoto: null,
@@ -610,9 +617,10 @@ export default {
     /** 新增按钮操作 */
     handleAdd() {
       this.reset();
-      this.getrou(this.$store.getters.tenantId)
+      // this.getrou(this.$store.getters.tenantId)
       this.open = true;
       this.title = "添加员工管理";
+      this.ijsgwe = false
     },
     /** 修改按钮操作 */
     handleUpdate(row) {
@@ -620,7 +628,8 @@ export default {
            const staffId = row.staffId || this.ids
            getStaffManage(staffId).then(response => {
              this.form = response.data;
-             this.getrou( this.form.tenantId)
+             this.ijsgwe = true
+             // this.getrou( this.form.tenantId)
              this.open = true;
              this.title = "修改员工管理";
            });
@@ -630,6 +639,7 @@ export default {
       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;
@@ -648,7 +658,7 @@ export default {
     /** 删除按钮操作 */
         handleDelete(row) {
           // const staffIds = row.staffId || this.ids;
-          let staffIds={'staffId':row.staffId,'userId':row.userId,'tenantId':row.tenantId}
+          let staffIds={'staffId':row.staffId,'userId':row.userId,'tenantId':row.tenantId,'examine':row.examine}
           deleteStaffManage(staffIds).then(response => {
                   this.$modal.msgSuccess("删除成功");
                   this.getList();
@@ -834,6 +844,9 @@ export default {
       text-align: center;
     }
   }
+  .wide{
+    width:100% !important;
+  }
   </style>
 
 

+ 17 - 19
ruoyi-ui/src/views/wuguan/weixiurenyuansh/index.vue

@@ -21,21 +21,19 @@
               </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 roleListt"
-                                          :key="dict.roleKey"
-                                          :label="dict.roleName"
-                                          :value="dict.roleKey"
-                                        />
-                                      </el-select>
+                                      <el-option
+                                                                 v-for="dict in dict.type.yaungong"
+                                                                 :key="dict.value"
+                                                                 :label="dict.label"
+                                                                 :value="dict.value"
+                                                                 ></el-option>
                                     </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"
+                            v-for="dict in dict.type.baoxiutype"
                             :key="dict.value"
                             :label="dict.label"
                             :value="dict.value"
@@ -136,14 +134,14 @@
                         <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: 10px;" @click="handleDelete(item)"  >
+                        <img src="../../../assets/images/renyuandelet.png" alt="" style="width: 73px;height: 24px;position: absolute;right: 0;top: 10px;" @click="handleDelete(item)" v-hasPermi="['wuYe:staffManage:remove']" v-if="item.examine !=2">
                         <!-- <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;">
-                          人员类别:<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="margin-bottom: 10px; line-height: 28px; ">
+                                                  人员类别:<dict-tag :options="dict.type.yaungong" :value="item.staffCategory"/>
+                                                </div>
+                        <div>维修类别:<dict-tag :options="dict.type.baoxiutype" :value="item.maintenanceCategory"/></div>
                         <p>
                           手机号码:{{item.phoneNumber == null? '暂无数据' : item.phoneNumber}}
                         </p>
@@ -173,11 +171,11 @@
                       </div>
 
                       <div class="bortt tongty" style="justify-content: space-between;cursor: pointer;">
-                        <p v-if="item.examine == 1" v-hasPermi="['wuYe:staffManage:examine']"><span style="color: #28C529; cursor: pointer;"   @click="handleUpdate(item)">通过</span>  </p>
+                        <p v-if="item.examine == 1" v-hasPermi="['wuYe:staffManage:examineStaff']"><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-if="item.examine == 1" v-hasPermi="['wuYe:staffManage:examine']" style="color:red;cursor: pointer;" @click="handleUpdateb(item)">驳回</p>
+                        <p v-if="item.examine == 1" v-hasPermi="['wuYe:staffManage:examineStaff']" 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>
@@ -238,7 +236,7 @@
             <el-form-item label="维修分类" prop="maintenanceCategory">
                       <el-select clearable v-model="form.maintenanceCategory" placeholder="请选择维修分类">
                         <el-option
-                          v-for="dict in dict.type.weixiutype"
+                          v-for="dict in dict.type.baoxiutype"
                           :key="dict.value"
                           :label="dict.label"
                           :value="dict.value"
@@ -298,7 +296,7 @@ const defaultSettings = require("@/settings.js");
 import {listNoPage,listRole} from "@/api/system/role";
 export default {
    name: "StaffManage",
-    dicts: ['yaungong', 'gender', 'technician_selection','weixiutype','renzhen_sh'],
+    dicts: ['yaungong', 'gender', 'technician_selection','weixiutype','renzhen_sh','baoxiutype'],
   data() {
     return {
       // 遮罩层
@@ -628,7 +626,7 @@ export default {
     },
     /** 删除按钮操作 */
         handleDelete(row) {
-          let staffIds={'staffId':row.staffId,'userId':row.userId,'tenantId':row.tenantId}
+          let staffIds={'staffId':row.staffId,'userId':row.userId,'tenantId':row.tenantId,'examine':row.examine}
           deleteStaffManage(staffIds).then(response => {
                   this.$modal.msgSuccess("删除成功");
                   this.getList();

+ 24 - 23
ruoyi-ui/src/views/wuguan/weixiurenyuanshme/index.vue

@@ -23,7 +23,7 @@
                 <el-form-item label="维修分类" prop="maintenanceCategory">
                         <el-select v-model="queryParams.maintenanceCategory" placeholder="请选择维修分类" clearable>
                           <el-option
-                            v-for="dict in dict.type.weixiutype"
+                            v-for="dict in dict.type.baoxiutype"
                             :key="dict.value"
                             :label="dict.label"
                             :value="dict.value"
@@ -139,10 +139,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; display: flex;align-items: center;">
+                        <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>
+                        </div>
+                        <div style="line-height: 28px;">维修类别:<dict-tag :options="dict.type.baoxiutype" :value="item.maintenanceCategory"/></div>
                         <p>
                           手机号码:{{item.phoneNumber == null? '暂无数据' : item.phoneNumber}}
                         </p>
@@ -170,10 +170,10 @@
                           </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>
+                        <p v-hasPermi="['wuYe:staffManage:edit']" v-if="item.examine !=2"><span   @click="handleUpdate(item)" >修改</span>  </p>
+                        <p  style="" @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> -->
+                        <p v-if="item.examine !=2 "  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>
@@ -216,7 +216,8 @@
                			  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>
+                    <!-- @click.native="chahue(item)" -->
+               			  <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>
@@ -236,20 +237,20 @@
           <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-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-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"
+                          v-for="dict in dict.type.baoxiutype"
                           :key="dict.value"
                           :label="dict.label"
                           :value="dict.value"
@@ -308,7 +309,7 @@ import {listNoPage} from "@/api/system/role";
 const defaultSettings = require("@/settings.js");
 export default {
    name: "StaffManage",
-    dicts: ['yaungong', 'gender', 'technician_selection','weixiutype','renzhen_sh'],
+    dicts: ['yaungong', 'gender', 'technician_selection','weixiutype','renzhen_sh','baoxiutype'],
   data() {
     return {
       // 遮罩层
@@ -392,7 +393,7 @@ export default {
   created() {
     this.getList();
     this.getnhgwzuhue()
-    this.getrou(this.$store.getters.tenantId)
+    // this.getrou(this.$store.getters.tenantId)
   window.onresize = () => {
   	      this.changeTableMaxHeight()
   	    }
@@ -538,7 +539,7 @@ export default {
               staffId: null,
               staffName: null,
               gender: null,
-              staffCategory: null,
+              staffCategory: 'wuYe:suggestion:list',
               maintenanceCategory: null,
               phoneNumber: null,
               avatarPhoto: null,
@@ -578,7 +579,7 @@ export default {
     /** 新增按钮操作 */
     handleAdd() {
       this.reset();
-      this.getrou(this.$store.getters.tenantId)
+      // this.getrou(this.$store.getters.tenantId)
       this.open = true;
       this.title = "添加认证信息";
     },
@@ -588,7 +589,7 @@ export default {
            const staffId = row.staffId || this.ids
            getStaffManage(staffId).then(response => {
              this.form = response.data;
-             this.getrou(this.form.tenantId)
+             // this.getrou(this.form.tenantId)
              this.open = true;
              this.title = "修改信息";
            });
@@ -598,7 +599,7 @@ export default {
             const staffId = row.staffId || this.ids
             getStaffManage(staffId).then(response => {
               this.form = response.data;
-              this.getrou(this.form.tenantId)
+              // this.getrou(this.form.tenantId)
               this.open = true;
               this.title = "查看信息";
             });
@@ -627,7 +628,7 @@ export default {
     /** 删除按钮操作 */
         handleDelete(row) {
           // const staffIds = row.staffId || this.ids;
-          let staffIds={'staffId':row.staffId,'userId':row.userId,'tenantId':row.tenantId}
+          let staffIds={'staffId':row.staffId,'userId':row.userId,'tenantId':row.tenantId,'examine':row.examine}
                     deleteStaffManage(staffIds).then(response => {
                             this.$modal.msgSuccess("删除成功");
                             this.getList();

+ 21 - 4
ruoyi-ui/src/views/wuguan/wuyefeishezhi/index.vue

@@ -78,7 +78,12 @@
 
     <el-table v-loading="loading" :data="settingsList" @selection-change="handleSelectionChange">
       <el-table-column type="selection" width="55" align="center" />
-      <el-table-column label="应缴物业费用" align="center" prop="tenementExpense" />
+      <el-table-column label="房屋类型" align="center" prop="houseType">
+        <template slot-scope="scope">
+          <dict-tag :options="dict.type.house_type" :value="scope.row.houseType"/>
+        </template>
+      </el-table-column>
+      <el-table-column label="应缴物业费用/m²" align="center" prop="tenementExpense" />
       <el-table-column label="应缴车位费用" align="center" prop="parkingExpense" />
       <el-table-column label="应缴能耗费用" align="center" prop="energyExpense" />
       <el-table-column label="应缴总费用" align="center" prop="totalExpense" />
@@ -115,8 +120,18 @@
 
     <!-- 添加或修改物业费设置对话框 -->
     <el-dialog :title="title" :visible.sync="open" width="600px" append-to-body>
-      <el-form ref="form" :model="form" :rules="rules" label-width="120px">
-        <el-form-item label="应缴物业费用" prop="tenementExpense">
+      <el-form ref="form" :model="form" :rules="rules" label-width="160px">
+         <el-form-item label="房屋类型" prop="houseType">
+                                        <el-select style="width: 100%;" v-model="form.houseType" placeholder="请选择房屋类型">
+                                          <el-option
+                                            v-for="dict in dict.type.house_type"
+                                            :key="dict.value"
+                                            :label="dict.label"
+                                            :value="dict.value"
+                                          ></el-option>
+                                        </el-select>
+                                      </el-form-item>
+        <el-form-item label="应缴物业费用(平方米)" prop="tenementExpense">
           <el-input v-model="form.tenementExpense" placeholder="请输入应缴物业费用" />
         </el-form-item>
         <el-form-item label="应缴车位费用" prop="parkingExpense">
@@ -142,6 +157,7 @@ import { listSettings, getSettings, delSettings, addSettings, updateSettings } f
 
 export default {
   name: "Settings",
+   dicts: ['house_type'],
   data() {
     return {
       // 遮罩层
@@ -208,7 +224,8 @@ export default {
         createTime: null,
         updateBy: null,
         updateTime: null,
-        remark: null
+        remark: null,
+        houseType:'1'
       };
       this.resetForm("form");
     },

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

@@ -26,7 +26,7 @@
                 <el-form-item label="巡更时间" prop="createTime">
                         <el-date-picker clearable
                         style="width:100%"
-                          v-model="queryParams.createTime"
+                          v-model="queryParams.params.createTime"
                           type="date"
                           value-format="yyyy-MM-dd"
                           placeholder="请选择巡更时间">
@@ -344,7 +344,7 @@ export default {
         checkPointManageId: null,
         dateTimeNum: null,
         checkType: null,
-        checkTime: null,
+        createTime: null,
         checkAddress: null,
         userName: null,
         useId: null,
@@ -355,6 +355,10 @@ export default {
         checkResultPhoto: null,
         checkResultTime: null,
         checkStatus:2,
+        params:{
+          createTime:null
+        }
+
       },
       // 表单参数
       form: {},
@@ -474,6 +478,7 @@ export default {
     },
     /** 重置按钮操作 */
     resetQuery() {
+      this.queryParams.params.createTime = null
       this.resetForm("queryForm");
       this.handleQuery();
     },

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

@@ -333,7 +333,7 @@ export default {
     },
     getListhouvr() {
        listNoPage().then(response => {
-         this.houseInfoLise  = response.rows;
+         this.houseInfoLise  = response.data;
        });
      },
    uploadedSuccessfully(row){

+ 58 - 6
ruoyi-ui/src/views/wuguan/yuangongpx/index.vue

@@ -114,12 +114,15 @@
                 <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
               </el-row>
                <el-table :max-height="tableMaxHeight" v-loading="loading" :data="manualList" @selection-change="handleSelectionChange">
-                 <el-table-column label="标题" align="center" prop="manualTitle" width="120" show-overflow-tooltip />
+                 <el-table-column label="标题" align="center" prop="manualTitle" width="200" show-overflow-tooltip />
+                 <el-table-column label="内容" align="center" prop="manualContent" width="220" show-overflow-tooltip/>
                  <el-table-column label="发布时间" align="center" prop="publishTime" width="180">
                    <template slot-scope="scope">
                      <span>{{scope.row.publishTime}}</span>
                    </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="coverImage" width="100">
@@ -630,6 +633,25 @@ export default {
       this.open = false;
       this.reset();
     },
+    // 获取当前时间
+    gettime(){
+      let nowDate = new Date()
+      				  let date = {
+      				    year: nowDate.getFullYear(),
+      				    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
+      				    }
+                  let nghe = date.year + '-' + date.month + '-' + date.date
+      				  return nghe
+
+    },
     // 表单重置
     reset() {
        this.form = {
@@ -638,13 +660,13 @@ export default {
           manualType: null,
           manualContent: null,
           status: null,
-          publishTime: null,
+          publishTime: this.gettime(),
           videoUrl: null,
           coverImage: null,
           author: null,
           source: null,
           viewCount: null,
-          isTop: null,
+          isTop: 'N',
           createBy: null,
           createTime: null,
           updateBy: null,
@@ -686,16 +708,42 @@ export default {
             const manualId = row.manualId || this.ids
             getManual(manualId).then(response => {
               this.form = response.data;
+              // let content = this.from.manualContent
+              // this.htmlContent=content.toString();
+              // this.getImageSrc(content.toString())
               this.open = true;
               this.isredw = true;
               this.title = "修改员工培训手册";
     });
     },
+    getImageSrc(val) {
+          // 创建一个临时元素,将HTML内容插入其中
+          const tempElement = document.createElement('div');
+          tempElement.innerHTML = val;
+          // 查找 <img> 标签并获取 src 属性值
+          const imgElement = tempElement.querySelector('img');
+          if (imgElement) {
+            const srcValue = imgElement.getAttribute('src');
+            // this.imagePath=srcValue
+            console.log('Image src:', srcValue+"照片路径");
+          } else {
+            console.log('No <img> element found.');
+          }
+        },
 
     /** 修改按钮操作 */
     handleUpdateg(row) {
       this.reset();
-            const manualId = row.manualId
+            let manualId = row.manualId
+            let nhde = []
+            let nsg = ''
+            this.manualList.filter(rou=>{
+              if(rou.isnum == true){
+                nhde.push(rou.manualId)
+              }
+            })
+            console.log(nhde)
+            manualId = nhde.join(',')
             getManual(manualId).then(response => {
               this.form = response.data;
               this.open = true;
@@ -819,7 +867,12 @@ export default {
       staffTrainTime(this.formys).then(response => {
         this.staffTrainTimeList = response.rows
         this.staffTrainTimeList.filter(rou=>{
-          rou.time = this.minToHm(rou.staffTime)
+          if(rou.staffTime == 0){
+            rou.time = 0
+          }else{
+            rou.time = this.minToHm(rou.staffTime)
+          }
+
         })
 
       });
@@ -868,7 +921,6 @@ export default {
           this.filterActive = !this.filterActive
           this.changeTableMaxHeight()
         },
-
         changeTableMaxHeight () {
           let height = document.body.offsetHeight // 网页可视区域高度
           // if (this.filterActive) {