From 4522ab3fe8bd45ee753ef187448c1e884bbc601f Mon Sep 17 00:00:00 2001
From: shuishen <1109946754@qq.com>
Date: Thu, 18 Apr 2024 11:09:27 +0800
Subject: [PATCH] Merge branch 'master' of http://s16s652780.51mypc.cn:49896/r/jczz_web

---
 src/views/propertySupervision/components/done.vue                     |  473 
 src/views/article/discussionManage.vue                                |   59 
 src/views/property/components/todo.vue                                |  742 
 src/api/task/task.js                                                  |  105 
 vue.config.js                                                         |    2 
 src/api/disputeRecord/disputeRecord.js                                |   49 
 src/views/article/components/deitDiscussion.vue                       |  193 
 src/views/gzll/process/maintenanceFundApply/detail.vue                |  194 
 src/views/sms/sms.vue                                                 |    4 
 src/views/place/components/baseAllInfo.vue                            |  292 
 src/api/place/place.js                                                |    9 
 src/api/publicSecurity/taskNoFraudReporting.js                        |   58 
 src/views/publicSecurity/ninePlaceManage/patrolRecord.vue             | 1316 +-
 src/views/property/propertyCapitalApply.vue                           |  369 
 src/api/circle/circle.js                                              |   49 
 src/api/xxljob/xxljob.js                                              |   65 
 src/views/backblask/BackblastWarnHanRec.vue                           |   13 
 src/views/gzll/ownersCommittee.vue                                    |  685 +
 src/views/gzll/components/done.vue                                    |  473 
 src/api/resource/sms.js                                               |    3 
 src/views/article/publicSignUp.vue                                    |   88 
 src/util/auth.js                                                      |    4 
 src/views/property/process/maintenanceFundApply/edit.vue              |  880 
 src/views/sms/smsRecord.vue                                           |  154 
 src/views/property/oiae.vue                                           | 1522 +-
 src/views/property/propertyCharge.vue                                 |  713 
 src/views/article/components/discussionManageChild.vue                |   54 
 src/views/sms/smsTemplate.vue                                         |  170 
 src/views/property/process/maintenanceFundApply/detail.vue            |  734 
 src/views/system/auth.vue                                             |  166 
 src/views/gzll/components/todo.vue                                    |   45 
 src/views/property/process/maintenanceFundApply/form.vue              |    9 
 src/views/disputeRecord/disputeRecord.vue                             |  866 +
 src/views/article/components/userList.vue                             |  257 
 src/api/article/articleIntegral.js                                    |   13 
 src/views/article/rotation.vue                                        |  130 
 src/api/patrol/patrolGroup.js                                         |   10 
 src/views/patrolList/patrolRecord.vue                                 |  694 
 src/views/property/components/done.vue                                |  475 
 src/views/userHouse/houseHoldList.vue                                 | 2009 +-
 src/views/backblask/BackblastPubRecord.vue                            |  138 
 src/views/gzll/process/maintenanceFundApply/handle.vue                |  877 
 src/config/website.js                                                 |   10 
 src/page/login/index.vue                                              |    2 
 src/views/place/practitioner.vue                                      |    4 
 src/views/propertySupervision/process/maintenanceFundApply/detail.vue |  734 
 src/views/patrol/addsubject.vue                                       |  255 
 src/views/system/user.vue                                             | 1805 +-
 src/views/property/propertyCompany.vue                                |    2 
 src/views/cGovernance/taskECall.vue                                   | 1192 +-
 src/views/property/process/maintenanceFundApply/handle.vue            |  881 
 src/views/article/components/publicSignUpChild.vue                    |  697 
 src/views/place/residencePermitApply.vue                              |   27 
 src/views/propertySupervision/process/maintenanceFundApply/form.vue   |    9 
 src/views/backblask/BackblastArticle.vue                              |  772 +
 src/views/publicSecurity/ninePlaceManage/situationRectification.vue   | 1588 +-
 src/views/patrol/subject.vue                                          |  320 
 src/views/place/index.vue                                             |   92 
 src/views/publicSecurity/noExplosionManage.vue                        |  985 +
 src/api/resource/smsRecord.js                                         |   50 
 src/views/propertySupervision/components/todo.vue                     |  744 
 src/views/article/article.vue                                         |    6 
 src/api/system/user.js                                                |    8 
 src/views/property/inviteTenders.vue                                  | 1514 +-
 src/views/property/propertyCompanyDistrict.vue                        |    2 
 src/views/publicSecurity/keynotePlaceManage.vue                       | 1775 +-
 src/api/logs.js                                                       |    5 
 src/api/resource/smsTemplate.js                                       |   49 
 src/views/gzll/process/maintenanceFundApply/form.vue                  |    9 
 src/views/monitor/log/api.vue                                         |    1 
 src/views/property/ownersCommittee.vue                                | 1296 +-
 src/views/propertySupervision/process/maintenanceFundApply/handle.vue |   10 
 src/views/resource/distapch.vue                                       |  464 
 src/views/backblask/components/deitDiscussion.vue                     |  336 
 74 files changed, 18,431 insertions(+), 12,374 deletions(-)

diff --git a/src/api/article/articleIntegral.js b/src/api/article/articleIntegral.js
new file mode 100644
index 0000000..e6b06f6
--- /dev/null
+++ b/src/api/article/articleIntegral.js
@@ -0,0 +1,13 @@
+import request from '@/router/axios';
+
+export const getList = (current, size, params) => {
+  return request({
+    url: '/api/blade-articleIntegral/articleIntegral/page',
+    method: 'get',
+    params: {
+      ...params,
+      current,
+      size,
+    }
+  })
+}
\ No newline at end of file
diff --git a/src/api/circle/circle.js b/src/api/circle/circle.js
new file mode 100644
index 0000000..e712eb3
--- /dev/null
+++ b/src/api/circle/circle.js
@@ -0,0 +1,49 @@
+import request from '@/router/axios';
+
+export const getList = (current, size, params) => {
+  return request({
+    url: '/api/blade-circle/circle/list',
+    method: 'get',
+    params: {
+      ...params,
+      current,
+      size,
+    }
+  })
+}
+
+export const getDetail = (id) => {
+  return request({
+    url: '/api/blade-circle/circle/detail',
+    method: 'get',
+    params: {
+      id
+    }
+  })
+}
+
+export const remove = (ids) => {
+  return request({
+    url: '/api/blade-circle/circle/remove',
+    method: 'post',
+    params: {
+      ids,
+    }
+  })
+}
+
+export const add = (row) => {
+  return request({
+    url: '/api/blade-circle/circle/save',
+    method: 'post',
+    data: row
+  })
+}
+
+export const update = (row) => {
+  return request({
+    url: '/api/blade-circle/circle/submit',
+    method: 'post',
+    data: row
+  })
+}
\ No newline at end of file
diff --git a/src/api/disputeRecord/disputeRecord.js b/src/api/disputeRecord/disputeRecord.js
new file mode 100644
index 0000000..cbda36e
--- /dev/null
+++ b/src/api/disputeRecord/disputeRecord.js
@@ -0,0 +1,49 @@
+import request from '@/router/axios';
+
+export const getList = (current, size, params) => {
+  return request({
+    url: '/api/blade-disputeRecord/disputeRecord/page',
+    method: 'get',
+    params: {
+      ...params,
+      current,
+      size,
+    }
+  })
+}
+
+export const remove = (ids) => {
+  return request({
+    url: '/api/blade-disputeRecord/disputeRecord/remove',
+    method: 'post',
+    params: {
+      ids,
+    }
+  })
+}
+
+export const add = (row) => {
+  return request({
+    url: '/api/blade-disputeRecord/disputeRecord/saveOrUpdate',
+    method: 'post',
+    data: row
+  })
+}
+
+export const update = (row) => {
+  return request({
+    url: '/api/blade-disputeRecord/disputeRecord/saveOrUpdate',
+    method: 'post',
+    data: row
+  })
+}
+
+export const getDetail = (id) => {
+  return request({
+    url: '/api/blade-disputeRecord/disputeRecord/getDetail',
+    method: 'get',
+    params: {
+      id
+    }
+  })
+}
diff --git a/src/api/logs.js b/src/api/logs.js
index 287ace9..826221d 100644
--- a/src/api/logs.js
+++ b/src/api/logs.js
@@ -11,11 +11,12 @@
   })
 }
 
-export const getApiList = (current, size) => {
+export const getApiList = (current, size,params) => {
   return request({
-    url: '/api/blade-log/api/list',
+    url: '/api/blade-log/api/page',
     method: 'get',
     params: {
+      ...params,
       current,
       size
     }
diff --git a/src/api/patrol/patrolGroup.js b/src/api/patrol/patrolGroup.js
index e10fd43..e6e6b61 100644
--- a/src/api/patrol/patrolGroup.js
+++ b/src/api/patrol/patrolGroup.js
@@ -38,6 +38,14 @@
   })
 }
 
+export const addTwo = (row) => {
+  return request({
+    url: '/api/patrol/patrolGroup/addTwo',
+    method: 'post',
+    data: row
+  })
+}
+
 export const update = (row) => {
   return request({
     url: '/api/patrol/patrolGroup/submit',
@@ -54,4 +62,4 @@
       id
     }
   })
-}
+}
\ No newline at end of file
diff --git a/src/api/place/place.js b/src/api/place/place.js
index 99b89c8..4d81ebc 100644
--- a/src/api/place/place.js
+++ b/src/api/place/place.js
@@ -159,6 +159,13 @@
   };
 
 
-  
+  // 标准地址
+  export const  getPlaceAddressList = (params) => {
+    return request({
+      url: "/api/blade-doorplateAddress/doorplateAddress/getPlaceList",
+      method: "get",
+      params: params
+    });
+  };
 
 
diff --git a/src/api/publicSecurity/taskNoFraudReporting.js b/src/api/publicSecurity/taskNoFraudReporting.js
new file mode 100644
index 0000000..81b1baa
--- /dev/null
+++ b/src/api/publicSecurity/taskNoFraudReporting.js
@@ -0,0 +1,58 @@
+import request from '@/router/axios';
+
+export const getList = (current, size, params) => {
+  return request({
+    url: '/api/blade-taskNoFraudReporting/taskNoFraudReporting/list',
+    method: 'get',
+    params: {
+      ...params,
+      current,
+      size,
+    }
+  })
+}
+
+export const getDetail = (id) => {
+  return request({
+    url: '/api/blade-taskNoFraudReporting/taskNoFraudReporting/detail',
+    method: 'get',
+    params: {
+      id
+    }
+  })
+}
+
+// 列表详情
+export const getTaskNoFraudReportingInfo = (params) => {
+  return request({
+    url: "/api/blade-taskNoFraudReporting/taskNoFraudReporting/getInfo",
+    method: "get",
+    params
+  })
+}
+
+export const remove = (ids) => {
+  return request({
+    url: '/api/blade-taskNoFraudReporting/taskNoFraudReporting/remove',
+    method: 'post',
+    params: {
+      ids,
+    }
+  })
+}
+
+export const add = (row) => {
+  return request({
+    url: '/api/blade-taskNoFraudReporting/taskNoFraudReporting/submit',
+    method: 'post',
+    data: row
+  })
+}
+
+export const update = (row) => {
+  return request({
+    url: '/api/blade-taskNoFraudReporting/taskNoFraudReporting/submit',
+    method: 'post',
+    data: row
+  })
+}
\ No newline at end of file
diff --git a/src/api/resource/sms.js b/src/api/resource/sms.js
index d937f07..9351363 100644
--- a/src/api/resource/sms.js
+++ b/src/api/resource/sms.js
@@ -68,5 +68,4 @@
       params,
     }
   })
-}
-
+}
\ No newline at end of file
diff --git a/src/api/resource/smsRecord.js b/src/api/resource/smsRecord.js
new file mode 100644
index 0000000..c2c8426
--- /dev/null
+++ b/src/api/resource/smsRecord.js
@@ -0,0 +1,50 @@
+import request from '@/router/axios';
+
+
+export const getList = (current, size, params) => {
+  return request({
+    url: '/api/blade-smsRecord/smsRecord/page',
+    method: 'get',
+    params: {
+      ...params,
+      current,
+      size,
+    }
+  })
+}
+
+export const getDetail = (id) => {
+  return request({
+    url: '/api/blade-smsRecord/smsRecord/detail',
+    method: 'get',
+    params: {
+      id
+    }
+  })
+}
+
+export const remove = (ids) => {
+  return request({
+    url: '/api/blade-smsRecord/smsRecord/remove',
+    method: 'post',
+    params: {
+      ids,
+    }
+  })
+}
+
+export const add = (row) => {
+  return request({
+    url: '/api/blade-smsRecord/smsRecord/submit',
+    method: 'post',
+    data: row
+  })
+}
+
+export const update = (row) => {
+  return request({
+    url: '/api/blade-smsRecord/smsRecord/submit',
+    method: 'post',
+    data: row
+  })
+}
\ No newline at end of file
diff --git a/src/api/resource/smsTemplate.js b/src/api/resource/smsTemplate.js
new file mode 100644
index 0000000..2137814
--- /dev/null
+++ b/src/api/resource/smsTemplate.js
@@ -0,0 +1,49 @@
+import request from '@/router/axios';
+
+export const getList = (current, size, params) => {
+  return request({
+    url: '/api/blade-smsTemplate/smsTemplate/page',
+    method: 'get',
+    params: {
+      ...params,
+      current,
+      size,
+    }
+  })
+}
+
+export const getDetail = (id) => {
+  return request({
+    url: '/api/blade-smsTemplate/smsTemplate/detail',
+    method: 'get',
+    params: {
+      id
+    }
+  })
+}
+
+export const remove = (ids) => {
+  return request({
+    url: '/api/blade-smsTemplate/smsTemplate/remove',
+    method: 'post',
+    params: {
+      ids,
+    }
+  })
+}
+
+export const add = (row) => {
+  return request({
+    url: '/api/blade-smsTemplate/smsTemplate/submit',
+    method: 'post',
+    data: row
+  })
+}
+
+export const update = (row) => {
+  return request({
+    url: '/api/blade-smsTemplate/smsTemplate/submit',
+    method: 'post',
+    data: row
+  })
+}
\ No newline at end of file
diff --git a/src/api/system/user.js b/src/api/system/user.js
index 91dfe34..e1590cd 100644
--- a/src/api/system/user.js
+++ b/src/api/system/user.js
@@ -139,12 +139,14 @@
   })
 }
 
-export const getUserlnfoByDistrictlds = (districtIds) => {
+export const getUserlnfoByDistrictlds = (current, size, params) => {
   return request({
-    url: '/api/blade-system/user/getUserInfoByDistrictIds',
+    url: '/api/blade-household/household/getUserInfoByDistrictIds',
     method: 'get',
     params: {
-      districtIds,
+      ...params,
+      current,
+      size,
     }
   })
 }
\ No newline at end of file
diff --git a/src/api/task/task.js b/src/api/task/task.js
index 7fa382e..4cbd10b 100644
--- a/src/api/task/task.js
+++ b/src/api/task/task.js
@@ -1,61 +1,82 @@
 import request from '@/router/axios'
 
 export const getList = (current, size, params) => {
-    return request({
-        url: '/api/blade-task/task/page',
-        method: 'get',
-        params: {
-            ...params,
-            current,
-            size,
-        }
-    })
+  return request({
+    url: '/api/blade-task/task/page',
+    method: 'get',
+    params: {
+      ...params,
+      current,
+      size,
+    }
+  })
 }
 
 export const getTaskPlaceSelfCheckList = (current, size, params) => {
-    return request({
-        url: '/api/blade-taskPlaceSelfCheck/taskPlaceSelfCheck/page',
-        method: 'get',
-        params: {
-            ...params,
-            current,
-            size,
-        }
-    })
+  return request({
+    url: '/api/blade-taskPlaceSelfCheck/taskPlaceSelfCheck/page',
+    method: 'get',
+    params: {
+      ...params,
+      current,
+      size,
+    }
+  })
+}
+
+
+export const getTaskNoFraudReportingList = (current, size, params) => {
+  return request({
+    url: '/api/blade-taskNoFraudReporting/taskNoFraudReporting/page',
+    method: 'get',
+    params: {
+      ...params,
+      current,
+      size,
+    }
+  })
+}
+
+export const applyTaskExamine = (data) => {
+  return request({
+    url: "/api/blade-task/task/examine",
+    method: "post",
+    data
+  })
 }
 
 export const getBailReportingPage = (current, size, params) => {
-    return request({
-        url: '/api/blade-task/task/getBailReportingPage',
-        method: 'get',
-        params: {
-            ...params,
-            current,
-            size,
-        }
-    })
+  return request({
+    url: '/api/blade-task/task/getBailReportingPage',
+    method: 'get',
+    params: {
+      ...params,
+      current,
+      size,
+    }
+  })
 }
 
 export const removeTask = (row) => {
-    return request({
-        url: '/api/blade-task/task/removeTask',
-        method: 'post',
-        data: row
-    })
+  return request({
+    url: '/api/blade-task/task/removeTask',
+    method: 'post',
+    data: row
+  })
 }
 
 export const add = (row) => {
-    return request({
-        url: '/api/blade-task/task/save',
-        method: 'post',
-        data: row
-    })
+  return request({
+    url: '/api/blade-task/task/save',
+    method: 'post',
+    data: row
+  })
 }
 
 export const update = (row) => {
-    return request({
-        url: '/api/blade-task/task/update',
-        method: 'post',
-        data: row
-    })
+  return request({
+    url: '/api/blade-task/task/update',
+    method: 'post',
+    data: row
+  })
 }
\ No newline at end of file
diff --git a/src/api/xxljob/xxljob.js b/src/api/xxljob/xxljob.js
new file mode 100644
index 0000000..e649465
--- /dev/null
+++ b/src/api/xxljob/xxljob.js
@@ -0,0 +1,65 @@
+import request from '@/router/axios'
+
+export const getList = (current, size, params) => {
+    return request({
+        url: '/api/blade-jobInfo/jobInfo/page',
+        method: 'get',
+        params: {
+            ...params,
+            current,
+            size,
+        }
+    })
+}
+
+export const add = (row) => {
+    return request({
+        url: '/api/blade-jobInfo/jobInfo/addJob',
+        method: 'post',
+        data: row
+    })
+}
+
+export const update = (row) => {
+    return request({
+        url: '/api/blade-jobInfo/jobInfo/updateJob',
+        method: 'post',
+        data: row
+    })
+}
+
+export const getDetail = (params) => {
+    return request({
+      url: "/api/blade-jobInfo/jobInfo/getDetail",
+      method: "get",
+      params: {
+        ...params,
+      },
+    });
+  };
+
+export const remove = (ids) => {
+    return request({
+      url: "/api/blade-jobInfo/jobInfo/remove",
+      method: "post",
+      params: {
+        ids,
+      },
+    });
+  };
+
+  export const start = (row) => {
+    return request({
+        url: '/api/blade-jobInfo/jobInfo/start',
+        method: 'post',
+        data: row
+    })
+}
+
+export const stop = (row) => {
+    return request({
+        url: '/api/blade-jobInfo/jobInfo/stop',
+        method: 'post',
+        data: row
+    })
+}
\ No newline at end of file
diff --git a/src/config/website.js b/src/config/website.js
index 7747a21..52c2033 100644
--- a/src/config/website.js
+++ b/src/config/website.js
@@ -2,12 +2,12 @@
  * 全局配置文件
  */
 export default {
-  title: "saber",
-  logo: "S",
-  key: "saber", //配置主键,目前用于存储
+  title: "jczz",
+  logo: "J",
+  key: "jczz", //配置主键,目前用于存储
   indexTitle: "基层智治综合协同平台",
-  clientId: "saber", // 客户端id
-  clientSecret: "saber_secret", // 客户端密钥
+  clientId: "jczz", // 客户端id
+  clientSecret: "jczz_secret_FaXfddsafRsfjlsdf2A12412", // 客户端密钥
   tenantMode: true, // 是否开启租户模式
   tenantId: "000000", // 管理组租户编号
   captchaMode: true, // 是否开启验证码模式
diff --git a/src/page/login/index.vue b/src/page/login/index.vue
index f57b3a9..9b235e1 100644
--- a/src/page/login/index.vue
+++ b/src/page/login/index.vue
@@ -11,7 +11,7 @@
                 <p class="title">基层智治综合协同平台</p>
             </div>
             <div class="login-border">
-                <img class="img" src="/img/logo.png" alt="">
+                <!-- <img class="img" src="/img/logo.png" alt=""> -->
                 <div class="login-main">
 
                     <h4 class="login-title">
diff --git a/src/util/auth.js b/src/util/auth.js
index 2e7544a..9003a11 100644
--- a/src/util/auth.js
+++ b/src/util/auth.js
@@ -1,6 +1,6 @@
 import Cookies from 'js-cookie'
-const TokenKey = 'saber-access-token'
-const RefreshTokenKey = 'saber-refresh-token'
+const TokenKey = 'jczz-access-token'
+const RefreshTokenKey = 'jczz-refresh-token'
 const SessionId = 'JSESSIONID';
 const UserId = 'b-user-id';
 export function getToken() {
diff --git a/src/views/article/article.vue b/src/views/article/article.vue
index 2763e0b..9e7ae0f 100644
--- a/src/views/article/article.vue
+++ b/src/views/article/article.vue
@@ -185,9 +185,11 @@
               prop: "articleList",
               span: 12,
               minRows: 2,
-              type: "cascader",
+              type: "tree",
+              dataType: "string",
               multiple: true,
               tags: true,
+              // search: true,
               dicData: [],
               props: {
                 label: "name",
@@ -815,4 +817,4 @@
   :deep(.avue-form__menu--center .el-button) {
     margin: 0 5px 0 0;
   }
-</style>
+</style>
\ No newline at end of file
diff --git a/src/views/article/components/deitDiscussion.vue b/src/views/article/components/deitDiscussion.vue
index a706041..cfa2392 100644
--- a/src/views/article/components/deitDiscussion.vue
+++ b/src/views/article/components/deitDiscussion.vue
@@ -107,17 +107,7 @@
           articleId: '',
           parentId: '',
           level: '',
-          children: [{
-            optionContent: '',
-            optionDetail: '',
-            number: '',
-            createTime: '',
-            updateTime: '',
-            deleteFlag: '',
-            articleId: '',
-            parentId: '',
-            level: '',
-          }]
+          children: []
         },
         optionDiscuss: {
           emptyText: '取消',
@@ -133,6 +123,26 @@
               }],
             },
             {
+              label: '议题必填',
+              prop: 'mandatoryFlag',
+              type: 'radio',
+              value: 1,
+              button: true,
+              row: true,
+              dicData: [{
+                label: '否',
+                value: 1
+              }, {
+                label: '是',
+                value: 2
+              }],
+              rules: [{
+                required: true,
+                message: '请选择是否必填',
+                trigger: 'blur'
+              }],
+            },
+            {
               label: '选项范围',
               prop: 'optionRange',
               type: 'radio',
@@ -140,11 +150,11 @@
               button: true,
               row: true,
               dicData: [{
-                label: '多选',
-                value: 1
-              }, {
                 label: '单选',
                 value: 0
+              }, {
+                label: '多选',
+                value: 1
               }],
               rules: [{
                 required: true,
@@ -153,13 +163,54 @@
               }],
             },
             {
-              label: '最多选择数',
+              label: '最少选',
+              prop: 'optionNumberMin',
+              display: false,
+              row: true,
+              min: 1,
+              max: 10,
+              type: 'number',
+              step: 1,
+              value: 1,
+              rules: [{
+                required: true,
+                message: '请输入最少可选择数量',
+                trigger: 'blur'
+              }],
+              span: 3,
+            },
+            {
+              label: '最多选',
               prop: 'optionNumber',
               display: false,
               min: 1,
+              row: true,
+              max: 10,
               type: 'number',
               step: 1,
-              value: 1
+              value: 1,
+              rules: [{
+                required: true,
+                message: '请输入最多可选择数量',
+                trigger: 'blur'
+              }],
+              span: 3,
+            },
+            {
+              width: 110,
+              labelWidth: 100,
+              label: "附件",
+              prop: "attachment",
+              type: "upload",
+              listType: "text",
+              action: "/api/blade-resource/oss/endpoint/put-pdfFile",
+              accept: "application/pdf",
+              propsHttp: {
+                res: "data",
+                name: 'name',
+                url: "link",
+              },
+              span: 24,
             },
             {
               label: '选项内容',
@@ -167,6 +218,18 @@
               type: 'dynamic',
               span: 24,
               children: {
+                rowAdd: (done) => {
+                  // this.$message.success('新增回调' + this.disCussFrom.children.length);
+                  this.addC(this.disCussFrom.children.length)
+                  done({
+                    input: '默认值'
+                  });
+                },
+                rowDel: (row, done) => {
+                  // this.$message.success('删除回调' + this.disCussFrom.children.length);
+                  this.reduceC(this.disCussFrom.children.length)
+                  done();
+                },
                 column: [{
                   label: '选项标题',
                   prop: 'optionContent',
@@ -292,16 +355,55 @@
         handler(newData) {
           // console.log('** ** ** ** ** ** **', newData)
           const column = this.findObject(this.optionDiscuss.column, "optionNumber")
+          const columnMin = this.findObject(this.optionDiscuss.column, "optionNumberMin")
           if (newData == 1) {
             column.display = true
+            columnMin.display = true
           } else {
             column.display = false
+            columnMin.display = false
           }
         },
       },
     },
 
     methods: {
+
+      addC(number) {
+        console.log("******************", number)
+        const column = this.findObject(this.optionDiscuss.column, "optionNumber")
+        const columnMin = this.findObject(this.optionDiscuss.column, "optionNumberMin")
+        column.max = number + 1
+        columnMin.max = number + 1
+        if (this.disCussFrom.optionNumber > number + 1) {
+          this.disCussFrom.optionNumber = number + 1
+        }
+        if (this.disCussFrom.optionNumberMin > number + 1) {
+          this.disCussFrom.optionNumberMin = number + 1
+        }
+      },
+
+      editC(number) {
+        console.log("******************", number)
+        const column = this.findObject(this.optionDiscuss.column, "optionNumber")
+        const columnMin = this.findObject(this.optionDiscuss.column, "optionNumberMin")
+        column.max = number
+        columnMin.max = number
+      },
+
+
+      reduceC(number) {
+        const column = this.findObject(this.optionDiscuss.column, "optionNumber")
+        const columnMin = this.findObject(this.optionDiscuss.column, "optionNumberMin")
+        columnMin.max = number - 1
+        column.max = number - 1
+        if (this.disCussFrom.optionNumber > number - 1) {
+          this.disCussFrom.optionNumber = number - 1
+        }
+        if (this.disCussFrom.optionNumberMin > number - 1) {
+          this.disCussFrom.optionNumberMin = number - 1
+        }
+      },
 
       handleExport() {
         this.$confirm("是否导出投票人员数据?", "提示", {
@@ -322,11 +424,13 @@
           }
           data = Qs.stringify(data)
           exportBlob(
-            `/api/blade-userTopics/userTopics/exportUser?${this.website.tokenHeader}=${getToken()}&` + data).then(
-            res => {
-              downloadXls(res.data, `投票人员${dateNow()}.xlsx`)
-              NProgress.done()
-            })
+              `/api/blade-userTopics/userTopics/exportUser?${this.website.tokenHeader}=${getToken()}&` + data)
+            .then(
+              res => {
+                downloadXls(res.data, `投票人员${dateNow()}.xlsx`)
+                NProgress.done()
+              })
+
         })
       },
 
@@ -359,7 +463,7 @@
         done()
       },
 
-      openUser(row, type = 0) {
+      openUser(row, type) {
         this.type = type
         this.popupTableUserShow = true
         this.query = {}
@@ -384,6 +488,7 @@
       },
 
       initData(newData) {
+        console.log("======>", newData);
         this.editFlag = false
         this.popupTableShow = true
         this.articleId = newData.id
@@ -402,6 +507,33 @@
       handleSubmit(form, done) {
         done()
         form.articleId = this.articleId
+        console.log("form===>", form);
+
+
+        if (this.editFlag && Array.isArray(form.attachment)) {
+          if (form.attachment.length > 0) {
+            var urls = []
+            // var split = form.attachment.split(",")
+            form.attachment.forEach(url => {
+              var names = url.split("jczz/")
+              urls.push(names[1])
+            })
+            form.attachment = urls.join(",")
+          } else {
+            form.attachment = "";
+          }
+        } else {
+          if (form.attachment) {
+            var urls = [];
+            var splits = form.attachment.split(",");
+            splits.forEach(url => {
+              var names = url.split("jczz/")
+              urls.push(names[1])
+            })
+            form.attachment = urls.join(",")
+          }
+        }
+
         if (this.disCussFromListClone.length > 0) {
           this.disCussFromListClone.forEach(item => {
             if (form.children.length > 0) {
@@ -443,6 +575,17 @@
       // 提交修改
       rowUpdate(row, index, done, loading) {
         done()
+
+        if (row.attachment.length > 0) {
+          var urls = []
+          var split = row.attachment.split(",")
+          split.forEach(url => {
+            var names = url.split("jczz/")
+            urls.push(names[1])
+          })
+          row.attachment = urls.join(",")
+        }
+
         if (!row.id) {
           addPd(row).then(() => {
             this.onLoad()
@@ -484,6 +627,7 @@
       },
 
       add() {
+        this.disCussFrom = {}
         this.editFlag = true
       },
 
@@ -491,6 +635,7 @@
         this.disCussFrom = row
         this.disCussFromListClone = [].concat(row.children)
         this.editFlag = true
+        this.editC(this.disCussFrom.children.length)
       },
 
       deletes(row) {
@@ -518,7 +663,7 @@
           this.userPage.total = data.total
           this.userData = data.records
           this.userData.forEach(item => {
-            if (item.avatar.length > 0) {
+            if (item.avatar) {
               item.avatar = website.minioUrl + item.avatar
             }
             if (item.signaturePath && item.signaturePath.length > 0) {
@@ -541,4 +686,4 @@
   }
 </script>
 
-<style lang="scss" scoped></style>
\ No newline at end of file
+<style lang="scss" scoped></style>
diff --git a/src/views/article/components/discussionManageChild.vue b/src/views/article/components/discussionManageChild.vue
index 0c45e7e..3adc6a6 100644
--- a/src/views/article/components/discussionManageChild.vue
+++ b/src/views/article/components/discussionManageChild.vue
@@ -4,6 +4,9 @@
       @close="handleClose" @open="opens">
       <avue-form ref="DisCussFrom" :option="option" v-model="froms" @submit="handleSubmit"></avue-form>
     </el-dialog>
+
+    <userList ref="userList" @selectPersonList="selectPersonList"></userList>
+
   </div>
 </template>
 
@@ -27,6 +30,8 @@
   import {
     getDictionary
   } from '@/api/system/dict'
+  import userList from "./userList.vue";
+
 
   // import {
   //   getList as getHouseholdList,
@@ -39,6 +44,9 @@
 
   let formData = {}
   export default {
+    components: {
+      userList
+    },
     data() {
       return {
         dialogVisibles: false,
@@ -178,9 +186,9 @@
             {
               display: false,
               label: "选择用户",
-              prop: "userIds",
+              prop: "userName",
               tags: true,
-              type: "tree",
+              type: "input",
               multiple: true,
               span: 12,
               offset: 8,
@@ -188,16 +196,25 @@
               hide: true,
               row: true,
               // dicUrl: `/api/blade-system/user/getUserlnfoByDistrictlds?districtlds={{}}`,
-              props: {
-                label: 'name',
-                value: 'id',
-              },
-              dicData: [],
+              // props: {
+              //   label: 'name',
+              //   value: 'id',
+              // },
+              // dicData: [],
               rules: [{
                 required: true,
                 message: '请输入姓名',
                 trigger: 'blur'
               }],
+              focus: ({
+                value,
+                column
+              }) => {
+                // this.$message.success('focus事件查看控制台')
+                // console.log('获取焦点', value, column)
+                // this.$refs.userList && this.$refs.userList.resetForm()
+                this.$refs.userList.show(this.discussion.articleRange)
+              },
             },
 
             {
@@ -231,11 +248,12 @@
         dialogVisibles: false,
         articleId: '',
         discussion: {},
-        id: ""
+        id: "",
+        personList: [],
       }
     },
     created() {
-      this.getUserList()
+      // this.getUserList()
     },
 
     mounted() {
@@ -245,9 +263,10 @@
     watch: {
       'froms.appointUser': {
         handler(newData) {
-          const column = this.findObject(this.option.column, "userIds")
+          const column = this.findObject(this.option.column, "userName")
           if (newData == 1) {
             column.display = true
+            // this.$refs.userList.show()
           } else {
             column.display = false
           }
@@ -265,10 +284,18 @@
       }
     },
     methods: {
+      selectPersonList(personList) {
+        console.log(personList, "++++++++++++")
+        this.personList = personList
+        let nameList = personList.map(e => {
+          return e.name
+        })
+        this.froms.userName = nameList.join(",")
+      },
       getuserInfoByDistrictId() {
         getUserlnfoByDistrictlds(this.discussion.articleRange).then(res => {
           const column = this.findObject(this.option.column, "userIds")
-          column.dicData = res.data.data
+          column.dicData = res.data.data.records
         })
       },
       getUserList() {
@@ -280,7 +307,8 @@
       handleSubmit(form, done) {
         form.articleId = this.articleId
         form.eventType = 1
-        form.userIds = JSON.stringify(form.userIds)
+        form.userIds = this.personList.map(e => e.id).join(",")
+        // form.userIds = JSON.stringify(form.userIds)
         if (form.appointUser == 0) {
           form.userIds = ''
         }
@@ -376,7 +404,7 @@
               this.froms.userIds = JSON.parse(this.froms.userIds)
             }
           }
-          this.getuserInfoByDistrictId()
+          // this.getuserInfoByDistrictId()
 
         })
       },
diff --git a/src/views/article/components/publicSignUpChild.vue b/src/views/article/components/publicSignUpChild.vue
index 2ddd7f0..68dfb45 100644
--- a/src/views/article/components/publicSignUpChild.vue
+++ b/src/views/article/components/publicSignUpChild.vue
@@ -1,382 +1,383 @@
 <template>
-    <div>
-        <el-dialog title="" append-to-body :visible.sync="dialogVisiblesUser" width="80%" :before-close="userHandleClose">
-            <avue-crud ref="DataUser" :option="userOption" :data="dataUser" v-model="dataUser" :page="pageUser"
-                @search-change="searchChange" @search-reset="searchReset"></avue-crud>
-        </el-dialog>
-    </div>
+  <div>
+    <el-dialog title="" append-to-body :visible.sync="dialogVisiblesUser" width="80%" :before-close="userHandleClose">
+      <avue-crud ref="DataUser" :option="userOption" :data="dataUser" v-model="dataUser" :page="pageUser"
+        @search-change="searchChange" @search-reset="searchReset"></avue-crud>
+    </el-dialog>
+  </div>
 
 
-    <!-- </basicContainer> -->
+  <!-- </basicContainer> -->
 </template>
 
 <script>
-import {
+  import {
     getListPd,
     getDetailPd,
     addPd,
     updatePd,
     removePd,
-} from "@/api/discuss/publicDiscuss"
-import {
+  } from "@/api/discuss/publicDiscuss"
+  import {
     getPageUser,
-} from "@/api/discuss/userPublicEnroll"
-import option from "@/option/discuss/publicDiscuss"
-import {
+  } from "@/api/discuss/userPublicEnroll"
+  import option from "@/option/discuss/publicDiscuss"
+  import {
     mapGetters
-} from "vuex"
-import {
+  } from "vuex"
+  import {
     getDictionary
-} from '@/api/system/dict'
+  } from '@/api/system/dict'
 
-import website from '@/config/website'
+  import website from '@/config/website'
 
-export default {
-    data () {
-        return {
-            option1: {
-                menu: false,
-                addBtn: false,
-                column: [{
-                    label: '姓名',
-                    prop: 'name'
-                }, {
-                    label: '头像',
-                    prop: 'avatar'
-                }, {
-                    label: '手机',
-                    prop: 'phone'
-                }, {
-                    width: 220,
-                    overHidden: true,
-                    label: '小区名称',
-                    prop: 'aoiName'
-                }, {
-                    label: '地址',
-                    prop: 'addressName'
-                }, {
-                    label: '时间',
-                    prop: 'createTime'
-                }]
-            },
-            discussForm: {
-                ontitle: '',
-                title: '',
-                openFlag: 0,
-                numberRestrictions: 0,
-                voteRestrictions: 0,
-                userRestrictions: 0,
-                endTime: '',
-                articleId: '',
-                createTime: '',
-                updateTime: '',
-                deleteFlag: '',
-                repeatVote: 0,
-                voteNumberPublic: 0,
-                appointUser: '',
-                userIds: '',
-                eventType: 1,
-            },
+  export default {
+    data() {
+      return {
+        option1: {
+          menu: false,
+          addBtn: false,
+          column: [{
+            label: '姓名',
+            prop: 'name'
+          }, {
+            label: '头像',
+            prop: 'avatar'
+          }, {
+            label: '手机',
+            prop: 'phone'
+          }, {
+            width: 220,
+            overHidden: true,
+            label: '小区名称',
+            prop: 'aoiName'
+          }, {
+            label: '地址',
+            prop: 'addressName'
+          }, {
+            label: '时间',
+            prop: 'createTime'
+          }]
+        },
+        discussForm: {
+          ontitle: '',
+          title: '',
+          openFlag: 0,
+          numberRestrictions: 0,
+          voteRestrictions: 0,
+          userRestrictions: 0,
+          endTime: '',
+          articleId: '',
+          createTime: '',
+          updateTime: '',
+          deleteFlag: '',
+          repeatVote: 0,
+          voteNumberPublic: 0,
+          appointUser: '',
+          userIds: '',
+          eventType: 1,
+        },
 
-            dialogVisibles: false,
-            dialogVisiblesUser: false,
-            // 弹框标题
-            title: '',
-            // 是否展示弹框
-            box: false,
-            // 是否显示查询
-            search: true,
-            // 加载中
-            loading: true,
-            // 是否为查看模式
-            view: false,
-            // 查询信息
-            query: {},
-            // 分页信息
-            page: {
-                pageSize: 10,
-                pageSizes: [10, 20, 30, 50, 100],
-                currentPage: 1,
-                total: 0
-            },
+        dialogVisibles: false,
+        dialogVisiblesUser: false,
+        // 弹框标题
+        title: '',
+        // 是否展示弹框
+        box: false,
+        // 是否显示查询
+        search: true,
+        // 加载中
+        loading: true,
+        // 是否为查看模式
+        view: false,
+        // 查询信息
+        query: {},
+        // 分页信息
+        page: {
+          pageSize: 10,
+          pageSizes: [10, 20, 30, 50, 100],
+          currentPage: 1,
+          total: 0
+        },
 
-            // 分页信息
-            pageUser: {
-                pageSize: 10,
-                pageSizes: [10, 20, 30, 50, 100],
-                currentPage: 1,
-                total: 0
-            },
-            // 表单数据
-            form: {},
-            // 选择行
-            selectionList: [],
-            userOption: {
-                labelWidth: 96,
-                searchLabelWidth: 96,
-                searchShow: true,
-                searchMenuSpan: 3,
-                // menuWidth: 500,
-                menu: false,
+        // 分页信息
+        pageUser: {
+          pageSize: 10,
+          pageSizes: [10, 20, 30, 50, 100],
+          currentPage: 1,
+          total: 0
+        },
+        // 表单数据
+        form: {},
+        // 选择行
+        selectionList: [],
+        userOption: {
+          labelWidth: 96,
+          searchLabelWidth: 96,
+          searchShow: true,
+          searchMenuSpan: 3,
+          // menuWidth: 500,
+          menu: false,
 
-                height: "auto",
-                calcHeight: 54,
-                dialogWidth: 950,
-                tip: false,
-                border: true,
-                //stripe:true,
-                index: true,
-                editBtn: false,
-                addBtn: false,
-                viewBtn: false,
-                selection: true,
-                delBtn: false,
-                excelBtn: true,
-                dialogClickModal: false,
-                header:false,
-                column: [{
-                    label: '姓名',
-                    prop: 'name',
-                    search: true,
-                }, {
-                    label: '头像',
-                    type: 'upload',
-                    listType: "picture-img",
-                    prop: 'avatar'
-                },
-                {
-                    label: '签名',
-                    type: 'upload',
-                    listType: "picture-img",
-                    prop: 'signaturePath'
-                },
-                {
-                    label: '手机',
-                    prop: 'phone',
-                    search: true,
-                }, {
-                    label: '小区',
-                    prop: 'aoiName'
-                }, {
-                    label: '地址',
-                    prop: 'addressName'
-                }, {
-                    label: '时间',
-                    prop: 'createTime'
-                }
-                ]
+          height: "auto",
+          calcHeight: 54,
+          dialogWidth: 950,
+          tip: false,
+          border: true,
+          //stripe:true,
+          index: true,
+          editBtn: false,
+          addBtn: false,
+          viewBtn: false,
+          selection: true,
+          delBtn: false,
+          excelBtn: true,
+          dialogClickModal: false,
+          header: false,
+          column: [{
+              label: '姓名',
+              prop: 'name',
+              search: true,
+            }, {
+              label: '头像',
+              type: 'upload',
+              listType: "picture-img",
+              prop: 'avatar'
             },
-            // 表单列表
-            data: [],
-            dataUser: [],
-        }
+            {
+              label: '签名',
+              type: 'upload',
+              listType: "picture-img",
+              prop: 'signaturePath'
+            },
+            {
+              label: '手机',
+              prop: 'phone',
+              search: true,
+            }, {
+              label: '小区',
+              prop: 'aoiName'
+            }, {
+              label: '地址',
+              prop: 'addressName'
+            }, {
+              label: '时间',
+              prop: 'createTime'
+            }
+          ]
+        },
+        // 表单列表
+        data: [],
+        dataUser: [],
+      }
     },
-    mounted () {
-        // this.init();
-        // this.onLoad(this.page);
+    mounted() {
+      // this.init();
+      // this.onLoad(this.page);
     },
     computed: {
-        ...mapGetters(["permission"]),
-        ids () {
-            let ids = []
-            this.selectionList.forEach(ele => {
-                ids.push(ele.id)
-            })
-            return ids.join(",")
-        }
+      ...mapGetters(["permission"]),
+      ids() {
+        let ids = []
+        this.selectionList.forEach(ele => {
+          ids.push(ele.id)
+        })
+        return ids.join(",")
+      }
     },
     methods: {
-        searchReset () {
-            this.query = {}
-            this.getUser(this.userPage)
-        },
+      searchReset() {
+        this.query = {}
+        this.getUser(this.userPage)
+      },
 
-        searchChange (params, done) {
-            this.query = params
-            this.userPage.currentPage = 1
-            this.getUser(this.userPage, params)
-            done()
-        },
-        init (data) {
-            this.houseCode = data.houseCode
-            this.onLoad(this.page)
-        },
-        getUser (page, params) {
-            getPageUser(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
-                const data = res.data.data
-                this.pageUser.total = data.total
-                this.dataUser = data.records
-                this.dataUser.forEach(item => {
-                    if (item.avatar.length > 0) {
-                        item.avatar = website.minioUrl + item.avatar
-                    }
-                    if (item.signaturePath && item.signaturePath.length > 0) {
-                        item.signaturePath = website.minioUrl + item.signaturePath
-                        console.log("=====>", item.signaturePath)
-                    }
-                })
-                this.loading = false
-                // this.selectionClear()
-            })
-        },
-        userHandleClose () {
-            this.dialogVisiblesUser = false
-            this.dataUser = []
-            // this.$refs.DataUser && this.$refs.DataUser.resetForm()
-            // console.log(this.$refs, 90999)
-        },
+      searchChange(params, done) {
+        this.query = params
+        this.userPage.currentPage = 1
+        this.getUser(this.userPage, params)
+        done()
+      },
+      init(data) {
+        this.houseCode = data.houseCode
+        this.onLoad(this.page)
+      },
+      getUser(page, params) {
+        getPageUser(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
+          const data = res.data.data
+          this.pageUser.total = data.total
+          this.dataUser = data.records
+          this.dataUser.forEach(item => {
+            if (item.avatar) {
+              item.avatar = website.minioUrl + item.avatar
+              console.log("=avatar====>", item.avatar)
+            }
+            if (item.signaturePath && item.signaturePath.length > 0) {
+              item.signaturePath = website.minioUrl + item.signaturePath
+              console.log("=====>", item.signaturePath)
+            }
+          })
+          this.loading = false
+          // this.selectionClear()
+        })
+      },
+      userHandleClose() {
+        this.dialogVisiblesUser = false
+        this.dataUser = []
+        // this.$refs.DataUser && this.$refs.DataUser.resetForm()
+        // console.log(this.$refs, 90999)
+      },
 
-        openUser (row) {
-            this.dialogVisiblesUser = true
-            let params = {
-                articleId: row.id
-            }
-            this.getUser(this.pageUser, params)
-        },
-
-        openDilog (row, type) {
-            this.dialogVisibles = true
-            this.discussForm = row
-            let times = new Date(row.endTime).getTime()
-            this.discussForm.endTime = times
-            console.table(this.discussForm)
-            if (type == 0) {
-                this.discussForm.ontitle = '公益报名'
-            } else {
-                this.discussForm.ontitle = '创建议题'
-            }
-        },
-
-        searchHide () {
-            this.search = !this.search
-        },
-        searchChange () {
-            this.onLoad(this.page)
-        },
-        searchReset () {
-            this.query = {}
-            this.page.currentPage = 1
-            this.onLoad(this.page)
-        },
-        handleSubmit (form, done) {
-            done()
-            if (!this.discussForm.id) {
-                addPd(this.discussForm).then(() => {
-                    this.dialogVisibles = false
-                    this.onLoad(this.page)
-                    this.$message({
-                        type: "success",
-                        message: "操作成功!"
-                    })
-                })
-            } else {
-                updatePd(this.discussForm).then(() => {
-                    this.dialogVisibles = false
-                    this.onLoad(this.page)
-                    this.$message({
-                        type: "success",
-                        message: "操作成功!"
-                    })
-                })
-            }
-        },
-        handleAdd () {
-            this.title = '新增'
-            this.form = {}
-            this.box = true
-        },
-        handleEdit (row) {
-            this.title = '编辑'
-            this.box = true
-            getDetailPd(row.id).then(res => {
-                this.form = res.data.data
-            })
-        },
-        handleView (row) {
-            this.title = '查看'
-            this.view = true
-            this.box = true
-            getDetailPd(row.id).then(res => {
-                this.form = res.data.data
-            })
-        },
-        handleDelete () {
-            if (this.selectionList.length === 0) {
-                this.$message.warning("请选择至少一条数据")
-                return
-            }
-            this.$confirm("确定将选择数据删除?", {
-                confirmButtonText: "确定",
-                cancelButtonText: "取消",
-                type: "warning"
-            })
-                .then(() => {
-                    return removePd(this.ids)
-                })
-                .then(() => {
-                    this.selectionClear()
-                    this.onLoad(this.page)
-                    this.$message({
-                        type: "success",
-                        message: "操作成功!"
-                    })
-                })
-        },
-        rowDel (row) {
-            this.$confirm("确定将选择数据删除?", {
-                confirmButtonText: "确定",
-                cancelButtonText: "取消",
-                type: "warning"
-            })
-                .then(() => {
-                    return remove(row.id)
-                })
-                .then(() => {
-                    this.onLoad(this.page)
-                    this.$message({
-                        type: "success",
-                        message: "操作成功!"
-                    })
-                })
-        },
-        beforeClose (done) {
-            done()
-            this.form = {}
-            this.view = false
-        },
-        selectionChange (list) {
-            this.selectionList = list
-        },
-        selectionClear () {
-            this.selectionList = []
-            // this.$refs.table.clearSelection();
-        },
-        currentChange (currentPage) {
-            this.page.currentPage = currentPage
-            this.onLoad(this.page)
-        },
-        sizeChange (pageSize) {
-            this.page.pageSize = pageSize
-            this.onLoad(this.page)
-        },
-        onLoad (page, params = {
-            eventType: 0
-        }) {
-            this.loading = true
-            getListPd(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
-                const data = res.data.data
-                this.page.total = data.total
-                this.data = data.records
-                this.loading = false
-                this.selectionClear()
-            })
+      openUser(row) {
+        this.dialogVisiblesUser = true
+        let params = {
+          articleId: row.id
         }
+        this.getUser(this.pageUser, params)
+      },
+
+      openDilog(row, type) {
+        this.dialogVisibles = true
+        this.discussForm = row
+        let times = new Date(row.endTime).getTime()
+        this.discussForm.endTime = times
+        console.table(this.discussForm)
+        if (type == 0) {
+          this.discussForm.ontitle = '公益报名'
+        } else {
+          this.discussForm.ontitle = '创建议题'
+        }
+      },
+
+      searchHide() {
+        this.search = !this.search
+      },
+      searchChange() {
+        this.onLoad(this.page)
+      },
+      searchReset() {
+        this.query = {}
+        this.page.currentPage = 1
+        this.onLoad(this.page)
+      },
+      handleSubmit(form, done) {
+        done()
+        if (!this.discussForm.id) {
+          addPd(this.discussForm).then(() => {
+            this.dialogVisibles = false
+            this.onLoad(this.page)
+            this.$message({
+              type: "success",
+              message: "操作成功!"
+            })
+          })
+        } else {
+          updatePd(this.discussForm).then(() => {
+            this.dialogVisibles = false
+            this.onLoad(this.page)
+            this.$message({
+              type: "success",
+              message: "操作成功!"
+            })
+          })
+        }
+      },
+      handleAdd() {
+        this.title = '新增'
+        this.form = {}
+        this.box = true
+      },
+      handleEdit(row) {
+        this.title = '编辑'
+        this.box = true
+        getDetailPd(row.id).then(res => {
+          this.form = res.data.data
+        })
+      },
+      handleView(row) {
+        this.title = '查看'
+        this.view = true
+        this.box = true
+        getDetailPd(row.id).then(res => {
+          this.form = res.data.data
+        })
+      },
+      handleDelete() {
+        if (this.selectionList.length === 0) {
+          this.$message.warning("请选择至少一条数据")
+          return
+        }
+        this.$confirm("确定将选择数据删除?", {
+            confirmButtonText: "确定",
+            cancelButtonText: "取消",
+            type: "warning"
+          })
+          .then(() => {
+            return removePd(this.ids)
+          })
+          .then(() => {
+            this.selectionClear()
+            this.onLoad(this.page)
+            this.$message({
+              type: "success",
+              message: "操作成功!"
+            })
+          })
+      },
+      rowDel(row) {
+        this.$confirm("确定将选择数据删除?", {
+            confirmButtonText: "确定",
+            cancelButtonText: "取消",
+            type: "warning"
+          })
+          .then(() => {
+            return remove(row.id)
+          })
+          .then(() => {
+            this.onLoad(this.page)
+            this.$message({
+              type: "success",
+              message: "操作成功!"
+            })
+          })
+      },
+      beforeClose(done) {
+        done()
+        this.form = {}
+        this.view = false
+      },
+      selectionChange(list) {
+        this.selectionList = list
+      },
+      selectionClear() {
+        this.selectionList = []
+        // this.$refs.table.clearSelection();
+      },
+      currentChange(currentPage) {
+        this.page.currentPage = currentPage
+        this.onLoad(this.page)
+      },
+      sizeChange(pageSize) {
+        this.page.pageSize = pageSize
+        this.onLoad(this.page)
+      },
+      onLoad(page, params = {
+        eventType: 0
+      }) {
+        this.loading = true
+        getListPd(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
+          const data = res.data.data
+          this.page.total = data.total
+          this.data = data.records
+          this.loading = false
+          this.selectionClear()
+        })
+      }
     }
-}
+  }
 </script>
 
 <style lang="scss" scoped>
-.el-pagination {
+  .el-pagination {
     margin-top: 20px;
-}
+  }
 </style>
\ No newline at end of file
diff --git a/src/views/article/components/userList.vue b/src/views/article/components/userList.vue
new file mode 100644
index 0000000..348c16a
--- /dev/null
+++ b/src/views/article/components/userList.vue
@@ -0,0 +1,257 @@
+<template>
+  <el-dialog class="dept-user-table-dialog" width="70%" title="选择人员" modal-append-to-body="false" append-to-body="true"
+    :close-on-click-model="true" :visible.sync="showDialog" @close="showDialog = false">
+    <!-- <div class="left">
+      <el-scrollbar>
+        <basic-container>
+          <avue-tree :option="treeOption" :data="treeData" @node-click="nodeClick" />
+        </basic-container>
+      </el-scrollbar>
+    </div> -->
+    <div class="right">
+      <avue-crud :option="option" :search.sync="search" :table-loading="loading" :data="data" ref="crud" v-model="form"
+        :page.sync="page" @search-change="searchChange" @search-reset="searchReset" @selection-change="selectionChange"
+        @current-change="currentChange" @size-change="sizeChange" @refresh-change="refreshChange"></avue-crud>
+    </div>
+    <div slot="footer" class="dialog-footer">
+      <el-button @click="showDialog = false">取 消</el-button>
+      <el-button type="primary" @click="submit">确 定</el-button>
+    </div>
+  </el-dialog>
+
+
+</template>
+
+<script>
+  import {
+    getDeptLazyTree
+  } from "@/api/system/dept";
+  import {
+    getUserlnfoByDistrictlds
+  } from "@/api/system/user";
+  import {
+    mapGetters
+  } from "vuex";
+
+  export default {
+    name: "DeptUserTable",
+    data() {
+      return {
+        showDialog: false,
+        form: {},
+        search: {},
+        selectionList: [],
+        query: {},
+        loading: true,
+        platformLoading: false,
+        page: {
+          pageSize: 10,
+          currentPage: 1,
+          total: 0
+        },
+        treeDeptId: '',
+        treeData: [],
+        treeOption: {
+          nodeKey: 'id',
+          lazy: true,
+          treeLoad: function(node, resolve) {
+            const parentId = (node.level === 0) ? 0 : node.data.id
+            getDeptLazyTree(parentId).then(res => {
+              resolve(res.data.data.map(item => {
+                return {
+                  ...item,
+                  leaf: !item.hasChildren
+                }
+              }))
+            })
+          },
+          addBtn: false,
+          menu: false,
+          size: 'small',
+          props: {
+            labelText: '标题',
+            label: 'title',
+            value: 'value',
+            children: 'children'
+          }
+        },
+        option: {
+          height: 'auto',
+          calcHeight: 120,
+          tip: false,
+          searchShow: true,
+          searchMenuSpan: 6,
+          border: true,
+          index: true,
+          selection: true,
+          viewBtn: true,
+          dialogType: 'drawer',
+          dialogClickModal: false,
+          menu: false,
+          addBtn: false,
+          rowKey: "id",
+          reserveSelection: true,
+          column: [{
+              label: "用户姓名",
+              prop: "name",
+              search: true,
+              searchSpan: 4,
+              display: false
+            },
+            {
+              label: "电话",
+              prop: "phoneNumber",
+              slot: true,
+              searchSpan: 4,
+              search: true,
+              display: false
+            },
+            {
+              label: "地址",
+              width: 560,
+              prop: "address",
+              slot: true,
+              display: false
+            },
+            {
+              label: "楼栋",
+              prop: "building",
+              slot: true,
+              searchSpan: 4,
+              search: true,
+              display: false
+            },
+            {
+              label: "单元",
+              prop: "unit",
+              searchSpan: 4,
+              slot: true,
+              search: true,
+              display: false
+            },
+
+          ],
+        },
+        data: [],
+        articleRange: '',
+      }
+    },
+    computed: {
+      ...mapGetters(["userInfo", "permission"]),
+      ids() {
+        let ids = []
+        this.selectionList.forEach(ele => {
+          console.log(ele, "---------")
+          ids.push(ele.id)
+        })
+        return ids.join(",")
+      },
+      idsList() {
+        let ids = []
+        this.selectionList.forEach(ele => {
+          ids.push({
+            id: ele.id,
+            name: ele.name
+          })
+        })
+        return ids
+      }
+    },
+    methods: {
+      submit() {
+        this.$emit("selectPersonList", this.idsList)
+        this.showDialog = false
+      },
+
+      show(articleRange) {
+        console.log("***111111111111111111***", articleRange)
+        this.articleRange = articleRange
+        this.showDialog = true
+        this.page.currentPage = 1
+        this.onLoad(this.page)
+      },
+
+      nodeClick(data) {
+        this.treeDeptId = data.id
+        this.page.currentPage = 1
+        this.onLoad(this.page)
+      },
+      searchReset() {
+        this.query = {}
+        this.treeDeptId = ''
+        this.onLoad(this.page)
+      },
+      searchChange(params, done) {
+        this.query = params
+        this.page.currentPage = 1
+        this.onLoad(this.page, params)
+        done()
+      },
+      selectionChange(list) {
+        console.log(list, "list")
+        this.selectionList = list
+      },
+      selectionClear() {
+        this.selectionList = []
+        this.$refs.crud.toggleSelection()
+      },
+      currentChange(currentPage) {
+        this.page.currentPage = currentPage
+        this.onLoad(this.page)
+      },
+      sizeChange(pageSize) {
+        this.page.pageSize = pageSize
+      },
+      refreshChange() {
+        this.onLoad(this.page, this.query)
+      },
+      onLoad(page, params = {}) {
+        this.loading = true
+        params.districtIds = this.articleRange
+        getUserlnfoByDistrictlds(page.currentPage, page.pageSize, Object.assign(params, this.query), this.treeDeptId)
+          .then(res => {
+            const data = res.data.data
+            this.page.total = data.total
+            this.data = data.records
+            this.loading = false
+            // this.selectionClear()
+          })
+      },
+    }
+  }
+</script>
+
+<style lang="scss">
+  .dept-user-table-dialog {
+    margin: 0 !important;
+
+    .el-dialog {
+      display: flex;
+      flex-direction: column;
+      margin: auto !important;
+      position: absolute;
+      top: 0 !important;
+      left: 0 !important;
+      right: 0 !important;
+      bottom: 0 !important;
+      //width: 1000px !important;
+      height: 800px !important;
+
+      .el-dialog__body {
+        height: 0 !important;
+        flex: 1;
+        display: flex;
+
+        .left {
+          width: 0;
+          flex: 2;
+        }
+
+        .right {
+          margin-left: 10px;
+          flex: 9;
+        }
+      }
+    }
+  }
+</style>
\ No newline at end of file
diff --git a/src/views/article/discussionManage.vue b/src/views/article/discussionManage.vue
index a61f288..0d961b0 100644
--- a/src/views/article/discussionManage.vue
+++ b/src/views/article/discussionManage.vue
@@ -19,8 +19,14 @@
           编辑议题
         </el-button>
 
-        <el-button icon="el-icon-user" :size="size" :type="type" @click.stop="openUserPopup(row, 1)">
+        <el-button icon="el-icon-user" :size="size" v-if="row.articleType != 4" :type="type"
+          @click.stop="openUserPopup(row, 0)">
           参与用户
+        </el-button>
+
+        <el-button icon="el-icon-user" v-if="row.articleType == 4" :size="size" :type="type"
+          @click.stop="handleExport(row)">
+          导出投票结果
         </el-button>
 
         <el-button v-if="row.publish == '1'" icon="el-icon-close" :size="size" :type="type" @click.stop="updateFb(row)">
@@ -79,6 +85,21 @@
   } from "vuex"
   import deitDiscussion from "./components/deitDiscussion"
   import discussionManageChild from "./components/discussionManageChild"
+  import NProgress from 'nprogress'
+  import 'nprogress/nprogress.css'
+  import Qs from "qs"
+  import {
+    exportBlob
+  } from "@/api/common"
+  import {
+    getToken
+  } from '@/util/auth'
+  import {
+    downloadXls
+  } from "@/util/util"
+  import {
+    dateNow
+  } from "@/util/date"
 
   export default {
     components: {
@@ -157,6 +178,7 @@
               minRows: 2,
               tags: true,
               type: "tree",
+              dataType: "string",
               multiple: true,
               dicData: [],
               rules: [{
@@ -488,6 +510,29 @@
       }
     },
     methods: {
+      handleExport(row) {
+        this.$confirm("是否导出投票结果数据?", "提示", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(() => {
+          NProgress.start()
+          this.query = {}
+          this.query.articleId = row.id
+          this.query.districtId = row.articleRange
+          var data = {
+            ...this.query
+          }
+          data = Qs.stringify(data)
+          exportBlob(
+              `/api/blade-userTopics/userTopics/exportDataIndex?${this.website.tokenHeader}=${getToken()}&` + data)
+            .then(
+              res => {
+                downloadXls(res.data, `投票结果${dateNow()}.xlsx`)
+                NProgress.done()
+              })
+        })
+      },
       iscommentInput(e, data) {
         upcomment(data.id, e).then(() => {
           this.$message({
@@ -513,8 +558,8 @@
         })
       },
 
-      openUserPopup(row) {
-        this.$refs.DeitDiscussion.openUser(row)
+      openUserPopup(row, type) {
+        this.$refs.DeitDiscussion.openUser(row, type)
       },
 
       openDilog(row, type) {
@@ -529,7 +574,7 @@
           row.videoUrl = ""
         }
         row.userid = this.userInfo.user_id
-        row.articleRange = JSON.stringify(row.articleList)
+        row.articleRange = row.articleList
         if (row.url.length > 0) {
           var urls = []
           var split = row.url.split(",")
@@ -559,7 +604,7 @@
         )
       },
       rowUpdate(row, index, done, loading) {
-        row.articleRange = JSON.stringify(row.articleList)
+        row.articleRange = row.articleList
         if (row.url.length > 0) {
           var urls = []
           var split = row.url.split(",")
@@ -657,7 +702,7 @@
             // })
             this.form = {
               ...data,
-              articleList: JSON.parse(data.articleRange)
+              articleList: data.articleRange
             }
           })
         }
@@ -697,7 +742,7 @@
           this.page.total = data.total
           this.data = data.records
           this.data.forEach(item => {
-            // item.articleRange = JSON.parse(item.articleRange)
+            item.articleList = item.articleRange
             if (item.url.length > 0) {
               var urls = []
               var names = item.url.split(",")
diff --git a/src/views/article/publicSignUp.vue b/src/views/article/publicSignUp.vue
index 8ec3620..15e49a3 100644
--- a/src/views/article/publicSignUp.vue
+++ b/src/views/article/publicSignUp.vue
@@ -146,6 +146,27 @@
               }, ],
             },
             {
+              label: "文章范围",
+              prop: "articleList",
+              span: 12,
+              minRows: 2,
+              type: "tree",
+              multiple: true,
+              dataType: "string",
+              tags: true,
+              dicData: [],
+              rules: [{
+                required: true,
+                message: "请选择文章范围",
+                trigger: "blur",
+              }, ],
+              props: {
+                label: "name",
+                value: 'id'
+              },
+              // hide: true,
+            },
+            {
               width: 110,
               label: "文章封面",
               prop: "url",
@@ -160,26 +181,7 @@
               // hide: true,
               span: 24,
             },
-            {
-              label: "文章范围",
-              prop: "articleList",
-              span: 12,
-              minRows: 2,
-              type: "tree",
-              multiple: true,
-              tags: true,
-              dicData: [],
-              rules: [{
-                required: true,
-                message: "请选择文章范围",
-                trigger: "blur",
-              }, ],
-              props: {
-                label: "name",
-                value: 'id'
-              },
-              hide: true,
-            },
+
             {
               width: 110,
               label: "文章类型",
@@ -199,25 +201,25 @@
                 value: 3, //  // 类型  0:文章 1经营性收支,2:物业招标 3:公益报名 4:选举调查
               }],
             },
-            {
-              label: "发布时间",
-              prop: "dateTime",
-              type: "daterange",
-              format: "yyyy-MM-dd",
-              valueFormat: "yyyy-MM-dd",
-              searchSpan: 6,
-              searchRange: true,
-              hide: true,
-              addDisplay: false,
-              editDisplay: false,
-              viewDisplay: false,
-              search: true,
-              rules: [{
-                required: true,
-                message: "请选择发布时间",
-                trigger: "blur",
-              }, ],
-            },
+            // {
+            //   label: "发布时间",
+            //   prop: "dateTime",
+            //   type: "daterange",
+            //   format: "yyyy-MM-dd",
+            //   valueFormat: "yyyy-MM-dd",
+            //   searchSpan: 6,
+            //   searchRange: true,
+            //   hide: true,
+            //   addDisplay: false,
+            //   editDisplay: false,
+            //   viewDisplay: false,
+            //   search: true,
+            //   rules: [{
+            //     required: true,
+            //     message: "请选择发布时间",
+            //     trigger: "blur",
+            //   }, ],
+            // },
             {
               width: 100,
               label: "发布时间",
@@ -225,6 +227,7 @@
               type: "date",
               format: "yyyy-MM-dd",
               valueFormat: "yyyy-MM-dd HH:mm:ss",
+              editDisplay: false,
             },
             {
               width: 100,
@@ -484,7 +487,7 @@
         //   row.videoUrl = "";
         // }
         row.userid = this.userInfo.user_id
-        row.articleRange = JSON.stringify(row.articleList)
+        row.articleRange = row.articleList
         if (row.url.length > 0) {
           var urls = []
           var split = row.url.split(",")
@@ -510,7 +513,7 @@
         )
       },
       rowUpdate(row, index, done, loading) {
-        row.articleRange = JSON.stringify(row.articleList)
+        row.articleRange = row.articleList
         if (row.url.length > 0) {
           var urls = []
           var split = row.url.split(",")
@@ -604,7 +607,7 @@
               })
               data.url = urls.join(",")
             }
-            data.articleList = JSON.parse(data.articleRange)
+            data.articleList = data.articleRange
             this.form = data
           })
         }
@@ -643,6 +646,7 @@
           this.page.total = data.total
           this.data = data.records
           this.data.forEach(item => {
+            item.articleList = item.articleRange
             if (item.url.length > 0) {
               var urls = []
               var names = item.url.split(",")
diff --git a/src/views/article/rotation.vue b/src/views/article/rotation.vue
index 29b02be..9f2219a 100644
--- a/src/views/article/rotation.vue
+++ b/src/views/article/rotation.vue
@@ -1,4 +1,4 @@
-<!-- 走访日志 -->
+<!-- 轮播图 -->
 <template>
   <basic-container>
     <avue-crud :option="option" :table-loading="loading" :data="data" :page.sync="page" ref="crud" @row-del="rowDel"
@@ -34,7 +34,7 @@
     data() {
       return {
         form: {
-          publicFlag: 1
+          publicFlag: 2
         },
         query: {},
         loading: true,
@@ -94,7 +94,12 @@
                   label: "综治",
                   value: 2
                 }
-              ]
+              ],
+              rules: [{
+                required: true,
+                message: "请选择类型",
+                trigger: "blur",
+              }, ],
             }, {
               width: 110,
               labelWidth: 100,
@@ -102,51 +107,55 @@
               prop: "publicFlag",
               span: 12,
               searchSpan: 4,
-              // search: true,
-              // cascader: ["communityCode"],
+              type: "select",
               type: "select",
               dicData: [{
-                  label: "不公开",
-                  value: 1
-                },
-                {
                   label: "公开",
                   value: 2
-                }
+                }, {
+                  label: "限定公开",
+                  value: 1
+                },
+
               ]
             },
-            // {
-            //   width: 156,
-            //   labelWidth: 100,
-            //   overHidden: true,
-            //   label: "所属社区",
-            //   // parent: false,
-            //   prop: "communityCode",
-            //   multiple: true,
-            //   tags: true,
-            //   hide: true,
-            //   dateType: "string",
-            //   type: "tree",
-            //   dicUrl: "/api/blade-system/region/tree?deptNature={{type}}",
-            //   props: {
-            //     label: "name",
-            //     value: "id"
-            //   },
-            //   rules: [{
-            //     required: true,
-            //     message: "请选择所属社区",
-            //     trigger: "blur",
-            //   }, ],
-            // },
             {
-              label: "范围",
+              width: 156,
+              labelWidth: 100,
+              overHidden: true,
+              label: "所属社区",
+              // parent: false,
+              prop: "communityCode",
+              multiple: true,
+              tags: true,
+              hide: true,
+              dataType: "string",
+              addDisplay: false,
+              editDisplay: false,
+              type: "tree",
+              dicUrl: "/api/blade-system/region/tree?deptNature={{type}}",
+              props: {
+                label: "name",
+                value: "id"
+              },
+              rules: [{
+                required: true,
+                message: "请选择所属社区",
+                trigger: "blur",
+              }, ],
+            },
+            {
+              label: "公开范围",
               prop: "rotationRange",
               width: 156,
               labelWidth: 100,
               tags: true,
               type: "tree",
               multiple: true,
+              // dateType: "string",
+              dataType: "string",
               editDisplay: false,
+              addDisplay: false,
               cascader: ['articleId'],
               dicUrl: "/api/blade-district/district/getDistrictTree?filterFlag=1",
               rules: [{
@@ -158,7 +167,6 @@
                 label: "name",
                 value: 'id'
               },
-              // hide: true,
             },
             {
               hide: true,
@@ -168,10 +176,11 @@
               search: false,
               viewDisabled: false,
               editDisplay: false,
+              addDisplay: false,
               type: 'select',
               dicUrl: `/api/blade-article/article/getArticleByDistrictId?type=4&eventType=1&districtId={{rotationRange}}`,
               formslot: true,
-              cascader: ['vote'],
+              // cascader: ['vote'],
               props: {
                 label: "title",
                 value: "id"
@@ -236,17 +245,32 @@
           const column = this.findObject(this.option.column, "rotationRange")
           if (newData == 1) {
             column.editDisplay = true
+            column.addDisplay = true
           } else {
             column.editDisplay = false
+            column.addDisplay = false
           }
 
           const column2 = this.findObject(this.option.column, "articleId")
           if (newData == 1) {
             column2.editDisplay = true
+            column2.addDisplay = true
           } else {
             column2.editDisplay = false
+            column2.addDisplay = false
           }
-
+        },
+      },
+      'form.type': {
+        handler(newData) {
+          const column = this.findObject(this.option.column, "communityCode")
+          if (newData != 3) {
+            column.editDisplay = true
+            column.addDisplay = true
+          } else {
+            column.editDisplay = false
+            column.addDisplay = false
+          }
         },
       },
     },
@@ -270,6 +294,16 @@
     },
     methods: {
       rowSave(row, done, loading) {
+        // if (row.rotationRange) {
+        //   row.rotationRange = JSON.stringify(row.rotationRange)
+        // }
+        if (row.communityCode) {
+          row.communityCode = JSON.stringify(row.communityCode)
+        }
+        if (row.publicFlag == 2) {
+          row.rotationRange = ''
+          // row.rotationRange = JSON.stringify(row.rotationRange)
+        }
         if (row.url.length > 0) {
           var urls = []
           var split = row.url.split(",")
@@ -295,6 +329,16 @@
         )
       },
       rowUpdate(row, index, done, loading) {
+        // if (row.rotationRange) {
+        //   row.rotationRange = JSON.stringify(row.rotationRange)
+        // }
+        if (row.communityCode) {
+          row.communityCode = JSON.stringify(row.communityCode)
+        }
+        if (row.publicFlag == 2) {
+          row.rotationRange = ''
+          // row.rotationRange = JSON.stringify(row.rotationRange)
+        }
         if (row.url.length > 0) {
           var urls = []
           var split = row.url.split(",")
@@ -379,6 +423,12 @@
         if (["edit", "view"].includes(type)) {
           getRotation(this.form.id).then((res) => {
             this.form = res.data.data
+            // if (this.form.rotationRange) {
+            //   this.form.rotationRange = JSON.parse(this.form.rotationRange)
+            // }
+            // if (this.form.communityCode) {
+            //   this.form.communityCode = JSON.parse(this.form.communityCode)
+            // }
             if (this.form.url.length > 0) {
               var urls = []
               var names = this.form.url.split(",")
@@ -432,6 +482,12 @@
           this.page.total = data.total
           this.data = data.records
           this.data.forEach(item => {
+            // if (item.rotationRange) {
+            //   item.rotationRange = JSON.parse(item.rotationRange)
+            // }
+            // if (item.communityCode) {
+            //   item.communityCode = JSON.parse(item.communityCode)
+            // }
             if (item.url.length > 0) {
               var urls = []
               var names = item.url.split(",")
diff --git a/src/views/backblask/BackblastArticle.vue b/src/views/backblask/BackblastArticle.vue
new file mode 100644
index 0000000..60b7560
--- /dev/null
+++ b/src/views/backblask/BackblastArticle.vue
@@ -0,0 +1,772 @@
+<template>
+  <basic-container>
+    <avue-crud :option="option" :table-loading="loading" :data="data" :page.sync="page" ref="crud" @row-del="rowDel"
+      v-model="form" :permission="permissionList" @row-update="rowUpdate" @row-save="rowSave" :before-open="beforeOpen"
+      @search-change="searchChange" @search-reset="searchReset" @selection-change="selectionChange"
+      @current-change="currentChange" @size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad">
+      <template slot="menuLeft">
+        <!-- <el-button size="small" icon="el-icon-delete" plain v-if="permission.article_backblast_delete" @click="handleDelete">删
+          除
+        </el-button> -->
+      </template>
+
+      <template slot-scope="{type,size,row }" slot="menu">
+
+        <el-button icon="el-icon-user" :size="size" :type="type" @click.stop="openUserPopup(row, 1)" v-if="permission.article_backblast_user">
+          浏览人员
+        </el-button>
+
+        <el-button v-if="row.publish == '1' && permission.article_backblast_addOrDel" icon="el-icon-close" :size="size" :type="type" @click.stop="updateFb(row)">
+          撤销
+        </el-button>
+
+        <el-button v-if="row.publish == '0' && permission.article_backblast_addOrDel" icon="el-icon-check" :size="size" :type="type" @click.stop="updateFb(row)">
+          发布
+        </el-button>
+      </template>
+
+      <template slot-scope="{ row, size }" slot="publish">
+        <el-tag :size="size" :type="showStatus(row.publish, 1).type" v-text="showStatus(row.publish, 1).text">
+        </el-tag>
+      </template>
+
+      <template slot-scope="{ row, size }" slot="iscomment">
+        <el-switch @change="iscommentInput($event, row)" v-model="row.iscomment" :active-value="'1'"
+          :inactive-value="'0'" active-color="#13ce66" inactive-color="#ccc">
+        </el-switch>
+      </template>
+    </avue-crud>
+
+    <deitDiscussion ref="DeitDiscussion">
+    </deitDiscussion>
+  </basic-container>
+</template>
+
+<script>
+  import {
+    getList,
+    remove,
+    update,
+    add,
+    getNotice,
+    upcomment
+  } from "@/api/article/article"
+
+  import website from '@/config/website'
+  import deitDiscussion from "./components/deitDiscussion"
+  import {
+    mapGetters
+  } from "vuex"
+  export default {
+    components: {
+      deitDiscussion,
+    },
+    data() {
+      return {
+        discussForm: {
+          ontitle: '',
+          title: '',
+          openFlag: 0,
+          numberRestrictions: 0,
+          voteRestrictions: 0,
+          userRestrictions: 0,
+          signatureFlag: 0,
+          endTime: '',
+          articleId: '',
+          createTime: '',
+          updateTime: '',
+          deleteFlag: '',
+          repeatVote: 0,
+          voteNumberPublic: 0,
+          appointUser: 0,
+          userIds: '',
+          eventType: 1,
+        },
+        form: {},
+        query: {},
+        loading: true,
+        page: {
+          pageSize: 10,
+          currentPage: 1,
+          total: 0,
+        },
+        datetime: "",
+        selectionList: [],
+        option: {
+          labelWidth: 96,
+          searchLabelWidth: 96,
+          searchShow: true,
+          searchMenuSpan: 3,
+          menuWidth: 280,
+
+          height: "auto",
+          calcHeight: 54,
+          dialogWidth: 950,
+          tip: false,
+          border: true,
+          //stripe:true,
+          index: true,
+          viewBtn: false,
+          selection: true,
+          excelBtn: true,
+          dialogClickModal: false,
+          column: [{
+              overHidden: true,
+              label: "宣传标题",
+              prop: "title",
+              span: 24,
+              row: true,
+              searchSpan: 4,
+              search: true,
+              searchLabelWidth: 76,
+              rules: [{
+                required: true,
+                message: "请输入宣传标题",
+                trigger: "blur",
+              }, ],
+            },
+            {
+              label: "范围",
+              prop: "articleRange",
+              span: 24,
+              minRows: 2,
+              tags: true,
+              type: "tree",
+              multiple: true,
+              dicUrl:"/api/blade-district/district/getDistrictTree?filterFlag=1",
+              dataType:"string",
+              rules: [{
+                required: true,
+                message: "请选择范围",
+                trigger: "blur",
+              }, ],
+              props: {
+                label: "name",
+                value: 'id'
+              },
+              // hide: true,
+            },
+            {
+              width: 110,
+              label: "封面",
+              prop: "url",
+              // align:'center',
+              type: "upload",
+              listType: "picture-img",
+              action: "/api/blade-resource/oss/endpoint/put-file",
+              propsHttp: {
+                res: "data",
+                url: "link",
+              },
+              // hide: true,
+              span: 24,
+            },
+            // {
+            //   width: 110,
+            //   label: "宣传类型",
+            //   prop: "articleType",
+            //   addDisplay: true,
+            //   editDisplay: true,
+            //   viewDisplay: true,
+            //   searchSpan: 4,
+            //   checkStrictly: true,
+            //   dicUrl: "/api/blade-system/dict-biz/dictionary?code=investigateType",
+            //   props: {
+            //     label: "dictValue",
+            //     value: "dictKey",
+            //   },
+            //   search: true,
+            //   type: "tree",
+            //   rules: [{
+            //     required: true,
+            //     message: "请选择宣传类型",
+            //     trigger: "blur",
+            //   }, ],
+            // },
+            {
+              width: 110,
+              label: "观看得分",
+              prop: "score",
+              type: "number",
+              align:"center",
+              value:2,
+              rules: [{
+                required: true,
+                message: "请输入观看得分",
+                trigger: "blur",
+              }, ],
+            },
+            {
+              width: 100,
+              label: "发布时间",
+              prop: "createTime",
+              type: "date",
+              format: "yyyy-MM-dd",
+              valueFormat: "yyyy-MM-dd HH:mm:ss",
+              search: true,
+              addDisplay: false,
+              editDisplay: false,
+              viewDisplay: false,
+            },
+            {
+              width: 100,
+              label: "发布状态",
+              prop: "publish",
+              searchSpan: 4,
+              value: "0",
+              slot: true,
+              search: true,
+              type: "select",
+              rules: [{
+                required: true,
+                message: "请选择发布状态",
+                trigger: "blur",
+              }, ],
+              dicData: [{
+                  label: "未发布",
+                  value: "0",
+                },
+                {
+                  label: "已发布",
+                  value: "1",
+                }
+              ],
+            },
+            {
+              span: 24,
+              label: "评论区",
+              prop: "iscomment",
+              width: 80,
+              slot: true,
+              type: "switch",
+              activeColor: "#13ce66",
+              inactiveColor: "#ccc",
+              value: '1',
+              dicData: [{
+                  label: "关闭",
+                  value: "0",
+                },
+                {
+                  label: "开启",
+                  value: "1",
+                }
+              ],
+            },
+            {
+              label: "视频",
+              prop: "videoUrl",
+              type: "upload",
+              accept: "video/mp4",
+              display: false,
+              hide: true,
+              span: 24,
+              listType: "picture-img",
+              action: "/api/depl/put-depl",
+              propsHttp: {
+                url: "data",
+              },
+            },
+            {
+              label: "宣传内容",
+              prop: "content",
+              component: "AvueUeditor",
+              options: {
+                action: "/api/blade-resource/oss/endpoint/put-file",
+                // customConfig: {
+                //   lineHeights: ['1', '1.15', '1.6', '2', '2.5', '3']
+                // },//wangEditor编辑的配置
+                props: {
+                  res: "data",
+                  url: "link",
+                },
+              },
+              hide: true,
+              minRows: 6,
+              span: 24,
+            },
+          ],
+        },
+        data: [],
+        optionDiscuss: {
+          column: [{
+              label: "",
+              type: 'title',
+              prop: "title",
+              span: 24,
+              row: true,
+              offset: 2,
+              styles: {
+                fontSize: '24px'
+              }
+            }, {
+              labelWidth: 100,
+              label: '开启投票',
+              prop: 'openFlag',
+              type: 'radio',
+              button: true,
+              row: true,
+              offset: 6,
+              dicData: [{
+                label: '开启',
+                value: 0
+              }, {
+                label: '不开启',
+                value: 1
+              }],
+              rules: [{
+                required: true,
+                message: "请选择开启状态",
+                trigger: "blur",
+              }, ],
+            }, {
+              labelWidth: 100,
+              label: '投票限制',
+              prop: 'voteRestrictions',
+              type: 'radio',
+              button: true,
+              row: true,
+              offset: 6,
+              dicData: [{
+                label: '一人一票',
+                value: 0
+              }, {
+                label: '一户一票',
+                value: 1
+              }],
+              rules: [{
+                required: true,
+                message: "请选择投票限制",
+                trigger: "blur",
+              }, ],
+            }, {
+              labelWidth: 100,
+              label: '签名',
+              prop: 'signatureFlag',
+              type: 'radio',
+              button: true,
+              row: true,
+              offset: 6,
+              dicData: [{
+                label: '不需要',
+                value: 0
+              }, {
+                label: '需要',
+                value: 1
+              }],
+              rules: [{
+                required: true,
+                message: "请选择是否签名",
+                trigger: "blur",
+              }, ],
+            }, {
+              labelWidth: 100,
+              label: '指定用户',
+              prop: 'appointUser',
+              type: 'radio',
+              button: true,
+              row: true,
+              offset: 6,
+              dicData: [{
+                label: '不限制',
+                value: 0
+              }, {
+                label: '指定用户',
+                value: 1
+              }],
+              rules: [{
+                required: true,
+                message: "请选择是否指定用户",
+                trigger: "blur",
+              }, ],
+            },
+            {
+              label: "截止时间",
+              row: true,
+              offset: 6,
+              prop: "endTime",
+              type: "datetime",
+              format: "yyyy-MM-dd hh:mm:ss",
+              valueFormat: "timestamp",
+              rules: [{
+                required: true,
+                message: "请选择截止时间",
+                trigger: "blur",
+              }, ],
+            },
+          ]
+        },
+        districtTree: [],
+      }
+    },
+    watch: {
+      "form.articleType": {
+        handler(val) {
+          if (val) {
+            var videoUrl = this.findObject(this.option.column, "videoUrl")
+            var content = this.findObject(this.option.column, "content")
+            if (val.indexOf('ksp') != -1) {
+              videoUrl.display = true
+              content.display = false
+              videoUrl.rules = [{
+                required: false,
+                message: "请选择视频",
+                trigger: "blur",
+              }, ]
+            } else {
+              videoUrl.display = false
+              content.display = true
+              videoUrl.rules = ""
+            }
+          }
+        },
+        immediate: true,
+      }
+    },
+    computed: {
+      ...mapGetters(["permission", "userInfo"]),
+      permissionList() {
+        return {
+          addBtn: this.vaildData(this.permission.article_backblast_add, true),
+          viewBtn: this.vaildData(this.permission.article_backblast_view, true),
+          delBtn: this.vaildData(this.permission.article_backblast_delete, true),
+          editBtn: this.vaildData(this.permission.article_backblast_edit, true),
+        }
+      },
+
+      ids() {
+        let ids = []
+        this.selectionList.forEach((ele) => {
+          ids.push(ele.id)
+        })
+        return ids.join(",")
+      },
+
+      showStatus() {
+        return (data, type) => {
+          if (data == 0) {
+            return {
+              text: type == 1 ? '未发布' : '关闭',
+              type: 'info'
+            }
+          } else if (data == 1) {
+            return {
+              text: type == 1 ? '已发布' : '开启',
+              type: 'success'
+            }
+          }
+        }
+      }
+    },
+    methods: {
+      iscommentInput(e, data) {
+        upcomment(data.id, e).then(() => {
+          this.$message({
+            type: "success",
+            message: "操作成功!",
+          })
+        })
+      },
+
+      openEditPopup(row) {
+        getListPd(1, 10, {
+          eventType: 1,
+          articleId: row.id
+        }).then(res => {
+          if (res.data.data.records.length == 0) {
+            this.$message.warning('请先设置宣传规则!')
+            setTimeout(() => {
+              this.openDilog(row, 1)
+            }, 200)
+          } else {
+            this.$refs.DeitDiscussion.initData(row)
+          }
+        })
+      },
+
+      openUserPopup(row) {
+        this.$refs.DeitDiscussion.openUser(row)
+      },
+
+      openDilog(row, type) {
+        var that = this
+        this.$nextTick(() => {
+          that.$refs.discussionManageChild.init(row)
+        })
+      },
+
+      rowSave(row, done, loading) {
+        if (row.videoUrl.length == 0) {
+          row.videoUrl = ""
+        }
+        row.userid = this.userInfo.user_id
+        // row.articleRange = JSON.stringify(row.articleList)
+        if (row.url.length > 0) {
+          var urls = []
+          var split = row.url.split(",")
+          split.forEach(url => {
+            var names = url.split("jczz/")
+            urls.push(names[1])
+          })
+          row.url = urls.join(",")
+        }
+        // 类型  0:文章 1经营性收支,2:物业招标 3:公益报名 4:选举调查 5: 业主大会 6:反诈宣传
+        row.type = 6
+        add(row).then(
+          () => {
+            this.onLoad(this.page)
+            this.$message({
+              type: "success",
+              message: "操作成功!",
+            })
+            done()
+          },
+          (error) => {
+            window.console.log(error)
+            loading()
+          }
+        )
+      },
+      rowUpdate(row, index, done, loading) {
+        // row.articleRange = JSON.stringify(row.articleList)
+        if (row.url.length > 0) {
+          var urls = []
+          var split = row.url.split(",")
+          split.forEach(url => {
+            var names = url.split("jczz/")
+            urls.push(names[1])
+          })
+          row.url = urls.join(",")
+        }
+
+        update(row).then(
+          () => {
+            this.onLoad(this.page)
+            this.$message({
+              type: "success",
+              message: "操作成功!",
+            })
+            done()
+          },
+          (error) => {
+            window.console.log(error)
+            loading()
+          }
+        )
+      },
+      rowDel(row) {
+        this.$confirm("确定将选择数据删除?", {
+            confirmButtonText: "确定",
+            cancelButtonText: "取消",
+            type: "warning",
+          })
+          .then(() => {
+            return remove(row.id)
+          })
+          .then(() => {
+            this.onLoad(this.page)
+            this.$message({
+              type: "success",
+              message: "操作成功!",
+            })
+          })
+      },
+      searchReset() {
+        this.query = {}
+        this.onLoad(this.page)
+      },
+      searchChange(params, done) {
+        this.query = params
+        this.page.currentPage = 1
+        this.onLoad(this.page, params)
+        done()
+      },
+      selectionChange(list) {
+        this.selectionList = list
+      },
+      selectionClear() {
+        this.selectionList = []
+        this.$refs.crud.toggleSelection()
+      },
+      handleDelete() {
+        if (this.selectionList.length === 0) {
+          this.$message.warning("请选择至少一条数据")
+          return
+        }
+        this.$confirm("确定将选择数据删除?", {
+            confirmButtonText: "确定",
+            cancelButtonText: "取消",
+            type: "warning",
+          })
+          .then(() => {
+            return remove(this.ids)
+          })
+          .then(() => {
+            this.onLoad(this.page)
+            this.$message({
+              type: "success",
+              message: "操作成功!",
+            })
+            this.$refs.crud.toggleSelection()
+          })
+      },
+      beforeOpen(done, type) {
+        if (["edit", "view"].includes(type)) {
+          getNotice(this.form.id).then((res) => {
+            let data = res.data.data
+            // data.forEach(item=>{
+            if (data.url.length > 0) {
+              var urls = []
+              var names = data.url.split(",")
+              names.forEach(name => {
+                urls.push(website.minioUrl + name)
+              })
+              data.url = urls.join(",")
+            }
+            // })
+            // this.form = {
+            //   ...data,
+            //   articleList: JSON.parse(data.articleRange)
+            // }
+          })
+        }
+        // con
+        done()
+      },
+      currentChange(currentPage) {
+        this.page.currentPage = currentPage
+      },
+      sizeChange(pageSize) {
+        this.page.pageSize = pageSize
+      },
+      refreshChange() {
+        this.onLoad(this.page, this.query)
+      },
+      onLoad(page, params = {}) {
+        const {
+          dateTime
+        } = this.query
+        let values = {
+          ...params,
+        }
+        if (dateTime) {
+          values = {
+            ...params,
+            startTime: dateTime[0],
+            endTime: dateTime[1],
+            ...this.query,
+          }
+          values.dateTime = null
+        }
+        // 类型为反诈宣传的
+        values.type = 6
+        this.loading = true
+        console.log(values)
+        getList(page.currentPage, page.pageSize, values).then((res) => {
+          const data = res.data.data
+          this.page.total = data.total
+          this.data = data.records
+          this.data.forEach(item => {
+            // item.articleRange = JSON.parse(item.articleRange)
+            if (item.url.length > 0) {
+              var urls = []
+              var names = item.url.split(",")
+              names.forEach(name => {
+                urls.push(website.minioUrl + name)
+              })
+              item.url = urls.join(",")
+            }
+          })
+          this.loading = false
+          this.selectionClear()
+        })
+        // getDistrictTree(params = {
+        //   filterFlag: 1
+        // }).then((res) => {
+        //   const data = res.data.data
+        //   this.districtTree = data
+        //   const column = this.findObject(this.option.column, "articleList")
+        //   column.dicData = res.data.data
+        //   this.loading = false
+        // })
+      },
+      updateFb(row) {
+        if (row.publish == "0") {
+          row.publish = "1"
+        } else {
+          row.publish = "0"
+        }
+        if (row.url.length > 0) {
+          var urls = []
+          var split = row.url.split(",")
+          split.forEach(url => {
+            var names = url.split("jczz/")
+            urls.push(names[1])
+          })
+          row.url = urls.join(",")
+        }
+        update(row).then(
+          () => {
+            this.onLoad(this.page)
+            this.$message({
+              type: "success",
+              message: "操作成功!",
+            })
+            done()
+          },
+          (error) => {
+            window.console.log(error)
+            loading()
+          }
+        )
+      },
+      kqcomment() {
+        if (this.selectionList.length === 0) {
+          this.$message.warning("请选择至少一条数据")
+          return
+        }
+        this.$confirm("确定将选择数据开启评论?", {
+            confirmButtonText: "确定",
+            cancelButtonText: "取消",
+            type: "warning",
+          }).then(() => {
+            return upcomment(this.ids, "1")
+          })
+          .then(() => {
+            this.onLoad(this.page)
+            this.$message({
+              type: "success",
+              message: "操作成功!",
+            })
+            this.$refs.crud.toggleSelection()
+          })
+      },
+      gbcomment() {
+        if (this.selectionList.length === 0) {
+          this.$message.warning("请选择至少一条数据")
+          return
+        }
+        this.$confirm("确定将选择数据开启评论?", {
+            confirmButtonText: "确定",
+            cancelButtonText: "取消",
+            type: "warning",
+          }).then(() => {
+            return upcomment(this.ids, "0")
+          })
+          .then(() => {
+            this.onLoad(this.page)
+            this.$message({
+              type: "success",
+              message: "操作成功!",
+            })
+            this.$refs.crud.toggleSelection()
+          })
+      }
+    },
+  }
+</script>
+
+<style>
+  .avue-upload__icon {
+    line-height: 6;
+  }
+</style>
\ No newline at end of file
diff --git a/src/views/backblask/BackblastPubRecord.vue b/src/views/backblask/BackblastPubRecord.vue
index 9f36495..0a845ea 100644
--- a/src/views/backblask/BackblastPubRecord.vue
+++ b/src/views/backblask/BackblastPubRecord.vue
@@ -10,6 +10,21 @@
                     v-text="textDispose(row, 'policemanPhoneflag', 'policemanPhone')">
                 </el-button>
             </template>
+
+            <template slot-scope="{row, size,index}" slot="peopleForm" >
+            <el-table :data="form.backblastPubPersonEntityList" v-if="form.backblastPubPersonEntityList">
+              <el-table-column width="100" property="name" label="姓名"
+                label-class-name="workOrderStyle"></el-table-column>
+              <el-table-column width="150" property="telephone" label="手机号" label-class-name="workOrderStyle">
+              </el-table-column>
+              <el-table-column width="160" property="idCard" label="身份证号" label-class-name="workOrderStyle">
+              </el-table-column>
+              <el-table-column width="150" property="occupation" label="职业" label-class-name="workOrderStyle">
+              </el-table-column>
+              <el-table-column width="160" property="address" label="居住地" label-class-name="workOrderStyle">
+              </el-table-column>
+            </el-table>
+          </template>
             <!-- <template slot="menuLeft">
                 <el-button type="warning" size="small" plain icon="el-icon-download" @click="handleExport">导出
                 </el-button>
@@ -80,50 +95,91 @@
                 dialogClickModal: false,
                 column: [
                     {
-                        label: "宣传地址",
+                        label: "地址",
                         prop: "address",
-                        align: 'center',
-                        minWidth: 210,
-                        labelWidth:120,
+                        // align: 'center',
+                        minWidth: 180,
+                        labelWidth: 120,
                         search: true,
                         searchSpan: 5,
                         overHidden: true,
-                        row:true,
-                        span:24,
+                        row: true,
+                        span: 24,
                     }, {
-                        label: "宣传内容",
+                        label: "宣防内容",
                         prop: "pubContent",
-                        labelWidth:120,
-                        align: 'center',
-                        type:"textarea",
-                        row:true,
-                        span:24,
-                        overHidden:true,
+                        labelWidth: 120,
+                        // align: 'center',
+                        type: "textarea",
+                        row: true,
+                        span: 24,
+                        overHidden: true,
+                    },
+
+                    {
+                        label: "是否下载国家反诈app",
+                        prop: "isFzApp",
+                        labelWidth: 120,
+                        // align: 'center',
+                        type: "select",
+                        row: true,
+                        span: 24,
+                        overHidden: true,
+                        hide: true,
+                        dicData: [{
+                            label: "是",
+                            value: 1
+                        },
+                        {
+                            label: "否",
+                            value: 2
+                        }
+                        ],
                     },
                     {
-                        label: "宣传图片",
+                        label: "是否打开预警共能",
+                        prop: "isOpenAlarm",
+                        labelWidth: 120,
+                        // align: 'center',
+                        type: "select",
+                        row: true,
+                        span: 24,
+                        overHidden: true,
+                        hide: true,
+                        dicData: [{
+                            label: "是",
+                            value: 1
+                        },
+                        {
+                            label: "否",
+                            value: 2
+                        }
+                        ],
+                    },
+                    {
+                        label: "宣防佐证照片",
                         prop: "pubUrls",
                         // align: 'center',
                         fileType: 'img',
-                        labelWidth:120,
+                        labelWidth: 120,
                         type: "upload",
                         listType: "picture-card",
                         dataType: "string",
                         width: 110,
-                        row:true,
-                        span:24,
+                        row: true,
+                        span: 24,
                     }, {
-                        label: "宣传时间",
+                        label: "时间",
                         prop: "createTime",
                         align: 'center',
-                        labelWidth:120,
+                        labelWidth: 120,
                         width: 156,
-                        row:true,
+                        row: true,
                     }, {
                         label: "民警姓名",
                         prop: "policeman",
                         align: 'center',
-                        labelWidth:120,
+                        labelWidth: 120,
                         search: true,
                         searchSpan: 4,
                         // searchLabelWidth: 96,
@@ -134,31 +190,47 @@
                         prop: "policemanPhone",
                         align: 'center',
                         slot: true,
-                        labelWidth:120,
+                        labelWidth: 120,
                         search: true,
                         searchLabelWidth: 110,
                         searchSpan: 4,
                         width: 120
                     }, {
-                        label: "地区",
+                        label: "所属街道",
                         prop: "townName",
                         align: 'center',
                         search: true,
-                        searchSpan: 3,
+                        searchSpan: 4,
                         searchLabelWidth: 46,
                         labelWidth: 120,
                         width: 156,
-                        searchPlaceholder: '请输入地区'
+                        searchPlaceholder: '请输入街道'
                     }, {
                         label: "辖区派出所",
                         prop: "pcsName",
                         align: 'center',
-                        labelWidth:120,
-                        search: true,
+                        labelWidth: 120,
+                        search: false,
                         searchSpan: 4,
                         searchLabelWidth: 96,
-                        searchPlaceholder: '请输入辖区派出所'
-                    }],
+                        searchPlaceholder: '请输入辖区派出所',
+                        hide:true
+                    },
+                    {
+                        label: "宣防对象",
+                        prop: "people",
+                        align: 'center',
+                        labelWidth: 120,
+                        search: false,
+                        searchSpan: 4,
+                        searchLabelWidth: 96,
+                        searchPlaceholder: '请输入辖区派出所',
+                        hide:true,
+                        span:24,
+                        slot: true,
+                        formslot: true
+                    },
+                ],
             },
             data: []
         }
@@ -368,7 +440,8 @@
         beforeOpen(done, type) {
             if (["edit", "view"].includes(type)) {
                 getDetail(this.form.id).then(res => {
-                    
+                     console.log("===>",res);
+                     this.$set(this.form,"backblastPubPersonEntityList",res.data.data.backblastPubPersonEntityList)
                 })
                 done()
             } else {
@@ -395,6 +468,7 @@
                 this.page.total = data.total
                 this.data = data.records
                 this.data.forEach(item => {
+                    this.$set(item, 'policemanPhoneflag', false)
                     if (item.pubUrls && item.pubUrls != '' && item.pubUrls != null && item.pubUrls.length) {
                         var urls = []
                         var names = item.pubUrls.split(",").filter(item => item != '')
@@ -416,4 +490,8 @@
 .avue-upload__icon {
     line-height: 6;
 }
+
+.workOrderStyle {
+  font-weight: normal;
+}
 </style>
diff --git a/src/views/backblask/BackblastWarnHanRec.vue b/src/views/backblask/BackblastWarnHanRec.vue
index 721eff8..fc41b99 100644
--- a/src/views/backblask/BackblastWarnHanRec.vue
+++ b/src/views/backblask/BackblastWarnHanRec.vue
@@ -80,9 +80,9 @@
                 dialogClickModal: false,
                 column: [
                     {
-                        label: "预警地址",
+                        label: "地址",
                         prop: "address",
-                        align: 'center',
+                        // align: 'center',
                         minWidth: 210,
                         search: true,
                         searchSpan: 5,
@@ -91,9 +91,9 @@
                         labelWidth:120,
                         row:true,
                     }, {
-                        label: "预警核实内容",
+                        label: "核实内容信息",
                         prop: "recContent",
-                        align: 'center',
+                        // align: 'center',
                         minWidth:150,
                         labelWidth:120,
                         type:"textarea",
@@ -102,7 +102,7 @@
                         overHidden:true,
                     },
                     {
-                        label: "预警核实图片",
+                        label: "核实现场照片",
                         prop: "sceUrls",
                         // align: 'center',
                         labelWidth:120,
@@ -114,7 +114,7 @@
                         dataType: "string",
                         width: 110,
                     }, {
-                        label: "预警核实时间",
+                        label: "时间",
                         prop: "createTime",
                         labelWidth:120,
                         align: 'center',
@@ -397,6 +397,7 @@
                 this.page.total = data.total
                 this.data = data.records
                 this.data.forEach(item => {
+                    this.$set(item, 'policemanPhoneflag', false)
                     if (item.sceUrls && item.sceUrls != '' && item.sceUrls != null && item.sceUrls.length) {
                         var urls = []
                         var names = item.sceUrls.split(",").filter(item => item != '')
diff --git a/src/views/backblask/components/deitDiscussion.vue b/src/views/backblask/components/deitDiscussion.vue
new file mode 100644
index 0000000..e936972
--- /dev/null
+++ b/src/views/backblask/components/deitDiscussion.vue
@@ -0,0 +1,336 @@
+<template>
+  <div>
+    <el-dialog :title="title" append-to-body :visible.sync="popupTableUserShow" width="80%" :before-close="userHandleClose">
+      <basic-container>
+        <avue-crud :data="userData" :page="userPage" :option="userOption" @search-change="searchChange"
+          @search-reset="searchReset">
+          <!-- <template slot-scope="{type,size,row }" slot="menuLeft">
+            <el-button type="warning" size="small" plain icon="el-icon-download" @click="handleExport">导出
+            </el-button>
+          </template> -->
+        </avue-crud>
+      </basic-container>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import {
+  addPd,
+  updatePd
+} from "@/api/discuss/publicDiscuss"
+
+import {
+  getList as getPage
+} from "@/api/article/articleIntegral"
+import 'nprogress/nprogress.css'
+import website from '@/config/website'
+
+
+import {
+  getLists,
+  getList,
+  getDetail,
+  add,
+  update,
+  remove
+} from "@/api/discuss/topics"
+
+export default {
+  data() {
+    return {
+      popupTableShow: false,
+      popupTableUserShow: false,
+
+      loading: true,
+
+      title: '浏览人员信息',
+      editFlag: false,
+      disCussFromListClone: {},
+      disCussFrom: {
+        discussContent: '',
+        optionRange: 0,
+        sort: 1,
+        optionContent: '',
+        optionDetail: '',
+        number: '',
+        createTime: '',
+        updateTime: '',
+        deleteFlag: '',
+        articleId: '',
+        parentId: '',
+        level: '',
+        children: [{
+          optionContent: '',
+          optionDetail: '',
+          number: '',
+          createTime: '',
+          updateTime: '',
+          deleteFlag: '',
+          articleId: '',
+          parentId: '',
+          level: '',
+        }]
+      },
+      // 表单数据
+      form: {
+        optionRange: 0,
+      },
+      data: [],
+      articleId: '',
+      userData: [],
+      userOption: {
+        labelWidth: 96,
+        searchLabelWidth: 96,
+        searchShow: true,
+        searchMenuSpan: 3,
+        // menuWidth: 500,
+        menu: false,
+        height: "400px",
+        calcHeight: 54,
+        dialogWidth: 950,
+        tip: false,
+        border: true,
+        //stripe:true,
+        index: true,
+        editBtn: false,
+        addBtn: false,
+        viewBtn: false,
+        selection: true,
+        delBtn: false,
+        excelBtn: true,
+        dialogClickModal: false,
+        header: true,
+        column: [{
+          label: '姓名',
+          prop: 'realName',
+          searchSpan: 4,
+          search: true,
+          searchLabelWidth: 46,
+          width:100,
+        }, {
+          label: '头像',
+          type: 'upload',
+          listType: "picture-img",
+          prop: 'avatar',
+          width:100,
+        }, {
+          label: '手机',
+          prop: 'phone',
+          searchSpan: 4,
+          searchLabelWidth: 60,
+          search: true,
+          width:100,
+
+        }, {
+          label: '小区',
+          prop: 'aoiName',
+          width:180,
+          overHidden:true,
+        }, {
+          label: '地址',
+          prop: 'address',
+          minWidth:100,
+          overHidden:true,
+
+        }, {
+          label: '浏览时间',
+          prop: 'createTime',
+          width:160,
+        },
+        {
+          label: '获得积分',
+          prop: 'score',
+          width:160,
+          width:80,
+          align:"center",
+        }
+      ]
+      },
+      // 分页信息
+      userPage: {
+        pageSize: 10,
+        pageSizes: [10, 20, 30, 50, 100],
+        currentPage: 1,
+        total: 0
+      },
+      query: {},
+      type: '',
+      newData: {},
+      articleRange: {},
+      tops: {},
+    }
+  },
+
+  watch: {
+    'disCussFrom.optionRange': {
+      handler(newData) {
+        // console.log('** ** ** ** ** ** **', newData)
+        const column = this.findObject(this.optionDiscuss.column, "optionNumber")
+        if (newData == 1) {
+          column.display = true
+        } else {
+          column.display = false
+        }
+      },
+    },
+  },
+
+  methods: {
+    userHandleClose() {
+      this.popupTableUserShow = false
+    },
+    searchReset() {
+      this.query ={}
+      this.getUserPage(this.userPage, this.query)
+    },
+
+    searchChange(params, done) {
+      this.query = params
+      this.query.districtId = this.newData.articleRange
+      if (this.type == 0) {
+        this.query.articleId = this.articleId
+      } else {
+        this.query.topicsId = this.tops.id
+      }
+      this.userPage.currentPage = 1
+      this.getUserPage(this.userPage, this.query)
+      done()
+    },
+
+    openUser(row, type = 0) {
+      this.type = type
+      this.popupTableUserShow = true
+      this.query = {}
+      this.articleId = row.id
+      this.getUserPage(this.userPage, this.userParams)
+    },
+
+    initData(newData) {
+      console.log("======>",  newData);
+      this.editFlag = false
+      this.popupTableShow = true
+      this.articleId = newData.id
+      this.query.level = 1
+      this.query.articleId = this.articleId
+      this.newData = newData
+      this.query.districtId = newData.articleRange
+      this.onLoad(this.userPage, this.query)
+    },
+
+    handleClose() {
+      this.popupTableShow = false
+      this.disCussFrom = {}
+    },
+
+    handleReset() {
+      this.editFlag = false
+    },
+
+    // 提交修改
+    rowUpdate(row, index, done, loading) {
+      done()
+
+      if (row.attachment.length > 0) {
+        var urls = []
+        var split = row.attachment.split(",")
+        split.forEach(url => {
+          var names = url.split("jczz/")
+          urls.push(names[1])
+        })
+        row.attachment = urls.join(",")
+      }
+
+      if (!row.id) {
+        addPd(row).then(() => {
+          this.onLoad()
+
+          this.$message({
+            type: "success",
+            message: "操作成功!"
+          })
+        })
+      } else {
+        updatePd(row).then(() => {
+          this.onLoad()
+
+          this.$message({
+            type: "success",
+            message: "操作成功!"
+          })
+        })
+      }
+    },
+
+    rowDel(row) {
+      this.$confirm("确定将选择数据删除?", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      })
+        .then(() => {
+          return remove(row.id)
+        })
+        .then(() => {
+          this.getUserPage(this.userPage)
+
+          this.$message({
+            type: "success",
+            message: "操作成功!"
+          })
+        })
+    },
+
+    add() {
+      this.editFlag = true
+    },
+
+    edit(row) {
+      this.disCussFrom = row
+      this.disCussFromListClone = [].concat(row.children)
+      this.editFlag = true
+    },
+
+    deletes(row) {
+      this.$confirm("确定将选择数据删除?", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      }).then(() => {
+        return remove(row.id)
+      }).then(() => {
+        let param = {}
+        this.onLoad(this.userPage, param)
+        this.$message({
+          type: "success",
+          message: "操作成功!"
+        })
+      })
+    },
+    getUserPage(page, params = {}) {
+      params['articleId'] = this.articleId
+      getPage(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
+        const data = res.data.data
+        this.userPage.total = data.total
+        this.userData = data.records
+        this.userData.forEach(item => {
+          if (item.avatar.length > 0) {
+            item.avatar = website.minioUrl + item.avatar
+          }
+        })
+      })
+    },
+
+    onLoad(page, params = {}) {
+      this.loading = true
+      getLists(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
+        const data = res.data.data
+        this.data = data
+        this.loading = false
+      })
+    }
+  },
+}
+</script>
+
+<style lang="scss" scoped></style>
\ No newline at end of file
diff --git a/src/views/cGovernance/taskECall.vue b/src/views/cGovernance/taskECall.vue
index a53d835..eb01943 100644
--- a/src/views/cGovernance/taskECall.vue
+++ b/src/views/cGovernance/taskECall.vue
@@ -1,604 +1,662 @@
 <!-- e 呼即办 -->
 <template>
-    <basic-container>
-        <avue-crud :option="option" :table-loading="loading" :data="data" :page.sync="page" ref="crud" @row-del="rowDel"
-            v-model="form" :permission="permissionList" @row-update="rowUpdate" @row-save="rowSave"
-            :before-open="beforeOpen" @search-change="searchChange" @search-reset="searchReset"
-            @selection-change="selectionChange" @current-change="currentChange" @size-change="sizeChange"
-            @refresh-change="refreshChange" @on-load="onLoad">
-            <template slot="menuLeft">
-                <el-button size="small" icon="el-icon-delete" plain v-if="permission.article_delete" @click="handleDelete">删
-                    除
-                </el-button>
-            </template>
-            <template slot-scope="{row, size}" slot="phone">
-                <el-button :size="size" type="text" @click="showStringDispose(row, 'phoneflag')"
-                    v-text="textDispose(row, 'phoneflag', 'phone')">
-                </el-button>
-            </template>
-        </avue-crud>
-    </basic-container>
+  <basic-container>
+    <avue-crud :option="option" :table-loading="loading" :data="data" :page.sync="page" ref="crud" @row-del="rowDel"
+      v-model="form" :permission="permissionList" @row-update="rowUpdate" @row-save="rowSave" :before-open="beforeOpen"
+      @search-change="searchChange" @search-reset="searchReset" @selection-change="selectionChange"
+      @current-change="currentChange" @size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad">
+      <template slot="menuLeft">
+        <el-button size="small" icon="el-icon-delete" plain v-if="permission.article_delete" @click="handleDelete">删
+          除
+        </el-button>
+      </template>
+
+      <template slot="menu" slot-scope="{row, size, index}">
+        <el-button size="small" type="text" icon="el-icon-share" plain @click="share(row)">分享
+        </el-button>
+      </template>
+
+      <template slot-scope="{row, size}" slot="phone">
+        <el-button :size="size" type="text" @click="showStringDispose(row, 'phoneflag')"
+          v-text="textDispose(row, 'phoneflag', 'phone')">
+        </el-button>
+      </template>
+    </avue-crud>
+
+    <el-dialog title="分享" append-to-body :visible.sync="sharePopup" center @close="popupClose">
+      <div style="display: flex; justify-content: center; ">
+        <el-radio-group v-model="circleRadio">
+          <el-radio :label="0">邻里圈</el-radio>
+          <el-radio :label="1">协同圈</el-radio>
+        </el-radio-group>
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="sharePopup = false">取 消</el-button>
+        <el-button type="primary" @click="shareCircle()">确 定</el-button>
+      </span>
+    </el-dialog>
+  </basic-container>
 </template>
 
 <script>
-import {
+  import {
     getList,
     remove,
     update,
     add,
     getECallEvent
-} from "@/api/task/eCall"
-import {
+  } from "@/api/task/eCall"
+  import {
+    add as circleAdd,
+  } from "@/api/circle/circle"
+  import {
     getList as getHouseList,
     getDetatil as getHouseDetail
-} from "@/api/doorplateAddress/doorplateAddress.js"
-import {
+  } from "@/api/doorplateAddress/doorplateAddress.js"
+  import {
     mapGetters
-} from "vuex"
-import website from '@/config/website'
-//   import AvueMap from "avue-plugin-map";
-export default {
-    data () {
+  } from "vuex"
+  import website from '@/config/website'
+  //   import AvueMap from "avue-plugin-map";
+  export default {
+    data() {
 
-        //手机号格式校验
-        let validatorPhone = function (rule, value, callback) {
-            if (value) {
-                if (!/^1[3456789]\d{9}$/.test(value)) {
-                    callback(new Error('手机号格式有误!'))
-                } else {
-                    callback()
-                }
-            }
+      //手机号格式校验
+      let validatorPhone = function(rule, value, callback) {
+        if (value) {
+          if (!/^1[3456789]\d{9}$/.test(value)) {
+            callback(new Error('手机号格式有误!'))
+          } else {
             callback()
+          }
         }
+        callback()
+      }
 
-        return {
-            form: {},
-            query: {},
-            loading: true,
-            page: {
+      return {
+        form: {},
+        query: {},
+        loading: true,
+        page: {
+          pageSize: 10,
+          currentPage: 1,
+          total: 0,
+        },
+        datetime: "",
+        selectionList: [],
+        sharePopup: false,
+        circleRadio: 0,
+        shareCircleRow: {},
+        option: {
+          labelWidth: 96,
+          // searchLabelWidth: 96,
+          searchShow: true,
+          searchMenuSpan: 3,
+          menuWidth: 310,
+
+          height: "auto",
+          calcHeight: 54,
+          dialogWidth: 950,
+          tip: false,
+          border: true,
+          //stripe:true,
+          index: true,
+          viewBtn: true,
+          selection: true,
+          // excelBtn: true,
+          dialogClickModal: false,
+          column: [{
+              label: "事件名称",
+              prop: "name",
+              span: 12,
+              searchSpan: 4,
+              width: 100,
+              search: true,
+              searchLabelWidth: 76,
+              rules: [{
+                required: true,
+                message: "请输入事件名称",
+                trigger: "blur",
+              }, ],
+            },
+            {
+              width: 100,
+              label: "事件类型",
+              prop: "type",
+              span: 12,
+              searchSpan: 4,
+              dataType: "number",
+              type: "select",
+              dicUrl: "/api/blade-system/dict-biz/dictionary?code=eCallEventType",
+              props: {
+                label: "dictValue",
+                value: "dictKey",
+              },
+              rules: [{
+                required: true,
+                message: "请选择事件类型",
+                trigger: "blur",
+              }, ],
+              // search: true,
+            },
+
+            {
+              width: 156,
+              overHidden: true,
+              label: "所属社区",
+              addDisplay: false,
+              editDisplay: false,
+              viewDisplay: false,
+              prop: "communityName",
+              search: true,
+              searchSpan: 4,
+              rules: [{
+                required: true,
+                message: "请选择所属社区",
+                trigger: "blur",
+              }],
+            },
+
+            {
+              label: "所属社区",
+              hide: true,
+              parent: false,
+              prop: "communityCode",
+              search: false,
+              type: "tree",
+              dicUrl: "/api/blade-system/region/tree",
+              props: {
+                label: "name",
+                value: "id",
+              },
+              rules: [{
+                required: true,
+                message: "请选择所属社区",
+                trigger: "blur",
+              }, ],
+            },
+
+            {
+              label: "数据来源",
+              prop: "source",
+              span: 12,
+              searchSpan: 4,
+              width: 100,
+              hide: true,
+              // search: true,
+            },
+            {
+              width: 110,
+              label: "姓名",
+              prop: "realName",
+              span: 12,
+              searchSpan: 4,
+              searchLabelWidth: 66,
+              search: true,
+              rules: [{
+                required: false,
+                message: "请输入姓名",
+                trigger: "blur",
+              }, ],
+            },
+            {
+              width: 120,
+              label: "联系方式",
+              prop: "phone",
+              span: 12,
+              searchSpan: 4,
+              search: true,
+              rules: [{
+                  required: false,
+                  message: "请输入联系方式",
+                  trigger: "blur",
+                },
+                {
+                  validator: validatorPhone,
+                  trigger: 'blur'
+                }
+              ],
+              slot: true
+            },
+            {
+              label: "事发地点",
+              prop: "scene",
+              overHidden: true,
+              rules: [{
+                required: true,
+                message: "请输入事发地点",
+                trigger: "blur",
+              }, ],
+            },
+            {
+              width: 100,
+              label: "事发时间",
+              prop: "occurrenceTime",
+              type: "date",
+              format: "yyyy-MM-dd",
+              valueFormat: "yyyy-MM-dd",
+              rules: [{
+                required: true,
+                message: "请选择事发时间",
+                trigger: "blur",
+              }, ],
+            },
+            {
+              label: "事发位置",
+              prop: "location",
+              submitBtn: "保存",
+              hide: true,
+              type: 'map',
+              dataType: "string",
+              span: 24,
+              value: [117.966460, 28.431002, ""]
+            },
+            {
+              label: "标准地址",
+              prop: "addressCode",
+              hide: true,
+              type: "table",
+              span: 24,
+              row: true,
+              children: {
+                border: true,
+                height: 400,
+                searchShow: true,
+                searchMenuSpan: 6,
+                submitText: "确定",
+                column: [
+                  // {
+                  //   label: "小区",
+                  //   prop: "aoiName",
+                  //   search: true,
+                  //   searchSpan: 4,
+                  //   rules: [
+                  //     {
+                  //       required: true,
+                  //       message: "请选择小区",
+                  //       trigger: "blur",
+                  //     },
+                  //   ],
+                  // },
+                  {
+                    label: "标准地址",
+                    search: true,
+                    searchSpan: 8,
+                    prop: "addressName",
+                    display: false
+                  },
+                ],
+              },
+              page: {
                 pageSize: 10,
                 currentPage: 1,
-                total: 0,
+                total: 0
+              },
+              formatter: (row) => {
+                return row.addressName
+                // if (!row.districtName) return ''
+                // return row.districtName + '-' + row.unit  + row.building  + row.room
+              },
+              onLoad: ({
+                page,
+                value,
+                data
+              }, callback) => {
+                //首次加载去查询对应的值
+                if (value) {
+                  getHouseDetail({
+                    addressCode: value
+                  }).then(res => {
+                    var resData = res.data.data
+                    // 查询对应行数据
+                    callback(resData)
+                    return
+                  })
+                }
+                if (page) {
+                  this.loading = true
+                  var params = {
+                    ...data,
+                    townStreetCode: "361102005"
+                  }
+                  getHouseList(page.currentPage, page.pageSize, Object.assign(params)).then(res => {
+                    const resData = res.data.data
+                    var total = resData.total
+                    var data = resData.records
+                    this.loading = false
+                    this.selectionClear()
+                    //分页查询信息
+                    callback({
+                      total: total,
+                      data: data
+                    })
+                  })
+                }
+              },
+              props: {
+                label: 'addressName',
+                value: 'addressCode'
+              }
             },
-            datetime: "",
-            selectionList: [],
-            option: {
-                labelWidth: 96,
-                searchLabelWidth: 96,
-                searchShow: true,
-                searchMenuSpan: 3,
-                menuWidth: 210,
 
-                height: "auto",
-                calcHeight: 54,
-                dialogWidth: 950,
-                tip: false,
-                border: true,
-                //stripe:true,
-                index: true,
-                viewBtn: true,
-                selection: true,
-                // excelBtn: true,
-                dialogClickModal: false,
-                column: [{
-                    label: "事件名称",
-                    prop: "name",
-                    span: 12,
-                    searchSpan: 4,
-                    width: 100,
-                    search: true,
-                    searchLabelWidth: 76,
-                    rules: [{
-                        required: true,
-                        message: "请输入事件名称",
-                        trigger: "blur",
-                    },],
-                },
-                {
-                    width: 100,
-                    label: "事件类型",
-                    prop: "type",
-                    span: 12,
-                    searchSpan: 4,
-                    dataType: "number",
-                    type: "select",
-                    dicUrl: "/api/blade-system/dict-biz/dictionary?code=eCallEventType",
-                    props: {
-                        label: "dictValue",
-                        value: "dictKey",
-                    },
-                    rules: [{
-                        required: true,
-                        message: "请选择事件类型",
-                        trigger: "blur",
-                    },],
-                    // search: true,
-                },
-
-                {
-                    width: 156,
-                    overHidden: true,
-                    label: "所属社区",
-                    addDisplay: false,
-                    editDisplay: false,
-                    viewDisplay: false,
-                    prop: "communityName",
-                    search: true,
-                    searchSpan: 4,
-                    rules: [{
-                        required: true,
-                        message: "请选择所属社区",
-                        trigger: "blur",
-                    }],
-                },
-
-                {
-                    label: "所属社区",
-                    hide: true,
-                    parent: false,
-                    prop: "communityCode",
-                    search: false,
-                    type: "tree",
-                    dicUrl: "/api/blade-system/region/tree",
-                    props: {
-                        label: "name",
-                        value: "id",
-                    },
-                    rules: [
-                        {
-                            required: true,
-                            message: "请选择所属社区",
-                            trigger: "blur",
-                        },
-                    ],
-                },
-
-                {
-                    label: "数据来源",
-                    prop: "source",
-                    span: 12,
-                    searchSpan: 4,
-                    width: 100,
-                    hide: true,
-                    // search: true,
-                },
-                {
-                    width: 110,
-                    label: "姓名",
-                    prop: "realName",
-                    span: 12,
-                    searchSpan: 4,
-                    searchLabelWidth: 66,
-                    search: true,
-                    rules: [{
-                        required: false,
-                        message: "请输入姓名",
-                        trigger: "blur",
-                    },],
-                },
-                {
-                    width: 120,
-                    label: "联系方式",
-                    prop: "phone",
-                    span: 12,
-                    searchSpan: 4,
-                    search: true,
-                    rules: [{
-                        required: false,
-                        message: "请输入联系方式",
-                        trigger: "blur",
-                    },
-                    {
-                        validator: validatorPhone,
-                        trigger: 'blur'
-                    }],
-                    slot: true
-                },
-                {
-                    label: "事发地点",
-                    prop: "scene",
-                    overHidden: true,
-                    rules: [{
-                        required: true,
-                        message: "请输入事发地点",
-                        trigger: "blur",
-                    },],
-                },
-                {
-                    width: 100,
-                    label: "事发时间",
-                    prop: "occurrenceTime",
-                    type: "date",
-                    format: "yyyy-MM-dd",
-                    valueFormat: "yyyy-MM-dd",
-                    rules: [{
-                        required: true,
-                        message: "请选择事发时间",
-                        trigger: "blur",
-                    },],
-                },
-                {
-                    label: "事发位置",
-                    prop: "location",
-                    submitBtn: "保存",
-                    hide: true,
-                    type: 'map',
-                    dataType: "string",
-                    span: 24,
-                    value: [117.966460, 28.431002, ""]
-                },
-                {
-                    label: "标准地址",
-                    prop: "addressCode",
-                    hide: true,
-                    type: "table",
-                    span: 24,
-                    row: true,
-                    children: {
-                        border: true,
-                        height: 400,
-                        searchShow: true,
-                        searchMenuSpan: 6,
-                        submitText: "确定",
-                        column: [
-                            // {
-                            //   label: "小区",
-                            //   prop: "aoiName",
-                            //   search: true,
-                            //   searchSpan: 4,
-                            //   rules: [
-                            //     {
-                            //       required: true,
-                            //       message: "请选择小区",
-                            //       trigger: "blur",
-                            //     },
-                            //   ],
-                            // },
-                            {
-                                label: "标准地址",
-                                search: true,
-                                searchSpan: 8,
-                                prop: "addressName",
-                                display: false
-                            },
-                        ],
-                    },
-                    page: {
-                        pageSize: 10,
-                        currentPage: 1,
-                        total: 0
-                    },
-                    formatter: (row) => {
-                        return row.addressName
-                        // if (!row.districtName) return ''
-                        // return row.districtName + '-' + row.unit  + row.building  + row.room
-                    },
-                    onLoad: ({
-                        page,
-                        value,
-                        data
-                    }, callback) => {
-                        //首次加载去查询对应的值
-                        if (value) {
-                            getHouseDetail({
-                                addressCode: value
-                            }).then(res => {
-                                var resData = res.data.data
-                                // 查询对应行数据
-                                callback(resData)
-                                return
-                            })
-                        }
-                        if (page) {
-                            this.loading = true
-                            var params = {
-                                ...data,
-                                townStreetCode: "361102005"
-                            }
-                            getHouseList(page.currentPage, page.pageSize, Object.assign(params)).then(res => {
-                                const resData = res.data.data
-                                var total = resData.total
-                                var data = resData.records
-                                this.loading = false
-                                this.selectionClear()
-                                //分页查询信息
-                                callback({
-                                    total: total,
-                                    data: data
-                                })
-                            })
-                        }
-                    },
-                    props: {
-                        label: 'addressName',
-                        value: 'addressCode'
-                    }
-                },
-
-                {
-                    width: 110,
-                    label: "现场图片",
-                    prop: "imageUrls",
-                    type: "upload",
-                    listType: "picture-card",
-                    dataType: "string",
-                    multiple: true,
-                    row: true,
-                    action: "/api/blade-resource/oss/endpoint/put-file-attach",
-                    propsHttp: {
-                        res: "data",
-                        name: 'name',
-                        url: "link",
-                    },
-                    span: 24,
-                },
-
-                {
-                    label: "事件简述",
-                    prop: "remark",
-                    type: "textarea",
-                    span: 24,
-                },
-                // {
-                //   label: "处置情况",
-                //   prop: "disSit",
-                //   type:"textarea",
-                //   hide:true,
-                //   span: 24,
-                // },
-                {
-                    label: "处理结果",
-                    prop: "disRes",
-                    type: "textarea",
-                    hide: true,
-                    span: 24,
-                },
-                {
-                    label: "回访情况",
-                    prop: "retVis",
-                    type: "textarea",
-                    hide: true,
-                    span: 24,
-                },
-                    // {
-                    //   label: "处置状态",
-                    //   prop: "dis_status",
-                    //   type:"select",
-                    //   hide:true,
-                    // }
-                ],
+            {
+              width: 110,
+              label: "现场图片",
+              prop: "imageUrls",
+              type: "upload",
+              listType: "picture-card",
+              dataType: "string",
+              multiple: true,
+              row: true,
+              action: "/api/blade-resource/oss/endpoint/put-file-attach",
+              propsHttp: {
+                res: "data",
+                name: 'name',
+                url: "link",
+              },
+              span: 24,
             },
-            data: [],
-        }
+
+            {
+              label: "事件简述",
+              prop: "remark",
+              type: "textarea",
+              span: 24,
+            },
+            // {
+            //   label: "处置情况",
+            //   prop: "disSit",
+            //   type:"textarea",
+            //   hide:true,
+            //   span: 24,
+            // },
+            {
+              label: "处理结果",
+              prop: "disRes",
+              type: "textarea",
+              hide: true,
+              span: 24,
+            },
+            {
+              label: "回访情况",
+              prop: "retVis",
+              type: "textarea",
+              hide: true,
+              span: 24,
+            },
+            // {
+            //   label: "处置状态",
+            //   prop: "dis_status",
+            //   type:"select",
+            //   hide:true,
+            // }
+          ],
+        },
+        data: [],
+      }
     },
     watch: {
-        "form.location": {
-            // form是表单或者表格绑定的数据集,v-model='form'
-            handler (val) {
-                if (typeof val == "string") {
-                    var arr = val.split(",")
-                    //经纬度替换
-                    this.form.lat = arr[1]
-                    this.form.lng = arr[0]
-                    this.form.address = arr[2]
-                }
-            },
-            immediate: true,
+      "form.location": {
+        // form是表单或者表格绑定的数据集,v-model='form'
+        handler(val) {
+          if (typeof val == "string") {
+            var arr = val.split(",")
+            //经纬度替换
+            this.form.lat = arr[1]
+            this.form.lng = arr[0]
+            this.form.address = arr[2]
+          }
         },
+        immediate: true,
+      },
     },
     computed: {
-        ...mapGetters(["permission", "userInfo"]),
-        permissionList () {
-            return {
-                addBtn: this.vaildData(this.permission.eCallEvent_add, true),
-                viewBtn: this.vaildData(this.permission.eCallEvent_view, true),
-                delBtn: this.vaildData(this.permission.eCallEvent_delete, true),
-                editBtn: this.vaildData(this.permission.eCallEvent_edit, true),
-            }
-        },
-        ids () {
-            let ids = []
-            this.selectionList.forEach((ele) => {
-                ids.push(ele.id)
-            })
-            return ids.join(",")
-        },
-        textDispose () {
-            return (row, flag, type) => {
-                if (row[flag] || row[type] == null) {
-                    return row[type]
-                } else {
-                    if (type == 'principalIdCard') {
-                        return row[type].replace(/^(.{6})(?:\d+)(.{4})$/, "$1******$2")
-                    } else {
-                        return row[type].replace(/^(.{3})(?:\d+)(.{4})$/, "$1****$2")
-                    }
-                }
-            }
+      ...mapGetters(["permission", "userInfo"]),
+      permissionList() {
+        return {
+          addBtn: this.vaildData(this.permission.eCallEvent_add, true),
+          viewBtn: this.vaildData(this.permission.eCallEvent_view, true),
+          delBtn: this.vaildData(this.permission.eCallEvent_delete, true),
+          editBtn: this.vaildData(this.permission.eCallEvent_edit, true),
         }
+      },
+      ids() {
+        let ids = []
+        this.selectionList.forEach((ele) => {
+          ids.push(ele.id)
+        })
+        return ids.join(",")
+      },
+      textDispose() {
+        return (row, flag, type) => {
+          if (row[flag] || row[type] == null) {
+            return row[type]
+          } else {
+            if (type == 'principalIdCard') {
+              return row[type].replace(/^(.{6})(?:\d+)(.{4})$/, "$1******$2")
+            } else {
+              return row[type].replace(/^(.{3})(?:\d+)(.{4})$/, "$1****$2")
+            }
+          }
+        }
+      }
     },
     methods: {
-        showStringDispose (row, type) {
-            row[type] = !row[type]
-        },
+      showStringDispose(row, type) {
+        row[type] = !row[type]
+      },
 
-        rowSave (row, done, loading) {
-            if (row.imageUrls.length > 0) {
-                var urls = []
-                var split = row.imageUrls.split(",")
-                split.forEach(url => {
-                    var names = url.split("jczz/")
-                    urls.push(names[1])
-                })
-                row.imageUrls = urls.join(",")
-            }
-            add(row).then(
-                () => {
-                    this.onLoad(this.page)
-                    this.$message({
-                        type: "success",
-                        message: "操作成功!",
-                    })
-                    done()
-                },
-                (error) => {
-                    window.console.log(error)
-                    loading()
-                }
-            )
-        },
-        rowUpdate (row, index, done, loading) {
-            if (row.imageUrls.length > 0) {
-                var urls = []
-                var split = row.imageUrls.split(",")
-                split.forEach(url => {
-                    var names = url.split("jczz/")
-                    urls.push(names[1])
-                })
-                row.imageUrls = urls.join(",")
-            }
-            update(row).then(
-                () => {
-                    this.onLoad(this.page)
-                    this.$message({
-                        type: "success",
-                        message: "操作成功!",
-                    })
-                    done()
-                },
-                (error) => {
-                    window.console.log(error)
-                    loading()
-                }
-            )
-        },
-        rowDel (row) {
-            this.$confirm("确定将选择数据删除?", {
-                confirmButtonText: "确定",
-                cancelButtonText: "取消",
-                type: "warning",
-            })
-                .then(() => {
-                    return remove(row.id)
-                })
-                .then(() => {
-                    this.onLoad(this.page)
-                    this.$message({
-                        type: "success",
-                        message: "操作成功!",
-                    })
-                })
-        },
-        searchReset () {
-            this.query = {}
-            this.onLoad(this.page)
-        },
-        searchChange (params, done) {
-            this.query = params
-            this.page.currentPage = 1
-            this.onLoad(this.page, params)
-            done()
-        },
-        selectionChange (list) {
-            this.selectionList = list
-        },
-        selectionClear () {
-            this.selectionList = []
-            this.$refs.crud.toggleSelection()
-        },
-        handleDelete () {
-            if (this.selectionList.length === 0) {
-                this.$message.warning("请选择至少一条数据")
-                return
-            }
-            this.$confirm("确定将选择数据删除?", {
-                confirmButtonText: "确定",
-                cancelButtonText: "取消",
-                type: "warning",
-            })
-                .then(() => {
-                    return remove(this.ids)
-                })
-                .then(() => {
-                    this.onLoad(this.page)
-                    this.$message({
-                        type: "success",
-                        message: "操作成功!",
-                    })
-                    this.$refs.crud.toggleSelection()
-                })
-        },
-        beforeOpen (done, type) {
-            if (["edit", "view"].includes(type)) {
-                getECallEvent(this.form.id).then((res) => {
-                    this.form = res.data.data
-                    if (this.form.imageUrls.length > 0) {
-                        var urls = []
-                        var names = this.form.imageUrls.split(",")
-                        names.forEach(name => {
-                            urls.push(website.minioUrl + name)
-                        })
-                        this.form.imageUrls = urls.join(",")
-                    }
-                })
-            }
-            // con
-            done()
-        },
-        currentChange (currentPage) {
-            this.page.currentPage = currentPage
-        },
-        sizeChange (pageSize) {
-            this.page.pageSize = pageSize
-        },
-        refreshChange () {
-            this.onLoad(this.page, this.query)
-        },
-        onLoad (page, params = {}) {
-            const {
-                dateTime
-            } = this.query
-            let values = {
-                ...params,
-            }
-            if (dateTime) {
-                values = {
-                    ...params,
-                    startTime: dateTime[0],
-                    endTime: dateTime[1],
-                    ...this.query,
-                }
-                values.dateTime = null
-            }
-            this.loading = true
-            getList(page.currentPage, page.pageSize, values).then((res) => {
-                const data = res.data.data
-                this.page.total = data.total
-                this.data = data.records
-                this.data.forEach(item => {
-                    this.$set(item, 'phoneflag', false)
-                    if (item.imageUrls) {
-                        if (item.imageUrls.length > 0) {
-                            var urls = []
-                            var names = item.imageUrls.split(",")
-                            names.forEach(name => {
-                                urls.push(website.minioUrl + name)
-                            })
-                            item.imageUrls = urls.join(",")
-                        }
-                    }
-                })
-                this.loading = false
-                this.selectionClear()
-            })
+      rowSave(row, done, loading) {
+        if (row.imageUrls.length > 0) {
+          var urls = []
+          var split = row.imageUrls.split(",")
+          split.forEach(url => {
+            var names = url.split("jczz/")
+            urls.push(names[1])
+          })
+          row.imageUrls = urls.join(",")
         }
+        add(row).then(
+          () => {
+            this.onLoad(this.page)
+            this.$message({
+              type: "success",
+              message: "操作成功!",
+            })
+            done()
+          },
+          (error) => {
+            window.console.log(error)
+            loading()
+          }
+        )
+      },
+      rowUpdate(row, index, done, loading) {
+        if (row.imageUrls.length > 0) {
+          var urls = []
+          var split = row.imageUrls.split(",")
+          split.forEach(url => {
+            var names = url.split("jczz/")
+            urls.push(names[1])
+          })
+          row.imageUrls = urls.join(",")
+        }
+        update(row).then(
+          () => {
+            this.onLoad(this.page)
+            this.$message({
+              type: "success",
+              message: "操作成功!",
+            })
+            done()
+          },
+          (error) => {
+            window.console.log(error)
+            loading()
+          }
+        )
+      },
+      rowDel(row) {
+        this.$confirm("确定将选择数据删除?", {
+            confirmButtonText: "确定",
+            cancelButtonText: "取消",
+            type: "warning",
+          })
+          .then(() => {
+            return remove(row.id)
+          })
+          .then(() => {
+            this.onLoad(this.page)
+            this.$message({
+              type: "success",
+              message: "操作成功!",
+            })
+          })
+      },
+      searchReset() {
+        this.query = {}
+        this.onLoad(this.page)
+      },
+      searchChange(params, done) {
+        this.query = params
+        this.page.currentPage = 1
+        this.onLoad(this.page, params)
+        done()
+      },
+      selectionChange(list) {
+        this.selectionList = list
+      },
+      selectionClear() {
+        this.selectionList = []
+        this.$refs.crud.toggleSelection()
+      },
+
+      share(row) {
+        console.table(row)
+        this.shareCircleRow = row
+        this.sharePopup = true
+      },
+      // 分享圈子
+      shareCircle() {
+        this.sharePopup = false
+        let param = {}
+        param.circleType = this.circleRadio
+        param.houseCode = this.shareCircleRow.addressCode
+        param.circleImages = this.shareCircleRow.imageUrls
+        param.communityCode = this.shareCircleRow.communityCode
+        param.circleText = this.shareCircleRow.remark
+        param.evenType = 2
+        param.eventId = this.shareCircleRow.id
+        circleAdd(param).then(
+          () => {
+            this.onLoad(this.page)
+            this.$message({
+              type: "success",
+              message: "操作成功!",
+            })
+            done()
+          },
+          (error) => {
+            window.console.log(error)
+            loading()
+          }
+        )
+      },
+      popupClose() {
+        this.sharePopup = false
+      },
+      handleDelete() {
+        if (this.selectionList.length === 0) {
+          this.$message.warning("请选择至少一条数据")
+          return
+        }
+        this.$confirm("确定将选择数据删除?", {
+            confirmButtonText: "确定",
+            cancelButtonText: "取消",
+            type: "warning",
+          })
+          .then(() => {
+            return remove(this.ids)
+          })
+          .then(() => {
+            this.onLoad(this.page)
+            this.$message({
+              type: "success",
+              message: "操作成功!",
+            })
+            this.$refs.crud.toggleSelection()
+          })
+      },
+      beforeOpen(done, type) {
+        if (["edit", "view"].includes(type)) {
+          getECallEvent(this.form.id).then((res) => {
+            this.form = res.data.data
+            if (this.form.imageUrls.length > 0) {
+              var urls = []
+              var names = this.form.imageUrls.split(",")
+              names.forEach(name => {
+                urls.push(website.minioUrl + name)
+              })
+              this.form.imageUrls = urls.join(",")
+            }
+          })
+        }
+        // con
+        done()
+      },
+      currentChange(currentPage) {
+        this.page.currentPage = currentPage
+      },
+      sizeChange(pageSize) {
+        this.page.pageSize = pageSize
+      },
+      refreshChange() {
+        this.onLoad(this.page, this.query)
+      },
+      onLoad(page, params = {}) {
+        const {
+          dateTime
+        } = this.query
+        let values = {
+          ...params,
+        }
+        if (dateTime) {
+          values = {
+            ...params,
+            startTime: dateTime[0],
+            endTime: dateTime[1],
+            ...this.query,
+          }
+          values.dateTime = null
+        }
+        this.loading = true
+        getList(page.currentPage, page.pageSize, values).then((res) => {
+          const data = res.data.data
+          this.page.total = data.total
+          this.data = data.records
+          this.data.forEach(item => {
+            this.$set(item, 'phoneflag', false)
+            if (item.imageUrls) {
+              if (item.imageUrls.length > 0) {
+                var urls = []
+                var names = item.imageUrls.split(",")
+                names.forEach(name => {
+                  urls.push(website.minioUrl + name)
+                })
+                item.imageUrls = urls.join(",")
+              }
+            }
+          })
+          this.loading = false
+          this.selectionClear()
+        })
+      }
     },
-}
+  }
 </script>
 
 <style>
-.avue-upload__icon {
+  .avue-upload__icon {
     line-height: 6;
-}
-</style>
+  }
+</style>
\ No newline at end of file
diff --git a/src/views/disputeRecord/disputeRecord.vue b/src/views/disputeRecord/disputeRecord.vue
new file mode 100644
index 0000000..3d22d55
--- /dev/null
+++ b/src/views/disputeRecord/disputeRecord.vue
@@ -0,0 +1,866 @@
+<template>
+    <basic-container>
+        <avue-crud :option="option" :table-loading="loading" :data="data" :page.sync="page" ref="crud" @row-del="rowDel"
+            v-model="form" :permission="permissionList" @row-update="rowUpdate" @row-save="rowSave"
+            :before-open="beforeOpen" @search-change="searchChange" @search-reset="searchReset"
+            @selection-change="selectionChange" @current-change="currentChange" @size-change="sizeChange"
+            @refresh-change="refreshChange" @on-load="onLoad">
+            <template slot-scope="{row, size}" slot="phoneOne">
+                <el-button :size="size" type="text" @click="showStringDispose(row, 'phoneOneflag')"
+                    v-text="textDispose(row, 'phoneOneflag', 'phoneOne')">
+                </el-button>
+            </template>
+            <template slot-scope="{row, size}" slot="idCardOne">
+                <el-button :size="size" type="text" @click="showStringDispose(row, 'idCardOneflag')"
+                    v-text="textDispose(row, 'idCardOneflag', 'idCardOne')">
+                </el-button>
+            </template>
+
+
+            <template slot="menuLeft">
+                <el-button type="success" size="small" plain v-if="permission.dispute_record_import"
+                    icon="el-icon-upload2" @click="handleImport">导入
+                </el-button>
+                <el-button type="warning" size="small" plain v-if="permission.dispute_record_export"
+                    icon="el-icon-download" @click="handleExport">导出
+                </el-button>
+            </template>
+        </avue-crud>
+        <el-dialog title="矛盾纠纷事件数据导入" append-to-body :visible.sync="excelBox" width="555px">
+            <avue-form :option="excelOption" v-model="excelForm" :upload-after="uploadAfter">
+                <template slot="excelTemplate">
+                    <el-button size="small" type="primary" @click="handleTemplate">
+                        点击下载<i class="el-icon-download el-icon--right"></i>
+                    </el-button>
+                </template>
+            </avue-form>
+        </el-dialog>
+    </basic-container>
+</template>
+
+<script>
+import {
+    mapGetters
+} from "vuex"
+import {
+    getList,
+    add,
+    update,
+    remove,
+    getDetail
+} from "@/api/disputeRecord/disputeRecord"
+import NProgress from 'nprogress'
+import 'nprogress/nprogress.css'
+import Qs from "qs"
+import {
+    exportBlob
+} from "@/api/common"
+import {
+    getToken
+} from '@/util/auth'
+import {
+    downloadXls
+} from "@/util/util"
+import {
+    dateNow
+} from "@/util/date"
+import website from '@/config/website'
+export default {
+    data() {
+        let isCardId = function (rule, value, callback) {
+            // 15位和18位身份证号码的正则表达式
+            var regIdCard =
+                /^(^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$)|(^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])((\d{4})|\d{3}[Xx])$)$/
+
+            // 如果通过该验证,说明身份证格式正确,但准确性还需计算
+            if (regIdCard.test(value) || value == '') {
+                if (value.length == 18) {
+                    var idCardWi = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10,
+                        5, 8, 4, 2) // 将前17位加权因子保存在数组里
+                    var idCardY = new Array(1, 0, 10, 9, 8, 7, 6, 5, 4, 3, 2) // 这是除以11后,可能产生的11位余数、验证码,也保存成数组
+                    var idCardWiSum = 0 // 用来保存前17位各自乖以加权因子后的总和
+                    for (var i = 0; i < 17; i++) {
+                        idCardWiSum += value.substring(i, i + 1) * idCardWi[i]
+                    }
+
+                    var idCardMod = idCardWiSum % 11 // 计算出校验码所在数组的位置
+                    var idCardLast = value.substring(17) // 得到最后一位身份证号码
+
+                    // 如果等于2,则说明校验码是10,身份证号码最后一位应该是X
+                    if (idCardMod == 2) {
+                        if (idCardLast == "X" || idCardLast == "x") {
+                            callback()
+                        } else {
+                            callback(new Error("身份证号格式有误!"))
+                        }
+                    } else {
+                        // 用计算出的验证码与最后一位身份证号码匹配,如果一致,说明通过,否则是无效的身份证号码
+                        if (idCardLast == idCardY[idCardMod]) {
+                            callback()
+                        } else {
+                            callback(new Error("身份证号格式有误!"))
+                        }
+                    }
+                } else {
+                    callback()
+                }
+            } else {
+                //alert("身份证格式不正确!");
+                callback(new Error("身份证号格式有误!"))
+            }
+
+            callback()
+        }
+
+        //手机号格式校验
+        let validatorPhone = function (rule, value, callback) {
+            if (value) {
+                if (!/^1[3456789]\d{9}$/.test(value)) {
+                    callback(new Error('手机号格式有误!'))
+                } else {
+                    callback()
+                }
+            }
+            callback()
+        }
+        return {
+            excelForm: {},
+            excelBox: false,
+            excelOption: {
+                submitBtn: false,
+                emptyBtn: false,
+                column: [{
+                    label: '模板上传',
+                    prop: 'excelFile',
+                    type: 'upload',
+                    drag: true,
+                    loadText: '模板上传中,请稍等',
+                    span: 24,
+                    propsHttp: {
+                        res: 'data'
+                    },
+                    tip: '请上传 .xls,.xlsx 标准格式文件',
+                    action: "/api/blade-disputeRecord/disputeRecord/import-disputeRecord"
+                },
+                // {
+                //     label: "数据覆盖",
+                //     prop: "isCovered",
+                //     type: "switch",
+                //     align: "center",
+                //     width: 80,
+                //     dicData: [{
+                //         label: "否",
+                //         value: 0
+                //     },
+                //     {
+                //         label: "是",
+                //         value: 1
+                //     }
+                //     ],
+                //     value: 0,
+                //     slot: true,
+                //     rules: [{
+                //         required: true,
+                //         message: "请选择是否覆盖",
+                //         trigger: "blur"
+                //     }]
+                // },
+                {
+                    label: '模板下载',
+                    prop: 'excelTemplate',
+                    formslot: true,
+                    span: 24,
+                }
+                ]
+            },
+            form: {},
+            query: {},
+            loading: true,
+
+            page: {
+                pageSize: 10,
+                currentPage: 1,
+                total: 0,
+            },
+            datetime: "",
+            selectionList: [],
+            option: {
+                height: "auto",
+                calcHeight: 54,
+                dialogWidth: 950,
+                menuWidth: 210,
+                tip: false,
+                searchShow: true,
+                searchMenuSpan: 3,
+                border: true,
+                index: true,
+                editBtn: true,
+                delBtn: true,
+                addBtn: true,
+                viewBtn: true,
+                refreshBtn: true,
+                searchShowBtn: true,
+                columnBtn: true,
+                dialogClickModal: false,
+                column: [
+                    {
+                        label: "事发地址",
+                        prop: "address",
+                        // align: 'center',
+                        minWidth: 210,
+                        search: true,
+                        searchSpan: 5,
+                        display: false,
+                        overHidden: true,
+                    },
+                    {
+                        label: "事发地址",
+                        prop: "location",
+                        align: 'center',
+                        minWidth: 210,
+                        span: 12,
+                        hide: true,
+                        overHidden: true,
+                        labelWidth: 150,
+                        // row: true,
+                        type: 'map',
+                        dataType: "string",
+                        value: [117.966460, 28.431002, ""],
+                        rules: [
+                            {
+                                required: true,
+                                message: "请选择巡查地址",
+                                trigger: "blur",
+                            },
+                        ],
+                    }, {
+                        width: 150,
+                        label: "事发时间",
+                        prop: "eventTime",
+                        type: "datetime",
+                        labelWidth: 150,
+                        format: "yyyy-MM-dd HH:mm:ss",
+                        valueFormat: "yyyy-MM-dd HH:mm:ss",
+                        rules: [
+                            {
+                                required: true,
+                                message: "请选择事发时间",
+                                trigger: "blur",
+                            },
+                        ],
+                    }, {
+                        label: "事发时间",
+                        prop: "dateTime",
+                        type: "daterange",
+                        format: "yyyy-MM-dd",
+                        valueFormat: "yyyy-MM-dd",
+                        searchSpan: 6,
+                        searchRange: true,
+                        hide: true,
+                        addDisplay: false,
+                        editDisplay: false,
+                        viewDisplay: false,
+                        search: true,
+                        rules: [{
+                            required: true,
+                            message: "请选择事发时间",
+                            trigger: "blur",
+                        },],
+                    }, {
+                        label: "纠纷内容",
+                        prop: "disputeContent",
+                        // align: 'center',
+                        minWidth: 150,
+                        labelWidth: 150,
+                        type: "textarea",
+                        row: true,
+                        span: 24,
+                        overHidden: true,
+                        rules: [
+                            {
+                                required: true,
+                                message: "请输入纠纷内容",
+                                trigger: "blur",
+                            },
+                        ],
+                    },
+                    {
+                        label: "纠纷类型",
+                        prop: "disputeType",
+                        align: 'center',
+                        minWidth: 150,
+                        labelWidth: 150,
+                        search: true,
+                        searchSpan: 4,
+                        dataType: "number",
+                        type: "select",
+                        dicUrl: "/api/blade-system/dict-biz/dictionary?code=disputeType",
+                        props: {
+                            label: "dictValue",
+                            value: "dictKey",
+                        },
+                        rules: [{
+                            required: true,
+                            message: "请选择纠纷类型",
+                            trigger: "blur",
+                        },],
+                    },
+                    {
+                        label: "是否受伤",
+                        prop: "injuryFlag",
+                        align: 'center',
+                        width: 80,
+                        search: true,
+                        searchSpan: 3,
+                        labelWidth: 150,
+                        type: "select",
+                        dicData: [
+                            {
+                                label: "是",
+                                value: 1
+                            },
+                            {
+                                label: "否",
+                                value: 0
+                            }
+                        ],
+                        rules: [
+                            {
+                                required: true,
+                                message: "请选择是否受伤",
+                                trigger: "blur",
+                            },
+                        ],
+                    },
+                    {
+                        label: "受伤情况描述",
+                        prop: "injuryDesc",
+                        align: 'center',
+                        minWidth: 150,
+                        labelWidth: 150,
+                        display: false,
+                        hide: true,
+                        row: true,
+                        span: 24,
+                        overHidden: true,
+                        rules: [
+                            {
+                                required: false,
+                                message: "请输入受伤情况描述",
+                                trigger: "blur",
+                            },
+                        ],
+                    },
+                    {
+                        label: "报警次数",
+                        prop: "alarmNum",
+                        align: 'center',
+                        type: "number",
+                        labelWidth: 150,
+                    },
+                    {
+                        label: "信息来源",
+                        prop: "source",
+                        labelWidth: 150,
+                        align: 'center',
+                        width: 156,
+                        dataType: "number",
+                        type: "select",
+                        dicUrl: "/api/blade-system/dict-biz/dictionary?code=disputeSource",
+                        props: {
+                            label: "dictValue",
+                            value: "dictKey",
+                        },
+                        rules: [{
+                            required: true,
+                            message: "请选择信息来源",
+                            trigger: "blur",
+                        },],
+                    }, {
+                        label: "当事人1姓名",
+                        prop: "nameOne",
+                        align: 'center',
+                        slot: true,
+                        labelWidth: 150,
+                        search: true,
+                        searchLabelWidth: 110,
+                        searchSpan: 4,
+                        width: 100,
+                        rules: [
+                            {
+                                required: true,
+                                message: "请输入当事人1姓名",
+                                trigger: "blur",
+                            },
+                        ],
+                    },{
+                        label: "当事人1性别",
+                        prop: "genderOne",
+                        align: 'center',
+                        slot: true,
+                        labelWidth: 150,
+                        // search: true,
+                        searchLabelWidth: 110,
+                        searchSpan: 4,
+                        type:"select",
+                        dicData:[
+                            {
+                                label:"男",
+                                value: 1
+                            },{
+                                label:"女",
+                                value: 2
+                            }
+                        ],
+                        width: 100,
+                        rules: [
+                            {
+                                required: true,
+                                message: "请选择当事人1性别",
+                                trigger: "blur",
+                            },
+                        ],
+                    },  {
+                        label: "当事人1电话",
+                        prop: "phoneOne",
+                        align: 'center',
+                        slot: true,
+                        labelWidth: 150,
+                        search: true,
+                        searchLabelWidth: 110,
+                        searchSpan: 4,
+                        width: 100,
+                        rules: [
+                            {
+                                required: true,
+                                message: "请输入当事人1电话",
+                                trigger: "blur",
+                            },
+                            {
+                                validator: validatorPhone,
+                                trigger: 'blur'
+                            }
+                        ],
+                    },
+                    {
+                        label: "当事人1身份证号",
+                        prop: "idCardOne",
+                        align: 'center',
+                        slot: true,
+                        labelWidth: 150,
+                        // search: true,
+                        searchLabelWidth: 150,
+                        searchSpan: 5,
+                        width: 150,
+                        // row: true,
+                        rules: [
+                            {
+                                required: true,
+                                message: "请输入当事人1身份证号",
+                                trigger: "blur",
+                            }, {
+                                validator: isCardId,
+                                trigger: 'blur'
+                            }
+                        ],
+                    },
+                    {
+                        label: "当事人2姓名",
+                        prop: "nameTwo",
+                        align: 'center',
+                        slot: true,
+                        hide: true,
+                        labelWidth: 150,
+                        searchLabelWidth: 110,
+                        searchSpan: 4,
+                        width: 120,
+                        rules: [
+                            {
+                                required: true,
+                                message: "请输入当事人2姓名",
+                                trigger: "blur",
+                            },
+                        ],
+                    }, {
+                        label: "当事人2性别",
+                        prop: "genderOne",
+                        align: 'center',
+                        slot: true,
+                        labelWidth: 150,
+                        // search: true,
+                        searchLabelWidth: 110,
+                        searchSpan: 4,
+                        type:"select",
+                        dicData:[
+                            {
+                                label:"男",
+                                value: 1
+                            },{
+                                label:"女",
+                                value: 2
+                            }
+                        ],
+                        width: 100,
+                        rules: [
+                            {
+                                required: true,
+                                message: "请选择当事人2性别",
+                                trigger: "blur",
+                            },
+                        ],
+                    }, {
+                        label: "当事人2电话",
+                        prop: "phoneTwo",
+                        align: 'center',
+                        slot: true,
+                        hide: true,
+                        labelWidth: 150,
+                        searchLabelWidth: 110,
+                        searchSpan: 4,
+                        width: 120,
+                        rules: [
+                            {
+                                required: true,
+                                message: "请输入当事人2电话",
+                                trigger: "blur",
+                            },
+                            {
+                                validator: validatorPhone,
+                                trigger: 'blur'
+                            }
+                        ],
+                    },
+                    {
+                        label: "当事人2身份证号",
+                        prop: "idCardTwo",
+                        align: 'center',
+                        slot: true,
+                        hide: true,
+                        labelWidth: 150,
+                        searchLabelWidth: 110,
+                        searchSpan: 4,
+                        width: 120,
+                        rules: [
+                            {
+                                required: true,
+                                message: "请输入当事人2身份证号",
+                                trigger: "blur",
+                            }, {
+                                validator: isCardId,
+                                trigger: 'blur'
+                            }
+                        ],
+                    },
+                    {
+                        label: "地区",
+                        prop: "townName",
+                        align: 'center',
+                        search: true,
+                        addDisplay: false,
+                        editDisplay: false,
+                        searchSpan: 3,
+                        searchLabelWidth: 60,
+                        labelWidth: 150,
+                        width: 120,
+                        searchPlaceholder: '请输入地区'
+                    }, {
+                        label: "辖区派出所",
+                        prop: "pcsName",
+                        align: 'center',
+                        search: true,
+                        addDisplay: false,
+                        editDisplay: false,
+                        searchSpan: 4,
+                        labelWidth: 150,
+                        width: 120,
+                        searchLabelWidth: 96,
+                        searchPlaceholder: '请输入辖区派出所'
+                    }, {
+                        label: "处理结果",
+                        prop: "handleResult",
+                        align: 'center',
+                        search: true,
+                        labelWidth: 150,
+                        searchSpan: 4,
+                        width: 110,
+                        type: "select",
+                        dicData: [
+                            {
+                                label: "已化解",
+                                value: 1
+                            },
+                            {
+                                label: "未化解",
+                                value: 2
+                            },
+                            {
+                                label: "移送e呼即办",
+                                value: 3
+                            }
+                        ],
+                        rules: [
+                            {
+                                required: true,
+                                message: "请选择处理结果",
+                                trigger: "blur",
+                            },
+                        ],
+                    }],
+            },
+            data: []
+        }
+    },
+
+    computed: {
+        ...mapGetters(["permission", "userInfo"]),
+        permissionList() {
+            return {
+                addBtn: this.vaildData(this.permission.dispute_record_add, true),
+                viewBtn: this.vaildData(this.permission.dispute_record_view, true),
+                delBtn: this.vaildData(this.permission.dispute_record_delete, true),
+                editBtn: this.vaildData(this.permission.dispute_record_edit, true),
+            }
+        },
+        ids() {
+            let ids = []
+            this.selectionList.forEach((ele) => {
+                ids.push(ele.id)
+            })
+            return ids.join(",")
+        },
+
+        textDispose() {
+            return (row, flag, type) => {
+                if (row[flag] || row[type] == null) {
+                    return row[type]
+                } else {
+                    if (type == 'principalIdCard') {
+                        return row[type].replace(/^(.{6})(?:\d+)(.{4})$/, "$1******$2")
+                    } else {
+                        return row[type].replace(/^(.{3})(?:\d+)(.{4})$/, "$1****$2")
+                    }
+                }
+            }
+        }
+    },
+    watch: {
+        "form.injuryFlag": {
+            // form是表单或者表格绑定的数据集,v-model='form'
+            handler(val) {
+                let injuryDescColumn = this.findObject(
+                    this.option.column,
+                    'injuryDesc'
+                )
+                if (val == 1) {
+                    injuryDescColumn.rules[0].required = true
+                    injuryDescColumn.display = true
+                } else {
+                    injuryDescColumn.rules[0].required = false
+                    injuryDescColumn.display = false
+                }
+            },
+            immediate: true,
+        },
+    },
+    methods: {
+        locationDispose(data) {
+            data = data.split(',')
+
+            return {
+                lng: data[0],
+                lat: data[1],
+                address: data[2]
+            }
+        },
+        handleTemplate() {
+            exportBlob(`/api/blade-disputeRecord/disputeRecord/export-template?${this.website.tokenHeader}=${getToken()}`).then(res => {
+                downloadXls(res.data, "矛盾纠纷事件数据模板.xlsx")
+            })
+        },
+        handleImport() {
+            this.excelBox = true
+        },
+        uploadAfter(res, done, loading, column) {
+            this.excelBox = false
+            this.refreshChange()
+            done()
+        },
+        handleExport() {
+            this.$confirm("是否导出矛盾纠纷事件数据?", "提示", {
+                confirmButtonText: "确定",
+                cancelButtonText: "取消",
+                type: "warning"
+            }).then(() => {
+                NProgress.start()
+                var data = {
+                    ...this.query
+                }
+                data.isNine = 1
+                data = Qs.stringify(data)
+                exportBlob(
+                    `/api/blade-disputeRecord/disputeRecord/export-disputeRecord?${this.website.tokenHeader}=${getToken()}&` + data
+                ).then(res => {
+                    console.log('exportBlob', res)
+                    downloadXls(res.data, `矛盾纠纷事件${dateNow()}.xlsx`)
+                    NProgress.done()
+                })
+            })
+        },
+
+        showStringDispose(row, type) {
+            row[type] = !row[type]
+        },
+
+        rowSave(row, done, loading) {
+            add({
+                ...row,
+                ...this.locationDispose(row.location)
+            }).then(
+                () => {
+                    this.onLoad(this.page)
+                    this.$message({
+                        type: "success",
+                        message: "操作成功!",
+                    })
+                    done()
+                },
+                (error) => {
+                    window.console.log(error)
+                    loading()
+                }
+            )
+        },
+        rowUpdate(row, index, done, loading) {
+            update({
+                ...row,
+                ...this.locationDispose(row.location)
+            }).then(
+                () => {
+                    this.onLoad(this.page)
+                    this.$message({
+                        type: "success",
+                        message: "操作成功!",
+                    })
+                    done()
+                },
+                (error) => {
+                    window.console.log(error)
+                    loading()
+                }
+            )
+        },
+        rowDel(row) {
+            this.$confirm("确定将选择数据删除?", {
+                confirmButtonText: "确定",
+                cancelButtonText: "取消",
+                type: "warning",
+            })
+                .then(() => {
+                    return remove(row.id)
+                })
+                .then(() => {
+                    this.onLoad(this.page)
+
+                    this.$message({
+                        type: "success",
+                        message: "操作成功!",
+                    })
+                })
+        },
+
+        searchReset() {
+            this.query = {}
+            this.onLoad(this.page)
+        },
+
+        searchChange(params, done) {
+            this.query = params
+            this.page.currentPage = 1
+            this.onLoad(this.page, params)
+            done()
+        },
+
+        selectionChange(list) {
+            this.selectionList = list
+        },
+
+        selectionClear() {
+            this.selectionList = []
+            this.$nextTick(() => {
+                this.$refs.crud && this.$refs.crud.toggleSelection()
+            })
+        },
+
+        handleDelete() {
+            if (this.selectionList.length === 0) {
+                this.$message.warning("请选择至少一条数据")
+                return
+            }
+            this.$confirm("确定将选择数据删除?", {
+                confirmButtonText: "确定",
+                cancelButtonText: "取消",
+                type: "warning",
+            })
+                .then(() => {
+                    return remove(this.ids)
+                })
+                .then(() => {
+                    this.onLoad(this.page)
+                    this.$message({
+                        type: "success",
+                        message: "操作成功!",
+                    })
+                    this.$refs.crud.toggleSelection()
+                })
+        },
+
+        beforeOpen(done, type) {
+            if (["edit", "view"].includes(type)) {
+                getDetail(this.form.id).then(res => {
+                    this.form = res.data.data
+                    this.form.location = [this.form.lng, this.form.lat, this.form.address].join(',')
+                })
+                done()
+            } else {
+                done()
+            }
+        },
+        currentChange(currentPage) {
+            this.page.currentPage = currentPage
+        },
+        sizeChange(pageSize) {
+            this.page.pageSize = pageSize
+        },
+        refreshChange() {
+            this.onLoad(this.page, this.query)
+        },
+        onLoad(page, params = {}) {
+            const {
+                dateTime
+            } = this.query
+            if (dateTime) {
+                params['startTime'] = dateTime[0]
+                params['endTime'] = dateTime[1]
+            }
+            this.loading = true
+            getList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
+                const data = res.data.data;
+                this.page.total = data.total
+                this.data = data.records
+                this.data.forEach(item => {
+                    this.$set(item, 'phoneOneflag', false)
+                    this.$set(item, 'idCardOneflag', false)
+                })
+                this.loading = false
+                this.selectionClear()
+            })
+        }
+    }
+}
+</script>
+
+<style lang="scss" scoped>
+.avue-upload__icon {
+    line-height: 6;
+}
+</style>
diff --git a/src/views/gzll/components/done.vue b/src/views/gzll/components/done.vue
index 9d502e0..8384b6d 100644
--- a/src/views/gzll/components/done.vue
+++ b/src/views/gzll/components/done.vue
@@ -1,238 +1,281 @@
 <template>
-    <div>
-        <avue-crud :option="option" :table-loading="loading" :data="data" ref="crud" v-model="form" :page.sync="page"
-            @search-change="searchChange" @search-reset="searchReset" @selection-change="selectionChange"
-            @current-change="currentChange" @size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad">
-            <template slot-scope="{row, size, index}" slot="menu">
-                <el-button type="text" :size="size" icon="el-icon-info" v-if="permission.gzll_todo_detail"
-                    @click.stop="handleDetail(row)">详情
-                </el-button>
-                <el-button type="text" :size="size" icon="el-icon-search" v-if="permission.gzll_todo_follow"
-                    @click.stop="handleImage(row, index)">流程图
-                </el-button>
-            </template>
-            <template slot-scope="{row, size}" slot="processDefinitionVersion">
-                <el-tag :size="size">v{{ row.processDefinitionVersion }}</el-tag>
-            </template>
-            <template slot-scope="{row, size}" slot="linkPhone">
-                <el-button :size="size" type="text" @click="showStringDispose(row, 'linkPhoneflag')"
-                    v-text="textDispose(row, 'linkPhoneflag', 'linkPhone')">
-                </el-button>
-            </template>
-        </avue-crud>
-        <flow-design is-dialog :is-display.sync="flowBox" :process-instance-id="processInstanceId"></flow-design>
-    </div>
+  <div>
+    <avue-crud :option="option" :table-loading="loading" :data="data" ref="crud" v-model="form" :page.sync="page"
+      @search-change="searchChange" @search-reset="searchReset" @selection-change="selectionChange"
+      @current-change="currentChange" @size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad">
+      <template slot-scope="{row, size, index}" slot="menu">
+        <el-button type="text" :size="size" icon="el-icon-info" v-if="permission.gzll_todo_detail"
+          @click.stop="handleDetail(row)">详情
+        </el-button>
+        <el-button type="text" :size="size" icon="el-icon-search" v-if="permission.gzll_todo_follow"
+          @click.stop="handleImage(row, index)">流程图
+        </el-button>
+      </template>
+      <template slot-scope="{row, size}" slot="processDefinitionVersion">
+        <el-tag :size="size">v{{ row.processDefinitionVersion }}</el-tag>
+      </template>
+      <template slot-scope="{row, size}" slot="linkPhone">
+        <el-button :size="size" type="text" @click="showStringDispose(row, 'linkPhoneflag')"
+          v-text="textDispose(row, 'linkPhoneflag', 'linkPhone')">
+        </el-button>
+      </template>
+    </avue-crud>
+    <flow-design is-dialog :is-display.sync="flowBox" :process-instance-id="processInstanceId"></flow-design>
+  </div>
 </template>
 
 <script>
-import {
+  import {
     mapGetters
-} from "vuex"
-import {
+  } from "vuex"
+  import {
     doneList
-} from "@/api/work/work"
-import {
+  } from "@/api/work/work"
+  import {
     flowCategory,
     flowRoute
-} from "@/util/flow"
+  } from "@/util/flow"
 
-export default {
-    data () {
-        return {
-            form: {},
-            selectionId: '',
-            selectionList: [],
-            query: {},
-            loading: true,
-            page: {
-                pageSize: 10,
-                currentPage: 1,
-                total: 0
-            },
-            processInstanceId: '',
-            flowBox: false,
-            workBox: false,
-            option: {
-                labelWidth: 120,
-                searchLabelWidth: 96,
-                searchShow: true,
-                searchMenuSpan: 3,
-                menuWidth: 140,
+  export default {
+    data() {
+      return {
+        datetime: "",
+        form: {},
+        selectionId: '',
+        selectionList: [],
+        query: {},
+        loading: true,
+        page: {
+          pageSize: 10,
+          currentPage: 1,
+          total: 0
+        },
+        processInstanceId: '',
+        flowBox: false,
+        workBox: false,
+        option: {
+          labelWidth: 120,
+          searchLabelWidth: 96,
+          searchShow: true,
+          searchMenuSpan: 3,
+          menuWidth: 140,
 
-                height: 'auto',
-                calcHeight: 30,
-                tip: false,
-                border: true,
-                index: true,
-                // selection: true,
-                editBtn: false,
-                addBtn: false,
-                viewBtn: false,
-                delBtn: false,
-                columnBtn: false,
-                dialogWidth: 900,
-                dialogClickModal: false,
-                header: false,
-                column: [
-                    {
-                        label: "流程分类",
-                        type: "select",
-                        row: true,
-                        dicUrl: "/api/blade-system/dict/dictionary?code=flow",
-                        props: {
-                            label: "dictValue",
-                            value: "dictKey"
-                        },
-                        dataType: "number",
-                        slot: true,
-                        prop: "category",
-                        // search: true,
-                        hide: true,
-                        width: 100,
-                    },
-                    {
-                        width: 100,
-                        label: '申请类型',
-                        prop: 'categoryName',
-                        // search: true,
-                    }, {
-                        width: 220,
-                        overHidden: true,
-                        label: "小区",
-                        prop: "districtId",
-                        searchSpan: 5,
-                        // search: true,
-                        type: 'tree',
-                        dicUrl: `/api/blade-district/district/getDistrictTree`,
-                        props: {
-                            label: "name",
-                            value: "id"
-                        },
-                        defaultExpandedKeys: ["361102003"],
-                        span: 12,
-                    }, {
-                        width: 110,
-                        label: '联系人',
-                        prop: 'linkman',
-                        // search: true,
-                    }, {
-                        width: 120,
-                        label: '联系电话',
-                        prop: 'linkPhone',
-                        // search: true,
-                        slot: true
-                    }, {
-                        label: '项目名称',
-                        prop: 'name',
-                        // search: true,
-                    },
-                    {
-                        label: '当前步骤',
-                        prop: 'taskName',
-                    },
-                    // {
-                    //     label: '流程版本',
-                    //     prop: 'processDefinitionVersion',
-                    //     slot: true,
-                    //     width: 80,
-                    // },
-                    {
-                        width: 144,
-                        label: '申请时间',
-                        prop: 'createTime',
-                    },
-                ]
+          height: 'auto',
+          calcHeight: 30,
+          tip: false,
+          border: true,
+          index: true,
+          // selection: true,
+          editBtn: false,
+          addBtn: false,
+          viewBtn: false,
+          delBtn: false,
+          columnBtn: false,
+          dialogWidth: 900,
+          dialogClickModal: false,
+          header: false,
+          column: [{
+              label: "流程分类",
+              type: "select",
+              row: true,
+              dicUrl: "/api/blade-system/dict/dictionary?code=flow",
+              props: {
+                label: "dictValue",
+                value: "dictKey"
+              },
+              dataType: "number",
+              slot: true,
+              prop: "category",
+              // search: true,
+              hide: true,
+              width: 100,
             },
-            data: []
-        }
+            {
+              width: 110,
+              label: '小区名称',
+              prop: 'districtName',
+              search: true,
+              hide: true,
+            }, {
+              label: '项目名称',
+              prop: 'name',
+              search: true,
+            },
+            {
+              label: "申请时间",
+              prop: "dateTime",
+              type: "datetimerange",
+              defaultTime: ['00:00:00', '23:59:59'],
+              format: 'yyyy-MM-dd HH:mm:ss',
+              valueFormat: 'yyyy-MM-dd HH:mm:ss',
+              startPlaceholder: '开始范围自定义',
+              endPlaceholder: '结束范围自定义',
+              searchSpan: 5,
+              searchRange: true,
+              hide: true,
+              addDisplay: false,
+              editDisplay: false,
+              viewDisplay: false,
+              search: true,
+              rules: [{
+                required: true,
+                message: "请选择申请时间",
+                trigger: "blur",
+              }, ],
+            },
+            {
+              width: 100,
+              label: '申请类型',
+              prop: 'categoryName',
+              // search: true,
+            }, {
+              width: 220,
+              overHidden: true,
+              label: "小区",
+              prop: "districtId",
+              searchSpan: 5,
+              // search: true,
+              type: 'tree',
+              dicUrl: `/api/blade-district/district/getDistrictTree`,
+              props: {
+                label: "name",
+                value: "id"
+              },
+              defaultExpandedKeys: ["361102003"],
+              span: 12,
+            }, {
+              width: 110,
+              label: '联系人',
+              prop: 'linkman',
+              // search: true,
+            }, {
+              width: 120,
+              label: '联系电话',
+              prop: 'linkPhone',
+              // search: true,
+              slot: true
+            }, {
+              label: '项目名称',
+              prop: 'name',
+              // search: true,
+            },
+            {
+              label: '当前步骤',
+              prop: 'taskName',
+            },
+            // {
+            //     label: '流程版本',
+            //     prop: 'processDefinitionVersion',
+            //     slot: true,
+            //     width: 80,
+            // },
+            {
+              width: 144,
+              label: '申请时间',
+              prop: 'createTime',
+            },
+          ]
+        },
+        data: []
+      }
     },
 
     computed: {
-        ...mapGetters(["permission", "flowRoutes"]),
-        ids () {
-            let ids = []
-            this.selectionList.forEach(ele => {
-                ids.push(ele.id)
-            })
-            return ids.join(",")
-        },
-        textDispose () {
-            return (row, flag, type) => {
-                if (row[flag] || row[type] == null) {
-                    return row[type]
-                } else {
-                    if (type == 'principalIdCard') {
-                        return row[type].replace(/^(.{6})(?:\d+)(.{4})$/, "$1******$2")
-                    } else {
-                        return row[type].replace(/^(.{3})(?:\d+)(.{4})$/, "$1****$2")
-                    }
-                }
+      ...mapGetters(["permission", "flowRoutes"]),
+      ids() {
+        let ids = []
+        this.selectionList.forEach(ele => {
+          ids.push(ele.id)
+        })
+        return ids.join(",")
+      },
+      textDispose() {
+        return (row, flag, type) => {
+          if (row[flag] || row[type] == null) {
+            return row[type]
+          } else {
+            if (type == 'principalIdCard') {
+              return row[type].replace(/^(.{6})(?:\d+)(.{4})$/, "$1******$2")
+            } else {
+              return row[type].replace(/^(.{3})(?:\d+)(.{4})$/, "$1****$2")
             }
+          }
         }
+      }
     },
 
     methods: {
-        showStringDispose (row, type) {
-            row[type] = !row[type]
-        },
+      showStringDispose(row, type) {
+        row[type] = !row[type]
+      },
 
-        searchReset () {
-            this.query = {}
-            this.onLoad(this.page)
-        },
-        searchChange (params, done) {
-            this.query = params
-            this.page.currentPage = 1
-            this.onLoad(this.page, params)
-            done()
-        },
-        selectionChange (list) {
-            this.selectionList = list
-        },
-        selectionClear () {
-            this.selectionList = []
-            this.$refs.crud.toggleSelection()
-        },
-        handleDetail (row) {
-            this.$router.push({
-                path: `/gzll/process/${flowRoute(this.flowRoutes, row.category)}/detail/${row.processInstanceId}/${row.businessId}`
-            })
-        },
-        handleImage (row) {
-            this.processInstanceId = row.processInstanceId
-            this.flowBox = true
-        },
-        currentChange (currentPage) {
-            this.page.currentPage = currentPage
-        },
-        sizeChange (pageSize) {
-            this.page.pageSize = pageSize
-        },
-        refreshChange () {
-            this.onLoad(this.page, this.query)
-        },
-        onLoad (page, params = {}) {
-            const query = {
-                ...this.query,
-                category: (params.category) ? flowCategory(params.category) : null
-            }
-            this.loading = true
-            doneList(page.currentPage, page.pageSize, Object.assign(params, query)).then(res => {
-                const data = {
-                    ...res.data.data,
-                    records: res.data.data.records.map(item => {
-                        return {
-                            ...item,
-                            'linkPhoneflag': false
-                        }
-                    })
-                }
-                this.page.total = data.total
-                this.data = data.records
-                this.loading = false
-                this.selectionClear()
-            })
+      searchReset() {
+        this.query = {}
+        this.onLoad(this.page)
+      },
+      searchChange(params, done) {
+        this.query = params
+        this.page.currentPage = 1
+        this.onLoad(this.page, params)
+        done()
+      },
+      selectionChange(list) {
+        this.selectionList = list
+      },
+      selectionClear() {
+        this.selectionList = []
+        this.$refs.crud.toggleSelection()
+      },
+      handleDetail(row) {
+        this.$router.push({
+          path: `/gzll/process/${flowRoute(this.flowRoutes, row.category)}/detail/${row.processInstanceId}/${row.businessId}`
+        })
+      },
+      handleImage(row) {
+        this.processInstanceId = row.processInstanceId
+        this.flowBox = true
+      },
+      currentChange(currentPage) {
+        this.page.currentPage = currentPage
+      },
+      sizeChange(pageSize) {
+        this.page.pageSize = pageSize
+      },
+      refreshChange() {
+        this.onLoad(this.page, this.query)
+      },
+      onLoad(page, params = {}) {
+        let query = {
+          ...this.query,
+          category: (params.category) ? flowCategory(params.category) : null
         }
+        const {
+          dateTime
+        } = query
+
+        if (dateTime) {
+          query = {
+            startTimes: dateTime[0],
+            endTimes: dateTime[1],
+          }
+        }
+        this.loading = true
+        doneList(page.currentPage, page.pageSize, Object.assign(params, query)).then(res => {
+          const data = {
+            ...res.data.data,
+            records: res.data.data.records.map(item => {
+              return {
+                ...item,
+                'linkPhoneflag': false
+              }
+            })
+          }
+          this.page.total = data.total
+          this.data = data.records
+          this.loading = false
+          this.selectionClear()
+        })
+      }
     }
-}
+  }
 </script>
\ No newline at end of file
diff --git a/src/views/gzll/components/todo.vue b/src/views/gzll/components/todo.vue
index 1eb60ac..0f911ff 100644
--- a/src/views/gzll/components/todo.vue
+++ b/src/views/gzll/components/todo.vue
@@ -43,6 +43,7 @@
   export default {
     data() {
       return {
+        datetime: "",
         typeStatus: 1,
         form: {},
         selectionId: '',
@@ -123,6 +124,32 @@
               prop: 'districtName',
               search: true,
               hide: true,
+            }, {
+              label: '项目名称',
+              prop: 'name',
+              search: true,
+            },
+            {
+              label: "申请时间",
+              prop: "dateTime",
+              type: "datetimerange",
+              defaultTime: ['00:00:00', '23:59:59'],
+              format: 'yyyy-MM-dd HH:mm:ss',
+              valueFormat: 'yyyy-MM-dd HH:mm:ss',
+              startPlaceholder: '开始范围自定义',
+              endPlaceholder: '结束范围自定义',
+              searchSpan: 5,
+              searchRange: true,
+              hide: true,
+              addDisplay: false,
+              editDisplay: false,
+              viewDisplay: false,
+              search: true,
+              rules: [{
+                required: true,
+                message: "请选择申请时间",
+                trigger: "blur",
+              }, ],
             },
             {
               width: 110,
@@ -137,11 +164,7 @@
               // search: true,
               slot: true
             },
-            {
-              label: '项目名称',
-              prop: 'name',
-              search: true,
-            },
+
             {
               label: '当前步骤',
               prop: 'taskName',
@@ -239,10 +262,20 @@
         this.onLoad(this.page, this.query)
       },
       onLoad(page, params = {}) {
-        const query = {
+        let query = {
           ...this.query,
           category: (params.category) ? flowCategory(params.category) : null
         }
+        const {
+          dateTime
+        } = query
+
+        if (dateTime) {
+          query = {
+            startTimes: dateTime[0],
+            endTimes: dateTime[1],
+          }
+        }
         this.loading = true
         todoList(page.currentPage, page.pageSize, Object.assign(params, query)).then(res => {
           const data = {
diff --git a/src/views/gzll/ownersCommittee.vue b/src/views/gzll/ownersCommittee.vue
new file mode 100644
index 0000000..85e3903
--- /dev/null
+++ b/src/views/gzll/ownersCommittee.vue
@@ -0,0 +1,685 @@
+<template>
+    <basic-container>
+        <avue-crud :option="option" :table-loading="loading" :data="data" :page.sync="page" ref="crud" @row-del="rowDel"
+            v-model="form" :permission="permissionList" @row-update="rowUpdate" @row-save="rowSave"
+            :before-open="beforeOpen" @search-change="searchChange" @search-reset="searchReset"
+            @selection-change="selectionChange" @current-change="currentChange" @size-change="sizeChange"
+            @refresh-change="refreshChange" @on-load="onLoad">
+            <template slot="menuLeft">
+                <el-button size="small" icon="el-icon-delete" plain v-if="permission.article_delete" @click="handleDelete">删
+                    除
+                </el-button>
+            </template>
+
+            <template slot-scope="{type,size,row }" slot="menu">
+                <el-button v-if="row.publish == '1'" icon="el-icon-close" :size="size" :type="type"
+                    @click.stop="updateFb(row)">
+                    撤销
+                </el-button>
+                <el-button v-if="row.publish == '0'" icon="el-icon-check" :size="size" :type="type"
+                    @click.stop="updateFb(row)">
+                    发布
+                </el-button>
+            </template>
+
+            <template slot-scope="{ row, size }" slot="publish">
+                <el-tag :size="size" :type="showStatus(row.publish, 1).type" v-text="showStatus(row.publish, 1).text">
+                </el-tag>
+            </template>
+
+            <template slot-scope="{ row }" slot="iscomment">
+                <el-switch @change="iscommentInput($event, row)" v-model="row.iscomment" :active-value="'1'"
+                    :inactive-value="'0'" active-color="#13ce66" inactive-color="#ccc">
+                </el-switch>
+            </template>
+        </avue-crud>
+
+    </basic-container>
+</template>
+
+<script>
+import {
+    getList,
+    remove,
+    update,
+    add,
+    getNotice,
+    upcomment
+} from "@/api/article/article"
+
+import {
+    addPd,
+} from "@/api/discuss/publicDiscuss"
+
+import website from '@/config/website'
+
+
+import {
+    getDistrictTree
+} from "@/api/district/index"
+
+import {
+    mapGetters
+} from "vuex"
+
+export default {
+    data () {
+        return {
+            discussForm: {
+                ontitle: '',
+                title: '',
+                openFlag: 0,
+                numberRestrictions: 0,
+                voteRestrictions: 0,
+                userRestrictions: 0,
+                endTime: '',
+                articleId: '',
+                createTime: '',
+                updateTime: '',
+                deleteFlag: '',
+                repeatVote: 0,
+                voteNumberPublic: 0,
+                appointUser: '',
+                userIds: '',
+                eventType: 1,
+            },
+            dialogVisibles: false,
+            form: {},
+            query: {},
+            loading: true,
+            page: {
+                pageSize: 10,
+                currentPage: 1,
+                total: 0,
+            },
+            datetime: "",
+            selectionList: [],
+            option: {
+                labelWidth: 120,
+                searchLabelWidth: 96,
+                searchShow: true,
+                searchMenuSpan: 3,
+                menuWidth: 450,
+
+                height: "auto",
+                calcHeight: 54,
+                dialogWidth: 950,
+                tip: false,
+                border: true,
+                //stripe:true,
+                index: true,
+                viewBtn: true,
+                selection: true,
+                excelBtn: true,
+                dialogClickModal: false,
+                column: [{
+                    label: "标题",
+                    prop: "title",
+                    span: 24,
+                    row: true,
+                    searchSpan: 4,
+                    search: true,
+                    searchLabelWidth: 46,
+                    rules: [{
+                        required: true,
+                        message: "请输入业主大会标题",
+                        trigger: "blur",
+                    },],
+                },
+                {
+                    width: 110,
+                    label: "封面",
+                    prop: "url",
+                    // align:'center',
+                    type: "upload",
+                    listType: "picture-img",
+                    action: "/api/blade-resource/oss/endpoint/put-file",
+                    propsHttp: {
+                        res: "data",
+                        url: "link",
+                    },
+                    // hide: true,
+                    span: 24,
+                },
+                {
+                    hide: true,
+                    parent: false,
+                    label: "公示范围",
+                    prop: "articleList",
+                    type: 'tree',
+                    dicData: [],
+                    props: {
+                        label: "name",
+                        value: 'id'
+                    },
+                    span: 12,
+                    rules: [{
+                        required: true,
+                        message: "请选择公示范围",
+                        trigger: "blur",
+                    },],
+                },
+                {
+                    width: 100,
+                    label: "业主大会类型",
+                    prop: "type",
+                    value: 5,
+                    slot: true,
+                    searchSpan: 4,
+                    // search: true,
+                    type: "select",
+                    rules: [{
+                        required: true,
+                        message: "请选择招标类型",
+                        trigger: "blur",
+                    },],
+                    dicData: [{
+                        label: "业主大会",
+                        value: 5,
+                    }],
+                },
+                {
+                    label: "发布时间",
+                    prop: "dateTime",
+                    type: "daterange",
+                    format: "yyyy-MM-dd",
+                    valueFormat: "yyyy-MM-dd",
+                    searchSpan: 6,
+                    searchRange: true,
+                    hide: true,
+                    addDisplay: false,
+                    editDisplay: false,
+                    viewDisplay: false,
+                    search: true,
+                    rules: [{
+                        required: true,
+                        message: "请选择发布时间",
+                        trigger: "blur",
+                    },],
+                },
+                {
+                    width: 144,
+                    label: "发布时间",
+                    prop: "createTime",
+                    type: "date",
+                    format: "yyyy-MM-dd",
+                    valueFormat: "yyyy-MM-dd HH:mm:ss",
+                },
+
+                {
+                    width: 110,
+                    label: "所属街道",
+                    addDisplay: false,
+                    editDisplay: false,
+                    viewDisplay: false,
+                    prop: "streetName",
+                    search: true,
+                    searchSpan: 4
+                },
+
+                {
+                    width: 156,
+                    overHidden: true,
+                    label: "所属社区",
+                    addDisplay: false,
+                    editDisplay: false,
+                    viewDisplay: false,
+                    prop: "communityName",
+                    search: true,
+                    searchSpan: 4
+                },
+
+                {
+                    width: 100,
+                    label: "发布状态",
+                    prop: "publish",
+                    value: "0",
+                    slot: true,
+                    searchSpan: 4,
+                    search: true,
+                    type: "select",
+                    display: false,
+                    rules: [{
+                        required: true,
+                        message: "请选择发布状态",
+                        trigger: "blur",
+                    },],
+                    dicData: [{
+                        label: "未发布",
+                        value: "0",
+                    },
+                    {
+                        label: "已发布",
+                        value: "1",
+                    }
+                    ],
+                },
+                {
+                    width: 100,
+                    label: "评论区",
+                    prop: "iscomment",
+                    slot: true,
+                    type: "switch",
+                    activeColor: "#13ce66",
+                    inactiveColor: "#ccc",
+                    value: '1',
+                    dicData: [{
+                        label: "关闭",
+                        value: "0",
+                    },
+                    {
+                        label: "开启",
+                        value: "1",
+                    }
+                    ],
+                },
+                {
+                    label: "内容",
+                    prop: "content",
+                    component: "AvueUeditor",
+                    options: {
+                        action: "/api/blade-resource/oss/endpoint/put-file",
+                        // customConfig: {
+                        //   lineHeights: ['1', '1.15', '1.6', '2', '2.5', '3']
+                        // },//wangEditor编辑的配置
+                        props: {
+                            res: "data",
+                            url: "link",
+                        },
+                    },
+                    hide: true,
+                    minRows: 6,
+                    span: 24,
+                },
+                ],
+            },
+            data: [],
+
+            districtTree: [],
+        }
+    },
+    watch: {
+        "form.articleType": {
+            handler (val) {
+                if (val) {
+                    var videoUrl = this.findObject(this.option.column, "videoUrl")
+                    var content = this.findObject(this.option.column, "content")
+                    if (val.indexOf('ksp') != -1) {
+                        videoUrl.display = true
+                        content.display = false
+                        videoUrl.rules = [{
+                            required: false,
+                            message: "请选择视频",
+                            trigger: "blur",
+                        },]
+                    } else {
+                        videoUrl.display = false
+                        content.display = true
+                        videoUrl.rules = ""
+                    }
+                }
+            },
+            immediate: true,
+        }
+    },
+    computed: {
+        ...mapGetters(["permission", "userInfo"]),
+        permissionList () {
+            return {
+                addBtn: this.vaildData(this.permission.article_add, true),
+                viewBtn: this.vaildData(this.permission.article_view, true),
+                delBtn: this.vaildData(this.permission.article_delete, true),
+                editBtn: this.vaildData(this.permission.article_edit, true),
+            }
+        },
+        ids () {
+            let ids = []
+            this.selectionList.forEach((ele) => {
+                ids.push(ele.id)
+            })
+            return ids.join(",")
+        },
+        showStatus () {
+            return (data, type) => {
+                if (data == 0) {
+                    return {
+                        text: type == 1 ? '未发布' : '关闭',
+                        type: 'info'
+                    }
+                } else if (data == 1) {
+                    return {
+                        text: type == 1 ? '已发布' : '开启',
+                        type: 'success'
+                    }
+                }
+            }
+        }
+    },
+    methods: {
+        iscommentInput (e, data) {
+            upcomment(data.id, e).then(() => {
+                this.$message({
+                    type: "success",
+                    message: "操作成功!",
+                })
+            })
+        },
+
+        openDilog (row, type) {
+            this.dialogVisibles = true
+            this.discussForm.eventType = type
+            this.discussForm.articleId = row.id
+            this.discussForm.title = row.title
+            if (type == 0) {
+                this.discussForm.ontitle = '公益报名'
+            } else {
+                this.discussForm.ontitle = '创建议题'
+            }
+        },
+
+        handleSubmit (form, done) {
+            done()
+            addPd(form).then(
+                () => {
+                    this.$message({
+                        type: "success",
+                        message: "操作成功!",
+                    })
+                    this.dialogVisibles = false
+                    done()
+                },
+                (error) => {
+                    window.console.log(error)
+                    // loading();
+                }
+            )
+        },
+
+        handleClose (done) {
+            done()
+            // this.$confirm('确认关闭?')
+            //   .then(_ => {
+            //     done();
+            //   })
+            //   .catch(_ => {});
+        },
+        rowSave (row, done, loading) {
+            row['type'] = 5
+            row.userid = this.userInfo.user_id
+            row.articleRange = JSON.stringify(row.articleList)
+            if (row.url.length > 0) {
+                var urls = []
+                var split = row.url.split(",")
+                split.forEach(url => {
+                    var names = url.split("jczz/")
+                    urls.push(names[1])
+                })
+                row.url = urls.join(",")
+            }
+            add({
+                ...row,
+                districtId: row.articleList
+            }).then(
+                () => {
+                    this.onLoad(this.page)
+                    this.$message({
+                        type: "success",
+                        message: "操作成功!",
+                    })
+                    done()
+                },
+                (error) => {
+                    window.console.log(error)
+                    loading()
+                }
+            )
+        },
+        rowUpdate (row, index, done, loading) {
+            row.articleRange = JSON.stringify(row.articleList)
+            if (row.url.length > 0) {
+                var urls = []
+                var split = row.url.split(",")
+                split.forEach(url => {
+                    var names = url.split("jczz/")
+                    urls.push(names[1])
+                })
+                row.url = urls.join(",")
+            }
+
+            update({
+                ...row,
+                district_id: row.articleList
+            }).then(
+                () => {
+                    this.onLoad(this.page)
+                    this.$message({
+                        type: "success",
+                        message: "操作成功!",
+                    })
+                    done()
+                },
+                (error) => {
+                    window.console.log(error)
+                    loading()
+                }
+            )
+        },
+        rowDel (row) {
+            this.$confirm("确定将选择数据删除?", {
+                confirmButtonText: "确定",
+                cancelButtonText: "取消",
+                type: "warning",
+            })
+                .then(() => {
+                    return remove(row.id)
+                })
+                .then(() => {
+                    this.onLoad(this.page)
+                    this.$message({
+                        type: "success",
+                        message: "操作成功!",
+                    })
+                })
+        },
+        searchReset () {
+            this.query = {}
+            this.onLoad(this.page)
+        },
+        searchChange (params, done) {
+            this.query = params
+            this.page.currentPage = 1
+            this.onLoad(this.page, params)
+            done()
+        },
+        selectionChange (list) {
+            this.selectionList = list
+        },
+        selectionClear () {
+            this.selectionList = []
+            this.$refs.crud.toggleSelection()
+        },
+        handleDelete () {
+            if (this.selectionList.length === 0) {
+                this.$message.warning("请选择至少一条数据")
+                return
+            }
+            this.$confirm("确定将选择数据删除?", {
+                confirmButtonText: "确定",
+                cancelButtonText: "取消",
+                type: "warning",
+            })
+                .then(() => {
+                    return remove(this.ids)
+                })
+                .then(() => {
+                    this.onLoad(this.page)
+                    this.$message({
+                        type: "success",
+                        message: "操作成功!",
+                    })
+                    this.$refs.crud.toggleSelection()
+                })
+        },
+        beforeOpen (done, type) {
+            if (["edit", "view"].includes(type)) {
+                getNotice(this.form.id).then((res) => {
+                    let data = res.data.data
+                    // data.forEach(item=>{
+                    if (data.url.length > 0) {
+                        var urls = []
+                        var names = data.url.split(",")
+                        names.forEach(name => {
+                            urls.push(website.minioUrl + name)
+                        })
+                        data.url = urls.join(",")
+                    }
+                    data.articleList = JSON.parse(data.articleRange)
+                    this.form = data
+                })
+            }
+            // con
+            done()
+        },
+        currentChange (currentPage) {
+            this.page.currentPage = currentPage
+        },
+        sizeChange (pageSize) {
+            this.page.pageSize = pageSize
+        },
+        refreshChange () {
+            this.onLoad(this.page, this.query)
+        },
+        onLoad (page, params = {}) {
+            const {
+                dateTime
+            } = this.query
+            let values = {
+                ...params,
+            }
+            if (dateTime) {
+                values = {
+                    ...params,
+                    startTime: dateTime[0] + ' 00:00:01',
+                    endTime: dateTime[1] + ' 23:59:59',
+                    ...this.query,
+                }
+                values.dateTime = null
+            }
+            values.type = 5
+            this.loading = true
+            console.log(values)
+            getList(page.currentPage, page.pageSize, values).then((res) => {
+                const data = res.data.data
+                this.page.total = data.total
+                this.data = data.records
+                this.data.forEach(item => {
+                    if (item.url.length > 0) {
+                        var urls = []
+                        var names = item.url.split(",")
+                        names.forEach(name => {
+                            urls.push(website.minioUrl + name)
+                        })
+                        item.url = urls.join(",")
+                    }
+                })
+                this.loading = false
+                this.selectionClear()
+            })
+            getDistrictTree({
+                filterFlag: 1
+            }).then((res) => {
+                const data = res.data.data
+                this.districtTree = data
+                const column = this.findObject(this.option.column, "articleList")
+                column.dicData = res.data.data
+                this.loading = false
+            })
+        },
+        updateFb (row) {
+            if (row.publish == "0") {
+                row.publish = "1"
+            } else {
+                row.publish = "0"
+            }
+            if (row.url.length > 0) {
+                var urls = []
+                var split = row.url.split(",")
+                split.forEach(url => {
+                    var names = url.split("jczz/")
+                    urls.push(names[1])
+                })
+                row.url = urls.join(",")
+            }
+            update(row).then(
+                () => {
+                    this.onLoad(this.page)
+                    this.$message({
+                        type: "success",
+                        message: "操作成功!",
+                    })
+                    done()
+                },
+                (error) => {
+                    window.console.log(error)
+                    loading()
+                }
+            )
+        },
+        kqcomment () {
+            if (this.selectionList.length === 0) {
+                this.$message.warning("请选择至少一条数据")
+                return
+            }
+            this.$confirm("确定将选择数据开启评论?", {
+                confirmButtonText: "确定",
+                cancelButtonText: "取消",
+                type: "warning",
+            }).then(() => {
+                return upcomment(this.ids, "1")
+            })
+                .then(() => {
+                    this.onLoad(this.page)
+                    this.$message({
+                        type: "success",
+                        message: "操作成功!",
+                    })
+                    this.$refs.crud.toggleSelection()
+                })
+        },
+        gbcomment () {
+            if (this.selectionList.length === 0) {
+                this.$message.warning("请选择至少一条数据")
+                return
+            }
+            this.$confirm("确定将选择数据开启评论?", {
+                confirmButtonText: "确定",
+                cancelButtonText: "取消",
+                type: "warning",
+            }).then(() => {
+                return upcomment(this.ids, "0")
+            })
+                .then(() => {
+                    this.onLoad(this.page)
+                    this.$message({
+                        type: "success",
+                        message: "操作成功!",
+                    })
+                    this.$refs.crud.toggleSelection()
+                })
+        }
+    },
+}
+</script>
+
+<style lang="scss" scoped>
+.avue-upload__icon {
+    line-height: 6;
+}
+
+:deep(.avue-form__menu--center) {
+    text-align: left;
+}
+
+:deep(.avue-form__menu--center .el-button) {
+    margin: 0 5px 0 0;
+}</style>
\ No newline at end of file
diff --git a/src/views/gzll/process/maintenanceFundApply/detail.vue b/src/views/gzll/process/maintenanceFundApply/detail.vue
index 3934e70..31b9b8e 100644
--- a/src/views/gzll/process/maintenanceFundApply/detail.vue
+++ b/src/views/gzll/process/maintenanceFundApply/detail.vue
@@ -11,7 +11,7 @@
           <span>审批信息</span>
         </div>
         <avue-form :option="option" :value="form">
-        
+
           <template slot-scope="{ row, size, index }" slot="vote">
             <div>{{ topicTitle }}</div>
             <el-table :data="topictData" v-if="topictData.length">
@@ -27,7 +27,7 @@
               </el-table-column>
             </el-table>
           </template>
-        
+
         </avue-form>
         <!-- <el-form-item label="申请人">
           <el-input :disabled="true" v-model="form.flow.assigneeName" />
@@ -92,13 +92,13 @@
     getPropertyCapitalApply
   } from "@/api/property/propertyCapitalApply";
   import {
-  getLists
-} from "@/api/discuss/topics"
-import deitDiscussion from "../../components/deitDiscussion.vue"
-export default {
-  components: {
-    deitDiscussion
-  },
+    getLists
+  } from "@/api/discuss/topics"
+  import deitDiscussion from "../../components/deitDiscussion.vue"
+  export default {
+    components: {
+      deitDiscussion
+    },
     data() {
       return {
         businessId: '',
@@ -198,10 +198,10 @@
               disabled: true
             },
             {
-              label: "项目分摊方式",
-              prop: "allocationWay",
+              label: "楼栋",
+              prop: "buildingName",
               labelWidth: 140,
-              value: '按建筑面积分摊',
+              value: '',
               span: 12,
               row: true,
               disabled: true
@@ -278,52 +278,52 @@
             },
 
             {
-          disabled:true,
-          display: false,
-          hide: true,
-          parent: false,
-          label: "投票结果",
-          prop: "articleId",
-          search: false,
-          viewDisabled: false,
-          type: 'select',
-          dicUrl: `/api/blade-article/article/getArticleByDistrictId?type=4&eventType=1&districtId={{districtId}}`,
-          cascader: ['vote'],
-          props: {
-            label: "title",
-            value: "id"
-          },
-          defaultExpandedKeys: ["361102003"],
-          span: 12,
-          labelWidth:140,
-          rules: [{
-            required: true,
-            message: "请选择投票结果",
-            trigger: "blur",
-          },],
-          change: (val) => {
-            console.log("val===>", val)
-            // console.log("form===>",this.form)
-            if (val.value && !this.form.id) {
-              this.articleRange = val.articleRange;
-              // this.showDialog = true;
-              // this.getDetail(val.value, val.articleRange)
-            }
+              disabled: true,
+              display: false,
+              hide: true,
+              parent: false,
+              label: "投票结果",
+              prop: "articleId",
+              search: false,
+              viewDisabled: false,
+              type: 'select',
+              dicUrl: `/api/blade-article/article/getArticleByDistrictId?type=4&eventType=1&districtId={{districtId}}`,
+              cascader: ['vote'],
+              props: {
+                label: "title",
+                value: "id"
+              },
+              defaultExpandedKeys: ["361102003"],
+              span: 12,
+              labelWidth: 140,
+              rules: [{
+                required: true,
+                message: "请选择投票结果",
+                trigger: "blur",
+              }, ],
+              change: (val) => {
+                console.log("val===>", val)
+                // console.log("form===>",this.form)
+                if (val.value && !this.form.id) {
+                  this.articleRange = val.articleRange;
+                  // this.showDialog = true;
+                  // this.getDetail(val.value, val.articleRange)
+                }
 
-          }
-        },
+              }
+            },
 
-        {
-          disabled: true,
-          display: false,
-          span: 24,
-          hide: true,
-          prop: "vote",
-          slot: true,
-          label: "投票详情",
-          labelWidth: 140,
+            {
+              disabled: true,
+              display: false,
+              span: 24,
+              hide: true,
+              prop: "vote",
+              slot: true,
+              label: "投票详情",
+              labelWidth: 140,
 
-        },
+            },
 
             {
               label: "项目摘要",
@@ -368,38 +368,38 @@
           ],
         },
         topictData: [],
-      topicTitle: "",
-      articleRange: ""
+        topicTitle: "",
+        articleRange: ""
       }
     },
 
 
     watch: {
-    'form.districtId': {
-      handler(newData) {
-        const column = this.findObject(this.option.column, "articleId")
-        if (newData && this.form.articleId) {
-          column.display = true;
-        } else {
-          column.display = false
+      'form.districtId': {
+        handler(newData) {
+          const column = this.findObject(this.option.column, "articleId")
+          if (newData && this.form.articleId) {
+            column.display = true;
+          } else {
+            column.display = false
+          }
         }
-      }
-    },
+      },
 
 
-    'form.articleId': {
-      handler(newData) {
-        this.getVoteDetail(this.form.articleId, this.articleRange)
-        const column = this.findObject(this.option.column, "vote")
-        if (newData) {
-          column.display = true;
-        } else {
-          column.display = false
+      'form.articleId': {
+        handler(newData) {
+          this.getVoteDetail(this.form.articleId, this.articleRange)
+          const column = this.findObject(this.option.column, "vote")
+          if (newData) {
+            column.display = true;
+          } else {
+            column.display = false
+          }
         }
-      }
-    },
+      },
 
-  },
+    },
 
     created() {
       this.init();
@@ -428,32 +428,30 @@
         });
       },
       getVoteDetail(articleId, districtId) {
-      let params = {
-        level: 1,
-        articleId: articleId,
-        districtId: districtId
-      }
-      getLists(1, 10, params).then(res => {
-        const data = res.data.data
-        if (data.length) {
-          this.topictData = data[0].children;
-          this.topicTitle = data[0].discussContent;
+        let params = {
+          level: 1,
+          articleId: articleId,
+          districtId: districtId
         }
-      })
-    },
+        getLists(1, 10, params).then(res => {
+          const data = res.data.data
+          if (data.length) {
+            this.topictData = data[0].children;
+            this.topicTitle = data[0].discussContent;
+          }
+        })
+      },
 
-    openUserPopup(row) {
-      this.$refs.DeitDiscussion.openUser(row, 1, [this.form.districtId])
-    },
+      openUserPopup(row) {
+        this.$refs.DeitDiscussion.openUser(row, 1, [this.form.districtId])
+      },
     }
   }
 </script>
 
 
 <style>
-
-
-.workOrderStyle {
-  font-weight: normal;
-}
-</style>
\ No newline at end of file
+  .workOrderStyle {
+    font-weight: normal;
+  }
+</style>
diff --git a/src/views/gzll/process/maintenanceFundApply/form.vue b/src/views/gzll/process/maintenanceFundApply/form.vue
index 0c26de1..97c2973 100644
--- a/src/views/gzll/process/maintenanceFundApply/form.vue
+++ b/src/views/gzll/process/maintenanceFundApply/form.vue
@@ -100,12 +100,13 @@
               }, ],
             },
             {
-              label: "项目分摊方式",
-              prop: "allocationWay",
+              label: "楼栋",
+              prop: "buildingName",
               labelWidth: 140,
-              value: '按建筑面积分摊',
+              value: '',
               span: 12,
               row: true,
+              disabled: true
             },
             {
               label: '联系人',
@@ -264,4 +265,4 @@
       }
     }
   }
-</script>
\ No newline at end of file
+</script>
diff --git a/src/views/gzll/process/maintenanceFundApply/handle.vue b/src/views/gzll/process/maintenanceFundApply/handle.vue
index 6a53a37..8fac06f 100644
--- a/src/views/gzll/process/maintenanceFundApply/handle.vue
+++ b/src/views/gzll/process/maintenanceFundApply/handle.vue
@@ -74,475 +74,476 @@
     </div>
 
     <deitDiscussion ref="DeitDiscussion">
-  </deitDiscussion>
+    </deitDiscussion>
 
   </basic-container>
 </template>
 
 <script>
-import {
-  historyFlowList,
-  leaveDetail
-} from "@/api/work/process"
+  import {
+    historyFlowList,
+    leaveDetail
+  } from "@/api/work/process"
 
-import {
-  getList,
-  remove,
-  update,
-  add,
-  getPropertyCapitalApply
-} from "@/api/property/propertyCapitalApply"
-import {
-  completeTask
-} from "@/api/work/work"
-import website from '@/config/website'
-import {
-  getLists,
-} from "@/api/discuss/topics"
+  import {
+    getList,
+    remove,
+    update,
+    add,
+    getPropertyCapitalApply
+  } from "@/api/property/propertyCapitalApply"
+  import {
+    completeTask
+  } from "@/api/work/work"
+  import website from '@/config/website'
+  import {
+    getLists,
+  } from "@/api/discuss/topics"
 
-import deitDiscussion from "../../components/deitDiscussion"
+  import deitDiscussion from "../../components/deitDiscussion"
 
 
-export default {
-  components: {
-    deitDiscussion
-  },
-  data() {
-    return {
-      taskId: '',
-      businessId: '',
-      processInstanceId: '',
-      src: '',
-      flowList: [],
-      form: {
-        flow: {
-          assigneeName: '',
-        },
-        startTime: '',
-        endTime: '',
-        reason: '',
-      },
-      option: {
-        height: "auto",
-        calcHeight: 54,
-        dialogWidth: 1150,
-        tip: false,
-        searchShow: true,
-        searchMenuSpan: 3,
-        menuWidth: 350,
-        border: true,
-        //stripe:true,
-        submitBtn: false,
-        emptyBtn: false,
-        index: true,
-        viewBtn: true,
-        selection: true,
-        dialogClickModal: false,
-        column: [{
-          label: "小区",
-          prop: "districtId",
-          searchSpan: 5,
-          search: true,
-          type: 'tree',
-          dicUrl: `/api/blade-district/district/getDistrictTree`,
-          props: {
-            label: "name",
-            value: "id"
+  export default {
+    components: {
+      deitDiscussion
+    },
+    data() {
+      return {
+        taskId: '',
+        businessId: '',
+        processInstanceId: '',
+        src: '',
+        flowList: [],
+        form: {
+          flow: {
+            assigneeName: '',
           },
-          defaultExpandedKeys: ["361102003"],
-          span: 12,
-          labelWidth: 120,
-          width: 220,
-          overHidden: true,
-          rules: [{
-            required: true,
-            message: "请选择小区",
-            trigger: "blur",
-          },],
-          disabled: true
+          startTime: '',
+          endTime: '',
+          reason: '',
         },
-        {
-          label: '维修项目名称',
-          prop: 'name',
-          searchLabelWidth: 120,
-          searchSpan: 5,
-          search: true,
-          span: 12,
-          labelWidth: 140,
-          rules: [{
-            required: true,
-            message: "请输入维修项目名称",
-            trigger: "blur",
-          },],
-          disabled: true
-        },
-        {
-          label: "预计开工时间",
-          prop: "runTime",
-          span: 12,
-          labelWidth: 140,
-          type: "date",
-          format: "yyyy-MM-dd",
-          valueFormat: "yyyy-MM-dd",
-          rules: [{
-            required: true,
-            message: "请选择合同开始时间",
-            trigger: "blur",
-          },],
-          disabled: true
-        },
-        {
-          label: "预计竣工时间",
-          prop: "completedTime",
-          labelWidth: 140,
-          span: 12,
-          type: "date",
-          format: "yyyy-MM-dd",
-          valueFormat: "yyyy-MM-dd",
-          rules: [{
-            required: true,
-            message: "请选择合同结束时间",
-            trigger: "blur",
-          },],
-          disabled: true
-        },
-        {
-          label: "项目分摊方式",
-          prop: "allocationWay",
-          labelWidth: 140,
-          value: '按建筑面积分摊',
-          span: 12,
-          row: true,
-          disabled: true
-        },
-        {
-          label: '联系人',
-          prop: 'linkman',
-          span: 12,
-          labelWidth: 120,
-          search: true,
-          searchSpan: 4,
-          rules: [{
-            required: true,
-            message: "请输入联系人",
-            trigger: "blur",
-          },],
-          disabled: true
-        },
-        {
-          label: '联系方式',
-          prop: 'linkPhone',
-          span: 12,
-          labelWidth: 140,
-          rules: [{
-            required: true,
-            message: "请输入联系方式",
-            trigger: "blur",
-          },],
-          disabled: true
-        },
-        {
-          label: "项目预算总金额(元)",
-          prop: "budgetAmount",
-          span: 12,
-          hide: true,
-          labelWidth: 140,
-          type: 'number',
-          precision: 2,
-          value: '0.00',
-          disabled: true
-        },
-        {
-          label: "实际预算金额(元)",
-          prop: "actualAmount",
-          span: 12,
-          hide: true,
-          labelWidth: 140,
-          type: 'number',
-          precision: 2,
-          value: '0.00',
-          disabled: true
-        },
-        {
-          label: "自筹金额(元)",
-          prop: "selfAmount",
-          span: 12,
-          hide: true,
-          labelWidth: 140,
-          type: 'number',
-          precision: 2,
-          value: '0.00',
-          disabled: true
-        },
-        {
-          label: "预算应拨付金额(元)",
-          prop: "budgetAppropriateAmount",
-          span: 12,
-          hide: true,
-          labelWidth: 140,
-          type: 'number',
-          precision: 2,
-          value: '0.00',
-          disabled: true
-        },
+        option: {
+          height: "auto",
+          calcHeight: 54,
+          dialogWidth: 1150,
+          tip: false,
+          searchShow: true,
+          searchMenuSpan: 3,
+          menuWidth: 350,
+          border: true,
+          //stripe:true,
+          submitBtn: false,
+          emptyBtn: false,
+          index: true,
+          viewBtn: true,
+          selection: true,
+          dialogClickModal: false,
+          column: [{
+              label: "小区",
+              prop: "districtId",
+              searchSpan: 5,
+              search: true,
+              type: 'tree',
+              dicUrl: `/api/blade-district/district/getDistrictTree`,
+              props: {
+                label: "name",
+                value: "id"
+              },
+              defaultExpandedKeys: ["361102003"],
+              span: 12,
+              labelWidth: 120,
+              width: 220,
+              overHidden: true,
+              rules: [{
+                required: true,
+                message: "请选择小区",
+                trigger: "blur",
+              }, ],
+              disabled: true
+            },
+            {
+              label: '维修项目名称',
+              prop: 'name',
+              searchLabelWidth: 120,
+              searchSpan: 5,
+              search: true,
+              span: 12,
+              labelWidth: 140,
+              rules: [{
+                required: true,
+                message: "请输入维修项目名称",
+                trigger: "blur",
+              }, ],
+              disabled: true
+            },
+            {
+              label: "预计开工时间",
+              prop: "runTime",
+              span: 12,
+              labelWidth: 140,
+              type: "date",
+              format: "yyyy-MM-dd",
+              valueFormat: "yyyy-MM-dd",
+              rules: [{
+                required: true,
+                message: "请选择合同开始时间",
+                trigger: "blur",
+              }, ],
+              disabled: true
+            },
+            {
+              label: "预计竣工时间",
+              prop: "completedTime",
+              labelWidth: 140,
+              span: 12,
+              type: "date",
+              format: "yyyy-MM-dd",
+              valueFormat: "yyyy-MM-dd",
+              rules: [{
+                required: true,
+                message: "请选择合同结束时间",
+                trigger: "blur",
+              }, ],
+              disabled: true
+            },
+            {
+              label: "楼栋",
+              prop: "buildingName",
+              labelWidth: 140,
+              value: '',
+              span: 12,
+              row: true,
+              disabled: true
+            },
+            {
+              label: '联系人',
+              prop: 'linkman',
+              span: 12,
+              labelWidth: 120,
+              search: true,
+              searchSpan: 4,
+              rules: [{
+                required: true,
+                message: "请输入联系人",
+                trigger: "blur",
+              }, ],
+              disabled: true
+            },
+            {
+              label: '联系方式',
+              prop: 'linkPhone',
+              span: 12,
+              labelWidth: 140,
+              rules: [{
+                required: true,
+                message: "请输入联系方式",
+                trigger: "blur",
+              }, ],
+              disabled: true
+            },
+            {
+              label: "项目预算总金额(元)",
+              prop: "budgetAmount",
+              span: 12,
+              hide: true,
+              labelWidth: 140,
+              type: 'number',
+              precision: 2,
+              value: '0.00',
+              disabled: true
+            },
+            {
+              label: "实际预算金额(元)",
+              prop: "actualAmount",
+              span: 12,
+              hide: true,
+              labelWidth: 140,
+              type: 'number',
+              precision: 2,
+              value: '0.00',
+              disabled: true
+            },
+            {
+              label: "自筹金额(元)",
+              prop: "selfAmount",
+              span: 12,
+              hide: true,
+              labelWidth: 140,
+              type: 'number',
+              precision: 2,
+              value: '0.00',
+              disabled: true
+            },
+            {
+              label: "预算应拨付金额(元)",
+              prop: "budgetAppropriateAmount",
+              span: 12,
+              hide: true,
+              labelWidth: 140,
+              type: 'number',
+              precision: 2,
+              value: '0.00',
+              disabled: true
+            },
 
-        {
-          display: false,
-          hide: true,
-          parent: false,
-          label: "投票结果",
-          prop: "articleId",
-          search: false,
-          viewDisabled: false,
-          type: 'select',
-          dicUrl: `/api/blade-article/article/getArticleByDistrictId?type=4&eventType=1&districtId={{districtId}}`,
-          // slot: true,
-          formslot: true,
-          cascader: ['vote'],
-          props: {
-            label: "title",
-            value: "id"
-          },
-          defaultExpandedKeys: ["361102003"],
-          span: 12,
-          width: 260,
-          rules: [{
-            required: true,
-            message: "请选择投票结果",
-            trigger: "blur",
-          },],
-          change: (val) => {
-            console.log("val===>", val)
-            // console.log("form===>",this.form)
-            if (val.value && !this.form.id) {
-              this.articleRange = val.articleRange;
-              // this.showDialog = true;
-              // this.getDetail(val.value, val.articleRange)
+            {
+              display: false,
+              hide: true,
+              parent: false,
+              label: "投票结果",
+              prop: "articleId",
+              search: false,
+              viewDisabled: false,
+              type: 'select',
+              dicUrl: `/api/blade-article/article/getArticleByDistrictId?type=4&eventType=1&districtId={{districtId}}`,
+              // slot: true,
+              formslot: true,
+              cascader: ['vote'],
+              props: {
+                label: "title",
+                value: "id"
+              },
+              defaultExpandedKeys: ["361102003"],
+              span: 12,
+              width: 260,
+              rules: [{
+                required: true,
+                message: "请选择投票结果",
+                trigger: "blur",
+              }, ],
+              change: (val) => {
+                console.log("val===>", val)
+                // console.log("form===>",this.form)
+                if (val.value && !this.form.id) {
+                  this.articleRange = val.articleRange;
+                  // this.showDialog = true;
+                  // this.getDetail(val.value, val.articleRange)
+                }
+
+              }
+            },
+
+            {
+              display: false,
+              span: 24,
+              hide: true,
+              prop: "vote",
+              slot: true,
+              label: "投票详情",
+              labelWidth: 140
+            },
+
+
+            {
+              label: "项目摘要",
+              span: 24,
+              hide: true,
+              prop: "projectDigest",
+              placeholder: "例如:“XX小区XX栋XX设施设备维修,总的预算金额是X,是否含有审价,本次维修涉及范围共XX户,总面积的建筑面积为XX平方米”",
+              labelWidth: 140,
+              type: "textarea",
+              disabled: true
+            },
+            {
+              label: "项目进度描述",
+              span: 24,
+              hide: true,
+              prop: "projectDescribe",
+              labelWidth: 140,
+              type: "textarea",
+              disabled: true
+            }, {
+              label: "批复意见",
+              span: 24,
+              hide: true,
+              prop: "comment",
+              labelWidth: 140,
+              type: "textarea",
+              rules: [{
+                required: true,
+                message: "请输入批复意见",
+                trigger: "blur",
+              }, ],
+            },
+            {
+              label: '施工方案附件',
+              prop: 'constructionSchemeUrls',
+              type: 'upload',
+              listType: 'picture-img',
+              span: 24,
+              hide: true,
+              labelWidth: 140,
+              multiple: true,
+              // showFileList: true,
+              propsHttp: {
+                res: 'data',
+                name: "originalName",
+                url: "link"
+              },
+              action: '/api/blade-resource/oss/endpoint/put-file-attach',
+              rules: [{
+                required: true,
+                message: "请上传施工方案",
+                trigger: "blur",
+              }, ],
             }
+          ],
+        },
+        topictData: [],
+        topicTitle: "",
+        articleRange: ""
+      }
+    },
 
+
+    watch: {
+      'form.districtId': {
+        handler(newData) {
+          const column = this.findObject(this.option.column, "articleId")
+          if (newData && this.form.articleId) {
+            column.display = true;
+          } else {
+            column.display = false
           }
-        },
-
-        {
-          display: false,
-          span: 24,
-          hide: true,
-          prop: "vote",
-          slot: true,
-          label: "投票详情",
-          labelWidth: 140
-        },
-
-
-        {
-          label: "项目摘要",
-          span: 24,
-          hide: true,
-          prop: "projectDigest",
-          placeholder: "例如:“XX小区XX栋XX设施设备维修,总的预算金额是X,是否含有审价,本次维修涉及范围共XX户,总面积的建筑面积为XX平方米”",
-          labelWidth: 140,
-          type: "textarea",
-          disabled: true
-        },
-        {
-          label: "项目进度描述",
-          span: 24,
-          hide: true,
-          prop: "projectDescribe",
-          labelWidth: 140,
-          type: "textarea",
-          disabled: true
-        }, {
-          label: "批复意见",
-          span: 24,
-          hide: true,
-          prop: "comment",
-          labelWidth: 140,
-          type: "textarea",
-          rules: [{
-            required: true,
-            message: "请输入批复意见",
-            trigger: "blur",
-          },],
-        },
-        {
-          label: '施工方案附件',
-          prop: 'constructionSchemeUrls',
-          type: 'upload',
-          listType: 'picture-img',
-          span: 24,
-          hide: true,
-          labelWidth: 140,
-          multiple: true,
-          // showFileList: true,
-          propsHttp: {
-            res: 'data',
-            name: "originalName",
-            url: "link"
-          },
-          action: '/api/blade-resource/oss/endpoint/put-file-attach',
-          rules: [{
-            required: true,
-            message: "请上传施工方案",
-            trigger: "blur",
-          },],
         }
-        ],
       },
-      topictData: [],
-      topicTitle: "",
-      articleRange: ""
-    }
-  },
 
 
-  watch: {
-    'form.districtId': {
-      handler(newData) {
-        const column = this.findObject(this.option.column, "articleId")
-        if (newData && this.form.articleId) {
-          column.display = true;
-        } else {
-          column.display = false
+      'form.articleId': {
+        handler(newData) {
+          this.getVoteDetail(this.form.articleId, this.articleRange)
+          const column = this.findObject(this.option.column, "vote")
+          if (newData) {
+            column.display = true;
+          } else {
+            column.display = false
+          }
         }
-      }
+      },
+
     },
 
-
-    'form.articleId': {
-      handler(newData) {
-        this.getVoteDetail(this.form.articleId, this.articleRange)
-        const column = this.findObject(this.option.column, "vote")
-        if (newData) {
-          column.display = true;
-        } else {
-          column.display = false
-        }
-      }
-    },
-
-  },
-
-  created() {
-    this.init()
-  },
-  beforeRouteUpdate(to, from, next) {
-    // 在当前路由改变,但是该组件被复用时调用
-    // 举例来说,对于一个带有动态参数的路径 /foo/:id,在 /foo/1 和 /foo/2 之间跳转的时候
-    // 由于会渲染同样的 Foo 组件,因此组件实例会被复用。而这个钩子就会在这个情况下被调用
-    // 可以访问组件实例 `this`
-    if (to.fullPath !== from.fullPath) {
-      next()
+    created() {
       this.init()
-    }
-  },
-  methods: {
-    init() {
-      this.taskId = this.$route.params.taskId
-      this.processInstanceId = this.$route.params.processInstanceId
-      this.businessId = this.$route.params.businessId
-      historyFlowList(this.processInstanceId).then(res => {
-        const data = res.data
-        if (data.success) {
-          this.flowList = data.data
-        }
-      })
-      getPropertyCapitalApply(this.businessId).then(res => {
-        const data = res.data
-        if (data.success) {
-          data.data.constructionSchemeUrls = website.minioUrl + data.data.constructionSchemeUrls
-          this.form = data.data
-        }
-      })
     },
-    handleAgree() {
-      if (!this.form.comment) {
-        this.$message.warning('请先填写批复意见')
-        return
+    beforeRouteUpdate(to, from, next) {
+      // 在当前路由改变,但是该组件被复用时调用
+      // 举例来说,对于一个带有动态参数的路径 /foo/:id,在 /foo/1 和 /foo/2 之间跳转的时候
+      // 由于会渲染同样的 Foo 组件,因此组件实例会被复用。而这个钩子就会在这个情况下被调用
+      // 可以访问组件实例 `this`
+      if (to.fullPath !== from.fullPath) {
+        next()
+        this.init()
       }
-      const params = {
-        taskId: this.taskId,
-        processInstanceId: this.processInstanceId,
-        flag: 'ok',
-        comment: this.form.comment,
-      }
-      completeTask(params).then(res => {
-        const data = res.data
-        if (data.success) {
-          this.$message.success(data.msg)
-          this.$router.$avueRouter.closeTag()
-          this.$router.push({
-            path: `/gzll/todo`
-          })
-        } else {
-          this.$message.error(data.msg || '提交失败')
+    },
+    methods: {
+      init() {
+        this.taskId = this.$route.params.taskId
+        this.processInstanceId = this.$route.params.processInstanceId
+        this.businessId = this.$route.params.businessId
+        historyFlowList(this.processInstanceId).then(res => {
+          const data = res.data
+          if (data.success) {
+            this.flowList = data.data
+          }
+        })
+        getPropertyCapitalApply(this.businessId).then(res => {
+          const data = res.data
+          if (data.success) {
+            data.data.constructionSchemeUrls = website.minioUrl + data.data.constructionSchemeUrls
+            this.form = data.data
+          }
+        })
+      },
+      handleAgree() {
+        if (!this.form.comment) {
+          this.$message.warning('请先填写批复意见')
+          return
         }
-      })
-    },
-    handleDisagree() {
-      if (!this.form.comment) {
-        this.$message.warning('请先填写批复意见')
-        return
-      }
-      const params = {
-        taskId: this.taskId,
-        processInstanceId: this.processInstanceId,
-        comment: this.form.comment,
-      }
-      completeTask(params).then(res => {
-        const data = res.data
-        if (data.success) {
-          this.$message.success(data.msg)
-          this.$router.$avueRouter.closeTag()
-          this.$router.push({
-            path: `/gzll/todo`
-          })
-        } else {
-          this.$message.error(data.msg || '提交失败')
+        const params = {
+          taskId: this.taskId,
+          processInstanceId: this.processInstanceId,
+          flag: 'ok',
+          comment: this.form.comment,
         }
-      })
-    },
-    handleCancel() {
-      this.$router.$avueRouter.closeTag()
-      this.$router.push({
-        path: `/gzll/todo`
-      })
-    },
-    getVoteDetail(articleId, districtId) {
-      let params = {
-        level: 1,
-        articleId: articleId,
-        districtId: districtId
-      }
-      getLists(1, 10, params).then(res => {
-        const data = res.data.data
-        if (data.length) {
-          this.topictData = data[0].children;
-          this.topicTitle = data[0].discussContent;
+        completeTask(params).then(res => {
+          const data = res.data
+          if (data.success) {
+            this.$message.success(data.msg)
+            this.$router.$avueRouter.closeTag()
+            this.$router.push({
+              path: `/gzll/todo`
+            })
+          } else {
+            this.$message.error(data.msg || '提交失败')
+          }
+        })
+      },
+      handleDisagree() {
+        if (!this.form.comment) {
+          this.$message.warning('请先填写批复意见')
+          return
         }
-      })
-    },
+        const params = {
+          taskId: this.taskId,
+          processInstanceId: this.processInstanceId,
+          comment: this.form.comment,
+        }
+        completeTask(params).then(res => {
+          const data = res.data
+          if (data.success) {
+            this.$message.success(data.msg)
+            this.$router.$avueRouter.closeTag()
+            this.$router.push({
+              path: `/gzll/todo`
+            })
+          } else {
+            this.$message.error(data.msg || '提交失败')
+          }
+        })
+      },
+      handleCancel() {
+        this.$router.$avueRouter.closeTag()
+        this.$router.push({
+          path: `/gzll/todo`
+        })
+      },
+      getVoteDetail(articleId, districtId) {
+        let params = {
+          level: 1,
+          articleId: articleId,
+          districtId: districtId
+        }
+        getLists(1, 10, params).then(res => {
+          const data = res.data.data
+          if (data.length) {
+            this.topictData = data[0].children;
+            this.topicTitle = data[0].discussContent;
+          }
+        })
+      },
 
-    openUserPopup(row) {
-      this.$refs.DeitDiscussion.openUser(row, 1, [this.form.districtId])
-    },
+      openUserPopup(row) {
+        this.$refs.DeitDiscussion.openUser(row, 1, [this.form.districtId])
+      },
+    }
   }
-}
 </script>
 
 <style scoped>
-.container {
-  position: relative;
-  /* 确保按钮相对于该元素定位 */
-}
+  .container {
+    position: relative;
+    /* 确保按钮相对于该元素定位 */
+  }
 
-#myButton {
-  position: fixed;
-  bottom: 0;
-  left: 50%;
-  transform: translateX(-50%);
-}
-.workOrderStyle {
-  font-weight: normal;
-}
-</style>
\ No newline at end of file
+  #myButton {
+    position: fixed;
+    bottom: 0;
+    left: 50%;
+    transform: translateX(-50%);
+  }
+
+  .workOrderStyle {
+    font-weight: normal;
+  }
+</style>
diff --git a/src/views/monitor/log/api.vue b/src/views/monitor/log/api.vue
index 2209fbf..acd1e01 100644
--- a/src/views/monitor/log/api.vue
+++ b/src/views/monitor/log/api.vue
@@ -142,6 +142,7 @@
             this.onLoad(this.page, this.query)
         },
         onLoad (page, params = {}) {
+            params['type'] = '2'
             this.loading = true
             getApiList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
                 const data = res.data.data
diff --git a/src/views/patrol/addsubject.vue b/src/views/patrol/addsubject.vue
new file mode 100644
index 0000000..e1f3dd6
--- /dev/null
+++ b/src/views/patrol/addsubject.vue
@@ -0,0 +1,255 @@
+<template>
+  <el-dialog :title="this.id ? '修改' : '新增'" width="60%" modal-append-to-body="false" append-to-body="true"
+    :close-on-click-model="true" :visible.sync="visible" @close="closeDialog">
+    <avue-form ref="form" :option="option" v-model="form" @submit="submit"></avue-form>
+  </el-dialog>
+</template>
+
+<script>
+  import {
+    getList,
+    addTwo
+  } from "@/api/patrol/patrolGroup";
+
+  export default {
+    name: "add",
+    data() {
+      return {
+        inputs: {
+          input1: 1,
+        },
+        editFlag: false,
+        optionContentAId: null,
+        optionContentBId: null,
+        optionContentCId: null,
+        optionContentDId: null,
+        optionContentEId: null,
+        arrContent: ["1"],
+        list: [{
+            data: 1,
+          },
+          {
+            data: 1,
+          },
+          {
+            data: 1,
+          },
+        ],
+        visible: false,
+        choicesType: "0",
+        loading: false,
+        form: {},
+        option: {
+          height: "auto",
+          calcHeight: 80,
+          tip: false,
+          searchShow: true,
+          searchMenuSpan: 6,
+          border: true, //liu
+          stripe: true,
+          align: "center",
+          index: true,
+          selection: true,
+          viewBtn: true,
+          defaultExpandAll: true,
+          dialogClickModal: false,
+          column: [{
+              label: "类型",
+              prop: "type",
+              type: "select",
+              props: {
+                label: "title",
+                value: "key",
+              },
+              dicUrl: "/api/blade-system/dict-biz/tree?code=subject_max",
+              rules: [{
+                required: true,
+                message: "请选择类型",
+                trigger: "blur",
+              }, ],
+              span: 24,
+            },
+            {
+              prop: "id",
+              display: false,
+              type: 'input',
+            },
+            {
+              label: "题目名称",
+              prop: "name",
+              search: true,
+              type: "textarea",
+              rules: [{
+                required: true,
+                message: "请输入题目名称",
+                trigger: "blur",
+              }, ],
+              span: 24,
+            },
+            {
+              label: '选项内容',
+              prop: 'patrolGroupItemList',
+              type: 'dynamic',
+              span: 24,
+              children: {
+                align: 'center',
+                headerAlign: 'center',
+                rowAdd: (done) => {
+                  // this.$message.success('新增回调');
+                  done({
+                    input: '默认值'
+                  });
+                },
+                rowDel: (row, done) => {
+                  if (row.id) {
+                    row.isDeleted = 1
+                    this.deleteList.push(row)
+
+                  }
+                  // this.$message.success('删除回调' + JSON.stringify(row));
+                  done();
+                },
+                column: [{
+                  label: '选项标题',
+                  prop: 'itemsName',
+                  type: 'input',
+                  rules: [{
+                    required: true,
+                    message: "请输入选项标题",
+                    trigger: "blur",
+                  }, ],
+                }, {
+                  label: '选项类型',
+                  prop: 'type',
+                  type: "select",
+                  props: {
+                    label: "title",
+                    value: "key",
+                  },
+                  dicUrl: "/api/blade-system/dict-biz/tree?code=subject",
+                  rules: [{
+                    required: true,
+                    message: "请输入选项类型",
+                    trigger: "blur",
+                  }, ],
+                }]
+              }
+            },
+          ],
+        },
+        formCheckbox: {},
+
+        formJudge: {},
+        formFill: {},
+        deleteList: [],
+
+        data: [{
+          discussContent: '',
+          optionContent: ''
+        }, {
+          discussContent: '',
+          optionContent: ''
+        }],
+      };
+    },
+    computed: {
+      // ...mapState({
+      //   userInfo: (state) => state.user.userInfo,
+      // }),
+    },
+    mounted() {},
+    methods: {
+      add() {
+        this.editFlag = true
+      },
+
+      edit(row) {
+        this.disCussFrom = row
+        this.editFlag = true
+      },
+      //初始化
+      inits(row) {
+        // var formula = "2 + 3 * (4 - 1)"; // 要转换的字符串表达式
+        // var result = eval(formula); // 调用eval()函数进行计算
+        // console.log(result); // 输出结果:9
+        // console.table(row); // 输出结果为 "2"
+        // this.id = id || 0;
+        this.visible = true;
+        this.form = row
+        // this.list = [{
+        //   data: 1
+        // }];
+        // if (this.id) {
+        //   //查询题目信息
+        //   this.getSubjectInfo(id);
+        // }
+      },
+
+      //加一行
+      addRows() {
+        //获取已有行的数据
+        // debugger;
+        if (this.index == 6) {
+          return;
+        }
+        this.index++;
+        this.list.push({
+          data: this.index,
+        });
+        this.inputs[`input${this.index + 1}`] = "";
+      },
+      //减一行
+      deleteRows(index) {
+        if (this.index == 1) {
+          return;
+        }
+        this.index--;
+        this.list.splice(index, 1);
+      },
+      //单选题提交(新增)数据
+      submit(row, done, loading) {
+        var that = this;
+        // console.table(this.deleteList)
+        row.patrolGroupItemList = row.patrolGroupItemList.concat(this.deleteList)
+        addTwo(row).then(
+          () => {
+            this.$message({
+              type: "success",
+              message: "操作成功!",
+            });
+            that.visible = false;
+            that.$refs.form.resetForm();
+            this.$emit('refreshPage');
+            done();
+          },
+          (error) => {
+            window.console.log(error);
+            loading();
+          }
+        );
+      },
+      //关闭窗口清除数据
+      closeDialog() {
+        this.$refs.form.resetForm();
+      },
+    },
+  };
+</script>
+<style scoped>
+  .optionContent-suffix {
+    margin-top: 5px;
+  }
+
+  .optionContent-suffix span {
+    margin-left: -20px;
+  }
+
+  .optionContent-suffix .optionContent-input {
+    width: 90%;
+    margin-left: 10px;
+  }
+
+  .optionContent-suffix .optionContent-botton {
+    margin-left: 10px;
+  }
+</style>
\ No newline at end of file
diff --git a/src/views/patrol/subject.vue b/src/views/patrol/subject.vue
new file mode 100644
index 0000000..a50a253
--- /dev/null
+++ b/src/views/patrol/subject.vue
@@ -0,0 +1,320 @@
+/* * @Author: Morpheus * @Date: 2021-07-05 16:31:54 * @Last Modified by: liu *
+@Last Modified time: 2021-11-23 14:14:38 * menu-name 物业评定题库查询 */
+<template>
+  <basic-container :class="">
+    <avue-crud class="company-box tablesss" :option="questionBankOption" :search.sync="questionBankSearch"
+      :table-loading="questionBankLoading" :data="questionBankData" ref="questionBankCrud" :page.sync="questionBankPage"
+      @selection-change="questionBankSelectionChange" @search-change="questionBankSearchChange"
+      @search-reset="questionBankSearchReset" @current-change="questionBankCurrentChange"
+      @size-change="questionBankSizeChange" @row-del="questionBankHandleDel" @on-load="questionBankOnLoad">
+      <template slot="menuLeft">
+        <el-button type="primary" size="small" icon="el-icon-plus" @click="questionBankHandleAdd">新 增
+        </el-button>
+      </template>
+
+      <template slot-scope="{ row }" slot="menu">
+        <el-button type="text" size="mini" icon="el-icon-edit" @click="questionBankHandleEdit(row)">编辑
+        </el-button>
+        <el-button type="text" size="mini" icon="el-icon-delete" @click="questionBankHandleDel(row)">删除
+        </el-button>
+      </template>
+    </avue-crud>
+
+    <!--  <el-dialog title="题库导入" append-to-body :visible.sync="excelBox" width="555px">
+      <avue-form :option="excelOption" v-model="excelForm" :upload-after="uploadAfter">
+        <template slot="excelTemplate">
+          <el-button type="primary" @click="handleTemplate">
+            点击下载<i class="el-icon-download el-icon--right"></i>
+          </el-button>
+        </template>
+      </avue-form>
+    </el-dialog> -->
+    <addsubject ref="addsubject" v-on:refreshPage="refreshPage"></addsubject>
+  </basic-container>
+</template>
+
+<script>
+  import {
+    getList,
+    remove
+  } from "@/api/patrol/patrolGroup";
+
+  import addsubject from "./addsubject.vue";
+  // import {
+  //   mapGetters,
+  //   mapState
+  // } from "vuex";
+  import Qs from "qs";
+  import {
+    getToken
+  } from "@/util/auth";
+  export default {
+    components: {
+      addsubject
+    },
+    data() {
+      return {
+        excelBox: false,
+        excelForm: {},
+        excelOption: {
+          submitBtn: false,
+          emptyBtn: false,
+          column: [{
+              label: "模板上传",
+              prop: "excelFile",
+              type: "upload",
+              drag: true,
+              loadText: "模板上传中,请稍等",
+              span: 24,
+              propsHttp: {
+                res: "data"
+              },
+              tip: "请上传 .xls,.xlsx 标准格式文件",
+              action: "/api/examSubjectChoices/import-examSubject"
+            },
+            {
+              label: "模板下载",
+              prop: "excelTemplate",
+              formslot: true,
+              span: 24
+            }
+          ]
+        },
+        questionBankOption: {
+          // 操作栏多余按钮去除
+          delBtn: false,
+          editBtn: false,
+          addBtn: false,
+          selection: true,
+          menu: true,
+          // 导出按钮
+          excelBtn: true,
+          excelBtnText: "题库导出",
+          // title: '题库',
+          align: "center",
+          height: "auto",
+          calcHeight: 80,
+          tip: false,
+          searchShow: true,
+          searchMenuSpan: 4,
+          index: true,
+          indexLabel: "序号",
+          viewBtn: true,
+          //dialogType: 'drawer',
+          dialogClickModal: false,
+          // 操作栏宽度
+          menuWidth: 226,
+          // ...this.$store.state.control.clearOtherBut,
+          // ...this.$store.state.control.searchOpen,
+          column: [{
+              label: "题目类型",
+              prop: "type",
+              search: true,
+              type: "select",
+              searchSpan: 4,
+              dicUrl: "/api/blade-system/dict-biz/tree?code=subject_max",
+              props: {
+                label: "title",
+                value: "key",
+              },
+              slot: true,
+              width: 96
+            }, {
+              label: "题目名称",
+              prop: "name",
+              searchSpan: 4,
+              search: true,
+              slot: true
+            },
+            {
+              label: "创建时间",
+              prop: "createDate",
+              slot: true,
+              width: 130
+            },
+            {
+              label: "修改人",
+              prop: "modifier",
+              slot: true,
+              width: 96
+            },
+            {
+              label: "修改时间",
+              prop: "modifyDate",
+              slot: true,
+              width: 130
+            }
+          ]
+        },
+        questionBankSearch: {},
+        questionBankLoading: true,
+        questionBankData: [],
+        questionBankPage: {
+          pageSize: 10,
+          currentPage: 1,
+          total: 16,
+          // ...this.$store.state.control.changePageSize
+        },
+        questionBankQuery: {},
+        questionBankSelectionList: []
+      };
+    },
+    mounted() {
+      this.$store.commit("setWindowSizeHeightAdd");
+    },
+    computed: {
+      // ...mapGetters(["userInfo", "permission"]),
+      permissionList() {
+        return {
+          // addBtn: this.vaildData(this.permission.subject_add, false),
+          // viewBtn: this.vaildData(this.permission.subject_view, false),
+          // delBtn: this.vaildData(this.permission.subject_delete, false),
+          // editBtn: this.vaildData(this.permission.subject_edit, false),
+          // excelBtn: this.vaildData(this.permission.subject_report, false)
+        };
+      },
+      ids() {
+        let ids = [];
+        this.questionBankSelectionList.forEach(ele => {
+          ids.push(ele.id);
+        });
+        return ids.join(",");
+      }
+    },
+    methods: {
+      //触发页面刷新
+      refreshPage() {
+        this.questionBankOnLoad(this.questionBankPage);
+      },
+      questionBankHandleAdd() {
+        this.$refs.addsubject.inits();
+      },
+      questionBankHandleEdit(row) {
+        this.$refs.addsubject.inits(row);
+      },
+      questionBankOnLoad(page, params = {}) {
+        params = this.questionBankSearch;
+        this.questionBankLoading = false;
+        getList(
+          page.currentPage,
+          page.pageSize,
+          Object.assign(params, this.query)
+        ).then(res => {
+          const data = res.data.data;
+          this.questionBankPage.total = data.total;
+          this.questionBankData = data.records;
+          for (var i = 0; i < this.questionBankData.length; i++) {
+            this.questionBankData[i].type = this.questionBankData[i].type.toString()
+            for (var j = 0; j < this.questionBankData[i].patrolGroupItemList.length; j++) {
+              this.questionBankData[i].patrolGroupItemList[j].type = this.questionBankData[i].patrolGroupItemList[j]
+                .type.toString()
+            }
+          }
+          this.questionBankLoading = false;
+          this.$store.commit("setWindowSizeHeightAdd");
+          this.questionBankSelectionClear();
+        });
+      },
+      questionBankSelectionClear() {
+        this.questionBankSelectionList = [];
+        this.$refs.questionBankCrud.toggleSelection();
+      },
+      questionBankSelectionChange(list) {
+        this.questionBankSelectionList = list;
+      },
+      questionBankSearchChange(params, done) {
+        this.questionBankQuery = params;
+        this.questionBankPage.currentPage = 1;
+        this.questionBankOnLoad(this.questionBankPage, params);
+        done();
+      },
+      questionBankSearchReset() {
+        this.questionBankQuery = {};
+        this.questionBankOnLoad(this.questionBankPage);
+      },
+      questionBankCurrentChange(currentPage) {
+        this.questionBankPage.currentPage = currentPage;
+      },
+      questionBankSizeChange(pageSize) {
+        this.questionBankPage.pageSize = pageSize;
+      },
+
+      questionBankHandleDel(row) {
+        this.$confirm("确定将选择数据删除?", {
+            confirmButtonText: "确定",
+            cancelButtonText: "取消",
+            type: "warning"
+          })
+          .then(() => {
+            return remove(row.id);
+          })
+          .then(() => {
+            this.questionBankOnLoad(this.questionBankPage);
+            this.$message({
+              type: "success",
+              message: "操作成功!"
+            });
+          });
+      },
+
+      questionBankHandleDelete() {
+        if (this.questionBankSelectionList.length === 0) {
+          this.$message.warning("请选择至少一条数据");
+          return;
+        }
+        this.$confirm("确定将选择数据删除?", {
+            confirmButtonText: "确定",
+            cancelButtonText: "取消",
+            type: "warning"
+          })
+          .then(() => {
+            return remove(this.ids);
+          })
+          .then(() => {
+            this.questionBankOnLoad(this.questionBankPage);
+            this.$message({
+              type: "success",
+              message: "操作成功!"
+            });
+            this.$refs.questionBankCrud.toggleSelection();
+          });
+      },
+
+      //导出数据
+      handleExport() {
+        this.$confirm("是否导出清册数据?", "提示", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(() => {
+          window.open(
+            `/api/apply/export-apply?examId=${this.$route.query.id}&${
+            this.website.tokenHeader
+          }=${getToken()}`
+          );
+        });
+      },
+      handleImport() {
+        this.excelBox = true;
+      },
+      handleTemplate() {
+        window.open(
+          `/api/examSubjectChoices/export-template?${
+          this.website.tokenHeader
+        }=${getToken()}`
+        );
+      },
+      uploadAfter(res, done, loading, column) {
+        window.console.log(column);
+        this.excelBox = false;
+        this.refreshChange();
+        done();
+      },
+      refreshChange() {
+        this.questionBankOnLoad(this.page, this.query);
+      }
+    }
+  };
+</script>
+
+<style lang="scss" scoped></style>
\ No newline at end of file
diff --git a/src/views/patrolList/patrolRecord.vue b/src/views/patrolList/patrolRecord.vue
index 3f16efe..e1d2332 100644
--- a/src/views/patrolList/patrolRecord.vue
+++ b/src/views/patrolList/patrolRecord.vue
@@ -1,51 +1,50 @@
 <template>
-    <basic-container>
-        <avue-crud :option="option" :table-loading="loading" :data="data" :page.sync="page" ref="crud" @row-del="rowDel"
-            v-model="form" :permission="permissionList" @row-update="rowUpdate" @row-save="rowSave"
-            :before-open="beforeOpen" @search-change="searchChange" @search-reset="searchReset"
-            @selection-change="selectionChange" @current-change="currentChange" @size-change="sizeChange"
-            @refresh-change="refreshChange" @on-load="onLoad">
-            <template slot-scope="{type,size,row }" slot="menu">
-                <el-button icon="el-icon-detail" :size="size" :type="type" @click.stop="getDetail(row)">
-                    详情
-                </el-button>
-            </template>
-            <template slot-scope="{type,size,row }" slot="menu">
-                <el-button icon="el-icon-detail" :size="size" :type="type" @click.stop="getDetail(row)">
-                    详情
-                </el-button>
-            </template>
+  <basic-container>
+    <avue-crud :option="option" :table-loading="loading" :data="data" :page.sync="page" ref="crud" @row-del="rowDel"
+      v-model="form" :permission="permissionList" @row-update="rowUpdate" @row-save="rowSave" :before-open="beforeOpen"
+      @search-change="searchChange" @search-reset="searchReset" @selection-change="selectionChange"
+      @current-change="currentChange" @size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad">
+      <template slot-scope="{type,size,row }" slot="menu">
+        <el-button icon="el-icon-detail" :size="size" :type="type" @click.stop="getDetail(row)">
+          详情
+        </el-button>
+      </template>
+      <template slot-scope="{type,size,row }" slot="menu">
+        <el-button icon="el-icon-detail" :size="size" :type="type" @click.stop="getDetail(row)">
+          详情
+        </el-button>
+      </template>
 
-            <template slot-scope="{row, size}" slot="principalPhone">
-                <el-button :size="size" type="text" @click="showStringDispose(row, 'principalPhoneflag')"
-                    v-text="textDispose(row, 'principalPhoneflag', 'principalPhone')">
-                </el-button>
-            </template>
-        </avue-crud>
+      <template slot-scope="{row, size}" slot="principalPhone">
+        <el-button :size="size" type="text" @click="showStringDispose(row, 'principalPhoneflag')"
+          v-text="textDispose(row, 'principalPhoneflag', 'principalPhone')">
+        </el-button>
+      </template>
+    </avue-crud>
 
 
-        <el-drawer title="巡查详情" :visible.sync="isDetail" :append-to-body="true" size="60%" direction="rtl">
+    <el-drawer title="巡查详情" :visible.sync="isDetail" :append-to-body="true" size="60%" direction="rtl">
 
-            <el-card class="trackClass" style="overflow-y: auto">
+      <el-card class="trackClass" style="overflow-y: auto">
+
+        <el-collapse v-model="activeNames" @change="handleChange">
+          <div v-for="(item, index) in 10" :key="index">
+            <el-collapse-item title="一致性 Consistency" name="1">
+              <div>{{ index }}
 
                 <el-collapse v-model="activeNames" @change="handleChange">
-                    <div v-for="(item, index) in 10" :key="index">
-                        <el-collapse-item title="一致性 Consistency" name="1">
-                            <div>{{ index }}
-
-                                <el-collapse v-model="activeNames" @change="handleChange">
-                                    <div v-for="(item, index) in 3" :key="index">
-                                        <el-collapse-item title="er致性 Consistency" name="1">
-                                            <div>在界面中一致:所有的元素和结构需保持一致,比如:设计样式、图标和文本、元素的位置等。{{ index }}</div>
-                                        </el-collapse-item>
-                                    </div>
-                                </el-collapse>
-                            </div>
-                        </el-collapse-item>
-                    </div>
+                  <div v-for="(item, index) in 3" :key="index">
+                    <el-collapse-item title="er致性 Consistency" name="1">
+                      <div>在界面中一致:所有的元素和结构需保持一致,比如:设计样式、图标和文本、元素的位置等。{{ index }}</div>
+                    </el-collapse-item>
+                  </div>
                 </el-collapse>
+              </div>
+            </el-collapse-item>
+          </div>
+        </el-collapse>
 
-                <!--  <el-form :model="form" label-position="right" size="mini" class="taskinfoForm" label-width="70px">
+        <!--  <el-form :model="form" label-position="right" size="mini" class="taskinfoForm" label-width="70px">
           <el-row>
             <el-col :span="24">
               <el-form-item label="巡查内容">
@@ -71,351 +70,354 @@
           </el-row>
         </el-form> -->
 
-            </el-card>
+      </el-card>
 
-            <!-- <DcMap v-if="isDetail" :is-detail="isDetail" :range="form.taskRoute" :patrolRoute="form.patrolRoute">
+      <!-- <DcMap v-if="isDetail" :is-detail="isDetail" :range="form.taskRoute" :patrolRoute="form.patrolRoute">
       </DcMap> -->
 
-        </el-drawer>
+    </el-drawer>
 
-    </basic-container>
+  </basic-container>
 </template>
 
 <script>
-import {
+  import {
     getList,
     remove,
     add,
     update,
     getDetail,
     getPatrolGroupTree
-} from "@/api/patrol/placeChek"
+  } from "@/api/patrol/placeChek"
 
-import website from '@/config/website'
+  import website from '@/config/website'
 
 
-// import {
-//   getDistrictTree
-// } from "@/api/district/index"
+  // import {
+  //   getDistrictTree
+  // } from "@/api/district/index"
 
-import {
+  import {
     mapGetters
-} from "vuex"
+  } from "vuex"
 
-export default {
-    data () {
-        return {
-            isDetail: false,
-            form: {},
-            query: {},
-            loading: true,
-            page: {
-                pageSize: 10,
-                currentPage: 1,
-                total: 0,
+  export default {
+    data() {
+      return {
+        isDetail: false,
+        form: {},
+        query: {},
+        loading: true,
+        page: {
+          pageSize: 10,
+          currentPage: 1,
+          total: 0,
+        },
+        datetime: "",
+        selectionList: [],
+        option: {
+          labelWidth: 120,
+          searchLabelWidth: 96,
+          searchShow: true,
+          searchMenuSpan: 3,
+          // menuWidth: 450,
+          // menu: false,
+          height: "auto",
+          calcHeight: 54,
+          dialogWidth: 950,
+          tip: false,
+          border: true,
+          addBtn: false,
+          delBtn: false,
+          //stripe:true,
+          index: true,
+          editBtn: false,
+          viewBtn: false,
+          // selection: true,
+          excelBtn: true,
+          dialogClickModal: false,
+          header: false,
+          column: [{
+              label: "所属街道",
+              prop: "streetName",
+              span: 24,
+              row: true,
+              searchSpan: 4,
+              search: true,
             },
-            datetime: "",
-            selectionList: [],
-            option: {
-                labelWidth: 120,
-                searchLabelWidth: 96,
-                searchShow: true,
-                searchMenuSpan: 3,
-                // menuWidth: 450,
-                // menu: false,
-                height: "auto",
-                calcHeight: 54,
-                dialogWidth: 950,
-                tip: false,
-                border: true,
-                addBtn: false,
-                delBtn: false,
-                //stripe:true,
-                index: true,
-                editBtn: false,
-                viewBtn: false,
-                // selection: true,
-                excelBtn: true,
-                dialogClickModal: false,
-                header:false,
-                column: [{
-                    label: "所属街道",
-                    prop: "streetName",
-                    span: 24,
-                    row: true,
-                    searchSpan: 4,
-                    search: true,
-                },
-                {
-                    label: "所属社区",
-                    prop: "communityName",
-                    span: 24,
-                    row: true,
-                    searchSpan: 4,
-                    search: true,
-                },
-                {
-                    label: "所属网格",
-                    prop: "gridName",
-                    span: 24,
-                    row: true,
-                    searchSpan: 4,
-                    search: true,
-                },
-                {
-                    label: "场所名称",
-                    prop: "placeName",
-                    span: 24,
-                    row: true,
-                    searchSpan: 4,
-                    search: true,
-                },
-                {
-                    label: "场所隐患",
-                    prop: "remark",
-                    span: 24,
-                    row: true,
-                    searchSpan: 4,
-                },
-
-                {
-                    label: "场所负责人",
-                    prop: "principal",
-                    span: 24,
-                    row: true,
-                    searchSpan: 4,
-                    search: true,
-                },
-
-                {
-                    label: "场所负责人电话",
-                    prop: "principalPhone",
-                    span: 24,
-                    row: true,
-                    searchSpan: 4,
-                    slot: true
-                },
-                {
-                    label: "场所地址",
-                    prop: "location",
-                    span: 24,
-                    row: true,
-                    searchSpan: 4,
-                    searchLabelWidth: 46,
-                },
-                {
-                    width: 110,
-                    label: "签名",
-                    prop: "signaturePath",
-                    type: "upload",
-                    listType: "picture-img",
-                    span: 24,
-                },
-                {
-                    label: "创建时间",
-                    prop: "createTime",
-                    span: 24,
-                    row: true,
-                    searchSpan: 4,
-                    searchLabelWidth: 46,
-                },
-                ],
+            {
+              label: "所属社区",
+              prop: "communityName",
+              span: 24,
+              row: true,
+              searchSpan: 4,
+              search: true,
             },
-            data: [],
+            {
+              label: "所属网格",
+              prop: "gridName",
+              span: 24,
+              row: true,
+              searchSpan: 4,
+              search: true,
+            },
+            {
+              label: "场所名称",
+              prop: "placeName",
+              span: 24,
+              row: true,
+              searchSpan: 4,
+              search: true,
+            },
+            {
+              label: "场所隐患",
+              prop: "remark",
+              span: 24,
+              row: true,
+              searchSpan: 4,
+            },
 
-            patrolTree: [],
-        }
+            {
+              label: "场所负责人",
+              prop: "principal",
+              span: 24,
+              row: true,
+              searchSpan: 4,
+              search: true,
+            },
+
+            {
+              label: "场所负责人电话",
+              prop: "principalPhone",
+              span: 24,
+              row: true,
+              searchSpan: 4,
+              slot: true
+            },
+            {
+              label: "场所地址",
+              prop: "location",
+              span: 24,
+              row: true,
+              searchSpan: 4,
+              searchLabelWidth: 46,
+            },
+            {
+              width: 110,
+              label: "签名",
+              prop: "signaturePath",
+              type: "upload",
+              listType: "picture-img",
+              span: 24,
+            },
+            {
+              label: "创建时间",
+              prop: "createTime",
+              span: 24,
+              row: true,
+              searchSpan: 4,
+              searchLabelWidth: 46,
+            },
+          ],
+        },
+        data: [],
+
+        patrolTree: [],
+      }
     },
     watch: {
-        "form.articleType": {
-            handler (val) {
-                if (val) {
-                    var videoUrl = this.findObject(this.option.column, "videoUrl")
-                    var content = this.findObject(this.option.column, "content")
-                    if (val.indexOf('ksp') != -1) {
-                        videoUrl.display = true
-                        content.display = false
-                        videoUrl.rules = [{
-                            required: false,
-                            message: "请选择视频",
-                            trigger: "blur",
-                        },]
-                    } else {
-                        videoUrl.display = false
-                        content.display = true
-                        videoUrl.rules = ""
-                    }
-                }
-            },
-            immediate: true,
-        }
+      "form.articleType": {
+        handler(val) {
+          if (val) {
+            var videoUrl = this.findObject(this.option.column, "videoUrl")
+            var content = this.findObject(this.option.column, "content")
+            if (val.indexOf('ksp') != -1) {
+              videoUrl.display = true
+              content.display = false
+              videoUrl.rules = [{
+                required: false,
+                message: "请选择视频",
+                trigger: "blur",
+              }, ]
+            } else {
+              videoUrl.display = false
+              content.display = true
+              videoUrl.rules = ""
+            }
+          }
+        },
+        immediate: true,
+      }
     },
     computed: {
-        ...mapGetters(["permission", "userInfo"]),
-        permissionList () {
-            return {
-                addBtn: this.vaildData(this.permission.article_add, true),
-                viewBtn: this.vaildData(this.permission.article_view, true),
-                delBtn: this.vaildData(this.permission.article_delete, true),
-                editBtn: this.vaildData(this.permission.article_edit, true),
-            }
-        },
-
-        textDispose () {
-            return (row, flag, type) => {
-                if (row[flag] || row[type] == null) {
-                    return row[type]
-                } else {
-                    if (type == 'principalIdCard') {
-                        return row[type].replace(/^(.{6})(?:\d+)(.{4})$/, "$1******$2")
-                    } else {
-                        return row[type].replace(/^(.{3})(?:\d+)(.{4})$/, "$1****$2")
-                    }
-                }
-            }
+      ...mapGetters(["permission", "userInfo"]),
+      permissionList() {
+        return {
+          addBtn: this.vaildData(this.permission.article_add, true),
+          viewBtn: this.vaildData(this.permission.article_view, true),
+          delBtn: this.vaildData(this.permission.article_delete, true),
+          editBtn: this.vaildData(this.permission.article_edit, true),
         }
+      },
+
+      textDispose() {
+        return (row, flag, type) => {
+          if (row[flag] || row[type] == null) {
+            return row[type]
+          } else {
+            if (type == 'principalIdCard') {
+              return row[type].replace(/^(.{6})(?:\d+)(.{4})$/, "$1******$2")
+            } else {
+              return row[type].replace(/^(.{3})(?:\d+)(.{4})$/, "$1****$2")
+            }
+          }
+        }
+      }
     },
     methods: {
-        showStringDispose (row, type) {
-            row[type] = !row[type]
-        },
+      showStringDispose(row, type) {
+        row[type] = !row[type]
+      },
 
-        getDetail (row) {
-            this.isDetail = true
-        },
-        searchReset () {
-            this.query = {}
+      getDetail(row) {
+        this.isDetail = true
+      },
+      searchReset() {
+        this.query = {}
+        this.onLoad(this.page)
+      },
+      searchChange(params, done) {
+        this.query = params
+        this.page.currentPage = 1
+        this.onLoad(this.page, params)
+        done()
+      },
+      selectionChange(list) {
+        this.selectionList = list
+      },
+      selectionClear() {
+        this.selectionList = []
+        this.$refs.crud.toggleSelection()
+      },
+      handleDelete() {
+        if (this.selectionList.length === 0) {
+          this.$message.warning("请选择至少一条数据")
+          return
+        }
+        this.$confirm("确定将选择数据删除?", {
+            confirmButtonText: "确定",
+            cancelButtonText: "取消",
+            type: "warning",
+          })
+          .then(() => {
+            return remove(this.ids)
+          })
+          .then(() => {
             this.onLoad(this.page)
-        },
-        searchChange (params, done) {
-            this.query = params
-            this.page.currentPage = 1
-            this.onLoad(this.page, params)
-            done()
-        },
-        selectionChange (list) {
-            this.selectionList = list
-        },
-        selectionClear () {
-            this.selectionList = []
+            this.$message({
+              type: "success",
+              message: "操作成功!",
+            })
             this.$refs.crud.toggleSelection()
-        },
-        handleDelete () {
-            if (this.selectionList.length === 0) {
-                this.$message.warning("请选择至少一条数据")
-                return
+          })
+      },
+      beforeOpen(done, type) {
+        if (["edit", "view"].includes(type)) {
+          getNotice(this.form.id).then((res) => {
+            let data = res.data.data
+            // data.forEach(item=>{
+            if (data.url.length > 0) {
+              var urls = []
+              var names = data.url.split(",")
+              names.forEach(name => {
+                urls.push(website.minioUrl + name)
+              })
+              data.url = urls.join(",")
             }
-            this.$confirm("确定将选择数据删除?", {
-                confirmButtonText: "确定",
-                cancelButtonText: "取消",
-                type: "warning",
+            data.articleList = JSON.parse(data.articleRange)
+            this.form = data
+          })
+        }
+        // con
+        done()
+      },
+      currentChange(currentPage) {
+        this.page.currentPage = currentPage
+      },
+      sizeChange(pageSize) {
+        this.page.pageSize = pageSize
+      },
+      refreshChange() {
+        this.onLoad(this.page, this.query)
+      },
+      onLoad(page, params = {}) {
+        this.loading = true
+        getList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then((res) => {
+          const data = res.data.data
+          this.page.total = data.total
+          this.data = data.records
+          this.data.forEach(item => {
+            this.$set(item, 'principalPhoneflag', false)
+            if (item.signaturePath.length > 0) {
+              var urls = []
+              var names = item.signaturePath.split(",")
+              names.forEach(name => {
+                urls.push(website.minioUrl + name)
+              })
+              item.signaturePath = urls.join(",")
+            }
+          })
+          this.loading = false
+          this.selectionClear()
+        })
+        getPatrolGroupTree({
+          type: 1,
+          childType: 1
+        }).then((res) => {
+          const data = res.data.data
+          this.patrolTree = data
+          // const column = this.findObject(this.option.column, "articleList")
+          // column.dicData = res.data.data
+          this.loading = false
+        })
+      },
+      updateFb(row) {
+        if (row.publish == "0") {
+          row.publish = "1"
+        } else {
+          row.publish = "0"
+        }
+        if (row.url.length > 0) {
+          var urls = []
+          var split = row.url.split(",")
+          split.forEach(url => {
+            var names = url.split("jczz/")
+            urls.push(names[1])
+          })
+          row.url = urls.join(",")
+        }
+        update(row).then(
+          () => {
+            this.onLoad(this.page)
+            this.$message({
+              type: "success",
+              message: "操作成功!",
             })
-                .then(() => {
-                    return remove(this.ids)
-                })
-                .then(() => {
-                    this.onLoad(this.page)
-                    this.$message({
-                        type: "success",
-                        message: "操作成功!",
-                    })
-                    this.$refs.crud.toggleSelection()
-                })
-        },
-        beforeOpen (done, type) {
-            if (["edit", "view"].includes(type)) {
-                getNotice(this.form.id).then((res) => {
-                    let data = res.data.data
-                    // data.forEach(item=>{
-                    if (data.url.length > 0) {
-                        var urls = []
-                        var names = data.url.split(",")
-                        names.forEach(name => {
-                            urls.push(website.minioUrl + name)
-                        })
-                        data.url = urls.join(",")
-                    }
-                    data.articleList = JSON.parse(data.articleRange)
-                    this.form = data
-                })
-            }
-            // con
             done()
-        },
-        currentChange (currentPage) {
-            this.page.currentPage = currentPage
-        },
-        sizeChange (pageSize) {
-            this.page.pageSize = pageSize
-        },
-        refreshChange () {
-            this.onLoad(this.page, this.query)
-        },
-        onLoad (page, params = {}) {
-            this.loading = true
-            getList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then((res) => {
-                const data = res.data.data
-                this.page.total = data.total
-                this.data = data.records
-                this.data.forEach(item => {
-                    this.$set(item, 'principalPhoneflag', false)
-                    if (item.signaturePath.length > 0) {
-                        var urls = []
-                        var names = item.signaturePath.split(",")
-                        names.forEach(name => {
-                            urls.push(website.minioUrl + name)
-                        })
-                        item.signaturePath = urls.join(",")
-                    }
-                })
-                this.loading = false
-                this.selectionClear()
-            })
-            getPatrolGroupTree({}).then((res) => {
-                const data = res.data.data
-                this.patrolTree = data
-                // const column = this.findObject(this.option.column, "articleList")
-                // column.dicData = res.data.data
-                this.loading = false
-            })
-        },
-        updateFb (row) {
-            if (row.publish == "0") {
-                row.publish = "1"
-            } else {
-                row.publish = "0"
-            }
-            if (row.url.length > 0) {
-                var urls = []
-                var split = row.url.split(",")
-                split.forEach(url => {
-                    var names = url.split("jczz/")
-                    urls.push(names[1])
-                })
-                row.url = urls.join(",")
-            }
-            update(row).then(
-                () => {
-                    this.onLoad(this.page)
-                    this.$message({
-                        type: "success",
-                        message: "操作成功!",
-                    })
-                    done()
-                },
-                (error) => {
-                    window.console.log(error)
-                    loading()
-                }
-            )
-        },
+          },
+          (error) => {
+            window.console.log(error)
+            loading()
+          }
+        )
+      },
 
     },
-}
+  }
 </script>
 
 <style>
-.avue-upload__icon {
+  .avue-upload__icon {
     line-height: 6;
-}
-</style>
\ No newline at end of file
+  }
+</style>
diff --git a/src/views/place/components/baseAllInfo.vue b/src/views/place/components/baseAllInfo.vue
index 30fcea8..558c9d1 100644
--- a/src/views/place/components/baseAllInfo.vue
+++ b/src/views/place/components/baseAllInfo.vue
@@ -4,11 +4,19 @@
       <div class="content-box">
         <box-title class="m10" :classVal="9" :title="'基本信息'"></box-title>
         <avue-form v-if="baseShow" ref="baseForm" :option="option" v-model="form">
+          <template slot-scope="{ row, size, index }" slot="houseCodeBinds">
+            <el-select v-model="form.houseCodeBinds" filterable remote multiple :remote-method="onRemoteMethod"
+              @change="onSelectChange" placeholder="请选择标准地址" reserve-keyword>
+              <el-option v-for="item in standardAddressList" :key="item.addressCode" :label="item.addressName"
+                :value="item.addressCode">
+              </el-option>
+            </el-select>
+          </template>
         </avue-form>
 
 
         <box-title class="m10" :classVal="9" :title="'房东信息'"></box-title>
-        <avue-form v-if="restShow" ref="restForm" :option="houseOwnerOption" v-model="form"></avue-form>
+        <avue-form v-if="restShow" ref="restForm" :option="houseOwnerOption" v-model="placeForm"></avue-form>
 
         <box-title class="m10" :classVal="9" :title="'其他信息'"></box-title>
         <avue-form v-if="restShow" ref="restForm" :option="optionDetail" v-model="placeForm"></avue-form>
@@ -40,6 +48,7 @@
     getHoldList,
     update,
     updatePlaceExt,
+    getPlaceAddressList
   } from "@/api/place/place"
   import {
     getPlaceList
@@ -78,6 +87,7 @@
               span: 12,
               label: "场所名称",
               prop: "placeName",
+              labelWidth: 120,
               rules: [{
                 required: true,
                 message: "请输入场所名称",
@@ -90,6 +100,7 @@
             {
               label: "负责人",
               prop: "principal",
+              labelWidth: 120,
               rules: [{
                 required: false,
                 message: "请输入负责人",
@@ -101,6 +112,7 @@
               width: 96,
               label: "手机号码",
               prop: "principalPhone",
+              labelWidth: 120,
               search: true,
               searchSpan: 4,
               slot: true,
@@ -114,6 +126,7 @@
               width: 120,
               overHidden: true,
               label: "身份证号",
+              labelWidth: 120,
               prop: "principalIdCard",
               search: true,
               searchSpan: 4,
@@ -129,6 +142,7 @@
               hide: true,
               parent: false,
               label: "所属社区",
+              labelWidth: 120,
               prop: "neiCode",
               search: false,
               type: "tree",
@@ -152,6 +166,7 @@
               label: "所属网格",
               prop: "gridCode",
               type: "tree",
+              labelWidth: 120,
               cell: true,
               props: {
                 label: "gridName",
@@ -170,6 +185,7 @@
               span: 7,
               label: "场所标签",
               prop: "label",
+              labelWidth: 120,
               type: "select",
               dicUrl: "/api/blade-category/category/getCategory?level=2",
               cascader: ["smallLabel"],
@@ -205,6 +221,7 @@
               label: "标签颜色",
               prop: "color",
               type: "select",
+              labelWidth: 120,
               dicData: [{
                   label: "绿",
                   value: "green",
@@ -228,6 +245,7 @@
               span: 12,
               label: "九小场所",
               prop: "isNine",
+              labelWidth: 120,
               type: "select",
               dicData: [{
                   label: "是",
@@ -249,6 +267,7 @@
               span: 12,
               label: "九小分类",
               prop: "nineType",
+              labelWidth: 120,
               type: "select",
               display: false,
               dicUrl: "/api/blade-system/dict-biz/dictionary?code=nineType",
@@ -263,6 +282,7 @@
               span: 12,
               label: "阵地",
               prop: "isFront",
+              labelWidth: 120,
               type: "select",
               dicData: [{
                   label: "是",
@@ -285,6 +305,7 @@
               label: "阵地类型",
               prop: "frontType",
               type: "select",
+              labelWidth: 120,
               display: false,
               row: true,
               dicUrl: "/api/blade-system/dict-biz/dictionary?code=frontType",
@@ -296,10 +317,51 @@
               },
             },
             {
+              span: 12,
+              label: "三级消防单位",
+              prop: "threeFireProtection",
+              labelWidth: 120,
+              type: "select",
+              dicData: [{
+                  label: "是",
+                  value: 1,
+                },
+                {
+                  label: "否",
+                  value: 2,
+                }
+              ],
+              hide: true,
+              rules: [{
+                required: false,
+                message: "请选择三级消防单位",
+                trigger: "blur",
+              }],
+            },
+
+            {
+              span: 12,
+              label: "无炸类型",
+              prop: "noExplosionCategory",
+              type: "select",
+              labelWidth: 120,
+              display: true,
+              row: true,
+              dicUrl: "/api/blade-system/dict-biz/dictionary?code=noExplosionCategory",
+              dataType: "number",
+              hide: true,
+              props: {
+                label: "dictValue",
+                value: "dictKey",
+              },
+            },
+
+            {
               label: "场所照片",
               prop: "imageUrls",
               width: 80,
               type: "upload",
+              labelWidth: 120,
               listType: "picture-card",
               dataType: "string",
               multiple: true,
@@ -309,7 +371,7 @@
                 name: "name",
                 url: "link",
               },
-              span: 12,
+              span: 24,
             },
             {
               width: 160,
@@ -319,7 +381,8 @@
               prop: "location",
               type: "map",
               dataType: "string",
-              span: 12,
+              labelWidth: 120,
+              span: 24,
               value: [117.96646, 28.431002, ""],
               cascader: ['houseCodeBinds'],
               rules: [{
@@ -332,41 +395,55 @@
               width: 160,
               overHidden: true,
               display: false,
+              labelWidth: 120,
               hide: true,
               label: "地址",
               prop: "addressName",
               span: 12
             },
 
+            // {
+            //   width: 160,
+            //   overHidden: true,
+            //   slot: true,
+            //   label: "标准地址",
+            //   prop: "houseCodeBinds",
+            //   span: 24,
+            //   type: 'select',
+            //   labelWidth:120,
+            //   dataType: "object",
+            //   remote: true,
+            //   multiple: true,
+            //   hide: true,
+            //   display: false,
+            //   filterable:true,
+            //   dicUrl: `/api/blade-doorplateAddress/doorplateAddress/getPlaceList`,
+            //   props: {
+            //     label: 'addressName',
+            //     value: 'addressCode',
+            //   },
+            //   dicData: [],
+            //   rules: [{
+            //     required: false,
+            //     message: "请选择标准地址",
+            //     trigger: "blur",
+            //   }, ]
+            // },
             {
-              width: 160,
-              overHidden: true,
+              span: 24,
+              hide: true,
+              prop: "houseCodeBinds",
               slot: true,
               label: "标准地址",
-              prop: "houseCodeBinds",
-              span: 24,
-              type: 'tree',
-              dataType: "object",
-              remote: true,
-              multiple: true,
-              hide: true,
-              display: false,
-              dicUrl: `/api/blade-doorplateAddress/doorplateAddress/getPlaceList?addressName={{addressName}}`,
-              props: {
-                label: 'addressName',
-                value: 'addressCode',
-              },
-              dicData: [],
-              rules: [{
-                required: false,
-                message: "请选择地址",
-                trigger: "blur",
-              }, ],
+              labelWidth: 120,
+
             },
+
             {
               label: "备注",
               prop: "remark",
               type: 'textarea',
+              labelWidth: 120,
               hide: true,
               span: 24,
               rules: [{
@@ -460,35 +537,6 @@
               searchSpan: 4,
               search: true,
             },
-
-            {
-              labelWidth: 100,
-              label: "电话号码",
-              prop: "telephone",
-              search: true,
-              searchSpan: 4,
-              slot: true,
-              overHidden: true,
-              rules: [{
-                validator: validatorPhone,
-                trigger: "blur",
-              }, ],
-            },
-
-            {
-              labelWidth: 100,
-              label: "身份证号",
-              prop: "idCard",
-            },
-
-            {
-              labelWidth: 100,
-              label: "现居住地",
-              prop: "tempAddress",
-              searchSpan: 4,
-              search: true,
-            },
-
             {
               labelWidth: 100,
               label: "性别",
@@ -508,7 +556,6 @@
                 }
               ],
             },
-
             {
               labelWidth: 100,
               span: 12,
@@ -523,7 +570,33 @@
                 value: "dictKey",
               },
             },
+            {
+              labelWidth: 100,
+              label: "身份证号",
+              prop: "idCard",
+            },
 
+            {
+              labelWidth: 100,
+              label: "电话号码",
+              prop: "telephone",
+              search: true,
+              searchSpan: 4,
+              slot: true,
+              overHidden: true,
+              rules: [{
+                validator: validatorPhone,
+                trigger: "blur",
+              }, ],
+            },
+
+            {
+              labelWidth: 100,
+              label: "现居住地",
+              prop: "tempAddress",
+              searchSpan: 4,
+              search: true,
+            },
             {
               labelWidth: 100,
               label: "岗位",
@@ -532,11 +605,63 @@
             },
 
             {
+              label: "从业人员照片",
+              prop: "employerImg",
+              labelWidth: 100,
+              type: "upload",
+              listType: "picture-card",
+              dataType: "string",
+              multiple: true,
+              action: "/api/blade-resource/oss/endpoint/put-file",
+              propsHttp: {
+                res: "data",
+                name: "name",
+                url: "link",
+              },
+              span: 24,
+              hide: true
+            },
+            {
+              label: "入职时间",
+              labelWidth: 100,
+              hide: true,
+              row: true,
+              prop: "resignationTime",
+              type: "datetime",
+              format: "yyyy-MM-dd",
+              valueFormat: "yyyy-MM-dd",
+              // format: "yyyy-MM-dd hh:mm:ss",
+              // valueFormat: "yyyy-MM-dd hh:mm:ss",
+              rules: [{
+                required: false,
+                message: "请选择入职时间",
+                trigger: "blur",
+              }]
+            },
+            {
+              label: "离职时间",
+              labelWidth: 100,
+              hide: true,
+              row: true,
+              prop: "employmentTime",
+              type: "datetime",
+              format: "yyyy-MM-dd",
+              valueFormat: "yyyy-MM-dd",
+              // format: "yyyy-MM-dd hh:mm:ss",
+              // valueFormat: "yyyy-MM-dd hh:mm:ss",
+              rules: [{
+                required: false,
+                message: "请选择离职时间",
+                trigger: "blur",
+              }]
+            },
+            {
               labelWidth: 100,
               label: "状态",
               prop: "resignationFlag",
               // hide: true
               type: "select",
+              display: false,
               dicData: [{
                   label: "在职",
                   value: 1
@@ -579,7 +704,7 @@
               slot: true,
               overHidden: true,
               rules: [{
-                validator: validatorPhone,
+                // validator: validatorPhone,
                 trigger: "blur",
               }, ],
             },
@@ -596,22 +721,6 @@
                 trigger: "blur",
               }, ],
             },
-            {
-              width: 96,
-              label: "微信号",
-              prop: "legalTel",
-              search: true,
-              searchSpan: 4,
-              slot: true,
-              overHidden: true,
-              rules: [{
-                validator: validatorPhone,
-                trigger: "blur",
-              }, ],
-            },
-
-
-
           ],
         },
         userOption: {
@@ -650,6 +759,10 @@
 
           ],
         },
+
+        standardAddressList: [], //标准地址数据
+        standardAddress: "",
+        standardAddressSearchKey: ""
       }
     },
 
@@ -729,6 +842,7 @@
           }), getPlaceList()])
           .then(
             that.$axios.spread(function(baseInfo, restInfo) {
+              console.log("houseCodeBinds===>", baseInfo.data.data.houseCodeBinds)
               that.form = baseInfo.data.data
               that.form.addressName = that.form.location;
               that.form.location = [
@@ -736,6 +850,10 @@
                 that.form.lat,
                 that.form.location,
               ].join(",")
+              if (baseInfo.data.data.houseCodeBinds) {
+                that.standardAddressList = baseInfo.data.data.houseBindList;
+                that.form.houseCodeBinds = baseInfo.data.data.houseCodeBinds.split(",")
+              }
 
               if (that.form.imageUrls && that.form.imageUrls.length) {
                 that.form.imageUrls = that.form.imageUrls
@@ -765,6 +883,9 @@
               that.baseShow = true
               const data = restInfo.data.data
 
+
+
+
               if (data) {
                 let imageUrls = data.imageUrls
                 let planImageUrls = data.planImageUrls
@@ -789,12 +910,16 @@
                   ...data,
                   imageUrls,
                   planImageUrls,
+
+
                 }
               }
 
               that.restShow = true
             })
           )
+
+        that.getPlaceAddressListRequest()
       },
 
       locationDispose(data) {
@@ -936,7 +1061,7 @@
           this.form.houseCodeBinds = this.form.houseCodeBinds.join(",")
         }
 
-
+        this.form.placeExtEntity = null
         this.$refs.baseForm.validate((valid, done, msg) => {
           if (valid) {
             that.$axios
@@ -988,6 +1113,27 @@
         this.restShow = false
         this.roleBox = false
       },
+
+      getPlaceAddressListRequest(query) {
+        getPlaceAddressList({
+          addressName: query
+        }).then(res => {
+          this.standardAddressList = res.data.data;
+        })
+      },
+
+      onSelectChange(e) {
+        console.log("selectChange===>", e);
+        // this.getPlaceAddressListRequest()
+      },
+
+      onRemoteMethod(query) {
+        console.log("remote===>", query)
+        this.getPlaceAddressListRequest(query)
+      },
+
+
+
     },
   }
 </script>
@@ -1015,4 +1161,4 @@
       justify-content: center;
     }
   }
-</style>
\ No newline at end of file
+</style>
diff --git a/src/views/place/index.vue b/src/views/place/index.vue
index bc8687b..60db9df 100644
--- a/src/views/place/index.vue
+++ b/src/views/place/index.vue
@@ -18,17 +18,19 @@
             </template>
 
             <template slot-scope="{row, size}" slot="confirmFlag">
-                <el-tag :size="size" :type="showConfirmFlag(row.confirmFlag).type">{{ showConfirmFlag(row.confirmFlag).text
-                }}</el-tag>
+                <el-tag :size="size" :type="showConfirmFlag(row.confirmFlag).type">{{
+            showConfirmFlag(row.confirmFlag).text
+        }}</el-tag>
             </template>
 
             <template slot-scope="{row, size}" slot="source">
                 <el-tag :size="size" :type="showSource(row.source).type">{{ showSource(row.source).text
-                }}</el-tag>
+                    }}</el-tag>
             </template>
 
             <template slot="menuLeft">
-                <el-button size="small" icon="el-icon-delete" plain v-if="permission.place_delete" @click="handleDelete">删 除
+                <el-button size="small" icon="el-icon-delete" plain v-if="permission.place_delete"
+                    @click="handleDelete">删 除
                 </el-button>
             </template>
 
@@ -82,7 +84,7 @@
 import baseAllInfo from './components/baseAllInfo'
 
 export default {
-    data () {
+    data() {
 
         //手机号格式校验
         let validatorPhone = function (rule, value, callback) {
@@ -407,6 +409,28 @@
                         },
                     },
                     {
+                        span: 12,
+                        label: "三级消防单位",
+                        prop: "threeFireProtection",
+                        labelWidth: 120,
+                        type: "select",
+                        dicData: [{
+                            label: "是",
+                            value: 1,
+                        },
+                        {
+                            label: "否",
+                            value: 2,
+                        }
+                        ],
+                        hide: true,
+                        rules: [{
+                            required: false,
+                            message: "请选择三级消防单位",
+                            trigger: "blur",
+                        },],
+                    },
+                    {
                         width: 110,
                         label: "场所照片",
                         prop: "imageUrls",
@@ -420,7 +444,7 @@
                             name: 'name',
                             url: "link",
                         },
-                        span: 12,
+                        span: 24,
                     },
                     {
                         width: 156,
@@ -431,7 +455,7 @@
                         type: 'map',
                         dataType: "string",
                         minWidth: 250,
-                        span: 12,
+                        span: 24,
                         value: [117.966460, 28.431002, ""],
                         rules: [
                             {
@@ -525,7 +549,7 @@
         }
     },
 
-    provide () {
+    provide() {
         return {
             placeElement: this,
         }
@@ -535,7 +559,7 @@
 
     watch: {
         'form.isNine': {
-            handler (newData) {
+            handler(newData) {
                 if (newData) {
                     let nineTypeColumn = this.findObject(
                         this.option.column,
@@ -551,7 +575,7 @@
             },
         },
         'form.isFront': {
-            handler (newData) {
+            handler(newData) {
                 if (newData) {
                     let frontTypeColumn = this.findObject(
                         this.option.column,
@@ -570,7 +594,7 @@
 
     computed: {
         ...mapGetters(["permission", "userInfo"]),
-        permissionList () {
+        permissionList() {
             return {
                 addBtn: this.vaildData(this.permission.place_add, true),
                 viewBtn: this.vaildData(this.permission.place_view, true),
@@ -578,7 +602,7 @@
                 editBtn: this.vaildData(this.permission.place_edit, true),
             }
         },
-        ids () {
+        ids() {
             let ids = []
             this.selectionList.forEach((ele) => {
                 ids.push(ele.id)
@@ -586,7 +610,7 @@
             return ids.join(",")
         },
 
-        showConfirmFlag () {
+        showConfirmFlag() {
             return (data) => {
                 let tags = {
                     text: '',
@@ -618,7 +642,7 @@
             }
         },
 
-        showSource () {
+        showSource() {
             return (data) => {
                 let tags = {
                     text: '',
@@ -641,7 +665,7 @@
             }
         },
 
-        showLocation () {
+        showLocation() {
             return (data) => {
                 if (data != null && data.indexOf(',') != -1) {
                     data = data.split(',')
@@ -653,7 +677,7 @@
             }
         },
 
-        decimalProcessing () {
+        decimalProcessing() {
             return (data) => {
                 if (data != null) {
                     return Number(data).toFixed(6)
@@ -663,7 +687,7 @@
             }
         },
 
-        textDispose () {
+        textDispose() {
             return (row, flag, type) => {
                 if (row[flag] || row[type] == null) {
                     return row[type]
@@ -678,11 +702,11 @@
         }
     },
     methods: {
-        showStringDispose (row, type) {
+        showStringDispose(row, type) {
             row[type] = !row[type]
         },
 
-        locationDispose (data) {
+        locationDispose(data) {
             data = data.split(',')
 
             return {
@@ -692,16 +716,16 @@
             }
         },
 
-        auditCur (row) {
+        auditCur(row) {
             this.curAuditRow = row
             this.auditBasePopup = true
         },
 
-        ManageTenants (item) {
+        ManageTenants(item) {
             this.$refs.BaseAllInfo.initOpen(item)
         },
 
-        rowSave (row, done, loading) {
+        rowSave(row, done, loading) {
             if (row.imageUrls.length > 0) {
                 var urls = []
                 var split = row.imageUrls.split(",").filter(item => item != '')
@@ -740,7 +764,7 @@
             )
         },
 
-        rowUpdate (row, index, done, loading) {
+        rowUpdate(row, index, done, loading) {
             if (row.imageUrls.length > 0) {
                 var urls = []
                 var split = row.imageUrls.split(",").filter(item => item != '')
@@ -779,7 +803,7 @@
             )
         },
 
-        rowDel (row) {
+        rowDel(row) {
             this.$confirm("确定将选择数据删除?", {
                 confirmButtonText: "确定",
                 cancelButtonText: "取消",
@@ -798,26 +822,26 @@
                 })
         },
 
-        searchReset () {
+        searchReset() {
             this.query = {}
             this.onLoad(this.page)
         },
-        searchChange (params, done) {
+        searchChange(params, done) {
             this.query = params
             this.page.currentPage = 1
             this.onLoad(this.page, params)
             done()
         },
-        selectionChange (list) {
+        selectionChange(list) {
             this.selectionList = list
         },
-        selectionClear () {
+        selectionClear() {
             this.selectionList = []
             this.$nextTick(() => {
                 this.$refs.crud && this.$refs.crud.toggleSelection()
             })
         },
-        handleDelete () {
+        handleDelete() {
             if (this.selectionList.length === 0) {
                 this.$message.warning("请选择至少一条数据")
                 return
@@ -840,7 +864,7 @@
                 })
         },
 
-        beforeOpen (done, type) {
+        beforeOpen(done, type) {
             if (["edit", "view"].includes(type)) {
                 getPlace(this.form.id).then((res) => {
                     this.form = res.data.data
@@ -872,16 +896,16 @@
             }
         },
 
-        currentChange (currentPage) {
+        currentChange(currentPage) {
             this.page.currentPage = currentPage
         },
-        sizeChange (pageSize) {
+        sizeChange(pageSize) {
             this.page.pageSize = pageSize
         },
-        refreshChange () {
+        refreshChange() {
             this.onLoad(this.page, this.query)
         },
-        onLoad (page, params = {}) {
+        onLoad(page, params = {}) {
             this.loading = true
 
             getList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then((res) => {
diff --git a/src/views/place/practitioner.vue b/src/views/place/practitioner.vue
index 085d4e6..ae2fb99 100644
--- a/src/views/place/practitioner.vue
+++ b/src/views/place/practitioner.vue
@@ -157,7 +157,7 @@
             },
             {
               label: "女",
-              value: 2
+              value: 0
             }
           ]
         },
@@ -387,7 +387,7 @@
             text: '男',
             type: 'primary'
           }
-        } else if (data == 2) {
+        } else if (data == 0) {
           tags = {
             text: '女',
             type: 'primary'
diff --git a/src/views/place/residencePermitApply.vue b/src/views/place/residencePermitApply.vue
index bc67b39..dc5e1cc 100644
--- a/src/views/place/residencePermitApply.vue
+++ b/src/views/place/residencePermitApply.vue
@@ -25,7 +25,7 @@
 
       <template slot-scope="{row, size}" slot="minors">
         <el-tag :size="size">{{
-      row.minors == 2?'是':row.minors==1?'否':''
+      row.minors == 2?'是':'否'
     }}</el-tag>
       </template>
 
@@ -140,7 +140,7 @@
           dialogWidth: 950,
           tip: false,
           border: true,
-          stripe:true,
+          stripe: true,
           index: true,
           viewBtn: true,
           addBtn: false,
@@ -153,7 +153,7 @@
           column: [{
               width: 110,
               span: 12,
-              label: "名称",
+              label: "姓名",
               prop: "name",
               searchSpan: 4,
               searchLabelWidth: 60,
@@ -161,7 +161,7 @@
               align: 'center',
               labelWidth: 110,
             },
-             {
+            {
               width: 120,
               span: 12,
               label: "联系电话",
@@ -177,7 +177,7 @@
               slot: true,
               labelWidth: 110,
             },
-            
+
             {
               width: 160,
               span: 12,
@@ -196,7 +196,7 @@
               prop: "address",
               align: 'center',
               labelWidth: 110,
-              overHidden:true,
+              overHidden: true,
             },
             {
               width: 110,
@@ -240,12 +240,11 @@
               search: true,
               prop: "minors",
               type: "select",
-              align:"center",
-              dicData: [
-              {
+              align: "center",
+              dicData: [{
                   label: "全部",
                   value: ""
-                },{
+                }, {
                   label: "是",
                   value: 2
                 },
@@ -268,10 +267,10 @@
                 value: 1
               }, {
                 label: '通过',
-                value: 3
+                value: 2
               }, {
                 label: '驳回',
-                value: 4
+                value: 3
               }],
               align: 'center',
               labelWidth: 110,
@@ -322,12 +321,12 @@
               type: 'warning',
               text: '待审核'
             }
-          } else if (data == 3) {
+          } else if (data == 2) {
             tags = {
               type: 'danger',
               text: '通过'
             }
-          } else if (data == 4) {
+          } else if (data == 3) {
             tags = {
               type: 'warning',
               text: '驳回'
diff --git a/src/views/property/components/done.vue b/src/views/property/components/done.vue
index 0d4451d..d5901aa 100644
--- a/src/views/property/components/done.vue
+++ b/src/views/property/components/done.vue
@@ -1,236 +1,279 @@
 <template>
-    <div>
-        <avue-crud :option="option" :table-loading="loading" :data="data" ref="crud" v-model="form" :page.sync="page"
-            @search-change="searchChange" @search-reset="searchReset" @selection-change="selectionChange"
-            @current-change="currentChange" @size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad">
-            <template slot-scope="{row, size, index}" slot="menu">
-                <el-button type="text" :size="size" icon="el-icon-info" v-if="permission.property_todo_detail"
-                    @click.stop="handleDetail(row)">详情
-                </el-button>
-                <el-button type="text" :size="size" icon="el-icon-search" v-if="permission.property_todo_follow"
-                    @click.stop="handleImage(row, index)">流程图
-                </el-button>
-            </template>
-            <template slot-scope="{row, size}" slot="processDefinitionVersion">
-                <el-tag :size="size">v{{ row.processDefinitionVersion }}</el-tag>
-            </template>
-            <template slot-scope="{row, size}" slot="linkPhone">
-                <el-button :size="size" type="text" @click="showStringDispose(row, 'linkPhoneflag')"
-                    v-text="textDispose(row, 'linkPhoneflag', 'linkPhone')">
-                </el-button>
-            </template>
-        </avue-crud>
-        <flow-design is-dialog :is-display.sync="flowBox" :process-instance-id="processInstanceId"></flow-design>
-    </div>
+  <div>
+    <avue-crud :option="option" :table-loading="loading" :data="data" ref="crud" v-model="form" :page.sync="page"
+      @search-change="searchChange" @search-reset="searchReset" @selection-change="selectionChange"
+      @current-change="currentChange" @size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad">
+      <template slot-scope="{row, size, index}" slot="menu">
+        <el-button type="text" :size="size" icon="el-icon-info" v-if="permission.property_todo_detail"
+          @click.stop="handleDetail(row)">详情
+        </el-button>
+        <el-button type="text" :size="size" icon="el-icon-search" v-if="permission.property_todo_follow"
+          @click.stop="handleImage(row, index)">流程图
+        </el-button>
+      </template>
+      <template slot-scope="{row, size}" slot="processDefinitionVersion">
+        <el-tag :size="size">v{{ row.processDefinitionVersion }}</el-tag>
+      </template>
+      <template slot-scope="{row, size}" slot="linkPhone">
+        <el-button :size="size" type="text" @click="showStringDispose(row, 'linkPhoneflag')"
+          v-text="textDispose(row, 'linkPhoneflag', 'linkPhone')">
+        </el-button>
+      </template>
+    </avue-crud>
+    <flow-design is-dialog :is-display.sync="flowBox" :process-instance-id="processInstanceId"></flow-design>
+  </div>
 </template>
 
 <script>
-import {
+  import {
     mapGetters
-} from "vuex"
-import {
+  } from "vuex"
+  import {
     doneList
-} from "@/api/work/work"
-import {
+  } from "@/api/work/work"
+  import {
     flowCategory,
     flowRoute
-} from "@/util/flow"
+  } from "@/util/flow"
 
-export default {
-    data () {
-        return {
-            form: {},
-            selectionId: '',
-            selectionList: [],
-            query: {},
-            loading: true,
-            page: {
-                pageSize: 10,
-                currentPage: 1,
-                total: 0
-            },
-            processInstanceId: '',
-            flowBox: false,
-            workBox: false,
-            option: {
-                labelWidth: 120,
-                searchLabelWidth: 96,
-                searchShow: true,
-                searchMenuSpan: 3,
-                menuWidth: 140,
+  export default {
+    data() {
+      return {
+        datetime: "",
+        form: {},
+        selectionId: '',
+        selectionList: [],
+        query: {},
+        loading: true,
+        page: {
+          pageSize: 10,
+          currentPage: 1,
+          total: 0
+        },
+        processInstanceId: '',
+        flowBox: false,
+        workBox: false,
+        option: {
+          labelWidth: 120,
+          searchLabelWidth: 96,
+          searchShow: true,
+          searchMenuSpan: 3,
+          menuWidth: 140,
 
-                height: 'auto',
-                calcHeight: 30,
-                tip: false,
-                border: true,
-                index: true,
-                // selection: true,
-                editBtn: false,
-                addBtn: false,
-                viewBtn: false,
-                delBtn: false,
-                columnBtn: false,
-                dialogWidth: 900,
-                dialogClickModal: false,
-                header: false,
-                column: [
-                    {
-                        label: "流程分类",
-                        type: "select",
-                        row: true,
-                        dicUrl: "/api/blade-system/dict/dictionary?code=flow",
-                        props: {
-                            label: "dictValue",
-                            value: "dictKey"
-                        },
-                        dataType: "number",
-                        slot: true,
-                        prop: "category",
-                        // search: true,
-                        hide: true,
-                        width: 100,
-                    },
-                    {
-                        width: 100,
-                        label: '申请类型',
-                        prop: 'categoryName',
-                        // search: true,
-                    }, {
-                        width: 220,
-                        overHidden: true,
-                        label: "小区",
-                        prop: "districtId",
-                        searchSpan: 5,
-                        // search: true,
-                        type: 'tree',
-                        dicUrl: `/api/blade-district/district/getDistrictTree`,
-                        props: {
-                            label: "name",
-                            value: "id"
-                        },
-                        defaultExpandedKeys: ["361102003"],
-                        span: 12,
-                    }, {
-                        width: 110,
-                        label: '联系人',
-                        prop: 'linkman',
-                        // search: true,
-                    }, {
-                        width: 120,
-                        label: '联系电话',
-                        prop: 'linkPhone',
-                        // search: true,
-                        slot: true
-                    }, {
-                        label: '项目名称',
-                        prop: 'name',
-                        // search: true,
-                    },
-                    {
-                        label: '当前步骤',
-                        prop: 'taskName',
-                    },
-                    // {
-                    //     label: '流程版本',
-                    //     prop: 'processDefinitionVersion',
-                    //     slot: true,
-                    //     width: 80,
-                    // },
-                    {
-                        width: 144,
-                        label: '申请时间',
-                        prop: 'createTime',
-                    },
-                ]
+          height: 'auto',
+          calcHeight: 30,
+          tip: false,
+          border: true,
+          index: true,
+          // selection: true,
+          editBtn: false,
+          addBtn: false,
+          viewBtn: false,
+          delBtn: false,
+          columnBtn: false,
+          dialogWidth: 900,
+          dialogClickModal: false,
+          header: false,
+          column: [{
+              label: "流程分类",
+              type: "select",
+              row: true,
+              dicUrl: "/api/blade-system/dict/dictionary?code=flow",
+              props: {
+                label: "dictValue",
+                value: "dictKey"
+              },
+              dataType: "number",
+              slot: true,
+              prop: "category",
+              // search: true,
+              hide: true,
+              width: 100,
             },
-            data: []
-        }
+            {
+              width: 100,
+              label: '申请类型',
+              prop: 'categoryName',
+              // search: true,
+            }, {
+              width: 220,
+              overHidden: true,
+              label: "小区",
+              prop: "districtId",
+              searchSpan: 5,
+              // search: true,
+              type: 'tree',
+              dicUrl: `/api/blade-district/district/getDistrictTree`,
+              props: {
+                label: "name",
+                value: "id"
+              },
+              defaultExpandedKeys: ["361102003"],
+              span: 12,
+            },
+            {
+              width: 110,
+              label: '小区名称',
+              prop: 'districtName',
+              search: true,
+              hide: true,
+            }, {
+              label: '项目名称',
+              prop: 'name',
+              search: true,
+            },
+            {
+              label: "申请时间",
+              prop: "dateTime",
+              type: "datetimerange",
+              defaultTime: ['00:00:00', '23:59:59'],
+              format: 'yyyy-MM-dd HH:mm:ss',
+              valueFormat: 'yyyy-MM-dd HH:mm:ss',
+              startPlaceholder: '开始范围自定义',
+              endPlaceholder: '结束范围自定义',
+              searchSpan: 5,
+              searchRange: true,
+              hide: true,
+              addDisplay: false,
+              editDisplay: false,
+              viewDisplay: false,
+              search: true,
+              rules: [{
+                required: true,
+                message: "请选择申请时间",
+                trigger: "blur",
+              }, ],
+            }, {
+              width: 110,
+              label: '联系人',
+              prop: 'linkman',
+              // search: true,
+            }, {
+              width: 120,
+              label: '联系电话',
+              prop: 'linkPhone',
+              // search: true,
+              slot: true
+            }, {
+              label: '项目名称',
+              prop: 'name',
+              // search: true,
+            },
+            {
+              label: '当前步骤',
+              prop: 'taskName',
+            },
+            // {
+            //     label: '流程版本',
+            //     prop: 'processDefinitionVersion',
+            //     slot: true,
+            //     width: 80,
+            // },
+            {
+              width: 144,
+              label: '申请时间',
+              prop: 'createTime',
+            },
+          ]
+        },
+        data: []
+      }
     },
     computed: {
-        ...mapGetters(["permission", "flowRoutes"]),
-        ids () {
-            let ids = []
-            this.selectionList.forEach(ele => {
-                ids.push(ele.id)
-            })
-            return ids.join(",")
-        },
-        textDispose () {
-            return (row, flag, type) => {
-                if (row[flag] || row[type] == null) {
-                    return row[type]
-                } else {
-                    if (type == 'principalIdCard') {
-                        return row[type].replace(/^(.{6})(?:\d+)(.{4})$/, "$1******$2")
-                    } else {
-                        return row[type].replace(/^(.{3})(?:\d+)(.{4})$/, "$1****$2")
-                    }
-                }
+      ...mapGetters(["permission", "flowRoutes"]),
+      ids() {
+        let ids = []
+        this.selectionList.forEach(ele => {
+          ids.push(ele.id)
+        })
+        return ids.join(",")
+      },
+      textDispose() {
+        return (row, flag, type) => {
+          if (row[flag] || row[type] == null) {
+            return row[type]
+          } else {
+            if (type == 'principalIdCard') {
+              return row[type].replace(/^(.{6})(?:\d+)(.{4})$/, "$1******$2")
+            } else {
+              return row[type].replace(/^(.{3})(?:\d+)(.{4})$/, "$1****$2")
             }
+          }
         }
+      }
     },
     methods: {
-        showStringDispose (row, type) {
-            row[type] = !row[type]
-        },
+      showStringDispose(row, type) {
+        row[type] = !row[type]
+      },
 
-        searchReset () {
-            this.query = {}
-            this.onLoad(this.page)
-        },
-        searchChange (params, done) {
-            this.query = params
-            this.page.currentPage = 1
-            this.onLoad(this.page, params)
-            done()
-        },
-        selectionChange (list) {
-            this.selectionList = list
-        },
-        selectionClear () {
-            this.selectionList = []
-            this.$refs.crud.toggleSelection()
-        },
-        handleDetail (row) {
-            this.$router.push({
-                path: `/property/process/${flowRoute(this.flowRoutes, row.category)}/detail/${row.processInstanceId}/${row.businessId}`
+      searchReset() {
+        this.query = {}
+        this.onLoad(this.page)
+      },
+      searchChange(params, done) {
+        this.query = params
+        this.page.currentPage = 1
+        this.onLoad(this.page, params)
+        done()
+      },
+      selectionChange(list) {
+        this.selectionList = list
+      },
+      selectionClear() {
+        this.selectionList = []
+        this.$refs.crud.toggleSelection()
+      },
+      handleDetail(row) {
+        this.$router.push({
+          path: `/property/process/${flowRoute(this.flowRoutes, row.category)}/detail/${row.processInstanceId}/${row.businessId}`
+        })
+      },
+      handleImage(row) {
+        this.processInstanceId = row.processInstanceId
+        this.flowBox = true
+      },
+      currentChange(currentPage) {
+        this.page.currentPage = currentPage
+      },
+      sizeChange(pageSize) {
+        this.page.pageSize = pageSize
+      },
+      refreshChange() {
+        this.onLoad(this.page, this.query)
+      },
+      onLoad(page, params = {}) {
+       let query = {
+         ...this.query,
+         category: (params.category) ? flowCategory(params.category) : null
+       }
+       const {
+         dateTime
+       } = query
+
+       if (dateTime) {
+         query = {
+           startTimes: dateTime[0],
+           endTimes: dateTime[1],
+         }
+       }
+        this.loading = true
+        doneList(page.currentPage, page.pageSize, Object.assign(params, query)).then(res => {
+          const data = {
+            ...res.data.data,
+            records: res.data.data.records.map(item => {
+              return {
+                ...item,
+                'linkPhoneflag': false
+              }
             })
-        },
-        handleImage (row) {
-            this.processInstanceId = row.processInstanceId
-            this.flowBox = true
-        },
-        currentChange (currentPage) {
-            this.page.currentPage = currentPage
-        },
-        sizeChange (pageSize) {
-            this.page.pageSize = pageSize
-        },
-        refreshChange () {
-            this.onLoad(this.page, this.query)
-        },
-        onLoad (page, params = {}) {
-            const query = {
-                ...this.query,
-                category: (params.category) ? flowCategory(params.category) : null
-            }
-            this.loading = true
-            doneList(page.currentPage, page.pageSize, Object.assign(params, query)).then(res => {
-                const data = {
-                    ...res.data.data,
-                    records: res.data.data.records.map(item => {
-                        return {
-                            ...item,
-                            'linkPhoneflag': false
-                        }
-                    })
-                }
-                this.page.total = data.total
-                this.data = data.records
-                this.loading = false
-                this.selectionClear()
-            })
-        }
+          }
+          this.page.total = data.total
+          this.data = data.records
+          this.loading = false
+          this.selectionClear()
+        })
+      }
     }
-}
-</script>
\ No newline at end of file
+  }
+</script>
diff --git a/src/views/property/components/todo.vue b/src/views/property/components/todo.vue
index 16d83fa..6a43049 100644
--- a/src/views/property/components/todo.vue
+++ b/src/views/property/components/todo.vue
@@ -1,268 +1,312 @@
 <template>
-    <div>
-        <avue-crud :option="option" :table-loading="loading" :data="data" ref="crud" v-model="form"
-            @search-change="searchChange" @search-reset="searchReset" @selection-change="selectionChange"
-            @current-change="currentChange" @size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad">
-            <template slot-scope="{row, size, index}" slot="menu">
-                <el-button type="text" :size="size" icon="el-icon-s-check" v-if="permission.property_todo_handle"
-                    @click.stop="handleWork(row)">处理
-                </el-button>
-                <el-button type="text" :size="size" icon="el-icon-info" v-if="permission.property_todo_detail"
-                    @click.stop="handleDetail(row)">详情
-                </el-button>
-                <el-button type="text" :size="size" icon="el-icon-search" v-if="permission.property_todo_follow"
-                    @click.stop="handleImage(row, index)">流程图
-                </el-button>
-            </template>
+  <div>
+    <avue-crud :option="option" :table-loading="loading" :data="data" ref="crud" v-model="form"
+      @search-change="searchChange" @search-reset="searchReset" @selection-change="selectionChange"
+      @current-change="currentChange" @size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad">
+      <template slot-scope="{row, size, index}" slot="menu">
+        <el-button type="text" :size="size" icon="el-icon-s-check" v-if="permission.property_todo_handle"
+          @click.stop="handleWork(row)">处理
+        </el-button>
+        <el-button type="text" :size="size" icon="el-icon-info" v-if="permission.property_todo_detail"
+          @click.stop="handleDetail(row)">详情
+        </el-button>
+        <el-button type="text" :size="size" icon="el-icon-search" v-if="permission.property_todo_follow"
+          @click.stop="handleImage(row, index)">流程图
+        </el-button>
+      </template>
 
-            <template slot-scope="{row, size}" slot="processDefinitionVersion">
-                <el-tag :size="size">v{{ row.processDefinitionVersion }}</el-tag>
-            </template>
-            <template slot-scope="{row, size}" slot="linkPhone">
-                <el-button :size="size" type="text" @click="showStringDispose(row, 'linkPhoneflag')"
-                    v-text="textDispose(row, 'linkPhoneflag', 'linkPhone')">
-                </el-button>
-            </template>
-        </avue-crud>
-        <flow-design is-dialog :is-display.sync="flowBox" :process-instance-id="processInstanceId"></flow-design>
-    </div>
+      <template slot-scope="{row, size}" slot="processDefinitionVersion">
+        <el-tag :size="size">v{{ row.processDefinitionVersion }}</el-tag>
+      </template>
+      <template slot-scope="{row, size}" slot="linkPhone">
+        <el-button :size="size" type="text" @click="showStringDispose(row, 'linkPhoneflag')"
+          v-text="textDispose(row, 'linkPhoneflag', 'linkPhone')">
+        </el-button>
+      </template>
+    </avue-crud>
+    <flow-design is-dialog :is-display.sync="flowBox" :process-instance-id="processInstanceId"></flow-design>
+  </div>
 </template>
-  
+
 <script>
-import {
+  import {
     mapGetters
-} from "vuex"
-import {
+  } from "vuex"
+  import {
     todoList
-} from "@/api/work/work"
-import {
+  } from "@/api/work/work"
+  import {
     flowCategory,
     flowRoute
-} from "@/util/flow"
+  } from "@/util/flow"
 
-export default {
-    data () {
-        return {
-            typeStatus: 1,
-            form: {},
-            selectionId: '',
-            selectionList: [],
-            query: {},
-            loading: true,
-            page: {
-                pageSize: 10,
-                currentPage: 1,
-                total: 0
-            },
-            processInstanceId: '',
-            flowBox: false,
-            workBox: false,
-            option: {
-                labelWidth: 120,
-                searchLabelWidth: 96,
-                searchShow: true,
-                searchMenuSpan: 3,
-                menuWidth: 210,
+  export default {
+    data() {
+      return {
+        datetime: "",
+        typeStatus: 1,
+        form: {},
+        selectionId: '',
+        selectionList: [],
+        query: {},
+        loading: true,
+        page: {
+          pageSize: 10,
+          currentPage: 1,
+          total: 0
+        },
+        processInstanceId: '',
+        flowBox: false,
+        workBox: false,
+        option: {
+          labelWidth: 120,
+          searchLabelWidth: 96,
+          searchShow: true,
+          searchMenuSpan: 3,
+          menuWidth: 210,
 
-                height: 'auto',
-                calcHeight: 30,
-                tip: false,
-                simplePage: true,
-                border: true,
-                index: true,
-                // selection: true,
-                editBtn: false,
-                addBtn: false,
-                viewBtn: false,
-                delBtn: false,
-                columnBtn: false,
-                dialogWidth: 900,
-                dialogClickModal: false,
-                header: false,
-                column: [{
-                    label: "流程分类",
-                    type: "select",
-                    row: true,
-                    dicUrl: "/api/blade-system/dict/dictionary?code=flow",
-                    props: {
-                        label: "dictValue",
-                        value: "dictKey"
-                    },
-                    dataType: "number",
-                    slot: true,
-                    prop: "category",
-                    // search: true,
-                    hide: true,
-                    width: 100,
-                },
-                {
-                    width: 100,
-                    label: '申请类型',
-                    prop: 'categoryName',
-                    // search: true,
-                },
-                {
-                    width: 220,
-                    overHidden: true,
-                    label: "小区",
-                    prop: "districtId",
-                    // search: true,
-                    type: 'tree',
-                    dicUrl: `/api/blade-district/district/getDistrictTree`,
-                    props: {
-                        label: "name",
-                        value: "id"
-                    },
-                    defaultExpandedKeys: ["361102003"],
-                    searchSpan: 5,
-                    span: 12,
-                },
-                {
-                    width: 110,
-                    label: '联系人',
-                    prop: 'linkman',
-                    // search: true,
-                },
-                {
-                    width: 120,
-                    label: '联系电话',
-                    prop: 'linkPhone',
-                    // search: true,
-                    slot: true
-                },
-                {
-                    label: '项目名称',
-                    prop: 'name',
-                    // search: true,
-                },
-                {
-                    label: '当前步骤',
-                    prop: 'taskName',
-                },
-                // {
-                //   label: '流程版本',
-                //   prop: 'processDefinitionVersion',
-                //   // slot: true,
-                //   width: 80,
-                // },
-                {
-                    width: 144,
-                    label: '申请时间',
-                    prop: 'createTime',
-                },
-                ]
+          height: 'auto',
+          calcHeight: 30,
+          tip: false,
+          simplePage: true,
+          border: true,
+          index: true,
+          // selection: true,
+          editBtn: false,
+          addBtn: false,
+          viewBtn: false,
+          delBtn: false,
+          columnBtn: false,
+          dialogWidth: 900,
+          dialogClickModal: false,
+          header: false,
+          column: [{
+              label: "流程分类",
+              type: "select",
+              row: true,
+              dicUrl: "/api/blade-system/dict/dictionary?code=flow",
+              props: {
+                label: "dictValue",
+                value: "dictKey"
+              },
+              dataType: "number",
+              slot: true,
+              prop: "category",
+              // search: true,
+              hide: true,
+              width: 100,
             },
-            data: []
-        }
+            {
+              width: 110,
+              label: '小区名称',
+              prop: 'districtName',
+              search: true,
+              hide: true,
+            }, {
+              label: '项目名称',
+              prop: 'name',
+              search: true,
+            },
+            {
+              label: "申请时间",
+              prop: "dateTime",
+              type: "datetimerange",
+              defaultTime: ['00:00:00', '23:59:59'],
+              format: 'yyyy-MM-dd HH:mm:ss',
+              valueFormat: 'yyyy-MM-dd HH:mm:ss',
+              startPlaceholder: '开始范围自定义',
+              endPlaceholder: '结束范围自定义',
+              searchSpan: 5,
+              searchRange: true,
+              hide: true,
+              addDisplay: false,
+              editDisplay: false,
+              viewDisplay: false,
+              search: true,
+              rules: [{
+                required: true,
+                message: "请选择申请时间",
+                trigger: "blur",
+              }, ],
+            },
+            {
+              width: 100,
+              label: '申请类型',
+              prop: 'categoryName',
+              // search: true,
+            },
+            {
+              width: 220,
+              overHidden: true,
+              label: "小区",
+              prop: "districtId",
+              // search: true,
+              type: 'tree',
+              dicUrl: `/api/blade-district/district/getDistrictTree`,
+              props: {
+                label: "name",
+                value: "id"
+              },
+              defaultExpandedKeys: ["361102003"],
+              searchSpan: 5,
+              span: 12,
+            },
+            {
+              width: 110,
+              label: '联系人',
+              prop: 'linkman',
+              // search: true,
+            },
+            {
+              width: 120,
+              label: '联系电话',
+              prop: 'linkPhone',
+              // search: true,
+              slot: true
+            },
+            {
+              label: '项目名称',
+              prop: 'name',
+              // search: true,
+            },
+            {
+              label: '当前步骤',
+              prop: 'taskName',
+            },
+            // {
+            //   label: '流程版本',
+            //   prop: 'processDefinitionVersion',
+            //   // slot: true,
+            //   width: 80,
+            // },
+            {
+              width: 144,
+              label: '申请时间',
+              prop: 'createTime',
+            },
+          ]
+        },
+        data: []
+      }
     },
     computed: {
-        ...mapGetters(["permission", "flowRoutes"]),
-        ids () {
-            let ids = []
-            this.selectionList.forEach(ele => {
-                ids.push(ele.id)
-            })
-            return ids.join(",")
-        },
+      ...mapGetters(["permission", "flowRoutes"]),
+      ids() {
+        let ids = []
+        this.selectionList.forEach(ele => {
+          ids.push(ele.id)
+        })
+        return ids.join(",")
+      },
 
-        textDispose () {
-            return (row, flag, type) => {
-                if (row[flag] || row[type] == null) {
-                    return row[type]
-                } else {
-                    if (type == 'principalIdCard') {
-                        return row[type].replace(/^(.{6})(?:\d+)(.{4})$/, "$1******$2")
-                    } else {
-                        return row[type].replace(/^(.{3})(?:\d+)(.{4})$/, "$1****$2")
-                    }
-                }
+      textDispose() {
+        return (row, flag, type) => {
+          if (row[flag] || row[type] == null) {
+            return row[type]
+          } else {
+            if (type == 'principalIdCard') {
+              return row[type].replace(/^(.{6})(?:\d+)(.{4})$/, "$1******$2")
+            } else {
+              return row[type].replace(/^(.{3})(?:\d+)(.{4})$/, "$1****$2")
             }
+          }
         }
+      }
     },
     methods: {
 
-        changeType (type) {
-            this.typeStatus = type
-            this.page.currentPage = 1
-            // this.onLoad(this.page)
-        },
-        showStringDispose (row, type) {
-            row[type] = !row[type]
-        },
+      changeType(type) {
+        this.typeStatus = type
+        this.page.currentPage = 1
+        // this.onLoad(this.page)
+      },
+      showStringDispose(row, type) {
+        row[type] = !row[type]
+      },
 
-        searchReset () {
-            this.query = {}
-            this.onLoad(this.page)
-        },
-        searchChange (params, done) {
-            this.query = params
-            this.page.currentPage = 1
-            this.onLoad(this.page, params)
-            done()
-        },
-        selectionChange (list) {
-            this.selectionList = list
-        },
-        selectionClear () {
-            this.selectionList = []
-            this.$refs.crud.toggleSelection()
-        },
-        handleWork (row) {
-            this.$router.push({
-                path: `/property/process/${flowRoute(this.flowRoutes, row.category)}/handle/${row.taskId}/${row.processInstanceId}/${row.businessId}`
-            })
-        },
-        handleDetail (row) {
-            this.$router.push({
-                path: `/property/process/${flowRoute(this.flowRoutes, row.category)}/detail/${row.processInstanceId}/${row.businessId}`
-            })
-        },
-        handleImage (row) {
-            this.processInstanceId = row.processInstanceId
-            this.flowBox = true
-        },
-        currentChange (currentPage) {
-            this.page.currentPage = currentPage
-        },
-        sizeChange (pageSize) {
-            this.page.pageSize = pageSize
-        },
-        refreshChange () {
-            this.onLoad(this.page, this.query)
-        },
-        onLoad (page, params = {}) {
-            const query = {
-                ...this.query,
-                category: (params.category) ? flowCategory(params.category) : null
-            }
-            this.loading = true
-            todoList(page.currentPage, page.pageSize, Object.assign(params, query)).then(res => {
-                const data = {
-                    ...res.data.data,
-                    records: res.data.data.records.map(item => {
-                        return {
-                            ...item,
-                            'linkPhoneflag': false
-                        }
-                    })
-                }
-                this.page.total = data.total
-                this.data = data.records
-                this.loading = false
-                this.selectionClear()
-            })
+      searchReset() {
+        this.query = {}
+        this.onLoad(this.page)
+      },
+      searchChange(params, done) {
+        this.query = params
+        this.page.currentPage = 1
+        this.onLoad(this.page, params)
+        done()
+      },
+      selectionChange(list) {
+        this.selectionList = list
+      },
+      selectionClear() {
+        this.selectionList = []
+        this.$refs.crud.toggleSelection()
+      },
+      handleWork(row) {
+        this.$router.push({
+          path: `/property/process/${flowRoute(this.flowRoutes, row.category)}/handle/${row.taskId}/${row.processInstanceId}/${row.businessId}`
+        })
+      },
+      handleDetail(row) {
+        this.$router.push({
+          path: `/property/process/${flowRoute(this.flowRoutes, row.category)}/detail/${row.processInstanceId}/${row.businessId}`
+        })
+      },
+      handleImage(row) {
+        this.processInstanceId = row.processInstanceId
+        this.flowBox = true
+      },
+      currentChange(currentPage) {
+        this.page.currentPage = currentPage
+      },
+      sizeChange(pageSize) {
+        this.page.pageSize = pageSize
+      },
+      refreshChange() {
+        this.onLoad(this.page, this.query)
+      },
+      onLoad(page, params = {}) {
+        let query = {
+          ...this.query,
+          category: (params.category) ? flowCategory(params.category) : null
         }
-    }
-}
-</script>
-  
-  
-<style lang="scss" scoped>
-.avue-upload__icon {
-    line-height: 6;
-}
+        const {
+          dateTime
+        } = query
 
-.tab-list {
+        if (dateTime) {
+          query = {
+            startTimes: dateTime[0],
+            endTimes: dateTime[1],
+          }
+        }
+        this.loading = true
+        todoList(page.currentPage, page.pageSize, Object.assign(params, query)).then(res => {
+          const data = {
+            ...res.data.data,
+            records: res.data.data.records.map(item => {
+              return {
+                ...item,
+                'linkPhoneflag': false
+              }
+            })
+          }
+          this.page.total = data.total
+          this.data = data.records
+          this.loading = false
+          this.selectionClear()
+        })
+      }
+    }
+  }
+</script>
+
+
+<style lang="scss" scoped>
+  .avue-upload__icon {
+    line-height: 6;
+  }
+
+  .tab-list {
     display: flex;
     margin-right: 6px;
     border: 1px solid #dcdfe6;
@@ -272,55 +316,55 @@
     width: 121px;
 
     &>div {
-        display: flex;
-        align-items: center;
-        justify-content: center;
-        width: 60px;
-        cursor: pointer;
-        font-size: 12px;
+      display: flex;
+      align-items: center;
+      justify-content: center;
+      width: 60px;
+      cursor: pointer;
+      font-size: 12px;
     }
 
     &>div:nth-child(2) {
-        border-left: 1px solid #dcdfe6;
-        // border-right: 1px solid #dcdfe6;
+      border-left: 1px solid #dcdfe6;
+      // border-right: 1px solid #dcdfe6;
     }
 
     .choose {
-        color: #FFF;
-        background-color: #409dfe;
+      color: #FFF;
+      background-color: #409dfe;
     }
-}
+  }
 
-:deep(.avue-crud__left) {
+  :deep(.avue-crud__left) {
     display: flex;
     align-items: center;
-}
+  }
 
-:deep(.el-drawer__header) {
+  :deep(.el-drawer__header) {
     margin-bottom: 10px;
-}
+  }
 
-:deep(.el-radio__input.is-disabled+span.el-radio__label) {
+  :deep(.el-radio__input.is-disabled+span.el-radio__label) {
     color: #000;
-}
+  }
 
-:deep(.el-radio__input.is-checked+.el-radio__label) {
+  :deep(.el-radio__input.is-checked+.el-radio__label) {
     color: #409EFF !important;
-}
+  }
 
-:deep(.el-radio__input.is-checked .el-radio__inner::after) {
+  :deep(.el-radio__input.is-checked .el-radio__inner::after) {
     background-color: #FFF;
-}
+  }
 
-:deep(.el-radio__input.is-checked .el-radio__inner) {
+  :deep(.el-radio__input.is-checked .el-radio__inner) {
     background-color: #409EFF;
-}
+  }
 
-:deep(.el-radio) {
+  :deep(.el-radio) {
     margin-right: 20px;
-}
+  }
 
-.title {
+  .title {
     margin: 10px;
     height: 40px;
     background-color: #eee;
@@ -328,119 +372,119 @@
     align-items: center;
 
     .icon {
-        width: 4px;
-        height: 18px;
-        background-color: #409dfe;
-        margin: 0 10px;
-        color: transparent;
+      width: 4px;
+      height: 18px;
+      background-color: #409dfe;
+      margin: 0 10px;
+      color: transparent;
     }
-}
+  }
 
-.basic-info {
+  .basic-info {
     padding: 0 20px;
     font-size: 14px;
 
     .info-item {
+      display: flex;
+      padding: 10px;
+
+      .info-name {
+        width: 100px;
         display: flex;
-        padding: 10px;
+        align-items: center;
+      }
 
-        .info-name {
-            width: 100px;
-            display: flex;
-            align-items: center;
-        }
-
-        .info-value {
-            display: flex;
-            align-items: center;
-        }
+      .info-value {
+        display: flex;
+        align-items: center;
+      }
     }
-}
+  }
 
-.question-list {
+  .question-list {
     padding: 0 20px;
     font-size: 14px;
 
     .question-type {
-        height: 60px;
-        display: flex;
-        align-items: center;
-        cursor: pointer;
-        justify-content: space-between;
-        padding-right: 20px;
+      height: 60px;
+      display: flex;
+      align-items: center;
+      cursor: pointer;
+      justify-content: space-between;
+      padding-right: 20px;
 
-        .type-name {}
+      .type-name {}
 
-        .icon-box {}
+      .icon-box {}
     }
 
     .question-item {
-        margin-bottom: 20px;
-        padding: 10px;
-        background: #f5f7fa;
-        border-radius: 8px;
+      margin-bottom: 20px;
+      padding: 10px;
+      background: #f5f7fa;
+      border-radius: 8px;
 
-        &>div {
-            margin: 14px 0;
+      &>div {
+        margin: 14px 0;
+      }
+
+      .question-name {
+        display: flex;
+
+        .key {
+          width: 80%;
+          padding-right: 20px;
+          word-break: break-all;
         }
 
-        .question-name {
-            display: flex;
+        .value {
+          width: 20%;
+          display: flex;
+          align-items: center;
+          justify-content: center;
+        }
+      }
 
-            .key {
-                width: 80%;
-                padding-right: 20px;
-                word-break: break-all;
-            }
+      .yh-pic-box {
+        display: flex;
+        height: 100px;
 
-            .value {
-                width: 20%;
-                display: flex;
-                align-items: center;
-                justify-content: center;
-            }
+        .yh-pic-name {
+          width: 100px;
+          display: flex;
+          align-items: center;
+          justify-content: left;
         }
 
-        .yh-pic-box {
-            display: flex;
-            height: 100px;
+        .yh-pic-list {
+          width: 0;
+          flex: 1;
+          display: flex;
+        }
+      }
 
-            .yh-pic-name {
-                width: 100px;
-                display: flex;
-                align-items: center;
-                justify-content: left;
-            }
+      .yh-remark {
+        display: flex;
 
-            .yh-pic-list {
-                width: 0;
-                flex: 1;
-                display: flex;
-            }
+        .yh-remark-name {
+          width: 100px;
+          display: flex;
+          align-items: center;
+          justify-content: left;
         }
 
-        .yh-remark {
-            display: flex;
-
-            .yh-remark-name {
-                width: 100px;
-                display: flex;
-                align-items: center;
-                justify-content: left;
-            }
-
-            .yh-remark-value {
-                word-break: break-all;
-            }
+        .yh-remark-value {
+          word-break: break-all;
         }
+      }
     }
 
     .remark-box {
-        padding: 10px;
-        background-color: #f5f7fa;
-        border-radius: 8px;
-        min-height: 40px;
-        margin-bottom: 20px;
+      padding: 10px;
+      background-color: #f5f7fa;
+      border-radius: 8px;
+      min-height: 40px;
+      margin-bottom: 20px;
     }
-}
+  }
 </style>
\ No newline at end of file
diff --git a/src/views/property/inviteTenders.vue b/src/views/property/inviteTenders.vue
index 53b4831..13e8cc6 100644
--- a/src/views/property/inviteTenders.vue
+++ b/src/views/property/inviteTenders.vue
@@ -1,818 +1,816 @@
 <template>
-    <basic-container>
-        <avue-crud :option="option" :table-loading="loading" :data="data" :page.sync="page" ref="crud" @row-del="rowDel"
-            v-model="form" :permission="permissionList" @row-update="rowUpdate" @row-save="rowSave"
-            :before-open="beforeOpen" @search-change="searchChange" @search-reset="searchReset"
-            @selection-change="selectionChange" @current-change="currentChange" @size-change="sizeChange"
-            @refresh-change="refreshChange" @on-load="onLoad">
-            <template slot="menuLeft">
-                <el-button size="small" icon="el-icon-delete" plain v-if="permission.article_delete" @click="handleDelete">删
-                    除
-                </el-button>
-            </template>
+  <basic-container>
+    <avue-crud :option="option" :table-loading="loading" :data="data" :page.sync="page" ref="crud" @row-del="rowDel"
+      v-model="form" :permission="permissionList" @row-update="rowUpdate" @row-save="rowSave" :before-open="beforeOpen"
+      @search-change="searchChange" @search-reset="searchReset" @selection-change="selectionChange"
+      @current-change="currentChange" @size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad">
+      <template slot="menuLeft">
+        <el-button size="small" icon="el-icon-delete" plain v-if="permission.article_delete" @click="handleDelete">删
+          除
+        </el-button>
+      </template>
 
-            <template slot-scope="{type,size,row }" slot="menu">
-                <el-button v-if="row.publish == '1'" icon="el-icon-close" :size="size" :type="type"
-                    @click.stop="updateFb(row)">
-                    撤销
-                </el-button>
-                <el-button v-if="row.publish == '0'" icon="el-icon-check" :size="size" :type="type"
-                    @click.stop="updateFb(row)">
-                    发布
-                </el-button>
-            </template>
+      <template slot-scope="{type,size,row }" slot="menu">
+        <el-button v-if="row.publish == '1'" icon="el-icon-close" :size="size" :type="type" @click.stop="updateFb(row)">
+          撤销
+        </el-button>
+        <el-button v-if="row.publish == '0'" icon="el-icon-check" :size="size" :type="type" @click.stop="updateFb(row)">
+          发布
+        </el-button>
+      </template>
 
-            <template slot-scope="{ row, size }" slot="publish">
-                <el-tag :size="size" :type="showStatus(row.publish, 1).type" v-text="showStatus(row.publish, 1).text">
-                </el-tag>
-            </template>
+      <template slot-scope="{ row, size }" slot="publish">
+        <el-tag :size="size" :type="showStatus(row.publish, 1).type" v-text="showStatus(row.publish, 1).text">
+        </el-tag>
+      </template>
 
-            <template slot-scope="{ row }" slot="iscomment">
-                <el-switch @change="iscommentInput($event, row)" v-model="row.iscomment" :active-value="'1'"
-                    :inactive-value="'0'" active-color="#13ce66" inactive-color="#ccc">
-                </el-switch>
-            </template>
-        </avue-crud>
+      <template slot-scope="{ row }" slot="iscomment">
+        <el-switch @change="iscommentInput($event, row)" v-model="row.iscomment" :active-value="'1'"
+          :inactive-value="'0'" active-color="#13ce66" inactive-color="#ccc">
+        </el-switch>
+      </template>
+    </avue-crud>
 
-        <el-dialog title="" append-to-body :visible.sync="dialogVisibles" width="50%" :before-close="handleClose">
-            <span slot="title" class="dialog-footer">
-                {{ discussForm.ontitle }}
-            </span>
-            <div id="" v-if="discussForm.eventType == 1">
-                <avue-form @submit="handleSubmit" :option="optionDiscuss" v-model="discussForm"></avue-form>
-            </div>
+    <el-dialog title="" append-to-body :visible.sync="dialogVisibles" width="50%" :before-close="handleClose">
+      <span slot="title" class="dialog-footer">
+        {{ discussForm.ontitle }}
+      </span>
+      <div id="" v-if="discussForm.eventType == 1">
+        <avue-form @submit="handleSubmit" :option="optionDiscuss" v-model="discussForm"></avue-form>
+      </div>
 
-            <div id="" v-else>
-                <avue-form @submit="handleSubmit" :option="optionEnroll" v-model="discussForm">
-                </avue-form>
-            </div>
-        </el-dialog>
+      <div id="" v-else>
+        <avue-form @submit="handleSubmit" :option="optionEnroll" v-model="discussForm">
+        </avue-form>
+      </div>
+    </el-dialog>
 
-    </basic-container>
+  </basic-container>
 </template>
 
 <script>
-import {
+  import {
     getList,
     remove,
     update,
     add,
     getNotice,
     upcomment
-} from "@/api/article/article"
+  } from "@/api/article/article"
 
-import {
+  import {
     getListPd,
     removePd,
     updatePd,
     addPd,
     getNoticePd,
     upcommentPd
-} from "@/api/discuss/publicDiscuss"
+  } from "@/api/discuss/publicDiscuss"
 
-import website from '@/config/website'
+  import website from '@/config/website'
 
 
-import {
+  import {
     getDistrictTree
-} from "@/api/district/index"
+  } from "@/api/district/index"
 
-import {
+  import {
     mapGetters
-} from "vuex"
+  } from "vuex"
 
-export default {
-    data () {
-        return {
-            discussForm: {
-                ontitle: '',
-                title: '',
-                openFlag: 0,
-                numberRestrictions: 0,
-                voteRestrictions: 0,
-                userRestrictions: 0,
-                endTime: '',
-                articleId: '',
-                createTime: '',
-                updateTime: '',
-                deleteFlag: '',
-                repeatVote: 0,
-                voteNumberPublic: 0,
-                appointUser: '',
-                userIds: '',
-                eventType: 1,
+  export default {
+    data() {
+      return {
+        discussForm: {
+          ontitle: '',
+          title: '',
+          openFlag: 0,
+          numberRestrictions: 0,
+          voteRestrictions: 0,
+          userRestrictions: 0,
+          endTime: '',
+          articleId: '',
+          createTime: '',
+          updateTime: '',
+          deleteFlag: '',
+          repeatVote: 0,
+          voteNumberPublic: 0,
+          appointUser: '',
+          userIds: '',
+          eventType: 1,
+        },
+        dialogVisibles: false,
+        form: {},
+        query: {},
+        loading: true,
+        page: {
+          pageSize: 10,
+          currentPage: 1,
+          total: 0,
+        },
+        datetime: "",
+        selectionList: [],
+        option: {
+          labelWidth: 96,
+          searchLabelWidth: 96,
+          searchShow: true,
+          searchMenuSpan: 3,
+          menuWidth: 450,
+          dialogMenuPosition: 'center',
+          height: "auto",
+          calcHeight: 54,
+          dialogWidth: 950,
+          tip: false,
+          border: true,
+          //stripe:true,
+          index: true,
+          viewBtn: true,
+          selection: true,
+          excelBtn: true,
+          dialogClickModal: false,
+          column: [{
+              label: "招标标题",
+              prop: "title",
+              span: 24,
+              row: true,
+              searchSpan: 4,
+              search: true,
+              searchLabelWidth: 76,
+              rules: [{
+                required: true,
+                message: "请输入招标标题",
+                trigger: "blur",
+              }, ],
             },
-            dialogVisibles: false,
-            form: {},
-            query: {},
-            loading: true,
-            page: {
-                pageSize: 10,
-                currentPage: 1,
-                total: 0,
+            {
+              width: 110,
+              label: "招标封面",
+              prop: "url",
+              // align:'center',
+              type: "upload",
+              listType: "picture-img",
+              action: "/api/blade-resource/oss/endpoint/put-file",
+              propsHttp: {
+                res: "data",
+                url: "link",
+              },
+              // hide: true,
+              span: 24,
             },
-            datetime: "",
-            selectionList: [],
-            option: {
-                labelWidth: 96,
-                searchLabelWidth: 96,
-                searchShow: true,
-                searchMenuSpan: 3,
-                menuWidth: 450,
+            // {
+            //   label: "招标来源",
+            //   prop: "sourceName",
+            //   search: true,
+            //   searchSpan: 4,
+            //   span: 24,
+            //   rules: [{
+            //     required: true,
+            //     message: "请输入招标类型",
+            //     trigger: "blur",
+            //   }, ],
+            // },
+            {
+              hide: true,
+              parent: false,
+              label: "招标范围",
+              prop: "articleList",
+              type: 'tree',
+              dicData: [],
+              props: {
+                label: "name",
+                value: 'id'
+              },
+              span: 12,
+              rules: [{
+                required: true,
+                message: "请选择招标范围",
+                trigger: "blur",
+              }, ],
+            },
+            {
+              width: 100,
+              label: "招标类型",
+              prop: "type",
+              value: 2,
+              slot: true,
+              searchSpan: 4,
+              // search: true,
+              type: "select",
+              rules: [{
+                required: true,
+                message: "请选择招标类型",
+                trigger: "blur",
+              }, ],
+              dicData: [{
+                label: "物业招标",
+                value: 2,
+              }],
+            },
+            {
+              label: "发布时间",
+              prop: "dateTime",
+              type: "daterange",
+              format: "yyyy-MM-dd",
+              valueFormat: "yyyy-MM-dd",
+              searchSpan: 6,
+              searchRange: true,
+              hide: true,
+              addDisplay: false,
+              editDisplay: false,
+              viewDisplay: false,
+              search: true,
+              rules: [{
+                required: true,
+                message: "请选择发布时间",
+                trigger: "blur",
+              }, ],
+            },
+            {
+              width: 144,
+              label: "发布时间",
+              prop: "createTime",
+              type: "date",
+              format: "yyyy-MM-dd",
+              valueFormat: "yyyy-MM-dd HH:mm:ss",
+            },
 
-                height: "auto",
-                calcHeight: 54,
-                dialogWidth: 950,
-                tip: false,
-                border: true,
-                //stripe:true,
-                index: true,
-                viewBtn: true,
-                selection: true,
-                excelBtn: true,
-                dialogClickModal: false,
-                column: [{
-                    label: "招标标题",
-                    prop: "title",
-                    span: 24,
-                    row: true,
-                    searchSpan: 4,
-                    search: true,
-                    searchLabelWidth: 76,
-                    rules: [{
-                        required: true,
-                        message: "请输入招标标题",
-                        trigger: "blur",
-                    },],
+            {
+              width: 110,
+              label: "所属街道",
+              addDisplay: false,
+              editDisplay: false,
+              viewDisplay: false,
+              prop: "streetName",
+              search: true,
+              searchSpan: 4
+            },
+            {
+              width: 156,
+              overHidden: true,
+              label: "所属社区",
+              addDisplay: false,
+              editDisplay: false,
+              viewDisplay: false,
+              prop: "communityName",
+              search: true,
+              searchSpan: 4
+            },
+            {
+              width: 100,
+              label: "发布状态",
+              prop: "publish",
+              value: "0",
+              slot: true,
+              searchSpan: 4,
+              search: true,
+              type: "select",
+              rules: [{
+                required: true,
+                message: "请选择发布状态",
+                trigger: "blur",
+              }, ],
+              dicData: [{
+                  label: "未发布",
+                  value: "0",
                 },
                 {
-                    width: 110,
-                    label: "招标封面",
-                    prop: "url",
-                    // align:'center',
-                    type: "upload",
-                    listType: "picture-img",
-                    action: "/api/blade-resource/oss/endpoint/put-file",
-                    propsHttp: {
-                        res: "data",
-                        url: "link",
-                    },
-                    // hide: true,
-                    span: 24,
-                },
-                // {
-                //   label: "招标来源",
-                //   prop: "sourceName",
-                //   search: true,
-                //   searchSpan: 4,
-                //   span: 24,
-                //   rules: [{
-                //     required: true,
-                //     message: "请输入招标类型",
-                //     trigger: "blur",
-                //   }, ],
-                // },
-                {
-                    hide: true,
-                    parent: false,
-                    label: "招标范围",
-                    prop: "articleList",
-                    type: 'tree',
-                    dicData: [],
-                    props: {
-                        label: "name",
-                        value: 'id'
-                    },
-                    span: 12,
-                    rules: [{
-                        required: true,
-                        message: "请选择招标范围",
-                        trigger: "blur",
-                    },],
+                  label: "已发布",
+                  value: "1",
+                }
+              ],
+            },
+            {
+              width: 100,
+              label: "评论区",
+              prop: "iscomment",
+              slot: true,
+              type: "switch",
+              activeColor: "#13ce66",
+              inactiveColor: "#ccc",
+              value: '1',
+              dicData: [{
+                  label: "关闭",
+                  value: "0",
                 },
                 {
-                    width: 100,
-                    label: "招标类型",
-                    prop: "type",
-                    value: 2,
-                    slot: true,
-                    searchSpan: 4,
-                    // search: true,
-                    type: "select",
-                    rules: [{
-                        required: true,
-                        message: "请选择招标类型",
-                        trigger: "blur",
-                    },],
-                    dicData: [{
-                        label: "物业招标",
-                        value: 2,
-                    }],
+                  label: "开启",
+                  value: "1",
+                }
+              ],
+            },
+            {
+              label: "视频",
+              prop: "videoUrl",
+              type: "upload",
+              accept: "video/mp4",
+              display: false,
+              hide: true,
+              span: 24,
+              listType: "picture-img",
+              action: "/api/depl/put-depl",
+              propsHttp: {
+                url: "data",
+              },
+            },
+            {
+              label: "招标内容",
+              prop: "content",
+              component: "AvueUeditor",
+              options: {
+                action: "/api/blade-resource/oss/endpoint/put-file",
+                // customConfig: {
+                //   lineHeights: ['1', '1.15', '1.6', '2', '2.5', '3']
+                // },//wangEditor编辑的配置
+                props: {
+                  res: "data",
+                  url: "link",
                 },
-                {
-                    label: "发布时间",
-                    prop: "dateTime",
-                    type: "daterange",
-                    format: "yyyy-MM-dd",
-                    valueFormat: "yyyy-MM-dd",
-                    searchSpan: 6,
-                    searchRange: true,
-                    hide: true,
-                    addDisplay: false,
-                    editDisplay: false,
-                    viewDisplay: false,
-                    search: true,
-                    rules: [{
-                        required: true,
-                        message: "请选择发布时间",
-                        trigger: "blur",
-                    },],
-                },
-                {
-                    width: 144,
-                    label: "发布时间",
-                    prop: "createTime",
-                    type: "date",
-                    format: "yyyy-MM-dd",
-                    valueFormat: "yyyy-MM-dd HH:mm:ss",
-                },
+              },
+              hide: true,
+              minRows: 6,
+              span: 24,
+            },
+          ],
+        },
+        data: [],
+        optionEnroll: {
+          column: [{
+              label: "",
+              type: 'title',
+              prop: "title",
+              span: 24,
+              row: true,
+              offset: 2,
+              styles: {
+                fontSize: '24px'
+              }
+            }, {
+              label: '开启',
+              prop: 'openFlag',
+              type: 'radio',
+              button: true,
+              row: true,
+              offset: 6,
+              dicData: [{
+                label: '开启',
+                value: 0
+              }, {
+                label: '不开启',
+                value: 1
+              }]
+            },
 
-                {
-                    width: 110,
-                    label: "所属街道",
-                    addDisplay: false,
-                    editDisplay: false,
-                    viewDisplay: false,
-                    prop: "streetName",
-                    search: true,
-                    searchSpan: 4
-                },
-                {
-                    width: 156,
-                    overHidden: true,
-                    label: "所属社区",
-                    addDisplay: false,
-                    editDisplay: false,
-                    viewDisplay: false,
-                    prop: "communityName",
-                    search: true,
-                    searchSpan: 4
-                },
-                {
-                    width: 100,
-                    label: "发布状态",
-                    prop: "publish",
-                    value: "0",
-                    slot: true,
-                    searchSpan: 4,
-                    search: true,
-                    type: "select",
-                    rules: [{
-                        required: true,
-                        message: "请选择发布状态",
-                        trigger: "blur",
-                    },],
-                    dicData: [{
-                        label: "未发布",
-                        value: "0",
-                    },
-                    {
-                        label: "已发布",
-                        value: "1",
-                    }
-                    ],
-                },
-                {
-                    width: 100,
-                    label: "评论区",
-                    prop: "iscomment",
-                    slot: true,
-                    type: "switch",
-                    activeColor: "#13ce66",
-                    inactiveColor: "#ccc",
-                    value: '1',
-                    dicData: [{
-                        label: "关闭",
-                        value: "0",
-                    },
-                    {
-                        label: "开启",
-                        value: "1",
-                    }
-                    ],
-                },
-                {
-                    label: "视频",
-                    prop: "videoUrl",
-                    type: "upload",
-                    accept: "video/mp4",
-                    display: false,
-                    hide: true,
-                    span: 24,
-                    listType: "picture-img",
-                    action: "/api/depl/put-depl",
-                    propsHttp: {
-                        url: "data",
-                    },
-                },
-                {
-                    label: "招标内容",
-                    prop: "content",
-                    component: "AvueUeditor",
-                    options: {
-                        action: "/api/blade-resource/oss/endpoint/put-file",
-                        // customConfig: {
-                        //   lineHeights: ['1', '1.15', '1.6', '2', '2.5', '3']
-                        // },//wangEditor编辑的配置
-                        props: {
-                            res: "data",
-                            url: "link",
-                        },
-                    },
-                    hide: true,
-                    minRows: 6,
-                    span: 24,
-                },
-                ],
+            {
+              label: "截止时间",
+              row: true,
+              offset: 6,
+              prop: "endTime",
+              type: "datetime",
+              format: "yyyy-MM-dd hh:mm:ss",
+              valueFormat: "timestamp",
             },
-            data: [],
-            optionEnroll: {
-                column: [{
-                    label: "",
-                    type: 'title',
-                    prop: "title",
-                    span: 24,
-                    row: true,
-                    offset: 2,
-                    styles: {
-                        fontSize: '24px'
-                    }
-                }, {
-                    label: '开启',
-                    prop: 'openFlag',
-                    type: 'radio',
-                    button: true,
-                    row: true,
-                    offset: 6,
-                    dicData: [{
-                        label: '开启',
-                        value: 0
-                    }, {
-                        label: '不开启',
-                        value: 1
-                    }]
-                },
-
-                {
-                    label: "截止时间",
-                    row: true,
-                    offset: 6,
-                    prop: "endTime",
-                    type: "datetime",
-                    format: "yyyy-MM-dd hh:mm:ss",
-                    valueFormat: "timestamp",
-                },
-                ]
+          ]
+        },
+        optionDiscuss: {
+          column: [{
+              label: "",
+              type: 'title',
+              prop: "title",
+              span: 24,
+              row: true,
+              offset: 2,
+              styles: {
+                fontSize: '24px'
+              }
+            }, {
+              label: '开启投票',
+              prop: 'openFlag',
+              type: 'radio',
+              button: true,
+              row: true,
+              offset: 6,
+              dicData: [{
+                label: '开启',
+                value: 0
+              }, {
+                label: '不开启',
+                value: 1
+              }]
+            }, {
+              label: '开启签名',
+              prop: 'signatureFlag',
+              type: 'radio',
+              button: true,
+              row: true,
+              offset: 6,
+              dicData: [{
+                label: '开启',
+                value: 0
+              }, {
+                label: '不开启',
+                value: 1
+              }]
             },
-            optionDiscuss: {
-                column: [{
-                    label: "",
-                    type: 'title',
-                    prop: "title",
-                    span: 24,
-                    row: true,
-                    offset: 2,
-                    styles: {
-                        fontSize: '24px'
-                    }
-                }, {
-                    label: '开启投票',
-                    prop: 'openFlag',
-                    type: 'radio',
-                    button: true,
-                    row: true,
-                    offset: 6,
-                    dicData: [{
-                        label: '开启',
-                        value: 0
-                    }, {
-                        label: '不开启',
-                        value: 1
-                    }]
-                }, {
-                    label: '开启签名',
-                    prop: 'signatureFlag',
-                    type: 'radio',
-                    button: true,
-                    row: true,
-                    offset: 6,
-                    dicData: [{
-                        label: '开启',
-                        value: 0
-                    }, {
-                        label: '不开启',
-                        value: 1
-                    }]
-                },
-                {
-                    label: "截止时间",
-                    row: true,
-                    offset: 6,
-                    prop: "endTime",
-                    type: "datetime",
-                    format: "yyyy-MM-dd hh:mm:ss",
-                    valueFormat: "timestamp",
-                },
-                ]
+            {
+              label: "截止时间",
+              row: true,
+              offset: 6,
+              prop: "endTime",
+              type: "datetime",
+              format: "yyyy-MM-dd hh:mm:ss",
+              valueFormat: "timestamp",
             },
-            districtTree: [],
-        }
+          ]
+        },
+        districtTree: [],
+      }
     },
     watch: {
-        "form.articleType": {
-            handler (val) {
-                if (val) {
-                    var videoUrl = this.findObject(this.option.column, "videoUrl")
-                    var content = this.findObject(this.option.column, "content")
-                    if (val.indexOf('ksp') != -1) {
-                        videoUrl.display = true
-                        content.display = false
-                        videoUrl.rules = [{
-                            required: false,
-                            message: "请选择视频",
-                            trigger: "blur",
-                        },]
-                    } else {
-                        videoUrl.display = false
-                        content.display = true
-                        videoUrl.rules = ""
-                    }
-                }
-            },
-            immediate: true,
-        }
+      "form.articleType": {
+        handler(val) {
+          if (val) {
+            var videoUrl = this.findObject(this.option.column, "videoUrl")
+            var content = this.findObject(this.option.column, "content")
+            if (val.indexOf('ksp') != -1) {
+              videoUrl.display = true
+              content.display = false
+              videoUrl.rules = [{
+                required: false,
+                message: "请选择视频",
+                trigger: "blur",
+              }, ]
+            } else {
+              videoUrl.display = false
+              content.display = true
+              videoUrl.rules = ""
+            }
+          }
+        },
+        immediate: true,
+      }
     },
     computed: {
-        ...mapGetters(["permission", "userInfo"]),
-        permissionList () {
-            return {
-                addBtn: this.vaildData(this.permission.article_add, true),
-                viewBtn: this.vaildData(this.permission.article_view, true),
-                delBtn: this.vaildData(this.permission.article_delete, true),
-                editBtn: this.vaildData(this.permission.article_edit, true),
-            }
-        },
-        ids () {
-            let ids = []
-            this.selectionList.forEach((ele) => {
-                ids.push(ele.id)
-            })
-            return ids.join(",")
-        },
-        showStatus () {
-            return (data, type) => {
-                if (data == 0) {
-                    return {
-                        text: type == 1 ? '未发布' : '关闭',
-                        type: 'info'
-                    }
-                } else if (data == 1) {
-                    return {
-                        text: type == 1 ? '已发布' : '开启',
-                        type: 'success'
-                    }
-                }
-            }
+      ...mapGetters(["permission", "userInfo"]),
+      permissionList() {
+        return {
+          addBtn: this.vaildData(this.permission.article_add, true),
+          viewBtn: this.vaildData(this.permission.article_view, true),
+          delBtn: this.vaildData(this.permission.article_delete, true),
+          editBtn: this.vaildData(this.permission.article_edit, true),
         }
+      },
+      ids() {
+        let ids = []
+        this.selectionList.forEach((ele) => {
+          ids.push(ele.id)
+        })
+        return ids.join(",")
+      },
+      showStatus() {
+        return (data, type) => {
+          if (data == 0) {
+            return {
+              text: type == 1 ? '未发布' : '关闭',
+              type: 'info'
+            }
+          } else if (data == 1) {
+            return {
+              text: type == 1 ? '已发布' : '开启',
+              type: 'success'
+            }
+          }
+        }
+      }
     },
     methods: {
-        iscommentInput (e, data) {
-            upcomment(data.id, e).then(() => {
-                this.$message({
-                    type: "success",
-                    message: "操作成功!",
-                })
-            })
-        },
+      iscommentInput(e, data) {
+        upcomment(data.id, e).then(() => {
+          this.$message({
+            type: "success",
+            message: "操作成功!",
+          })
+        })
+      },
 
-        openDilog (row, type) {
-            this.dialogVisibles = true
-            this.discussForm.eventType = type
-            this.discussForm.articleId = row.id
-            this.discussForm.title = row.title
-            if (type == 0) {
-                this.discussForm.ontitle = '公益报名'
-            } else {
-                this.discussForm.ontitle = '创建议题'
-            }
-        },
-
-        handleSubmit (form, done) {
-            done()
-            addPd(form).then(
-                () => {
-                    this.$message({
-                        type: "success",
-                        message: "操作成功!",
-                    })
-                    this.dialogVisibles = false
-                    done()
-                },
-                (error) => {
-                    window.console.log(error)
-                    // loading();
-                }
-            )
-        },
-
-        handleClose (done) {
-            done()
-            // this.$confirm('确认关闭?')
-            //   .then(_ => {
-            //     done();
-            //   })
-            //   .catch(_ => {});
-        },
-        rowSave (row, done, loading) {
-            if (row.videoUrl.length == 0) {
-                row.videoUrl = ""
-            }
-            row.userid = this.userInfo.user_id
-            row.articleRange = JSON.stringify(row.articleList)
-            if (row.url.length > 0) {
-                var urls = []
-                var split = row.url.split(",")
-                split.forEach(url => {
-                    var names = url.split("jczz/")
-                    urls.push(names[1])
-                })
-                row.url = urls.join(",")
-            }
-            add({
-                ...row,
-                districtId: row.articleList
-            }).then(
-                () => {
-                    this.onLoad(this.page)
-                    this.$message({
-                        type: "success",
-                        message: "操作成功!",
-                    })
-                    done()
-                },
-                (error) => {
-                    window.console.log(error)
-                    loading()
-                }
-            )
-        },
-        rowUpdate (row, index, done, loading) {
-            row.articleRange = JSON.stringify(row.articleList)
-            if (row.url.length > 0) {
-                var urls = []
-                var split = row.url.split(",")
-                split.forEach(url => {
-                    var names = url.split("jczz/")
-                    urls.push(names[1])
-                })
-                row.url = urls.join(",")
-            }
-
-            update({
-                ...row,
-                district_id: row.articleList
-            }).then(
-                () => {
-                    this.onLoad(this.page)
-                    this.$message({
-                        type: "success",
-                        message: "操作成功!",
-                    })
-                    done()
-                },
-                (error) => {
-                    window.console.log(error)
-                    loading()
-                }
-            )
-        },
-        rowDel (row) {
-            this.$confirm("确定将选择数据删除?", {
-                confirmButtonText: "确定",
-                cancelButtonText: "取消",
-                type: "warning",
-            })
-                .then(() => {
-                    return remove(row.id)
-                })
-                .then(() => {
-                    this.onLoad(this.page)
-                    this.$message({
-                        type: "success",
-                        message: "操作成功!",
-                    })
-                })
-        },
-        searchReset () {
-            this.query = {}
-            this.onLoad(this.page)
-        },
-        searchChange (params, done) {
-            this.query = params
-            this.page.currentPage = 1
-            this.onLoad(this.page, params)
-            done()
-        },
-        selectionChange (list) {
-            this.selectionList = list
-        },
-        selectionClear () {
-            this.selectionList = []
-            this.$refs.crud.toggleSelection()
-        },
-        handleDelete () {
-            if (this.selectionList.length === 0) {
-                this.$message.warning("请选择至少一条数据")
-                return
-            }
-            this.$confirm("确定将选择数据删除?", {
-                confirmButtonText: "确定",
-                cancelButtonText: "取消",
-                type: "warning",
-            })
-                .then(() => {
-                    return remove(this.ids)
-                })
-                .then(() => {
-                    this.onLoad(this.page)
-                    this.$message({
-                        type: "success",
-                        message: "操作成功!",
-                    })
-                    this.$refs.crud.toggleSelection()
-                })
-        },
-        beforeOpen (done, type) {
-            if (["edit", "view"].includes(type)) {
-                getNotice(this.form.id).then((res) => {
-                    let data = res.data.data
-                    // data.forEach(item=>{
-                    if (data.url.length > 0) {
-                        var urls = []
-                        var names = data.url.split(",")
-                        names.forEach(name => {
-                            urls.push(website.minioUrl + name)
-                        })
-                        data.url = urls.join(",")
-                    }
-                    data.articleList = JSON.parse(data.articleRange)
-                    this.form = data
-                })
-            }
-            // con
-            done()
-        },
-        currentChange (currentPage) {
-            this.page.currentPage = currentPage
-        },
-        sizeChange (pageSize) {
-            this.page.pageSize = pageSize
-        },
-        refreshChange () {
-            this.onLoad(this.page, this.query)
-        },
-        onLoad (page, params = {}) {
-            const {
-                dateTime
-            } = this.query
-            let values = {
-                ...params,
-            }
-            if (dateTime) {
-                values = {
-                    ...params,
-                    startTime: dateTime[0] + ' 00:00:01',
-                    endTime: dateTime[1] + ' 23:59:59',
-                    ...this.query,
-                }
-                values.dateTime = null
-            }
-
-            values.type = 2
-            this.loading = true
-            console.log(values)
-            getList(page.currentPage, page.pageSize, values).then((res) => {
-                const data = res.data.data
-                this.page.total = data.total
-                this.data = data.records
-                this.data.forEach(item => {
-                    if (item.url.length > 0) {
-                        var urls = []
-                        var names = item.url.split(",")
-                        names.forEach(name => {
-                            urls.push(website.minioUrl + name)
-                        })
-                        item.url = urls.join(",")
-                    }
-                })
-                this.loading = false
-                this.selectionClear()
-            })
-            getDistrictTree({
-                filterFlag: 1
-            }).then((res) => {
-                const data = res.data.data
-                this.districtTree = data
-                const column = this.findObject(this.option.column, "articleList")
-                column.dicData = res.data.data
-                this.loading = false
-            })
-        },
-        updateFb (row) {
-            if (row.publish == "0") {
-                row.publish = "1"
-            } else {
-                row.publish = "0"
-            }
-            if (row.url.length > 0) {
-                var urls = []
-                var split = row.url.split(",")
-                split.forEach(url => {
-                    var names = url.split("jczz/")
-                    urls.push(names[1])
-                })
-                row.url = urls.join(",")
-            }
-            update(row).then(
-                () => {
-                    this.onLoad(this.page)
-                    this.$message({
-                        type: "success",
-                        message: "操作成功!",
-                    })
-                    done()
-                },
-                (error) => {
-                    window.console.log(error)
-                    loading()
-                }
-            )
-        },
-        kqcomment () {
-            if (this.selectionList.length === 0) {
-                this.$message.warning("请选择至少一条数据")
-                return
-            }
-            this.$confirm("确定将选择数据开启评论?", {
-                confirmButtonText: "确定",
-                cancelButtonText: "取消",
-                type: "warning",
-            }).then(() => {
-                return upcomment(this.ids, "1")
-            })
-                .then(() => {
-                    this.onLoad(this.page)
-                    this.$message({
-                        type: "success",
-                        message: "操作成功!",
-                    })
-                    this.$refs.crud.toggleSelection()
-                })
-        },
-        gbcomment () {
-            if (this.selectionList.length === 0) {
-                this.$message.warning("请选择至少一条数据")
-                return
-            }
-            this.$confirm("确定将选择数据开启评论?", {
-                confirmButtonText: "确定",
-                cancelButtonText: "取消",
-                type: "warning",
-            }).then(() => {
-                return upcomment(this.ids, "0")
-            })
-                .then(() => {
-                    this.onLoad(this.page)
-                    this.$message({
-                        type: "success",
-                        message: "操作成功!",
-                    })
-                    this.$refs.crud.toggleSelection()
-                })
+      openDilog(row, type) {
+        this.dialogVisibles = true
+        this.discussForm.eventType = type
+        this.discussForm.articleId = row.id
+        this.discussForm.title = row.title
+        if (type == 0) {
+          this.discussForm.ontitle = '公益报名'
+        } else {
+          this.discussForm.ontitle = '创建议题'
         }
+      },
+
+      handleSubmit(form, done) {
+        done()
+        addPd(form).then(
+          () => {
+            this.$message({
+              type: "success",
+              message: "操作成功!",
+            })
+            this.dialogVisibles = false
+            done()
+          },
+          (error) => {
+            window.console.log(error)
+            // loading();
+          }
+        )
+      },
+
+      handleClose(done) {
+        done()
+        // this.$confirm('确认关闭?')
+        //   .then(_ => {
+        //     done();
+        //   })
+        //   .catch(_ => {});
+      },
+      rowSave(row, done, loading) {
+        if (row.videoUrl.length == 0) {
+          row.videoUrl = ""
+        }
+        row.userid = this.userInfo.user_id
+        row.articleRange = JSON.stringify(row.articleList)
+        if (row.url.length > 0) {
+          var urls = []
+          var split = row.url.split(",")
+          split.forEach(url => {
+            var names = url.split("jczz/")
+            urls.push(names[1])
+          })
+          row.url = urls.join(",")
+        }
+        add({
+          ...row,
+          districtId: row.articleList
+        }).then(
+          () => {
+            this.onLoad(this.page)
+            this.$message({
+              type: "success",
+              message: "操作成功!",
+            })
+            done()
+          },
+          (error) => {
+            window.console.log(error)
+            loading()
+          }
+        )
+      },
+      rowUpdate(row, index, done, loading) {
+        row.articleRange = JSON.stringify(row.articleList)
+        if (row.url.length > 0) {
+          var urls = []
+          var split = row.url.split(",")
+          split.forEach(url => {
+            var names = url.split("jczz/")
+            urls.push(names[1])
+          })
+          row.url = urls.join(",")
+        }
+
+        update({
+          ...row,
+          district_id: row.articleList
+        }).then(
+          () => {
+            this.onLoad(this.page)
+            this.$message({
+              type: "success",
+              message: "操作成功!",
+            })
+            done()
+          },
+          (error) => {
+            window.console.log(error)
+            loading()
+          }
+        )
+      },
+      rowDel(row) {
+        this.$confirm("确定将选择数据删除?", {
+            confirmButtonText: "确定",
+            cancelButtonText: "取消",
+            type: "warning",
+          })
+          .then(() => {
+            return remove(row.id)
+          })
+          .then(() => {
+            this.onLoad(this.page)
+            this.$message({
+              type: "success",
+              message: "操作成功!",
+            })
+          })
+      },
+      searchReset() {
+        this.query = {}
+        this.onLoad(this.page)
+      },
+      searchChange(params, done) {
+        this.query = params
+        this.page.currentPage = 1
+        this.onLoad(this.page, params)
+        done()
+      },
+      selectionChange(list) {
+        this.selectionList = list
+      },
+      selectionClear() {
+        this.selectionList = []
+        this.$refs.crud.toggleSelection()
+      },
+      handleDelete() {
+        if (this.selectionList.length === 0) {
+          this.$message.warning("请选择至少一条数据")
+          return
+        }
+        this.$confirm("确定将选择数据删除?", {
+            confirmButtonText: "确定",
+            cancelButtonText: "取消",
+            type: "warning",
+          })
+          .then(() => {
+            return remove(this.ids)
+          })
+          .then(() => {
+            this.onLoad(this.page)
+            this.$message({
+              type: "success",
+              message: "操作成功!",
+            })
+            this.$refs.crud.toggleSelection()
+          })
+      },
+      beforeOpen(done, type) {
+        if (["edit", "view"].includes(type)) {
+          getNotice(this.form.id).then((res) => {
+            let data = res.data.data
+            // data.forEach(item=>{
+            if (data.url.length > 0) {
+              var urls = []
+              var names = data.url.split(",")
+              names.forEach(name => {
+                urls.push(website.minioUrl + name)
+              })
+              data.url = urls.join(",")
+            }
+            data.articleList = JSON.parse(data.articleRange)
+            this.form = data
+          })
+        }
+        // con
+        done()
+      },
+      currentChange(currentPage) {
+        this.page.currentPage = currentPage
+      },
+      sizeChange(pageSize) {
+        this.page.pageSize = pageSize
+      },
+      refreshChange() {
+        this.onLoad(this.page, this.query)
+      },
+      onLoad(page, params = {}) {
+        const {
+          dateTime
+        } = this.query
+        let values = {
+          ...params,
+        }
+        if (dateTime) {
+          values = {
+            ...params,
+            startTime: dateTime[0] + ' 00:00:01',
+            endTime: dateTime[1] + ' 23:59:59',
+            ...this.query,
+          }
+          values.dateTime = null
+        }
+
+        values.type = 2
+        this.loading = true
+        console.log(values)
+        getList(page.currentPage, page.pageSize, values).then((res) => {
+          const data = res.data.data
+          this.page.total = data.total
+          this.data = data.records
+          this.data.forEach(item => {
+            if (item.url.length > 0) {
+              var urls = []
+              var names = item.url.split(",")
+              names.forEach(name => {
+                urls.push(website.minioUrl + name)
+              })
+              item.url = urls.join(",")
+            }
+          })
+          this.loading = false
+          this.selectionClear()
+        })
+        getDistrictTree({
+          filterFlag: 1
+        }).then((res) => {
+          const data = res.data.data
+          this.districtTree = data
+          const column = this.findObject(this.option.column, "articleList")
+          column.dicData = res.data.data
+          this.loading = false
+        })
+      },
+      updateFb(row) {
+        if (row.publish == "0") {
+          row.publish = "1"
+        } else {
+          row.publish = "0"
+        }
+        if (row.url.length > 0) {
+          var urls = []
+          var split = row.url.split(",")
+          split.forEach(url => {
+            var names = url.split("jczz/")
+            urls.push(names[1])
+          })
+          row.url = urls.join(",")
+        }
+        update(row).then(
+          () => {
+            this.onLoad(this.page)
+            this.$message({
+              type: "success",
+              message: "操作成功!",
+            })
+            done()
+          },
+          (error) => {
+            window.console.log(error)
+            loading()
+          }
+        )
+      },
+      kqcomment() {
+        if (this.selectionList.length === 0) {
+          this.$message.warning("请选择至少一条数据")
+          return
+        }
+        this.$confirm("确定将选择数据开启评论?", {
+            confirmButtonText: "确定",
+            cancelButtonText: "取消",
+            type: "warning",
+          }).then(() => {
+            return upcomment(this.ids, "1")
+          })
+          .then(() => {
+            this.onLoad(this.page)
+            this.$message({
+              type: "success",
+              message: "操作成功!",
+            })
+            this.$refs.crud.toggleSelection()
+          })
+      },
+      gbcomment() {
+        if (this.selectionList.length === 0) {
+          this.$message.warning("请选择至少一条数据")
+          return
+        }
+        this.$confirm("确定将选择数据开启评论?", {
+            confirmButtonText: "确定",
+            cancelButtonText: "取消",
+            type: "warning",
+          }).then(() => {
+            return upcomment(this.ids, "0")
+          })
+          .then(() => {
+            this.onLoad(this.page)
+            this.$message({
+              type: "success",
+              message: "操作成功!",
+            })
+            this.$refs.crud.toggleSelection()
+          })
+      }
     },
-}
+  }
 </script>
 
 <style lang="scss" scoped>
-.avue-upload__icon {
+  .avue-upload__icon {
     line-height: 6;
-}
+  }
 
-:deep(.avue-form__menu--center) {
+  :deep(.avue-form__menu--center) {
     text-align: left;
-}
+  }
 
-:deep(.avue-form__menu--center .el-button) {
+  :deep(.avue-form__menu--center .el-button) {
     margin: 0 5px 0 0;
-}</style>
\ No newline at end of file
+  }
+</style>
\ No newline at end of file
diff --git a/src/views/property/oiae.vue b/src/views/property/oiae.vue
index 735e361..9fcba31 100644
--- a/src/views/property/oiae.vue
+++ b/src/views/property/oiae.vue
@@ -1,825 +1,823 @@
 <template>
-    <basic-container>
-        <avue-crud :option="option" :table-loading="loading" :data="data" :page.sync="page" ref="crud" @row-del="rowDel"
-            v-model="form" :permission="permissionList" @row-update="rowUpdate" @row-save="rowSave"
-            :before-open="beforeOpen" @search-change="searchChange" @search-reset="searchReset"
-            @selection-change="selectionChange" @current-change="currentChange" @size-change="sizeChange"
-            @refresh-change="refreshChange" @on-load="onLoad">
-            <template slot="menuLeft">
-                <el-button size="small" icon="el-icon-delete" plain v-if="permission.article_delete" @click="handleDelete">删
-                    除
-                </el-button>
-                <!-- <el-button size="small" icon="el-icon-s-order" plain @click="kqcomment">开启评论
+  <basic-container>
+    <avue-crud :option="option" :table-loading="loading" :data="data" :page.sync="page" ref="crud" @row-del="rowDel"
+      v-model="form" :permission="permissionList" @row-update="rowUpdate" @row-save="rowSave" :before-open="beforeOpen"
+      @search-change="searchChange" @search-reset="searchReset" @selection-change="selectionChange"
+      @current-change="currentChange" @size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad">
+      <template slot="menuLeft">
+        <el-button size="small" icon="el-icon-delete" plain v-if="permission.article_delete" @click="handleDelete">删
+          除
+        </el-button>
+        <!-- <el-button size="small" icon="el-icon-s-order" plain @click="kqcomment">开启评论
         </el-button>
         <el-button size="small" icon="el-icon-s-release" plain @click="gbcomment">关闭评论
         </el-button> -->
-            </template>
+      </template>
 
-            <template slot-scope="{type,size,row }" slot="menu">
-                <!-- <el-button icon="el-icon-circle-plus-outline" :size="size" :type="type" @click.stop="openDilog(row,0)">
+      <template slot-scope="{type,size,row }" slot="menu">
+        <!-- <el-button icon="el-icon-circle-plus-outline" :size="size" :type="type" @click.stop="openDilog(row,0)">
           公益报名
         </el-button>
         <el-button icon="el-icon-circle-plus-outline" :size="size" :type="type" @click.stop="openDilog(row,1)">
           创建议题
         </el-button> -->
-                <el-button v-if="row.publish == '1'" icon="el-icon-close" :size="size" :type="type"
-                    @click.stop="updateFb(row)">
-                    撤销
-                </el-button>
-                <el-button v-if="row.publish == '0'" icon="el-icon-check" :size="size" :type="type"
-                    @click.stop="updateFb(row)">
-                    发布
-                </el-button>
-            </template>
+        <el-button v-if="row.publish == '1'" icon="el-icon-close" :size="size" :type="type" @click.stop="updateFb(row)">
+          撤销
+        </el-button>
+        <el-button v-if="row.publish == '0'" icon="el-icon-check" :size="size" :type="type" @click.stop="updateFb(row)">
+          发布
+        </el-button>
+      </template>
 
-            <template slot-scope="{ row, size }" slot="publish">
-                <el-tag :size="size" :type="showStatus(row.publish, 1).type" v-text="showStatus(row.publish, 1).text">
-                </el-tag>
-            </template>
+      <template slot-scope="{ row, size }" slot="publish">
+        <el-tag :size="size" :type="showStatus(row.publish, 1).type" v-text="showStatus(row.publish, 1).text">
+        </el-tag>
+      </template>
 
-            <template slot-scope="{ row }" slot="iscomment">
-                <el-switch @change="iscommentInput($event, row)" v-model="row.iscomment" :active-value="'1'"
-                    :inactive-value="'0'" active-color="#13ce66" inactive-color="#ccc">
-                </el-switch>
-            </template>
-        </avue-crud>
+      <template slot-scope="{ row }" slot="iscomment">
+        <el-switch @change="iscommentInput($event, row)" v-model="row.iscomment" :active-value="'1'"
+          :inactive-value="'0'" active-color="#13ce66" inactive-color="#ccc">
+        </el-switch>
+      </template>
+    </avue-crud>
 
-        <el-dialog title="" append-to-body :visible.sync="dialogVisibles" width="50%" :before-close="handleClose">
-            <span slot="title" class="dialog-footer">
-                {{ discussForm.ontitle }}
-            </span>
-            <div id="" v-if="discussForm.eventType == 1">
-                <avue-form @submit="handleSubmit" :option="optionDiscuss" v-model="discussForm"></avue-form>
-            </div>
+    <el-dialog title="" append-to-body :visible.sync="dialogVisibles" width="50%" :before-close="handleClose">
+      <span slot="title" class="dialog-footer">
+        {{ discussForm.ontitle }}
+      </span>
+      <div id="" v-if="discussForm.eventType == 1">
+        <avue-form @submit="handleSubmit" :option="optionDiscuss" v-model="discussForm"></avue-form>
+      </div>
 
-            <div id="" v-else>
-                <avue-form @submit="handleSubmit" :option="optionEnroll" v-model="discussForm">
-                </avue-form>
-            </div>
-        </el-dialog>
+      <div id="" v-else>
+        <avue-form @submit="handleSubmit" :option="optionEnroll" v-model="discussForm">
+        </avue-form>
+      </div>
+    </el-dialog>
 
-    </basic-container>
+  </basic-container>
 </template>
 
 <script>
-import {
+  import {
     getList,
     remove,
     update,
     add,
     getNotice,
     upcomment
-} from "@/api/article/article"
+  } from "@/api/article/article"
 
-import {
+  import {
     getListPd,
     removePd,
     updatePd,
     addPd,
     getNoticePd,
     upcommentPd
-} from "@/api/discuss/publicDiscuss"
+  } from "@/api/discuss/publicDiscuss"
 
-import website from '@/config/website'
+  import website from '@/config/website'
 
 
-import {
+  import {
     getDistrictTree
-} from "@/api/district/index"
+  } from "@/api/district/index"
 
-import {
+  import {
     mapGetters
-} from "vuex"
+  } from "vuex"
 
-export default {
-    data () {
-        return {
-            discussForm: {
-                ontitle: '',
-                title: '',
-                openFlag: 0,
-                numberRestrictions: 0,
-                voteRestrictions: 0,
-                userRestrictions: 0,
-                endTime: '',
-                articleId: '',
-                createTime: '',
-                updateTime: '',
-                deleteFlag: '',
-                repeatVote: 0,
-                voteNumberPublic: 0,
-                appointUser: '',
-                userIds: '',
-                eventType: 1,
+  export default {
+    data() {
+      return {
+        discussForm: {
+          ontitle: '',
+          title: '',
+          openFlag: 0,
+          numberRestrictions: 0,
+          voteRestrictions: 0,
+          userRestrictions: 0,
+          endTime: '',
+          articleId: '',
+          createTime: '',
+          updateTime: '',
+          deleteFlag: '',
+          repeatVote: 0,
+          voteNumberPublic: 0,
+          appointUser: '',
+          userIds: '',
+          eventType: 1,
+        },
+        dialogVisibles: false,
+        form: {},
+        query: {},
+        loading: true,
+        page: {
+          pageSize: 10,
+          currentPage: 1,
+          total: 0,
+        },
+        datetime: "",
+        selectionList: [],
+        option: {
+          labelWidth: 120,
+          searchLabelWidth: 96,
+          searchShow: true,
+          searchMenuSpan: 3,
+          menuWidth: 280,
+          dialogMenuPosition: 'center',
+          height: "auto",
+          calcHeight: 54,
+          dialogWidth: 950,
+          tip: false,
+          border: true,
+          //stripe:true,
+          index: true,
+          viewBtn: true,
+          selection: true,
+          excelBtn: true,
+          dialogClickModal: false,
+          column: [{
+              label: "收支标题",
+              prop: "title",
+              span: 24,
+              row: true,
+              searchSpan: 4,
+              search: true,
+              searchLabelWidth: 76,
+              rules: [{
+                required: true,
+                message: "请输入收支标题",
+                trigger: "blur",
+              }],
             },
-            dialogVisibles: false,
-            form: {},
-            query: {},
-            loading: true,
-            page: {
-                pageSize: 10,
-                currentPage: 1,
-                total: 0,
+
+            {
+              width: 110,
+              label: "缩略图",
+              prop: "url",
+              // align:'center',
+              type: "upload",
+              listType: "picture-img",
+              action: "/api/blade-resource/oss/endpoint/put-file",
+              propsHttp: {
+                res: "data",
+                url: "link",
+              },
+              // hide: true,
+              span: 24,
             },
-            datetime: "",
-            selectionList: [],
-            option: {
-                labelWidth: 120,
-                searchLabelWidth: 96,
-                searchShow: true,
-                searchMenuSpan: 3,
-                menuWidth: 280,
 
-                height: "auto",
-                calcHeight: 54,
-                dialogWidth: 950,
-                tip: false,
-                border: true,
-                //stripe:true,
-                index: true,
-                viewBtn: true,
-                selection: true,
-                excelBtn: true,
-                dialogClickModal: false,
-                column: [{
-                    label: "收支标题",
-                    prop: "title",
-                    span: 24,
-                    row: true,
-                    searchSpan: 4,
-                    search: true,
-                    searchLabelWidth: 76,
-                    rules: [{
-                        required: true,
-                        message: "请输入收支标题",
-                        trigger: "blur",
-                    }],
-                },
+            // {
+            //   label: "收支来源",
+            //   prop: "sourceName",
+            //   search: true,
+            //   searchSpan: 4,
+            //   span: 24,
+            //   rules: [{
+            //     required: true,
+            //     message: "请输入收支类型",
+            //     trigger: "blur",
+            //   }, ],
+            // },
 
-                {
-                    width: 110,
-                    label: "缩略图",
-                    prop: "url",
-                    // align:'center',
-                    type: "upload",
-                    listType: "picture-img",
-                    action: "/api/blade-resource/oss/endpoint/put-file",
-                    propsHttp: {
-                        res: "data",
-                        url: "link",
-                    },
-                    // hide: true,
-                    span: 24,
-                },
+            {
+              hide: true,
+              parent: false,
+              label: "收支范围",
+              prop: "articleList",
+              type: 'tree',
+              dicData: [],
+              props: {
+                label: "name",
+                value: 'id'
+              },
+              span: 12,
+              rules: [{
+                required: true,
+                message: "请选择收支范围",
+                trigger: "blur",
+              }, ],
 
-                // {
-                //   label: "收支来源",
-                //   prop: "sourceName",
-                //   search: true,
-                //   searchSpan: 4,
-                //   span: 24,
-                //   rules: [{
-                //     required: true,
-                //     message: "请输入收支类型",
-                //     trigger: "blur",
-                //   }, ],
-                // },
-
-                {
-                    hide: true,
-                    parent: false,
-                    label: "收支范围",
-                    prop: "articleList",
-                    type: 'tree',
-                    dicData: [],
-                    props: {
-                        label: "name",
-                        value: 'id'
-                    },
-                    span: 12,
-                    rules: [{
-                        required: true,
-                        message: "请选择收支范围",
-                        trigger: "blur",
-                    },],
-
-                },
-                {
-                    label: "收支类型",
-                    prop: "type",
-                    width: 80,
-                    value: 1,
-                    slot: true,
-                    searchSpan: 4,
-                    search: true,
-                    type: "select",
-                    rules: [{
-                        required: true,
-                        message: "请选择收支类型",
-                        trigger: "blur",
-                    },],
-                    dicData: [{
-                        label: "经营性收支",
-                        value: 1,
-                    }],
-                },
-
-                {
-                    label: "发布时间",
-                    prop: "dateTime",
-                    type: "daterange",
-                    format: "yyyy-MM-dd",
-                    valueFormat: "yyyy-MM-dd",
-                    searchSpan: 6,
-                    searchRange: true,
-                    hide: true,
-                    addDisplay: false,
-                    editDisplay: false,
-                    viewDisplay: false,
-                    search: true,
-                    rules: [{
-                        required: true,
-                        message: "请选择发布时间",
-                        trigger: "blur",
-                    },],
-                },
-
-                {
-                    width: 100,
-                    label: "发布时间",
-                    prop: "createTime",
-                    type: "date",
-                    format: "yyyy-MM-dd",
-                    valueFormat: "yyyy-MM-dd HH:mm:ss",
-                },
-                {
-                    width: 110,
-                    label: "所属街道",
-                    addDisplay: false,
-                    editDisplay: false,
-                    viewDisplay: false,
-                    prop: "streetName",
-                    search: true,
-                    searchSpan: 4
-                },
-
-                {
-                    width: 156,
-                    overHidden: true,
-                    label: "所属社区",
-                    addDisplay: false,
-                    editDisplay: false,
-                    viewDisplay: false,
-                    prop: "communityName",
-                    search: true,
-                    searchSpan: 4
-                },
-                {
-                    width: 100,
-                    label: "发布状态",
-                    prop: "publish",
-                    value: "0",
-                    slot: true,
-                    searchSpan: 4,
-                    search: true,
-                    searchLabelWidth: 76,
-                    type: "select",
-                    rules: [{
-                        required: true,
-                        message: "请选择发布状态",
-                        trigger: "blur",
-                    },],
-                    dicData: [{
-                        label: "未发布",
-                        value: "0",
-                    },
-                    {
-                        label: "已发布",
-                        value: "1",
-                    }
-                    ],
-                },
-                {
-                    width: 100,
-                    label: "评论区",
-                    prop: "iscomment",
-                    slot: true,
-                    type: "switch",
-                    activeColor: "#13ce66",
-                    inactiveColor: "#ccc",
-                    value: '1',
-                    dicData: [{
-                        label: "关闭",
-                        value: "0",
-                    },
-                    {
-                        label: "开启",
-                        value: "1",
-                    }
-                    ],
-                },
-                {
-                    label: "视频",
-                    prop: "videoUrl",
-                    type: "upload",
-                    accept: "video/mp4",
-                    display: false,
-                    hide: true,
-                    span: 24,
-                    listType: "picture-img",
-                    action: "/api/depl/put-depl",
-                    propsHttp: {
-                        url: "data",
-                    },
-                },
-                {
-                    label: "收支内容",
-                    prop: "content",
-                    component: "AvueUeditor",
-                    options: {
-                        action: "/api/blade-resource/oss/endpoint/put-file",
-                        // customConfig: {
-                        //   lineHeights: ['1', '1.15', '1.6', '2', '2.5', '3']
-                        // },//wangEditor编辑的配置
-                        props: {
-                            res: "data",
-                            url: "link",
-                        },
-                    },
-                    hide: true,
-                    minRows: 6,
-                    span: 24,
-                },
-                ],
             },
-            data: [],
-            optionEnroll: {
-                column: [{
-                    label: "",
-                    type: 'title',
-                    prop: "title",
-                    span: 24,
-                    row: true,
-                    offset: 2,
-                    styles: {
-                        fontSize: '24px'
-                    }
-                }, {
-                    label: '开启',
-                    prop: 'openFlag',
-                    type: 'radio',
-                    button: true,
-                    row: true,
-                    offset: 6,
-                    dicData: [{
-                        label: '开启',
-                        value: 0
-                    }, {
-                        label: '不开启',
-                        value: 1
-                    }]
-                },
+            {
+              label: "收支类型",
+              prop: "type",
+              width: 80,
+              value: 1,
+              slot: true,
+              searchSpan: 4,
+              search: true,
+              type: "select",
+              rules: [{
+                required: true,
+                message: "请选择收支类型",
+                trigger: "blur",
+              }, ],
+              dicData: [{
+                label: "经营性收支",
+                value: 1,
+              }],
+            },
 
-                {
-                    label: "截止时间",
-                    row: true,
-                    offset: 6,
-                    prop: "endTime",
-                    type: "datetime",
-                    format: "yyyy-MM-dd hh:mm:ss",
-                    valueFormat: "timestamp",
-                },
-                ]
+            {
+              label: "发布时间",
+              prop: "dateTime",
+              type: "daterange",
+              format: "yyyy-MM-dd",
+              valueFormat: "yyyy-MM-dd",
+              searchSpan: 6,
+              searchRange: true,
+              hide: true,
+              addDisplay: false,
+              editDisplay: false,
+              viewDisplay: false,
+              search: true,
+              rules: [{
+                required: true,
+                message: "请选择发布时间",
+                trigger: "blur",
+              }, ],
             },
-            optionDiscuss: {
-                column: [{
-                    label: "",
-                    type: 'title',
-                    prop: "title",
-                    span: 24,
-                    row: true,
-                    offset: 2,
-                    styles: {
-                        fontSize: '24px'
-                    }
-                }, {
-                    label: '开启投票',
-                    prop: 'openFlag',
-                    type: 'radio',
-                    button: true,
-                    row: true,
-                    offset: 6,
-                    dicData: [{
-                        label: '开启',
-                        value: 0
-                    }, {
-                        label: '不开启',
-                        value: 1
-                    }]
-                }, {
-                    label: '开启签名',
-                    prop: 'signatureFlag',
-                    type: 'radio',
-                    button: true,
-                    row: true,
-                    offset: 6,
-                    dicData: [{
-                        label: '开启',
-                        value: 0
-                    }, {
-                        label: '不开启',
-                        value: 1
-                    }]
+
+            {
+              width: 100,
+              label: "发布时间",
+              prop: "createTime",
+              type: "date",
+              format: "yyyy-MM-dd",
+              valueFormat: "yyyy-MM-dd HH:mm:ss",
+            },
+            {
+              width: 110,
+              label: "所属街道",
+              addDisplay: false,
+              editDisplay: false,
+              viewDisplay: false,
+              prop: "streetName",
+              search: true,
+              searchSpan: 4
+            },
+
+            {
+              width: 156,
+              overHidden: true,
+              label: "所属社区",
+              addDisplay: false,
+              editDisplay: false,
+              viewDisplay: false,
+              prop: "communityName",
+              search: true,
+              searchSpan: 4
+            },
+            {
+              width: 100,
+              label: "发布状态",
+              prop: "publish",
+              value: "0",
+              slot: true,
+              searchSpan: 4,
+              search: true,
+              searchLabelWidth: 76,
+              type: "select",
+              rules: [{
+                required: true,
+                message: "请选择发布状态",
+                trigger: "blur",
+              }, ],
+              dicData: [{
+                  label: "未发布",
+                  value: "0",
                 },
                 {
-                    label: "截止时间",
-                    row: true,
-                    offset: 6,
-                    prop: "endTime",
-                    type: "datetime",
-                    format: "yyyy-MM-dd hh:mm:ss",
-                    valueFormat: "timestamp",
-                },
-                ]
+                  label: "已发布",
+                  value: "1",
+                }
+              ],
             },
-            districtTree: [],
-        }
+            {
+              width: 100,
+              label: "评论区",
+              prop: "iscomment",
+              slot: true,
+              type: "switch",
+              activeColor: "#13ce66",
+              inactiveColor: "#ccc",
+              value: '1',
+              dicData: [{
+                  label: "关闭",
+                  value: "0",
+                },
+                {
+                  label: "开启",
+                  value: "1",
+                }
+              ],
+            },
+            {
+              label: "视频",
+              prop: "videoUrl",
+              type: "upload",
+              accept: "video/mp4",
+              display: false,
+              hide: true,
+              span: 24,
+              listType: "picture-img",
+              action: "/api/depl/put-depl",
+              propsHttp: {
+                url: "data",
+              },
+            },
+            {
+              label: "收支内容",
+              prop: "content",
+              component: "AvueUeditor",
+              options: {
+                action: "/api/blade-resource/oss/endpoint/put-file",
+                // customConfig: {
+                //   lineHeights: ['1', '1.15', '1.6', '2', '2.5', '3']
+                // },//wangEditor编辑的配置
+                props: {
+                  res: "data",
+                  url: "link",
+                },
+              },
+              hide: true,
+              minRows: 6,
+              span: 24,
+            },
+          ],
+        },
+        data: [],
+        optionEnroll: {
+          column: [{
+              label: "",
+              type: 'title',
+              prop: "title",
+              span: 24,
+              row: true,
+              offset: 2,
+              styles: {
+                fontSize: '24px'
+              }
+            }, {
+              label: '开启',
+              prop: 'openFlag',
+              type: 'radio',
+              button: true,
+              row: true,
+              offset: 6,
+              dicData: [{
+                label: '开启',
+                value: 0
+              }, {
+                label: '不开启',
+                value: 1
+              }]
+            },
+
+            {
+              label: "截止时间",
+              row: true,
+              offset: 6,
+              prop: "endTime",
+              type: "datetime",
+              format: "yyyy-MM-dd hh:mm:ss",
+              valueFormat: "timestamp",
+            },
+          ]
+        },
+        optionDiscuss: {
+          column: [{
+              label: "",
+              type: 'title',
+              prop: "title",
+              span: 24,
+              row: true,
+              offset: 2,
+              styles: {
+                fontSize: '24px'
+              }
+            }, {
+              label: '开启投票',
+              prop: 'openFlag',
+              type: 'radio',
+              button: true,
+              row: true,
+              offset: 6,
+              dicData: [{
+                label: '开启',
+                value: 0
+              }, {
+                label: '不开启',
+                value: 1
+              }]
+            }, {
+              label: '开启签名',
+              prop: 'signatureFlag',
+              type: 'radio',
+              button: true,
+              row: true,
+              offset: 6,
+              dicData: [{
+                label: '开启',
+                value: 0
+              }, {
+                label: '不开启',
+                value: 1
+              }]
+            },
+            {
+              label: "截止时间",
+              row: true,
+              offset: 6,
+              prop: "endTime",
+              type: "datetime",
+              format: "yyyy-MM-dd hh:mm:ss",
+              valueFormat: "timestamp",
+            },
+          ]
+        },
+        districtTree: [],
+      }
     },
     watch: {
-        "form.articleType": {
-            handler (val) {
-                if (val) {
-                    var videoUrl = this.findObject(this.option.column, "videoUrl")
-                    var content = this.findObject(this.option.column, "content")
-                    if (val.indexOf('ksp') != -1) {
-                        videoUrl.display = true
-                        content.display = false
-                        videoUrl.rules = [{
-                            required: false,
-                            message: "请选择视频",
-                            trigger: "blur",
-                        },]
-                    } else {
-                        videoUrl.display = false
-                        content.display = true
-                        videoUrl.rules = ""
-                    }
-                }
-            },
-            immediate: true,
-        }
+      "form.articleType": {
+        handler(val) {
+          if (val) {
+            var videoUrl = this.findObject(this.option.column, "videoUrl")
+            var content = this.findObject(this.option.column, "content")
+            if (val.indexOf('ksp') != -1) {
+              videoUrl.display = true
+              content.display = false
+              videoUrl.rules = [{
+                required: false,
+                message: "请选择视频",
+                trigger: "blur",
+              }, ]
+            } else {
+              videoUrl.display = false
+              content.display = true
+              videoUrl.rules = ""
+            }
+          }
+        },
+        immediate: true,
+      }
     },
     computed: {
-        ...mapGetters(["permission", "userInfo"]),
-        permissionList () {
-            return {
-                addBtn: this.vaildData(this.permission.article_add, true),
-                viewBtn: this.vaildData(this.permission.article_view, true),
-                delBtn: this.vaildData(this.permission.article_delete, true),
-                editBtn: this.vaildData(this.permission.article_edit, true),
-            }
-        },
-        ids () {
-            let ids = []
-            this.selectionList.forEach((ele) => {
-                ids.push(ele.id)
-            })
-            return ids.join(",")
-        },
-        showStatus () {
-            return (data, type) => {
-                if (data == 0) {
-                    return {
-                        text: type == 1 ? '未发布' : '关闭',
-                        type: 'info'
-                    }
-                } else if (data == 1) {
-                    return {
-                        text: type == 1 ? '已发布' : '开启',
-                        type: 'success'
-                    }
-                }
-            }
+      ...mapGetters(["permission", "userInfo"]),
+      permissionList() {
+        return {
+          addBtn: this.vaildData(this.permission.article_add, true),
+          viewBtn: this.vaildData(this.permission.article_view, true),
+          delBtn: this.vaildData(this.permission.article_delete, true),
+          editBtn: this.vaildData(this.permission.article_edit, true),
         }
+      },
+      ids() {
+        let ids = []
+        this.selectionList.forEach((ele) => {
+          ids.push(ele.id)
+        })
+        return ids.join(",")
+      },
+      showStatus() {
+        return (data, type) => {
+          if (data == 0) {
+            return {
+              text: type == 1 ? '未发布' : '关闭',
+              type: 'info'
+            }
+          } else if (data == 1) {
+            return {
+              text: type == 1 ? '已发布' : '开启',
+              type: 'success'
+            }
+          }
+        }
+      }
     },
     methods: {
-        iscommentInput (e, data) {
-            upcomment(data.id, e).then(() => {
-                this.$message({
-                    type: "success",
-                    message: "操作成功!",
-                })
-            })
-        },
+      iscommentInput(e, data) {
+        upcomment(data.id, e).then(() => {
+          this.$message({
+            type: "success",
+            message: "操作成功!",
+          })
+        })
+      },
 
-        openDilog (row, type) {
-            this.dialogVisibles = true
-            this.discussForm.eventType = type
-            this.discussForm.articleId = row.id
-            this.discussForm.title = row.title
-            if (type == 0) {
-                this.discussForm.ontitle = '公益报名'
-            } else {
-                this.discussForm.ontitle = '创建议题'
-            }
-        },
-
-        handleSubmit (form, done) {
-            done()
-            addPd(form).then(
-                () => {
-                    this.$message({
-                        type: "success",
-                        message: "操作成功!",
-                    })
-                    this.dialogVisibles = false
-                    done()
-                },
-                (error) => {
-                    window.console.log(error)
-                    // loading();
-                }
-            )
-        },
-
-        handleClose (done) {
-            done()
-            // this.$confirm('确认关闭?')
-            //   .then(_ => {
-            //     done();
-            //   })
-            //   .catch(_ => {});
-        },
-        rowSave (row, done, loading) {
-            if (row.videoUrl.length == 0) {
-                row.videoUrl = ""
-            }
-            row.userid = this.userInfo.user_id
-            console.log(row)
-            row.articleRange = JSON.stringify(row.articleList)
-            if (row.url.length > 0) {
-                var urls = []
-                var split = row.url.split(",")
-                split.forEach(url => {
-                    var names = url.split("jczz/")
-                    urls.push(names[1])
-                })
-                row.url = urls.join(",")
-            }
-            add({
-                ...row,
-                districtId: row.articleList
-            }).then(
-                () => {
-                    this.onLoad(this.page)
-                    this.$message({
-                        type: "success",
-                        message: "操作成功!",
-                    })
-                    done()
-                },
-                (error) => {
-                    window.console.log(error)
-                    loading()
-                }
-            )
-        },
-        rowUpdate (row, index, done, loading) {
-            row.articleRange = JSON.stringify(row.articleList)
-            if (row.url.length > 0) {
-                var urls = []
-                var split = row.url.split(",")
-                split.forEach(url => {
-                    var names = url.split("jczz/")
-                    urls.push(names[1])
-                })
-                row.url = urls.join(",")
-            }
-
-            update({
-                ...row,
-                district_id: row.articleList
-            }).then(
-                () => {
-                    this.onLoad(this.page)
-                    this.$message({
-                        type: "success",
-                        message: "操作成功!",
-                    })
-                    done()
-                },
-                (error) => {
-                    window.console.log(error)
-                    loading()
-                }
-            )
-        },
-        rowDel (row) {
-            this.$confirm("确定将选择数据删除?", {
-                confirmButtonText: "确定",
-                cancelButtonText: "取消",
-                type: "warning",
-            })
-                .then(() => {
-                    return remove(row.id)
-                })
-                .then(() => {
-                    this.onLoad(this.page)
-                    this.$message({
-                        type: "success",
-                        message: "操作成功!",
-                    })
-                })
-        },
-        searchReset () {
-            this.query = {}
-            this.onLoad(this.page)
-        },
-        searchChange (params, done) {
-            this.query = params
-            this.page.currentPage = 1
-            this.onLoad(this.page, params)
-            done()
-        },
-        selectionChange (list) {
-            this.selectionList = list
-        },
-        selectionClear () {
-            this.selectionList = []
-            this.$refs.crud.toggleSelection()
-        },
-        handleDelete () {
-            if (this.selectionList.length === 0) {
-                this.$message.warning("请选择至少一条数据")
-                return
-            }
-            this.$confirm("确定将选择数据删除?", {
-                confirmButtonText: "确定",
-                cancelButtonText: "取消",
-                type: "warning",
-            })
-                .then(() => {
-                    return remove(this.ids)
-                })
-                .then(() => {
-                    this.onLoad(this.page)
-                    this.$message({
-                        type: "success",
-                        message: "操作成功!",
-                    })
-                    this.$refs.crud.toggleSelection()
-                })
-        },
-        beforeOpen (done, type) {
-            if (["edit", "view"].includes(type)) {
-                getNotice(this.form.id).then((res) => {
-                    let data = res.data.data
-                    if (data.url.length > 0) {
-                        var urls = []
-                        var names = data.url.split(",")
-                        names.forEach(name => {
-                            urls.push(website.minioUrl + name)
-                        })
-                        data.url = urls.join(",")
-                    }
-                    data.articleList = JSON.parse(data.articleRange)
-                    this.form = data
-                })
-            }
-            // con
-            done()
-        },
-        currentChange (currentPage) {
-            this.page.currentPage = currentPage
-        },
-        sizeChange (pageSize) {
-            this.page.pageSize = pageSize
-        },
-        refreshChange () {
-            this.onLoad(this.page, this.query)
-        },
-        onLoad (page, params = {}) {
-            const {
-                dateTime
-            } = this.query
-            let values = {
-                ...params,
-            }
-            if (dateTime) {
-                values = {
-                    ...params,
-                    startTime: dateTime[0] + ' 00:00:01',
-                    endTime: dateTime[1] + ' 23:59:59',
-                    ...this.query,
-                }
-                values.dateTime = null
-            }
-            values.type = 1
-            this.loading = true
-            getList(page.currentPage, page.pageSize, values).then((res) => {
-                const data = res.data.data
-                this.page.total = data.total
-                this.data = data.records
-                this.data.forEach(item => {
-                    if (item.url.length > 0) {
-                        var urls = []
-                        var names = item.url.split(",")
-                        names.forEach(name => {
-                            urls.push(website.minioUrl + name)
-                        })
-                        item.url = urls.join(",")
-                    }
-                })
-                this.loading = false
-                this.selectionClear()
-            })
-            getDistrictTree({
-                filterFlag: 1
-            }).then((res) => {
-                const data = res.data.data
-                this.districtTree = data
-                const column = this.findObject(this.option.column, "articleList")
-                column.dicData = res.data.data
-                this.loading = false
-            })
-        },
-        updateFb (row) {
-            if (row.publish == "0") {
-                row.publish = "1"
-            } else {
-                row.publish = "0"
-            }
-            if (row.url.length > 0) {
-                var urls = []
-                var split = row.url.split(",")
-                split.forEach(url => {
-                    var names = url.split("jczz/")
-                    urls.push(names[1])
-                })
-                row.url = urls.join(",")
-            }
-            update(row).then(
-                () => {
-                    this.onLoad(this.page)
-                    this.$message({
-                        type: "success",
-                        message: "操作成功!",
-                    })
-                    done()
-                },
-                (error) => {
-                    window.console.log(error)
-                    loading()
-                }
-            )
-        },
-        kqcomment () {
-            if (this.selectionList.length === 0) {
-                this.$message.warning("请选择至少一条数据")
-                return
-            }
-            this.$confirm("确定将选择数据开启评论?", {
-                confirmButtonText: "确定",
-                cancelButtonText: "取消",
-                type: "warning",
-            }).then(() => {
-                return upcomment(this.ids, "1")
-            })
-                .then(() => {
-                    this.onLoad(this.page)
-                    this.$message({
-                        type: "success",
-                        message: "操作成功!",
-                    })
-                    this.$refs.crud.toggleSelection()
-                })
-        },
-        gbcomment () {
-            if (this.selectionList.length === 0) {
-                this.$message.warning("请选择至少一条数据")
-                return
-            }
-            this.$confirm("确定将选择数据开启评论?", {
-                confirmButtonText: "确定",
-                cancelButtonText: "取消",
-                type: "warning",
-            }).then(() => {
-                return upcomment(this.ids, "0")
-            })
-                .then(() => {
-                    this.onLoad(this.page)
-                    this.$message({
-                        type: "success",
-                        message: "操作成功!",
-                    })
-                    this.$refs.crud.toggleSelection()
-                })
+      openDilog(row, type) {
+        this.dialogVisibles = true
+        this.discussForm.eventType = type
+        this.discussForm.articleId = row.id
+        this.discussForm.title = row.title
+        if (type == 0) {
+          this.discussForm.ontitle = '公益报名'
+        } else {
+          this.discussForm.ontitle = '创建议题'
         }
+      },
+
+      handleSubmit(form, done) {
+        done()
+        addPd(form).then(
+          () => {
+            this.$message({
+              type: "success",
+              message: "操作成功!",
+            })
+            this.dialogVisibles = false
+            done()
+          },
+          (error) => {
+            window.console.log(error)
+            // loading();
+          }
+        )
+      },
+
+      handleClose(done) {
+        done()
+        // this.$confirm('确认关闭?')
+        //   .then(_ => {
+        //     done();
+        //   })
+        //   .catch(_ => {});
+      },
+      rowSave(row, done, loading) {
+        if (row.videoUrl.length == 0) {
+          row.videoUrl = ""
+        }
+        row.userid = this.userInfo.user_id
+        console.log(row)
+        row.articleRange = JSON.stringify(row.articleList)
+        if (row.url.length > 0) {
+          var urls = []
+          var split = row.url.split(",")
+          split.forEach(url => {
+            var names = url.split("jczz/")
+            urls.push(names[1])
+          })
+          row.url = urls.join(",")
+        }
+        add({
+          ...row,
+          districtId: row.articleList
+        }).then(
+          () => {
+            this.onLoad(this.page)
+            this.$message({
+              type: "success",
+              message: "操作成功!",
+            })
+            done()
+          },
+          (error) => {
+            window.console.log(error)
+            loading()
+          }
+        )
+      },
+      rowUpdate(row, index, done, loading) {
+        row.articleRange = JSON.stringify(row.articleList)
+        if (row.url.length > 0) {
+          var urls = []
+          var split = row.url.split(",")
+          split.forEach(url => {
+            var names = url.split("jczz/")
+            urls.push(names[1])
+          })
+          row.url = urls.join(",")
+        }
+
+        update({
+          ...row,
+          district_id: row.articleList
+        }).then(
+          () => {
+            this.onLoad(this.page)
+            this.$message({
+              type: "success",
+              message: "操作成功!",
+            })
+            done()
+          },
+          (error) => {
+            window.console.log(error)
+            loading()
+          }
+        )
+      },
+      rowDel(row) {
+        this.$confirm("确定将选择数据删除?", {
+            confirmButtonText: "确定",
+            cancelButtonText: "取消",
+            type: "warning",
+          })
+          .then(() => {
+            return remove(row.id)
+          })
+          .then(() => {
+            this.onLoad(this.page)
+            this.$message({
+              type: "success",
+              message: "操作成功!",
+            })
+          })
+      },
+      searchReset() {
+        this.query = {}
+        this.onLoad(this.page)
+      },
+      searchChange(params, done) {
+        this.query = params
+        this.page.currentPage = 1
+        this.onLoad(this.page, params)
+        done()
+      },
+      selectionChange(list) {
+        this.selectionList = list
+      },
+      selectionClear() {
+        this.selectionList = []
+        this.$refs.crud.toggleSelection()
+      },
+      handleDelete() {
+        if (this.selectionList.length === 0) {
+          this.$message.warning("请选择至少一条数据")
+          return
+        }
+        this.$confirm("确定将选择数据删除?", {
+            confirmButtonText: "确定",
+            cancelButtonText: "取消",
+            type: "warning",
+          })
+          .then(() => {
+            return remove(this.ids)
+          })
+          .then(() => {
+            this.onLoad(this.page)
+            this.$message({
+              type: "success",
+              message: "操作成功!",
+            })
+            this.$refs.crud.toggleSelection()
+          })
+      },
+      beforeOpen(done, type) {
+        if (["edit", "view"].includes(type)) {
+          getNotice(this.form.id).then((res) => {
+            let data = res.data.data
+            if (data.url.length > 0) {
+              var urls = []
+              var names = data.url.split(",")
+              names.forEach(name => {
+                urls.push(website.minioUrl + name)
+              })
+              data.url = urls.join(",")
+            }
+            data.articleList = JSON.parse(data.articleRange)
+            this.form = data
+          })
+        }
+        // con
+        done()
+      },
+      currentChange(currentPage) {
+        this.page.currentPage = currentPage
+      },
+      sizeChange(pageSize) {
+        this.page.pageSize = pageSize
+      },
+      refreshChange() {
+        this.onLoad(this.page, this.query)
+      },
+      onLoad(page, params = {}) {
+        const {
+          dateTime
+        } = this.query
+        let values = {
+          ...params,
+        }
+        if (dateTime) {
+          values = {
+            ...params,
+            startTime: dateTime[0] + ' 00:00:01',
+            endTime: dateTime[1] + ' 23:59:59',
+            ...this.query,
+          }
+          values.dateTime = null
+        }
+        values.type = 1
+        this.loading = true
+        getList(page.currentPage, page.pageSize, values).then((res) => {
+          const data = res.data.data
+          this.page.total = data.total
+          this.data = data.records
+          this.data.forEach(item => {
+            if (item.url.length > 0) {
+              var urls = []
+              var names = item.url.split(",")
+              names.forEach(name => {
+                urls.push(website.minioUrl + name)
+              })
+              item.url = urls.join(",")
+            }
+          })
+          this.loading = false
+          this.selectionClear()
+        })
+        getDistrictTree({
+          filterFlag: 1
+        }).then((res) => {
+          const data = res.data.data
+          this.districtTree = data
+          const column = this.findObject(this.option.column, "articleList")
+          column.dicData = res.data.data
+          this.loading = false
+        })
+      },
+      updateFb(row) {
+        if (row.publish == "0") {
+          row.publish = "1"
+        } else {
+          row.publish = "0"
+        }
+        if (row.url.length > 0) {
+          var urls = []
+          var split = row.url.split(",")
+          split.forEach(url => {
+            var names = url.split("jczz/")
+            urls.push(names[1])
+          })
+          row.url = urls.join(",")
+        }
+        update(row).then(
+          () => {
+            this.onLoad(this.page)
+            this.$message({
+              type: "success",
+              message: "操作成功!",
+            })
+            done()
+          },
+          (error) => {
+            window.console.log(error)
+            loading()
+          }
+        )
+      },
+      kqcomment() {
+        if (this.selectionList.length === 0) {
+          this.$message.warning("请选择至少一条数据")
+          return
+        }
+        this.$confirm("确定将选择数据开启评论?", {
+            confirmButtonText: "确定",
+            cancelButtonText: "取消",
+            type: "warning",
+          }).then(() => {
+            return upcomment(this.ids, "1")
+          })
+          .then(() => {
+            this.onLoad(this.page)
+            this.$message({
+              type: "success",
+              message: "操作成功!",
+            })
+            this.$refs.crud.toggleSelection()
+          })
+      },
+      gbcomment() {
+        if (this.selectionList.length === 0) {
+          this.$message.warning("请选择至少一条数据")
+          return
+        }
+        this.$confirm("确定将选择数据开启评论?", {
+            confirmButtonText: "确定",
+            cancelButtonText: "取消",
+            type: "warning",
+          }).then(() => {
+            return upcomment(this.ids, "0")
+          })
+          .then(() => {
+            this.onLoad(this.page)
+            this.$message({
+              type: "success",
+              message: "操作成功!",
+            })
+            this.$refs.crud.toggleSelection()
+          })
+      }
     },
-}
+  }
 </script>
 
 <style>
-.avue-upload__icon {
+  .avue-upload__icon {
     line-height: 6;
-}</style>
\ No newline at end of file
+  }
+</style>
\ No newline at end of file
diff --git a/src/views/property/ownersCommittee.vue b/src/views/property/ownersCommittee.vue
index 85e3903..4fe3b89 100644
--- a/src/views/property/ownersCommittee.vue
+++ b/src/views/property/ownersCommittee.vue
@@ -1,685 +1,701 @@
 <template>
-    <basic-container>
-        <avue-crud :option="option" :table-loading="loading" :data="data" :page.sync="page" ref="crud" @row-del="rowDel"
-            v-model="form" :permission="permissionList" @row-update="rowUpdate" @row-save="rowSave"
-            :before-open="beforeOpen" @search-change="searchChange" @search-reset="searchReset"
-            @selection-change="selectionChange" @current-change="currentChange" @size-change="sizeChange"
-            @refresh-change="refreshChange" @on-load="onLoad">
-            <template slot="menuLeft">
-                <el-button size="small" icon="el-icon-delete" plain v-if="permission.article_delete" @click="handleDelete">删
-                    除
-                </el-button>
-            </template>
+  <basic-container>
+    <avue-crud :option="option" :table-loading="loading" :data="data" :page.sync="page" ref="crud" @row-del="rowDel"
+      v-model="form" :permission="permissionList" @row-update="rowUpdate" @row-save="rowSave" :before-open="beforeOpen"
+      @search-change="searchChange" @search-reset="searchReset" @selection-change="selectionChange"
+      @current-change="currentChange" @size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad">
+      <!--  <template slot="menuLeft">
+        <el-button size="small" icon="el-icon-delete" plain v-if="permission.article_delete" @click="handleDelete">删
+          除
+        </el-button>
+      </template> -->
 
-            <template slot-scope="{type,size,row }" slot="menu">
-                <el-button v-if="row.publish == '1'" icon="el-icon-close" :size="size" :type="type"
-                    @click.stop="updateFb(row)">
-                    撤销
-                </el-button>
-                <el-button v-if="row.publish == '0'" icon="el-icon-check" :size="size" :type="type"
-                    @click.stop="updateFb(row)">
-                    发布
-                </el-button>
-            </template>
+      <!-- <template slot-scope="{type,size,row }" slot="menu">
+        <el-button v-if="row.publish == '1'" icon="el-icon-close" :size="size" :type="type" @click.stop="updateFb(row)">
+          撤销
+        </el-button>
+        <el-button v-if="row.publish == '0'" icon="el-icon-check" :size="size" :type="type" @click.stop="updateFb(row)">
+          发布
+        </el-button>
+      </template> -->
 
-            <template slot-scope="{ row, size }" slot="publish">
-                <el-tag :size="size" :type="showStatus(row.publish, 1).type" v-text="showStatus(row.publish, 1).text">
-                </el-tag>
-            </template>
+      <!-- <template slot-scope="{ row, size }" slot="publish">
+        <el-tag :size="size" :type="showStatus(row.publish, 1).type" v-text="showStatus(row.publish, 1).text">
+        </el-tag>
+      </template> -->
 
-            <template slot-scope="{ row }" slot="iscomment">
-                <el-switch @change="iscommentInput($event, row)" v-model="row.iscomment" :active-value="'1'"
-                    :inactive-value="'0'" active-color="#13ce66" inactive-color="#ccc">
-                </el-switch>
-            </template>
-        </avue-crud>
+      <!-- <template slot-scope="{ row }" slot="iscomment">
+        <el-switch @change="iscommentInput($event, row)" v-model="row.iscomment" :active-value="'1'"
+          :inactive-value="'0'" active-color="#13ce66" inactive-color="#ccc">
+        </el-switch>
+      </template> -->
+    </avue-crud>
 
-    </basic-container>
+  </basic-container>
 </template>
 
 <script>
-import {
+  import {
     getList,
     remove,
     update,
     add,
     getNotice,
     upcomment
-} from "@/api/article/article"
+  } from "@/api/article/article"
 
-import {
+  import {
     addPd,
-} from "@/api/discuss/publicDiscuss"
+  } from "@/api/discuss/publicDiscuss"
 
-import website from '@/config/website'
+  import website from '@/config/website'
 
 
-import {
+  import {
     getDistrictTree
-} from "@/api/district/index"
+  } from "@/api/district/index"
 
-import {
+  import {
     mapGetters
-} from "vuex"
+  } from "vuex"
 
-export default {
-    data () {
-        return {
-            discussForm: {
-                ontitle: '',
-                title: '',
-                openFlag: 0,
-                numberRestrictions: 0,
-                voteRestrictions: 0,
-                userRestrictions: 0,
-                endTime: '',
-                articleId: '',
-                createTime: '',
-                updateTime: '',
-                deleteFlag: '',
-                repeatVote: 0,
-                voteNumberPublic: 0,
-                appointUser: '',
-                userIds: '',
-                eventType: 1,
+  export default {
+    data() {
+      return {
+        discussForm: {
+          ontitle: '',
+          title: '',
+          openFlag: 0,
+          numberRestrictions: 0,
+          voteRestrictions: 0,
+          userRestrictions: 0,
+          endTime: '',
+          articleId: '',
+          createTime: '',
+          updateTime: '',
+          deleteFlag: '',
+          repeatVote: 0,
+          voteNumberPublic: 0,
+          appointUser: '',
+          userIds: '',
+          eventType: 1,
+        },
+        dialogVisibles: false,
+        form: {},
+        query: {},
+        loading: true,
+        page: {
+          pageSize: 10,
+          currentPage: 1,
+          total: 0,
+        },
+        datetime: "",
+        selectionList: [],
+        option: {
+          labelWidth: 120,
+          searchLabelWidth: 96,
+          searchShow: true,
+          searchMenuSpan: 3,
+          menuWidth: 450,
+          addBtn: false,
+          menu: false,
+          height: "auto",
+          calcHeight: 54,
+          dialogWidth: 950,
+          tip: false,
+          border: true,
+          //stripe:true,
+          index: true,
+          viewBtn: false,
+          // selection: true,
+          delBtn: false,
+          editBtn: false,
+          // excelBtn: true,
+          dialogClickModal: false,
+          column: [{
+              label: "标题",
+              prop: "title",
+              span: 24,
+              row: true,
+              searchSpan: 4,
+              search: true,
+              searchLabelWidth: 46,
+              rules: [{
+                required: true,
+                message: "请输入业主大会标题",
+                trigger: "blur",
+              }, ],
             },
-            dialogVisibles: false,
-            form: {},
-            query: {},
-            loading: true,
-            page: {
-                pageSize: 10,
-                currentPage: 1,
-                total: 0,
+            {
+              width: 110,
+              label: "封面",
+              prop: "url",
+              // align:'center',
+              type: "upload",
+              listType: "picture-img",
+              action: "/api/blade-resource/oss/endpoint/put-file",
+              propsHttp: {
+                res: "data",
+                url: "link",
+              },
+              // hide: true,
+              span: 24,
             },
-            datetime: "",
-            selectionList: [],
-            option: {
-                labelWidth: 120,
-                searchLabelWidth: 96,
-                searchShow: true,
-                searchMenuSpan: 3,
-                menuWidth: 450,
-
-                height: "auto",
-                calcHeight: 54,
-                dialogWidth: 950,
-                tip: false,
-                border: true,
-                //stripe:true,
-                index: true,
-                viewBtn: true,
-                selection: true,
-                excelBtn: true,
-                dialogClickModal: false,
-                column: [{
-                    label: "标题",
-                    prop: "title",
-                    span: 24,
-                    row: true,
-                    searchSpan: 4,
-                    search: true,
-                    searchLabelWidth: 46,
-                    rules: [{
-                        required: true,
-                        message: "请输入业主大会标题",
-                        trigger: "blur",
-                    },],
-                },
-                {
-                    width: 110,
-                    label: "封面",
-                    prop: "url",
-                    // align:'center',
-                    type: "upload",
-                    listType: "picture-img",
-                    action: "/api/blade-resource/oss/endpoint/put-file",
-                    propsHttp: {
-                        res: "data",
-                        url: "link",
-                    },
-                    // hide: true,
-                    span: 24,
-                },
-                {
-                    hide: true,
-                    parent: false,
-                    label: "公示范围",
-                    prop: "articleList",
-                    type: 'tree',
-                    dicData: [],
-                    props: {
-                        label: "name",
-                        value: 'id'
-                    },
-                    span: 12,
-                    rules: [{
-                        required: true,
-                        message: "请选择公示范围",
-                        trigger: "blur",
-                    },],
-                },
-                {
-                    width: 100,
-                    label: "业主大会类型",
-                    prop: "type",
-                    value: 5,
-                    slot: true,
-                    searchSpan: 4,
-                    // search: true,
-                    type: "select",
-                    rules: [{
-                        required: true,
-                        message: "请选择招标类型",
-                        trigger: "blur",
-                    },],
-                    dicData: [{
-                        label: "业主大会",
-                        value: 5,
-                    }],
-                },
-                {
-                    label: "发布时间",
-                    prop: "dateTime",
-                    type: "daterange",
-                    format: "yyyy-MM-dd",
-                    valueFormat: "yyyy-MM-dd",
-                    searchSpan: 6,
-                    searchRange: true,
-                    hide: true,
-                    addDisplay: false,
-                    editDisplay: false,
-                    viewDisplay: false,
-                    search: true,
-                    rules: [{
-                        required: true,
-                        message: "请选择发布时间",
-                        trigger: "blur",
-                    },],
-                },
-                {
-                    width: 144,
-                    label: "发布时间",
-                    prop: "createTime",
-                    type: "date",
-                    format: "yyyy-MM-dd",
-                    valueFormat: "yyyy-MM-dd HH:mm:ss",
-                },
-
-                {
-                    width: 110,
-                    label: "所属街道",
-                    addDisplay: false,
-                    editDisplay: false,
-                    viewDisplay: false,
-                    prop: "streetName",
-                    search: true,
-                    searchSpan: 4
-                },
-
-                {
-                    width: 156,
-                    overHidden: true,
-                    label: "所属社区",
-                    addDisplay: false,
-                    editDisplay: false,
-                    viewDisplay: false,
-                    prop: "communityName",
-                    search: true,
-                    searchSpan: 4
-                },
-
-                {
-                    width: 100,
-                    label: "发布状态",
-                    prop: "publish",
-                    value: "0",
-                    slot: true,
-                    searchSpan: 4,
-                    search: true,
-                    type: "select",
-                    display: false,
-                    rules: [{
-                        required: true,
-                        message: "请选择发布状态",
-                        trigger: "blur",
-                    },],
-                    dicData: [{
-                        label: "未发布",
-                        value: "0",
-                    },
-                    {
-                        label: "已发布",
-                        value: "1",
-                    }
-                    ],
-                },
-                {
-                    width: 100,
-                    label: "评论区",
-                    prop: "iscomment",
-                    slot: true,
-                    type: "switch",
-                    activeColor: "#13ce66",
-                    inactiveColor: "#ccc",
-                    value: '1',
-                    dicData: [{
-                        label: "关闭",
-                        value: "0",
-                    },
-                    {
-                        label: "开启",
-                        value: "1",
-                    }
-                    ],
-                },
-                {
-                    label: "内容",
-                    prop: "content",
-                    component: "AvueUeditor",
-                    options: {
-                        action: "/api/blade-resource/oss/endpoint/put-file",
-                        // customConfig: {
-                        //   lineHeights: ['1', '1.15', '1.6', '2', '2.5', '3']
-                        // },//wangEditor编辑的配置
-                        props: {
-                            res: "data",
-                            url: "link",
-                        },
-                    },
-                    hide: true,
-                    minRows: 6,
-                    span: 24,
-                },
-                ],
+            {
+              hide: true,
+              parent: false,
+              label: "公示范围",
+              prop: "articleList",
+              type: 'tree',
+              dicData: [],
+              props: {
+                label: "name",
+                value: 'id'
+              },
+              span: 12,
+              rules: [{
+                required: true,
+                message: "请选择公示范围",
+                trigger: "blur",
+              }, ],
             },
-            data: [],
+            {
+              width: 100,
+              label: "业主大会类型",
+              prop: "type",
+              value: 5,
+              slot: true,
+              searchSpan: 4,
+              // search: true,
+              type: "select",
+              rules: [{
+                required: true,
+                message: "请选择招标类型",
+                trigger: "blur",
+              }, ],
+              dicData: [{
+                label: "业主大会",
+                value: 5,
+              }],
+            },
+            {
+              label: "发布时间",
+              prop: "dateTime",
+              type: "daterange",
+              format: "yyyy-MM-dd",
+              valueFormat: "yyyy-MM-dd",
+              searchSpan: 6,
+              searchRange: true,
+              hide: true,
+              addDisplay: false,
+              editDisplay: false,
+              viewDisplay: false,
+              search: true,
+              rules: [{
+                required: true,
+                message: "请选择发布时间",
+                trigger: "blur",
+              }, ],
+            },
+            {
+              // hide: true,
+              parent: false,
+              label: "小区名称",
+              prop: "districtId",
+              type: 'tree',
+              dicUrl: `/api/blade-district/district/getDistrictTree`,
+              props: {
+                label: "name",
+                value: "id"
+              },
+              defaultExpandedKeys: ["361102003"],
+              span: 12,
+              width: 220,
+              overHidden: true,
+            },
+            {
+              width: 110,
+              label: "所属街道",
+              addDisplay: false,
+              editDisplay: false,
+              viewDisplay: false,
+              prop: "streetName",
+              search: true,
+              searchSpan: 4
+            },
 
-            districtTree: [],
-        }
+            {
+              width: 156,
+              overHidden: true,
+              label: "所属社区",
+              addDisplay: false,
+              editDisplay: false,
+              viewDisplay: false,
+              prop: "communityName",
+              search: true,
+              searchSpan: 4
+            },
+            {
+              width: 144,
+              label: "发布时间",
+              prop: "createTime",
+              type: "date",
+              format: "yyyy-MM-dd",
+              valueFormat: "yyyy-MM-dd HH:mm:ss",
+            },
+
+            {
+              width: 100,
+              label: "发布状态",
+              prop: "publish",
+              value: "0",
+              slot: true,
+              searchSpan: 4,
+              search: true,
+              type: "select",
+              display: false,
+              rules: [{
+                required: true,
+                message: "请选择发布状态",
+                trigger: "blur",
+              }, ],
+              dicData: [{
+                  label: "未发布",
+                  value: "0",
+                },
+                {
+                  label: "已发布",
+                  value: "1",
+                }
+              ],
+            },
+            {
+              width: 100,
+              label: "评论区",
+              prop: "iscomment",
+              slot: true,
+              type: "switch",
+              activeColor: "#13ce66",
+              inactiveColor: "#ccc",
+              value: '1',
+              dicData: [{
+                  label: "关闭",
+                  value: "0",
+                },
+                {
+                  label: "开启",
+                  value: "1",
+                }
+              ],
+            },
+            {
+              label: "内容",
+              prop: "content",
+              component: "AvueUeditor",
+              options: {
+                action: "/api/blade-resource/oss/endpoint/put-file",
+                // customConfig: {
+                //   lineHeights: ['1', '1.15', '1.6', '2', '2.5', '3']
+                // },//wangEditor编辑的配置
+                props: {
+                  res: "data",
+                  url: "link",
+                },
+              },
+              hide: true,
+              minRows: 6,
+              span: 24,
+            },
+          ],
+        },
+        data: [],
+
+        districtTree: [],
+      }
     },
     watch: {
-        "form.articleType": {
-            handler (val) {
-                if (val) {
-                    var videoUrl = this.findObject(this.option.column, "videoUrl")
-                    var content = this.findObject(this.option.column, "content")
-                    if (val.indexOf('ksp') != -1) {
-                        videoUrl.display = true
-                        content.display = false
-                        videoUrl.rules = [{
-                            required: false,
-                            message: "请选择视频",
-                            trigger: "blur",
-                        },]
-                    } else {
-                        videoUrl.display = false
-                        content.display = true
-                        videoUrl.rules = ""
-                    }
-                }
-            },
-            immediate: true,
-        }
+      "form.articleType": {
+        handler(val) {
+          if (val) {
+            var videoUrl = this.findObject(this.option.column, "videoUrl")
+            var content = this.findObject(this.option.column, "content")
+            if (val.indexOf('ksp') != -1) {
+              videoUrl.display = true
+              content.display = false
+              videoUrl.rules = [{
+                required: false,
+                message: "请选择视频",
+                trigger: "blur",
+              }, ]
+            } else {
+              videoUrl.display = false
+              content.display = true
+              videoUrl.rules = ""
+            }
+          }
+        },
+        immediate: true,
+      }
     },
     computed: {
-        ...mapGetters(["permission", "userInfo"]),
-        permissionList () {
-            return {
-                addBtn: this.vaildData(this.permission.article_add, true),
-                viewBtn: this.vaildData(this.permission.article_view, true),
-                delBtn: this.vaildData(this.permission.article_delete, true),
-                editBtn: this.vaildData(this.permission.article_edit, true),
-            }
-        },
-        ids () {
-            let ids = []
-            this.selectionList.forEach((ele) => {
-                ids.push(ele.id)
-            })
-            return ids.join(",")
-        },
-        showStatus () {
-            return (data, type) => {
-                if (data == 0) {
-                    return {
-                        text: type == 1 ? '未发布' : '关闭',
-                        type: 'info'
-                    }
-                } else if (data == 1) {
-                    return {
-                        text: type == 1 ? '已发布' : '开启',
-                        type: 'success'
-                    }
-                }
-            }
+      ...mapGetters(["permission", "userInfo"]),
+      permissionList() {
+        return {
+          addBtn: this.vaildData(this.permission.article_add, true),
+          viewBtn: this.vaildData(this.permission.article_view, true),
+          delBtn: this.vaildData(this.permission.article_delete, true),
+          editBtn: this.vaildData(this.permission.article_edit, true),
         }
+      },
+      ids() {
+        let ids = []
+        this.selectionList.forEach((ele) => {
+          ids.push(ele.id)
+        })
+        return ids.join(",")
+      },
+      showStatus() {
+        return (data, type) => {
+          if (data == 0) {
+            return {
+              text: type == 1 ? '未发布' : '关闭',
+              type: 'info'
+            }
+          } else if (data == 1) {
+            return {
+              text: type == 1 ? '已发布' : '开启',
+              type: 'success'
+            }
+          }
+        }
+      }
     },
     methods: {
-        iscommentInput (e, data) {
-            upcomment(data.id, e).then(() => {
-                this.$message({
-                    type: "success",
-                    message: "操作成功!",
-                })
-            })
-        },
+      iscommentInput(e, data) {
+        upcomment(data.id, e).then(() => {
+          this.$message({
+            type: "success",
+            message: "操作成功!",
+          })
+        })
+      },
 
-        openDilog (row, type) {
-            this.dialogVisibles = true
-            this.discussForm.eventType = type
-            this.discussForm.articleId = row.id
-            this.discussForm.title = row.title
-            if (type == 0) {
-                this.discussForm.ontitle = '公益报名'
-            } else {
-                this.discussForm.ontitle = '创建议题'
-            }
-        },
-
-        handleSubmit (form, done) {
-            done()
-            addPd(form).then(
-                () => {
-                    this.$message({
-                        type: "success",
-                        message: "操作成功!",
-                    })
-                    this.dialogVisibles = false
-                    done()
-                },
-                (error) => {
-                    window.console.log(error)
-                    // loading();
-                }
-            )
-        },
-
-        handleClose (done) {
-            done()
-            // this.$confirm('确认关闭?')
-            //   .then(_ => {
-            //     done();
-            //   })
-            //   .catch(_ => {});
-        },
-        rowSave (row, done, loading) {
-            row['type'] = 5
-            row.userid = this.userInfo.user_id
-            row.articleRange = JSON.stringify(row.articleList)
-            if (row.url.length > 0) {
-                var urls = []
-                var split = row.url.split(",")
-                split.forEach(url => {
-                    var names = url.split("jczz/")
-                    urls.push(names[1])
-                })
-                row.url = urls.join(",")
-            }
-            add({
-                ...row,
-                districtId: row.articleList
-            }).then(
-                () => {
-                    this.onLoad(this.page)
-                    this.$message({
-                        type: "success",
-                        message: "操作成功!",
-                    })
-                    done()
-                },
-                (error) => {
-                    window.console.log(error)
-                    loading()
-                }
-            )
-        },
-        rowUpdate (row, index, done, loading) {
-            row.articleRange = JSON.stringify(row.articleList)
-            if (row.url.length > 0) {
-                var urls = []
-                var split = row.url.split(",")
-                split.forEach(url => {
-                    var names = url.split("jczz/")
-                    urls.push(names[1])
-                })
-                row.url = urls.join(",")
-            }
-
-            update({
-                ...row,
-                district_id: row.articleList
-            }).then(
-                () => {
-                    this.onLoad(this.page)
-                    this.$message({
-                        type: "success",
-                        message: "操作成功!",
-                    })
-                    done()
-                },
-                (error) => {
-                    window.console.log(error)
-                    loading()
-                }
-            )
-        },
-        rowDel (row) {
-            this.$confirm("确定将选择数据删除?", {
-                confirmButtonText: "确定",
-                cancelButtonText: "取消",
-                type: "warning",
-            })
-                .then(() => {
-                    return remove(row.id)
-                })
-                .then(() => {
-                    this.onLoad(this.page)
-                    this.$message({
-                        type: "success",
-                        message: "操作成功!",
-                    })
-                })
-        },
-        searchReset () {
-            this.query = {}
-            this.onLoad(this.page)
-        },
-        searchChange (params, done) {
-            this.query = params
-            this.page.currentPage = 1
-            this.onLoad(this.page, params)
-            done()
-        },
-        selectionChange (list) {
-            this.selectionList = list
-        },
-        selectionClear () {
-            this.selectionList = []
-            this.$refs.crud.toggleSelection()
-        },
-        handleDelete () {
-            if (this.selectionList.length === 0) {
-                this.$message.warning("请选择至少一条数据")
-                return
-            }
-            this.$confirm("确定将选择数据删除?", {
-                confirmButtonText: "确定",
-                cancelButtonText: "取消",
-                type: "warning",
-            })
-                .then(() => {
-                    return remove(this.ids)
-                })
-                .then(() => {
-                    this.onLoad(this.page)
-                    this.$message({
-                        type: "success",
-                        message: "操作成功!",
-                    })
-                    this.$refs.crud.toggleSelection()
-                })
-        },
-        beforeOpen (done, type) {
-            if (["edit", "view"].includes(type)) {
-                getNotice(this.form.id).then((res) => {
-                    let data = res.data.data
-                    // data.forEach(item=>{
-                    if (data.url.length > 0) {
-                        var urls = []
-                        var names = data.url.split(",")
-                        names.forEach(name => {
-                            urls.push(website.minioUrl + name)
-                        })
-                        data.url = urls.join(",")
-                    }
-                    data.articleList = JSON.parse(data.articleRange)
-                    this.form = data
-                })
-            }
-            // con
-            done()
-        },
-        currentChange (currentPage) {
-            this.page.currentPage = currentPage
-        },
-        sizeChange (pageSize) {
-            this.page.pageSize = pageSize
-        },
-        refreshChange () {
-            this.onLoad(this.page, this.query)
-        },
-        onLoad (page, params = {}) {
-            const {
-                dateTime
-            } = this.query
-            let values = {
-                ...params,
-            }
-            if (dateTime) {
-                values = {
-                    ...params,
-                    startTime: dateTime[0] + ' 00:00:01',
-                    endTime: dateTime[1] + ' 23:59:59',
-                    ...this.query,
-                }
-                values.dateTime = null
-            }
-            values.type = 5
-            this.loading = true
-            console.log(values)
-            getList(page.currentPage, page.pageSize, values).then((res) => {
-                const data = res.data.data
-                this.page.total = data.total
-                this.data = data.records
-                this.data.forEach(item => {
-                    if (item.url.length > 0) {
-                        var urls = []
-                        var names = item.url.split(",")
-                        names.forEach(name => {
-                            urls.push(website.minioUrl + name)
-                        })
-                        item.url = urls.join(",")
-                    }
-                })
-                this.loading = false
-                this.selectionClear()
-            })
-            getDistrictTree({
-                filterFlag: 1
-            }).then((res) => {
-                const data = res.data.data
-                this.districtTree = data
-                const column = this.findObject(this.option.column, "articleList")
-                column.dicData = res.data.data
-                this.loading = false
-            })
-        },
-        updateFb (row) {
-            if (row.publish == "0") {
-                row.publish = "1"
-            } else {
-                row.publish = "0"
-            }
-            if (row.url.length > 0) {
-                var urls = []
-                var split = row.url.split(",")
-                split.forEach(url => {
-                    var names = url.split("jczz/")
-                    urls.push(names[1])
-                })
-                row.url = urls.join(",")
-            }
-            update(row).then(
-                () => {
-                    this.onLoad(this.page)
-                    this.$message({
-                        type: "success",
-                        message: "操作成功!",
-                    })
-                    done()
-                },
-                (error) => {
-                    window.console.log(error)
-                    loading()
-                }
-            )
-        },
-        kqcomment () {
-            if (this.selectionList.length === 0) {
-                this.$message.warning("请选择至少一条数据")
-                return
-            }
-            this.$confirm("确定将选择数据开启评论?", {
-                confirmButtonText: "确定",
-                cancelButtonText: "取消",
-                type: "warning",
-            }).then(() => {
-                return upcomment(this.ids, "1")
-            })
-                .then(() => {
-                    this.onLoad(this.page)
-                    this.$message({
-                        type: "success",
-                        message: "操作成功!",
-                    })
-                    this.$refs.crud.toggleSelection()
-                })
-        },
-        gbcomment () {
-            if (this.selectionList.length === 0) {
-                this.$message.warning("请选择至少一条数据")
-                return
-            }
-            this.$confirm("确定将选择数据开启评论?", {
-                confirmButtonText: "确定",
-                cancelButtonText: "取消",
-                type: "warning",
-            }).then(() => {
-                return upcomment(this.ids, "0")
-            })
-                .then(() => {
-                    this.onLoad(this.page)
-                    this.$message({
-                        type: "success",
-                        message: "操作成功!",
-                    })
-                    this.$refs.crud.toggleSelection()
-                })
+      openDilog(row, type) {
+        this.dialogVisibles = true
+        this.discussForm.eventType = type
+        this.discussForm.articleId = row.id
+        this.discussForm.title = row.title
+        if (type == 0) {
+          this.discussForm.ontitle = '公益报名'
+        } else {
+          this.discussForm.ontitle = '创建议题'
         }
+      },
+
+      handleSubmit(form, done) {
+        done()
+        addPd(form).then(
+          () => {
+            this.$message({
+              type: "success",
+              message: "操作成功!",
+            })
+            this.dialogVisibles = false
+            done()
+          },
+          (error) => {
+            window.console.log(error)
+            // loading();
+          }
+        )
+      },
+
+      handleClose(done) {
+        done()
+        // this.$confirm('确认关闭?')
+        //   .then(_ => {
+        //     done();
+        //   })
+        //   .catch(_ => {});
+      },
+      rowSave(row, done, loading) {
+        row['type'] = 5
+        row.userid = this.userInfo.user_id
+        row.articleRange = JSON.stringify(row.articleList)
+        if (row.url.length > 0) {
+          var urls = []
+          var split = row.url.split(",")
+          split.forEach(url => {
+            var names = url.split("jczz/")
+            urls.push(names[1])
+          })
+          row.url = urls.join(",")
+        }
+        add({
+          ...row,
+          districtId: row.articleList
+        }).then(
+          () => {
+            this.onLoad(this.page)
+            this.$message({
+              type: "success",
+              message: "操作成功!",
+            })
+            done()
+          },
+          (error) => {
+            window.console.log(error)
+            loading()
+          }
+        )
+      },
+      rowUpdate(row, index, done, loading) {
+        row.articleRange = JSON.stringify(row.articleList)
+        if (row.url.length > 0) {
+          var urls = []
+          var split = row.url.split(",")
+          split.forEach(url => {
+            var names = url.split("jczz/")
+            urls.push(names[1])
+          })
+          row.url = urls.join(",")
+        }
+
+        update({
+          ...row,
+          district_id: row.articleList
+        }).then(
+          () => {
+            this.onLoad(this.page)
+            this.$message({
+              type: "success",
+              message: "操作成功!",
+            })
+            done()
+          },
+          (error) => {
+            window.console.log(error)
+            loading()
+          }
+        )
+      },
+      rowDel(row) {
+        this.$confirm("确定将选择数据删除?", {
+            confirmButtonText: "确定",
+            cancelButtonText: "取消",
+            type: "warning",
+          })
+          .then(() => {
+            return remove(row.id)
+          })
+          .then(() => {
+            this.onLoad(this.page)
+            this.$message({
+              type: "success",
+              message: "操作成功!",
+            })
+          })
+      },
+      searchReset() {
+        this.query = {}
+        this.onLoad(this.page)
+      },
+      searchChange(params, done) {
+        this.query = params
+        this.page.currentPage = 1
+        this.onLoad(this.page, params)
+        done()
+      },
+      selectionChange(list) {
+        this.selectionList = list
+      },
+      selectionClear() {
+        this.selectionList = []
+        this.$refs.crud.toggleSelection()
+      },
+      handleDelete() {
+        if (this.selectionList.length === 0) {
+          this.$message.warning("请选择至少一条数据")
+          return
+        }
+        this.$confirm("确定将选择数据删除?", {
+            confirmButtonText: "确定",
+            cancelButtonText: "取消",
+            type: "warning",
+          })
+          .then(() => {
+            return remove(this.ids)
+          })
+          .then(() => {
+            this.onLoad(this.page)
+            this.$message({
+              type: "success",
+              message: "操作成功!",
+            })
+            this.$refs.crud.toggleSelection()
+          })
+      },
+      beforeOpen(done, type) {
+        if (["edit", "view"].includes(type)) {
+          getNotice(this.form.id).then((res) => {
+            let data = res.data.data
+            // data.forEach(item=>{
+            if (data.url.length > 0) {
+              var urls = []
+              var names = data.url.split(",")
+              names.forEach(name => {
+                urls.push(website.minioUrl + name)
+              })
+              data.url = urls.join(",")
+            }
+            data.articleList = JSON.parse(data.articleRange)
+            this.form = data
+          })
+        }
+        // con
+        done()
+      },
+      currentChange(currentPage) {
+        this.page.currentPage = currentPage
+      },
+      sizeChange(pageSize) {
+        this.page.pageSize = pageSize
+      },
+      refreshChange() {
+        this.onLoad(this.page, this.query)
+      },
+      onLoad(page, params = {}) {
+        const {
+          dateTime
+        } = this.query
+        let values = {
+          ...params,
+        }
+        if (dateTime) {
+          values = {
+            ...params,
+            startTime: dateTime[0] + ' 00:00:01',
+            endTime: dateTime[1] + ' 23:59:59',
+            ...this.query,
+          }
+          values.dateTime = null
+        }
+        values.type = 5
+        this.loading = true
+        console.log(values)
+        getList(page.currentPage, page.pageSize, values).then((res) => {
+          const data = res.data.data
+          this.page.total = data.total
+          this.data = data.records
+          this.data.forEach(item => {
+            if (item.url.length > 0) {
+              var urls = []
+              var names = item.url.split(",")
+              names.forEach(name => {
+                urls.push(website.minioUrl + name)
+              })
+              item.url = urls.join(",")
+            }
+          })
+          this.loading = false
+          this.selectionClear()
+        })
+        getDistrictTree({
+          filterFlag: 1
+        }).then((res) => {
+          const data = res.data.data
+          this.districtTree = data
+          const column = this.findObject(this.option.column, "articleList")
+          column.dicData = res.data.data
+          this.loading = false
+        })
+      },
+      updateFb(row) {
+        if (row.publish == "0") {
+          row.publish = "1"
+        } else {
+          row.publish = "0"
+        }
+        if (row.url.length > 0) {
+          var urls = []
+          var split = row.url.split(",")
+          split.forEach(url => {
+            var names = url.split("jczz/")
+            urls.push(names[1])
+          })
+          row.url = urls.join(",")
+        }
+        update(row).then(
+          () => {
+            this.onLoad(this.page)
+            this.$message({
+              type: "success",
+              message: "操作成功!",
+            })
+            done()
+          },
+          (error) => {
+            window.console.log(error)
+            loading()
+          }
+        )
+      },
+      kqcomment() {
+        if (this.selectionList.length === 0) {
+          this.$message.warning("请选择至少一条数据")
+          return
+        }
+        this.$confirm("确定将选择数据开启评论?", {
+            confirmButtonText: "确定",
+            cancelButtonText: "取消",
+            type: "warning",
+          }).then(() => {
+            return upcomment(this.ids, "1")
+          })
+          .then(() => {
+            this.onLoad(this.page)
+            this.$message({
+              type: "success",
+              message: "操作成功!",
+            })
+            this.$refs.crud.toggleSelection()
+          })
+      },
+      gbcomment() {
+        if (this.selectionList.length === 0) {
+          this.$message.warning("请选择至少一条数据")
+          return
+        }
+        this.$confirm("确定将选择数据开启评论?", {
+            confirmButtonText: "确定",
+            cancelButtonText: "取消",
+            type: "warning",
+          }).then(() => {
+            return upcomment(this.ids, "0")
+          })
+          .then(() => {
+            this.onLoad(this.page)
+            this.$message({
+              type: "success",
+              message: "操作成功!",
+            })
+            this.$refs.crud.toggleSelection()
+          })
+      }
     },
-}
+  }
 </script>
 
 <style lang="scss" scoped>
-.avue-upload__icon {
+  .avue-upload__icon {
     line-height: 6;
-}
+  }
 
-:deep(.avue-form__menu--center) {
+  :deep(.avue-form__menu--center) {
     text-align: left;
-}
+  }
 
-:deep(.avue-form__menu--center .el-button) {
+  :deep(.avue-form__menu--center .el-button) {
     margin: 0 5px 0 0;
-}</style>
\ No newline at end of file
+  }
+</style>
\ No newline at end of file
diff --git a/src/views/property/process/maintenanceFundApply/detail.vue b/src/views/property/process/maintenanceFundApply/detail.vue
index dd59b1b..0b3df87 100644
--- a/src/views/property/process/maintenanceFundApply/detail.vue
+++ b/src/views/property/process/maintenanceFundApply/detail.vue
@@ -75,389 +75,387 @@
       </el-card>
     </el-form>
     <deitDiscussion ref="DeitDiscussion">
-  </deitDiscussion>
+    </deitDiscussion>
   </basic-container>
- 
+
 </template>
 
 <script>
-import {
-  historyFlowList,
-  leaveDetail
-} from "@/api/work/process";
-import {
-  getList,
-  remove,
-  update,
-  add,
-  getPropertyCapitalApply
-} from "@/api/property/propertyCapitalApply";
+  import {
+    historyFlowList,
+    leaveDetail
+  } from "@/api/work/process";
+  import {
+    getList,
+    remove,
+    update,
+    add,
+    getPropertyCapitalApply
+  } from "@/api/property/propertyCapitalApply";
 
-import {
-  getLists
-} from "@/api/discuss/topics"
-import deitDiscussion from "../../components/deitDiscussion.vue"
-export default {
-  components: {
-    deitDiscussion
-  },
-  data() {
-    return {
-      businessId: '',
-      processInstanceId: '',
-      src: '',
-      flowList: [],
-      form: {
-        flow: {
-          assigneeName: '',
-        },
-        startTime: '',
-        endTime: '',
-        reason: '',
-      },
-      option: {
-        height: "auto",
-        calcHeight: 54,
-        dialogWidth: 1150,
-        tip: false,
-        searchShow: true,
-        searchMenuSpan: 3,
-        menuWidth: 350,
-        border: true,
-        //stripe:true,
-        submitBtn: false,
-        emptyBtn: false,
-        index: true,
-        viewBtn: true,
-        selection: true,
-        dialogClickModal: false,
-        column: [{
-          label: "小区",
-          prop: "districtId",
-          searchSpan: 5,
-          search: true,
-          type: 'tree',
-          dicUrl: `/api/blade-district/district/getDistrictTree`,
-          cascader: ['articleId'],
-          props: {
-            label: "name",
-            value: "id"
+  import {
+    getLists
+  } from "@/api/discuss/topics"
+  import deitDiscussion from "../../components/deitDiscussion.vue"
+  export default {
+    components: {
+      deitDiscussion
+    },
+    data() {
+      return {
+        businessId: '',
+        processInstanceId: '',
+        src: '',
+        flowList: [],
+        form: {
+          flow: {
+            assigneeName: '',
           },
-          defaultExpandedKeys: ["361102003"],
-          span: 12,
-          labelWidth: 120,
-          width: 220,
-          overHidden: true,
-          rules: [{
-            required: true,
-            message: "请选择小区",
-            trigger: "blur",
-          },],
-          disabled: true
+          startTime: '',
+          endTime: '',
+          reason: '',
         },
-        {
-          label: '维修项目名称',
-          prop: 'name',
-          searchLabelWidth: 120,
-          searchSpan: 5,
-          search: true,
-          span: 12,
-          labelWidth: 140,
-          rules: [{
-            required: true,
-            message: "请输入维修项目名称",
-            trigger: "blur",
-          },],
-          disabled: true
-        },
-        {
-          label: "预计开工时间",
-          prop: "runTime",
-          span: 12,
-          labelWidth: 140,
-          type: "date",
-          format: "yyyy-MM-dd",
-          valueFormat: "yyyy-MM-dd",
-          rules: [{
-            required: true,
-            message: "请选择合同开始时间",
-            trigger: "blur",
-          },],
-          disabled: true
-        },
-        {
-          label: "预计竣工时间",
-          prop: "completedTime",
-          labelWidth: 140,
-          span: 12,
-          type: "date",
-          format: "yyyy-MM-dd",
-          valueFormat: "yyyy-MM-dd",
-          rules: [{
-            required: true,
-            message: "请选择合同结束时间",
-            trigger: "blur",
-          },],
-          disabled: true
-        },
-        {
-          label: "项目分摊方式",
-          prop: "allocationWay",
-          labelWidth: 140,
-          value: '按建筑面积分摊',
-          span: 12,
-          row: true,
-          disabled: true
-        },
-        {
-          label: '联系人',
-          prop: 'linkman',
-          span: 12,
-          labelWidth: 120,
-          search: true,
-          searchSpan: 4,
-          rules: [{
-            required: true,
-            message: "请输入联系人",
-            trigger: "blur",
-          },],
-          disabled: true
-        },
-        {
-          label: '联系方式',
-          prop: 'linkPhone',
-          span: 12,
-          labelWidth: 140,
-          rules: [{
-            required: true,
-            message: "请输入联系方式",
-            trigger: "blur",
-          },],
-          disabled: true
-        },
-        {
-          label: "项目预算总金额(元)",
-          prop: "budgetAmount",
-          span: 12,
-          hide: true,
-          labelWidth: 140,
-          type: 'number',
-          precision: 2,
-          value: '0.00',
-          disabled: true
-        },
-        {
-          label: "实际预算金额(元)",
-          prop: "actualAmount",
-          span: 12,
-          hide: true,
-          labelWidth: 140,
-          type: 'number',
-          precision: 2,
-          value: '0.00',
-          disabled: true
-        },
-        {
-          label: "自筹金额(元)",
-          prop: "selfAmount",
-          span: 12,
-          hide: true,
-          labelWidth: 140,
-          type: 'number',
-          precision: 2,
-          value: '0.00',
-          disabled: true
-        },
-        {
-          label: "预算应拨付金额(元)",
-          prop: "budgetAppropriateAmount",
-          span: 12,
-          hide: true,
-          labelWidth: 140,
-          type: 'number',
-          precision: 2,
-          value: '0.00',
-          disabled: true
-        },
-        {
-          disabled:true,
-          display: false,
-          hide: true,
-          parent: false,
-          label: "投票结果",
-          prop: "articleId",
-          search: false,
-          viewDisabled: false,
-          type: 'select',
-          dicUrl: `/api/blade-article/article/getArticleByDistrictId?type=4&eventType=1&districtId={{districtId}}`,
-          cascader: ['vote'],
-          props: {
-            label: "title",
-            value: "id"
-          },
-          defaultExpandedKeys: ["361102003"],
-          span: 12,
-          labelWidth:140,
-          rules: [{
-            required: true,
-            message: "请选择投票结果",
-            trigger: "blur",
-          },],
-          change: (val) => {
-            console.log("val===>", val)
-            // console.log("form===>",this.form)
-            if (val.value && !this.form.id) {
-              this.articleRange = val.articleRange;
-              // this.showDialog = true;
-              // this.getDetail(val.value, val.articleRange)
+        option: {
+          height: "auto",
+          calcHeight: 54,
+          dialogWidth: 1150,
+          tip: false,
+          searchShow: true,
+          searchMenuSpan: 3,
+          menuWidth: 350,
+          border: true,
+          //stripe:true,
+          submitBtn: false,
+          emptyBtn: false,
+          index: true,
+          viewBtn: true,
+          selection: true,
+          dialogClickModal: false,
+          column: [{
+              label: "小区",
+              prop: "districtId",
+              searchSpan: 5,
+              search: true,
+              type: 'tree',
+              dicUrl: `/api/blade-district/district/getDistrictTree`,
+              cascader: ['articleId'],
+              props: {
+                label: "name",
+                value: "id"
+              },
+              defaultExpandedKeys: ["361102003"],
+              span: 12,
+              labelWidth: 120,
+              width: 220,
+              overHidden: true,
+              rules: [{
+                required: true,
+                message: "请选择小区",
+                trigger: "blur",
+              }, ],
+              disabled: true
+            },
+            {
+              label: '维修项目名称',
+              prop: 'name',
+              searchLabelWidth: 120,
+              searchSpan: 5,
+              search: true,
+              span: 12,
+              labelWidth: 140,
+              rules: [{
+                required: true,
+                message: "请输入维修项目名称",
+                trigger: "blur",
+              }, ],
+              disabled: true
+            },
+            {
+              label: "预计开工时间",
+              prop: "runTime",
+              span: 12,
+              labelWidth: 140,
+              type: "date",
+              format: "yyyy-MM-dd",
+              valueFormat: "yyyy-MM-dd",
+              rules: [{
+                required: true,
+                message: "请选择合同开始时间",
+                trigger: "blur",
+              }, ],
+              disabled: true
+            },
+            {
+              label: "预计竣工时间",
+              prop: "completedTime",
+              labelWidth: 140,
+              span: 12,
+              type: "date",
+              format: "yyyy-MM-dd",
+              valueFormat: "yyyy-MM-dd",
+              rules: [{
+                required: true,
+                message: "请选择合同结束时间",
+                trigger: "blur",
+              }, ],
+              disabled: true
+            },
+            {
+              label: "楼栋",
+              prop: "buildingName",
+              labelWidth: 140,
+              value: '',
+              span: 12,
+              row: true,
+              disabled: true
+            },
+            {
+              label: '联系人',
+              prop: 'linkman',
+              span: 12,
+              labelWidth: 120,
+              search: true,
+              searchSpan: 4,
+              rules: [{
+                required: true,
+                message: "请输入联系人",
+                trigger: "blur",
+              }, ],
+              disabled: true
+            },
+            {
+              label: '联系方式',
+              prop: 'linkPhone',
+              span: 12,
+              labelWidth: 140,
+              rules: [{
+                required: true,
+                message: "请输入联系方式",
+                trigger: "blur",
+              }, ],
+              disabled: true
+            },
+            {
+              label: "项目预算总金额(元)",
+              prop: "budgetAmount",
+              span: 12,
+              hide: true,
+              labelWidth: 140,
+              type: 'number',
+              precision: 2,
+              value: '0.00',
+              disabled: true
+            },
+            {
+              label: "实际预算金额(元)",
+              prop: "actualAmount",
+              span: 12,
+              hide: true,
+              labelWidth: 140,
+              type: 'number',
+              precision: 2,
+              value: '0.00',
+              disabled: true
+            },
+            {
+              label: "自筹金额(元)",
+              prop: "selfAmount",
+              span: 12,
+              hide: true,
+              labelWidth: 140,
+              type: 'number',
+              precision: 2,
+              value: '0.00',
+              disabled: true
+            },
+            {
+              label: "预算应拨付金额(元)",
+              prop: "budgetAppropriateAmount",
+              span: 12,
+              hide: true,
+              labelWidth: 140,
+              type: 'number',
+              precision: 2,
+              value: '0.00',
+              disabled: true
+            },
+            {
+              disabled: true,
+              display: false,
+              hide: true,
+              parent: false,
+              label: "投票结果",
+              prop: "articleId",
+              search: false,
+              viewDisabled: false,
+              type: 'select',
+              dicUrl: `/api/blade-article/article/getArticleByDistrictId?type=4&eventType=1&districtId={{districtId}}`,
+              cascader: ['vote'],
+              props: {
+                label: "title",
+                value: "id"
+              },
+              defaultExpandedKeys: ["361102003"],
+              span: 12,
+              labelWidth: 140,
+              rules: [{
+                required: true,
+                message: "请选择投票结果",
+                trigger: "blur",
+              }, ],
+              change: (val) => {
+                console.log("val===>", val)
+                // console.log("form===>",this.form)
+                if (val.value && !this.form.id) {
+                  this.articleRange = val.articleRange;
+                  // this.showDialog = true;
+                  // this.getDetail(val.value, val.articleRange)
+                }
+
+              }
+            },
+
+            {
+              disabled: true,
+              display: false,
+              span: 24,
+              hide: true,
+              prop: "vote",
+              slot: true,
+              label: "投票详情",
+              labelWidth: 140,
+
+            },
+
+            {
+              label: "项目摘要",
+              span: 24,
+              hide: true,
+              prop: "projectDigest",
+              placeholder: "例如:“XX小区XX栋XX设施设备维修,总的预算金额是X,是否含有审价,本次维修涉及范围共XX户,总面积的建筑面积为XX平方米”",
+              labelWidth: 140,
+              type: "textarea",
+              disabled: true
+            },
+            {
+              label: "项目进度描述",
+              span: 24,
+              hide: true,
+              prop: "projectDescribe",
+              labelWidth: 140,
+              type: "textarea",
+              disabled: true
+            },
+            {
+              label: '施工方案附件',
+              prop: 'constructionSchemeUrls',
+              type: 'upload',
+              span: 24,
+              hide: true,
+              labelWidth: 140,
+              multiple: true,
+              // showFileList: true,
+              propsHttp: {
+                res: 'data',
+                name: "originalName",
+                url: "link"
+              },
+              action: '/api/blade-resource/oss/endpoint/put-file-attach',
+              rules: [{
+                required: true,
+                message: "请上传施工方案",
+                trigger: "blur",
+              }, ],
             }
+          ],
+        },
+        topictData: [],
+        topicTitle: "",
+        articleRange: ""
+      }
+    },
 
+    watch: {
+      'form.districtId': {
+        handler(newData) {
+          const column = this.findObject(this.option.column, "articleId")
+          if (newData && this.form.articleId) {
+            column.display = true;
+          } else {
+            column.display = false
           }
-        },
-
-        {
-          disabled: true,
-          display: false,
-          span: 24,
-          hide: true,
-          prop: "vote",
-          slot: true,
-          label: "投票详情",
-          labelWidth: 140,
-
-        },
-
-        {
-          label: "项目摘要",
-          span: 24,
-          hide: true,
-          prop: "projectDigest",
-          placeholder: "例如:“XX小区XX栋XX设施设备维修,总的预算金额是X,是否含有审价,本次维修涉及范围共XX户,总面积的建筑面积为XX平方米”",
-          labelWidth: 140,
-          type: "textarea",
-          disabled: true
-        },
-        {
-          label: "项目进度描述",
-          span: 24,
-          hide: true,
-          prop: "projectDescribe",
-          labelWidth: 140,
-          type: "textarea",
-          disabled: true
-        },
-        {
-          label: '施工方案附件',
-          prop: 'constructionSchemeUrls',
-          type: 'upload',
-          span: 24,
-          hide: true,
-          labelWidth: 140,
-          multiple: true,
-          // showFileList: true,
-          propsHttp: {
-            res: 'data',
-            name: "originalName",
-            url: "link"
-          },
-          action: '/api/blade-resource/oss/endpoint/put-file-attach',
-          rules: [{
-            required: true,
-            message: "请上传施工方案",
-            trigger: "blur",
-          },],
         }
-        ],
       },
-      topictData: [],
-      topicTitle: "",
-      articleRange: ""
+
+
+      'form.articleId': {
+        handler(newData) {
+          this.getVoteDetail(this.form.articleId, this.articleRange)
+          const column = this.findObject(this.option.column, "vote")
+          if (newData) {
+            column.display = true;
+          } else {
+            column.display = false
+          }
+        }
+      },
+
+    },
+
+
+
+    created() {
+      this.init();
+    },
+    methods: {
+      init() {
+        this.processInstanceId = this.$route.params.processInstanceId;
+        this.businessId = this.$route.params.businessId;
+        historyFlowList(this.processInstanceId).then(res => {
+          const data = res.data;
+          if (data.success) {
+            this.flowList = data.data;
+          }
+        })
+        getPropertyCapitalApply(this.businessId).then(res => {
+          const data = res.data;
+          if (data.success) {
+            this.form = data.data;
+          }
+        })
+      },
+      handleCancel() {
+        this.$router.$avueRouter.closeTag();
+        this.$router.push({
+          path: `/work/start`
+        });
+      },
+
+      getVoteDetail(articleId, districtId) {
+        let params = {
+          level: 1,
+          articleId: articleId,
+          districtId: districtId
+        }
+        getLists(1, 10, params).then(res => {
+          const data = res.data.data
+          if (data.length) {
+            this.topictData = data[0].children;
+            this.topicTitle = data[0].discussContent;
+          }
+        })
+      },
+
+      openUserPopup(row) {
+        this.$refs.DeitDiscussion.openUser(row, 1, [this.form.districtId])
+      },
     }
-  },
-
-  watch: {
-    'form.districtId': {
-      handler(newData) {
-        const column = this.findObject(this.option.column, "articleId")
-        if (newData && this.form.articleId) {
-          column.display = true;
-        } else {
-          column.display = false
-        }
-      }
-    },
-
-
-    'form.articleId': {
-      handler(newData) {
-        this.getVoteDetail(this.form.articleId, this.articleRange)
-        const column = this.findObject(this.option.column, "vote")
-        if (newData) {
-          column.display = true;
-        } else {
-          column.display = false
-        }
-      }
-    },
-
-  },
-
-
-
-  created() {
-    this.init();
-  },
-  methods: {
-    init() {
-      this.processInstanceId = this.$route.params.processInstanceId;
-      this.businessId = this.$route.params.businessId;
-      historyFlowList(this.processInstanceId).then(res => {
-        const data = res.data;
-        if (data.success) {
-          this.flowList = data.data;
-        }
-      })
-      getPropertyCapitalApply(this.businessId).then(res => {
-        const data = res.data;
-        if (data.success) {
-          this.form = data.data;
-        }
-      })
-    },
-    handleCancel() {
-      this.$router.$avueRouter.closeTag();
-      this.$router.push({
-        path: `/work/start`
-      });
-    },
-
-    getVoteDetail(articleId, districtId) {
-      let params = {
-        level: 1,
-        articleId: articleId,
-        districtId: districtId
-      }
-      getLists(1, 10, params).then(res => {
-        const data = res.data.data
-        if (data.length) {
-          this.topictData = data[0].children;
-          this.topicTitle = data[0].discussContent;
-        }
-      })
-    },
-
-    openUserPopup(row) {
-      this.$refs.DeitDiscussion.openUser(row, 1, [this.form.districtId])
-    },
   }
-}
 </script>
 
 
 <style>
-
-
-.workOrderStyle {
-  font-weight: normal;
-}
-</style>
\ No newline at end of file
+  .workOrderStyle {
+    font-weight: normal;
+  }
+</style>
diff --git a/src/views/property/process/maintenanceFundApply/edit.vue b/src/views/property/process/maintenanceFundApply/edit.vue
index ffe9e65..7eb648f 100644
--- a/src/views/property/process/maintenanceFundApply/edit.vue
+++ b/src/views/property/process/maintenanceFundApply/edit.vue
@@ -85,466 +85,468 @@
 </template>
 
 <script>
-import {
-  historyFlowList,
-  leaveDetail
-} from "@/api/work/process";
+  import {
+    historyFlowList,
+    leaveDetail
+  } from "@/api/work/process";
 
-import {
-  getList,
-  remove,
-  update,
-  add,
-  getPropertyCapitalApply
-} from "@/api/property/propertyCapitalApply";
-import {
-  completeTask
-} from "@/api/work/work";
-import {
-  getLists
-} from "@/api/discuss/topics"
-import deitDiscussion from "../../components/deitDiscussion.vue"
-export default {
-  components: {
-    deitDiscussion
-  },
-  data() {
-    return {
-      taskId: '',
-      businessId: '',
-      processInstanceId: '',
-      src: '',
-      flowList: [],
-      form: {
-        flow: {
-          assigneeName: '',
-        },
-        startTime: '',
-        endTime: '',
-        reason: '',
-        comment: '',
-      },
-      option: {
-        height: "auto",
-        calcHeight: 54,
-        dialogWidth: 1150,
-        tip: false,
-        searchShow: true,
-        searchMenuSpan: 3,
-        menuWidth: 350,
-        border: true,
-        //stripe:true,
-        submitBtn: false,
-        emptyBtn: false,
-        index: true,
-        viewBtn: true,
-        selection: true,
-        dialogClickModal: false,
-        column: [{
-          label: "小区",
-          prop: "districtId",
-          searchSpan: 5,
-          search: true,
-          type: 'tree',
-          dicUrl: `/api/blade-district/district/getDistrictTree`,
-          cascader: ['articleId'],
-          props: {
-            label: "name",
-            value: "id"
+  import {
+    getList,
+    remove,
+    update,
+    add,
+    getPropertyCapitalApply
+  } from "@/api/property/propertyCapitalApply";
+  import {
+    completeTask
+  } from "@/api/work/work";
+  import {
+    getLists
+  } from "@/api/discuss/topics"
+  import deitDiscussion from "../../components/deitDiscussion.vue"
+  export default {
+    components: {
+      deitDiscussion
+    },
+    data() {
+      return {
+        taskId: '',
+        businessId: '',
+        processInstanceId: '',
+        src: '',
+        flowList: [],
+        form: {
+          flow: {
+            assigneeName: '',
           },
-          defaultExpandedKeys: ["361102003"],
-          span: 12,
-          labelWidth: 140,
-          width: 220,
-          overHidden: true,
-          rules: [{
-            required: true,
-            message: "请选择小区",
-            trigger: "blur",
-          },],
+          startTime: '',
+          endTime: '',
+          reason: '',
+          comment: '',
         },
-        {
-          label: '维修项目名称',
-          prop: 'name',
-          searchLabelWidth: 120,
-          searchSpan: 5,
-          search: true,
-          span: 12,
-          labelWidth: 140,
-          rules: [{
-            required: true,
-            message: "请输入维修项目名称",
-            trigger: "blur",
-          },],
-        },
-        {
-          label: "预计开工时间",
-          prop: "runTime",
-          span: 12,
-          labelWidth: 140,
-          type: "date",
-          format: "yyyy-MM-dd",
-          valueFormat: "yyyy-MM-dd",
-          rules: [{
-            required: true,
-            message: "请选择合同开始时间",
-            trigger: "blur",
-          },],
-        },
-        {
-          label: "预计竣工时间",
-          prop: "completedTime",
-          labelWidth: 140,
-          span: 12,
-          type: "date",
-          format: "yyyy-MM-dd",
-          valueFormat: "yyyy-MM-dd",
-          rules: [{
-            required: true,
-            message: "请选择合同结束时间",
-            trigger: "blur",
-          },],
-        },
-        {
-          label: "项目分摊方式",
-          prop: "allocationWay",
-          labelWidth: 140,
-          value: '按建筑面积分摊',
-          span: 12,
-          row: true,
-        },
-        {
-          label: '联系人',
-          prop: 'linkman',
-          span: 12,
-          labelWidth: 140,
-          search: true,
-          searchSpan: 4,
-          rules: [{
-            required: true,
-            message: "请输入联系人",
-            trigger: "blur",
-          },],
-        },
-        {
-          label: '联系方式',
-          prop: 'linkPhone',
-          span: 12,
-          labelWidth: 140,
-          rules: [{
-            required: true,
-            message: "请输入联系方式",
-            trigger: "blur",
-          },],
-        },
-        {
-          label: "项目预算总金额(元)",
-          prop: "budgetAmount",
-          span: 12,
-          hide: true,
-          labelWidth: 140,
-          type: 'number',
-          precision: 2,
-          value: '0.00',
-        },
-        {
-          label: "实际预算金额(元)",
-          prop: "actualAmount",
-          span: 12,
-          hide: true,
-          labelWidth: 140,
-          type: 'number',
-          precision: 2,
-          value: '0.00',
-        },
-        {
-          label: "自筹金额(元)",
-          prop: "selfAmount",
-          span: 12,
-          hide: true,
-          labelWidth: 140,
-          type: 'number',
-          precision: 2,
-          value: '0.00',
-        },
-        {
-          label: "预算应拨付金额(元)",
-          prop: "budgetAppropriateAmount",
-          span: 12,
-          hide: true,
-          labelWidth: 140,
-          type: 'number',
-          precision: 2,
-          value: '0.00',
-        },
-        {
-          display: false,
-          hide: true,
-          parent: false,
-          label: "投票结果",
-          prop: "articleId",
-          search: false,
-          viewDisabled: false,
-          type: 'select',
-          dicUrl: `/api/blade-article/article/getArticleByDistrictId?type=4&eventType=1&districtIdList={{districtId}}`,
-          // slot: true,
-          formslot: true,
-          cascader: ['vote'],
-          props: {
-            label: "title",
-            value: "id"
-          },
-          defaultExpandedKeys: ["361102003"],
-          span: 12,
-          width: 260,
-          rules: [{
-            required: true,
-            message: "请选择投票结果",
-            trigger: "blur",
-          },],
-          change: (val) => {
-            console.log("val===>", val)
-            // console.log("form===>",this.form)
+        option: {
+          height: "auto",
+          calcHeight: 54,
+          dialogWidth: 1150,
+          tip: false,
+          searchShow: true,
+          searchMenuSpan: 3,
+          menuWidth: 350,
+          border: true,
+          //stripe:true,
+          submitBtn: false,
+          emptyBtn: false,
+          index: true,
+          viewBtn: true,
+          selection: true,
+          dialogClickModal: false,
+          column: [{
+              label: "小区",
+              prop: "districtId",
+              searchSpan: 5,
+              search: true,
+              type: 'tree',
+              dicUrl: `/api/blade-district/district/getDistrictTree`,
+              cascader: ['articleId'],
+              props: {
+                label: "name",
+                value: "id"
+              },
+              defaultExpandedKeys: ["361102003"],
+              span: 12,
+              labelWidth: 140,
+              width: 220,
+              overHidden: true,
+              rules: [{
+                required: true,
+                message: "请选择小区",
+                trigger: "blur",
+              }, ],
+            },
+            {
+              label: '维修项目名称',
+              prop: 'name',
+              searchLabelWidth: 120,
+              searchSpan: 5,
+              search: true,
+              span: 12,
+              labelWidth: 140,
+              rules: [{
+                required: true,
+                message: "请输入维修项目名称",
+                trigger: "blur",
+              }, ],
+            },
+            {
+              label: "预计开工时间",
+              prop: "runTime",
+              span: 12,
+              labelWidth: 140,
+              type: "date",
+              format: "yyyy-MM-dd",
+              valueFormat: "yyyy-MM-dd",
+              rules: [{
+                required: true,
+                message: "请选择合同开始时间",
+                trigger: "blur",
+              }, ],
+            },
+            {
+              label: "预计竣工时间",
+              prop: "completedTime",
+              labelWidth: 140,
+              span: 12,
+              type: "date",
+              format: "yyyy-MM-dd",
+              valueFormat: "yyyy-MM-dd",
+              rules: [{
+                required: true,
+                message: "请选择合同结束时间",
+                trigger: "blur",
+              }, ],
+            },
+            {
+              label: "楼栋",
+              prop: "buildingName",
+              value: '',
+              span: 12,
+              row: true,
+              rules: [{
+                required: true,
+                message: "请输入楼栋",
+                trigger: "blur",
+              }, ],
+            },
+            {
+              label: '联系人',
+              prop: 'linkman',
+              span: 12,
+              labelWidth: 140,
+              search: true,
+              searchSpan: 4,
+              rules: [{
+                required: true,
+                message: "请输入联系人",
+                trigger: "blur",
+              }, ],
+            },
+            {
+              label: '联系方式',
+              prop: 'linkPhone',
+              span: 12,
+              labelWidth: 140,
+              rules: [{
+                required: true,
+                message: "请输入联系方式",
+                trigger: "blur",
+              }, ],
+            },
+            {
+              label: "项目预算总金额(元)",
+              prop: "budgetAmount",
+              span: 12,
+              hide: true,
+              labelWidth: 140,
+              type: 'number',
+              precision: 2,
+              value: '0.00',
+            },
+            {
+              label: "实际预算金额(元)",
+              prop: "actualAmount",
+              span: 12,
+              hide: true,
+              labelWidth: 140,
+              type: 'number',
+              precision: 2,
+              value: '0.00',
+            },
+            {
+              label: "自筹金额(元)",
+              prop: "selfAmount",
+              span: 12,
+              hide: true,
+              labelWidth: 140,
+              type: 'number',
+              precision: 2,
+              value: '0.00',
+            },
+            {
+              label: "预算应拨付金额(元)",
+              prop: "budgetAppropriateAmount",
+              span: 12,
+              hide: true,
+              labelWidth: 140,
+              type: 'number',
+              precision: 2,
+              value: '0.00',
+            },
+            {
+              display: false,
+              hide: true,
+              parent: false,
+              label: "投票结果",
+              prop: "articleId",
+              search: false,
+              viewDisabled: false,
+              type: 'select',
+              dicUrl: `/api/blade-article/article/getArticleByDistrictId?type=4&eventType=1&districtIdList={{districtId}}`,
+              // slot: true,
+              formslot: true,
+              cascader: ['vote'],
+              props: {
+                label: "title",
+                value: "id"
+              },
+              defaultExpandedKeys: ["361102003"],
+              span: 12,
+              width: 260,
+              rules: [{
+                required: true,
+                message: "请选择投票结果",
+                trigger: "blur",
+              }, ],
+              change: (val) => {
+                console.log("val===>", val)
+                // console.log("form===>",this.form)
 
 
+              }
+            },
+
+            {
+              display: false,
+              span: 24,
+              hide: true,
+              prop: "vote",
+              slot: true,
+              label: "投票详情",
+              labelWidth: 140,
+
+            },
+            {
+              label: "项目摘要",
+              span: 24,
+              hide: true,
+              prop: "projectDigest",
+              placeholder: "例如:“XX小区XX栋XX设施设备维修,总的预算金额是X,是否含有审价,本次维修涉及范围共XX户,总面积的建筑面积为XX平方米”",
+              labelWidth: 140,
+              type: "textarea",
+            },
+            {
+              label: "项目进度描述",
+              span: 24,
+              hide: true,
+              prop: "projectDescribe",
+              labelWidth: 140,
+              type: "textarea",
+            },
+            // {
+            //   label: "批复意见",
+            //   span: 24,
+            //   hide: true,
+            //   prop: "comment",
+            //   labelWidth: 140,
+            //   type: "textarea",
+            //   rules: [{
+            //     required: true,
+            //     message: "请输入批复意见",
+            //     trigger: "blur",
+            //   }, ],
+            // },
+            {
+              label: '施工方案附件',
+              prop: 'constructionSchemeUrls',
+              type: 'upload',
+              span: 24,
+              hide: true,
+              labelWidth: 140,
+              multiple: true,
+              // showFileList: true,
+              propsHttp: {
+                res: 'data',
+                name: "originalName",
+                url: "link"
+              },
+              action: '/api/blade-resource/oss/endpoint/put-file-attach',
+              rules: [{
+                required: true,
+                message: "请上传施工方案",
+                trigger: "blur",
+              }, ],
+            }
+          ],
+        },
+        topictData: [],
+        topicTitle: "",
+        articleRange: ""
+      }
+    },
+
+
+    watch: {
+      'form.districtId': {
+        handler(newData) {
+          const column = this.findObject(this.option.column, "articleId")
+          if (newData && this.form.articleId) {
+            column.display = true;
+          } else {
+            column.display = false
           }
-        },
-
-        {
-          display: false,
-          span: 24,
-          hide: true,
-          prop: "vote",
-          slot: true,
-          label: "投票详情",
-          labelWidth: 140,
-
-        },
-        {
-          label: "项目摘要",
-          span: 24,
-          hide: true,
-          prop: "projectDigest",
-          placeholder: "例如:“XX小区XX栋XX设施设备维修,总的预算金额是X,是否含有审价,本次维修涉及范围共XX户,总面积的建筑面积为XX平方米”",
-          labelWidth: 140,
-          type: "textarea",
-        },
-        {
-          label: "项目进度描述",
-          span: 24,
-          hide: true,
-          prop: "projectDescribe",
-          labelWidth: 140,
-          type: "textarea",
-        },
-        // {
-        //   label: "批复意见",
-        //   span: 24,
-        //   hide: true,
-        //   prop: "comment",
-        //   labelWidth: 140,
-        //   type: "textarea",
-        //   rules: [{
-        //     required: true,
-        //     message: "请输入批复意见",
-        //     trigger: "blur",
-        //   }, ],
-        // },
-        {
-          label: '施工方案附件',
-          prop: 'constructionSchemeUrls',
-          type: 'upload',
-          span: 24,
-          hide: true,
-          labelWidth: 140,
-          multiple: true,
-          // showFileList: true,
-          propsHttp: {
-            res: 'data',
-            name: "originalName",
-            url: "link"
-          },
-          action: '/api/blade-resource/oss/endpoint/put-file-attach',
-          rules: [{
-            required: true,
-            message: "请上传施工方案",
-            trigger: "blur",
-          },],
         }
-        ],
       },
-      topictData: [],
-      topicTitle: "",
-      articleRange: ""
-    }
-  },
 
 
-  watch: {
-    'form.districtId': {
-      handler(newData) {
-        const column = this.findObject(this.option.column, "articleId")
-        if (newData && this.form.articleId) {
-          column.display = true;
-        } else {
-          column.display = false
+      'form.articleId': {
+        handler(newData) {
+          this.getVoteDetail(this.form.articleId, this.articleRange)
+          const column = this.findObject(this.option.column, "vote")
+          if (newData) {
+            column.display = true;
+          } else {
+            column.display = false
+          }
         }
-      }
+      },
+
     },
 
 
-    'form.articleId': {
-      handler(newData) {
-        this.getVoteDetail(this.form.articleId, this.articleRange)
-        const column = this.findObject(this.option.column, "vote")
-        if (newData) {
-          column.display = true;
-        } else {
-          column.display = false
-        }
-      }
-    },
-
-  },
-
-
-  created() {
-    this.init();
-  },
-  beforeRouteUpdate(to, from, next) {
-    // 在当前路由改变,但是该组件被复用时调用
-    // 举例来说,对于一个带有动态参数的路径 /foo/:id,在 /foo/1 和 /foo/2 之间跳转的时候
-    // 由于会渲染同样的 Foo 组件,因此组件实例会被复用。而这个钩子就会在这个情况下被调用
-    // 可以访问组件实例 `this`
-    if (to.fullPath !== from.fullPath) {
-      next();
+    created() {
       this.init();
-    }
-  },
-  methods: {
-    handleSubmit(form, done, loading) {
-      if (form.constructionSchemeUrls.length > 0) {
-        var urls = []
-        var split = form.constructionSchemeUrls.split(",");
-        split.forEach(url => {
-          var names = url.split("jczz/");
-          urls.push(names[1])
+    },
+    beforeRouteUpdate(to, from, next) {
+      // 在当前路由改变,但是该组件被复用时调用
+      // 举例来说,对于一个带有动态参数的路径 /foo/:id,在 /foo/1 和 /foo/2 之间跳转的时候
+      // 由于会渲染同样的 Foo 组件,因此组件实例会被复用。而这个钩子就会在这个情况下被调用
+      // 可以访问组件实例 `this`
+      if (to.fullPath !== from.fullPath) {
+        next();
+        this.init();
+      }
+    },
+    methods: {
+      handleSubmit(form, done, loading) {
+        if (form.constructionSchemeUrls.length > 0) {
+          var urls = []
+          var split = form.constructionSchemeUrls.split(",");
+          split.forEach(url => {
+            var names = url.split("jczz/");
+            urls.push(names[1])
+          })
+          form.constructionSchemeUrls = urls.join(",")
+        }
+        update(form).then(
+          () => {
+            this.onLoad(this.page);
+            this.$message({
+              type: "success",
+              message: "操作成功!",
+            });
+            done();
+          },
+          (error) => {
+            window.console.log(error);
+            loading();
+          }
+        );
+      },
+      init() {
+        this.taskId = this.$route.params.taskId;
+        this.processInstanceId = this.$route.params.processInstanceId;
+        this.businessId = this.$route.params.businessId;
+        historyFlowList(this.processInstanceId).then(res => {
+          const data = res.data;
+          if (data.success) {
+            this.flowList = data.data;
+          }
         })
-        form.constructionSchemeUrls = urls.join(",")
-      }
-      update(form).then(
-        () => {
-          this.onLoad(this.page);
-          this.$message({
-            type: "success",
-            message: "操作成功!",
-          });
-          done();
-        },
-        (error) => {
-          window.console.log(error);
-          loading();
+        getPropertyCapitalApply(this.businessId).then(res => {
+          const data = res.data;
+          if (data.success) {
+            this.form = data.data;
+          }
+        })
+      },
+      handleAgree() {
+        // if (!this.form.comment) {
+        //   this.$message.warning('请先填写批复意见');
+        //   return;
+        // }
+        const params = {
+          taskId: this.taskId,
+          processInstanceId: this.processInstanceId,
+          flag: 'ok',
+          comment: this.form.comment,
+        };
+        completeTask(params).then(res => {
+          const data = res.data;
+          if (data.success) {
+            this.$message.success(data.msg);
+            this.$router.$avueRouter.closeTag();
+            this.$router.push({
+              path: `/property/propertyCapitalApply`
+            });
+          } else {
+            this.$message.error(data.msg || '提交失败');
+          }
+        })
+      },
+      handleDisagree() {
+        this.form.comment = '关闭申请'
+        if (!this.form.comment) {
+          this.$message.warning('请先填写批复意见');
+          return;
         }
-      );
-    },
-    init() {
-      this.taskId = this.$route.params.taskId;
-      this.processInstanceId = this.$route.params.processInstanceId;
-      this.businessId = this.$route.params.businessId;
-      historyFlowList(this.processInstanceId).then(res => {
-        const data = res.data;
-        if (data.success) {
-          this.flowList = data.data;
-        }
-      })
-      getPropertyCapitalApply(this.businessId).then(res => {
-        const data = res.data;
-        if (data.success) {
-          this.form = data.data;
-        }
-      })
-    },
-    handleAgree() {
-      // if (!this.form.comment) {
-      //   this.$message.warning('请先填写批复意见');
-      //   return;
-      // }
-      const params = {
-        taskId: this.taskId,
-        processInstanceId: this.processInstanceId,
-        flag: 'ok',
-        comment: this.form.comment,
-      };
-      completeTask(params).then(res => {
-        const data = res.data;
-        if (data.success) {
-          this.$message.success(data.msg);
-          this.$router.$avueRouter.closeTag();
-          this.$router.push({
-            path: `/property/propertyCapitalApply`
-          });
-        } else {
-          this.$message.error(data.msg || '提交失败');
-        }
-      })
-    },
-    handleDisagree() {
-      this.form.comment = '关闭申请'
-      if (!this.form.comment) {
-        this.$message.warning('请先填写批复意见');
-        return;
-      }
-      const params = {
-        taskId: this.taskId,
-        processInstanceId: this.processInstanceId,
-        comment: this.form.comment,
-      };
-      completeTask(params).then(res => {
-        const data = res.data;
-        if (data.success) {
-          this.$message.success(data.msg);
-          this.$router.$avueRouter.closeTag();
-          this.$router.push({
-            path: `/property/propertyCapitalApply`
-          });
-        } else {
-          this.$message.error(data.msg || '提交失败');
-        }
-      })
-    },
-    handleCancel() {
-      this.$router.$avueRouter.closeTag();
-      this.$router.push({
-        path: `/property/todo`
-      });
-    },
+        const params = {
+          taskId: this.taskId,
+          processInstanceId: this.processInstanceId,
+          comment: this.form.comment,
+        };
+        completeTask(params).then(res => {
+          const data = res.data;
+          if (data.success) {
+            this.$message.success(data.msg);
+            this.$router.$avueRouter.closeTag();
+            this.$router.push({
+              path: `/property/propertyCapitalApply`
+            });
+          } else {
+            this.$message.error(data.msg || '提交失败');
+          }
+        })
+      },
+      handleCancel() {
+        this.$router.$avueRouter.closeTag();
+        this.$router.push({
+          path: `/property/todo`
+        });
+      },
 
-    getVoteDetail(articleId, districtId) {
-      let params = {
-        level: 1,
-        articleId: articleId,
-        districtId: districtId
-      }
-      getLists(1, 10, params).then(res => {
-        const data = res.data.data
-        if (data.length) {
-          this.topictData = data[0].children;
-          this.topicTitle = data[0].discussContent;
+      getVoteDetail(articleId, districtId) {
+        let params = {
+          level: 1,
+          articleId: articleId,
+          districtId: districtId
         }
-      })
-    },
+        getLists(1, 10, params).then(res => {
+          const data = res.data.data
+          if (data.length) {
+            this.topictData = data[0].children;
+            this.topicTitle = data[0].discussContent;
+          }
+        })
+      },
 
-    openUserPopup(row) {
-      this.$refs.DeitDiscussion.openUser(row, 1, [this.form.districtId])
-    },
+      openUserPopup(row) {
+        this.$refs.DeitDiscussion.openUser(row, 1, [this.form.districtId])
+      },
+    }
   }
-}
 </script>
 
 <style>
-
-
-.workOrderStyle {
-  font-weight: normal;
-}
-</style>
\ No newline at end of file
+  .workOrderStyle {
+    font-weight: normal;
+  }
+</style>
diff --git a/src/views/property/process/maintenanceFundApply/form.vue b/src/views/property/process/maintenanceFundApply/form.vue
index 0c26de1..97c2973 100644
--- a/src/views/property/process/maintenanceFundApply/form.vue
+++ b/src/views/property/process/maintenanceFundApply/form.vue
@@ -100,12 +100,13 @@
               }, ],
             },
             {
-              label: "项目分摊方式",
-              prop: "allocationWay",
+              label: "楼栋",
+              prop: "buildingName",
               labelWidth: 140,
-              value: '按建筑面积分摊',
+              value: '',
               span: 12,
               row: true,
+              disabled: true
             },
             {
               label: '联系人',
@@ -264,4 +265,4 @@
       }
     }
   }
-</script>
\ No newline at end of file
+</script>
diff --git a/src/views/property/process/maintenanceFundApply/handle.vue b/src/views/property/process/maintenanceFundApply/handle.vue
index fdbf8ee..f9663e3 100644
--- a/src/views/property/process/maintenanceFundApply/handle.vue
+++ b/src/views/property/process/maintenanceFundApply/handle.vue
@@ -81,461 +81,462 @@
 </template>
 
 <script>
-import {
-  historyFlowList,
-  leaveDetail
-} from "@/api/work/process"
+  import {
+    historyFlowList,
+    leaveDetail
+  } from "@/api/work/process"
 
-import {
-  getList,
-  remove,
-  update,
-  add,
-  getPropertyCapitalApply
-} from "@/api/property/propertyCapitalApply"
-import {
-  completeTask
-} from "@/api/work/work"
-import website from '@/config/website'
-import {
-  getLists
-} from "@/api/discuss/topics"
-import deitDiscussion from "../../components/deitDiscussion.vue"
+  import {
+    getList,
+    remove,
+    update,
+    add,
+    getPropertyCapitalApply
+  } from "@/api/property/propertyCapitalApply"
+  import {
+    completeTask
+  } from "@/api/work/work"
+  import website from '@/config/website'
+  import {
+    getLists
+  } from "@/api/discuss/topics"
+  import deitDiscussion from "../../components/deitDiscussion.vue"
 
-export default {
-  components: {
-    deitDiscussion
-  },
-  data() {
-    return {
-      taskId: '',
-      businessId: '',
-      processInstanceId: '',
-      src: '',
-      flowList: [],
-      form: {
-        flow: {
-          assigneeName: '',
-        },
-        startTime: '',
-        endTime: '',
-        reason: '',
-      },
-      option: {
-        height: "auto",
-        calcHeight: 54,
-        dialogWidth: 1150,
-        tip: false,
-        searchShow: true,
-        searchMenuSpan: 3,
-        menuWidth: 350,
-        border: true,
-        //stripe:true,
-        submitBtn: false,
-        emptyBtn: false,
-        index: true,
-        viewBtn: true,
-        selection: true,
-        dialogClickModal: false,
-        column: [{
-          label: "小区",
-          prop: "districtId",
-          searchSpan: 5,
-          search: true,
-          type: 'tree',
-          dicUrl: `/api/blade-district/district/getDistrictTree`,
-          cascader: ['articleId'],
-          props: {
-            label: "name",
-            value: "id"
+  export default {
+    components: {
+      deitDiscussion
+    },
+    data() {
+      return {
+        taskId: '',
+        businessId: '',
+        processInstanceId: '',
+        src: '',
+        flowList: [],
+        form: {
+          flow: {
+            assigneeName: '',
           },
-          defaultExpandedKeys: ["361102003"],
-          span: 12,
-          labelWidth: 140,
-          overHidden: true,
-          rules: [{
-            required: true,
-            message: "请选择小区",
-            trigger: "blur",
-          },],
-          disabled: true
+          startTime: '',
+          endTime: '',
+          reason: '',
         },
-        {
-          label: '维修项目名称',
-          prop: 'name',
-          searchLabelWidth: 120,
-          searchSpan: 5,
-          search: true,
-          span: 12,
-          labelWidth: 140,
-          width: 220,
-          rules: [{
-            required: true,
-            message: "请输入维修项目名称",
-            trigger: "blur",
-          },],
-          disabled: true
+        option: {
+          height: "auto",
+          calcHeight: 54,
+          dialogWidth: 1150,
+          tip: false,
+          searchShow: true,
+          searchMenuSpan: 3,
+          menuWidth: 350,
+          border: true,
+          //stripe:true,
+          submitBtn: false,
+          emptyBtn: false,
+          index: true,
+          viewBtn: true,
+          selection: true,
+          dialogClickModal: false,
+          column: [{
+              label: "小区",
+              prop: "districtId",
+              searchSpan: 5,
+              search: true,
+              type: 'tree',
+              dicUrl: `/api/blade-district/district/getDistrictTree`,
+              cascader: ['articleId'],
+              props: {
+                label: "name",
+                value: "id"
+              },
+              defaultExpandedKeys: ["361102003"],
+              span: 12,
+              labelWidth: 140,
+              overHidden: true,
+              rules: [{
+                required: true,
+                message: "请选择小区",
+                trigger: "blur",
+              }, ],
+              disabled: true
+            },
+            {
+              label: '维修项目名称',
+              prop: 'name',
+              searchLabelWidth: 120,
+              searchSpan: 5,
+              search: true,
+              span: 12,
+              labelWidth: 140,
+              width: 220,
+              rules: [{
+                required: true,
+                message: "请输入维修项目名称",
+                trigger: "blur",
+              }, ],
+              disabled: true
+            },
+            {
+              label: "预计开工时间",
+              prop: "runTime",
+              span: 12,
+              labelWidth: 140,
+              type: "date",
+              format: "yyyy-MM-dd",
+              valueFormat: "yyyy-MM-dd",
+              rules: [{
+                required: true,
+                message: "请选择合同开始时间",
+                trigger: "blur",
+              }, ],
+              disabled: true
+            },
+            {
+              label: "预计竣工时间",
+              prop: "completedTime",
+              labelWidth: 140,
+              span: 12,
+              type: "date",
+              format: "yyyy-MM-dd",
+              valueFormat: "yyyy-MM-dd",
+              rules: [{
+                required: true,
+                message: "请选择合同结束时间",
+                trigger: "blur",
+              }, ],
+              disabled: true
+            },
+            {
+              label: "楼栋",
+              prop: "buildingName",
+              labelWidth: 140,
+              value: '',
+              span: 12,
+              row: true,
+              disabled: true
+            },
+            {
+              label: '联系人',
+              prop: 'linkman',
+              span: 12,
+              labelWidth: 140,
+              search: true,
+              searchSpan: 4,
+              rules: [{
+                required: true,
+                message: "请输入联系人",
+                trigger: "blur",
+              }, ],
+              disabled: true
+            },
+            {
+              label: '联系方式',
+              prop: 'linkPhone',
+              span: 12,
+              labelWidth: 140,
+              rules: [{
+                required: true,
+                message: "请输入联系方式",
+                trigger: "blur",
+              }, ],
+              disabled: true
+            },
+            {
+              label: "项目预算总金额(元)",
+              prop: "budgetAmount",
+              span: 12,
+              hide: true,
+              labelWidth: 140,
+              type: 'number',
+              precision: 2,
+              value: '0.00',
+              disabled: true
+            },
+            {
+              label: "实际预算金额(元)",
+              prop: "actualAmount",
+              span: 12,
+              hide: true,
+              labelWidth: 140,
+              type: 'number',
+              precision: 2,
+              value: '0.00',
+              disabled: true
+            },
+            {
+              label: "自筹金额(元)",
+              prop: "selfAmount",
+              span: 12,
+              hide: true,
+              labelWidth: 140,
+              type: 'number',
+              precision: 2,
+              value: '0.00',
+              disabled: true
+            },
+            {
+              label: "预算应拨付金额(元)",
+              prop: "budgetAppropriateAmount",
+              span: 12,
+              hide: true,
+              labelWidth: 140,
+              type: 'number',
+              precision: 2,
+              value: '0.00',
+              disabled: true
+            },
+            {
+              disabled: true,
+              display: false,
+              hide: true,
+              parent: false,
+              label: "投票结果",
+              prop: "articleId",
+              search: false,
+              viewDisabled: false,
+              type: 'select',
+              dicUrl: `/api/blade-article/article/getArticleByDistrictId?type=4&eventType=1&districtIdList={{districtId}}`,
+              // slot: true,
+              formslot: true,
+              cascader: ['vote'],
+              props: {
+                label: "title",
+                value: "id"
+              },
+              defaultExpandedKeys: ["361102003"],
+              span: 12,
+              labelWidth: 140,
+              rules: [{
+                required: true,
+                message: "请选择议事",
+                trigger: "blur",
+              }, ],
+              change: (val) => {
+                console.log("val===>", val)
+                // console.log("form===>",this.form)
+              }
+            },
+
+            {
+              disabled: true,
+              display: false,
+              span: 24,
+              hide: true,
+              prop: "vote",
+              // formslot: true,
+              slot: true,
+              label: "投票详情",
+              labelWidth: 140
+            },
+
+
+
+            {
+              label: "项目摘要",
+              span: 24,
+              hide: true,
+              prop: "projectDigest",
+              placeholder: "例如:“XX小区XX栋XX设施设备维修,总的预算金额是X,是否含有审价,本次维修涉及范围共XX户,总面积的建筑面积为XX平方米”",
+              labelWidth: 140,
+              type: "textarea",
+              disabled: true
+            },
+            {
+              label: "项目进度描述",
+              span: 24,
+              hide: true,
+              prop: "projectDescribe",
+              labelWidth: 140,
+              type: "textarea",
+              disabled: true
+            }, {
+              label: "批复意见",
+              span: 24,
+              hide: true,
+              prop: "comment",
+              labelWidth: 140,
+              type: "textarea",
+              rules: [{
+                required: true,
+                message: "请输入批复意见",
+                trigger: "blur",
+              }, ],
+            },
+            {
+              label: '施工方案附件',
+              prop: 'constructionSchemeUrls',
+              type: 'upload',
+              listType: 'picture-img',
+              span: 24,
+              hide: true,
+              labelWidth: 140,
+              multiple: true,
+              // showFileList: true,
+              propsHttp: {
+                res: 'data',
+                name: "originalName",
+                url: "link"
+              },
+              action: '/api/blade-resource/oss/endpoint/put-file-attach',
+              rules: [{
+                required: true,
+                message: "请上传施工方案",
+                trigger: "blur",
+              }, ],
+            }
+          ],
         },
-        {
-          label: "预计开工时间",
-          prop: "runTime",
-          span: 12,
-          labelWidth: 140,
-          type: "date",
-          format: "yyyy-MM-dd",
-          valueFormat: "yyyy-MM-dd",
-          rules: [{
-            required: true,
-            message: "请选择合同开始时间",
-            trigger: "blur",
-          },],
-          disabled: true
-        },
-        {
-          label: "预计竣工时间",
-          prop: "completedTime",
-          labelWidth: 140,
-          span: 12,
-          type: "date",
-          format: "yyyy-MM-dd",
-          valueFormat: "yyyy-MM-dd",
-          rules: [{
-            required: true,
-            message: "请选择合同结束时间",
-            trigger: "blur",
-          },],
-          disabled: true
-        },
-        {
-          label: "项目分摊方式",
-          prop: "allocationWay",
-          labelWidth: 140,
-          value: '按建筑面积分摊',
-          span: 12,
-          // row: true,
-          disabled: true
-        },
-        {
-          label: '联系人',
-          prop: 'linkman',
-          span: 12,
-          labelWidth: 140,
-          search: true,
-          searchSpan: 4,
-          rules: [{
-            required: true,
-            message: "请输入联系人",
-            trigger: "blur",
-          },],
-          disabled: true
-        },
-        {
-          label: '联系方式',
-          prop: 'linkPhone',
-          span: 12,
-          labelWidth: 140,
-          rules: [{
-            required: true,
-            message: "请输入联系方式",
-            trigger: "blur",
-          },],
-          disabled: true
-        },
-        {
-          label: "项目预算总金额(元)",
-          prop: "budgetAmount",
-          span: 12,
-          hide: true,
-          labelWidth: 140,
-          type: 'number',
-          precision: 2,
-          value: '0.00',
-          disabled: true
-        },
-        {
-          label: "实际预算金额(元)",
-          prop: "actualAmount",
-          span: 12,
-          hide: true,
-          labelWidth: 140,
-          type: 'number',
-          precision: 2,
-          value: '0.00',
-          disabled: true
-        },
-        {
-          label: "自筹金额(元)",
-          prop: "selfAmount",
-          span: 12,
-          hide: true,
-          labelWidth: 140,
-          type: 'number',
-          precision: 2,
-          value: '0.00',
-          disabled: true
-        },
-        {
-          label: "预算应拨付金额(元)",
-          prop: "budgetAppropriateAmount",
-          span: 12,
-          hide: true,
-          labelWidth: 140,
-          type: 'number',
-          precision: 2,
-          value: '0.00',
-          disabled: true
-        },
-        {
-          disabled: true,
-          display: false,
-          hide: true,
-          parent: false,
-          label: "投票结果",
-          prop: "articleId",
-          search: false,
-          viewDisabled: false,
-          type: 'select',
-          dicUrl: `/api/blade-article/article/getArticleByDistrictId?type=4&eventType=1&districtIdList={{districtId}}`,
-          // slot: true,
-          formslot: true,
-          cascader: ['vote'],
-          props: {
-            label: "title",
-            value: "id"
-          },
-          defaultExpandedKeys: ["361102003"],
-          span: 12,
-          labelWidth: 140,
-          rules: [{
-            required: true,
-            message: "请选择议事",
-            trigger: "blur",
-          },],
-          change: (val) => {
-            console.log("val===>", val)
-            // console.log("form===>",this.form)
+        topictData: [],
+        topicTitle: "",
+        articleRange: ""
+      }
+    },
+    watch: {
+      'form.districtId': {
+        handler(newData) {
+          const column = this.findObject(this.option.column, "articleId")
+          if (newData && this.form.articleId) {
+            column.display = true;
+          } else {
+            column.display = false
           }
-        },
-
-        {
-          disabled: true,
-          display: false,
-          span: 24,
-          hide: true,
-          prop: "vote",
-          // formslot: true,
-          slot:true,
-          label: "投票详情",
-          labelWidth:140
-        },
-
-
-
-        {
-          label: "项目摘要",
-          span: 24,
-          hide: true,
-          prop: "projectDigest",
-          placeholder: "例如:“XX小区XX栋XX设施设备维修,总的预算金额是X,是否含有审价,本次维修涉及范围共XX户,总面积的建筑面积为XX平方米”",
-          labelWidth: 140,
-          type: "textarea",
-          disabled: true
-        },
-        {
-          label: "项目进度描述",
-          span: 24,
-          hide: true,
-          prop: "projectDescribe",
-          labelWidth: 140,
-          type: "textarea",
-          disabled: true
-        }, {
-          label: "批复意见",
-          span: 24,
-          hide: true,
-          prop: "comment",
-          labelWidth: 140,
-          type: "textarea",
-          rules: [{
-            required: true,
-            message: "请输入批复意见",
-            trigger: "blur",
-          },],
-        },
-        {
-          label: '施工方案附件',
-          prop: 'constructionSchemeUrls',
-          type: 'upload',
-          listType: 'picture-img',
-          span: 24,
-          hide: true,
-          labelWidth: 140,
-          multiple: true,
-          // showFileList: true,
-          propsHttp: {
-            res: 'data',
-            name: "originalName",
-            url: "link"
-          },
-          action: '/api/blade-resource/oss/endpoint/put-file-attach',
-          rules: [{
-            required: true,
-            message: "请上传施工方案",
-            trigger: "blur",
-          },],
         }
-        ],
       },
-      topictData: [],
-      topicTitle: "",
-      articleRange: ""
-    }
-  },
-  watch: {
-    'form.districtId': {
-      handler(newData) {
-        const column = this.findObject(this.option.column, "articleId")
-        if (newData && this.form.articleId) {
-          column.display = true;
-        } else {
-          column.display = false
+      'form.articleId': {
+        handler(newData) {
+          console.log("data===>", newData)
+          this.getVoteDetail(this.form.articleId, this.articleRange)
+          const column = this.findObject(this.option.column, "vote")
+          if (newData) {
+            column.display = true;
+          } else {
+            column.display = false
+          }
         }
-      }
-    },
-    'form.articleId': {
-      handler(newData) {
-        console.log("data===>", newData)
-        this.getVoteDetail(this.form.articleId, this.articleRange)
-        const column = this.findObject(this.option.column, "vote")
-        if (newData) {
-          column.display = true;
-        } else {
-          column.display = false
-        }
-      }
+      },
+
     },
 
-  },
-
-  created() {
-    this.init()
-  },
-  beforeRouteUpdate(to, from, next) {
-    // 在当前路由改变,但是该组件被复用时调用
-    // 举例来说,对于一个带有动态参数的路径 /foo/:id,在 /foo/1 和 /foo/2 之间跳转的时候
-    // 由于会渲染同样的 Foo 组件,因此组件实例会被复用。而这个钩子就会在这个情况下被调用
-    // 可以访问组件实例 `this`
-    if (to.fullPath !== from.fullPath) {
-      next()
+    created() {
       this.init()
+    },
+    beforeRouteUpdate(to, from, next) {
+      // 在当前路由改变,但是该组件被复用时调用
+      // 举例来说,对于一个带有动态参数的路径 /foo/:id,在 /foo/1 和 /foo/2 之间跳转的时候
+      // 由于会渲染同样的 Foo 组件,因此组件实例会被复用。而这个钩子就会在这个情况下被调用
+      // 可以访问组件实例 `this`
+      if (to.fullPath !== from.fullPath) {
+        next()
+        this.init()
+      }
+    },
+    methods: {
+      init() {
+        this.taskId = this.$route.params.taskId
+        this.processInstanceId = this.$route.params.processInstanceId
+        this.businessId = this.$route.params.businessId
+        historyFlowList(this.processInstanceId).then(res => {
+          const data = res.data
+          if (data.success) {
+            this.flowList = data.data
+          }
+        })
+        getPropertyCapitalApply(this.businessId).then(res => {
+          const data = res.data
+          if (data.success) {
+            data.data.constructionSchemeUrls = website.minioUrl + data.data.constructionSchemeUrls
+            this.form = data.data
+          }
+        })
+      },
+      handleAgree() {
+        if (!this.form.comment) {
+          this.$message.warning('请先填写批复意见')
+          return
+        }
+        const params = {
+          taskId: this.taskId,
+          processInstanceId: this.processInstanceId,
+          flag: 'ok',
+          comment: this.form.comment,
+        }
+        completeTask(params).then(res => {
+          const data = res.data
+          if (data.success) {
+            this.$message.success(data.msg)
+            this.$router.$avueRouter.closeTag()
+            this.$router.push({
+              path: `/property/todo`
+            })
+          } else {
+            this.$message.error(data.msg || '提交失败')
+          }
+        })
+      },
+      handleDisagree() {
+        if (!this.form.comment) {
+          this.$message.warning('请先填写批复意见')
+          return
+        }
+        const params = {
+          taskId: this.taskId,
+          processInstanceId: this.processInstanceId,
+          comment: this.form.comment,
+        }
+        completeTask(params).then(res => {
+          const data = res.data
+          if (data.success) {
+            this.$message.success(data.msg)
+            this.$router.$avueRouter.closeTag()
+            this.$router.push({
+              path: `/property/todo`
+            })
+          } else {
+            this.$message.error(data.msg || '提交失败')
+          }
+        })
+      },
+      handleCancel() {
+        this.$router.$avueRouter.closeTag()
+        this.$router.push({
+          path: `/property/todo`
+        })
+      },
+      getVoteDetail(articleId, districtId) {
+        let params = {
+          level: 1,
+          articleId: articleId,
+          districtId: districtId
+        }
+        getLists(1, 10, params).then(res => {
+          const data = res.data.data
+          if (data.length) {
+            this.topictData = data[0].children;
+            this.topicTitle = data[0].discussContent;
+          }
+        })
+      },
+      openUserPopup(row) {
+        this.$refs.DeitDiscussion.openUser(row, 1, [this.form.districtId])
+      },
     }
-  },
-  methods: {
-    init() {
-      this.taskId = this.$route.params.taskId
-      this.processInstanceId = this.$route.params.processInstanceId
-      this.businessId = this.$route.params.businessId
-      historyFlowList(this.processInstanceId).then(res => {
-        const data = res.data
-        if (data.success) {
-          this.flowList = data.data
-        }
-      })
-      getPropertyCapitalApply(this.businessId).then(res => {
-        const data = res.data
-        if (data.success) {
-          data.data.constructionSchemeUrls = website.minioUrl + data.data.constructionSchemeUrls
-          this.form = data.data
-        }
-      })
-    },
-    handleAgree() {
-      if (!this.form.comment) {
-        this.$message.warning('请先填写批复意见')
-        return
-      }
-      const params = {
-        taskId: this.taskId,
-        processInstanceId: this.processInstanceId,
-        flag: 'ok',
-        comment: this.form.comment,
-      }
-      completeTask(params).then(res => {
-        const data = res.data
-        if (data.success) {
-          this.$message.success(data.msg)
-          this.$router.$avueRouter.closeTag()
-          this.$router.push({
-            path: `/property/todo`
-          })
-        } else {
-          this.$message.error(data.msg || '提交失败')
-        }
-      })
-    },
-    handleDisagree() {
-      if (!this.form.comment) {
-        this.$message.warning('请先填写批复意见')
-        return
-      }
-      const params = {
-        taskId: this.taskId,
-        processInstanceId: this.processInstanceId,
-        comment: this.form.comment,
-      }
-      completeTask(params).then(res => {
-        const data = res.data
-        if (data.success) {
-          this.$message.success(data.msg)
-          this.$router.$avueRouter.closeTag()
-          this.$router.push({
-            path: `/property/todo`
-          })
-        } else {
-          this.$message.error(data.msg || '提交失败')
-        }
-      })
-    },
-    handleCancel() {
-      this.$router.$avueRouter.closeTag()
-      this.$router.push({
-        path: `/property/todo`
-      })
-    },
-    getVoteDetail(articleId, districtId) {
-      let params = {
-        level: 1,
-        articleId: articleId,
-        districtId: districtId
-      }
-      getLists(1, 10, params).then(res => {
-        const data = res.data.data
-        if (data.length) {
-          this.topictData = data[0].children;
-          this.topicTitle = data[0].discussContent;
-        }
-      })
-    },
-    openUserPopup(row) {
-      this.$refs.DeitDiscussion.openUser(row, 1, [this.form.districtId])
-    },
   }
-}
 </script>
 
 <style scoped>
-.container {
-  position: relative;
-  /* 确保按钮相对于该元素定位 */
-}
+  .container {
+    position: relative;
+    /* 确保按钮相对于该元素定位 */
+  }
 
-#myButton {
-  position: fixed;
-  bottom: 0;
-  left: 50%;
-  transform: translateX(-50%);
-}
-.workOrderStyle {
-  font-weight: normal;
-}
-</style>
\ No newline at end of file
+  #myButton {
+    position: fixed;
+    bottom: 0;
+    left: 50%;
+    transform: translateX(-50%);
+  }
+
+  .workOrderStyle {
+    font-weight: normal;
+  }
+</style>
diff --git a/src/views/property/propertyCapitalApply.vue b/src/views/property/propertyCapitalApply.vue
index 1d24143..3c66426 100644
--- a/src/views/property/propertyCapitalApply.vue
+++ b/src/views/property/propertyCapitalApply.vue
@@ -48,9 +48,9 @@
           v-text="textDispose(row, 'linkPhoneflag', 'linkPhone')">
         </el-button>
       </template>
-      <template slot="constructionSchemeUrlsType" slot-scope="{file}">
+      <!-- <template slot="constructionSchemeUrlsType" slot-scope="{file}">
         <span>{{ file }}</span>
-      </template>
+      </template> -->
     </avue-crud>
 
 
@@ -242,11 +242,16 @@
               }, ],
             },
             {
-              label: "项目分摊方式",
-              prop: "allocationWay",
-              value: '按建筑面积分摊',
+              label: "楼栋",
+              prop: "buildingName",
+              value: '',
               span: 12,
               row: true,
+              rules: [{
+                required: true,
+                message: "请输入楼栋",
+                trigger: "blur",
+              }, ],
             },
             {
               width: 110,
@@ -407,26 +412,266 @@
               prop: "projectDescribe",
               type: "textarea"
             },
+            // {
+            //   label: '施工方案附件',
+            //   prop: 'constructionSchemeUrls',
+            //   type: 'upload',
+            //   span: 24,
+            //   hide: true,
+            //   multiple: true,
+            //   listType: "text",
+            //   propsHttp: {
+            //     res: 'data',
+            //     name: "name",
+            //     url: "link"
+            //   },
+            //   action: '/api/blade-resource/oss/endpoint/put-file-attach',
+            //   rules: [{
+            //     required: true,
+            //     message: "请上传施工方案",
+            //     trigger: "blur",
+            //   }]
+            // },
             {
-              label: '施工方案附件',
-              prop: 'constructionSchemeUrls',
-              type: 'upload',
+
+              label: "维修资金使用申请审批表",
+              offset: 2,
+              labelPosition: "top",
+              prop: "file1",
+              type: "upload",
+              listType: "text",
+              action: "/api/blade-resource/oss/endpoint/put-file-attach",
+              propsHttp: {
+                res: "data",
+                name: 'name',
+                url: "link",
+              },
               span: 24,
               hide: true,
-              multiple: true,
-              // showFileList: true,
-              propsHttp: {
-                res: 'data',
-                name: "originalName",
-                url: "link"
-              },
-              action: '/api/blade-resource/oss/endpoint/put-file-attach',
               rules: [{
                 required: true,
-                message: "请上传施工方案",
+                message: "请上传文件",
                 trigger: "blur",
-              }, ],
-            }
+              }],
+            },
+            {
+
+              label: "申请使用维修资金的报告、附维修部位彩色照片、业委会(物管会)会议纪要(社区意见)",
+              offset: 2,
+              labelPosition: "top",
+              prop: "file2",
+              type: "upload",
+              listType: "text",
+              action: "/api/blade-resource/oss/endpoint/put-file-attach",
+              propsHttp: {
+                res: "data",
+                name: 'name',
+                url: "link",
+              },
+              span: 24,
+              hide: true,
+              rules: [{
+                required: true,
+                message: "请上传文件",
+                trigger: "blur",
+              }],
+            },
+            {
+
+              label: "公示单,现场勘察图片、公示照片(公示期7天)",
+              offset: 2,
+              labelPosition: "top",
+              prop: "file3",
+              type: "upload",
+              listType: "text",
+              action: "/api/blade-resource/oss/endpoint/put-file-attach",
+              propsHttp: {
+                res: "data",
+                name: 'name',
+                url: "link",
+              },
+              span: 24,
+              hide: true,
+              rules: [{
+                required: true,
+                message: "请上传文件",
+                trigger: "blur",
+              }],
+            },
+            {
+
+              label: "维修单位出具的工程款发票(验收合格后以竣工决算审核报告审定金额开具)",
+              offset: 2,
+              labelPosition: "top",
+              prop: "file4",
+              type: "upload",
+              listType: "text",
+              action: "/api/blade-resource/oss/endpoint/put-file-attach",
+              propsHttp: {
+                res: "data",
+                name: 'name',
+                url: "link",
+              },
+              span: 24,
+              hide: true,
+              rules: [{
+                required: true,
+                message: "请上传文件",
+                trigger: "blur",
+              }],
+            },
+            {
+              label: "应急维修需提供专业机构出具的检验检测报告或(乡镇人民政府)街道办事处现场核实意见",
+              offset: 2,
+              labelPosition: "top",
+              prop: "file5",
+              type: "upload",
+              listType: "text",
+              action: "/api/blade-resource/oss/endpoint/put-file-attach",
+              propsHttp: {
+                res: "data",
+                name: 'name',
+                url: "link",
+              },
+              span: 24,
+              hide: true,
+              rules: [{
+                required: true,
+                message: "请上传文件",
+                trigger: "blur",
+              }],
+            },
+            {
+
+              label: "业主签名表或线上表决记录(应急情况不提供)",
+              offset: 2,
+              labelPosition: "top",
+              prop: "file6",
+              type: "upload",
+              listType: "text",
+              action: "/api/blade-resource/oss/endpoint/put-file-attach",
+              propsHttp: {
+                res: "data",
+                name: 'name',
+                url: "link",
+              },
+              span: 24,
+              hide: true,
+              rules: [{
+                required: true,
+                message: "请上传文件",
+                trigger: "blur",
+              }],
+            },
+            {
+              label: "政府采购资料",
+              offset: 2,
+              labelPosition: "top",
+              prop: "file7",
+              type: "upload",
+              listType: "text",
+              action: "/api/blade-resource/oss/endpoint/put-file-attach",
+              propsHttp: {
+                res: "data",
+                name: 'name',
+                url: "link",
+              },
+              span: 24,
+              hide: true,
+              rules: [{
+                required: true,
+                message: "请上传文件",
+                trigger: "blur",
+              }],
+            },
+            {
+
+              label: "维修和更新、改造方案、维修项目的协议或合同",
+              offset: 2,
+              labelPosition: "top",
+              prop: "file8",
+              type: "upload",
+              listType: "text",
+              action: "/api/blade-resource/oss/endpoint/put-file-attach",
+              propsHttp: {
+                res: "data",
+                name: 'name',
+                url: "link",
+              },
+              span: 24,
+              hide: true,
+              rules: [{
+                required: true,
+                message: "请上传文件",
+                trigger: "blur",
+              }],
+            },
+            {
+
+              label: "维修改造工程竣工验收单一式两份(维修完工需经申请人签字);维修项目签证单(超出预算清单内容的需出具签证单)",
+              offset: 2,
+              labelPosition: "top",
+              prop: "file9",
+              type: "upload",
+              listType: "text",
+              action: "/api/blade-resource/oss/endpoint/put-file-attach",
+              propsHttp: {
+                res: "data",
+                name: 'name',
+                url: "link",
+              },
+              span: 24,
+              hide: true,
+              rules: [{
+                required: true,
+                message: "请上传文件",
+                trigger: "blur",
+              }],
+            },
+            {
+
+              label: "维修项目决算、造价机构出具的决算审价报告",
+              offset: 2,
+              labelPosition: "top",
+              prop: "file10",
+              type: "upload",
+              listType: "text",
+              action: "/api/blade-resource/oss/endpoint/put-file-attach",
+              propsHttp: {
+                res: "data",
+                name: 'name',
+                url: "link",
+              },
+              span: 24,
+              hide: true,
+              rules: [{
+                required: true,
+                message: "请上传文件",
+                trigger: "blur",
+              }],
+            },
+            {
+
+              label: "业主委员会情况登记表;经办人或代理人证件(复印件),复印件上签名、联系电话",
+              offset: 2,
+              labelPosition: "top",
+              prop: "file11",
+              type: "upload",
+              listType: "text",
+              action: "/api/blade-resource/oss/endpoint/put-file-attach",
+              propsHttp: {
+                res: "data",
+                name: 'name',
+                url: "link",
+              },
+              span: 24,
+              hide: true,
+              rules: [{
+                required: true,
+                message: "请上传文件",
+                trigger: "blur",
+              }],
+            },
           ],
         },
         data: [],
@@ -469,7 +714,6 @@
       //   },
       //   deep: true,
       // 	immediate: true
-
       // }
 
       'form.districtId': {
@@ -529,6 +773,7 @@
     },
     methods: {
 
+
       rowView() {
         this.showDialog = false;
       },
@@ -548,17 +793,63 @@
           path: `/property/process/maintenanceFundApply/detail/${row.processInstanceId}/${row.id}`
         })
       },
-      rowSave(row, done, loading) {
-        row.constructionSchemeUrls = func.join(row.constructionSchemeUrls)
-        if (row.constructionSchemeUrls.length > 0) {
-          var urls = []
-          var split = row.constructionSchemeUrls.split(",")
-          split.forEach(url => {
-            var names = url.split("jczz/")
-            urls.push(names[1])
-          })
-          row.constructionSchemeUrls = urls.join(",")
+
+      setFile(fileObj) {
+        for (let i in fileObj) {
+          fileObj[i] = func.join(fileObj[i])
+          if (fileObj[i].length > 0) {
+            var urls = []
+            var split = fileObj[i].split(",")
+            split.forEach(url => {
+              var names = url.split("jczz/")
+              urls.push(names[1])
+            })
+            fileObj[i] = urls.join(",")
+          }
         }
+        return fileObj;
+      },
+
+      rowSave(row, done, loading) {
+        // row.constructionSchemeUrls = func.join(row.constructionSchemeUrls)
+        // if (row.constructionSchemeUrls.length > 0) {
+        //   var urls = []
+        //   var split = row.constructionSchemeUrls.split(",")
+        //   split.forEach(url => {
+        //     var names = url.split("jczz/")
+        //     urls.push(names[1])
+        //   })
+        //   row.constructionSchemeUrls = urls.join(",")
+        // }
+
+        let keys = ["file1", "file2", "file3", "file4", "file5", "file6", "file7", "file8", "file9", "file10", "file11"]
+        let files = {};
+        for (let i in row) {
+          if (keys.indexOf(i) != -1) {
+
+            files[i] = row[i];
+          }
+        }
+        for (let k in files) {
+          files[k] = func.join(files[k])
+          if (files[k].length) {
+            let urls = [];
+            let split = files[k].split(",");
+            split.forEach(url => {
+              let names = url.split("jczz/");
+              urls.push(names[1]);
+            })
+            files[k] = urls.join(",")
+          }
+        }
+
+        row.attachment = JSON.stringify(files);
+        for (let j in row) {
+          if (keys.indexOf(j) != -1) {
+            delete row[j];
+          }
+        }
+        console.log("提交===>", row);
         row.propertyFlag = 1
         add(row).then(
           () => {
@@ -707,14 +998,14 @@
           this.data = data.records
           this.data.forEach(item => {
             this.$set(item, 'linkPhoneflag', false)
-            if (item.constructionSchemeUrls.length > 0) {
-              var urls = []
-              var names = item.constructionSchemeUrls.split(",")
-              names.forEach(name => {
-                urls.push(website.minioUrl + name)
-              })
-              item.constructionSchemeUrls = urls.join(",")
-            }
+            // if (item.constructionSchemeUrls.length > 0) {
+            //   var urls = []
+            //   var names = item.constructionSchemeUrls.split(",")
+            //   names.forEach(name => {
+            //     urls.push(website.minioUrl + name)
+            //   })
+            //   item.constructionSchemeUrls = urls.join(",")
+            // }
           })
           this.loading = false
           this.selectionClear()
@@ -753,4 +1044,4 @@
   .workOrderStyle {
     font-weight: normal;
   }
-</style>
\ No newline at end of file
+</style>
diff --git a/src/views/property/propertyCharge.vue b/src/views/property/propertyCharge.vue
index 3505051..f7f429f 100644
--- a/src/views/property/propertyCharge.vue
+++ b/src/views/property/propertyCharge.vue
@@ -1,371 +1,380 @@
 <template>
-    <basic-container>
-        <avue-crud :option="option" :table-loading="loading" :data="data" :page.sync="page" ref="crud" v-model="form"
-            :permission="permissionList" @search-change="searchChange" @search-reset="searchReset" @row-update="rowUpdate"
-            @row-save="rowSave" @row-del="rowDel" :before-open="beforeOpen" @selection-change="selectionChange"
-            @current-change="currentChange" @size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad">
-        </avue-crud>
-    </basic-container>
+  <basic-container>
+    <avue-crud :option="option" :table-loading="loading" :data="data" :page.sync="page" ref="crud" v-model="form"
+      :permission="permissionList" @search-change="searchChange" @search-reset="searchReset" @row-update="rowUpdate"
+      @row-save="rowSave" @row-del="rowDel" :before-open="beforeOpen" @selection-change="selectionChange"
+      @current-change="currentChange" @size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad">
+    </avue-crud>
+  </basic-container>
 </template>
 
 <script>
-import { mapGetters } from "vuex"
-import { getDetail, getList, add, update, remove } from "@/api/property/propertyCharge"
-import website from "@/config/website"
-import func from "@/util/func"
-import { validatePhone } from "@/util/validate"
-const searchSpan = 4
-const labelWidth = 110
-export default {
+  import {
+    mapGetters
+  } from "vuex"
+  import {
+    getDetail,
+    getList,
+    add,
+    update,
+    remove
+  } from "@/api/property/propertyCharge"
+  import website from "@/config/website"
+  import func from "@/util/func"
+  import {
+    validatePhone
+  } from "@/util/validate"
+  const searchSpan = 4
+  const labelWidth = 110
+  export default {
     name: "propertyCharge",
-    data () {
-        return {
-            form: {},
-            query: {},
-            loading: true,
-            page: {
-                pageSize: 10,
-                currentPage: 1,
-                total: 0,
+    data() {
+      return {
+        form: {},
+        query: {},
+        loading: true,
+        page: {
+          pageSize: 10,
+          currentPage: 1,
+          total: 0,
+        },
+        datetime: "",
+        selectionList: [],
+        memberFlag: false,
+        option: {
+          labelWidth: 96,
+          searchLabelWidth: 96,
+          searchShow: true,
+          searchMenuSpan: 3,
+          menuWidth: 210,
+          dialogMenuPosition: 'center',
+          // menu: false,
+          // addBtn: false,
+          border: true,
+          index: true,
+          selection: false,
+          height: "auto",
+          calcHeight: 54,
+          dialogWidth: 950,
+          tip: false,
+          //stripe:true,
+          viewBtn: true,
+          excelBtn: true,
+          dialogClickModal: false,
+          column: [{
+              label: "物业公司",
+              labelWidth: labelWidth,
+              prop: "propertyId",
+              checkStrictly: true,
+              dicUrl: "/api/blade-propertyCompany/propertyCompany/getPropertyCompanyList",
+              props: {
+                label: "name",
+                value: "deptId",
+              },
+              searchSpan: 4,
+              search: true,
+              searchLabelWidth: 76,
+              disabled: false,
+              type: "select",
+              rules: [{
+                required: true,
+                message: "请选择物业公司",
+                trigger: ["blur", "change"]
+              }, ],
             },
-            datetime: "",
-            selectionList: [],
-            memberFlag: false,
-            option: {
-                labelWidth: 96,
-                searchLabelWidth: 96,
-                searchShow: true,
-                searchMenuSpan: 3,
-                menuWidth: 210,
-
-                // menu: false,
-                // addBtn: false,
-                border: true,
-                index: true,
-                selection: false,
-                height: "auto",
-                calcHeight: 54,
-                dialogWidth: 950,
-                tip: false,
-                //stripe:true,
-                viewBtn: true,
-                excelBtn: true,
-                dialogClickModal: false,
-                column: [
-                    {
-                        label: "物业公司",
-                        labelWidth: labelWidth,
-                        prop: "propertyId",
-                        checkStrictly: true,
-                        dicUrl: "/api/blade-propertyCompany/propertyCompany/getPropertyCompanyList",
-                        props: {
-                            label: "name",
-                            value: "deptId",
-                        },
-                        searchSpan: 4,
-                        search: true,
-                        searchLabelWidth: 76,
-                        disabled: false,
-                        type: "select",
-                        rules: [{
-                            required: true,
-                            message: "请选择物业公司",
-                            trigger: ["blur", "change"]
-                        },],
-                    },
-                    {
-                        label: "类型",
-                        labelWidth: labelWidth,
-                        prop: "payType",
-                        checkStrictly: true,
-                        dicUrl: "/api/blade-system/dict-biz/dictionary?code=payType",
-                        props: {
-                            label: "dictValue",
-                            value: "dictKey",
-                        },
-                        type: "select",
-                        rules: [{
-                            required: true,
-                            message: "请选择类型",
-                            trigger: ["blur", "change"]
-                        },],
-                    },
-
-                    {
-                        label: "收费项名称",
-                        labelWidth: labelWidth,
-                        prop: "name",
-                        searchSpan: searchSpan,
-                        searchLabelWidth: labelWidth,
-                        search: true,
-                        rules: [{
-                            required: true,
-                            message: "请输入收费项名称",
-                            trigger: ["blur", "change"]
-                        },],
-                    },
-                    {
-                        label: "计算方式",
-                        labelWidth: labelWidth,
-                        prop: "calculationFormula",
-                        checkStrictly: true,
-                        dicUrl: "/api/blade-system/dict-biz/dictionary?code=payCalculationFormula",
-                        props: {
-                            label: "dictValue",
-                            value: "dictKey",
-                        },
-                        type: "select",
-                        rules: [{
-                            required: true,
-                            message: "请选择计算方式",
-                            trigger: ["blur", "change"]
-                        },],
-                    },
-                    {
-                        label: "单价(元)",
-                        labelWidth: labelWidth,
-                        prop: "unitPrice",
-                        type: 'number',
-                        precision: 2,
-                        rules: [{
-                            required: true,
-                            message: "请输入单价",
-                            trigger: ["blur", "change"]
-                        }]
-                    },
-                    {
-                        label: "缴费周期",
-                        labelWidth: labelWidth,
-                        placeholder: "几个月收费一次",
-                        prop: "payPeriod",
-                        checkStrictly: true,
-                        dicUrl: "/api/blade-system/dict-biz/dictionary?code=payPeriod",
-                        props: {
-                            label: "dictValue",
-                            value: "dictKey",
-                        },
-                        type: "select",
-                        rules: [{
-                            required: true,
-                            message: "请选择缴费周期",
-                            trigger: ["blur", "change"]
-                        },],
-                    },
-                    {
-                        label: "时间",
-                        labelWidth: labelWidth,
-                        placeholder: "时间",
-                        prop: "createTime",
-                        addDisplay: false,
-                        editDisplay: false,
-                        rules: [{
-                            required: true,
-                            message: "请选择缴费周期",
-                            trigger: ["blur", "change"]
-                        },],
-                    },
-                ],
+            {
+              label: "类型",
+              labelWidth: labelWidth,
+              prop: "payType",
+              checkStrictly: true,
+              dicUrl: "/api/blade-system/dict-biz/dictionary?code=payType",
+              props: {
+                label: "dictValue",
+                value: "dictKey",
+              },
+              type: "select",
+              rules: [{
+                required: true,
+                message: "请选择类型",
+                trigger: ["blur", "change"]
+              }, ],
             },
-            data: [],
-        }
+
+            {
+              label: "收费项名称",
+              labelWidth: labelWidth,
+              prop: "name",
+              searchSpan: searchSpan,
+              searchLabelWidth: labelWidth,
+              search: true,
+              rules: [{
+                required: true,
+                message: "请输入收费项名称",
+                trigger: ["blur", "change"]
+              }, ],
+            },
+            {
+              label: "计算方式",
+              labelWidth: labelWidth,
+              prop: "calculationFormula",
+              checkStrictly: true,
+              dicUrl: "/api/blade-system/dict-biz/dictionary?code=payCalculationFormula",
+              props: {
+                label: "dictValue",
+                value: "dictKey",
+              },
+              type: "select",
+              rules: [{
+                required: true,
+                message: "请选择计算方式",
+                trigger: ["blur", "change"]
+              }, ],
+            },
+            {
+              label: "单价(元)",
+              labelWidth: labelWidth,
+              prop: "unitPrice",
+              type: 'number',
+              precision: 2,
+              rules: [{
+                required: true,
+                message: "请输入单价",
+                trigger: ["blur", "change"]
+              }]
+            },
+            {
+              label: "缴费周期",
+              labelWidth: labelWidth,
+              placeholder: "几个月收费一次",
+              prop: "payPeriod",
+              checkStrictly: true,
+              dicUrl: "/api/blade-system/dict-biz/dictionary?code=payPeriod",
+              props: {
+                label: "dictValue",
+                value: "dictKey",
+              },
+              type: "select",
+              rules: [{
+                required: true,
+                message: "请选择缴费周期",
+                trigger: ["blur", "change"]
+              }, ],
+            },
+            {
+              label: "时间",
+              labelWidth: labelWidth,
+              placeholder: "时间",
+              prop: "createTime",
+              addDisplay: false,
+              editDisplay: false,
+              rules: [{
+                required: true,
+                message: "请选择缴费周期",
+                trigger: ["blur", "change"]
+              }, ],
+            },
+          ],
+        },
+        data: [],
+      }
     },
     watch: {},
     computed: {
-        ...mapGetters(["permission", "userInfo"]),
-        permissionList () {
-            return {
-                addBtn: this.vaildData(this.permission.gridWorkLog_add, true),
-                viewBtn: this.vaildData(this.permission.gridWorkLog_view, true),
-                delBtn: this.vaildData(this.permission.gridWorkLog_delete, true),
-                editBtn: this.vaildData(this.permission.gridWorkLog_edit, true),
+      ...mapGetters(["permission", "userInfo"]),
+      permissionList() {
+        return {
+          addBtn: this.vaildData(this.permission.gridWorkLog_add, true),
+          viewBtn: this.vaildData(this.permission.gridWorkLog_view, true),
+          delBtn: this.vaildData(this.permission.gridWorkLog_delete, true),
+          editBtn: this.vaildData(this.permission.gridWorkLog_edit, true),
+        }
+      },
+      ids() {
+        let ids = []
+        this.selectionList.forEach((ele) => {
+          ids.push(ele.id)
+        })
+        return ids.join(",")
+      },
+      textDispose() {
+        return (row, flag, type) => {
+          if (row[flag] || row[type] == null) {
+            return row[type]
+          } else {
+            if (type == 'idCard') {
+              return row[type].replace(/^(.{6})(?:\d+)(.{4})$/, "$1******$2")
+            } else {
+              return row[type].replace(/^(.{3})(?:\d+)(.{4})$/, "$1****$2")
             }
-        },
-        ids () {
-            let ids = []
-            this.selectionList.forEach((ele) => {
-                ids.push(ele.id)
-            })
-            return ids.join(",")
-        },
-        textDispose () {
-            return (row, flag, type) => {
-                if (row[flag] || row[type] == null) {
-                    return row[type]
-                } else {
-                    if (type == 'idCard') {
-                        return row[type].replace(/^(.{6})(?:\d+)(.{4})$/, "$1******$2")
-                    } else {
-                        return row[type].replace(/^(.{3})(?:\d+)(.{4})$/, "$1****$2")
-                    }
-                }
-            }
-        },
+          }
+        }
+      },
     },
     methods: {
-        showStringDispose (row, type) {
-            row[type] = !row[type]
-        },
-        manageMember (row) {
-            this.memberFlag = true
-            var that = this
-            this.$nextTick(() => {
-                that.$refs.partyOrganizationMember.init(row)
-            })
-        },
-        rowSave (row, done, loading) {
-            add(row).then(
-                () => {
-                    this.onLoad(this.page)
-                    this.$message({
-                        type: "success",
-                        message: "操作成功!",
-                    })
-                    done()
-                },
-                (error) => {
-                    window.console.log(error)
-                    loading()
-                }
-            )
-        },
-        rowUpdate (row, index, done, loading) {
-            if (row.urls.length > 0) {
-                var urls = []
-                var split = row.urls.split(",")
-                split.forEach(url => {
-                    var names = url.split("jczz/")
-                    urls.push(names[1])
-                })
-                row.urls = urls.join(",")
-            }
-            update(row).then(
-                () => {
-                    this.onLoad(this.page)
-                    this.$message({
-                        type: "success",
-                        message: "操作成功!",
-                    })
-                    done()
-                },
-                (error) => {
-                    window.console.log(error)
-                    loading()
-                }
-            )
-        },
-        rowDel (row) {
-            this.$confirm("确定将选择数据删除?", {
-                confirmButtonText: "确定",
-                cancelButtonText: "取消",
-                type: "warning",
-            })
-                .then(() => {
-                    return remove(row.id)
-                })
-                .then(() => {
-                    this.onLoad(this.page)
-                    this.$message({
-                        type: "success",
-                        message: "操作成功!",
-                    })
-                })
-        },
-        // handleDelete() {
-        //   if (this.selectionList.length === 0) {
-        //     this.$message.warning("请选择至少一条数据");
-        //     return;
-        //   }
-        //   this.$confirm("确定将选择数据删除?", {
-        //       confirmButtonText: "确定",
-        //       cancelButtonText: "取消",
-        //       type: "warning",
-        //     })
-        //     .then(() => {
-        //       return remove(this.ids);
-        //     })
-        //     .then(() => {
-        //       this.onLoad(this.page);
-        //       this.$message({
-        //         type: "success",
-        //         message: "操作成功!",
-        //       });
-        //       this.$refs.crud.toggleSelection();
-        //     });
-        // },
-        beforeOpen (done, type) {
-            if (["edit", "view"].includes(type)) {
-                // getDetail(this.form.id).then((res) => {
-                //     this.form = res.data.data
-                //     const column = this.findObject(this.option.column, "principalId")
-                //     let arr = []
-                //     arr.push(this.form.areaId)
-                //     column.defaultExpandedKeys = arr
-                // })
-            }
-
-            // //如果当前角色为物业管理员,则默认物业公司为该用户的物业公司
-            // if (this.userInfo.role_name.indexOf("wygly")>-1){
-            //   let column = this.findObject(this.option.column, "propertyId")
-            //   column.disabled = true
-            //   column.search = false
-            //   this.form.propertyId = this.userInfo.dept_id
-            // }
-
-            done()
-        },
-        searchReset () {
-            this.query = {}
+      showStringDispose(row, type) {
+        row[type] = !row[type]
+      },
+      manageMember(row) {
+        this.memberFlag = true
+        var that = this
+        this.$nextTick(() => {
+          that.$refs.partyOrganizationMember.init(row)
+        })
+      },
+      rowSave(row, done, loading) {
+        add(row).then(
+          () => {
             this.onLoad(this.page)
-        },
-        searchChange (params, done) {
-            this.query = params
-            this.page.currentPage = 1
-            this.onLoad(this.page, params)
-            done()
-        },
-        selectionChange (list) {
-            this.selectionList = list
-        },
-        selectionClear () {
-            this.selectionList = []
-            this.$refs.crud.toggleSelection()
-        },
-
-        currentChange (currentPage) {
-            this.page.currentPage = currentPage
-        },
-        sizeChange (pageSize) {
-            this.page.pageSize = pageSize
-        },
-        refreshChange () {
-            this.onLoad(this.page, this.query)
-        },
-        onLoad (page, params = {}) {
-            this.loading = true
-
-            //如果当前角色为物业管理员,则默认筛选该物业公司
-            if (this.userInfo.role_name.indexOf("wygly") > -1) {
-                let column = this.findObject(this.option.column, "propertyId")
-                column.disabled = true
-                column.search = false
-                this.form.propertyId = this.userInfo.dept_id
-
-                params.propertyId = this.userInfo.dept_id
-            }
-
-
-
-            getList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
-                const data = res.data.data
-
-                this.page.total = data.total
-                this.data = data.records
-                this.loading = false
-                this.selectionClear()
+            this.$message({
+              type: "success",
+              message: "操作成功!",
             })
+            done()
+          },
+          (error) => {
+            window.console.log(error)
+            loading()
+          }
+        )
+      },
+      rowUpdate(row, index, done, loading) {
+        if (row.urls.length > 0) {
+          var urls = []
+          var split = row.urls.split(",")
+          split.forEach(url => {
+            var names = url.split("jczz/")
+            urls.push(names[1])
+          })
+          row.urls = urls.join(",")
         }
+        update(row).then(
+          () => {
+            this.onLoad(this.page)
+            this.$message({
+              type: "success",
+              message: "操作成功!",
+            })
+            done()
+          },
+          (error) => {
+            window.console.log(error)
+            loading()
+          }
+        )
+      },
+      rowDel(row) {
+        this.$confirm("确定将选择数据删除?", {
+            confirmButtonText: "确定",
+            cancelButtonText: "取消",
+            type: "warning",
+          })
+          .then(() => {
+            return remove(row.id)
+          })
+          .then(() => {
+            this.onLoad(this.page)
+            this.$message({
+              type: "success",
+              message: "操作成功!",
+            })
+          })
+      },
+      // handleDelete() {
+      //   if (this.selectionList.length === 0) {
+      //     this.$message.warning("请选择至少一条数据");
+      //     return;
+      //   }
+      //   this.$confirm("确定将选择数据删除?", {
+      //       confirmButtonText: "确定",
+      //       cancelButtonText: "取消",
+      //       type: "warning",
+      //     })
+      //     .then(() => {
+      //       return remove(this.ids);
+      //     })
+      //     .then(() => {
+      //       this.onLoad(this.page);
+      //       this.$message({
+      //         type: "success",
+      //         message: "操作成功!",
+      //       });
+      //       this.$refs.crud.toggleSelection();
+      //     });
+      // },
+      beforeOpen(done, type) {
+        if (["edit", "view"].includes(type)) {
+          // getDetail(this.form.id).then((res) => {
+          //     this.form = res.data.data
+          //     const column = this.findObject(this.option.column, "principalId")
+          //     let arr = []
+          //     arr.push(this.form.areaId)
+          //     column.defaultExpandedKeys = arr
+          // })
+        }
+
+        // //如果当前角色为物业管理员,则默认物业公司为该用户的物业公司
+        // if (this.userInfo.role_name.indexOf("wygly")>-1){
+        //   let column = this.findObject(this.option.column, "propertyId")
+        //   column.disabled = true
+        //   column.search = false
+        //   this.form.propertyId = this.userInfo.dept_id
+        // }
+
+        done()
+      },
+      searchReset() {
+        this.query = {}
+        this.onLoad(this.page)
+      },
+      searchChange(params, done) {
+        this.query = params
+        this.page.currentPage = 1
+        this.onLoad(this.page, params)
+        done()
+      },
+      selectionChange(list) {
+        this.selectionList = list
+      },
+      selectionClear() {
+        this.selectionList = []
+        this.$refs.crud.toggleSelection()
+      },
+
+      currentChange(currentPage) {
+        this.page.currentPage = currentPage
+      },
+      sizeChange(pageSize) {
+        this.page.pageSize = pageSize
+      },
+      refreshChange() {
+        this.onLoad(this.page, this.query)
+      },
+      onLoad(page, params = {}) {
+        this.loading = true
+
+        //如果当前角色为物业管理员,则默认筛选该物业公司
+        if (this.userInfo.role_name.indexOf("wygly") > -1) {
+          let column = this.findObject(this.option.column, "propertyId")
+          column.disabled = true
+          column.search = false
+          this.form.propertyId = this.userInfo.dept_id
+
+          params.propertyId = this.userInfo.dept_id
+        }
+
+
+
+        getList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
+          const data = res.data.data
+
+          this.page.total = data.total
+          this.data = data.records
+          this.loading = false
+          this.selectionClear()
+        })
+      }
     },
-}
+  }
 </script>
 
-<style scoped></style>
+<style scoped></style>
\ No newline at end of file
diff --git a/src/views/property/propertyCompany.vue b/src/views/property/propertyCompany.vue
index 414f488..185c2b0 100644
--- a/src/views/property/propertyCompany.vue
+++ b/src/views/property/propertyCompany.vue
@@ -243,7 +243,7 @@
               }, ],
             },
             {
-              label: "mch-id",
+              label: "商户号mch-id",
               labelWidth: labelWidth,
               prop: "mchId",
               span: 24,
diff --git a/src/views/property/propertyCompanyDistrict.vue b/src/views/property/propertyCompanyDistrict.vue
index 12c4f7c..8f23fb4 100644
--- a/src/views/property/propertyCompanyDistrict.vue
+++ b/src/views/property/propertyCompanyDistrict.vue
@@ -64,7 +64,7 @@
           searchShow: true,
           searchMenuSpan: 3,
           menuWidth: 210,
-
+          dialogMenuPosition: 'center',
           height: "auto",
           calcHeight: 54,
           dialogWidth: 1150,
diff --git a/src/views/propertySupervision/components/done.vue b/src/views/propertySupervision/components/done.vue
index dffa3b8..114be8a 100644
--- a/src/views/propertySupervision/components/done.vue
+++ b/src/views/propertySupervision/components/done.vue
@@ -1,236 +1,279 @@
 <template>
-    <div>
-        <avue-crud :option="option" :table-loading="loading" :data="data" ref="crud" v-model="form" :page.sync="page"
-            @search-change="searchChange" @search-reset="searchReset" @selection-change="selectionChange"
-            @current-change="currentChange" @size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad">
-            <template slot-scope="{row, size, index}" slot="menu">
-                <el-button type="text" :size="size" icon="el-icon-info" v-if="permission.work_done_detail"
-                    @click.stop="handleDetail(row)">详情
-                </el-button>
-                <el-button type="text" :size="size" icon="el-icon-search" v-if="permission.work_done_follow"
-                    @click.stop="handleImage(row, index)">流程图
-                </el-button>
-            </template>
-            <template slot-scope="{row, size}" slot="processDefinitionVersion">
-                <el-tag :size="size">v{{ row.processDefinitionVersion }}</el-tag>
-            </template>
-            <template slot-scope="{row, size}" slot="linkPhone">
-                <el-button :size="size" type="text" @click="showStringDispose(row, 'linkPhoneflag')"
-                    v-text="textDispose(row, 'linkPhoneflag', 'linkPhone')">
-                </el-button>
-            </template>
-        </avue-crud>
-        <flow-design is-dialog :is-display.sync="flowBox" :process-instance-id="processInstanceId"></flow-design>
-    </div>
+  <div>
+    <avue-crud :option="option" :table-loading="loading" :data="data" ref="crud" v-model="form" :page.sync="page"
+      @search-change="searchChange" @search-reset="searchReset" @selection-change="selectionChange"
+      @current-change="currentChange" @size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad">
+      <template slot-scope="{row, size, index}" slot="menu">
+        <el-button type="text" :size="size" icon="el-icon-info" v-if="permission.work_done_detail"
+          @click.stop="handleDetail(row)">详情
+        </el-button>
+        <el-button type="text" :size="size" icon="el-icon-search" v-if="permission.work_done_follow"
+          @click.stop="handleImage(row, index)">流程图
+        </el-button>
+      </template>
+      <template slot-scope="{row, size}" slot="processDefinitionVersion">
+        <el-tag :size="size">v{{ row.processDefinitionVersion }}</el-tag>
+      </template>
+      <template slot-scope="{row, size}" slot="linkPhone">
+        <el-button :size="size" type="text" @click="showStringDispose(row, 'linkPhoneflag')"
+          v-text="textDispose(row, 'linkPhoneflag', 'linkPhone')">
+        </el-button>
+      </template>
+    </avue-crud>
+    <flow-design is-dialog :is-display.sync="flowBox" :process-instance-id="processInstanceId"></flow-design>
+  </div>
 </template>
 
 <script>
-import {
+  import {
     mapGetters
-} from "vuex"
-import {
+  } from "vuex"
+  import {
     doneList
-} from "@/api/work/work"
-import {
+  } from "@/api/work/work"
+  import {
     flowCategory,
     flowRoute
-} from "@/util/flow"
+  } from "@/util/flow"
 
-export default {
-    data () {
-        return {
-            form: {},
-            selectionId: '',
-            selectionList: [],
-            query: {},
-            loading: true,
-            page: {
-                pageSize: 10,
-                currentPage: 1,
-                total: 0
-            },
-            processInstanceId: '',
-            flowBox: false,
-            workBox: false,
-            option: {
-                labelWidth: 120,
-                searchLabelWidth: 96,
-                searchShow: true,
-                searchMenuSpan: 3,
-                menuWidth: 140,
+  export default {
+    data() {
+      return {
+        form: {},
+        datetime: "",
+        selectionId: '',
+        selectionList: [],
+        query: {},
+        loading: true,
+        page: {
+          pageSize: 10,
+          currentPage: 1,
+          total: 0
+        },
+        processInstanceId: '',
+        flowBox: false,
+        workBox: false,
+        option: {
+          labelWidth: 120,
+          searchLabelWidth: 96,
+          searchShow: true,
+          searchMenuSpan: 3,
+          menuWidth: 140,
 
-                height: 'auto',
-                calcHeight: 30,
-                tip: false,
-                border: true,
-                index: true,
-                // selection: true,
-                editBtn: false,
-                addBtn: false,
-                viewBtn: false,
-                delBtn: false,
-                columnBtn: false,
-                dialogWidth: 900,
-                dialogClickModal: false,
-                header: false,
-                column: [
-                    {
-                        label: "流程分类",
-                        type: "select",
-                        row: true,
-                        dicUrl: "/api/blade-system/dict/dictionary?code=flow",
-                        props: {
-                            label: "dictValue",
-                            value: "dictKey"
-                        },
-                        dataType: "number",
-                        slot: true,
-                        prop: "category",
-                        // search: true,
-                        hide: true,
-                        width: 100,
-                    },
-                    {
-                        width: 100,
-                        label: '申请类型',
-                        prop: 'categoryName',
-                        // search: true,
-                    }, {
-                        width: 220,
-                        overHidden: true,
-                        label: "小区",
-                        prop: "districtId",
-                        searchSpan: 5,
-                        // search: true,
-                        type: 'tree',
-                        dicUrl: `/api/blade-district/district/getDistrictTree`,
-                        props: {
-                            label: "name",
-                            value: "id"
-                        },
-                        defaultExpandedKeys: ["361102003"],
-                        span: 12,
-                    }, {
-                        width: 110,
-                        label: '联系人',
-                        prop: 'linkman',
-                        // search: true,
-                    }, {
-                        width: 120,
-                        label: '联系电话',
-                        prop: 'linkPhone',
-                        // search: true,
-                        slot: true
-                    }, {
-                        label: '项目名称',
-                        prop: 'name',
-                        // search: true,
-                    },
-                    {
-                        label: '当前步骤',
-                        prop: 'taskName',
-                    },
-                    // {
-                    //     label: '流程版本',
-                    //     prop: 'processDefinitionVersion',
-                    //     slot: true,
-                    //     width: 80,
-                    // },
-                    {
-                        width: 144,
-                        label: '申请时间',
-                        prop: 'createTime',
-                    },
-                ]
+          height: 'auto',
+          calcHeight: 30,
+          tip: false,
+          border: true,
+          index: true,
+          // selection: true,
+          editBtn: false,
+          addBtn: false,
+          viewBtn: false,
+          delBtn: false,
+          columnBtn: false,
+          dialogWidth: 900,
+          dialogClickModal: false,
+          header: false,
+          column: [{
+              label: "流程分类",
+              type: "select",
+              row: true,
+              dicUrl: "/api/blade-system/dict/dictionary?code=flow",
+              props: {
+                label: "dictValue",
+                value: "dictKey"
+              },
+              dataType: "number",
+              slot: true,
+              prop: "category",
+              // search: true,
+              hide: true,
+              width: 100,
             },
-            data: []
-        }
+            {
+              width: 110,
+              label: '小区名称',
+              prop: 'districtName',
+              search: true,
+              hide: true,
+            }, {
+              label: '项目名称',
+              prop: 'name',
+              search: true,
+            },
+            {
+              label: "申请时间",
+              prop: "dateTime",
+              type: "datetimerange",
+              defaultTime: ['00:00:00', '23:59:59'],
+              format: 'yyyy-MM-dd HH:mm:ss',
+              valueFormat: 'yyyy-MM-dd HH:mm:ss',
+              startPlaceholder: '开始范围自定义',
+              endPlaceholder: '结束范围自定义',
+              searchSpan: 5,
+              searchRange: true,
+              hide: true,
+              addDisplay: false,
+              editDisplay: false,
+              viewDisplay: false,
+              search: true,
+              rules: [{
+                required: true,
+                message: "请选择申请时间",
+                trigger: "blur",
+              }, ],
+            },
+            {
+              width: 100,
+              label: '申请类型',
+              prop: 'categoryName',
+              // search: true,
+            }, {
+              width: 220,
+              overHidden: true,
+              label: "小区",
+              prop: "districtId",
+              searchSpan: 5,
+              // search: true,
+              type: 'tree',
+              dicUrl: `/api/blade-district/district/getDistrictTree`,
+              props: {
+                label: "name",
+                value: "id"
+              },
+              defaultExpandedKeys: ["361102003"],
+              span: 12,
+            }, {
+              width: 110,
+              label: '联系人',
+              prop: 'linkman',
+              // search: true,
+            }, {
+              width: 120,
+              label: '联系电话',
+              prop: 'linkPhone',
+              // search: true,
+              slot: true
+            }, {
+              label: '项目名称',
+              prop: 'name',
+              // search: true,
+            },
+            {
+              label: '当前步骤',
+              prop: 'taskName',
+            },
+            // {
+            //     label: '流程版本',
+            //     prop: 'processDefinitionVersion',
+            //     slot: true,
+            //     width: 80,
+            // },
+            {
+              width: 144,
+              label: '申请时间',
+              prop: 'createTime',
+            },
+          ]
+        },
+        data: []
+      }
     },
     computed: {
-        ...mapGetters(["permission", "flowRoutes"]),
-        ids () {
-            let ids = []
-            this.selectionList.forEach(ele => {
-                ids.push(ele.id)
-            })
-            return ids.join(",")
-        },
-        textDispose () {
-            return (row, flag, type) => {
-                if (row[flag] || row[type] == null) {
-                    return row[type]
-                } else {
-                    if (type == 'principalIdCard') {
-                        return row[type].replace(/^(.{6})(?:\d+)(.{4})$/, "$1******$2")
-                    } else {
-                        return row[type].replace(/^(.{3})(?:\d+)(.{4})$/, "$1****$2")
-                    }
-                }
+      ...mapGetters(["permission", "flowRoutes"]),
+      ids() {
+        let ids = []
+        this.selectionList.forEach(ele => {
+          ids.push(ele.id)
+        })
+        return ids.join(",")
+      },
+      textDispose() {
+        return (row, flag, type) => {
+          if (row[flag] || row[type] == null) {
+            return row[type]
+          } else {
+            if (type == 'principalIdCard') {
+              return row[type].replace(/^(.{6})(?:\d+)(.{4})$/, "$1******$2")
+            } else {
+              return row[type].replace(/^(.{3})(?:\d+)(.{4})$/, "$1****$2")
             }
+          }
         }
+      }
     },
     methods: {
-        showStringDispose (row, type) {
-            row[type] = !row[type]
-        },
+      showStringDispose(row, type) {
+        row[type] = !row[type]
+      },
 
-        searchReset () {
-            this.query = {}
-            this.onLoad(this.page)
-        },
-        searchChange (params, done) {
-            this.query = params
-            this.page.currentPage = 1
-            this.onLoad(this.page, params)
-            done()
-        },
-        selectionChange (list) {
-            this.selectionList = list
-        },
-        selectionClear () {
-            this.selectionList = []
-            this.$refs.crud.toggleSelection()
-        },
-        handleDetail (row) {
-            this.$router.push({
-                path: `/propertySupervision/process/${flowRoute(this.flowRoutes, row.category)}/detail/${row.processInstanceId}/${row.businessId}`
-            })
-        },
-        handleImage (row) {
-            this.processInstanceId = row.processInstanceId
-            this.flowBox = true
-        },
-        currentChange (currentPage) {
-            this.page.currentPage = currentPage
-        },
-        sizeChange (pageSize) {
-            this.page.pageSize = pageSize
-        },
-        refreshChange () {
-            this.onLoad(this.page, this.query)
-        },
-        onLoad (page, params = {}) {
-            const query = {
-                ...this.query,
-                category: (params.category) ? flowCategory(params.category) : null
-            }
-            this.loading = true
-            doneList(page.currentPage, page.pageSize, Object.assign(params, query)).then(res => {
-                const data = {
-                    ...res.data.data,
-                    records: res.data.data.records.map(item => {
-                        return {
-                            ...item,
-                            'linkPhoneflag': false
-                        }
-                    })
-                }
-                this.page.total = data.total
-                this.data = data.records
-                this.loading = false
-                this.selectionClear()
-            })
+      searchReset() {
+        this.query = {}
+        this.onLoad(this.page)
+      },
+      searchChange(params, done) {
+        this.query = params
+        this.page.currentPage = 1
+        this.onLoad(this.page, params)
+        done()
+      },
+      selectionChange(list) {
+        this.selectionList = list
+      },
+      selectionClear() {
+        this.selectionList = []
+        this.$refs.crud.toggleSelection()
+      },
+      handleDetail(row) {
+        this.$router.push({
+          path: `/propertySupervision/process/${flowRoute(this.flowRoutes, row.category)}/detail/${row.processInstanceId}/${row.businessId}`
+        })
+      },
+      handleImage(row) {
+        this.processInstanceId = row.processInstanceId
+        this.flowBox = true
+      },
+      currentChange(currentPage) {
+        this.page.currentPage = currentPage
+      },
+      sizeChange(pageSize) {
+        this.page.pageSize = pageSize
+      },
+      refreshChange() {
+        this.onLoad(this.page, this.query)
+      },
+      onLoad(page, params = {}) {
+        let query = {
+          ...this.query,
+          category: (params.category) ? flowCategory(params.category) : null
         }
+        const {
+          dateTime
+        } = query
+
+        if (dateTime) {
+          query = {
+            startTimes: dateTime[0],
+            endTimes: dateTime[1],
+          }
+        }
+        this.loading = true
+        doneList(page.currentPage, page.pageSize, Object.assign(params, query)).then(res => {
+          const data = {
+            ...res.data.data,
+            records: res.data.data.records.map(item => {
+              return {
+                ...item,
+                'linkPhoneflag': false
+              }
+            })
+          }
+          this.page.total = data.total
+          this.data = data.records
+          this.loading = false
+          this.selectionClear()
+        })
+      }
     }
-}
+  }
 </script>
\ No newline at end of file
diff --git a/src/views/propertySupervision/components/todo.vue b/src/views/propertySupervision/components/todo.vue
index 5ce4198..e042765 100644
--- a/src/views/propertySupervision/components/todo.vue
+++ b/src/views/propertySupervision/components/todo.vue
@@ -1,268 +1,314 @@
 <template>
-    <div>
-        <avue-crud :option="option" :table-loading="loading" :data="data" ref="crud" v-model="form"
-            @search-change="searchChange" @search-reset="searchReset" @selection-change="selectionChange"
-            @current-change="currentChange" @size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad">
-            <template slot-scope="{row, size, index}" slot="menu">
-                <el-button type="text" :size="size" icon="el-icon-s-check" v-if="permission.work_todo_handle"
-                    @click.stop="handleWork(row)">处理
-                </el-button>
-                <el-button type="text" :size="size" icon="el-icon-info" v-if="permission.work_todo_detail"
-                    @click.stop="handleDetail(row)">详情
-                </el-button>
-                <el-button type="text" :size="size" icon="el-icon-search" v-if="permission.work_todo_follow"
-                    @click.stop="handleImage(row, index)">流程图
-                </el-button>
-            </template>
+  <div>
+    <avue-crud :option="option" :table-loading="loading" :data="data" ref="crud" v-model="form"
+      @search-change="searchChange" @search-reset="searchReset" @selection-change="selectionChange"
+      @current-change="currentChange" @size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad">
+      <template slot-scope="{row, size, index}" slot="menu">
+        <el-button type="text" :size="size" icon="el-icon-s-check" v-if="permission.work_todo_handle"
+          @click.stop="handleWork(row)">处理
+        </el-button>
+        <el-button type="text" :size="size" icon="el-icon-info" v-if="permission.work_todo_detail"
+          @click.stop="handleDetail(row)">详情
+        </el-button>
+        <el-button type="text" :size="size" icon="el-icon-search" v-if="permission.work_todo_follow"
+          @click.stop="handleImage(row, index)">流程图
+        </el-button>
+      </template>
 
-            <template slot-scope="{row, size}" slot="processDefinitionVersion">
-                <el-tag :size="size">v{{ row.processDefinitionVersion }}</el-tag>
-            </template>
-            <template slot-scope="{row, size}" slot="linkPhone">
-                <el-button :size="size" type="text" @click="showStringDispose(row, 'linkPhoneflag')"
-                    v-text="textDispose(row, 'linkPhoneflag', 'linkPhone')">
-                </el-button>
-            </template>
-        </avue-crud>
-        <flow-design is-dialog :is-display.sync="flowBox" :process-instance-id="processInstanceId"></flow-design>
-    </div>
+      <template slot-scope="{row, size}" slot="processDefinitionVersion">
+        <el-tag :size="size">v{{ row.processDefinitionVersion }}</el-tag>
+      </template>
+      <template slot-scope="{row, size}" slot="linkPhone">
+        <el-button :size="size" type="text" @click="showStringDispose(row, 'linkPhoneflag')"
+          v-text="textDispose(row, 'linkPhoneflag', 'linkPhone')">
+        </el-button>
+      </template>
+    </avue-crud>
+    <flow-design is-dialog :is-display.sync="flowBox" :process-instance-id="processInstanceId"></flow-design>
+  </div>
 </template>
-  
+
 <script>
-import {
+  import {
     mapGetters
-} from "vuex"
-import {
+  } from "vuex"
+  import {
     todoList
-} from "@/api/work/work"
-import {
+  } from "@/api/work/work"
+  import {
     flowCategory,
     flowRoute
-} from "@/util/flow"
+  } from "@/util/flow"
 
-export default {
-    data () {
-        return {
-            typeStatus: 1,
-            form: {},
-            selectionId: '',
-            selectionList: [],
-            query: {},
-            loading: true,
-            page: {
-                pageSize: 10,
-                currentPage: 1,
-                total: 0
-            },
-            processInstanceId: '',
-            flowBox: false,
-            workBox: false,
-            option: {
-                labelWidth: 120,
-                searchLabelWidth: 96,
-                searchShow: true,
-                searchMenuSpan: 3,
-                menuWidth: 210,
+  export default {
+    data() {
+      return {
+        datetime: "",
+        typeStatus: 1,
+        form: {},
+        selectionId: '',
+        selectionList: [],
+        query: {},
+        loading: true,
+        page: {
+          pageSize: 10,
+          currentPage: 1,
+          total: 0
+        },
+        processInstanceId: '',
+        flowBox: false,
+        workBox: false,
+        option: {
+          labelWidth: 120,
+          searchLabelWidth: 96,
+          searchShow: true,
+          searchMenuSpan: 3,
+          menuWidth: 210,
 
-                height: 'auto',
-                calcHeight: 30,
-                tip: false,
-                simplePage: true,
-                border: true,
-                index: true,
-                // selection: true,
-                editBtn: false,
-                addBtn: false,
-                viewBtn: false,
-                delBtn: false,
-                columnBtn: false,
-                dialogWidth: 900,
-                dialogClickModal: false,
-                header: false,
-                column: [{
-                    label: "流程分类",
-                    type: "select",
-                    row: true,
-                    dicUrl: "/api/blade-system/dict/dictionary?code=flow",
-                    props: {
-                        label: "dictValue",
-                        value: "dictKey"
-                    },
-                    dataType: "number",
-                    slot: true,
-                    prop: "category",
-                    // search: true,
-                    hide: true,
-                    width: 100,
-                },
-                {
-                    width: 100,
-                    label: '申请类型',
-                    prop: 'categoryName',
-                    // search: true,
-                },
-                {
-                    width: 220,
-                    overHidden: true,
-                    label: "小区",
-                    prop: "districtId",
-                    // search: true,
-                    type: 'tree',
-                    dicUrl: `/api/blade-district/district/getDistrictTree`,
-                    props: {
-                        label: "name",
-                        value: "id"
-                    },
-                    defaultExpandedKeys: ["361102003"],
-                    searchSpan: 5,
-                    span: 12,
-                },
-                {
-                    width: 110,
-                    label: '联系人',
-                    prop: 'linkman',
-                    // search: true,
-                },
-                {
-                    width: 120,
-                    label: '联系电话',
-                    prop: 'linkPhone',
-                    // search: true,
-                    slot: true
-                },
-                {
-                    label: '项目名称',
-                    prop: 'name',
-                    // search: true,
-                },
-                {
-                    label: '当前步骤',
-                    prop: 'taskName',
-                },
-                // {
-                //   label: '流程版本',
-                //   prop: 'processDefinitionVersion',
-                //   // slot: true,
-                //   width: 80,
-                // },
-                {
-                    width: 144,
-                    label: '申请时间',
-                    prop: 'createTime',
-                },
-                ]
+          height: 'auto',
+          calcHeight: 30,
+          tip: false,
+          simplePage: true,
+          border: true,
+          index: true,
+          // selection: true,
+          editBtn: false,
+          addBtn: false,
+          viewBtn: false,
+          delBtn: false,
+          columnBtn: false,
+          dialogWidth: 900,
+          dialogClickModal: false,
+          header: false,
+          column: [{
+              label: "流程分类",
+              type: "select",
+              row: true,
+              dicUrl: "/api/blade-system/dict/dictionary?code=flow",
+              props: {
+                label: "dictValue",
+                value: "dictKey"
+              },
+              dataType: "number",
+              slot: true,
+              prop: "category",
+              // search: true,
+              hide: true,
+              width: 100,
             },
-            data: []
-        }
+            {
+              width: 100,
+              label: '申请类型',
+              prop: 'categoryName',
+              // search: true,
+            },
+            {
+              width: 220,
+              overHidden: true,
+              label: "小区",
+              prop: "districtId",
+              // search: true,
+              type: 'tree',
+              dicUrl: `/api/blade-district/district/getDistrictTree`,
+              props: {
+                label: "name",
+                value: "id"
+              },
+              defaultExpandedKeys: ["361102003"],
+              searchSpan: 5,
+              span: 12,
+            },
+            {
+              width: 110,
+              label: '小区名称',
+              prop: 'districtName',
+              search: true,
+              hide: true,
+            },
+            // {
+            //   label: '项目名称',
+            //   prop: 'name',
+            //   search: true,
+            // },
+            {
+              label: "申请时间",
+              prop: "dateTime",
+              type: "datetimerange",
+              defaultTime: ['00:00:00', '23:59:59'],
+              format: 'yyyy-MM-dd HH:mm:ss',
+              valueFormat: 'yyyy-MM-dd HH:mm:ss',
+              startPlaceholder: '开始范围自定义',
+              endPlaceholder: '结束范围自定义',
+              searchSpan: 5,
+              searchRange: true,
+              hide: true,
+              addDisplay: false,
+              editDisplay: false,
+              viewDisplay: false,
+              search: true,
+              rules: [{
+                required: true,
+                message: "请选择申请时间",
+                trigger: "blur",
+              }, ],
+            },
+
+            {
+              width: 110,
+              label: '联系人',
+              prop: 'linkman',
+              // search: true,
+            },
+            {
+              width: 120,
+              label: '联系电话',
+              prop: 'linkPhone',
+              // search: true,
+              slot: true
+            },
+            {
+              label: '项目名称',
+              prop: 'name',
+              // search: true,
+            },
+            {
+              label: '当前步骤',
+              prop: 'taskName',
+            },
+            // {
+            //   label: '流程版本',
+            //   prop: 'processDefinitionVersion',
+            //   // slot: true,
+            //   width: 80,
+            // },
+            {
+              width: 144,
+              label: '申请时间',
+              prop: 'createTime',
+            },
+          ]
+        },
+        data: []
+      }
     },
     computed: {
-        ...mapGetters(["permission", "flowRoutes"]),
-        ids () {
-            let ids = []
-            this.selectionList.forEach(ele => {
-                ids.push(ele.id)
-            })
-            return ids.join(",")
-        },
+      ...mapGetters(["permission", "flowRoutes"]),
+      ids() {
+        let ids = []
+        this.selectionList.forEach(ele => {
+          ids.push(ele.id)
+        })
+        return ids.join(",")
+      },
 
-        textDispose () {
-            return (row, flag, type) => {
-                if (row[flag] || row[type] == null) {
-                    return row[type]
-                } else {
-                    if (type == 'principalIdCard') {
-                        return row[type].replace(/^(.{6})(?:\d+)(.{4})$/, "$1******$2")
-                    } else {
-                        return row[type].replace(/^(.{3})(?:\d+)(.{4})$/, "$1****$2")
-                    }
-                }
+      textDispose() {
+        return (row, flag, type) => {
+          if (row[flag] || row[type] == null) {
+            return row[type]
+          } else {
+            if (type == 'principalIdCard') {
+              return row[type].replace(/^(.{6})(?:\d+)(.{4})$/, "$1******$2")
+            } else {
+              return row[type].replace(/^(.{3})(?:\d+)(.{4})$/, "$1****$2")
             }
+          }
         }
+      }
     },
     methods: {
 
-        changeType (type) {
-            this.typeStatus = type
-            this.page.currentPage = 1
-            // this.onLoad(this.page)
-        },
-        showStringDispose (row, type) {
-            row[type] = !row[type]
-        },
+      changeType(type) {
+        this.typeStatus = type
+        this.page.currentPage = 1
+        // this.onLoad(this.page)
+      },
+      showStringDispose(row, type) {
+        row[type] = !row[type]
+      },
 
-        searchReset () {
-            this.query = {}
-            this.onLoad(this.page)
-        },
-        searchChange (params, done) {
-            this.query = params
-            this.page.currentPage = 1
-            this.onLoad(this.page, params)
-            done()
-        },
-        selectionChange (list) {
-            this.selectionList = list
-        },
-        selectionClear () {
-            this.selectionList = []
-            this.$refs.crud.toggleSelection()
-        },
-        handleWork (row) {
-            this.$router.push({
-                path: `/propertySupervision/process/${flowRoute(this.flowRoutes, row.category)}/handle/${row.taskId}/${row.processInstanceId}/${row.businessId}`
-            })
-        },
-        handleDetail (row) {
-            this.$router.push({
-                path: `/propertySupervision/process/${flowRoute(this.flowRoutes, row.category)}/detail/${row.processInstanceId}/${row.businessId}`
-            })
-        },
-        handleImage (row) {
-            this.processInstanceId = row.processInstanceId
-            this.flowBox = true
-        },
-        currentChange (currentPage) {
-            this.page.currentPage = currentPage
-        },
-        sizeChange (pageSize) {
-            this.page.pageSize = pageSize
-        },
-        refreshChange () {
-            this.onLoad(this.page, this.query)
-        },
-        onLoad (page, params = {}) {
-            const query = {
-                ...this.query,
-                category: (params.category) ? flowCategory(params.category) : null
-            }
-            this.loading = true
-            todoList(page.currentPage, page.pageSize, Object.assign(params, query)).then(res => {
-                const data = {
-                    ...res.data.data,
-                    records: res.data.data.records.map(item => {
-                        return {
-                            ...item,
-                            'linkPhoneflag': false
-                        }
-                    })
-                }
-                this.page.total = data.total
-                this.data = data.records
-                this.loading = false
-                this.selectionClear()
-            })
+      searchReset() {
+        this.query = {}
+        this.onLoad(this.page)
+      },
+      searchChange(params, done) {
+        this.query = params
+        this.page.currentPage = 1
+        this.onLoad(this.page, params)
+        done()
+      },
+      selectionChange(list) {
+        this.selectionList = list
+      },
+      selectionClear() {
+        this.selectionList = []
+        this.$refs.crud.toggleSelection()
+      },
+      handleWork(row) {
+        this.$router.push({
+          path: `/propertySupervision/process/${flowRoute(this.flowRoutes, row.category)}/handle/${row.taskId}/${row.processInstanceId}/${row.businessId}`
+        })
+      },
+      handleDetail(row) {
+        this.$router.push({
+          path: `/propertySupervision/process/${flowRoute(this.flowRoutes, row.category)}/detail/${row.processInstanceId}/${row.businessId}`
+        })
+      },
+      handleImage(row) {
+        this.processInstanceId = row.processInstanceId
+        this.flowBox = true
+      },
+      currentChange(currentPage) {
+        this.page.currentPage = currentPage
+      },
+      sizeChange(pageSize) {
+        this.page.pageSize = pageSize
+      },
+      refreshChange() {
+        this.onLoad(this.page, this.query)
+      },
+      onLoad(page, params = {}) {
+        let query = {
+          ...this.query,
+          category: (params.category) ? flowCategory(params.category) : null
         }
-    }
-}
-</script>
-  
-  
-<style lang="scss" scoped>
-.avue-upload__icon {
-    line-height: 6;
-}
+        const {
+          dateTime
+        } = query
 
-.tab-list {
+        if (dateTime) {
+          query = {
+            startTimes: dateTime[0],
+            endTimes: dateTime[1],
+          }
+        }
+        this.loading = true
+        todoList(page.currentPage, page.pageSize, Object.assign(params, query)).then(res => {
+          const data = {
+            ...res.data.data,
+            records: res.data.data.records.map(item => {
+              return {
+                ...item,
+                'linkPhoneflag': false
+              }
+            })
+          }
+          this.page.total = data.total
+          this.data = data.records
+          this.loading = false
+          this.selectionClear()
+        })
+      }
+    }
+  }
+</script>
+
+
+<style lang="scss" scoped>
+  .avue-upload__icon {
+    line-height: 6;
+  }
+
+  .tab-list {
     display: flex;
     margin-right: 6px;
     border: 1px solid #dcdfe6;
@@ -272,55 +318,55 @@
     width: 121px;
 
     &>div {
-        display: flex;
-        align-items: center;
-        justify-content: center;
-        width: 60px;
-        cursor: pointer;
-        font-size: 12px;
+      display: flex;
+      align-items: center;
+      justify-content: center;
+      width: 60px;
+      cursor: pointer;
+      font-size: 12px;
     }
 
     &>div:nth-child(2) {
-        border-left: 1px solid #dcdfe6;
-        // border-right: 1px solid #dcdfe6;
+      border-left: 1px solid #dcdfe6;
+      // border-right: 1px solid #dcdfe6;
     }
 
     .choose {
-        color: #FFF;
-        background-color: #409dfe;
+      color: #FFF;
+      background-color: #409dfe;
     }
-}
+  }
 
-:deep(.avue-crud__left) {
+  :deep(.avue-crud__left) {
     display: flex;
     align-items: center;
-}
+  }
 
-:deep(.el-drawer__header) {
+  :deep(.el-drawer__header) {
     margin-bottom: 10px;
-}
+  }
 
-:deep(.el-radio__input.is-disabled+span.el-radio__label) {
+  :deep(.el-radio__input.is-disabled+span.el-radio__label) {
     color: #000;
-}
+  }
 
-:deep(.el-radio__input.is-checked+.el-radio__label) {
+  :deep(.el-radio__input.is-checked+.el-radio__label) {
     color: #409EFF !important;
-}
+  }
 
-:deep(.el-radio__input.is-checked .el-radio__inner::after) {
+  :deep(.el-radio__input.is-checked .el-radio__inner::after) {
     background-color: #FFF;
-}
+  }
 
-:deep(.el-radio__input.is-checked .el-radio__inner) {
+  :deep(.el-radio__input.is-checked .el-radio__inner) {
     background-color: #409EFF;
-}
+  }
 
-:deep(.el-radio) {
+  :deep(.el-radio) {
     margin-right: 20px;
-}
+  }
 
-.title {
+  .title {
     margin: 10px;
     height: 40px;
     background-color: #eee;
@@ -328,119 +374,119 @@
     align-items: center;
 
     .icon {
-        width: 4px;
-        height: 18px;
-        background-color: #409dfe;
-        margin: 0 10px;
-        color: transparent;
+      width: 4px;
+      height: 18px;
+      background-color: #409dfe;
+      margin: 0 10px;
+      color: transparent;
     }
-}
+  }
 
-.basic-info {
+  .basic-info {
     padding: 0 20px;
     font-size: 14px;
 
     .info-item {
+      display: flex;
+      padding: 10px;
+
+      .info-name {
+        width: 100px;
         display: flex;
-        padding: 10px;
+        align-items: center;
+      }
 
-        .info-name {
-            width: 100px;
-            display: flex;
-            align-items: center;
-        }
-
-        .info-value {
-            display: flex;
-            align-items: center;
-        }
+      .info-value {
+        display: flex;
+        align-items: center;
+      }
     }
-}
+  }
 
-.question-list {
+  .question-list {
     padding: 0 20px;
     font-size: 14px;
 
     .question-type {
-        height: 60px;
-        display: flex;
-        align-items: center;
-        cursor: pointer;
-        justify-content: space-between;
-        padding-right: 20px;
+      height: 60px;
+      display: flex;
+      align-items: center;
+      cursor: pointer;
+      justify-content: space-between;
+      padding-right: 20px;
 
-        .type-name {}
+      .type-name {}
 
-        .icon-box {}
+      .icon-box {}
     }
 
     .question-item {
-        margin-bottom: 20px;
-        padding: 10px;
-        background: #f5f7fa;
-        border-radius: 8px;
+      margin-bottom: 20px;
+      padding: 10px;
+      background: #f5f7fa;
+      border-radius: 8px;
 
-        &>div {
-            margin: 14px 0;
+      &>div {
+        margin: 14px 0;
+      }
+
+      .question-name {
+        display: flex;
+
+        .key {
+          width: 80%;
+          padding-right: 20px;
+          word-break: break-all;
         }
 
-        .question-name {
-            display: flex;
+        .value {
+          width: 20%;
+          display: flex;
+          align-items: center;
+          justify-content: center;
+        }
+      }
 
-            .key {
-                width: 80%;
-                padding-right: 20px;
-                word-break: break-all;
-            }
+      .yh-pic-box {
+        display: flex;
+        height: 100px;
 
-            .value {
-                width: 20%;
-                display: flex;
-                align-items: center;
-                justify-content: center;
-            }
+        .yh-pic-name {
+          width: 100px;
+          display: flex;
+          align-items: center;
+          justify-content: left;
         }
 
-        .yh-pic-box {
-            display: flex;
-            height: 100px;
+        .yh-pic-list {
+          width: 0;
+          flex: 1;
+          display: flex;
+        }
+      }
 
-            .yh-pic-name {
-                width: 100px;
-                display: flex;
-                align-items: center;
-                justify-content: left;
-            }
+      .yh-remark {
+        display: flex;
 
-            .yh-pic-list {
-                width: 0;
-                flex: 1;
-                display: flex;
-            }
+        .yh-remark-name {
+          width: 100px;
+          display: flex;
+          align-items: center;
+          justify-content: left;
         }
 
-        .yh-remark {
-            display: flex;
-
-            .yh-remark-name {
-                width: 100px;
-                display: flex;
-                align-items: center;
-                justify-content: left;
-            }
-
-            .yh-remark-value {
-                word-break: break-all;
-            }
+        .yh-remark-value {
+          word-break: break-all;
         }
+      }
     }
 
     .remark-box {
-        padding: 10px;
-        background-color: #f5f7fa;
-        border-radius: 8px;
-        min-height: 40px;
-        margin-bottom: 20px;
+      padding: 10px;
+      background-color: #f5f7fa;
+      border-radius: 8px;
+      min-height: 40px;
+      margin-bottom: 20px;
     }
-}
+  }
 </style>
\ No newline at end of file
diff --git a/src/views/propertySupervision/process/maintenanceFundApply/detail.vue b/src/views/propertySupervision/process/maintenanceFundApply/detail.vue
index dd59b1b..0b3df87 100644
--- a/src/views/propertySupervision/process/maintenanceFundApply/detail.vue
+++ b/src/views/propertySupervision/process/maintenanceFundApply/detail.vue
@@ -75,389 +75,387 @@
       </el-card>
     </el-form>
     <deitDiscussion ref="DeitDiscussion">
-  </deitDiscussion>
+    </deitDiscussion>
   </basic-container>
- 
+
 </template>
 
 <script>
-import {
-  historyFlowList,
-  leaveDetail
-} from "@/api/work/process";
-import {
-  getList,
-  remove,
-  update,
-  add,
-  getPropertyCapitalApply
-} from "@/api/property/propertyCapitalApply";
+  import {
+    historyFlowList,
+    leaveDetail
+  } from "@/api/work/process";
+  import {
+    getList,
+    remove,
+    update,
+    add,
+    getPropertyCapitalApply
+  } from "@/api/property/propertyCapitalApply";
 
-import {
-  getLists
-} from "@/api/discuss/topics"
-import deitDiscussion from "../../components/deitDiscussion.vue"
-export default {
-  components: {
-    deitDiscussion
-  },
-  data() {
-    return {
-      businessId: '',
-      processInstanceId: '',
-      src: '',
-      flowList: [],
-      form: {
-        flow: {
-          assigneeName: '',
-        },
-        startTime: '',
-        endTime: '',
-        reason: '',
-      },
-      option: {
-        height: "auto",
-        calcHeight: 54,
-        dialogWidth: 1150,
-        tip: false,
-        searchShow: true,
-        searchMenuSpan: 3,
-        menuWidth: 350,
-        border: true,
-        //stripe:true,
-        submitBtn: false,
-        emptyBtn: false,
-        index: true,
-        viewBtn: true,
-        selection: true,
-        dialogClickModal: false,
-        column: [{
-          label: "小区",
-          prop: "districtId",
-          searchSpan: 5,
-          search: true,
-          type: 'tree',
-          dicUrl: `/api/blade-district/district/getDistrictTree`,
-          cascader: ['articleId'],
-          props: {
-            label: "name",
-            value: "id"
+  import {
+    getLists
+  } from "@/api/discuss/topics"
+  import deitDiscussion from "../../components/deitDiscussion.vue"
+  export default {
+    components: {
+      deitDiscussion
+    },
+    data() {
+      return {
+        businessId: '',
+        processInstanceId: '',
+        src: '',
+        flowList: [],
+        form: {
+          flow: {
+            assigneeName: '',
           },
-          defaultExpandedKeys: ["361102003"],
-          span: 12,
-          labelWidth: 120,
-          width: 220,
-          overHidden: true,
-          rules: [{
-            required: true,
-            message: "请选择小区",
-            trigger: "blur",
-          },],
-          disabled: true
+          startTime: '',
+          endTime: '',
+          reason: '',
         },
-        {
-          label: '维修项目名称',
-          prop: 'name',
-          searchLabelWidth: 120,
-          searchSpan: 5,
-          search: true,
-          span: 12,
-          labelWidth: 140,
-          rules: [{
-            required: true,
-            message: "请输入维修项目名称",
-            trigger: "blur",
-          },],
-          disabled: true
-        },
-        {
-          label: "预计开工时间",
-          prop: "runTime",
-          span: 12,
-          labelWidth: 140,
-          type: "date",
-          format: "yyyy-MM-dd",
-          valueFormat: "yyyy-MM-dd",
-          rules: [{
-            required: true,
-            message: "请选择合同开始时间",
-            trigger: "blur",
-          },],
-          disabled: true
-        },
-        {
-          label: "预计竣工时间",
-          prop: "completedTime",
-          labelWidth: 140,
-          span: 12,
-          type: "date",
-          format: "yyyy-MM-dd",
-          valueFormat: "yyyy-MM-dd",
-          rules: [{
-            required: true,
-            message: "请选择合同结束时间",
-            trigger: "blur",
-          },],
-          disabled: true
-        },
-        {
-          label: "项目分摊方式",
-          prop: "allocationWay",
-          labelWidth: 140,
-          value: '按建筑面积分摊',
-          span: 12,
-          row: true,
-          disabled: true
-        },
-        {
-          label: '联系人',
-          prop: 'linkman',
-          span: 12,
-          labelWidth: 120,
-          search: true,
-          searchSpan: 4,
-          rules: [{
-            required: true,
-            message: "请输入联系人",
-            trigger: "blur",
-          },],
-          disabled: true
-        },
-        {
-          label: '联系方式',
-          prop: 'linkPhone',
-          span: 12,
-          labelWidth: 140,
-          rules: [{
-            required: true,
-            message: "请输入联系方式",
-            trigger: "blur",
-          },],
-          disabled: true
-        },
-        {
-          label: "项目预算总金额(元)",
-          prop: "budgetAmount",
-          span: 12,
-          hide: true,
-          labelWidth: 140,
-          type: 'number',
-          precision: 2,
-          value: '0.00',
-          disabled: true
-        },
-        {
-          label: "实际预算金额(元)",
-          prop: "actualAmount",
-          span: 12,
-          hide: true,
-          labelWidth: 140,
-          type: 'number',
-          precision: 2,
-          value: '0.00',
-          disabled: true
-        },
-        {
-          label: "自筹金额(元)",
-          prop: "selfAmount",
-          span: 12,
-          hide: true,
-          labelWidth: 140,
-          type: 'number',
-          precision: 2,
-          value: '0.00',
-          disabled: true
-        },
-        {
-          label: "预算应拨付金额(元)",
-          prop: "budgetAppropriateAmount",
-          span: 12,
-          hide: true,
-          labelWidth: 140,
-          type: 'number',
-          precision: 2,
-          value: '0.00',
-          disabled: true
-        },
-        {
-          disabled:true,
-          display: false,
-          hide: true,
-          parent: false,
-          label: "投票结果",
-          prop: "articleId",
-          search: false,
-          viewDisabled: false,
-          type: 'select',
-          dicUrl: `/api/blade-article/article/getArticleByDistrictId?type=4&eventType=1&districtId={{districtId}}`,
-          cascader: ['vote'],
-          props: {
-            label: "title",
-            value: "id"
-          },
-          defaultExpandedKeys: ["361102003"],
-          span: 12,
-          labelWidth:140,
-          rules: [{
-            required: true,
-            message: "请选择投票结果",
-            trigger: "blur",
-          },],
-          change: (val) => {
-            console.log("val===>", val)
-            // console.log("form===>",this.form)
-            if (val.value && !this.form.id) {
-              this.articleRange = val.articleRange;
-              // this.showDialog = true;
-              // this.getDetail(val.value, val.articleRange)
+        option: {
+          height: "auto",
+          calcHeight: 54,
+          dialogWidth: 1150,
+          tip: false,
+          searchShow: true,
+          searchMenuSpan: 3,
+          menuWidth: 350,
+          border: true,
+          //stripe:true,
+          submitBtn: false,
+          emptyBtn: false,
+          index: true,
+          viewBtn: true,
+          selection: true,
+          dialogClickModal: false,
+          column: [{
+              label: "小区",
+              prop: "districtId",
+              searchSpan: 5,
+              search: true,
+              type: 'tree',
+              dicUrl: `/api/blade-district/district/getDistrictTree`,
+              cascader: ['articleId'],
+              props: {
+                label: "name",
+                value: "id"
+              },
+              defaultExpandedKeys: ["361102003"],
+              span: 12,
+              labelWidth: 120,
+              width: 220,
+              overHidden: true,
+              rules: [{
+                required: true,
+                message: "请选择小区",
+                trigger: "blur",
+              }, ],
+              disabled: true
+            },
+            {
+              label: '维修项目名称',
+              prop: 'name',
+              searchLabelWidth: 120,
+              searchSpan: 5,
+              search: true,
+              span: 12,
+              labelWidth: 140,
+              rules: [{
+                required: true,
+                message: "请输入维修项目名称",
+                trigger: "blur",
+              }, ],
+              disabled: true
+            },
+            {
+              label: "预计开工时间",
+              prop: "runTime",
+              span: 12,
+              labelWidth: 140,
+              type: "date",
+              format: "yyyy-MM-dd",
+              valueFormat: "yyyy-MM-dd",
+              rules: [{
+                required: true,
+                message: "请选择合同开始时间",
+                trigger: "blur",
+              }, ],
+              disabled: true
+            },
+            {
+              label: "预计竣工时间",
+              prop: "completedTime",
+              labelWidth: 140,
+              span: 12,
+              type: "date",
+              format: "yyyy-MM-dd",
+              valueFormat: "yyyy-MM-dd",
+              rules: [{
+                required: true,
+                message: "请选择合同结束时间",
+                trigger: "blur",
+              }, ],
+              disabled: true
+            },
+            {
+              label: "楼栋",
+              prop: "buildingName",
+              labelWidth: 140,
+              value: '',
+              span: 12,
+              row: true,
+              disabled: true
+            },
+            {
+              label: '联系人',
+              prop: 'linkman',
+              span: 12,
+              labelWidth: 120,
+              search: true,
+              searchSpan: 4,
+              rules: [{
+                required: true,
+                message: "请输入联系人",
+                trigger: "blur",
+              }, ],
+              disabled: true
+            },
+            {
+              label: '联系方式',
+              prop: 'linkPhone',
+              span: 12,
+              labelWidth: 140,
+              rules: [{
+                required: true,
+                message: "请输入联系方式",
+                trigger: "blur",
+              }, ],
+              disabled: true
+            },
+            {
+              label: "项目预算总金额(元)",
+              prop: "budgetAmount",
+              span: 12,
+              hide: true,
+              labelWidth: 140,
+              type: 'number',
+              precision: 2,
+              value: '0.00',
+              disabled: true
+            },
+            {
+              label: "实际预算金额(元)",
+              prop: "actualAmount",
+              span: 12,
+              hide: true,
+              labelWidth: 140,
+              type: 'number',
+              precision: 2,
+              value: '0.00',
+              disabled: true
+            },
+            {
+              label: "自筹金额(元)",
+              prop: "selfAmount",
+              span: 12,
+              hide: true,
+              labelWidth: 140,
+              type: 'number',
+              precision: 2,
+              value: '0.00',
+              disabled: true
+            },
+            {
+              label: "预算应拨付金额(元)",
+              prop: "budgetAppropriateAmount",
+              span: 12,
+              hide: true,
+              labelWidth: 140,
+              type: 'number',
+              precision: 2,
+              value: '0.00',
+              disabled: true
+            },
+            {
+              disabled: true,
+              display: false,
+              hide: true,
+              parent: false,
+              label: "投票结果",
+              prop: "articleId",
+              search: false,
+              viewDisabled: false,
+              type: 'select',
+              dicUrl: `/api/blade-article/article/getArticleByDistrictId?type=4&eventType=1&districtId={{districtId}}`,
+              cascader: ['vote'],
+              props: {
+                label: "title",
+                value: "id"
+              },
+              defaultExpandedKeys: ["361102003"],
+              span: 12,
+              labelWidth: 140,
+              rules: [{
+                required: true,
+                message: "请选择投票结果",
+                trigger: "blur",
+              }, ],
+              change: (val) => {
+                console.log("val===>", val)
+                // console.log("form===>",this.form)
+                if (val.value && !this.form.id) {
+                  this.articleRange = val.articleRange;
+                  // this.showDialog = true;
+                  // this.getDetail(val.value, val.articleRange)
+                }
+
+              }
+            },
+
+            {
+              disabled: true,
+              display: false,
+              span: 24,
+              hide: true,
+              prop: "vote",
+              slot: true,
+              label: "投票详情",
+              labelWidth: 140,
+
+            },
+
+            {
+              label: "项目摘要",
+              span: 24,
+              hide: true,
+              prop: "projectDigest",
+              placeholder: "例如:“XX小区XX栋XX设施设备维修,总的预算金额是X,是否含有审价,本次维修涉及范围共XX户,总面积的建筑面积为XX平方米”",
+              labelWidth: 140,
+              type: "textarea",
+              disabled: true
+            },
+            {
+              label: "项目进度描述",
+              span: 24,
+              hide: true,
+              prop: "projectDescribe",
+              labelWidth: 140,
+              type: "textarea",
+              disabled: true
+            },
+            {
+              label: '施工方案附件',
+              prop: 'constructionSchemeUrls',
+              type: 'upload',
+              span: 24,
+              hide: true,
+              labelWidth: 140,
+              multiple: true,
+              // showFileList: true,
+              propsHttp: {
+                res: 'data',
+                name: "originalName",
+                url: "link"
+              },
+              action: '/api/blade-resource/oss/endpoint/put-file-attach',
+              rules: [{
+                required: true,
+                message: "请上传施工方案",
+                trigger: "blur",
+              }, ],
             }
+          ],
+        },
+        topictData: [],
+        topicTitle: "",
+        articleRange: ""
+      }
+    },
 
+    watch: {
+      'form.districtId': {
+        handler(newData) {
+          const column = this.findObject(this.option.column, "articleId")
+          if (newData && this.form.articleId) {
+            column.display = true;
+          } else {
+            column.display = false
           }
-        },
-
-        {
-          disabled: true,
-          display: false,
-          span: 24,
-          hide: true,
-          prop: "vote",
-          slot: true,
-          label: "投票详情",
-          labelWidth: 140,
-
-        },
-
-        {
-          label: "项目摘要",
-          span: 24,
-          hide: true,
-          prop: "projectDigest",
-          placeholder: "例如:“XX小区XX栋XX设施设备维修,总的预算金额是X,是否含有审价,本次维修涉及范围共XX户,总面积的建筑面积为XX平方米”",
-          labelWidth: 140,
-          type: "textarea",
-          disabled: true
-        },
-        {
-          label: "项目进度描述",
-          span: 24,
-          hide: true,
-          prop: "projectDescribe",
-          labelWidth: 140,
-          type: "textarea",
-          disabled: true
-        },
-        {
-          label: '施工方案附件',
-          prop: 'constructionSchemeUrls',
-          type: 'upload',
-          span: 24,
-          hide: true,
-          labelWidth: 140,
-          multiple: true,
-          // showFileList: true,
-          propsHttp: {
-            res: 'data',
-            name: "originalName",
-            url: "link"
-          },
-          action: '/api/blade-resource/oss/endpoint/put-file-attach',
-          rules: [{
-            required: true,
-            message: "请上传施工方案",
-            trigger: "blur",
-          },],
         }
-        ],
       },
-      topictData: [],
-      topicTitle: "",
-      articleRange: ""
+
+
+      'form.articleId': {
+        handler(newData) {
+          this.getVoteDetail(this.form.articleId, this.articleRange)
+          const column = this.findObject(this.option.column, "vote")
+          if (newData) {
+            column.display = true;
+          } else {
+            column.display = false
+          }
+        }
+      },
+
+    },
+
+
+
+    created() {
+      this.init();
+    },
+    methods: {
+      init() {
+        this.processInstanceId = this.$route.params.processInstanceId;
+        this.businessId = this.$route.params.businessId;
+        historyFlowList(this.processInstanceId).then(res => {
+          const data = res.data;
+          if (data.success) {
+            this.flowList = data.data;
+          }
+        })
+        getPropertyCapitalApply(this.businessId).then(res => {
+          const data = res.data;
+          if (data.success) {
+            this.form = data.data;
+          }
+        })
+      },
+      handleCancel() {
+        this.$router.$avueRouter.closeTag();
+        this.$router.push({
+          path: `/work/start`
+        });
+      },
+
+      getVoteDetail(articleId, districtId) {
+        let params = {
+          level: 1,
+          articleId: articleId,
+          districtId: districtId
+        }
+        getLists(1, 10, params).then(res => {
+          const data = res.data.data
+          if (data.length) {
+            this.topictData = data[0].children;
+            this.topicTitle = data[0].discussContent;
+          }
+        })
+      },
+
+      openUserPopup(row) {
+        this.$refs.DeitDiscussion.openUser(row, 1, [this.form.districtId])
+      },
     }
-  },
-
-  watch: {
-    'form.districtId': {
-      handler(newData) {
-        const column = this.findObject(this.option.column, "articleId")
-        if (newData && this.form.articleId) {
-          column.display = true;
-        } else {
-          column.display = false
-        }
-      }
-    },
-
-
-    'form.articleId': {
-      handler(newData) {
-        this.getVoteDetail(this.form.articleId, this.articleRange)
-        const column = this.findObject(this.option.column, "vote")
-        if (newData) {
-          column.display = true;
-        } else {
-          column.display = false
-        }
-      }
-    },
-
-  },
-
-
-
-  created() {
-    this.init();
-  },
-  methods: {
-    init() {
-      this.processInstanceId = this.$route.params.processInstanceId;
-      this.businessId = this.$route.params.businessId;
-      historyFlowList(this.processInstanceId).then(res => {
-        const data = res.data;
-        if (data.success) {
-          this.flowList = data.data;
-        }
-      })
-      getPropertyCapitalApply(this.businessId).then(res => {
-        const data = res.data;
-        if (data.success) {
-          this.form = data.data;
-        }
-      })
-    },
-    handleCancel() {
-      this.$router.$avueRouter.closeTag();
-      this.$router.push({
-        path: `/work/start`
-      });
-    },
-
-    getVoteDetail(articleId, districtId) {
-      let params = {
-        level: 1,
-        articleId: articleId,
-        districtId: districtId
-      }
-      getLists(1, 10, params).then(res => {
-        const data = res.data.data
-        if (data.length) {
-          this.topictData = data[0].children;
-          this.topicTitle = data[0].discussContent;
-        }
-      })
-    },
-
-    openUserPopup(row) {
-      this.$refs.DeitDiscussion.openUser(row, 1, [this.form.districtId])
-    },
   }
-}
 </script>
 
 
 <style>
-
-
-.workOrderStyle {
-  font-weight: normal;
-}
-</style>
\ No newline at end of file
+  .workOrderStyle {
+    font-weight: normal;
+  }
+</style>
diff --git a/src/views/propertySupervision/process/maintenanceFundApply/form.vue b/src/views/propertySupervision/process/maintenanceFundApply/form.vue
index 0c26de1..97c2973 100644
--- a/src/views/propertySupervision/process/maintenanceFundApply/form.vue
+++ b/src/views/propertySupervision/process/maintenanceFundApply/form.vue
@@ -100,12 +100,13 @@
               }, ],
             },
             {
-              label: "项目分摊方式",
-              prop: "allocationWay",
+              label: "楼栋",
+              prop: "buildingName",
               labelWidth: 140,
-              value: '按建筑面积分摊',
+              value: '',
               span: 12,
               row: true,
+              disabled: true
             },
             {
               label: '联系人',
@@ -264,4 +265,4 @@
       }
     }
   }
-</script>
\ No newline at end of file
+</script>
diff --git a/src/views/propertySupervision/process/maintenanceFundApply/handle.vue b/src/views/propertySupervision/process/maintenanceFundApply/handle.vue
index 1fedb30..ebc5893 100644
--- a/src/views/propertySupervision/process/maintenanceFundApply/handle.vue
+++ b/src/views/propertySupervision/process/maintenanceFundApply/handle.vue
@@ -207,12 +207,12 @@
               disabled: true
             },
             {
-              label: "项目分摊方式",
-              prop: "allocationWay",
+              label: "楼栋",
+              prop: "buildingName",
               labelWidth: 140,
-              value: '按建筑面积分摊',
+              value: '',
               span: 12,
-              // row: true,
+              row: true,
               disabled: true
             },
             {
@@ -539,4 +539,4 @@
   .workOrderStyle {
     font-weight: normal;
   }
-</style>
\ No newline at end of file
+</style>
diff --git a/src/views/publicSecurity/keynotePlaceManage.vue b/src/views/publicSecurity/keynotePlaceManage.vue
index d20b433..952b112 100644
--- a/src/views/publicSecurity/keynotePlaceManage.vue
+++ b/src/views/publicSecurity/keynotePlaceManage.vue
@@ -1,884 +1,899 @@
 <template>
-    <basic-container>
-        <avue-crud :option="option" :table-loading="loading" :data="data" :page.sync="page" ref="crud" @row-del="rowDel"
-            v-model="form" :permission="permissionList" @row-update="rowUpdate" @row-save="rowSave"
-            :before-open="beforeOpen" @search-change="searchChange" @search-reset="searchReset"
-            @selection-change="selectionChange" @current-change="currentChange" @size-change="sizeChange"
-            @refresh-change="refreshChange" @on-load="onLoad">
+  <basic-container>
+    <avue-crud :option="option" :table-loading="loading" :data="data" :page.sync="page" ref="crud" @row-del="rowDel"
+      v-model="form" :permission="permissionList" @row-update="rowUpdate" @row-save="rowSave" :before-open="beforeOpen"
+      @search-change="searchChange" @search-reset="searchReset" @selection-change="selectionChange"
+      @current-change="currentChange" @size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad">
 
-            <template slot-scope="{row, size}" slot="menu">
-                <!-- <el-button type="text" :size="size" icon="el-icon-view" v-if="permission.place_view" plain
+      <template slot-scope="{row, size}" slot="menu">
+        <!-- <el-button type="text" :size="size" icon="el-icon-view" v-if="permission.place_view" plain
                     @click="lookDetail(row, 0)">查 看
                 </el-button> -->
-                <el-button type="text" :size="size" plain @click.stop="getDetail(row)">
-                    详情
-                </el-button>
-                <el-button type="text" :size="size" icon="el-icon-s-check" v-if="permission.place_check"
-                    :disabled="row.status != 1" plain @click=" goAudit(row)">审 核
-                </el-button>
-                <!-- <el-button type="text" :size="size" icon="el-icon-delete" v-if="permission.place_del" plain
+        <el-button type="text" :size="size" plain @click.stop="getDetail(row)">
+          详情
+        </el-button>
+        <el-button type="text" :size="size" icon="el-icon-s-check" v-if="permission.place_check"
+          :disabled="row.status != 1" plain @click=" goAudit(row)">审 核
+        </el-button>
+        <!-- <el-button type="text" :size="size" icon="el-icon-delete" v-if="permission.place_del" plain
                     @click="rowDel(row)">删 除
                 </el-button> -->
-            </template>
+      </template>
 
-            <template slot="status" slot-scope="{row, size}">
-                <el-tag :size="size" :type="showStatus(row.status).type">
-                    {{ showStatus(row.status).text }}
-                </el-tag>
-            </template>
+      <template slot="status" slot-scope="{row, size}">
+        <el-tag :size="size" :type="showStatus(row.status).type">
+          {{ showStatus(row.status).text }}
+        </el-tag>
+      </template>
 
-            <template slot-scope="{row, size}" slot="principalPhone">
-                <el-button :size="size" type="text" @click="showStringDispose(row, 'principalPhoneflag')"
-                    v-text="textDispose(row, 'principalPhoneflag', 'principalPhone')">
-                </el-button>
-            </template>
-            <template slot="menuLeft">
-                <el-button type="warning" size="small" plain icon="el-icon-download" @click="handleExport">导出
-                </el-button>
-            </template>
-        </avue-crud>
+      <template slot-scope="{row, size}" slot="principalPhone">
+        <el-button :size="size" type="text" @click="showStringDispose(row, 'principalPhoneflag')"
+          v-text="textDispose(row, 'principalPhoneflag', 'principalPhone')">
+        </el-button>
+      </template>
+      <template slot="menuLeft">
+        <el-button type="warning" size="small" plain icon="el-icon-download" @click="handleExport">导出
+        </el-button>
+      </template>
+    </avue-crud>
 
 
-        <el-dialog title="" append-to-body :visible.sync="auditBasePopup" width="60%">
-            <campusReporting @colseDetail="colseDetail" v-if="taskType == 6" ref="campusReporting"></campusReporting>
-            <hotelReporting @colseDetail="colseDetail" v-if="taskType == 2" ref="hotelReporting"></hotelReporting>
-            <labelReporting @colseDetail="colseDetail" v-if="taskType == 3" ref="labelReporting"></labelReporting>
-        </el-dialog>
+    <el-dialog title="" append-to-body :visible.sync="auditBasePopup" width="60%">
+      <campusReporting @colseDetail="colseDetail" v-if="taskType == 6" ref="campusReporting"></campusReporting>
+      <hotelReporting @colseDetail="colseDetail" v-if="taskType == 2" ref="hotelReporting"></hotelReporting>
+      <labelReporting @colseDetail="colseDetail" v-if="taskType == 3" ref="labelReporting"></labelReporting>
+    </el-dialog>
 
-        <el-dialog :visible.sync="visible" append-to-body destroy-on-close title="审核" width="30%"
-            custom-class="flow-design-dialog" :before-close="handleClose">
-            <audit-base @handleSubmit="submitAudit"></audit-base>
-        </el-dialog>
-        <el-drawer title="消防自查详情" :visible.sync="isDetail" :append-to-body="true" size="40%" direction="rtl">
-            <div class="title">
-                <div class="icon">{{ refreshNum }}</div>
-                基础信息
+    <el-dialog :visible.sync="visible" append-to-body destroy-on-close title="审核" width="30%"
+      custom-class="flow-design-dialog" :before-close="handleClose">
+      <audit-base @handleSubmit="submitAudit"></audit-base>
+    </el-dialog>
+    <el-drawer title="消防自查详情" :visible.sync="isDetail" :append-to-body="true" size="40%" direction="rtl">
+      <div class="title">
+        <div class="icon">{{ refreshNum }}</div>
+        基础信息
+      </div>
+      <div class="basic-info" v-loading="drawerLoading">
+        <div class="info-item">
+          <div class="info-name">场所名称</div>
+          <div class="info-value">{{ rowDetail.placeName }}</div>
+        </div>
+        <!-- <div class="info-item">
+          <div class="info-name">场所类别</div>
+          <div class="info-value">{{ rowDetail.nineTypeName }}</div>
+        </div> -->
+        <div class="info-item">
+          <div class="info-name">检查人</div>
+          <div class="info-value">{{ rowDetail.name }}</div>
+        </div>
+        <div class="info-item">
+          <div class="info-name">检查时间</div>
+          <div class="info-value">{{ rowDetail.createTime }}</div>
+        </div>
+      </div>
+      <div class="title">
+        <div class="icon"></div>
+        检查记录
+      </div>
+
+      <div class="question-list" v-for="(tItem, tIndex) in rowDetail.qTypeList" :key='tIndex' v-loading="drawerLoading">
+        <div class="question-type" @click="flodQL(tIndex)">
+          <div class="type-name">
+            {{ CNNum[tIndex] }}、{{ tItem.questionName }}
+          </div>
+          <div class="icon-box"><i class="el-icon-arrow-down" v-show="tItem.isShowQList"></i><i class="el-icon-arrow-up"
+              v-show="!tItem.isShowQList"></i></div>
+        </div>
+        <div class="question-item" v-for="(item, index) in tItem.questionList" :key='index' v-show="tItem.isShowQList">
+          <div class="question-name">
+            <div class="key">{{ index + 1 }}、{{ item.itemsNameTitle }}</div>
+            <div class="value"><el-radio v-model="radio" label="1" disabled>存在</el-radio>
+              <el-radio v-model="radio" label="2" disabled>不存在</el-radio>
             </div>
-            <div class="basic-info" v-loading="drawerLoading">
-                <div class="info-item">
-                    <div class="info-name">场所名称</div>
-                    <div class="info-value">{{ rowDetail.placeName }}</div>
-                </div>
-                <div class="info-item">
-                    <div class="info-name">场所类型</div>
-                    <div class="info-value">{{ rowDetail.nineTypeName }}</div>
-                </div>
-                <div class="info-item">
-                    <div class="info-name">检查人</div>
-                    <div class="info-value">{{ rowDetail.name }}</div>
-                </div>
-                <div class="info-item">
-                    <div class="info-name">检查时间</div>
-                    <div class="info-value">{{ rowDetail.createTime }}</div>
-                </div>
+          </div>
+          <div class="yh-pic-box">
+            <div class="yh-pic-name">
+              隐患图片
             </div>
-            <div class="title">
-                <div class="icon"></div>
-                检查记录
+            <div class="yh-pic-list">
+              <div class="pic-item" v-for="pic in item.imageUrlsList">
+                <el-image style="width: 100px; height: 100px" :src="pic" :fit="fit"></el-image>
+              </div>
             </div>
-
-            <div class="question-list" v-for="(tItem, tIndex) in rowDetail.qTypeList" :key='tIndex'
-                v-loading="drawerLoading">
-                <div class="question-type" @click="flodQL(tIndex)">
-                    <div class="type-name">
-                        {{ CNNum[tIndex] }}、{{ tItem.questionName }}
-                    </div>
-                    <div class="icon-box"><i class="el-icon-arrow-down" v-show="tItem.isShowQList"></i><i
-                            class="el-icon-arrow-up" v-show="!tItem.isShowQList"></i></div>
-                </div>
-                <div class="question-item" v-for="(item, index) in tItem.questionList" :key='index'
-                    v-show="tItem.isShowQList">
-                    <div class="question-name">
-                        <div class="key">{{ index + 1 }}、{{ item.itemsNameTitle }}</div>
-                        <div class="value"><el-radio v-model="radio" label="1" disabled>存在</el-radio>
-                            <el-radio v-model="radio" label="2" disabled>不存在</el-radio>
-                        </div>
-                    </div>
-                    <div class="yh-pic-box">
-                        <div class="yh-pic-name">
-                            隐患图片
-                        </div>
-                        <div class="yh-pic-list">
-                            <div class="pic-item" v-for="pic in item.imageUrlsList">
-                                <el-image style="width: 100px; height: 100px" :src="pic" :fit="fit"></el-image>
-                            </div>
-                        </div>
-                    </div>
-                    <div class="yh-remark">
-                        <div class="yh-remark-name">
-                            隐患描述
-                        </div>
-                        <div class="yh-remark-value">
-                            {{ item.remark }}
-                        </div>
-                    </div>
-                    <div class="yh-pic-box">
-                        <div class="yh-pic-name">
-                            整改后图片
-                        </div>
-                        <div class="yh-pic-list">
-                            <div class="pic-item" v-for="pic in item.rectificationImageUrlsList">
-                                <el-image style="width: 100px; height: 100px" :src="pic" :fit="fit"></el-image>
-                            </div>
-                        </div>
-                    </div>
-                    <div class="yh-remark">
-                        <div class="yh-remark-name">
-                            整改后描述
-                        </div>
-                        <div class="yh-remark-value">
-                            {{ item.rectificationRemark }}
-                        </div>
-                    </div>
-                </div>
+          </div>
+          <div class="yh-remark">
+            <div class="yh-remark-name">
+              隐患描述
             </div>
-        </el-drawer>
-    </basic-container>
+            <div class="yh-remark-value">
+              {{ item.remark }}
+            </div>
+          </div>
+          <div class="yh-pic-box">
+            <div class="yh-pic-name">
+              整改后图片
+            </div>
+            <div class="yh-pic-list">
+              <div class="pic-item" v-for="pic in item.rectificationImageUrlsList">
+                <el-image style="width: 100px; height: 100px" :src="pic" :fit="fit"></el-image>
+              </div>
+            </div>
+          </div>
+          <div class="yh-remark">
+            <div class="yh-remark-name">
+              整改后描述
+            </div>
+            <div class="yh-remark-value">
+              {{ item.rectificationRemark }}
+            </div>
+          </div>
+        </div>
+      </div>
+    </el-drawer>
+  </basic-container>
 </template>
 
 <script>
-import {
+  import {
     getTaskPlaceSelfCheckList,
     removeTask,
     update,
     add,
-} from "@/api/task/task"
+  } from "@/api/task/task"
 
-import {
+  import {
     mapGetters
-} from "vuex"
-import {
+  } from "vuex"
+  import {
     applyTaskExamine,
     getTaskPlaceSelfCheckInfo
-} from "@/api/publicSecurity/keynoteManage"
-import {
-    getPatrolGroupTree, getDictBizTree
-} from "@/api/publicSecurity/ninePlaceManage"
-import website from '@/config/website'
-import NProgress from 'nprogress'
-import 'nprogress/nprogress.css'
-import Qs from "qs"
-import {
+  } from "@/api/publicSecurity/keynoteManage"
+  import {
+    getPatrolGroupTree,
+    getDictBizTree
+  } from "@/api/publicSecurity/ninePlaceManage"
+  import website from '@/config/website'
+  import NProgress from 'nprogress'
+  import 'nprogress/nprogress.css'
+  import Qs from "qs"
+  import {
     exportBlob
-} from "@/api/common"
-import {
+  } from "@/api/common"
+  import {
     getToken
-} from '@/util/auth'
-import {
+  } from '@/util/auth'
+  import {
     downloadXls
-} from "@/util/util"
-import {
+  } from "@/util/util"
+  import {
     dateNow
-} from "@/util/date"
-import campusReporting from './components/campusReporting'
-import hotelReporting from './components/hotelReporting'
-import labelReporting from './components/labelReporting'
+  } from "@/util/date"
+  import campusReporting from './components/campusReporting'
+  import hotelReporting from './components/hotelReporting'
+  import labelReporting from './components/labelReporting'
 
-export default {
-    data () {
-        //手机号格式校验
-        let validatorPhone = function (rule, value, callback) {
-            if (value) {
-                if (!/^1[3456789]\d{9}$/.test(value)) {
-                    callback(new Error('手机号格式有误!'))
-                } else {
-                    callback()
-                }
-            }
+  export default {
+    data() {
+      //手机号格式校验
+      let validatorPhone = function(rule, value, callback) {
+        if (value) {
+          if (!/^1[3456789]\d{9}$/.test(value)) {
+            callback(new Error('手机号格式有误!'))
+          } else {
             callback()
+          }
         }
+        callback()
+      }
 
-        return {
-            isDetail: false,
-            refreshNum: 1,
-            rowDetail: [],
-            auditRules: {
-                status: [{ required: true, message: "必填" }],
-                remark: [{ required: true, message: "必填" }],
-            },
-            visible: false,
-            taskType: 0,
-            curRow: {},
-            roleBox: false,
+      return {
+        isDetail: false,
+        refreshNum: 1,
+        rowDetail: [],
+        auditRules: {
+          status: [{
+            required: true,
+            message: "必填"
+          }],
+          remark: [{
+            required: true,
+            message: "必填"
+          }],
+        },
+        visible: false,
+        taskType: 0,
+        curRow: {},
+        roleBox: false,
 
-            form: {},
-            query: {},
-            loading: true,
-            drawerLoading: false,
-            page: {
-                pageSize: 10,
-                currentPage: 1,
-                total: 0,
+        form: {},
+        query: {},
+        loading: true,
+        drawerLoading: false,
+        page: {
+          pageSize: 10,
+          currentPage: 1,
+          total: 0,
+        },
+        selectionList: [],
+        option: {
+          labelWidth: 120,
+          searchLabelWidth: 96,
+          searchShow: true,
+          searchMenuSpan: 3,
+          menuWidth: 200,
+          // menu: false,
+          height: "auto",
+          calcHeight: 54,
+          dialogWidth: 950,
+          tip: false,
+          border: true,
+          addBtn: false,
+          delBtn: false,
+          //stripe:true,
+          index: true,
+          editBtn: false,
+          viewBtn: false,
+          // selection: true,
+          excelBtn: false,
+          refreshBtn: false,
+          searchShowBtn: false,
+          columnBtn: false,
+          dialogClickModal: false,
+          column: [{
+              label: "场所名称",
+              prop: "placeName",
+              span: 24,
+              row: true,
+              searchSpan: 4,
+              search: true,
+              align: 'center'
             },
-            selectionList: [],
-            option: {
-                labelWidth: 120,
-                searchLabelWidth: 96,
-                searchShow: true,
-                searchMenuSpan: 3,
-                menuWidth: 200,
-                // menu: false,
-                height: "auto",
-                calcHeight: 54,
-                dialogWidth: 950,
-                tip: false,
-                border: true,
-                addBtn: false,
-                delBtn: false,
-                //stripe:true,
-                index: true,
-                editBtn: false,
-                viewBtn: false,
-                // selection: true,
-                excelBtn: false,
-                refreshBtn: false,
-                searchShowBtn: false,
-                columnBtn: false,
-                dialogClickModal: false,
-                column: [
-                    {
-                        label: "场所名称",
-                        prop: "placeName",
-                        span: 24,
-                        row: true,
-                        searchSpan: 4,
-                        search: true,
-                        align: 'center'
-                    },
-                    {
-                        label: "场所地址",
-                        prop: "location",
-                        span: 24,
-                        row: true,
-                        searchSpan: 4,
-                        searchLabelWidth: 46,
-                        overHidden: true,
-                        align: 'center'
-                    }, {
-                        label: "场所类别",
-                        prop: "nineType",
-                        align: 'center',
-                        dicUrl: "/api/blade-system/dict-biz/tree?code=nineType",
-                        props: {
-                            label: "title",
-                            value: "key",
-                        },
-                        type: 'select',
-                        search: true,
-                        searchSpan: 4,
-                        searchLabelWidth: 96,
-                        align: 'center'
-                    }, {
-                        label: "所属街道",
-                        prop: "streetName",
-                        span: 24,
-                        row: true,
-                        searchSpan: 4,
-                        search: true,
-                        align: 'center'
-                    },
-                    {
-                        label: "所属社区",
-                        prop: "communityName",
-                        span: 24,
-                        row: true,
-                        searchSpan: 4,
-                        search: true,
-                        width: 160,
-                        overHidden: true,
-                        align: 'center'
-                    },
-                    {
-                        label: "所属网格",
-                        prop: "gridName",
-                        span: 24,
-                        row: true,
-                        searchSpan: 4,
-                        search: true,
-                        align: 'center'
-                    },
-                    {
-                        label: "场所隐患",
-                        prop: "remark",
-                        span: 24,
-                        row: true,
-                        searchSpan: 4,
-                        align: 'center'
-                    },
-                    {
-                        label: "场所负责人",
-                        prop: "principal",
-                        span: 24,
-                        row: true,
-                        searchSpan: 4,
-                        search: true,
-                        align: 'center'
-                    },
-                    {
-                        label: "场所负责人电话",
-                        prop: "principalPhone",
-                        span: 24,
-                        row: true,
-                        slot: true,
-                        searchSpan: 4,
-                        align: 'center'
-                    },
-                    {
-                        width: 110,
-                        label: "签名",
-                        prop: "signaturePath",
-                        type: "upload",
-                        listType: "picture-img",
-                        span: 24,
-                        align: 'center'
-                    },
-                    {
-                        width: 110,
-                        label: "审核状态",
-                        prop: "status",
-                        span: 24,
-                        align: 'center',
-                        slot: true,
-                    },
-                    {
-                        label: "创建时间",
-                        prop: "createTime",
-                        span: 24,
-                        row: true,
-                        searchSpan: 4,
-                        searchLabelWidth: 46,
-                        align: 'center'
-                    },
-                ],
+            {
+              label: "场所地址",
+              prop: "location",
+              span: 24,
+              row: true,
+              searchSpan: 4,
+              searchLabelWidth: 46,
+              overHidden: true,
+              align: 'center'
+            }, {
+              label: "场所类别",
+              prop: "nineType",
+              align: 'center',
+              dicUrl: "/api/blade-system/dict-biz/tree?code=nineType",
+              props: {
+                label: "title",
+                value: "key",
+              },
+              type: 'select',
+              search: true,
+              searchSpan: 4,
+              searchLabelWidth: 96,
+              align: 'center'
+            }, {
+              label: "所属街道",
+              prop: "streetName",
+              span: 24,
+              row: true,
+              searchSpan: 4,
+              search: true,
+              align: 'center'
             },
-            data: [],
+            {
+              label: "所属社区",
+              prop: "communityName",
+              span: 24,
+              row: true,
+              searchSpan: 4,
+              search: true,
+              width: 160,
+              overHidden: true,
+              align: 'center'
+            },
+            {
+              label: "所属网格",
+              prop: "gridName",
+              span: 24,
+              row: true,
+              searchSpan: 4,
+              search: true,
+              align: 'center'
+            },
+            {
+              label: "场所隐患",
+              prop: "remark",
+              span: 24,
+              row: true,
+              searchSpan: 4,
+              align: 'center'
+            },
+            {
+              label: "场所负责人",
+              prop: "principal",
+              span: 24,
+              row: true,
+              searchSpan: 4,
+              search: true,
+              align: 'center'
+            },
+            {
+              label: "场所负责人电话",
+              prop: "principalPhone",
+              span: 24,
+              row: true,
+              slot: true,
+              searchSpan: 4,
+              align: 'center'
+            },
+            {
+              width: 110,
+              label: "签名",
+              prop: "signaturePath",
+              type: "upload",
+              listType: "picture-img",
+              span: 24,
+              align: 'center'
+            },
+            {
+              width: 110,
+              label: "审核状态",
+              prop: "status",
+              span: 24,
+              align: 'center',
+              slot: true,
+            },
+            {
+              label: "创建时间",
+              prop: "createTime",
+              span: 24,
+              row: true,
+              searchSpan: 4,
+              searchLabelWidth: 46,
+              align: 'center'
+            },
+          ],
+        },
+        data: [],
 
-            auditBasePopup: false,
-            questionTypeList: [],
-            CNNum: ['一', '二', '三', '四', '五', '六', '七', '八', '九', '十', '十一', '十二', '十三', '十四', '十五'],
-            nineTypeList: [],
-            radio: '1',
-        }
+        auditBasePopup: false,
+        questionTypeList: [],
+        CNNum: ['一', '二', '三', '四', '五', '六', '七', '八', '九', '十', '十一', '十二', '十三', '十四', '十五'],
+        nineTypeList: [],
+        radio: '1',
+      }
     },
 
-    provide () {
-        return {
-            placeElement: this,
-        }
+    provide() {
+      return {
+        placeElement: this,
+      }
     },
 
     components: {
-        campusReporting,
-        hotelReporting,
-        labelReporting,
+      campusReporting,
+      hotelReporting,
+      labelReporting,
     },
 
     watch: {},
 
-    created () {
-        this.getPatrolGroupTree()
-        this.getDictBizTree()
+    created() {
+      this.getPatrolGroupTree()
+      this.getDictBizTree()
     },
 
     computed: {
-        ...mapGetters(["permission", "userInfo"]),
-        permissionList () {
-            return {
-                addBtn: this.vaildData(this.permission.place_add, false),
-                viewBtn: this.vaildData(this.permission.place_view, true),
-                delBtn: this.vaildData(this.permission.place_del, true),
-                // editBtn: this.vaildData(this.permission.place_edit, true),
-            }
-        },
-        ids () {
-            let ids = []
-            this.selectionList.forEach((ele) => {
-                ids.push(ele.id)
-            })
-            return ids.join(",")
-        },
-        showStatus () {
-            return (data) => {
-                let tags = {}
-                if (data == 1) {
-                    tags = {
-                        type: 'warning',
-                        text: '待审核'
-                    }
-                } else if (data == 2) {
-                    tags = {
-                        type: 'success',
-                        text: '已审核'
-                    }
-                } else if (data == 3) {
-                    tags = {
-                        type: 'danger',
-                        text: '未通过'
-                    }
-                } else if (data == 4) {
-                    tags = {
-                        type: 'warning',
-                        text: '待完成'
-                    }
-                }
-
-                return tags
-            }
-        },
-
-        textDispose () {
-            return (row, flag, type) => {
-                if (row[flag] || row[type] == null) {
-                    return row[type]
-                } else {
-                    if (type == 'principalIdCard') {
-                        return row[type].replace(/^(.{6})(?:\d+)(.{4})$/, "$1******$2")
-                    } else {
-                        return row[type].replace(/^(.{3})(?:\d+)(.{4})$/, "$1****$2")
-                    }
-                }
-            }
+      ...mapGetters(["permission", "userInfo"]),
+      permissionList() {
+        return {
+          addBtn: this.vaildData(this.permission.place_add, false),
+          viewBtn: this.vaildData(this.permission.place_view, true),
+          delBtn: this.vaildData(this.permission.place_del, true),
+          // editBtn: this.vaildData(this.permission.place_edit, true),
         }
+      },
+      ids() {
+        let ids = []
+        this.selectionList.forEach((ele) => {
+          ids.push(ele.id)
+        })
+        return ids.join(",")
+      },
+      showStatus() {
+        return (data) => {
+          let tags = {}
+          if (data == 1) {
+            tags = {
+              type: 'warning',
+              text: '待审核'
+            }
+          } else if (data == 2) {
+            tags = {
+              type: 'success',
+              text: '已审核'
+            }
+          } else if (data == 3) {
+            tags = {
+              type: 'danger',
+              text: '未通过'
+            }
+          } else if (data == 4) {
+            tags = {
+              type: 'warning',
+              text: '待完成'
+            }
+          }
+
+          return tags
+        }
+      },
+
+      textDispose() {
+        return (row, flag, type) => {
+          if (row[flag] || row[type] == null) {
+            return row[type]
+          } else {
+            if (type == 'principalIdCard') {
+              return row[type].replace(/^(.{6})(?:\d+)(.{4})$/, "$1******$2")
+            } else {
+              return row[type].replace(/^(.{3})(?:\d+)(.{4})$/, "$1****$2")
+            }
+          }
+        }
+      }
     },
     methods: {
-        // 点击展开收缩
-        flodQL (index) {
-            this.rowDetail.qTypeList[index].isShowQList = !this.rowDetail.qTypeList[index].isShowQList
-            this.refreshNum += 1
-        },
+      // 点击展开收缩
+      flodQL(index) {
+        this.rowDetail.qTypeList[index].isShowQList = !this.rowDetail.qTypeList[index].isShowQList
+        this.refreshNum += 1
+      },
 
-        // 对数组按属性分组
-        groupBy (arr, key) {
-            return arr.reduce((acc, curr) => {
-                (acc[curr[key]] = acc[curr[key]] || []).push(curr)
-                return acc
-            }, {})
-        },
+      // 对数组按属性分组
+      groupBy(arr, key) {
+        return arr.reduce((acc, curr) => {
+          (acc[curr[key]] = acc[curr[key]] || []).push(curr)
+          return acc
+        }, {})
+      },
 
-        // 九小类型字典接口
-        getDictBizTree () {
-            getDictBizTree({ code: 'nineType' }).then(res => {
-                this.nineTypeList = res.data.data
+      // 九小类型字典接口
+      getDictBizTree() {
+        getDictBizTree({
+          code: 'nineType'
+        }).then(res => {
+          this.nineTypeList = res.data.data
+        })
+      },
+
+      // 九小类型转换
+      switchNineType(type) {
+        return this.nineTypeList.find(item => item.key === type) ? this.nineTypeList.find(item => item.key === type)
+          .title : ''
+      },
+
+      // 获取问题类型
+      getPatrolGroupTree() {
+        getPatrolGroupTree({
+          type: 1,
+          childType: 1
+        }).then(res => {
+          this.questionTypeList = res.data.data
+        })
+      },
+
+      getDetail(rowData) {
+        this.drawerLoading = true
+        this.isDetail = true
+        getTaskPlaceSelfCheckInfo({
+          taskId: rowData.taskId
+        }).then(res => {
+          let row = res.data.data
+          if (row.taskPlaceRecordVOList) {
+            row.taskPlaceRecordVOList.forEach(item => {
+              item.imageUrlsList = []
+              item.rectificationImageUrlsList = []
+              if (item.imageUrls) {
+                item.imageUrlsList = item.imageUrls.split(',').map(ele => {
+                  return website.minioUrl + ele
+                })
+
+              }
+              if (item.rectificationImageUrls) {
+                item.rectificationImageUrlsList = item.rectificationImageUrls.split(',').map(ele => {
+                  return website.minioUrl + ele
+                })
+              }
+              // 查询问题类型
+              this.questionTypeList.forEach(qItem => {
+                qItem.children.forEach(qChild => {
+                  if (qChild.id == item.itemId) {
+                    item.qType = qItem.title
+                    item.itemsNameTitle = qChild.title
+                  }
+                })
+              })
             })
-        },
-
-        // 九小类型转换
-        switchNineType (type) {
-            return this.nineTypeList.find(item => item.key === type) ? this.nineTypeList.find(item => item.key === type).title : ''
-        },
-
-        // 获取问题类型
-        getPatrolGroupTree () {
-            getPatrolGroupTree().then(res => {
-                this.questionTypeList = res.data.data
+          }
+          if (row.taskPlaceRecordVOList) {
+            // 把相同类型问题分组
+            let obj = this.groupBy(row.taskPlaceRecordVOList, 'qType')
+            let arr = Object.entries(obj)
+            let newArr = []
+            arr.forEach(part => {
+              newArr.push({
+                questionName: part[0],
+                questionList: part[1],
+                isShowQList: true
+              })
             })
-        },
+            row.qTypeList = newArr
+          }
+          // 九小类型转换
+          row.nineTypeName = this.switchNineType(row.nineType)
+          this.rowDetail = row
+          this.drawerLoading = false
+        })
 
-        getDetail (rowData) {
-            this.drawerLoading = true
-            this.isDetail = true
-            getTaskPlaceSelfCheckInfo({ taskId: rowData.taskId }).then(res => {
-                let row = res.data.data
-                if (row.taskPlaceRecordVOList) {
-                    row.taskPlaceRecordVOList.forEach(item => {
-                        item.imageUrlsList = []
-                        item.rectificationImageUrlsList = []
-                        if (item.imageUrls) {
-                            item.imageUrlsList = item.imageUrls.split(',').map(ele => {
-                                return website.minioUrl + ele
-                            })
+      },
 
-                        }
-                        if (item.rectificationImageUrls) {
-                            item.rectificationImageUrlsList = item.rectificationImageUrls.split(',').map(ele => {
-                                return website.minioUrl + ele
-                            })
-                        }
-                        // 查询问题类型
-                        this.questionTypeList.forEach(qItem => {
-                            qItem.children.forEach(qChild => {
-                                if (qChild.id == item.itemId) {
-                                    item.qType = qItem.title
-                                    item.itemsNameTitle = qChild.title
-                                }
-                            })
-                        })
-                    })
-                }
-                if (row.taskPlaceRecordVOList) {
-                    // 把相同类型问题分组
-                    let obj = this.groupBy(row.taskPlaceRecordVOList, 'qType')
-                    let arr = Object.entries(obj)
-                    let newArr = []
-                    arr.forEach(part => {
-                        newArr.push({ questionName: part[0], questionList: part[1], isShowQList: true })
-                    })
-                    row.qTypeList = newArr
-                }
-                // 九小类型转换
-                row.nineTypeName = this.switchNineType(row.nineType)
-                this.rowDetail = row
-                this.drawerLoading = false
-            })
+      handleExport() {
+        this.$confirm("是否导出消防自查数据?", "提示", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(() => {
+          NProgress.start()
+          var data = {
+            ...this.query
+          }
+          // data.isNine = 1
+          data = Qs.stringify(data)
+          exportBlob(
+            `/api/blade-taskPlaceSelfCheck/taskPlaceSelfCheck/export-taskPlaceSelfCheck?${this.website.tokenHeader}=${getToken()}&` +
+            data
+          ).then(res => {
+            console.log('exportBlob', res)
+            downloadXls(res.data, `消防自查${dateNow()}.xlsx`)
+            NProgress.done()
+          })
+        })
+      },
 
-        },
+      showStringDispose(row, type) {
+        row[type] = !row[type]
+      },
 
-        handleExport () {
-            this.$confirm("是否导出场所检查数据?", "提示", {
-                confirmButtonText: "确定",
-                cancelButtonText: "取消",
-                type: "warning"
-            }).then(() => {
-                NProgress.start()
-                var data = {
-                    ...this.query
-                }
-                // data.isNine = 1
-                data = Qs.stringify(data)
-                exportBlob(
-                    `/api/blade-taskPlaceSelfCheck/taskPlaceSelfCheck/export-taskPlaceSelfCheck?${this.website.tokenHeader}=${getToken()}&` + data
-                ).then(res => {
-                    console.log('exportBlob', res)
-                    downloadXls(res.data, `消防自查${dateNow()}.xlsx`)
-                    NProgress.done()
-                })
-            })
-        },
+      // 弹窗关闭回调
+      handleClose() {
+        this.cancelAudit()
+      },
 
-        showStringDispose (row, type) {
-            row[type] = !row[type]
-        },
+      // 取消审核
+      cancelAudit() {
+        this.visible = false
+      },
 
-        // 弹窗关闭回调
-        handleClose () {
-            this.cancelAudit()
-        },
-
-        // 取消审核
-        cancelAudit () {
-            this.visible = false
-        },
-
-        // 确认提交审核
-        submitAudit (form) {
-            let auditForm = {
-                status: form.status == '1' ? '2' : '3',
-                remark: form.confirmNotion,
-                reportType: 2
-            }
-
-            applyTaskExamine(Object.assign(this.auditParams, auditForm)).then(res => {
-                if (res.data.code == 200) {
-                    this.$message.warning("审核成功")
-                    this.onLoad(this.page)
-                    this.cancelAudit()
-                }
-            })
-        },
-
-        // 审核按钮
-        goAudit (row) {
-            this.auditParams = {
-                id: row.taskId,
-                reportType: row.reportType
-            }
-            this.visible = true
-        },
-
-        colseDetail () {
-            this.auditBasePopup = false
-            this.onLoad(this.page)
-        },
-
-        lookDetail (row, applyType) {
-            this.auditBasePopup = true
-            var that = this
-            if (row.reportType == 6) {
-                this.taskType = 6
-                this.$nextTick(() => {
-                    that.$refs.campusReporting.init(row, applyType)
-                })
-            }
-            if (row.reportType == 2) {
-                this.taskType = 2
-                this.$nextTick(() => {
-                    that.$refs.hotelReporting.init(row, applyType)
-                })
-            }
-            if (row.reportType == 3 || row.reportType == 4 || row.reportType == 5) {
-                this.taskType = 3
-                this.$nextTick(() => {
-                    that.$refs.labelReporting.init(row, applyType)
-                })
-            }
-        },
-        auditCur (row) {
-            this.curAuditRow = row
-            this.auditBasePopup = true
-        },
-
-        roleBoxClose () {
-            this.curRow = {}
-        },
-
-        ManageTenants (item) {
-            this.curRow = item
-            this.roleBox = true
-        },
-
-        rowSave (row, done, loading) {
-            if (row.imageUrls && row.imageUrls.length > 0) {
-                var urls = []
-                var split = row.imageUrls.split(",").filter(item => item != '')
-                split.forEach(url => {
-                    var names = url.split("jczz/")
-                    urls.push(names[1])
-                })
-                row.imageUrls = urls.join(",")
-            }
-
-            let label = row.label
-
-            if (row.smallLabel != '') {
-                label = label + ',' + row.smallLabel
-            }
-
-            delete row.smallLabel
-
-            add({
-                ...row,
-                label
-            }).then(
-                () => {
-                    this.onLoad(this.page)
-                    this.$message({
-                        type: "success",
-                        message: "操作成功!",
-                    })
-                    done()
-                },
-                (error) => {
-                    window.console.log(error)
-                    loading()
-                }
-            )
-        },
-
-        rowUpdate (row, index, done, loading) {
-            if (row.imageUrls.length > 0) {
-                var urls = []
-                var split = row.imageUrls.split(",").filter(item => item != '')
-                split.forEach(url => {
-                    var names = url.split("jczz/")
-                    urls.push(names[1])
-                })
-                row.imageUrls = urls.join(",")
-            }
-
-            let label = row.label
-
-            if (row.smallLabel != '') {
-                label = label + ',' + row.smallLabel
-            }
-
-            delete row.smallLabel
-
-            update({
-                ...row,
-                label
-            }).then(
-                () => {
-                    this.onLoad(this.page)
-                    this.$message({
-                        type: "success",
-                        message: "操作成功!",
-                    })
-                    done()
-                },
-                (error) => {
-                    window.console.log(error)
-                    loading()
-                }
-            )
-        },
-
-        rowDel (row) {
-            this.$confirm("确定将选择数据删除?", {
-                confirmButtonText: "确定",
-                cancelButtonText: "取消",
-                type: "warning",
-            })
-                .then(() => {
-                    row.isDeleted = 1
-                    return removeTask(row)
-                })
-                .then(() => {
-                    this.onLoad(this.page)
-
-                    this.$message({
-                        type: "success",
-                        message: "操作成功!",
-                    })
-                })
-        },
-        searchReset () {
-            this.query = {}
-            this.page.currentPage = 1
-            this.onLoad(this.page)
-        },
-        searchChange (params, done) {
-            this.query = params
-            this.page.currentPage = 1
-            this.onLoad(this.page, params)
-            done()
-        },
-        selectionChange (list) {
-            this.selectionList = list
-        },
-        selectionClear () {
-            this.selectionList = []
-            this.$nextTick(() => {
-                this.$refs.crud && this.$refs.crud.toggleSelection()
-            })
-        },
-        handleDelete () {
-            if (this.selectionList.length === 0) {
-                this.$message.warning("请选择至少一条数据")
-                return
-            }
-            this.$confirm("确定将选择数据删除?", {
-                confirmButtonText: "确定",
-                cancelButtonText: "取消",
-                type: "warning",
-            })
-                .then(() => {
-                    return remove(this.ids)
-                })
-                .then(() => {
-                    this.onLoad(this.page)
-                    this.$message({
-                        type: "success",
-                        message: "操作成功!",
-                    })
-                    this.$refs.crud.toggleSelection()
-                })
-        },
-
-        beforeOpen (done, type) {
-            if (["edit", "view"].includes(type)) {
-                // getPlace(this.form.id).then((res) => {
-                //   this.form = res.data.data
-                //   if (this.form.imageUrls.length) {
-                //     this.form.imageUrls = this.form.imageUrls.split(",").filter(item => item != '').map(item => website
-                //       .minioUrl + item).join(',')
-                //   }
-                //   if (this.form.placePoiLabelVOList.length) {
-                //     let lebelTwo = this.form.placePoiLabelVOList.find(item => {
-                //       return item.type == 2
-                //     })
-                //     if (lebelTwo) this.form.label = String(lebelTwo.poiCode)
-                //     let lebelThree = this.form.placePoiLabelVOList.find(item => {
-                //       return item.type == 3
-                //     })
-                //     if (lebelThree) this.form.smallLabel = String(lebelThree.poiCode)
-                //   }
-                //   done()
-                // })
-            } else {
-                done()
-            }
-        },
-
-        currentChange (currentPage) {
-            this.page.currentPage = currentPage
-            this.onLoad(this.page, this.query)
-        },
-        sizeChange (pageSize) {
-            this.page.pageSize = pageSize
-            this.onLoad(this.page, this.query)
-        },
-        refreshChange () {
-            this.page.currentPage = 1
-            this.onLoad(this.page, this.query)
-        },
-        onLoad (page, params = {}) {
-            const {
-            } = this.query
-            let values = {
-                ...params,
-            }
-
-            this.loading = true
-            getTaskPlaceSelfCheckList(page.currentPage, page.pageSize, values).then((res) => {
-                const data = {
-                    ...res.data.data,
-                    records: res.data.data.records.map(item => {
-                        return {
-                            ...item,
-                            'createTime': item.createTime.slice(0, 16),
-                            'principalPhoneflag': false,
-                        }
-                    })
-                }
-                data.records.forEach(item => {
-                    if (item.signaturePath.length > 0) {
-                        var urls = []
-                        var names = item.signaturePath.split(",")
-                        names.forEach(name => {
-                            urls.push(website.minioUrl + name)
-                        })
-                        item.signaturePath = urls.join(",")
-                    }
-                })
-                this.page.total = data.total
-                this.data = data.records
-                this.loading = false
-                this.selectionClear()
-            })
+      // 确认提交审核
+      submitAudit(form) {
+        let auditForm = {
+          status: form.status == '1' ? '2' : '3',
+          remark: form.confirmNotion,
+          reportType: 2
         }
+
+        applyTaskExamine(Object.assign(this.auditParams, auditForm)).then(res => {
+          if (res.data.code == 200) {
+            this.$message.warning("审核成功")
+            this.onLoad(this.page)
+            this.cancelAudit()
+          }
+        })
+      },
+
+      // 审核按钮
+      goAudit(row) {
+        this.auditParams = {
+          id: row.taskId,
+          reportType: row.reportType
+        }
+        this.visible = true
+      },
+
+      colseDetail() {
+        this.auditBasePopup = false
+        this.onLoad(this.page)
+      },
+
+      lookDetail(row, applyType) {
+        this.auditBasePopup = true
+        var that = this
+        if (row.reportType == 6) {
+          this.taskType = 6
+          this.$nextTick(() => {
+            that.$refs.campusReporting.init(row, applyType)
+          })
+        }
+        if (row.reportType == 2) {
+          this.taskType = 2
+          this.$nextTick(() => {
+            that.$refs.hotelReporting.init(row, applyType)
+          })
+        }
+        if (row.reportType == 3 || row.reportType == 4 || row.reportType == 5) {
+          this.taskType = 3
+          this.$nextTick(() => {
+            that.$refs.labelReporting.init(row, applyType)
+          })
+        }
+      },
+      auditCur(row) {
+        this.curAuditRow = row
+        this.auditBasePopup = true
+      },
+
+      roleBoxClose() {
+        this.curRow = {}
+      },
+
+      ManageTenants(item) {
+        this.curRow = item
+        this.roleBox = true
+      },
+
+      rowSave(row, done, loading) {
+        if (row.imageUrls && row.imageUrls.length > 0) {
+          var urls = []
+          var split = row.imageUrls.split(",").filter(item => item != '')
+          split.forEach(url => {
+            var names = url.split("jczz/")
+            urls.push(names[1])
+          })
+          row.imageUrls = urls.join(",")
+        }
+
+        let label = row.label
+
+        if (row.smallLabel != '') {
+          label = label + ',' + row.smallLabel
+        }
+
+        delete row.smallLabel
+
+        add({
+          ...row,
+          label
+        }).then(
+          () => {
+            this.onLoad(this.page)
+            this.$message({
+              type: "success",
+              message: "操作成功!",
+            })
+            done()
+          },
+          (error) => {
+            window.console.log(error)
+            loading()
+          }
+        )
+      },
+
+      rowUpdate(row, index, done, loading) {
+        if (row.imageUrls.length > 0) {
+          var urls = []
+          var split = row.imageUrls.split(",").filter(item => item != '')
+          split.forEach(url => {
+            var names = url.split("jczz/")
+            urls.push(names[1])
+          })
+          row.imageUrls = urls.join(",")
+        }
+
+        let label = row.label
+
+        if (row.smallLabel != '') {
+          label = label + ',' + row.smallLabel
+        }
+
+        delete row.smallLabel
+
+        update({
+          ...row,
+          label
+        }).then(
+          () => {
+            this.onLoad(this.page)
+            this.$message({
+              type: "success",
+              message: "操作成功!",
+            })
+            done()
+          },
+          (error) => {
+            window.console.log(error)
+            loading()
+          }
+        )
+      },
+
+      rowDel(row) {
+        this.$confirm("确定将选择数据删除?", {
+            confirmButtonText: "确定",
+            cancelButtonText: "取消",
+            type: "warning",
+          })
+          .then(() => {
+            row.isDeleted = 1
+            return removeTask(row)
+          })
+          .then(() => {
+            this.onLoad(this.page)
+
+            this.$message({
+              type: "success",
+              message: "操作成功!",
+            })
+          })
+      },
+      searchReset() {
+        this.query = {}
+        this.page.currentPage = 1
+        this.onLoad(this.page)
+      },
+      searchChange(params, done) {
+        this.query = params
+        this.page.currentPage = 1
+        this.onLoad(this.page, params)
+        done()
+      },
+      selectionChange(list) {
+        this.selectionList = list
+      },
+      selectionClear() {
+        this.selectionList = []
+        this.$nextTick(() => {
+          this.$refs.crud && this.$refs.crud.toggleSelection()
+        })
+      },
+      handleDelete() {
+        if (this.selectionList.length === 0) {
+          this.$message.warning("请选择至少一条数据")
+          return
+        }
+        this.$confirm("确定将选择数据删除?", {
+            confirmButtonText: "确定",
+            cancelButtonText: "取消",
+            type: "warning",
+          })
+          .then(() => {
+            return remove(this.ids)
+          })
+          .then(() => {
+            this.onLoad(this.page)
+            this.$message({
+              type: "success",
+              message: "操作成功!",
+            })
+            this.$refs.crud.toggleSelection()
+          })
+      },
+
+      beforeOpen(done, type) {
+        if (["edit", "view"].includes(type)) {
+          // getPlace(this.form.id).then((res) => {
+          //   this.form = res.data.data
+          //   if (this.form.imageUrls.length) {
+          //     this.form.imageUrls = this.form.imageUrls.split(",").filter(item => item != '').map(item => website
+          //       .minioUrl + item).join(',')
+          //   }
+          //   if (this.form.placePoiLabelVOList.length) {
+          //     let lebelTwo = this.form.placePoiLabelVOList.find(item => {
+          //       return item.type == 2
+          //     })
+          //     if (lebelTwo) this.form.label = String(lebelTwo.poiCode)
+          //     let lebelThree = this.form.placePoiLabelVOList.find(item => {
+          //       return item.type == 3
+          //     })
+          //     if (lebelThree) this.form.smallLabel = String(lebelThree.poiCode)
+          //   }
+          //   done()
+          // })
+        } else {
+          done()
+        }
+      },
+
+      currentChange(currentPage) {
+        this.page.currentPage = currentPage
+        this.onLoad(this.page, this.query)
+      },
+      sizeChange(pageSize) {
+        this.page.pageSize = pageSize
+        this.onLoad(this.page, this.query)
+      },
+      refreshChange() {
+        this.page.currentPage = 1
+        this.onLoad(this.page, this.query)
+      },
+      onLoad(page, params = {}) {
+        const {} = this.query
+        let values = {
+          ...params,
+        }
+
+        this.loading = true
+        getTaskPlaceSelfCheckList(page.currentPage, page.pageSize, values).then((res) => {
+          const data = {
+            ...res.data.data,
+            records: res.data.data.records.map(item => {
+              return {
+                ...item,
+                'createTime': item.createTime.slice(0, 16),
+                'principalPhoneflag': false,
+              }
+            })
+          }
+          data.records.forEach(item => {
+            if (item.signaturePath.length > 0) {
+              var urls = []
+              var names = item.signaturePath.split(",")
+              names.forEach(name => {
+                urls.push(website.minioUrl + name)
+              })
+              item.signaturePath = urls.join(",")
+            }
+          })
+          this.page.total = data.total
+          this.data = data.records
+          this.loading = false
+          this.selectionClear()
+        })
+      }
     }
-}
+  }
 </script>
 
 <style lang="scss" scoped>
-:deep(.cur-container-box) {
+  :deep(.cur-container-box) {
     padding: 0;
-}
+  }
 
-:deep(.el-button--text) {
+  :deep(.el-button--text) {
     border: 0;
     background: transparent !important;
-}
+  }
 
-:deep(.el-radio__input.is-disabled+span.el-radio__label) {
+  :deep(.el-radio__input.is-disabled+span.el-radio__label) {
     color: #000;
-}
+  }
 
-:deep(.el-radio__input.is-checked+.el-radio__label) {
+  :deep(.el-radio__input.is-checked+.el-radio__label) {
     color: #409EFF !important;
-}
+  }
 
-:deep(.el-radio__input.is-checked .el-radio__inner::after) {
+  :deep(.el-radio__input.is-checked .el-radio__inner::after) {
     background-color: #FFF;
-}
+  }
 
-:deep(.el-radio__input.is-checked .el-radio__inner) {
+  :deep(.el-radio__input.is-checked .el-radio__inner) {
     background-color: #409EFF;
-}
+  }
 
-:deep(.avue-crud__img) {
+  :deep(.avue-crud__img) {
     height: 30px !important;
-}
+  }
 
-:deep(.el-radio) {
+  :deep(.el-radio) {
     margin-right: 20px;
-}
+  }
 
-.avue-upload__icon {
+  .avue-upload__icon {
     line-height: 6;
-}
+  }
 
-.cur-container-box {
+  .cur-container-box {
     display: flex;
     flex-direction: column;
     width: 100%;
@@ -886,22 +901,22 @@
     overflow: hidden;
 
     .content-box {
-        margin: 0 4px;
-        padding: 0 16px;
-        height: 0;
-        flex: 1;
-        overflow: hidden;
-        overflow-y: auto;
+      margin: 0 4px;
+      padding: 0 16px;
+      height: 0;
+      flex: 1;
+      overflow: hidden;
+      overflow-y: auto;
     }
 
     .footer-btn-box {
-        margin-top: 10px;
-        display: flex;
-        justify-content: center;
+      margin-top: 10px;
+      display: flex;
+      justify-content: center;
     }
-}
+  }
 
-.title {
+  .title {
     margin: 10px;
     height: 40px;
     background-color: #eee;
@@ -909,111 +924,111 @@
     align-items: center;
 
     .icon {
-        width: 4px;
-        height: 18px;
-        background-color: #409dfe;
-        margin: 0 10px;
-        color: transparent;
+      width: 4px;
+      height: 18px;
+      background-color: #409dfe;
+      margin: 0 10px;
+      color: transparent;
     }
-}
+  }
 
-.basic-info {
+  .basic-info {
     padding: 0 20px;
     font-size: 14px;
 
     .info-item {
+      display: flex;
+      padding: 10px;
+
+      .info-name {
+        width: 100px;
         display: flex;
-        padding: 10px;
+        align-items: center;
+      }
 
-        .info-name {
-            width: 100px;
-            display: flex;
-            align-items: center;
-        }
-
-        .info-value {
-            display: flex;
-            align-items: center;
-        }
+      .info-value {
+        display: flex;
+        align-items: center;
+      }
     }
-}
+  }
 
-.question-list {
+  .question-list {
     padding: 0 20px;
     font-size: 14px;
 
     .question-type {
-        height: 60px;
-        display: flex;
-        align-items: center;
-        cursor: pointer;
-        justify-content: space-between;
-        padding-right: 20px;
+      height: 60px;
+      display: flex;
+      align-items: center;
+      cursor: pointer;
+      justify-content: space-between;
+      padding-right: 20px;
 
-        .type-name {}
+      .type-name {}
 
-        .icon-box {}
+      .icon-box {}
     }
 
     .question-item {
-        margin-bottom: 20px;
-        padding: 10px;
-        background: #f5f7fa;
-        border-radius: 8px;
+      margin-bottom: 20px;
+      padding: 10px;
+      background: #f5f7fa;
+      border-radius: 8px;
 
-        &>div {
-            margin: 14px 0;
+      &>div {
+        margin: 14px 0;
+      }
+
+      .question-name {
+        display: flex;
+
+        .key {
+          width: 80%;
+          padding-right: 20px;
+          word-break: break-all;
         }
 
-        .question-name {
-            display: flex;
+        .value {
+          width: 20%;
+          display: flex;
+          align-items: center;
+          justify-content: center;
+        }
+      }
 
-            .key {
-                width: 80%;
-                padding-right: 20px;
-                word-break: break-all;
-            }
+      .yh-pic-box {
+        display: flex;
+        height: 100px;
 
-            .value {
-                width: 20%;
-                display: flex;
-                align-items: center;
-                justify-content: center;
-            }
+        .yh-pic-name {
+          width: 100px;
+          display: flex;
+          align-items: center;
+          justify-content: left;
         }
 
-        .yh-pic-box {
-            display: flex;
-            height: 100px;
+        .yh-pic-list {
+          width: 0;
+          flex: 1;
+          display: flex;
+        }
+      }
 
-            .yh-pic-name {
-                width: 100px;
-                display: flex;
-                align-items: center;
-                justify-content: left;
-            }
+      .yh-remark {
+        display: flex;
 
-            .yh-pic-list {
-                width: 0;
-                flex: 1;
-                display: flex;
-            }
+        .yh-remark-name {
+          width: 100px;
+          display: flex;
+          align-items: center;
+          justify-content: left;
         }
 
-        .yh-remark {
-            display: flex;
-
-            .yh-remark-name {
-                width: 100px;
-                display: flex;
-                align-items: center;
-                justify-content: left;
-            }
-
-            .yh-remark-value {
-                word-break: break-all;
-            }
+        .yh-remark-value {
+          word-break: break-all;
         }
+      }
     }
-}
+  }
 </style>
\ No newline at end of file
diff --git a/src/views/publicSecurity/ninePlaceManage/patrolRecord.vue b/src/views/publicSecurity/ninePlaceManage/patrolRecord.vue
index f350c39..5667986 100644
--- a/src/views/publicSecurity/ninePlaceManage/patrolRecord.vue
+++ b/src/views/publicSecurity/ninePlaceManage/patrolRecord.vue
@@ -1,652 +1,660 @@
 <template>
-    <basic-container>
-        <avue-crud :option="option" :table-loading="loading" :data="data" :page.sync="page" ref="crud" @row-del="rowDel"
-            v-model="form" :permission="permissionList" @row-update="rowUpdate" @row-save="rowSave"
-            :before-open="beforeOpen" @search-change="searchChange" @search-reset="searchReset"
-            @selection-change="selectionChange" @current-change="currentChange" @size-change="sizeChange"
-            @refresh-change="refreshChange" @on-load="onLoad">
-            <template slot-scope="{row, size}" slot="principalPhone">
-                <el-button :size="size" type="text" @click="showStringDispose(row, 'principalPhoneflag')"
-                    v-text="textDispose(row, 'principalPhoneflag', 'principalPhone')">
-                </el-button>
-            </template>
-            <template slot-scope="{type,size,row }" slot="menu">
-                <el-button icon="el-icon-detail" :size="size" :type="type" @click.stop="getDetail(row)">
-                    详情
-                </el-button>
-            </template>
-            <template slot="menuLeft">
-                <el-button type="warning" size="small" plain icon="el-icon-download" @click="handleExport">导出
-                </el-button>
-            </template>
-        </avue-crud>
+  <basic-container>
+    <avue-crud :option="option" :table-loading="loading" :data="data" :page.sync="page" ref="crud" @row-del="rowDel"
+      v-model="form" :permission="permissionList" @row-update="rowUpdate" @row-save="rowSave" :before-open="beforeOpen"
+      @search-change="searchChange" @search-reset="searchReset" @selection-change="selectionChange"
+      @current-change="currentChange" @size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad">
+      <template slot-scope="{row, size}" slot="principalPhone">
+        <el-button :size="size" type="text" @click="showStringDispose(row, 'principalPhoneflag')"
+          v-text="textDispose(row, 'principalPhoneflag', 'principalPhone')">
+        </el-button>
+      </template>
+      <template slot-scope="{type,size,row }" slot="menu">
+        <el-button icon="el-icon-detail" :size="size" :type="type" @click.stop="getDetail(row)">
+          详情
+        </el-button>
+      </template>
+      <template slot="menuLeft">
+        <el-button type="warning" size="small" plain icon="el-icon-download" @click="handleExport">导出
+        </el-button>
+      </template>
+    </avue-crud>
 
 
-        <el-drawer title="巡查详情" :visible.sync="isDetail" :append-to-body="true" size="40%" direction="rtl">
-            <div class="title">
-                <div class="icon">{{ refreshNum }}</div>
-                基础信息
-            </div>
-            <div class="basic-info">
-                <div class="info-item">
-                    <div class="info-name">场所名称</div>
-                    <div class="info-value">{{ rowDetail.placeName }}</div>
-                </div>
-                <div class="info-item">
-                    <div class="info-name">场所类型</div>
-                    <div class="info-value">{{ rowDetail.nineTypeName }}</div>
-                </div>
-                <div class="info-item">
-                    <div class="info-name">检查人</div>
-                    <div class="info-value">{{ rowDetail.name }}</div>
-                </div>
-                <div class="info-item">
-                    <div class="info-name">检查时间</div>
-                    <div class="info-value">{{ rowDetail.createTime }}</div>
-                </div>
-            </div>
-            <div class="title">
-                <div class="icon"></div>
-                检查记录
-            </div>
+    <el-drawer title="巡查详情" :visible.sync="isDetail" :append-to-body="true" size="40%" direction="rtl">
+      <div class="title">
+        <div class="icon">{{ refreshNum }}</div>
+        基础信息
+      </div>
+      <div class="basic-info">
+        <div class="info-item">
+          <div class="info-name">场所名称</div>
+          <div class="info-value">{{ rowDetail.placeName }}</div>
+        </div>
+        <div class="info-item">
+          <div class="info-name">场所类型</div>
+          <div class="info-value">{{ rowDetail.nineTypeName }}</div>
+        </div>
+        <div class="info-item">
+          <div class="info-name">检查人</div>
+          <div class="info-value">{{ rowDetail.name }}</div>
+        </div>
+        <div class="info-item">
+          <div class="info-name">检查时间</div>
+          <div class="info-value">{{ rowDetail.createTime }}</div>
+        </div>
+      </div>
+      <div class="title">
+        <div class="icon"></div>
+        检查记录
+      </div>
 
-            <div class="question-list" v-for="(tItem, tIndex) in rowDetail.qTypeList" :key='tIndex'>
-                <div class="question-type" @click="flodQL(tIndex)">
-                    <div class="type-name">
-                        {{ CNNum[tIndex] }}、{{ tItem.questionName }}
-                    </div>
-                    <div class="icon-box"><i class="el-icon-arrow-down" v-show="tItem.isShowQList"></i><i
-                            class="el-icon-arrow-up" v-show="!tItem.isShowQList"></i></div>
-                </div>
-                <div class="question-item" v-for="(item, index) in tItem.questionList" :key='index'
-                    v-show="tItem.isShowQList">
-                    <div class="question-name">
-                        <div class="key">{{ index + 1 }}、{{ item.itemsNameTitle }}</div>
-                        <div class="value"><el-radio v-model="radio" label="1" disabled>存在</el-radio>
-                            <el-radio v-model="radio" label="2" disabled>不存在</el-radio>
-                        </div>
-                    </div>
-                    <div class="yh-pic-box">
-                        <div class="yh-pic-name">
-                            隐患图片
-                        </div>
-                        <div class="yh-pic-list">
-                            <div class="pic-item" v-for="pic in item.imageUrlsList">
-                                <el-image style="width: 100px; height: 100px" :src="pic" :fit="fit"></el-image>
-                            </div>
-                        </div>
-                    </div>
-                    <div class="yh-remark">
-                        <div class="yh-remark-name">
-                            隐患描述
-                        </div>
-                        <div class="yh-remark-value">
-                            {{ item.remark }}
-                        </div>
-                    </div>
-                    <div class="yh-pic-box">
-                        <div class="yh-pic-name">
-                            整改后图片
-                        </div>
-                        <div class="yh-pic-list">
-                            <div class="pic-item" v-for="pic in item.rectificationImageUrlsList">
-                                <el-image style="width: 100px; height: 100px" :src="pic" :fit="fit"></el-image>
-                            </div>
-                        </div>
-                    </div>
-                    <div class="yh-remark">
-                        <div class="yh-remark-name">
-                            整改后描述
-                        </div>
-                        <div class="yh-remark-value">
-                            {{ item.rectificationRemark }}
-                        </div>
-                    </div>
-                </div>
+      <div class="question-list" v-for="(tItem, tIndex) in rowDetail.qTypeList" :key='tIndex'>
+        <div class="question-type" @click="flodQL(tIndex)">
+          <div class="type-name">
+            {{ CNNum[tIndex] }}、{{ tItem.questionName }}
+          </div>
+          <div class="icon-box"><i class="el-icon-arrow-down" v-show="tItem.isShowQList"></i><i class="el-icon-arrow-up"
+              v-show="!tItem.isShowQList"></i></div>
+        </div>
+        <div class="question-item" v-for="(item, index) in tItem.questionList" :key='index' v-show="tItem.isShowQList">
+          <div class="question-name">
+            <div class="key">{{ index + 1 }}、{{ item.itemsNameTitle }}</div>
+            <div class="value"><el-radio v-model="radio" label="1" disabled>存在</el-radio>
+              <el-radio v-model="radio" label="2" disabled>不存在</el-radio>
             </div>
-        </el-drawer>
+          </div>
+          <div class="yh-pic-box">
+            <div class="yh-pic-name">
+              隐患图片
+            </div>
+            <div class="yh-pic-list">
+              <div class="pic-item" v-for="pic in item.imageUrlsList">
+                <el-image style="width: 100px; height: 100px" :src="pic" :fit="fit"></el-image>
+              </div>
+            </div>
+          </div>
+          <div class="yh-remark">
+            <div class="yh-remark-name">
+              隐患描述
+            </div>
+            <div class="yh-remark-value">
+              {{ item.remark }}
+            </div>
+          </div>
+          <div class="yh-pic-box">
+            <div class="yh-pic-name">
+              整改后图片
+            </div>
+            <div class="yh-pic-list">
+              <div class="pic-item" v-for="pic in item.rectificationImageUrlsList">
+                <el-image style="width: 100px; height: 100px" :src="pic" :fit="fit"></el-image>
+              </div>
+            </div>
+          </div>
+          <div class="yh-remark">
+            <div class="yh-remark-name">
+              整改后描述
+            </div>
+            <div class="yh-remark-value">
+              {{ item.rectificationRemark }}
+            </div>
+          </div>
+        </div>
+      </div>
+    </el-drawer>
 
-    </basic-container>
+  </basic-container>
 </template>
 
 <script>
-import {
+  import {
     getList,
     remove,
     update,
     add,
     getNotice,
     upcomment
-} from "@/api/patrol/placeChek"
+  } from "@/api/patrol/placeChek"
 
-import {
-    getPatrolGroupTree, getDictBizTree
-} from "@/api/publicSecurity/ninePlaceManage"
+  import {
+    getPatrolGroupTree,
+    getDictBizTree
+  } from "@/api/publicSecurity/ninePlaceManage"
 
-import website from '@/config/website'
-import NProgress from 'nprogress'
-import 'nprogress/nprogress.css'
-import Qs from "qs"
-import {
+  import website from '@/config/website'
+  import NProgress from 'nprogress'
+  import 'nprogress/nprogress.css'
+  import Qs from "qs"
+  import {
     exportBlob
-} from "@/api/common"
-import {
+  } from "@/api/common"
+  import {
     getToken
-} from '@/util/auth'
-import {
+  } from '@/util/auth'
+  import {
     downloadXls
-} from "@/util/util"
-import {
+  } from "@/util/util"
+  import {
     dateNow
-} from "@/util/date"
-import {
+  } from "@/util/date"
+  import {
     getDistrictTree
-} from "@/api/district/index"
+  } from "@/api/district/index"
 
-import {
+  import {
     mapGetters
-} from "vuex"
+  } from "vuex"
 
-export default {
-    data () {
-        return {
-            isDetail: false,
-            form: {},
-            query: {},
-            loading: true,
-            page: {
-                pageSize: 10,
-                currentPage: 1,
-                total: 0,
+  export default {
+    data() {
+      return {
+        isDetail: false,
+        form: {},
+        query: {},
+        loading: true,
+        page: {
+          pageSize: 10,
+          currentPage: 1,
+          total: 0,
+        },
+        datetime: "",
+        selectionList: [],
+        option: {
+          labelWidth: 120,
+          searchLabelWidth: 96,
+          searchShow: true,
+          searchMenuSpan: 3,
+          menuWidth: 100,
+          // menu: false,
+          height: "auto",
+          calcHeight: 54,
+          dialogWidth: 950,
+          tip: false,
+          border: true,
+          addBtn: false,
+          delBtn: false,
+          //stripe:true,
+          index: true,
+          editBtn: false,
+          viewBtn: false,
+          // selection: true,
+          excelBtn: false,
+          refreshBtn: false,
+          searchShowBtn: false,
+          columnBtn: false,
+          dialogClickModal: false,
+          column: [{
+              label: "场所名称",
+              prop: "placeName",
+              span: 24,
+              row: true,
+              searchSpan: 4,
+              search: true,
+              align: 'center'
             },
-            datetime: "",
-            selectionList: [],
-            option: {
-                labelWidth: 120,
-                searchLabelWidth: 96,
-                searchShow: true,
-                searchMenuSpan: 3,
-                menuWidth: 100,
-                // menu: false,
-                height: "auto",
-                calcHeight: 54,
-                dialogWidth: 950,
-                tip: false,
-                border: true,
-                addBtn: false,
-                delBtn: false,
-                //stripe:true,
-                index: true,
-                editBtn: false,
-                viewBtn: false,
-                // selection: true,
-                excelBtn: false,
-                refreshBtn: false,
-                searchShowBtn: false,
-                columnBtn: false,
-                dialogClickModal: false,
-                column: [
-                    {
-                        label: "场所名称",
-                        prop: "placeName",
-                        span: 24,
-                        row: true,
-                        searchSpan: 4,
-                        search: true,
-                        align: 'center'
-                    },
-                    {
-                        label: "场所地址",
-                        prop: "location",
-                        span: 24,
-                        row: true,
-                        searchSpan: 4,
-                        searchLabelWidth: 46,
-                        overHidden: true,
-                        align: 'center'
-                    },
-                    {
-                        label: "场所类别",
-                        prop: "nineType",
-                        align: 'center',
-                        dicUrl: "/api/blade-system/dict-biz/tree?code=nineType",
-                        props: {
-                            label: "title",
-                            value: "key",
-                        },
-                        type: 'select',
-                        search: true,
-                        searchSpan: 4,
-                        searchLabelWidth: 96,
-                        align: 'center'
-                    }, {
-                        label: "所属街道",
-                        prop: "streetName",
-                        span: 24,
-                        row: true,
-                        searchSpan: 4,
-                        search: true,
-                        align: 'center'
-                    },
-                    {
-                        label: "所属社区",
-                        prop: "communityName",
-                        span: 24,
-                        row: true,
-                        searchSpan: 4,
-                        search: true,
-                        width: 160,
-                        overHidden: true,
-                        align: 'center'
-                    },
-                    {
-                        label: "所属网格",
-                        prop: "gridName",
-                        span: 24,
-                        row: true,
-                        searchSpan: 4,
-                        search: true,
-                        align: 'center'
-                    },
-                    {
-                        label: "场所隐患",
-                        prop: "remark",
-                        span: 24,
-                        row: true,
-                        searchSpan: 4,
-                        align: 'center'
-                    },
-                    {
-                        label: "场所负责人",
-                        prop: "principal",
-                        span: 24,
-                        row: true,
-                        searchSpan: 4,
-                        search: true,
-                        align: 'center'
-                    },
-                    {
-                        label: "场所负责人电话",
-                        prop: "principalPhone",
-                        span: 24,
-                        row: true,
-                        slot: true,
-                        searchSpan: 4,
-                        align: 'center'
-                    },
-                    {
-                        width: 110,
-                        label: "签名",
-                        prop: "signaturePath",
-                        type: "upload",
-                        listType: "picture-img",
-                        span: 24,
-                        align: 'center'
-                    },
-                    {
-                        label: "创建时间",
-                        prop: "createTime",
-                        span: 24,
-                        row: true,
-                        searchSpan: 4,
-                        searchLabelWidth: 46,
-                        align: 'center'
-                    },
-                ],
+            {
+              label: "场所地址",
+              prop: "location",
+              span: 24,
+              row: true,
+              searchSpan: 4,
+              searchLabelWidth: 46,
+              overHidden: true,
+              align: 'center'
             },
-            data: [],
+            {
+              label: "场所类别",
+              prop: "nineType",
+              align: 'center',
+              dicUrl: "/api/blade-system/dict-biz/tree?code=nineType",
+              props: {
+                label: "title",
+                value: "key",
+              },
+              type: 'select',
+              search: true,
+              searchSpan: 4,
+              searchLabelWidth: 96,
+              align: 'center'
+            }, {
+              label: "所属街道",
+              prop: "streetName",
+              span: 24,
+              row: true,
+              searchSpan: 4,
+              search: true,
+              align: 'center'
+            },
+            {
+              label: "所属社区",
+              prop: "communityName",
+              span: 24,
+              row: true,
+              searchSpan: 4,
+              search: true,
+              width: 160,
+              overHidden: true,
+              align: 'center'
+            },
+            {
+              label: "所属网格",
+              prop: "gridName",
+              span: 24,
+              row: true,
+              searchSpan: 4,
+              search: true,
+              align: 'center'
+            },
+            {
+              label: "场所隐患",
+              prop: "remark",
+              span: 24,
+              row: true,
+              searchSpan: 4,
+              align: 'center'
+            },
+            {
+              label: "场所负责人",
+              prop: "principal",
+              span: 24,
+              row: true,
+              searchSpan: 4,
+              search: true,
+              align: 'center'
+            },
+            {
+              label: "场所负责人电话",
+              prop: "principalPhone",
+              span: 24,
+              row: true,
+              slot: true,
+              searchSpan: 4,
+              align: 'center'
+            },
+            {
+              width: 110,
+              label: "签名",
+              prop: "signaturePath",
+              type: "upload",
+              listType: "picture-img",
+              span: 24,
+              align: 'center'
+            },
+            {
+              label: "创建时间",
+              prop: "createTime",
+              span: 24,
+              row: true,
+              searchSpan: 4,
+              searchLabelWidth: 46,
+              align: 'center'
+            },
+          ],
+        },
+        data: [],
 
-            districtTree: [],
-            rowDetail: [],
-            refreshNum: 1,
-            radio: '1',
-            questionTypeList: [],
-            CNNum: ['一', '二', '三', '四', '五', '六', '七', '八', '九', '十', '十一', '十二', '十三', '十四', '十五'],
-            nineTypeList: []
-        }
+        districtTree: [],
+        rowDetail: [],
+        refreshNum: 1,
+        radio: '1',
+        questionTypeList: [],
+        CNNum: ['一', '二', '三', '四', '五', '六', '七', '八', '九', '十', '十一', '十二', '十三', '十四', '十五'],
+        nineTypeList: []
+      }
     },
     watch: {
-        "form.articleType": {
-            handler (val) {
-                if (val) {
-                    var videoUrl = this.findObject(this.option.column, "videoUrl")
-                    var content = this.findObject(this.option.column, "content")
-                    if (val.indexOf('ksp') != -1) {
-                        videoUrl.display = true
-                        content.display = false
-                        videoUrl.rules = [{
-                            required: false,
-                            message: "请选择视频",
-                            trigger: "blur",
-                        },]
-                    } else {
-                        videoUrl.display = false
-                        content.display = true
-                        videoUrl.rules = ""
-                    }
-                }
-            },
-            immediate: true,
-        }
+      "form.articleType": {
+        handler(val) {
+          if (val) {
+            var videoUrl = this.findObject(this.option.column, "videoUrl")
+            var content = this.findObject(this.option.column, "content")
+            if (val.indexOf('ksp') != -1) {
+              videoUrl.display = true
+              content.display = false
+              videoUrl.rules = [{
+                required: false,
+                message: "请选择视频",
+                trigger: "blur",
+              }, ]
+            } else {
+              videoUrl.display = false
+              content.display = true
+              videoUrl.rules = ""
+            }
+          }
+        },
+        immediate: true,
+      }
     },
     computed: {
-        ...mapGetters(["permission", "userInfo"]),
-        permissionList () {
-            return {
-                addBtn: this.vaildData(this.permission.article_add, true),
-                viewBtn: this.vaildData(this.permission.article_view, true),
-                delBtn: this.vaildData(this.permission.article_delete, true),
-                editBtn: this.vaildData(this.permission.article_edit, true),
-            }
-        },
-
-        textDispose () {
-            return (row, flag, type) => {
-                if (row[flag] || row[type] == null) {
-                    return row[type]
-                } else {
-                    if (type == 'principalIdCard') {
-                        return row[type].replace(/^(.{6})(?:\d+)(.{4})$/, "$1******$2")
-                    } else {
-                        return row[type].replace(/^(.{3})(?:\d+)(.{4})$/, "$1****$2")
-                    }
-                }
-            }
+      ...mapGetters(["permission", "userInfo"]),
+      permissionList() {
+        return {
+          addBtn: this.vaildData(this.permission.article_add, true),
+          viewBtn: this.vaildData(this.permission.article_view, true),
+          delBtn: this.vaildData(this.permission.article_delete, true),
+          editBtn: this.vaildData(this.permission.article_edit, true),
         }
+      },
+
+      textDispose() {
+        return (row, flag, type) => {
+          if (row[flag] || row[type] == null) {
+            return row[type]
+          } else {
+            if (type == 'principalIdCard') {
+              return row[type].replace(/^(.{6})(?:\d+)(.{4})$/, "$1******$2")
+            } else {
+              return row[type].replace(/^(.{3})(?:\d+)(.{4})$/, "$1****$2")
+            }
+          }
+        }
+      }
 
     },
 
-    created () {
-        this.getPatrolGroupTree()
-        this.getDictBizTree()
+    created() {
+      this.getPatrolGroupTree()
+      this.getDictBizTree()
     },
 
     methods: {
-        handleExport () {
-            this.$confirm("是否导出场所检查数据?", "提示", {
-                confirmButtonText: "确定",
-                cancelButtonText: "取消",
-                type: "warning"
-            }).then(() => {
-                NProgress.start()
-                var data = {
-                    ...this.query
+      handleExport() {
+        this.$confirm("是否导出场所检查数据?", "提示", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(() => {
+          NProgress.start()
+          var data = {
+            ...this.query
+          }
+          // data.isNine = 1
+          data = Qs.stringify(data)
+          exportBlob(
+            `/api/blade-placeCheck/placeCheck/export-placeCheck?${this.website.tokenHeader}=${getToken()}&` + data
+          ).then(res => {
+            console.log('exportBlob', res)
+            downloadXls(res.data, `场所检查${dateNow()}.xlsx`)
+            NProgress.done()
+          })
+        })
+      },
+
+      showStringDispose(row, type) {
+        row[type] = !row[type]
+      },
+
+      // 点击展开收缩
+      flodQL(index) {
+        this.rowDetail.qTypeList[index].isShowQList = !this.rowDetail.qTypeList[index].isShowQList
+        this.refreshNum += 1
+      },
+
+      // 对数组按属性分组
+      groupBy(arr, key) {
+        return arr.reduce((acc, curr) => {
+          (acc[curr[key]] = acc[curr[key]] || []).push(curr)
+          return acc
+        }, {})
+      },
+
+      // 九小类型字典接口
+      getDictBizTree() {
+        getDictBizTree({
+          code: 'nineType'
+        }).then(res => {
+          this.nineTypeList = res.data.data
+        })
+      },
+
+      // 九小类型转换
+      switchNineType(type) {
+        return this.nineTypeList.find(item => item.key === type) ? this.nineTypeList.find(item => item.key === type)
+          .title : ''
+      },
+
+      // 获取问题类型
+      getPatrolGroupTree() {
+        getPatrolGroupTree({
+          type: 1,
+          childType: 1
+        }).then(res => {
+          this.questionTypeList = res.data.data
+        })
+      },
+
+      getDetail(row) {
+        if (row.patrolRecordVOList) {
+          row.patrolRecordVOList.forEach(item => {
+            item.imageUrlsList = []
+            item.rectificationImageUrlsList = []
+            if (item.imageUrls) {
+              item.imageUrlsList = item.imageUrls.split(',').map(ele => {
+                return website.minioUrl + ele
+              })
+
+            }
+            if (item.rectificationImageUrls) {
+              item.rectificationImageUrlsList = item.rectificationImageUrls.split(',').map(ele => {
+                return website.minioUrl + ele
+              })
+            }
+            // 查询问题类型
+            this.questionTypeList.forEach(qItem => {
+              qItem.children.forEach(qChild => {
+                if (qChild.id == item.itemId) {
+                  item.qType = qItem.title
+                  item.itemsNameTitle = qChild.title
                 }
-                // data.isNine = 1
-                data = Qs.stringify(data)
-                exportBlob(
-                    `/api/blade-placeCheck/placeCheck/export-placeCheck?${this.website.tokenHeader}=${getToken()}&` + data
-                ).then(res => {
-                    console.log('exportBlob', res)
-                    downloadXls(res.data, `场所检查${dateNow()}.xlsx`)
-                    NProgress.done()
-                })
+              })
             })
-        },
-
-        showStringDispose (row, type) {
-            row[type] = !row[type]
-        },
-
-        // 点击展开收缩
-        flodQL (index) {
-            this.rowDetail.qTypeList[index].isShowQList = !this.rowDetail.qTypeList[index].isShowQList
-            this.refreshNum += 1
-        },
-
-        // 对数组按属性分组
-        groupBy (arr, key) {
-            return arr.reduce((acc, curr) => {
-                (acc[curr[key]] = acc[curr[key]] || []).push(curr)
-                return acc
-            }, {})
-        },
-
-        // 九小类型字典接口
-        getDictBizTree () {
-            getDictBizTree({ code: 'nineType' }).then(res => {
-                this.nineTypeList = res.data.data
+          })
+        }
+        if (row.patrolRecordVOList) {
+          // 把相同类型问题分组
+          let obj = this.groupBy(row.patrolRecordVOList, 'qType')
+          let arr = Object.entries(obj)
+          let newArr = []
+          arr.forEach(part => {
+            newArr.push({
+              questionName: part[0],
+              questionList: part[1],
+              isShowQList: true
             })
-        },
-
+          })
+          row.qTypeList = newArr
+        }
         // 九小类型转换
-        switchNineType (type) {
-            return this.nineTypeList.find(item => item.key === type) ? this.nineTypeList.find(item => item.key === type).title : ''
-        },
+        row.nineTypeName = this.switchNineType(row.nineType)
+        this.rowDetail = row
+        this.isDetail = true
+      },
 
-        // 获取问题类型
-        getPatrolGroupTree () {
-            getPatrolGroupTree().then(res => {
-                this.questionTypeList = res.data.data
-            })
-        },
-
-        getDetail (row) {
-            if (row.patrolRecordVOList) {
-                row.patrolRecordVOList.forEach(item => {
-                    item.imageUrlsList = []
-                    item.rectificationImageUrlsList = []
-                    if (item.imageUrls) {
-                        item.imageUrlsList = item.imageUrls.split(',').map(ele => {
-                            return website.minioUrl + ele
-                        })
-
-                    }
-                    if (item.rectificationImageUrls) {
-                        item.rectificationImageUrlsList = item.rectificationImageUrls.split(',').map(ele => {
-                            return website.minioUrl + ele
-                        })
-                    }
-                    // 查询问题类型
-                    this.questionTypeList.forEach(qItem => {
-                        qItem.children.forEach(qChild => {
-                            if (qChild.id == item.itemId) {
-                                item.qType = qItem.title
-                                item.itemsNameTitle = qChild.title
-                            }
-                        })
-                    })
-                })
-            }
-            if (row.patrolRecordVOList) {
-                // 把相同类型问题分组
-                let obj = this.groupBy(row.patrolRecordVOList, 'qType')
-                let arr = Object.entries(obj)
-                let newArr = []
-                arr.forEach(part => {
-                    newArr.push({ questionName: part[0], questionList: part[1], isShowQList: true })
-                })
-                row.qTypeList = newArr
-            }
-            // 九小类型转换
-            row.nineTypeName = this.switchNineType(row.nineType)
-            this.rowDetail = row
-            this.isDetail = true
-        },
-
-        searchReset () {
-            this.query = {}
+      searchReset() {
+        this.query = {}
+        this.onLoad(this.page)
+      },
+      searchChange(params, done) {
+        this.query = params
+        this.page.currentPage = 1
+        this.onLoad(this.page, params)
+        done()
+      },
+      selectionChange(list) {
+        this.selectionList = list
+      },
+      selectionClear() {
+        this.selectionList = []
+        this.$refs.crud.toggleSelection()
+      },
+      handleDelete() {
+        if (this.selectionList.length === 0) {
+          this.$message.warning("请选择至少一条数据")
+          return
+        }
+        this.$confirm("确定将选择数据删除?", {
+            confirmButtonText: "确定",
+            cancelButtonText: "取消",
+            type: "warning",
+          })
+          .then(() => {
+            return remove(this.ids)
+          })
+          .then(() => {
             this.onLoad(this.page)
-        },
-        searchChange (params, done) {
-            this.query = params
-            this.page.currentPage = 1
-            this.onLoad(this.page, params)
-            done()
-        },
-        selectionChange (list) {
-            this.selectionList = list
-        },
-        selectionClear () {
-            this.selectionList = []
+            this.$message({
+              type: "success",
+              message: "操作成功!",
+            })
             this.$refs.crud.toggleSelection()
-        },
-        handleDelete () {
-            if (this.selectionList.length === 0) {
-                this.$message.warning("请选择至少一条数据")
-                return
+          })
+      },
+      beforeOpen(done, type) {
+        if (["edit", "view"].includes(type)) {
+          getNotice(this.form.id).then((res) => {
+            let data = res.data.data
+            // data.forEach(item=>{
+            if (data.url.length > 0) {
+              var urls = []
+              var names = data.url.split(",")
+              names.forEach(name => {
+                urls.push(website.minioUrl + name)
+              })
+              data.url = urls.join(",")
             }
-            this.$confirm("确定将选择数据删除?", {
-                confirmButtonText: "确定",
-                cancelButtonText: "取消",
-                type: "warning",
+            data.articleList = JSON.parse(data.articleRange)
+            this.form = data
+          })
+        }
+        // con
+        done()
+      },
+      currentChange(currentPage) {
+        this.page.currentPage = currentPage
+      },
+      sizeChange(pageSize) {
+        this.page.pageSize = pageSize
+      },
+      refreshChange() {
+        this.onLoad(this.page, this.query)
+      },
+      onLoad(page, params = {}) {
+        this.loading = true
+        getList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then((res) => {
+          const data = {
+            ...res.data.data,
+            records: res.data.data.records.map(item => {
+              return {
+                ...item,
+                'createTime': item.createTime.slice(0, 16),
+                'principalPhoneflag': false,
+              }
             })
-                .then(() => {
-                    return remove(this.ids)
-                })
-                .then(() => {
-                    this.onLoad(this.page)
-                    this.$message({
-                        type: "success",
-                        message: "操作成功!",
-                    })
-                    this.$refs.crud.toggleSelection()
-                })
-        },
-        beforeOpen (done, type) {
-            if (["edit", "view"].includes(type)) {
-                getNotice(this.form.id).then((res) => {
-                    let data = res.data.data
-                    // data.forEach(item=>{
-                    if (data.url.length > 0) {
-                        var urls = []
-                        var names = data.url.split(",")
-                        names.forEach(name => {
-                            urls.push(website.minioUrl + name)
-                        })
-                        data.url = urls.join(",")
-                    }
-                    data.articleList = JSON.parse(data.articleRange)
-                    this.form = data
-                })
+          }
+          data.records.forEach(item => {
+            if (item.signaturePath.length > 0) {
+              var urls = []
+              var names = item.signaturePath.split(",")
+              names.forEach(name => {
+                urls.push(website.minioUrl + name)
+              })
+              item.signaturePath = urls.join(",")
             }
-            // con
+          })
+          this.page.total = data.total
+          this.data = data.records
+          this.loading = false
+          this.selectionClear()
+        }).catch(err => {
+          setTimeout(() => {
+            this.loading = false
+          }, 300)
+        })
+        getDistrictTree({
+          filterFlag: 1
+        }).then((res) => {
+          const data = res.data.data
+          this.districtTree = data
+          const column = this.findObject(this.option.column, "articleList")
+          column.dicData = res.data.data
+          this.loading = false
+        }).catch(err => {
+          setTimeout(() => {
+            this.loading = false
+          }, 300)
+        })
+      },
+      updateFb(row) {
+        if (row.publish == "0") {
+          row.publish = "1"
+        } else {
+          row.publish = "0"
+        }
+        if (row.url.length > 0) {
+          var urls = []
+          var split = row.url.split(",")
+          split.forEach(url => {
+            var names = url.split("jczz/")
+            urls.push(names[1])
+          })
+          row.url = urls.join(",")
+        }
+        update(row).then(
+          () => {
+            this.onLoad(this.page)
+            this.$message({
+              type: "success",
+              message: "操作成功!",
+            })
             done()
-        },
-        currentChange (currentPage) {
-            this.page.currentPage = currentPage
-        },
-        sizeChange (pageSize) {
-            this.page.pageSize = pageSize
-        },
-        refreshChange () {
-            this.onLoad(this.page, this.query)
-        },
-        onLoad (page, params = {}) {
-            this.loading = true
-            getList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then((res) => {
-                const data = {
-                    ...res.data.data,
-                    records: res.data.data.records.map(item => {
-                        return {
-                            ...item,
-                            'createTime': item.createTime.slice(0, 16),
-                            'principalPhoneflag': false,
-                        }
-                    })
-                }
-                data.records.forEach(item => {
-                    if (item.signaturePath.length > 0) {
-                        var urls = []
-                        var names = item.signaturePath.split(",")
-                        names.forEach(name => {
-                            urls.push(website.minioUrl + name)
-                        })
-                        item.signaturePath = urls.join(",")
-                    }
-                })
-                this.page.total = data.total
-                this.data = data.records
-                this.loading = false
-                this.selectionClear()
-            }).catch(err => {
-                setTimeout(() => {
-                    this.loading = false
-                }, 300)
-            })
-            getDistrictTree({
-                filterFlag: 1
-            }).then((res) => {
-                const data = res.data.data
-                this.districtTree = data
-                const column = this.findObject(this.option.column, "articleList")
-                column.dicData = res.data.data
-                this.loading = false
-            }).catch(err => {
-                setTimeout(() => {
-                    this.loading = false
-                }, 300)
-            })
-        },
-        updateFb (row) {
-            if (row.publish == "0") {
-                row.publish = "1"
-            } else {
-                row.publish = "0"
-            }
-            if (row.url.length > 0) {
-                var urls = []
-                var split = row.url.split(",")
-                split.forEach(url => {
-                    var names = url.split("jczz/")
-                    urls.push(names[1])
-                })
-                row.url = urls.join(",")
-            }
-            update(row).then(
-                () => {
-                    this.onLoad(this.page)
-                    this.$message({
-                        type: "success",
-                        message: "操作成功!",
-                    })
-                    done()
-                },
-                (error) => {
-                    window.console.log(error)
-                    loading()
-                }
-            )
-        },
+          },
+          (error) => {
+            window.console.log(error)
+            loading()
+          }
+        )
+      },
 
     },
-}
+  }
 </script>
 
 <style lang="scss" scoped>
-.avue-upload__icon {
+  .avue-upload__icon {
     line-height: 6;
-}
+  }
 
-:deep(.el-drawer__header) {
+  :deep(.el-drawer__header) {
     margin-bottom: 10px;
-}
+  }
 
-:deep(.el-radio__input.is-disabled+span.el-radio__label) {
+  :deep(.el-radio__input.is-disabled+span.el-radio__label) {
     color: #000;
-}
+  }
 
-:deep(.el-radio__input.is-checked+.el-radio__label) {
+  :deep(.el-radio__input.is-checked+.el-radio__label) {
     color: #409EFF !important;
-}
+  }
 
-:deep(.el-radio__input.is-checked .el-radio__inner::after) {
+  :deep(.el-radio__input.is-checked .el-radio__inner::after) {
     background-color: #FFF;
-}
+  }
 
-:deep(.el-radio__input.is-checked .el-radio__inner) {
+  :deep(.el-radio__input.is-checked .el-radio__inner) {
     background-color: #409EFF;
-}
+  }
 
-:deep(.avue-crud__img) {
+  :deep(.avue-crud__img) {
     height: 30px !important;
-}
+  }
 
-:deep(.el-radio) {
+  :deep(.el-radio) {
     margin-right: 20px;
-}
+  }
 
-.title {
+  .title {
     margin: 10px;
     height: 40px;
     background-color: #eee;
@@ -654,111 +662,111 @@
     align-items: center;
 
     .icon {
-        width: 4px;
-        height: 18px;
-        background-color: #409dfe;
-        margin: 0 10px;
-        color: transparent;
+      width: 4px;
+      height: 18px;
+      background-color: #409dfe;
+      margin: 0 10px;
+      color: transparent;
     }
-}
+  }
 
-.basic-info {
+  .basic-info {
     padding: 0 20px;
     font-size: 14px;
 
     .info-item {
+      display: flex;
+      padding: 10px;
+
+      .info-name {
+        width: 100px;
         display: flex;
-        padding: 10px;
+        align-items: center;
+      }
 
-        .info-name {
-            width: 100px;
-            display: flex;
-            align-items: center;
-        }
-
-        .info-value {
-            display: flex;
-            align-items: center;
-        }
+      .info-value {
+        display: flex;
+        align-items: center;
+      }
     }
-}
+  }
 
-.question-list {
+  .question-list {
     padding: 0 20px;
     font-size: 14px;
 
     .question-type {
-        height: 60px;
-        display: flex;
-        align-items: center;
-        cursor: pointer;
-        justify-content: space-between;
-        padding-right: 20px;
+      height: 60px;
+      display: flex;
+      align-items: center;
+      cursor: pointer;
+      justify-content: space-between;
+      padding-right: 20px;
 
-        .type-name {}
+      .type-name {}
 
-        .icon-box {}
+      .icon-box {}
     }
 
     .question-item {
-        margin-bottom: 20px;
-        padding: 10px;
-        background: #f5f7fa;
-        border-radius: 8px;
+      margin-bottom: 20px;
+      padding: 10px;
+      background: #f5f7fa;
+      border-radius: 8px;
 
-        &>div {
-            margin: 14px 0;
+      &>div {
+        margin: 14px 0;
+      }
+
+      .question-name {
+        display: flex;
+
+        .key {
+          width: 80%;
+          padding-right: 20px;
+          word-break: break-all;
         }
 
-        .question-name {
-            display: flex;
+        .value {
+          width: 20%;
+          display: flex;
+          align-items: center;
+          justify-content: center;
+        }
+      }
 
-            .key {
-                width: 80%;
-                padding-right: 20px;
-                word-break: break-all;
-            }
+      .yh-pic-box {
+        display: flex;
+        height: 100px;
 
-            .value {
-                width: 20%;
-                display: flex;
-                align-items: center;
-                justify-content: center;
-            }
+        .yh-pic-name {
+          width: 100px;
+          display: flex;
+          align-items: center;
+          justify-content: left;
         }
 
-        .yh-pic-box {
-            display: flex;
-            height: 100px;
+        .yh-pic-list {
+          width: 0;
+          flex: 1;
+          display: flex;
+        }
+      }
 
-            .yh-pic-name {
-                width: 100px;
-                display: flex;
-                align-items: center;
-                justify-content: left;
-            }
+      .yh-remark {
+        display: flex;
 
-            .yh-pic-list {
-                width: 0;
-                flex: 1;
-                display: flex;
-            }
+        .yh-remark-name {
+          width: 100px;
+          display: flex;
+          align-items: center;
+          justify-content: left;
         }
 
-        .yh-remark {
-            display: flex;
-
-            .yh-remark-name {
-                width: 100px;
-                display: flex;
-                align-items: center;
-                justify-content: left;
-            }
-
-            .yh-remark-value {
-                word-break: break-all;
-            }
+        .yh-remark-value {
+          word-break: break-all;
         }
+      }
     }
-}
-</style>
\ No newline at end of file
+  }
+</style>
diff --git a/src/views/publicSecurity/ninePlaceManage/situationRectification.vue b/src/views/publicSecurity/ninePlaceManage/situationRectification.vue
index 48fd1e1..f0f3644 100644
--- a/src/views/publicSecurity/ninePlaceManage/situationRectification.vue
+++ b/src/views/publicSecurity/ninePlaceManage/situationRectification.vue
@@ -1,722 +1,734 @@
 <template>
-    <basic-container>
-        <avue-crud :option="option" :table-loading="loading" :data="data" :page.sync="page" ref="crud" @row-del="rowDel"
-            v-model="form" :permission="permissionList" @row-update="rowUpdate" @row-save="rowSave"
-            :before-open="beforeOpen" @search-change="searchChange" @search-reset="searchReset"
-            @selection-change="selectionChange" @current-change="currentChange" @size-change="sizeChange"
-            @refresh-change="refreshChange" @on-load="onLoad">
-            <template slot="menuLeft">
-                <div class="tab-list">
-                    <div :class="{ 'choose': typeStatus == 3 }" @click="changeType(3)">全部</div>
-                    <div :class="{ 'choose': typeStatus == 1 }" @click="changeType(1)">待审核</div>
-                    <div :class="{ 'choose': typeStatus == 2 }" @click="changeType(2)">已审核</div>
-                </div>
-                <el-button type="warning" size="small" plain icon="el-icon-download" @click="handleExport">导出
-                </el-button>
-            </template>
+  <basic-container>
+    <avue-crud :option="option" :table-loading="loading" :data="data" :page.sync="page" ref="crud" @row-del="rowDel"
+      v-model="form" :permission="permissionList" @row-update="rowUpdate" @row-save="rowSave" :before-open="beforeOpen"
+      @search-change="searchChange" @search-reset="searchReset" @selection-change="selectionChange"
+      @current-change="currentChange" @size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad">
+      <template slot="menuLeft">
+        <div class="tab-list">
+          <div :class="{ 'choose': typeStatus == 3 }" @click="changeType(3)">全部</div>
+          <div :class="{ 'choose': typeStatus == 1 }" @click="changeType(1)">待审核</div>
+          <div :class="{ 'choose': typeStatus == 2 }" @click="changeType(2)">已审核</div>
+        </div>
+        <el-button type="warning" size="small" plain icon="el-icon-download" @click="handleExport">导出
+        </el-button>
+      </template>
 
-            <template slot-scope="{row, size}" slot="status">
-                <el-tag :size="size" :type="showConfirmFlag(row.status).type">{{ showConfirmFlag(row.status).text
+      <template slot-scope="{row, size}" slot="status">
+        <el-tag :size="size" :type="showConfirmFlag(row.status).type">{{ showConfirmFlag(row.status).text
                 }}</el-tag>
-            </template>
-            <template slot-scope="{type,size,row }" slot="menu">
-                <el-button icon="el-icon-detail" :size="size" :type="type" @click.stop="getDetail(row)">
-                    详情
-                </el-button>
-                <el-button icon="el-icon-s-check" :size="size" :type="type" @click.stop="goAudit(row)"
-                    :disabled="row.status != 1">审核</el-button>
-            </template>
-        </avue-crud>
-        <el-drawer title="整改情况详情" :visible.sync="isDetail" :append-to-body="true" size="40%" direction="rtl">
-            <div class="title">
-                <div class="icon">{{ refreshNum }}</div>
-                基础信息
-            </div>
-            <div class="basic-info">
-                <div class="info-item">
-                    <div class="info-name">场所名称</div>
-                    <div class="info-value">{{ rowDetail.placeName }}</div>
-                </div>
-                <div class="info-item">
-                    <div class="info-name">场所类型</div>
-                    <div class="info-value">{{ rowDetail.$nineType }}</div>
-                </div>
-                <div class="info-item">
-                    <div class="info-name">检查人</div>
-                    <div class="info-value">{{ rowDetail.name }}</div>
-                </div>
-                <div class="info-item">
-                    <div class="info-name">检查时间</div>
-                    <div class="info-value">{{ rowDetail.createTime }}</div>
-                </div>
-            </div>
-            <div class="title">
-                <div class="icon"></div>
-                检查记录
-            </div>
+      </template>
+      <template slot-scope="{type,size,row }" slot="menu">
+        <el-button icon="el-icon-detail" :size="size" :type="type" @click.stop="getDetail(row)">
+          详情
+        </el-button>
+        <el-button icon="el-icon-s-check" :size="size" :type="type" @click.stop="goAudit(row)"
+          :disabled="row.status != 1">审核</el-button>
+      </template>
+    </avue-crud>
+    <el-drawer title="整改情况详情" :visible.sync="isDetail" :append-to-body="true" size="40%" direction="rtl">
+      <div class="title">
+        <div class="icon">{{ refreshNum }}</div>
+        基础信息
+      </div>
+      <div class="basic-info">
+        <div class="info-item">
+          <div class="info-name">场所名称</div>
+          <div class="info-value">{{ rowDetail.placeName }}</div>
+        </div>
+        <div class="info-item">
+          <div class="info-name">场所类型</div>
+          <div class="info-value">{{ rowDetail.$nineType }}</div>
+        </div>
+        <div class="info-item">
+          <div class="info-name">检查人</div>
+          <div class="info-value">{{ rowDetail.name }}</div>
+        </div>
+        <div class="info-item">
+          <div class="info-name">检查时间</div>
+          <div class="info-value">{{ rowDetail.createTime }}</div>
+        </div>
+      </div>
+      <div class="title">
+        <div class="icon"></div>
+        检查记录
+      </div>
 
-            <div class="question-list" v-for="(tItem, tIndex) in rowDetail.qTypeList" :key='tIndex'>
-                <div class="question-type" @click="flodQL(tIndex)">
-                    <div class="type-name">
-                        {{ CNNum[tIndex] }}、{{ tItem.questionName }}
-                    </div>
-                    <div class="icon-box"><i class="el-icon-arrow-down" v-show="tItem.isShowQList"></i><i
-                            class="el-icon-arrow-up" v-show="!tItem.isShowQList"></i></div>
-                </div>
-                <div class="question-item" v-for="(item, index) in tItem.questionList" :key='index'
-                    v-show="tItem.isShowQList">
-                    <div class="question-name">
-                        <div class="key">{{ index + 1 }}、{{ item.itemsNameTitle }}</div>
-                        <div class="value"><el-radio v-model="radio" label="1" disabled>存在</el-radio>
-                            <el-radio v-model="radio" label="2" disabled>不存在</el-radio>
-                        </div>
-                    </div>
-                    <div class="yh-pic-box">
-                        <div class="yh-pic-name">
-                            隐患图片
-                        </div>
-                        <div class="yh-pic-list">
-                            <div class="pic-item" v-for="pic in item.imageUrlsList">
-                                <el-image style="width: 100px; height: 100px" :src="pic" :fit="fit"></el-image>
-                            </div>
-                        </div>
-                    </div>
-                    <div class="yh-remark">
-                        <div class="yh-remark-name">
-                            隐患描述
-                        </div>
-                        <div class="yh-remark-value">
-                            {{ item.remark }}
-                        </div>
-                    </div>
-                    <div class="yh-pic-box">
-                        <div class="yh-pic-name">
-                            整改后图片
-                        </div>
-                        <div class="yh-pic-list">
-                            <div class="pic-item" v-for="pic in item.rectificationImageUrlsList">
-                                <el-image style="width: 100px; height: 100px" :src="pic" :fit="fit"></el-image>
-                            </div>
-                        </div>
-                    </div>
-                    <div class="yh-remark">
-                        <div class="yh-remark-name">
-                            整改后描述
-                        </div>
-                        <div class="yh-remark-value">
-                            {{ item.rectificationRemark }}
-                        </div>
-                    </div>
-                </div>
+      <div class="question-list" v-for="(tItem, tIndex) in rowDetail.qTypeList" :key='tIndex'>
+        <div class="question-type" @click="flodQL(tIndex)">
+          <div class="type-name">
+            {{ CNNum[tIndex] }}、{{ tItem.questionName }}
+          </div>
+          <div class="icon-box"><i class="el-icon-arrow-down" v-show="tItem.isShowQList"></i><i class="el-icon-arrow-up"
+              v-show="!tItem.isShowQList"></i></div>
+        </div>
+        <div class="question-item" v-for="(item, index) in tItem.questionList" :key='index' v-show="tItem.isShowQList">
+          <div class="question-name">
+            <div class="key">{{ index + 1 }}、{{ item.itemsNameTitle }}</div>
+            <div class="value"><el-radio v-model="radio" label="1" disabled>存在</el-radio>
+              <el-radio v-model="radio" label="2" disabled>不存在</el-radio>
             </div>
-            <div class="question-list" v-show="rowDetail.isShowRemarkTitle">
-                <div class="question-type" @click="flodRM()">
-                    <div class="type-name">
-                        {{ CNNum[rowDetail.remarkNo] }}、其他隐患问题
-                    </div>
-                    <div class="icon-box"><i class="el-icon-arrow-down" v-show="rowDetail.isShowRemark"></i><i
-                            class="el-icon-arrow-up" v-show="!rowDetail.isShowRemark"></i></div>
-                </div>
-                <div class="remark-box" v-show="rowDetail.isShowRemark">{{ rowDetail.remark }}</div>
+          </div>
+          <div class="yh-pic-box">
+            <div class="yh-pic-name">
+              隐患图片
             </div>
-        </el-drawer>
-        <!-- 审核弹窗 -->
-        <el-dialog :visible.sync="visible" append-to-body destroy-on-close title="审核" width="30%"
-            custom-class="flow-design-dialog" :before-close="handleClose">
-            <audit-base @handleSubmit="submitAudit"></audit-base>
-        </el-dialog>
-    </basic-container>
+            <div class="yh-pic-list">
+              <div class="pic-item" v-for="pic in item.imageUrlsList">
+                <el-image style="width: 100px; height: 100px" :src="pic" :fit="fit"></el-image>
+              </div>
+            </div>
+          </div>
+          <div class="yh-remark">
+            <div class="yh-remark-name">
+              隐患描述
+            </div>
+            <div class="yh-remark-value">
+              {{ item.remark }}
+            </div>
+          </div>
+          <div class="yh-pic-box">
+            <div class="yh-pic-name">
+              整改后图片
+            </div>
+            <div class="yh-pic-list">
+              <div class="pic-item" v-for="pic in item.rectificationImageUrlsList">
+                <el-image style="width: 100px; height: 100px" :src="pic" :fit="fit"></el-image>
+              </div>
+            </div>
+          </div>
+          <div class="yh-remark">
+            <div class="yh-remark-name">
+              整改后描述
+            </div>
+            <div class="yh-remark-value">
+              {{ item.rectificationRemark }}
+            </div>
+          </div>
+        </div>
+      </div>
+      <div class="question-list" v-show="rowDetail.isShowRemarkTitle">
+        <div class="question-type" @click="flodRM()">
+          <div class="type-name">
+            {{ CNNum[rowDetail.remarkNo] }}、其他隐患问题
+          </div>
+          <div class="icon-box"><i class="el-icon-arrow-down" v-show="rowDetail.isShowRemark"></i><i
+              class="el-icon-arrow-up" v-show="!rowDetail.isShowRemark"></i></div>
+        </div>
+        <div class="remark-box" v-show="rowDetail.isShowRemark">{{ rowDetail.remark }}</div>
+      </div>
+    </el-drawer>
+    <!-- 审核弹窗 -->
+    <el-dialog :visible.sync="visible" append-to-body destroy-on-close title="审核" width="30%"
+      custom-class="flow-design-dialog" :before-close="handleClose">
+      <audit-base @handleSubmit="submitAudit"></audit-base>
+    </el-dialog>
+  </basic-container>
 </template>
 
 <script>
-import {
+  import {
     mapGetters
-} from "vuex"
-import {
-    getZGQKList, getPatrolGroupTree, applyRectification
-} from "@/api/publicSecurity/ninePlaceManage"
-import NProgress from 'nprogress'
-import 'nprogress/nprogress.css'
-import Qs from "qs"
-import {
+  } from "vuex"
+  import {
+    getZGQKList,
+    getPatrolGroupTree,
+    applyRectification
+  } from "@/api/publicSecurity/ninePlaceManage"
+  import NProgress from 'nprogress'
+  import 'nprogress/nprogress.css'
+  import Qs from "qs"
+  import {
     exportBlob
-} from "@/api/common"
-import {
+  } from "@/api/common"
+  import {
     getToken
-} from '@/util/auth'
-import {
+  } from '@/util/auth'
+  import {
     downloadXls
-} from "@/util/util"
-import {
+  } from "@/util/util"
+  import {
     dateNow
-} from "@/util/date"
-import website from '@/config/website'
+  } from "@/util/date"
+  import website from '@/config/website'
 
-export default {
-    data () {
-        return {
-            auditRules: {
-                status: [{ required: true, message: "必填" }],
-                reasonFailure: [{ required: true, message: "必填" }],
-            },
-            visible: false,
-            typeStatus: 1,
-            isDetail: false,
-            rowDetail: [],
-            form: {},
-            query: {},
-            loading: true,
+  export default {
+    data() {
+      return {
+        auditRules: {
+          status: [{
+            required: true,
+            message: "必填"
+          }],
+          reasonFailure: [{
+            required: true,
+            message: "必填"
+          }],
+        },
+        visible: false,
+        typeStatus: 1,
+        isDetail: false,
+        rowDetail: [],
+        form: {},
+        query: {},
+        loading: true,
 
-            page: {
-                pageSize: 10,
-                currentPage: 1,
-                total: 0,
-            },
-            datetime: "",
-            selectionList: [],
-            option: {
-                height: "auto",
-                calcHeight: 54,
-                dialogWidth: 950,
-                tip: false,
-                searchShow: true,
-                searchMenuSpan: 3,
-                menu: true,
-                menuWidth: 120,
-                border: true,
-                index: true,
-                editBtn: false,
-                delBtn: false,
-                addBtn: false,
-                refreshBtn: false,
-                searchShowBtn: false,
-                columnBtn: false,
-                dialogClickModal: false,
-                column: [{
-                    label: "场所名称",
-                    prop: "placeName",
-                    align: 'center',
-                    search: true,
-                    searchSpan: 4,
-                    searchLabelWidth: 76,
-                }, {
-                    label: "场所地址",
-                    prop: "addressName",
-                    align: 'center',
-                    search: true,
-                    searchSpan: 4,
-                    searchLabelWidth: 96,
-                }, {
-                    label: "场所类别",
-                    prop: "nineType",
-                    align: 'center',
-                    dicUrl: "/api/blade-system/dict-biz/tree?code=nineType",
-                    props: {
-                        label: "title",
-                        value: "key",
-                    },
-                    type: 'select',
-                    search: true,
-                    searchSpan: 4,
-                    searchLabelWidth: 96,
-                }, {
-                    label: "存在安全隐患或违法行为",
-                    prop: "hiddenDanger",
-                    align: 'center',
-                    width: 280
-                }, {
-                    label: "是否下发《责令改正通知书》或是否处罚",
-                    prop: "rectificationNoticeFlag",
-                    align: 'center',
-                    dicData: [
-                        {
-                            label: "否",
-                            value: 1,
-                        },
-                        {
-                            label: "是",
-                            value: 2,
-                        }
-                    ],
-                    width: 140
+        page: {
+          pageSize: 10,
+          currentPage: 1,
+          total: 0,
+        },
+        datetime: "",
+        selectionList: [],
+        option: {
+          height: "auto",
+          calcHeight: 54,
+          dialogWidth: 950,
+          tip: false,
+          searchShow: true,
+          searchMenuSpan: 3,
+          menu: true,
+          menuWidth: 120,
+          border: true,
+          index: true,
+          editBtn: false,
+          delBtn: false,
+          addBtn: false,
+          refreshBtn: false,
+          searchShowBtn: false,
+          columnBtn: false,
+          dialogClickModal: false,
+          column: [{
+              label: "场所名称",
+              prop: "placeName",
+              align: 'center',
+              search: true,
+              searchSpan: 4,
+              searchLabelWidth: 76,
+            }, {
+              label: "场所地址",
+              prop: "addressName",
+              align: 'center',
+              search: true,
+              searchSpan: 4,
+              searchLabelWidth: 96,
+            }, {
+              label: "场所类别",
+              prop: "nineType",
+              align: 'center',
+              dicUrl: "/api/blade-system/dict-biz/tree?code=nineType",
+              props: {
+                label: "title",
+                value: "key",
+              },
+              type: 'select',
+              search: true,
+              searchSpan: 4,
+              searchLabelWidth: 96,
+            }, {
+              label: "存在安全隐患或违法行为",
+              prop: "hiddenDanger",
+              align: 'center',
+              width: 280
+            }, {
+              label: "是否下发《责令改正通知书》或是否处罚",
+              prop: "rectificationNoticeFlag",
+              align: 'center',
+              dicData: [{
+                  label: "否",
+                  value: 1,
                 },
                 {
-                    label: "是否整改完毕",
-                    prop: "rectificationFlag",
-                    align: 'center',
-                    dicData: [
-                        {
-                            label: "否",
-                            value: 1,
-                        },
-                        {
-                            label: "是",
-                            value: 2,
-                        }
-                    ],
-                    type: 'select',
-                    search: true,
-                    searchSpan: 4,
-                    searchLabelWidth: 124,
-                    width: 100
-                }, {
-                    label: "完成整改时限",
-                    prop: "rectificationEndTime",
-                    align: 'center',
-                    width: 100
-                }, {
-                    label: "检查时间",
-                    prop: "createTime",
-                    align: 'center',
-                    width: 100
-                }, {
-                    label: "派出所名称",
-                    prop: "deptName",
-                    align: 'center',
-                    search: true,
-                    searchSpan: 4,
-                    searchLabelWidth: 106,
-                }, {
-                    label: "审核状态",
-                    prop: "status",
-                    align: 'center',
-                    dicData: [
-                        {
-                            label: "待审核",
-                            value: 1,
-                        },
-                        {
-                            label: "审核通过",
-                            value: 2,
-                        },
-                        {
-                            label: "审核不通过",
-                            value: 3,
-                        },
-                        {
-                            label: "待上报",
-                            value: 4,
-                        }
-                    ],
-                    search: false,
-                    searchSpan: 4,
-                    searchLabelWidth: 106,
-                }, {
-                    label: "检查时间",
-                    prop: "dateRange",
-                    type: "daterange",
-                    format: "yyyy-MM-dd",
-                    valueFormat: "yyyy-MM-dd",
-                    searchRange: true,
-                    startPlaceholder: '开始日期',
-                    endPlaceholder: '结束日期',
-                    align: 'center',
-                    search: true,
-                    hide: true,
-                    searchSpan: 5,
-                    searchLabelWidth: 76,
-                }],
+                  label: "是",
+                  value: 2,
+                }
+              ],
+              width: 140
             },
-            data: [],
-            refreshNum: 1,
-            radio: '1',
-            questionTypeList: [],
-            CNNum: ['一', '二', '三', '四', '五', '六', '七', '八', '九', '十', '十一', '十二', '十三', '十四', '十五']
-        }
+            {
+              label: "是否整改完毕",
+              prop: "rectificationFlag",
+              align: 'center',
+              dicData: [{
+                  label: "否",
+                  value: 1,
+                },
+                {
+                  label: "是",
+                  value: 2,
+                }
+              ],
+              type: 'select',
+              search: true,
+              searchSpan: 4,
+              searchLabelWidth: 124,
+              width: 100
+            }, {
+              label: "完成整改时限",
+              prop: "rectificationEndTime",
+              align: 'center',
+              width: 100
+            }, {
+              label: "检查时间",
+              prop: "createTime",
+              align: 'center',
+              width: 100
+            }, {
+              label: "派出所名称",
+              prop: "deptName",
+              align: 'center',
+              search: true,
+              searchSpan: 4,
+              searchLabelWidth: 106,
+            }, {
+              label: "审核状态",
+              prop: "status",
+              align: 'center',
+              dicData: [{
+                  label: "待审核",
+                  value: 1,
+                },
+                {
+                  label: "审核通过",
+                  value: 2,
+                },
+                {
+                  label: "审核不通过",
+                  value: 3,
+                },
+                {
+                  label: "待上报",
+                  value: 4,
+                }
+              ],
+              search: false,
+              searchSpan: 4,
+              searchLabelWidth: 106,
+            }, {
+              label: "检查时间",
+              prop: "dateRange",
+              type: "daterange",
+              format: "yyyy-MM-dd",
+              valueFormat: "yyyy-MM-dd",
+              searchRange: true,
+              startPlaceholder: '开始日期',
+              endPlaceholder: '结束日期',
+              align: 'center',
+              search: true,
+              hide: true,
+              searchSpan: 5,
+              searchLabelWidth: 76,
+            }
+          ],
+        },
+        data: [],
+        refreshNum: 1,
+        radio: '1',
+        questionTypeList: [],
+        CNNum: ['一', '二', '三', '四', '五', '六', '七', '八', '九', '十', '十一', '十二', '十三', '十四', '十五']
+      }
     },
 
     computed: {
-        ...mapGetters(["permission", "userInfo"]),
-        permissionList () {
-            return {
-                addBtn: this.vaildData(this.permission.place_add, true),
-                viewBtn: this.vaildData(this.permission.place_view, true),
-                delBtn: this.vaildData(this.permission.place_delete, true),
-                editBtn: this.vaildData(this.permission.place_edit, true),
-            }
-        },
-        ids () {
-            let ids = []
-            this.selectionList.forEach((ele) => {
-                ids.push(ele.id)
-            })
-            return ids.join(",")
-        },
-
-        showConfirmFlag () {
-            return (data) => {
-                let tags = {
-                    text: '',
-                    type: ''
-                }
-                if (data == 1) {
-                    tags = {
-                        text: '待审核',
-                        type: 'warning'
-                    }
-                } else if (data == 2) {
-                    tags = {
-                        text: '审核通过',
-                        type: 'success'
-                    }
-                } else if (data == 3) {
-                    tags = {
-                        text: '审核不通过',
-                        type: 'danger'
-                    }
-                } else if (data == 4) {
-                    tags = {
-                        text: '待上报',
-                        type: 'info'
-                    }
-                }
-
-                return tags
-            }
+      ...mapGetters(["permission", "userInfo"]),
+      permissionList() {
+        return {
+          addBtn: this.vaildData(this.permission.place_add, true),
+          viewBtn: this.vaildData(this.permission.place_view, true),
+          delBtn: this.vaildData(this.permission.place_delete, true),
+          editBtn: this.vaildData(this.permission.place_edit, true),
         }
+      },
+      ids() {
+        let ids = []
+        this.selectionList.forEach((ele) => {
+          ids.push(ele.id)
+        })
+        return ids.join(",")
+      },
+
+      showConfirmFlag() {
+        return (data) => {
+          let tags = {
+            text: '',
+            type: ''
+          }
+          if (data == 1) {
+            tags = {
+              text: '待审核',
+              type: 'warning'
+            }
+          } else if (data == 2) {
+            tags = {
+              text: '审核通过',
+              type: 'success'
+            }
+          } else if (data == 3) {
+            tags = {
+              text: '审核不通过',
+              type: 'danger'
+            }
+          } else if (data == 4) {
+            tags = {
+              text: '待上报',
+              type: 'info'
+            }
+          }
+
+          return tags
+        }
+      }
     },
 
-    created () {
-        this.getPatrolGroupTree()
+    created() {
+      this.getPatrolGroupTree()
     },
 
     methods: {
-        // 弹窗关闭回调
-        handleClose () {
-            this.cancelAudit()
-        },
+      // 弹窗关闭回调
+      handleClose() {
+        this.cancelAudit()
+      },
 
-        // 取消审核
-        cancelAudit () {
-            this.visible = false
-        },
+      // 取消审核
+      cancelAudit() {
+        this.visible = false
+      },
 
-        // 确认提交审核
-        submitAudit (form) {
-            let auditForm = {
-                status: form.status == '1' ? '2' : '3',
-                reasonFailure: form.confirmNotion,
-            }
-
-            applyRectification(Object.assign(this.auditParams, auditForm)).then(res => {
-                if (res.data.code == 200) {
-                    this.$message.warning("审核成功")
-                    this.onLoad(this.page)
-                    this.cancelAudit()
-                }
-            })
-        },
-
-        // 审核按钮
-        goAudit (row) {
-            this.auditParams = {
-                id: row.id,
-                taskId: row.taskId
-            }
-            this.visible = true
-        },
-
-        // 折叠问题列表
-        flodQL (index) {
-            this.rowDetail.qTypeList[index].isShowQList = !this.rowDetail.qTypeList[index].isShowQList
-            this.refreshNum += 1
-        },
-
-        // 折叠其他
-        flodRM () {
-            this.rowDetail.isShowRemark = !this.rowDetail.isShowRemark
-            this.refreshNum += 1
-        },
-
-        // 对数组按属性分组
-        groupBy (arr, key) {
-            return arr.reduce((acc, curr) => {
-                (acc[curr[key]] = acc[curr[key]] || []).push(curr)
-                return acc
-            }, {})
-        },
-
-        // 获取问题类型
-        getPatrolGroupTree () {
-            getPatrolGroupTree().then(res => {
-                this.questionTypeList = res.data.data
-            })
-        },
-
-        getDetail (row) {
-            if (row.patrolRecordVOList) {
-                row.patrolRecordVOList.forEach(item => {
-                    item.imageUrlsList = []
-                    item.rectificationImageUrlsList = []
-                    if (item.imageUrls) {
-                        item.imageUrlsList = item.imageUrls.split(',').map(ele => {
-                            return website.minioUrl + ele
-                        })
-
-                    }
-                    if (item.rectificationImageUrls) {
-                        item.rectificationImageUrlsList = item.rectificationImageUrls.split(',').map(ele => {
-                            return website.minioUrl + ele
-                        })
-                    }
-                    // 查询问题类型
-                    this.questionTypeList.forEach(qItem => {
-                        qItem.children.forEach(qChild => {
-                            if (qChild.id == item.itemId) {
-                                item.qType = qItem.title
-                                item.itemsNameTitle = qChild.title
-                            }
-                        })
-                    })
-                })
-            }
-            // 把相同类型问题分组
-            let obj = this.groupBy(row.patrolRecordVOList, 'qType')
-            let arr = Object.entries(obj)
-            let newArr = []
-            arr.forEach(part => {
-                newArr.push({ questionName: part[0], questionList: part[1], isShowQList: true })
-            })
-            row.qTypeList = newArr
-            row.remarkNo = newArr.length
-            row.isShowRemarkTitle = row.remark ? true : false
-            row.isShowRemark = true
-            this.rowDetail = row
-            this.isDetail = true
-        },
-
-        changeType (type) {
-            this.typeStatus = type
-            this.page.currentPage = 1
-            this.onLoad(this.page)
-        },
-
-        handleExport () {
-            this.$confirm("是否导出整改情况数据?", "提示", {
-                confirmButtonText: "确定",
-                cancelButtonText: "取消",
-                type: "warning"
-            }).then(() => {
-                NProgress.start()
-                var data = {
-                    ...this.query
-                }
-                data = Qs.stringify(data)
-                exportBlob(
-                    `/api/blade-taskPlaceRectification/taskPlaceRectification/exportRectificationStatistics?${this.website.tokenHeader}=${getToken()}&` + data
-                ).then(res => {
-                    downloadXls(res.data, `整改情况${dateNow()}.xlsx`)
-                    NProgress.done()
-                })
-            })
-        },
-
-        rowSave (row, done, loading) {
-            if (row.imageUrls.length > 0) {
-                var urls = []
-                var split = row.imageUrls.split(",").filter(item => item != '')
-                split.forEach(url => {
-                    var names = url.split("jczz/")
-                    urls.push(names[1])
-                })
-                row.imageUrls = urls.join(",")
-            }
-
-            let label = row.label
-
-            if (row.smallLabel != '') {
-                label = label + ',' + row.smallLabel
-            }
-
-            delete row.smallLabel
-
-            add({
-                ...row,
-                label
-            }).then(
-                () => {
-                    this.onLoad(this.page)
-                    this.$message({
-                        type: "success",
-                        message: "操作成功!",
-                    })
-                    done()
-                },
-                (error) => {
-                    window.console.log(error)
-                    loading()
-                }
-            )
-        },
-
-        rowUpdate (row, index, done, loading) {
-            if (row.imageUrls.length > 0) {
-                var urls = []
-                var split = row.imageUrls.split(",").filter(item => item != '')
-                split.forEach(url => {
-                    var names = url.split("jczz/")
-                    urls.push(names[1])
-                })
-                row.imageUrls = urls.join(",")
-            }
-
-            let label = row.label
-
-            if (row.smallLabel != '') {
-                label = label + ',' + row.smallLabel
-            }
-
-            delete row.smallLabel
-
-            update({
-                ...row,
-                label
-            }).then(
-                () => {
-                    this.onLoad(this.page)
-                    this.$message({
-                        type: "success",
-                        message: "操作成功!",
-                    })
-                    done()
-                },
-                (error) => {
-                    window.console.log(error)
-                    loading()
-                }
-            )
-        },
-
-        rowDel (row) {
-            this.$confirm("确定将选择数据删除?", {
-                confirmButtonText: "确定",
-                cancelButtonText: "取消",
-                type: "warning",
-            })
-                .then(() => {
-                    row.isDeleted = 1
-                    return removeTask(row)
-                })
-                .then(() => {
-                    this.onLoad(this.page)
-
-                    this.$message({
-                        type: "success",
-                        message: "操作成功!",
-                    })
-                })
-        },
-
-        searchReset () {
-            this.query = {}
-            this.onLoad(this.page)
-        },
-
-        searchChange (params, done) {
-            let dateRange = params.dateRange
-            if (params.dateRange) {
-                params.startTime = dateRange[0]
-                params.endTime = dateRange[1]
-                delete params.dateRange
-            }
-            this.query = params
-            this.page.currentPage = 1
-            this.onLoad(this.page)
-            done()
-        },
-
-        selectionChange (list) {
-            this.selectionList = list
-        },
-
-        selectionClear () {
-            this.selectionList = []
-            this.$nextTick(() => {
-                this.$refs.crud && this.$refs.crud.toggleSelection()
-            })
-        },
-
-        handleDelete () {
-            if (this.selectionList.length === 0) {
-                this.$message.warning("请选择至少一条数据")
-                return
-            }
-            this.$confirm("确定将选择数据删除?", {
-                confirmButtonText: "确定",
-                cancelButtonText: "取消",
-                type: "warning",
-            })
-                .then(() => {
-                    return remove(this.ids)
-                })
-                .then(() => {
-                    this.onLoad(this.page)
-                    this.$message({
-                        type: "success",
-                        message: "操作成功!",
-                    })
-                    this.$refs.crud.toggleSelection()
-                })
-        },
-
-        beforeOpen (done, type) {
-            // if (["edit", "view"].includes(type)) {
-
-            // } else {
-            //     done()
-            // }
-        },
-
-        currentChange (currentPage) {
-            this.page.currentPage = currentPage
-        },
-
-        sizeChange (pageSize) {
-            this.page.pageSize = pageSize
-        },
-
-        refreshChange () {
-            // this.onLoad(this.page, this.query)
-        },
-
-        onLoad (page, params = {}) {
-            this.loading = true
-            if (this.typeStatus == 1) {
-                this.query.status = '1'
-            } else if (this.typeStatus == 2) {
-                this.query.status = '2'
-            } else if (this.typeStatus == 3) {
-                this.query.status = ''
-            }
-            if ('startTime' in this.query) {
-                this.query.startTime += ' 00:00:00'
-            }
-            if ('endTime' in this.query) {
-                this.query.endTime += ' 23:59:59'
-            }
-            getZGQKList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
-                console.log('getZGQKList', res.data.data)
-                const data = res.data.data
-                data.records.forEach(item => {
-                    item.createTime = item.createTime ? item.createTime.slice(0, 10) : ''
-                    item.rectificationEndTime = item.rectificationEndTime ? item.rectificationEndTime.slice(0, 10) : ''
-                })
-                this.page.total = data.total
-                this.data = data.records
-                this.loading = false
-                this.selectionClear()
-            })
+      // 确认提交审核
+      submitAudit(form) {
+        let auditForm = {
+          status: form.status == '1' ? '2' : '3',
+          reasonFailure: form.confirmNotion,
         }
+
+        applyRectification(Object.assign(this.auditParams, auditForm)).then(res => {
+          if (res.data.code == 200) {
+            this.$message.warning("审核成功")
+            this.onLoad(this.page)
+            this.cancelAudit()
+          }
+        })
+      },
+
+      // 审核按钮
+      goAudit(row) {
+        this.auditParams = {
+          id: row.id,
+          taskId: row.taskId
+        }
+        this.visible = true
+      },
+
+      // 折叠问题列表
+      flodQL(index) {
+        this.rowDetail.qTypeList[index].isShowQList = !this.rowDetail.qTypeList[index].isShowQList
+        this.refreshNum += 1
+      },
+
+      // 折叠其他
+      flodRM() {
+        this.rowDetail.isShowRemark = !this.rowDetail.isShowRemark
+        this.refreshNum += 1
+      },
+
+      // 对数组按属性分组
+      groupBy(arr, key) {
+        return arr.reduce((acc, curr) => {
+          (acc[curr[key]] = acc[curr[key]] || []).push(curr)
+          return acc
+        }, {})
+      },
+
+      // 获取问题类型
+      getPatrolGroupTree() {
+        getPatrolGroupTree({
+          type: 1,
+          childType: 1
+        }).then(res => {
+          this.questionTypeList = res.data.data
+        })
+      },
+
+      getDetail(row) {
+        if (row.patrolRecordVOList) {
+          row.patrolRecordVOList.forEach(item => {
+            item.imageUrlsList = []
+            item.rectificationImageUrlsList = []
+            if (item.imageUrls) {
+              item.imageUrlsList = item.imageUrls.split(',').map(ele => {
+                return website.minioUrl + ele
+              })
+
+            }
+            if (item.rectificationImageUrls) {
+              item.rectificationImageUrlsList = item.rectificationImageUrls.split(',').map(ele => {
+                return website.minioUrl + ele
+              })
+            }
+            // 查询问题类型
+            this.questionTypeList.forEach(qItem => {
+              qItem.children.forEach(qChild => {
+                if (qChild.id == item.itemId) {
+                  item.qType = qItem.title
+                  item.itemsNameTitle = qChild.title
+                }
+              })
+            })
+          })
+        }
+        // 把相同类型问题分组
+        let obj = this.groupBy(row.patrolRecordVOList, 'qType')
+        let arr = Object.entries(obj)
+        let newArr = []
+        arr.forEach(part => {
+          newArr.push({
+            questionName: part[0],
+            questionList: part[1],
+            isShowQList: true
+          })
+        })
+        row.qTypeList = newArr
+        row.remarkNo = newArr.length
+        row.isShowRemarkTitle = row.remark ? true : false
+        row.isShowRemark = true
+        this.rowDetail = row
+        this.isDetail = true
+      },
+
+      changeType(type) {
+        this.typeStatus = type
+        this.page.currentPage = 1
+        this.onLoad(this.page)
+      },
+
+      handleExport() {
+        this.$confirm("是否导出整改情况数据?", "提示", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(() => {
+          NProgress.start()
+          var data = {
+            ...this.query
+          }
+          data = Qs.stringify(data)
+          exportBlob(
+            `/api/blade-taskPlaceRectification/taskPlaceRectification/exportRectificationStatistics?${this.website.tokenHeader}=${getToken()}&` +
+            data
+          ).then(res => {
+            downloadXls(res.data, `整改情况${dateNow()}.xlsx`)
+            NProgress.done()
+          })
+        })
+      },
+
+      rowSave(row, done, loading) {
+        if (row.imageUrls.length > 0) {
+          var urls = []
+          var split = row.imageUrls.split(",").filter(item => item != '')
+          split.forEach(url => {
+            var names = url.split("jczz/")
+            urls.push(names[1])
+          })
+          row.imageUrls = urls.join(",")
+        }
+
+        let label = row.label
+
+        if (row.smallLabel != '') {
+          label = label + ',' + row.smallLabel
+        }
+
+        delete row.smallLabel
+
+        add({
+          ...row,
+          label
+        }).then(
+          () => {
+            this.onLoad(this.page)
+            this.$message({
+              type: "success",
+              message: "操作成功!",
+            })
+            done()
+          },
+          (error) => {
+            window.console.log(error)
+            loading()
+          }
+        )
+      },
+
+      rowUpdate(row, index, done, loading) {
+        if (row.imageUrls.length > 0) {
+          var urls = []
+          var split = row.imageUrls.split(",").filter(item => item != '')
+          split.forEach(url => {
+            var names = url.split("jczz/")
+            urls.push(names[1])
+          })
+          row.imageUrls = urls.join(",")
+        }
+
+        let label = row.label
+
+        if (row.smallLabel != '') {
+          label = label + ',' + row.smallLabel
+        }
+
+        delete row.smallLabel
+
+        update({
+          ...row,
+          label
+        }).then(
+          () => {
+            this.onLoad(this.page)
+            this.$message({
+              type: "success",
+              message: "操作成功!",
+            })
+            done()
+          },
+          (error) => {
+            window.console.log(error)
+            loading()
+          }
+        )
+      },
+
+      rowDel(row) {
+        this.$confirm("确定将选择数据删除?", {
+            confirmButtonText: "确定",
+            cancelButtonText: "取消",
+            type: "warning",
+          })
+          .then(() => {
+            row.isDeleted = 1
+            return removeTask(row)
+          })
+          .then(() => {
+            this.onLoad(this.page)
+
+            this.$message({
+              type: "success",
+              message: "操作成功!",
+            })
+          })
+      },
+
+      searchReset() {
+        this.query = {}
+        this.onLoad(this.page)
+      },
+
+      searchChange(params, done) {
+        let dateRange = params.dateRange
+        if (params.dateRange) {
+          params.startTime = dateRange[0]
+          params.endTime = dateRange[1]
+          delete params.dateRange
+        }
+        this.query = params
+        this.page.currentPage = 1
+        this.onLoad(this.page)
+        done()
+      },
+
+      selectionChange(list) {
+        this.selectionList = list
+      },
+
+      selectionClear() {
+        this.selectionList = []
+        this.$nextTick(() => {
+          this.$refs.crud && this.$refs.crud.toggleSelection()
+        })
+      },
+
+      handleDelete() {
+        if (this.selectionList.length === 0) {
+          this.$message.warning("请选择至少一条数据")
+          return
+        }
+        this.$confirm("确定将选择数据删除?", {
+            confirmButtonText: "确定",
+            cancelButtonText: "取消",
+            type: "warning",
+          })
+          .then(() => {
+            return remove(this.ids)
+          })
+          .then(() => {
+            this.onLoad(this.page)
+            this.$message({
+              type: "success",
+              message: "操作成功!",
+            })
+            this.$refs.crud.toggleSelection()
+          })
+      },
+
+      beforeOpen(done, type) {
+        // if (["edit", "view"].includes(type)) {
+
+        // } else {
+        //     done()
+        // }
+      },
+
+      currentChange(currentPage) {
+        this.page.currentPage = currentPage
+      },
+
+      sizeChange(pageSize) {
+        this.page.pageSize = pageSize
+      },
+
+      refreshChange() {
+        // this.onLoad(this.page, this.query)
+      },
+
+      onLoad(page, params = {}) {
+        this.loading = true
+        if (this.typeStatus == 1) {
+          this.query.status = '1'
+        } else if (this.typeStatus == 2) {
+          this.query.status = '2'
+        } else if (this.typeStatus == 3) {
+          this.query.status = ''
+        }
+        if ('startTime' in this.query) {
+          this.query.startTime += ' 00:00:00'
+        }
+        if ('endTime' in this.query) {
+          this.query.endTime += ' 23:59:59'
+        }
+        getZGQKList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
+          console.log('getZGQKList', res.data.data)
+          const data = res.data.data
+          data.records.forEach(item => {
+            item.createTime = item.createTime ? item.createTime.slice(0, 10) : ''
+            item.rectificationEndTime = item.rectificationEndTime ? item.rectificationEndTime.slice(0, 10) : ''
+          })
+          this.page.total = data.total
+          this.data = data.records
+          this.loading = false
+          this.selectionClear()
+        })
+      }
     }
-}
+  }
 </script>
 
 <style lang="scss" scoped>
-.avue-upload__icon {
+  .avue-upload__icon {
     line-height: 6;
-}
+  }
 
-.tab-list {
+  .tab-list {
     display: flex;
     margin-right: 6px;
     border: 1px solid #dcdfe6;
@@ -725,55 +737,55 @@
     height: 34px;
 
     &>div {
-        display: flex;
-        align-items: center;
-        justify-content: center;
-        width: 60px;
-        cursor: pointer;
-        font-size: 12px;
+      display: flex;
+      align-items: center;
+      justify-content: center;
+      width: 60px;
+      cursor: pointer;
+      font-size: 12px;
     }
 
     &>div:nth-child(2) {
-        border-left: 1px solid #dcdfe6;
-        border-right: 1px solid #dcdfe6;
+      border-left: 1px solid #dcdfe6;
+      border-right: 1px solid #dcdfe6;
     }
 
     .choose {
-        color: #FFF;
-        background-color: #409dfe;
+      color: #FFF;
+      background-color: #409dfe;
     }
-}
+  }
 
-:deep(.avue-crud__left) {
+  :deep(.avue-crud__left) {
     display: flex;
     align-items: center;
-}
+  }
 
-:deep(.el-drawer__header) {
+  :deep(.el-drawer__header) {
     margin-bottom: 10px;
-}
+  }
 
-:deep(.el-radio__input.is-disabled+span.el-radio__label) {
+  :deep(.el-radio__input.is-disabled+span.el-radio__label) {
     color: #000;
-}
+  }
 
-:deep(.el-radio__input.is-checked+.el-radio__label) {
+  :deep(.el-radio__input.is-checked+.el-radio__label) {
     color: #409EFF !important;
-}
+  }
 
-:deep(.el-radio__input.is-checked .el-radio__inner::after) {
+  :deep(.el-radio__input.is-checked .el-radio__inner::after) {
     background-color: #FFF;
-}
+  }
 
-:deep(.el-radio__input.is-checked .el-radio__inner) {
+  :deep(.el-radio__input.is-checked .el-radio__inner) {
     background-color: #409EFF;
-}
+  }
 
-:deep(.el-radio) {
+  :deep(.el-radio) {
     margin-right: 20px;
-}
+  }
 
-.title {
+  .title {
     margin: 10px;
     height: 40px;
     background-color: #eee;
@@ -781,119 +793,119 @@
     align-items: center;
 
     .icon {
-        width: 4px;
-        height: 18px;
-        background-color: #409dfe;
-        margin: 0 10px;
-        color: transparent;
+      width: 4px;
+      height: 18px;
+      background-color: #409dfe;
+      margin: 0 10px;
+      color: transparent;
     }
-}
+  }
 
-.basic-info {
+  .basic-info {
     padding: 0 20px;
     font-size: 14px;
 
     .info-item {
+      display: flex;
+      padding: 10px;
+
+      .info-name {
+        width: 100px;
         display: flex;
-        padding: 10px;
+        align-items: center;
+      }
 
-        .info-name {
-            width: 100px;
-            display: flex;
-            align-items: center;
-        }
-
-        .info-value {
-            display: flex;
-            align-items: center;
-        }
+      .info-value {
+        display: flex;
+        align-items: center;
+      }
     }
-}
+  }
 
-.question-list {
+  .question-list {
     padding: 0 20px;
     font-size: 14px;
 
     .question-type {
-        height: 60px;
-        display: flex;
-        align-items: center;
-        cursor: pointer;
-        justify-content: space-between;
-        padding-right: 20px;
+      height: 60px;
+      display: flex;
+      align-items: center;
+      cursor: pointer;
+      justify-content: space-between;
+      padding-right: 20px;
 
-        .type-name {}
+      .type-name {}
 
-        .icon-box {}
+      .icon-box {}
     }
 
     .question-item {
-        margin-bottom: 20px;
-        padding: 10px;
-        background: #f5f7fa;
-        border-radius: 8px;
+      margin-bottom: 20px;
+      padding: 10px;
+      background: #f5f7fa;
+      border-radius: 8px;
 
-        &>div {
-            margin: 14px 0;
+      &>div {
+        margin: 14px 0;
+      }
+
+      .question-name {
+        display: flex;
+
+        .key {
+          width: 80%;
+          padding-right: 20px;
+          word-break: break-all;
         }
 
-        .question-name {
-            display: flex;
+        .value {
+          width: 20%;
+          display: flex;
+          align-items: center;
+          justify-content: center;
+        }
+      }
 
-            .key {
-                width: 80%;
-                padding-right: 20px;
-                word-break: break-all;
-            }
+      .yh-pic-box {
+        display: flex;
+        height: 100px;
 
-            .value {
-                width: 20%;
-                display: flex;
-                align-items: center;
-                justify-content: center;
-            }
+        .yh-pic-name {
+          width: 100px;
+          display: flex;
+          align-items: center;
+          justify-content: left;
         }
 
-        .yh-pic-box {
-            display: flex;
-            height: 100px;
+        .yh-pic-list {
+          width: 0;
+          flex: 1;
+          display: flex;
+        }
+      }
 
-            .yh-pic-name {
-                width: 100px;
-                display: flex;
-                align-items: center;
-                justify-content: left;
-            }
+      .yh-remark {
+        display: flex;
 
-            .yh-pic-list {
-                width: 0;
-                flex: 1;
-                display: flex;
-            }
+        .yh-remark-name {
+          width: 100px;
+          display: flex;
+          align-items: center;
+          justify-content: left;
         }
 
-        .yh-remark {
-            display: flex;
-
-            .yh-remark-name {
-                width: 100px;
-                display: flex;
-                align-items: center;
-                justify-content: left;
-            }
-
-            .yh-remark-value {
-                word-break: break-all;
-            }
+        .yh-remark-value {
+          word-break: break-all;
         }
+      }
     }
 
     .remark-box {
-        padding: 10px;
-        background-color: #f5f7fa;
-        border-radius: 8px;
-        min-height: 40px;
-        margin-bottom: 20px;
+      padding: 10px;
+      background-color: #f5f7fa;
+      border-radius: 8px;
+      min-height: 40px;
+      margin-bottom: 20px;
     }
-}
+  }
 </style>
diff --git a/src/views/publicSecurity/noExplosionManage.vue b/src/views/publicSecurity/noExplosionManage.vue
new file mode 100644
index 0000000..b472c6e
--- /dev/null
+++ b/src/views/publicSecurity/noExplosionManage.vue
@@ -0,0 +1,985 @@
+<template>
+  <basic-container>
+    <avue-crud :option="option" :table-loading="loading" :data="data" :page.sync="page" ref="crud" @row-del="rowDel"
+      v-model="form" :permission="permissionList" @row-update="rowUpdate" @row-save="rowSave" :before-open="beforeOpen"
+      @search-change="searchChange" @search-reset="searchReset" @selection-change="selectionChange"
+      @current-change="currentChange" @size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad">
+
+      <template slot-scope="{row, size}" slot="menu">
+        <el-button type="text" :size="size" plain @click.stop="getDetail(row)">
+          详情
+        </el-button>
+        <el-button type="text" :size="size" icon="el-icon-s-check" v-if="permission.place_check"
+          :disabled="row.status != 1" plain @click=" goAudit(row)">审 核
+        </el-button>
+      </template>
+
+      <template slot="status" slot-scope="{row, size}">
+        <el-tag :size="size" :type="showStatus(row.status).type">
+          {{ showStatus(row.status).text }}
+        </el-tag>
+      </template>
+
+      <template slot-scope="{row, size}" slot="principalPhone">
+        <el-button :size="size" type="text" @click="showStringDispose(row, 'principalPhoneflag')"
+          v-text="textDispose(row, 'principalPhoneflag', 'principalPhone')">
+        </el-button>
+      </template>
+      <template slot="menuLeft">
+        <el-button type="warning" size="small" plain icon="el-icon-download" @click="handleExport">导出
+        </el-button>
+      </template>
+    </avue-crud>
+
+
+    <el-dialog title="" append-to-body :visible.sync="auditBasePopup" width="60%">
+      <campusReporting @colseDetail="colseDetail" v-if="taskType == 6" ref="campusReporting"></campusReporting>
+      <hotelReporting @colseDetail="colseDetail" v-if="taskType == 2" ref="hotelReporting"></hotelReporting>
+      <labelReporting @colseDetail="colseDetail" v-if="taskType == 3" ref="labelReporting"></labelReporting>
+    </el-dialog>
+
+    <el-dialog :visible.sync="visible" append-to-body destroy-on-close title="审核" width="30%"
+      custom-class="flow-design-dialog" :before-close="handleClose">
+      <audit-base @handleSubmit="submitAudit"></audit-base>
+    </el-dialog>
+    <el-drawer title="无诈申请" :visible.sync="isDetail" :append-to-body="true" size="40%" direction="rtl">
+      <div class="title">
+        <div class="icon">{{ refreshNum }}</div>
+        基础信息
+      </div>
+      <div class="basic-info" v-loading="drawerLoading">
+        <div class="info-item">
+          <div class="info-name">场所名称</div>
+          <div class="info-value">{{ rowDetail.placeName }}</div>
+        </div>
+        <!-- <div class="info-item">
+          <div class="info-name">场所类别</div>
+          <div class="info-value">{{ rowDetail.noExplosionCategoryName }}</div>
+        </div> -->
+        <div class="info-item">
+          <div class="info-name">上报人</div>
+          <div class="info-value">{{ rowDetail.name }}</div>
+        </div>
+        <div class="info-item">
+          <div class="info-name">上报时间</div>
+          <div class="info-value">{{ rowDetail.createTime }}</div>
+        </div>
+      </div>
+      <div class="title">
+        <div class="icon"></div>
+        上报记录
+      </div>
+
+      <div class="question-list" v-for="(tItem, tIndex) in rowDetail.qTypeList" :key='tIndex' v-loading="drawerLoading">
+        <div class="question-type" @click="flodQL(tIndex)">
+          <div class="type-name">
+            {{ CNNum[tIndex] }}、{{ tItem.questionName }}
+          </div>
+          <div class="icon-box"><i class="el-icon-arrow-down" v-show="tItem.isShowQList"></i><i class="el-icon-arrow-up"
+              v-show="!tItem.isShowQList"></i></div>
+        </div>
+        <div class="question-item" v-for="(item, index) in tItem.questionList" :key='index' v-show="tItem.isShowQList">
+          <div class="question-name">
+            <div class="key">{{ index + 1 }}、{{ item.itemsNameTitle }}</div>
+            <!-- <div class="value"><el-radio v-model="radio" label="1" disabled>存在</el-radio>
+              <el-radio v-model="radio" label="2" disabled>不存在</el-radio>
+            </div> -->
+          </div>
+          <div class="yh-pic-box">
+            <div class="yh-pic-name">
+              上报图片
+            </div>
+            <div class="yh-pic-list">
+              <div class="pic-item" v-for="pic in item.imageUrlsList">
+                <el-image style="width: 100px; height: 100px" :src="pic" :fit="fit"    :preview-src-list="item.imageUrlsList"></el-image>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+    </el-drawer>
+  </basic-container>
+</template>
+
+<script>
+  import {
+    getTaskNoFraudReportingList,
+    removeTask,
+    update,
+    add,
+    applyTaskExamine
+  } from "@/api/task/task"
+
+  import {
+    mapGetters
+  } from "vuex"
+  import {
+    getTaskNoFraudReportingInfo
+  } from "@/api/publicSecurity/taskNoFraudReporting"
+  import {
+    getPatrolGroupTree,
+    getDictBizTree
+  } from "@/api/publicSecurity/ninePlaceManage"
+  import website from '@/config/website'
+  import NProgress from 'nprogress'
+  import 'nprogress/nprogress.css'
+  import Qs from "qs"
+  import {
+    exportBlob
+  } from "@/api/common"
+  import {
+    getToken
+  } from '@/util/auth'
+  import {
+    downloadXls
+  } from "@/util/util"
+  import {
+    dateNow
+  } from "@/util/date"
+  import campusReporting from './components/campusReporting'
+  import hotelReporting from './components/hotelReporting'
+  import labelReporting from './components/labelReporting'
+
+  export default {
+    data() {
+      //手机号格式校验
+      let validatorPhone = function(rule, value, callback) {
+        if (value) {
+          if (!/^1[3456789]\d{9}$/.test(value)) {
+            callback(new Error('手机号格式有误!'))
+          } else {
+            callback()
+          }
+        }
+        callback()
+      }
+
+      return {
+        isDetail: false,
+        refreshNum: 1,
+        rowDetail: [],
+        auditRules: {
+          status: [{
+            required: true,
+            message: "必填"
+          }],
+          remark: [{
+            required: true,
+            message: "必填"
+          }],
+        },
+        visible: false,
+        taskType: 0,
+        curRow: {},
+        roleBox: false,
+
+        form: {},
+        query: {},
+        loading: true,
+        drawerLoading: false,
+        page: {
+          pageSize: 10,
+          currentPage: 1,
+          total: 0,
+        },
+        selectionList: [],
+        option: {
+          labelWidth: 120,
+          searchLabelWidth: 96,
+          searchShow: true,
+          searchMenuSpan: 3,
+          menuWidth: 200,
+          // menu: false,
+          height: "auto",
+          calcHeight: 54,
+          dialogWidth: 950,
+          tip: false,
+          border: true,
+          addBtn: false,
+          delBtn: false,
+          //stripe:true,
+          index: true,
+          editBtn: false,
+          viewBtn: false,
+          // selection: true,
+          excelBtn: false,
+          refreshBtn: false,
+          searchShowBtn: false,
+          columnBtn: false,
+          dialogClickModal: false,
+          column: [{
+              label: "场所名称",
+              prop: "placeName",
+              span: 24,
+              row: true,
+              searchSpan: 4,
+              search: true,
+              align: 'center'
+            },
+            {
+              label: "场所地址",
+              prop: "location",
+              span: 24,
+              row: true,
+              searchSpan: 4,
+              searchLabelWidth: 46,
+              overHidden: true,
+              align: 'center'
+            }, {
+              label: "无诈类别",
+              prop: "noExplosionCategory",
+              align: 'center',
+              dicUrl: "/api/blade-system/dict-biz/tree?code=noExplosionCategory",
+              props: {
+                label: "title",
+                value: "key",
+              },
+              type: 'select',
+              search: true,
+              searchSpan: 4,
+              searchLabelWidth: 96,
+              align: 'center'
+            }, {
+              label: "所属街道",
+              prop: "streetName",
+              span: 24,
+              row: true,
+              searchSpan: 4,
+              search: true,
+              align: 'center'
+            },
+            {
+              label: "所属社区",
+              prop: "communityName",
+              span: 24,
+              row: true,
+              searchSpan: 4,
+              search: true,
+              width: 160,
+              overHidden: true,
+              align: 'center'
+            },
+            {
+              label: "派出所",
+              prop: "pcsName",
+              span: 24,
+              row: true,
+              searchSpan: 4,
+              search: true,
+              align: 'center'
+            },
+
+            {
+              label: "场所负责人",
+              prop: "principal",
+              span: 24,
+              row: true,
+              searchSpan: 4,
+              search: true,
+              align: 'center'
+            },
+            {
+              label: "场所负责人电话",
+              prop: "principalPhone",
+              span: 24,
+              row: true,
+              slot: true,
+              searchSpan: 4,
+              align: 'center'
+            },
+            // {
+            //   label: "无诈上报数量",
+            //   prop: "number",
+            //   span: 24,
+            //   row: true,
+            //   slot: true,
+            //   searchSpan: 4,
+            //   align: 'center'
+            // },
+            {
+              width: 110,
+              label: "审核状态",
+              prop: "status",
+              span: 24,
+              align: 'center',
+              slot: true,
+            },
+            {
+              label: "创建时间",
+              prop: "createTime",
+              span: 24,
+              row: true,
+              searchSpan: 4,
+              searchLabelWidth: 46,
+              align: 'center'
+            },
+          ],
+        },
+        data: [],
+
+        auditBasePopup: false,
+        questionTypeList: [],
+        CNNum: ['一', '二', '三', '四', '五', '六', '七', '八', '九', '十', '十一', '十二', '十三', '十四', '十五'],
+        nineTypeList: [],
+        radio: '1',
+      }
+    },
+
+    provide() {
+      return {
+        placeElement: this,
+      }
+    },
+
+    components: {
+      campusReporting,
+      hotelReporting,
+      labelReporting,
+    },
+
+    watch: {},
+
+    created() {
+      this.getDictBizTree()
+    },
+
+    computed: {
+      ...mapGetters(["permission", "userInfo"]),
+      permissionList() {
+        return {
+          addBtn: this.vaildData(this.permission.place_add, false),
+          viewBtn: this.vaildData(this.permission.place_view, true),
+          delBtn: this.vaildData(this.permission.place_del, true),
+          // editBtn: this.vaildData(this.permission.place_edit, true),
+        }
+      },
+      ids() {
+        let ids = []
+        this.selectionList.forEach((ele) => {
+          ids.push(ele.id)
+        })
+        return ids.join(",")
+      },
+      showStatus() {
+        return (data) => {
+          let tags = {}
+          if (data == 1) {
+            tags = {
+              type: 'warning',
+              text: '待审核'
+            }
+          } else if (data == 2) {
+            tags = {
+              type: 'success',
+              text: '已审核'
+            }
+          } else if (data == 3) {
+            tags = {
+              type: 'danger',
+              text: '未通过'
+            }
+          } else if (data == 4) {
+            tags = {
+              type: 'warning',
+              text: '待完成'
+            }
+          }
+
+          return tags
+        }
+      },
+
+      textDispose() {
+        return (row, flag, type) => {
+          if (row[flag] || row[type] == null) {
+            return row[type]
+          } else {
+            if (type == 'principalIdCard') {
+              return row[type].replace(/^(.{6})(?:\d+)(.{4})$/, "$1******$2")
+            } else {
+              return row[type].replace(/^(.{3})(?:\d+)(.{4})$/, "$1****$2")
+            }
+          }
+        }
+      }
+    },
+    methods: {
+      // 点击展开收缩
+      flodQL(index) {
+        this.rowDetail.qTypeList[index].isShowQList = !this.rowDetail.qTypeList[index].isShowQList
+        this.refreshNum += 1
+      },
+
+      // 对数组按属性分组
+      groupBy(arr, key) {
+        return arr.reduce((acc, curr) => {
+          (acc[curr[key]] = acc[curr[key]] || []).push(curr)
+          return acc
+        }, {})
+      },
+
+      // 九小类型字典接口
+      getDictBizTree() {
+        getDictBizTree({
+          code: 'nineType'
+        }).then(res => {
+          this.nineTypeList = res.data.data
+        })
+      },
+
+      // 九小类型转换
+      switchNineType(type) {
+        return this.nineTypeList.find(item => item.key === type) ? this.nineTypeList.find(item => item.key === type)
+          .title : ''
+      },
+
+      // 获取问题类型
+      getPatrolGroupTree(param) {
+        getPatrolGroupTree(param).then(res => {
+          this.questionTypeList = res.data.data
+        })
+      },
+
+      getDetail(rowData) {
+        this.getPatrolGroupTree({
+          type: 2,
+          childType: rowData.noExplosionCategory
+        })
+        this.drawerLoading = true
+        this.isDetail = true
+        getTaskNoFraudReportingInfo({
+          taskId: rowData.taskId
+        }).then(res => {
+          let row = res.data.data
+          if (row.taskPlaceRecordVOList) {
+            row.taskPlaceRecordVOList.forEach(item => {
+              item.imageUrlsList = []
+              item.rectificationImageUrlsList = []
+              if (item.imageUrls) {
+                item.imageUrlsList = item.imageUrls.split(',').map(ele => {
+                  return website.minioUrl + ele
+                })
+              }
+              if (item.rectificationImageUrls) {
+                item.rectificationImageUrlsList = item.rectificationImageUrls.split(',').map(ele => {
+                  return website.minioUrl + ele
+                })
+              }
+              // 查询问题类型
+              this.questionTypeList.forEach(qItem => {
+                qItem.children.forEach(qChild => {
+                  if (qChild.id == item.itemId) {
+                    item.qType = qItem.title
+                    item.itemsNameTitle = qChild.title
+                  }
+                })
+              })
+            })
+          }
+          if (row.taskPlaceRecordVOList) {
+            // 把相同类型问题分组
+            let obj = this.groupBy(row.taskPlaceRecordVOList, 'qType')
+            let arr = Object.entries(obj)
+            let newArr = []
+            arr.forEach(part => {
+              newArr.push({
+                questionName: part[0],
+                questionList: part[1],
+                isShowQList: true
+              })
+            })
+            row.qTypeList = newArr
+          }
+          // 九小类型转换
+          row.nineTypeName = this.switchNineType(row.nineType)
+          this.rowDetail = row
+          this.drawerLoading = false
+        })
+
+      },
+
+      handleExport() {
+        this.$confirm("是否导出无诈记录数据?", "提示", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(() => {
+          NProgress.start()
+          var data = {
+            ...this.query
+          }
+          // data.isNine = 1
+          data = Qs.stringify(data)
+          exportBlob(
+            `/api/blade-taskNoFraudReporting/taskNoFraudReporting/export-taskNoFraudReporting?${this.website.tokenHeader}=${getToken()}&` +
+            data
+          ).then(res => {
+            console.log('exportBlob', res)
+            downloadXls(res.data, `无诈记录${dateNow()}.xlsx`)
+            NProgress.done()
+          })
+        })
+      },
+
+      showStringDispose(row, type) {
+        row[type] = !row[type]
+      },
+
+      // 弹窗关闭回调
+      handleClose() {
+        this.cancelAudit()
+      },
+
+      // 取消审核
+      cancelAudit() {
+        this.visible = false
+      },
+
+      // 确认提交审核
+      submitAudit(form) {
+        let auditForm = {
+          status: form.status == '1' ? '2' : '3',
+          remark: form.confirmNotion,
+          reportType: 6
+        }
+
+        applyTaskExamine(Object.assign(this.auditParams, auditForm)).then(res => {
+          if (res.data.code == 200) {
+            this.$message.warning("审核成功")
+            this.onLoad(this.page)
+            this.cancelAudit()
+          }
+        })
+      },
+
+      // 审核按钮
+      goAudit(row) {
+        this.auditParams = {
+          id: row.taskId,
+          reportType: row.reportType
+        }
+        this.visible = true
+      },
+
+      colseDetail() {
+        this.auditBasePopup = false
+        this.onLoad(this.page)
+      },
+
+      lookDetail(row, applyType) {
+        this.auditBasePopup = true
+        var that = this
+        if (row.reportType == 6) {
+          this.taskType = 6
+          this.$nextTick(() => {
+            that.$refs.campusReporting.init(row, applyType)
+          })
+        }
+        if (row.reportType == 2) {
+          this.taskType = 2
+          this.$nextTick(() => {
+            that.$refs.hotelReporting.init(row, applyType)
+          })
+        }
+        if (row.reportType == 3 || row.reportType == 4 || row.reportType == 5) {
+          this.taskType = 3
+          this.$nextTick(() => {
+            that.$refs.labelReporting.init(row, applyType)
+          })
+        }
+      },
+      auditCur(row) {
+        this.curAuditRow = row
+        this.auditBasePopup = true
+      },
+
+      roleBoxClose() {
+        this.curRow = {}
+      },
+
+      ManageTenants(item) {
+        this.curRow = item
+        this.roleBox = true
+      },
+
+      rowSave(row, done, loading) {
+        if (row.imageUrls && row.imageUrls.length > 0) {
+          var urls = []
+          var split = row.imageUrls.split(",").filter(item => item != '')
+          split.forEach(url => {
+            var names = url.split("jczz/")
+            urls.push(names[1])
+          })
+          row.imageUrls = urls.join(",")
+        }
+
+        let label = row.label
+
+        if (row.smallLabel != '') {
+          label = label + ',' + row.smallLabel
+        }
+
+        delete row.smallLabel
+
+        add({
+          ...row,
+          label
+        }).then(
+          () => {
+            this.onLoad(this.page)
+            this.$message({
+              type: "success",
+              message: "操作成功!",
+            })
+            done()
+          },
+          (error) => {
+            window.console.log(error)
+            loading()
+          }
+        )
+      },
+
+      rowUpdate(row, index, done, loading) {
+        if (row.imageUrls.length > 0) {
+          var urls = []
+          var split = row.imageUrls.split(",").filter(item => item != '')
+          split.forEach(url => {
+            var names = url.split("jczz/")
+            urls.push(names[1])
+          })
+          row.imageUrls = urls.join(",")
+        }
+
+        let label = row.label
+
+        if (row.smallLabel != '') {
+          label = label + ',' + row.smallLabel
+        }
+
+        delete row.smallLabel
+
+        update({
+          ...row,
+          label
+        }).then(
+          () => {
+            this.onLoad(this.page)
+            this.$message({
+              type: "success",
+              message: "操作成功!",
+            })
+            done()
+          },
+          (error) => {
+            window.console.log(error)
+            loading()
+          }
+        )
+      },
+
+      rowDel(row) {
+        this.$confirm("确定将选择数据删除?", {
+            confirmButtonText: "确定",
+            cancelButtonText: "取消",
+            type: "warning",
+          })
+          .then(() => {
+            row.isDeleted = 1
+            return removeTask(row)
+          })
+          .then(() => {
+            this.onLoad(this.page)
+
+            this.$message({
+              type: "success",
+              message: "操作成功!",
+            })
+          })
+      },
+      searchReset() {
+        this.query = {}
+        this.page.currentPage = 1
+        this.onLoad(this.page)
+      },
+      searchChange(params, done) {
+        this.query = params
+        this.page.currentPage = 1
+        this.onLoad(this.page, params)
+        done()
+      },
+      selectionChange(list) {
+        this.selectionList = list
+      },
+      selectionClear() {
+        this.selectionList = []
+        this.$nextTick(() => {
+          this.$refs.crud && this.$refs.crud.toggleSelection()
+        })
+      },
+      handleDelete() {
+        if (this.selectionList.length === 0) {
+          this.$message.warning("请选择至少一条数据")
+          return
+        }
+        this.$confirm("确定将选择数据删除?", {
+            confirmButtonText: "确定",
+            cancelButtonText: "取消",
+            type: "warning",
+          })
+          .then(() => {
+            return remove(this.ids)
+          })
+          .then(() => {
+            this.onLoad(this.page)
+            this.$message({
+              type: "success",
+              message: "操作成功!",
+            })
+            this.$refs.crud.toggleSelection()
+          })
+      },
+
+      beforeOpen(done, type) {
+        if (["edit", "view"].includes(type)) {
+          // getPlace(this.form.id).then((res) => {
+          //   this.form = res.data.data
+          //   if (this.form.imageUrls.length) {
+          //     this.form.imageUrls = this.form.imageUrls.split(",").filter(item => item != '').map(item => website
+          //       .minioUrl + item).join(',')
+          //   }
+          //   if (this.form.placePoiLabelVOList.length) {
+          //     let lebelTwo = this.form.placePoiLabelVOList.find(item => {
+          //       return item.type == 2
+          //     })
+          //     if (lebelTwo) this.form.label = String(lebelTwo.poiCode)
+          //     let lebelThree = this.form.placePoiLabelVOList.find(item => {
+          //       return item.type == 3
+          //     })
+          //     if (lebelThree) this.form.smallLabel = String(lebelThree.poiCode)
+          //   }
+          //   done()
+          // })
+        } else {
+          done()
+        }
+      },
+
+      currentChange(currentPage) {
+        this.page.currentPage = currentPage
+        this.onLoad(this.page, this.query)
+      },
+      sizeChange(pageSize) {
+        this.page.pageSize = pageSize
+        this.onLoad(this.page, this.query)
+      },
+      refreshChange() {
+        this.page.currentPage = 1
+        this.onLoad(this.page, this.query)
+      },
+      onLoad(page, params = {}) {
+        const {} = this.query
+        let values = {
+          ...params,
+        }
+
+        this.loading = true
+        getTaskNoFraudReportingList(page.currentPage, page.pageSize, values).then((res) => {
+          const data = {
+            ...res.data.data,
+            records: res.data.data.records.map(item => {
+              return {
+                ...item,
+                'createTime': item.createTime.slice(0, 16),
+                'principalPhoneflag': false,
+              }
+            })
+          }
+          data.records.forEach(item => {})
+          this.page.total = data.total
+          this.data = data.records
+          this.loading = false
+          this.selectionClear()
+        })
+      }
+    }
+  }
+</script>
+
+<style lang="scss" scoped>
+  :deep(.cur-container-box) {
+    padding: 0;
+  }
+
+  :deep(.el-button--text) {
+    border: 0;
+    background: transparent !important;
+  }
+
+  :deep(.el-radio__input.is-disabled+span.el-radio__label) {
+    color: #000;
+  }
+
+  :deep(.el-radio__input.is-checked+.el-radio__label) {
+    color: #409EFF !important;
+  }
+
+  :deep(.el-radio__input.is-checked .el-radio__inner::after) {
+    background-color: #FFF;
+  }
+
+  :deep(.el-radio__input.is-checked .el-radio__inner) {
+    background-color: #409EFF;
+  }
+
+  :deep(.avue-crud__img) {
+    height: 30px !important;
+  }
+
+  :deep(.el-radio) {
+    margin-right: 20px;
+  }
+
+  .avue-upload__icon {
+    line-height: 6;
+  }
+
+  .cur-container-box {
+    display: flex;
+    flex-direction: column;
+    width: 100%;
+    height: 100%;
+    overflow: hidden;
+
+    .content-box {
+      margin: 0 4px;
+      padding: 0 16px;
+      height: 0;
+      flex: 1;
+      overflow: hidden;
+      overflow-y: auto;
+    }
+
+    .footer-btn-box {
+      margin-top: 10px;
+      display: flex;
+      justify-content: center;
+    }
+  }
+
+  .title {
+    margin: 10px;
+    height: 40px;
+    background-color: #eee;
+    display: flex;
+    align-items: center;
+
+    .icon {
+      width: 4px;
+      height: 18px;
+      background-color: #409dfe;
+      margin: 0 10px;
+      color: transparent;
+    }
+  }
+
+  .basic-info {
+    padding: 0 20px;
+    font-size: 14px;
+
+    .info-item {
+      display: flex;
+      padding: 10px;
+
+      .info-name {
+        width: 100px;
+        display: flex;
+        align-items: center;
+      }
+
+      .info-value {
+        display: flex;
+        align-items: center;
+      }
+    }
+  }
+
+  .question-list {
+    padding: 0 20px;
+    font-size: 14px;
+
+    .question-type {
+      height: 60px;
+      display: flex;
+      align-items: center;
+      cursor: pointer;
+      justify-content: space-between;
+      padding-right: 20px;
+
+      .type-name {}
+
+      .icon-box {}
+    }
+
+    .question-item {
+      margin-bottom: 20px;
+      padding: 10px;
+      background: #f5f7fa;
+      border-radius: 8px;
+
+      &>div {
+        margin: 14px 0;
+      }
+
+      .question-name {
+        display: flex;
+
+        .key {
+          width: 80%;
+          padding-right: 20px;
+          word-break: break-all;
+        }
+
+        .value {
+          width: 20%;
+          display: flex;
+          align-items: center;
+          justify-content: center;
+        }
+      }
+
+      .yh-pic-box {
+        display: flex;
+        height: 100px;
+
+        .yh-pic-name {
+          width: 100px;
+          display: flex;
+          align-items: center;
+          justify-content: left;
+        }
+
+        .yh-pic-list {
+          width: 0;
+          flex: 1;
+          display: flex;
+        }
+      }
+
+      .yh-remark {
+        display: flex;
+
+        .yh-remark-name {
+          width: 100px;
+          display: flex;
+          align-items: center;
+          justify-content: left;
+        }
+
+        .yh-remark-value {
+          word-break: break-all;
+        }
+      }
+    }
+  }
+</style>
\ No newline at end of file
diff --git a/src/views/resource/distapch.vue b/src/views/resource/distapch.vue
index a7ab315..90931d7 100644
--- a/src/views/resource/distapch.vue
+++ b/src/views/resource/distapch.vue
@@ -1,22 +1,22 @@
 <template>
-    <basic-container v-if="false">
+    <basic-container>
         <avue-crud :option="option" :table-loading="loading" :data="data" :page.sync="page" :permission="permissionList"
             v-model="form" ref="crud" @row-update="rowUpdate" @row-save="rowSave" @row-del="rowDel"
             :before-open="beforeOpen" @search-change="searchChange" @search-reset="searchReset"
             @selection-change="selectionChange" @current-change="currentChange" @size-change="sizeChange"
             @refresh-change="refreshChange" @on-load="onLoad">
             <template slot="menuLeft">
-                <el-button type="danger" size="small" icon="el-icon-delete" plain v-if="permission.oss_delete"
+                <el-button type="danger" size="small" icon="el-icon-delete" plain v-if="permission.job_del"
                     @click="handleDelete">删 除
                 </el-button>
             </template>
 
             <template slot-scope="{ row, size, index }" slot="menu">
-                <el-button :size="size" type="text" icon="el-icon-video-play" v-if="userInfo.role_name.includes('admin')"
-                    @click="handleDebug(row)">执行一次
+                <el-button :size="size" type="text" icon="el-icon-video-pause" v-if="permission.job_enable && row.triggerStatus==1"
+                    @click="handleEnable(row,0)">停止
                 </el-button>
-                <el-button :size="size" type="text" icon="el-icon-circle-check" v-if="permission.oss_enable"
-                    @click.stop="handleEnable(row)">启用
+                <el-button :size="size" type="text" icon="el-icon-video-play" v-if="permission.job_enable && row.triggerStatus==0"
+                    @click.stop="handleEnable(row,1)">启用
                 </el-button>
             </template>
 
@@ -38,14 +38,6 @@
 
 
         </avue-crud>
-
-        <el-dialog title="对象存储上传调试" append-to-body :visible.sync="box" width="550px">
-            <avue-form ref="form" :option="debugOption" v-model="debugForm" @submit="handleSubmit" />
-        </el-dialog>
-
-
-
-
         <el-dialog title="Cron" append-to-body :visible.sync="cronPopover" width="550px">
             <!-- <el-popover v-model="cronPopover"> -->
 
@@ -64,7 +56,7 @@
 </template>
 
 <script>
-import { getList, getDetail, add, update, remove, enable } from "@/api/resource/oss"
+import { getList, add, update, remove, start,stop } from "@/api/xxljob/xxljob"
 import { mapGetters } from "vuex"
 import func from "@/util/func"
 import vueCron from 'vue-cron'
@@ -90,8 +82,7 @@
                 searchLabelWidth: 96,
                 searchShow: true,
                 searchMenuSpan: 3,
-                menuWidth: 350,
-
+                menuWidth: 280,
                 height: 'auto',
                 calcHeight: 30,
                 tip: false,
@@ -102,253 +93,205 @@
                 dialogWidth: 880,
                 dialogClickModal: false,
                 dialogDirection: 'rtl',
-                dialogType: 'drawer',
+                dialogType: 'dialog',
                 column: [
-                    {
-                        label: "分类",
-                        type: "radio",
-                        value: 1,
-                        span: 24,
-                        width: 120,
-                        searchLabelWidth: 50,
-                        row: true,
-                        dicUrl: "/api/blade-system/dict/dictionary?code=oss",
-                        props: {
-                            label: "dictValue",
-                            value: "dictKey"
-                        },
-                        dataType: "number",
-                        slot: true,
-                        prop: "category",
+                {
+                        label: "任务描述",
+                        searchLabelWidth: 76,
+                        prop: "jobDesc",
+                        labelWidth:150,
                         search: true,
                         rules: [{
                             required: true,
-                            message: "请选择分类",
+                            message: "请输入任务描述",
                             trigger: "blur"
                         }],
-                        display: false
+                    },
+                    // {
+                    //     label: "调度类型",
+                    //     width: 120,
+                    //     searchLabelWidth: 76,
+                    //     labelWidth:150,
+                    //     prop: "scheduleType",
+                    //     rules: [{
+                    //         required: true,
+                    //         message: "请选择调度类型",
+                    //         trigger: "blur"
+                    //     }],
+                    //     display: false
+                    // },
+                    {
+                        label: "表达式",
+                        prop: "scheduleConf",
+                        // width: 120,
+                        labelWidth:150,
+                        rules: [{
+                            required: true,
+                            message: "请输入表达式",
+                            trigger: "blur"
+                        }],
                     },
                     {
-                        label: "资源编号",
-                        prop: "ossCode",
-                        span: 24,
+                        label: "执行器任务handler",
+                        prop: "executorHandler",
+                        labelWidth:150,
+                        width: 160,
+                        rules: [{
+                            required: true,
+                            message: "请输入执行器任务handler",
+                            trigger: "blur"
+                        }],
+                    },
+                    {
+                        label: "负责人",
+                        prop: "author",
                         width: 120,
-                        search: true,
+                        labelWidth:150,
                         rules: [{
                             required: true,
-                            message: "请输入资源编号",
+                            message: "请输入负责人",
                             trigger: "blur"
                         }],
-                        display: false
                     },
+                    
                     {
-                        label: "资源地址",
-                        prop: "endpoint",
-                        span: 24,
-                        rules: [{
-                            required: true,
-                            message: "请输入资源地址",
-                            trigger: "blur"
-                        }],
-                        display: false
-                    },
-                    {
-                        label: "空间名",
-                        prop: "bucketName",
-                        span: 24,
-                        width: 120,
-                        rules: [{
-                            required: true,
-                            message: "请输入空间名",
-                            trigger: "blur"
-                        }],
-                        display: false
-                    },
-                    {
-                        label: "accessKey",
-                        prop: "accessKey",
-                        span: 24,
-                        search: true,
-                        width: 200,
+                        label: "报警邮件",
+                        prop: "alarmEmail",
+                        width: 150,
+                        labelWidth:150,
                         overHidden: true,
                         rules: [{
                             required: true,
-                            message: "请输入accessKey",
+                            message: "请输入报警邮件",
                             trigger: "blur"
                         }],
-                        display: false
-                    },
-                    {
-                        label: "secretKey",
-                        prop: "secretKey",
-                        span: 24,
-                        width: 200,
-                        overHidden: true,
-                        rules: [{
-                            required: true,
-                            message: "请输入secretKey",
-                            trigger: "blur"
-                        }],
-                        display: false
-                    },
-                    {
-                        label: "appId",
-                        prop: "appId",
-                        span: 24,
-                        hide: true,
-                        display: false,
-                    },
-                    {
-                        label: "region",
-                        prop: "region",
-                        span: 24,
-                        hide: true,
-                        display: false,
-                    },
-                    {
-                        width: 100,
-                        label: "是否启用",
-                        prop: "status",
-                        span: 24,
-                        align: "center",
-                        slot: true,
-                        addDisplay: false,
-                        editDisplay: false,
-                        viewDisplay: false,
-                    },
-                    {
-                        label: "备注",
-                        prop: "remark",
-                        span: 24,
-                        hide: true,
-                        display: false
+                    },{
+                        label: "状态",
+                        prop: "triggerStatus",
+                        search: true,
+                        searchSpan:4,
+                        type:"select",
+                        align:"center",
+                        labelWidth:150,
+                        width: 120,
+                        searchLabelWidth: 66,
+                        viewDisplay:true,
+                        addDisplay:false,
+                        editDisplay:false,
+                        dataType:"number",
+                        dicData:[
+                            {
+                                label:"运行",
+                                value: 1
+                            },
+                            {
+                                label:"停止",
+                                value: 0
+                            }
+                        ],
                     },
                 ],
-                group: [
-                    {
-                        label: '基础配置',
-                        prop: 'jbxx',
-                        column: [
-                            {
-                                label: '执行器',
-                                prop: '',
-                                type: 'select',
-                            },
-                            {
-                                label: '任务描述',
-                                prop: ''
-                            },
-                            {
-                                label: '负责人',
-                                prop: '',
+            //     group: [
+            //         {
+            //             label: '基础配置',
+            //             prop: 'jbxx',
+            //             column: [
+            //                 {
+            //                     label: '执行器',
+            //                     prop: '',
+            //                     type: 'select',
+            //                 },
+            //                 {
+            //                     label: '任务描述',
+            //                     prop: ''
+            //                 },
+            //                 {
+            //                     label: '负责人',
+            //                     prop: '',
 
-                            },
-                            {
-                                label: '报警邮件',
-                                prop: ''
-                            }
-                        ]
-                    },
-                    {
-                        label: '调度配置',
-                        prop: 'jbxx',
-                        column: [
-                            {
-                                label: '调度类型',
-                                prop: '',
-                                type: 'select',
-                            },
-                            {
-                                label: 'Cron',
-                                prop: 'cron',
-                                formslot: true,
-                            }
-                        ]
-                    },
-                    {
-                        label: '任务配置',
-                        prop: 'jbxx',
-                        column: [
-                            {
-                                label: '运行模式',
-                                prop: '',
-                                type: 'select',
-                            },
-                            {
-                                label: 'JobHandler',
-                                prop: ''
-                            },
-                            {
-                                label: '任务参数',
-                                prop: '',
-                                type: 'textarea',
-                                span: 24
-                            }
-                        ]
-                    },
-                    {
-                        label: '高级配置',
-                        prop: 'jbxx',
-                        column: [
-                            {
-                                label: '调度类型',
-                                prop: '',
-                                type: 'select',
-                            },
-                            {
-                                label: '子任务ID',
-                                prop: ''
-                            },
-                            {
-                                label: '调度类型',
-                                prop: '',
-                                type: 'select',
-                            },
-                            {
-                                label: '任务参数',
-                                prop: '',
-                                type: 'select',
-                            },
-                            {
-                                label: '任务超时时间',
-                                prop: '',
-                            },
-                            {
-                                label: '失败重试次数',
-                                prop: '',
-                            }
-                        ]
-                    },
-                ]
+            //                 },
+            //                 {
+            //                     label: '报警邮件',
+            //                     prop: ''
+            //                 }
+            //             ]
+            //         },
+            //         {
+            //             label: '调度配置',
+            //             prop: 'jbxx',
+            //             column: [
+            //                 {
+            //                     label: '调度类型',
+            //                     prop: '',
+            //                     type: 'select',
+            //                 },
+            //                 {
+            //                     label: 'Cron',
+            //                     prop: 'cron',
+            //                     formslot: true,
+            //                 }
+            //             ]
+            //         },
+            //         {
+            //             label: '任务配置',
+            //             prop: 'jbxx',
+            //             column: [
+            //                 {
+            //                     label: '运行模式',
+            //                     prop: '',
+            //                     type: 'select',
+            //                 },
+            //                 {
+            //                     label: 'JobHandler',
+            //                     prop: ''
+            //                 },
+            //                 {
+            //                     label: '任务参数',
+            //                     prop: '',
+            //                     type: 'textarea',
+            //                     span: 24
+            //                 }
+            //             ]
+            //         },
+            //         {
+            //             label: '高级配置',
+            //             prop: 'jbxx',
+            //             column: [
+            //                 {
+            //                     label: '调度类型',
+            //                     prop: '',
+            //                     type: 'select',
+            //                 },
+            //                 {
+            //                     label: '子任务ID',
+            //                     prop: ''
+            //                 },
+            //                 {
+            //                     label: '调度类型',
+            //                     prop: '',
+            //                     type: 'select',
+            //                 },
+            //                 {
+            //                     label: '任务参数',
+            //                     prop: '',
+            //                     type: 'select',
+            //                 },
+            //                 {
+            //                     label: '任务超时时间',
+            //                     prop: '',
+            //                 },
+            //                 {
+            //                     label: '失败重试次数',
+            //                     prop: '',
+            //                 }
+            //             ]
+            //         },
+            //     ]
             },
             data: [],
             debugForm: {
                 code: '',
             },
-            debugOption: {
-                submitText: "保存",
-                column: [
-                    {
-                        label: "资源编号",
-                        prop: "code",
-                        disabled: true,
-                        span: 24,
-                    },
-                    {
-                        label: "上传背景",
-                        prop: "backgroundUrl",
-                        type: 'upload',
-                        listType: 'picture-img',
-                        dataType: 'string',
-                        action: '/api/blade-resource/oss/endpoint/put-file',
-                        propsHttp: {
-                            res: 'data',
-                            url: 'link',
-                        },
-                        span: 24,
-                    },
-                ]
-            }
         }
     },
     watch: {
@@ -372,10 +315,10 @@
         ...mapGetters(["userInfo", "permission"]),
         permissionList () {
             return {
-                addBtn: this.vaildData(this.permission.oss_add),
+                addBtn: this.vaildData(this.permission.job_add),
                 viewBtn: this.vaildData(this.permission.oss_view),
-                delBtn: this.vaildData(this.permission.oss_delete),
-                editBtn: this.vaildData(this.permission.oss_edit)
+                delBtn: this.vaildData(this.permission.job_del),
+                editBtn: this.vaildData(this.permission.job_update)
             }
         },
         ids () {
@@ -393,6 +336,16 @@
         },
 
         rowSave (row, done, loading) {
+            row['jobGroup'] = 1;
+            row['glueType'] = 'bean';
+            row['scheduleType'] = 'CRON';
+            row['executorParam'] = '';
+            row['executorRouteStrategy'] = 'FIRST';
+            row['misfireStrategy'] = 'DO_NOTHING';
+            row['executorBlockStrategy'] = 'SERIAL_EXECUTION';
+            row['executorTimeout'] = 0;
+            row['executorFailRetryCount'] = 0;
+            row['glueRemark'] = 'GLUE代码初始化';
             add(row).then(() => {
                 this.onLoad(this.page)
                 this.$message({
@@ -452,14 +405,26 @@
             this.selectionList = []
             this.$refs.crud.toggleSelection()
         },
-        handleEnable (row) {
-            this.$confirm("是否确定启用这条配置?", {
+        handleEnable (row,status) {
+            var temstr = ""
+            if(status == 1){
+                temstr = "启动"
+            }else{
+                temstr = "停止"
+            }
+            this.$confirm("是否确定" + temstr + "当前任务?", {
                 confirmButtonText: "确定",
                 cancelButtonText: "取消",
                 type: "warning"
             })
                 .then(() => {
-                    return enable(row.id)
+                    if(status==1){
+                        row.triggerStatus = 1
+                        return start(row)
+                    }else{
+                        row.triggerStatus = 0
+                        return stop(row)
+                    }
                 })
                 .then(() => {
                     this.onLoad(this.page)
@@ -469,11 +434,6 @@
                     })
                     this.$refs.crud.toggleSelection()
                 })
-        },
-        handleDebug (row) {
-            this.box = true
-            this.debugForm.code = row.ossCode
-            this.debugForm.backgroundUrl = ''
         },
         handleSubmit (form, done) {
             this.$message({
@@ -505,11 +465,11 @@
                 })
         },
         beforeOpen (done, type) {
-            if (["edit", "view"].includes(type)) {
-                getDetail(this.form.id).then(res => {
-                    this.form = res.data.data
-                })
-            }
+            // if (["edit", "view"].includes(type)) {
+            //     getDetail(this.form.id).then(res => {
+            //         this.form = res.data.data
+            //     })
+            // }
             done()
         },
         currentChange (currentPage) {
diff --git a/src/views/resource/sms.vue b/src/views/sms/sms.vue
similarity index 98%
rename from src/views/resource/sms.vue
rename to src/views/sms/sms.vue
index 54037f1..d4572d7 100644
--- a/src/views/resource/sms.vue
+++ b/src/views/sms/sms.vue
@@ -11,9 +11,9 @@
       </template>
 
       <template slot-scope="{ row, size, index }" slot="menu">
-        <el-button :size="size" type="text" icon="el-icon-video-play" v-if="userInfo.role_name.includes('admin')"
+        <!--    <el-button :size="size" type="text" icon="el-icon-video-play" v-if="userInfo.role_name.includes('admin')"
           @click="handleDebug(row)">调试
-        </el-button>
+        </el-button> -->
         <el-button :size="size" type="text" icon="el-icon-circle-check" v-if="permission.sms_enable"
           @click.stop="handleEnable(row)">启用
         </el-button>
diff --git a/src/views/resource/sms.vue b/src/views/sms/smsRecord.vue
similarity index 69%
copy from src/views/resource/sms.vue
copy to src/views/sms/smsRecord.vue
index 54037f1..1087159 100644
--- a/src/views/resource/sms.vue
+++ b/src/views/sms/smsRecord.vue
@@ -4,31 +4,9 @@
       :before-open="beforeOpen" v-model="form" ref="crud" @row-update="rowUpdate" @row-save="rowSave" @row-del="rowDel"
       @search-change="searchChange" @search-reset="searchReset" @selection-change="selectionChange"
       @current-change="currentChange" @size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad">
-      <template slot="menuLeft">
-        <el-button type="danger" size="small" icon="el-icon-delete" plain v-if="permission.sms_delete"
-          @click="handleDelete">删 除
-        </el-button>
-      </template>
 
-      <template slot-scope="{ row, size, index }" slot="menu">
-        <el-button :size="size" type="text" icon="el-icon-video-play" v-if="userInfo.role_name.includes('admin')"
-          @click="handleDebug(row)">调试
-        </el-button>
-        <el-button :size="size" type="text" icon="el-icon-circle-check" v-if="permission.sms_enable"
-          @click.stop="handleEnable(row)">启用
-        </el-button>
-      </template>
-
-      <template slot-scope="{row, size}" slot="status">
-        <el-tag :size="size" :type="row.statusName == '是' ? 'success' : 'info'">{{ row.statusName }}</el-tag>
-      </template>
-      <template slot-scope="{row, size}" slot="category">
-        <el-tag :size="size">{{ row.categoryName }}</el-tag>
-      </template>
     </avue-crud>
-    <el-dialog title="手机短信发送调试" append-to-body :visible.sync="box" width="550px">
-      <avue-form :option="debugOption" v-model="debugForm" @submit="handleSend" />
-    </el-dialog>
+
   </basic-container>
 </template>
 
@@ -38,10 +16,8 @@
     getDetail,
     add,
     update,
-    remove,
-    enable,
-    send
-  } from "@/api/resource/sms"
+    remove
+  } from "@/api/resource/smsRecord"
   import {
     mapGetters
   } from "vuex"
@@ -66,115 +42,46 @@
           searchShow: true,
           searchMenuSpan: 3,
           menuWidth: 350,
-
+          menu: false,
           height: 'auto',
           calcHeight: 30,
           tip: false,
           border: true,
+          addBtn: false,
           index: true,
           viewBtn: true,
           selection: true,
           dialogWidth: 880,
           dialogClickModal: false,
-          column: [
-            // {
-            //     label: "分类",
-            //     type: "radio",
-            //     value: 1,
-            //     span: 24,
-            //     width: 100,
-            //     searchLabelWidth: 46,
-            //     row: true,
-            //     dicUrl: "/api/blade-system/dict/dictionary?code=sms",
-            //     props: {
-            //         label: "dictValue",
-            //         value: "dictKey"
-            //     },
-            //     dataType: "number",
-            //     slot: true,
-            //     prop: "category",
-            //     searchSpan: 4,
-            //     search: true,
-            //     rules: [{
-            //         required: true,
-            //         message: "请选择分类",
-            //         trigger: "blur"
-            //     }]
-            // },
-            {
-              label: "资源编号",
-              prop: "smsCode",
+          column: [{
+              // width: 100,
+              label: "电话号码",
+              prop: "phone",
+              search: true,
               span: 24,
-              width: 200,
+              align: "center",
+              slot: true,
+              addDisplay: false,
+              editDisplay: false,
+              viewDisplay: false,
+            }, {
+              label: "短信内容",
+              prop: "content",
+              span: 24,
+              width: 800,
               searchSpan: 4,
+              align: "center",
               search: true,
               rules: [{
                 required: true,
-                message: "请输入资源编号",
+                message: "请输入模版内容",
                 trigger: "blur"
               }]
             },
             {
+              // width: 100,
               label: "模版ID",
               prop: "templateId",
-              span: 24,
-              width: 200,
-              searchSpan: 4,
-              searchLabelWidth: 80,
-              search: true,
-              rules: [{
-                required: true,
-                message: "请输入模版ID",
-                trigger: "blur"
-              }]
-            },
-            {
-              label: "accessKey",
-              prop: "accessKey",
-              span: 24,
-              overHidden: true,
-              rules: [{
-                required: true,
-                message: "请输入accessKey",
-                trigger: "blur"
-              }],
-            },
-            {
-              label: "secretKey",
-              prop: "secretKey",
-              span: 24,
-              overHidden: true,
-              display: true,
-              hide: true,
-              rules: [{
-                required: true,
-                message: "请输入secretKey",
-                trigger: "blur"
-              }],
-            },
-            {
-              label: "regionId",
-              prop: "regionId",
-              span: 24,
-              value: "cn-hangzhou",
-              hide: true,
-              display: false
-            },
-            {
-              label: "短信签名",
-              prop: "signName",
-              span: 24,
-              width: 200,
-              rules: [{
-                required: true,
-                message: "请输入短信签名",
-                trigger: "blur"
-              }],
-            },
-            {
-              width: 100,
-              label: "是否启用",
-              prop: "status",
               span: 24,
               align: "center",
               slot: true,
@@ -183,11 +90,19 @@
               viewDisplay: false,
             },
             {
-              label: "备注",
-              prop: "remark",
+              label: "发送时间",
+              prop: "createTime",
               span: 24,
-              hide: true
+              // width: 200,
+              align: "center",
+              addDisplay: false,
+              rules: [{
+                required: true,
+                message: "请输入短信签名",
+                trigger: "blur"
+              }],
             },
+
           ]
         },
         data: [],
@@ -412,6 +327,7 @@
       },
       onLoad(page, params = {}) {
         this.loading = true
+        this.query.isDeleted = 0
         getList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
           const data = res.data.data
           this.page.total = data.total
diff --git a/src/views/resource/sms.vue b/src/views/sms/smsTemplate.vue
similarity index 77%
copy from src/views/resource/sms.vue
copy to src/views/sms/smsTemplate.vue
index 54037f1..bfd1371 100644
--- a/src/views/resource/sms.vue
+++ b/src/views/sms/smsTemplate.vue
@@ -11,16 +11,19 @@
       </template>
 
       <template slot-scope="{ row, size, index }" slot="menu">
-        <el-button :size="size" type="text" icon="el-icon-video-play" v-if="userInfo.role_name.includes('admin')"
+        <!--  <el-button :size="size" type="text" icon="el-icon-video-play" v-if="userInfo.role_name.includes('admin')"
           @click="handleDebug(row)">调试
-        </el-button>
-        <el-button :size="size" type="text" icon="el-icon-circle-check" v-if="permission.sms_enable"
+        </el-button> -->
+        <el-button :size="size" type="text" icon="el-icon-circle-check" v-if="row.status == 1"
           @click.stop="handleEnable(row)">启用
+        </el-button>
+        <el-button :size="size" type="text" icon="el-icon-circle-check" v-if="row.status == 2"
+          @click.stop="handleEnable(row)">禁用
         </el-button>
       </template>
 
       <template slot-scope="{row, size}" slot="status">
-        <el-tag :size="size" :type="row.statusName == '是' ? 'success' : 'info'">{{ row.statusName }}</el-tag>
+        <el-tag :size="size" :type="row.status == 1 ? 'info' : 'success'">{{ row.status == 1 ?'否':'是' }}</el-tag>
       </template>
       <template slot-scope="{row, size}" slot="category">
         <el-tag :size="size">{{ row.categoryName }}</el-tag>
@@ -38,10 +41,8 @@
     getDetail,
     add,
     update,
-    remove,
-    enable,
-    send
-  } from "@/api/resource/sms"
+    remove
+  } from "@/api/resource/smsTemplate"
   import {
     mapGetters
   } from "vuex"
@@ -65,8 +66,7 @@
           searchLabelWidth: 96,
           searchShow: true,
           searchMenuSpan: 3,
-          menuWidth: 350,
-
+          menuWidth: 300,
           height: 'auto',
           calcHeight: 30,
           tip: false,
@@ -76,117 +76,66 @@
           selection: true,
           dialogWidth: 880,
           dialogClickModal: false,
-          column: [
-            // {
-            //     label: "分类",
-            //     type: "radio",
-            //     value: 1,
-            //     span: 24,
-            //     width: 100,
-            //     searchLabelWidth: 46,
-            //     row: true,
-            //     dicUrl: "/api/blade-system/dict/dictionary?code=sms",
-            //     props: {
-            //         label: "dictValue",
-            //         value: "dictKey"
-            //     },
-            //     dataType: "number",
-            //     slot: true,
-            //     prop: "category",
-            //     searchSpan: 4,
-            //     search: true,
-            //     rules: [{
-            //         required: true,
-            //         message: "请选择分类",
-            //         trigger: "blur"
-            //     }]
-            // },
-            {
-              label: "资源编号",
-              prop: "smsCode",
-              span: 24,
+          column: [{
               width: 200,
-              searchSpan: 4,
-              search: true,
-              rules: [{
-                required: true,
-                message: "请输入资源编号",
-                trigger: "blur"
-              }]
-            },
-            {
-              label: "模版ID",
-              prop: "templateId",
-              span: 24,
-              width: 200,
-              searchSpan: 4,
-              searchLabelWidth: 80,
-              search: true,
-              rules: [{
-                required: true,
-                message: "请输入模版ID",
-                trigger: "blur"
-              }]
-            },
-            {
-              label: "accessKey",
-              prop: "accessKey",
-              span: 24,
-              overHidden: true,
-              rules: [{
-                required: true,
-                message: "请输入accessKey",
-                trigger: "blur"
-              }],
-            },
-            {
-              label: "secretKey",
-              prop: "secretKey",
-              span: 24,
-              overHidden: true,
-              display: true,
-              hide: true,
-              rules: [{
-                required: true,
-                message: "请输入secretKey",
-                trigger: "blur"
-              }],
-            },
-            {
-              label: "regionId",
-              prop: "regionId",
-              span: 24,
-              value: "cn-hangzhou",
-              hide: true,
-              display: false
-            },
-            {
-              label: "短信签名",
-              prop: "signName",
-              span: 24,
-              width: 200,
-              rules: [{
-                required: true,
-                message: "请输入短信签名",
-                trigger: "blur"
-              }],
-            },
-            {
-              width: 100,
-              label: "是否启用",
-              prop: "status",
+              label: "模板id",
+              prop: "id",
               span: 24,
               align: "center",
               slot: true,
               addDisplay: false,
               editDisplay: false,
               viewDisplay: false,
+            }, {
+              width: 100,
+              label: "标题",
+              prop: "title",
+              span: 24,
+              align: "center",
+              slot: true,
+              rules: [{
+                required: true,
+                message: "请输入标题",
+                trigger: "blur"
+              }],
+            }, {
+              label: "模版内容",
+              prop: "content",
+              type: 'textarea',
+              slot: true,
+              span: 24,
+              // width: 400,
+              searchSpan: 4,
+              align: "center",
+              search: true,
+              rules: [{
+                required: true,
+                message: "请输入模版内容",
+                trigger: "blur"
+              }]
             },
             {
+              label: "创建时间",
+              prop: "createTime",
+              span: 24,
+              width: 200,
+              align: "center",
+              addDisplay: false,
+              editDisplay: false,
+              rules: [{
+                required: true,
+                message: "请输入短信签名",
+                trigger: "blur"
+              }],
+            },
+
+            {
+              width: 100,
               label: "备注",
               prop: "remark",
               span: 24,
-              hide: true
+              align: "center",
+              slot: true,
             },
           ]
         },
@@ -325,7 +274,8 @@
             type: "warning"
           })
           .then(() => {
-            return enable(row.id)
+            row.status = row.status == 1 ? 2 : 1
+            return update(row)
           })
           .then(() => {
             this.onLoad(this.page)
diff --git a/src/views/system/auth.vue b/src/views/system/auth.vue
new file mode 100644
index 0000000..84af0c4
--- /dev/null
+++ b/src/views/system/auth.vue
@@ -0,0 +1,166 @@
+<template>
+  <basic-container>
+      <avue-crud :option="option" :table-loading="loading" :data="data" ref="crud" v-model="form"
+          :permission="permissionList" :before-open="beforeOpen" :page.sync="page" @search-change="searchChange"
+          @search-reset="searchReset" @current-change="currentChange" @size-change="sizeChange"
+          @refresh-change="refreshChange" @on-load="onLoad">
+      </avue-crud>
+  </basic-container>
+</template>
+
+<script>
+import { getApiList, getApiLogs } from "@/api/logs"
+import { mapGetters } from "vuex"
+
+export default {
+  data () {
+      return {
+          form: {},
+          selectionList: [],
+          query: {},
+          loading: true,
+          page: {
+              pageSize: 10,
+              currentPage: 1,
+              total: 0
+          },
+          option: {
+              labelWidth: 96,
+              searchLabelWidth: 72,
+              searchShow: true,
+              searchMenuSpan: 3,
+              menuWidth: 80,
+
+              height: 'auto',
+              calcHeight: 30,
+              tip: false,
+              border: true,
+              index: true,
+              viewBtn: true,
+              editBtn: false,
+              addBtn: false,
+              delBtn: false,
+              dialogType: 'drawer',
+              column: [
+                  {
+                      label: "应用id",
+                      prop: "applicationId",
+                      width: '120',
+                      searchSpan: 4,
+                      search: true,
+                      searchLabelWidth: 60,
+                  },
+                  {
+                      label: "服务id",
+                      prop: "serviceId",
+                      width: '120',
+                      searchSpan: 4,
+                      search: true,
+                      searchLabelWidth: 60,
+                  },
+                  {
+                      label: "服务host",
+                      prop: "serverHost",
+                      searchSpan: 4,
+                      searchLabelWidth: 86,
+                      search: true
+                  },
+                  {
+                      label: "服务ip",
+                      prop: "serverIp",
+                      width: '160'
+                  },
+                  {
+                      label: "软件环境",
+                      prop: "env",
+                      width: '80',
+                  },
+                  {
+                      label: "名称",
+                      prop: "title"
+                  },
+                  {
+                      label: "请求方法",
+                      prop: "method",
+                      width: '80'
+                  },
+                  {
+                      label: "认证接口",
+                      prop: "requestUri"
+                  },
+                  {
+                      label: "时间",
+                      prop: "createTime",
+                      width: '180'
+                  },
+                  {
+                      label: "用户代理",
+                      prop: "userAgent",
+                      span: 24,
+                      hide: true
+                  },
+                  {
+                      label: "请求数据",
+                      prop: "params",
+                      type: "textarea",
+                      span: 24,
+                      minRows: 2,
+                      hide: true
+                  }
+              ]
+          },
+          data: []
+      }
+  },
+
+  computed: {
+      ...mapGetters(["permission"]),
+      permissionList () {
+          return {
+              viewBtn: this.vaildData(this.permission.log_api_view, false)
+          }
+      }
+  },
+  methods: {
+      searchReset () {
+          this.query = {}
+          this.onLoad(this.page)
+      },
+      searchChange (params, done) {
+          this.query = params
+          this.page.currentPage = 1
+          this.onLoad(this.page, params)
+          done()
+      },
+      beforeOpen (done, type) {
+          if (["edit", "view"].includes(type)) {
+              getApiLogs(this.form.id).then(res => {
+                  this.form = res.data.data
+              })
+          }
+          done()
+      },
+      currentChange (currentPage) {
+          this.page.currentPage = currentPage
+      },
+      sizeChange (pageSize) {
+          this.page.pageSize = pageSize
+      },
+      refreshChange () {
+          this.onLoad(this.page, this.query)
+      },
+      onLoad (page, params = {}) {
+        params['type'] = 1;
+          this.loading = true
+          getApiList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
+              const data = res.data.data
+              this.page.total = data.total
+              this.data = data.records
+              this.loading = false
+          })
+      }
+  }
+}
+</script>
+
+<style></style>
diff --git a/src/views/system/user.vue b/src/views/system/user.vue
index 7a4d9ac..898b687 100644
--- a/src/views/system/user.vue
+++ b/src/views/system/user.vue
@@ -1,82 +1,82 @@
 <template>
-    <el-row>
-        <el-col :span="5">
-            <div class="box">
-                <el-scrollbar>
-                    <basic-container>
-                        <avue-tree :option="treeOption" :data="treeData" @node-click="nodeClick" />
-                    </basic-container>
-                </el-scrollbar>
-            </div>
-        </el-col>
-        <el-col :span="19">
-            <basic-container>
-                <avue-crud :option="option" :search.sync="search" :table-loading="loading" :data="data" ref="crud"
-                    v-model="form" :permission="permissionList" @row-del="rowDel" @row-update="rowUpdate"
-                    @row-save="rowSave" :before-open="beforeOpen" :page.sync="page" @search-change="searchChange"
-                    @search-reset="searchReset" @selection-change="selectionChange" @current-change="currentChange"
-                    @size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad">
-                    <template slot="menuLeft">
-                        <el-button type="danger" size="small" plain icon="el-icon-delete" v-if="permission.user_delete"
-                            @click="handleDelete">删 除
-                        </el-button>
-                        <el-button type="info" size="small" plain v-if="permission.user_role" icon="el-icon-user"
-                            @click="handleGrant">角色配置
-                        </el-button>
-                        <el-button type="info" size="small" plain v-if="permission.user_reset" icon="el-icon-refresh"
-                            @click="handleReset">密码重置
-                        </el-button>
-                        <!-- <el-button type="info"
+  <el-row>
+    <el-col :span="5">
+      <div class="box">
+        <el-scrollbar>
+          <basic-container>
+            <avue-tree :option="treeOption" :data="treeData" @node-click="nodeClick" />
+          </basic-container>
+        </el-scrollbar>
+      </div>
+    </el-col>
+    <el-col :span="19">
+      <basic-container>
+        <avue-crud :option="option" :search.sync="search" :table-loading="loading" :data="data" ref="crud"
+          v-model="form" :permission="permissionList" @row-del="rowDel" @row-update="rowUpdate" @row-save="rowSave"
+          :before-open="beforeOpen" :page.sync="page" @search-change="searchChange" @search-reset="searchReset"
+          @selection-change="selectionChange" @current-change="currentChange" @size-change="sizeChange"
+          @refresh-change="refreshChange" @on-load="onLoad">
+          <template slot="menuLeft">
+            <el-button type="danger" size="small" plain icon="el-icon-delete" v-if="permission.user_delete"
+              @click="handleDelete">删 除
+            </el-button>
+            <el-button type="info" size="small" plain v-if="permission.user_role" icon="el-icon-user"
+              @click="handleGrant">角色配置
+            </el-button>
+            <el-button type="info" size="small" plain v-if="permission.user_reset" icon="el-icon-refresh"
+              @click="handleReset">密码重置
+            </el-button>
+            <!-- <el-button type="info"
                          size="small"
                          plain
                          v-if="userInfo.role_name.includes('admin')"
                          icon="el-icon-setting"
                          @click="handlePlatform">平台配置
               </el-button> -->
-                        <el-button type="info" size="small" plain v-if="userInfo.role_name.includes('admin')"
-                            icon="el-icon-coordinate" @click="handleLock">账号解封
-                        </el-button>
-                        <el-button type="success" size="small" plain v-if="userInfo.role_name.includes('admin')"
-                            icon="el-icon-upload2" @click="handleImport">导入
-                        </el-button>
-                        <el-button type="warning" size="small" plain v-if="userInfo.role_name.includes('admin')"
-                            icon="el-icon-download" @click="handleExport">导出
-                        </el-button>
-                    </template>
-                    <template slot-scope="{row}" slot="tenantName">
-                        <el-tag>{{ row.tenantName }}</el-tag>
-                    </template>
-                    <template slot-scope="{row}" slot="roleName">
-                        <el-tag>{{ row.roleName }}</el-tag>
-                    </template>
-                    <template slot-scope="{row}" slot="deptName">
-                        <el-tag>{{ row.deptName }}</el-tag>
-                    </template>
-                    <template slot-scope="{row}" slot="userTypeName">
-                        <el-tag>{{ row.userTypeName }}</el-tag>
-                    </template>
-                </avue-crud>
-                <el-dialog title="用户角色配置" append-to-body :visible.sync="roleBox" width="345px">
+            <el-button type="info" size="small" plain v-if="userInfo.role_name.includes('admin')"
+              icon="el-icon-coordinate" @click="handleLock">账号解封
+            </el-button>
+            <el-button type="success" size="small" plain v-if="userInfo.role_name.includes('admin')"
+              icon="el-icon-upload2" @click="handleImport">导入
+            </el-button>
+            <el-button type="warning" size="small" plain v-if="userInfo.role_name.includes('admin')"
+              icon="el-icon-download" @click="handleExport">导出
+            </el-button>
+          </template>
+          <template slot-scope="{row}" slot="tenantName">
+            <el-tag>{{ row.tenantName }}</el-tag>
+          </template>
+          <template slot-scope="{row}" slot="roleName">
+            <el-tag>{{ row.roleName }}</el-tag>
+          </template>
+          <template slot-scope="{row}" slot="deptName">
+            <el-tag>{{ row.deptName }}</el-tag>
+          </template>
+          <template slot-scope="{row}" slot="userTypeName">
+            <el-tag>{{ row.userTypeName }}</el-tag>
+          </template>
+        </avue-crud>
+        <el-dialog title="用户角色配置" append-to-body :visible.sync="roleBox" width="345px">
 
-                    <el-tree :data="roleGrantList" show-checkbox check-strictly default-expand-all node-key="id"
-                        ref="treeRole" :default-checked-keys="roleTreeObj" :props="props">
-                    </el-tree>
+          <el-tree :data="roleGrantList" show-checkbox check-strictly default-expand-all node-key="id" ref="treeRole"
+            :default-checked-keys="roleTreeObj" :props="props">
+          </el-tree>
 
-                    <span slot="footer" class="dialog-footer">
-                        <el-button @click="roleBox = false">取 消</el-button>
-                        <el-button type="primary" @click="submitRole">确 定</el-button>
-                    </span>
-                </el-dialog>
-                <el-dialog title="用户数据导入" append-to-body :visible.sync="excelBox" width="555px">
-                    <avue-form :option="excelOption" v-model="excelForm" :upload-after="uploadAfter">
-                        <template slot="excelTemplate">
-                            <el-button type="primary" @click="handleTemplate">
-                                点击下载<i class="el-icon-download el-icon--right"></i>
-                            </el-button>
-                        </template>
-                    </avue-form>
-                </el-dialog>
-                <!-- <el-dialog title="用户平台配置"
+          <span slot="footer" class="dialog-footer">
+            <el-button @click="roleBox = false">取 消</el-button>
+            <el-button type="primary" @click="submitRole">确 定</el-button>
+          </span>
+        </el-dialog>
+        <el-dialog title="用户数据导入" append-to-body :visible.sync="excelBox" width="555px">
+          <avue-form :option="excelOption" v-model="excelForm" :upload-after="uploadAfter">
+            <template slot="excelTemplate">
+              <el-button type="primary" @click="handleTemplate">
+                点击下载<i class="el-icon-download el-icon--right"></i>
+              </el-button>
+            </template>
+          </avue-form>
+        </el-dialog>
+        <!-- <el-dialog title="用户平台配置"
                      append-to-body
                      :visible.sync="platformBox">
             <avue-crud :option="platformOption"
@@ -105,13 +105,13 @@
               </template>
             </avue-crud>
           </el-dialog> -->
-            </basic-container>
-        </el-col>
-    </el-row>
+      </basic-container>
+    </el-col>
+  </el-row>
 </template>
 
 <script>
-import {
+  import {
     getList,
     getUser,
     getUserPlatform,
@@ -122,891 +122,892 @@
     grant,
     resetPassword,
     unlock
-} from "@/api/system/user"
-import {
+  } from "@/api/system/user"
+  import {
     exportBlob
-} from "@/api/common"
-import {
+  } from "@/api/common"
+  import {
     getDeptTree,
     getDeptLazyTree
-} from "@/api/system/dept"
-import {
+  } from "@/api/system/dept"
+  import {
     getRoleTree
-} from "@/api/system/role"
-import {
+  } from "@/api/system/role"
+  import {
     getPostList
-} from "@/api/system/post"
-import {
+  } from "@/api/system/post"
+  import {
     mapGetters
-} from "vuex"
-import website from '@/config/website'
-import {
+  } from "vuex"
+  import website from '@/config/website'
+  import {
     getToken
-} from '@/util/auth'
-import {
+  } from '@/util/auth'
+  import {
     downloadXls
-} from "@/util/util"
-import {
+  } from "@/util/util"
+  import {
     dateNow
-} from "@/util/date"
-import NProgress from 'nprogress'
-import 'nprogress/nprogress.css'
-import func from "@/util/func"
+  } from "@/util/date"
+  import NProgress from 'nprogress'
+  import 'nprogress/nprogress.css'
+  import func from "@/util/func"
 
-export default {
-    data () {
-        const validatePass = (rule, value, callback) => {
-            if (value === '') {
-                callback(new Error('请输入密码'))
-            } else {
-                callback()
-            }
+  export default {
+    data() {
+      const validatePass = (rule, value, callback) => {
+        if (value === '') {
+          callback(new Error('请输入密码'))
+        } else {
+          callback()
         }
-        const validatePass2 = (rule, value, callback) => {
-            if (value === '') {
-                callback(new Error('请再次输入密码'))
-            } else if (value !== this.form.password) {
-                callback(new Error('两次输入密码不一致!'))
-            } else {
-                callback()
-            }
+      }
+      const validatePass2 = (rule, value, callback) => {
+        if (value === '') {
+          callback(new Error('请再次输入密码'))
+        } else if (value !== this.form.password) {
+          callback(new Error('两次输入密码不一致!'))
+        } else {
+          callback()
         }
-        return {
-            form: {},
-            search: {},
-            roleBox: false,
-            excelBox: false,
-            platformBox: false,
-            initFlag: true,
-            selectionList: [],
-            query: {},
-            loading: true,
-            platformLoading: false,
-            page: {
-                pageSize: 10,
-                currentPage: 1,
-                total: 0
-            },
-            platformPage: {
-                pageSize: 10,
-                currentPage: 1,
-                total: 0
-            },
-            init: {
-                roleTree: [],
-                deptTree: [],
-            },
-            props: {
-                label: "title",
-                value: "key"
-            },
-            roleGrantList: [],
-            roleTreeObj: [],
-            treeDeptId: '',
-            treeData: [],
-            treeOption: {
-                nodeKey: 'id',
-                lazy: true,
-                treeLoad: function (node, resolve) {
-                    const parentId = (node.level === 0) ? 0 : node.data.id
-                    getDeptLazyTree(parentId).then(res => {
-                        resolve(res.data.data.map(item => {
-                            return {
-                                ...item,
-                                leaf: !item.hasChildren
-                            }
-                        }))
-                    })
-                },
-                addBtn: false,
-                menu: false,
-                size: 'small',
-                props: {
-                    labelText: '标题',
-                    label: 'title',
-                    value: 'value',
-                    children: 'children'
+      }
+      return {
+        form: {},
+        search: {},
+        roleBox: false,
+        excelBox: false,
+        platformBox: false,
+        initFlag: true,
+        selectionList: [],
+        query: {},
+        loading: true,
+        platformLoading: false,
+        page: {
+          pageSize: 10,
+          currentPage: 1,
+          total: 0
+        },
+        platformPage: {
+          pageSize: 10,
+          currentPage: 1,
+          total: 0
+        },
+        init: {
+          roleTree: [],
+          deptTree: [],
+        },
+        props: {
+          label: "title",
+          value: "key"
+        },
+        roleGrantList: [],
+        roleTreeObj: [],
+        treeDeptId: '',
+        treeData: [],
+        treeOption: {
+          nodeKey: 'id',
+          lazy: true,
+          treeLoad: function(node, resolve) {
+            const parentId = (node.level === 0) ? 0 : node.data.id
+            getDeptLazyTree(parentId).then(res => {
+              resolve(res.data.data.map(item => {
+                return {
+                  ...item,
+                  leaf: !item.hasChildren
                 }
+              }))
+            })
+          },
+          addBtn: false,
+          menu: false,
+          size: 'small',
+          props: {
+            labelText: '标题',
+            label: 'title',
+            value: 'value',
+            children: 'children'
+          }
+        },
+        option: {
+          height: 'auto',
+          calcHeight: 80,
+          tip: false,
+          searchShow: true,
+          searchMenuSpan: 6,
+          border: true,
+          index: true,
+          selection: true,
+          viewBtn: true,
+          dialogType: 'drawer',
+          dialogClickModal: false,
+          column: [{
+              label: "登录账号",
+              prop: "account",
+              search: true,
+              searchLabelWidth: 76,
+              display: false
             },
-            option: {
-                height: 'auto',
-                calcHeight: 80,
-                tip: false,
-                searchShow: true,
-                searchMenuSpan: 6,
-                border: true,
-                index: true,
-                selection: true,
-                viewBtn: true,
-                dialogType: 'drawer',
-                dialogClickModal: false,
-                column: [{
-                    label: "登录账号",
-                    prop: "account",
-                    search: true,
-                    searchLabelWidth: 76,
-                    display: false
-                },
+            // {
+            //   label: "所属租户",
+            //   prop: "tenantName",
+            //   slot: true,
+            //   display: false
+            // },
+            {
+              label: "用户姓名",
+              prop: "realName",
+              search: true,
+              display: false
+            },
+            {
+              label: "所属角色",
+              prop: "roleName",
+              slot: true,
+              display: false
+            },
+            {
+              label: "所属部门",
+              prop: "deptName",
+              slot: true,
+              display: false
+            },
+            // {
+            //   label: "用户平台",
+            //   prop: "userTypeName",
+            //   slot: true,
+            //   display: false
+            // },
+            // {
+            //   label: "用户平台",
+            //   type: "select",
+            //   dicUrl: "/api/blade-system/dict/dictionary?code=user_type",
+            //   props: {
+            //     label: "dictValue",
+            //     value: "dictKey"
+            //   },
+            //   dataType: "number",
+            //   search: true,
+            //   hide: true,
+            //   display: false,
+            //   prop: "userType",
+            //   rules: [{
+            //     required: true,
+            //     message: "请选择用户平台",
+            //     trigger: "blur"
+            //   }]
+            // },
+          ],
+          group: [{
+              label: '基础信息',
+              prop: 'baseInfo',
+              icon: 'el-icon-user-solid',
+              column: [
                 // {
                 //   label: "所属租户",
-                //   prop: "tenantName",
-                //   slot: true,
-                //   display: false
+                //   prop: "tenantId",
+                //   type: "tree",
+                //   dicUrl: "/api/blade-system/tenant/select",
+                //   props: {
+                //     label: "tenantName",
+                //     value: "tenantId"
+                //   },
+                //   hide: !website.tenantMode,
+                //   addDisplay: website.tenantMode,
+                //   editDisplay: website.tenantMode,
+                //   viewDisplay: website.tenantMode,
+                //   rules: [{
+                //     required: true,
+                //     message: "请输入所属租户",
+                //     trigger: "click"
+                //   }],
+                //   span: 24,
                 // },
                 {
-                    label: "用户姓名",
-                    prop: "realName",
-                    search: true,
-                    display: false
+                  label: "登录账号",
+                  prop: "account",
+                  rules: [{
+                    required: true,
+                    message: "请输入登录账号",
+                    trigger: "blur"
+                  }],
+                },
+                // {
+                //   label: "用户平台",
+                //   type: "select",
+                //   dicUrl: "/api/blade-system/dict/dictionary?code=user_type",
+                //   props: {
+                //     label: "dictValue",
+                //     value: "dictKey"
+                //   },
+                //   dataType: "number",
+                //   slot: true,
+                //   prop: "userType",
+                //   rules: [{
+                //     required: true,
+                //     message: "请选择用户平台",
+                //     trigger: "blur"
+                //   }]
+                // },
+                {
+                  label: '密码',
+                  prop: 'password',
+                  hide: true,
+                  editDisplay: false,
+                  viewDisplay: false,
+                  rules: [{
+                    required: true,
+                    validator: validatePass,
+                    trigger: 'blur'
+                  }]
                 },
                 {
-                    label: "所属角色",
-                    prop: "roleName",
-                    slot: true,
-                    display: false
+                  label: '确认密码',
+                  prop: 'password2',
+                  hide: true,
+                  editDisplay: false,
+                  viewDisplay: false,
+                  rules: [{
+                    required: true,
+                    validator: validatePass2,
+                    trigger: 'blur'
+                  }]
                 },
-                {
-                    label: "所属部门",
-                    prop: "deptName",
-                    slot: true,
-                    display: false
-                },
-                    // {
-                    //   label: "用户平台",
-                    //   prop: "userTypeName",
-                    //   slot: true,
-                    //   display: false
-                    // },
-                    // {
-                    //   label: "用户平台",
-                    //   type: "select",
-                    //   dicUrl: "/api/blade-system/dict/dictionary?code=user_type",
-                    //   props: {
-                    //     label: "dictValue",
-                    //     value: "dictKey"
-                    //   },
-                    //   dataType: "number",
-                    //   search: true,
-                    //   hide: true,
-                    //   display: false,
-                    //   prop: "userType",
-                    //   rules: [{
-                    //     required: true,
-                    //     message: "请选择用户平台",
-                    //     trigger: "blur"
-                    //   }]
-                    // },
-                ],
-                group: [{
-                    label: '基础信息',
-                    prop: 'baseInfo',
-                    icon: 'el-icon-user-solid',
-                    column: [
-                        // {
-                        //   label: "所属租户",
-                        //   prop: "tenantId",
-                        //   type: "tree",
-                        //   dicUrl: "/api/blade-system/tenant/select",
-                        //   props: {
-                        //     label: "tenantName",
-                        //     value: "tenantId"
-                        //   },
-                        //   hide: !website.tenantMode,
-                        //   addDisplay: website.tenantMode,
-                        //   editDisplay: website.tenantMode,
-                        //   viewDisplay: website.tenantMode,
-                        //   rules: [{
-                        //     required: true,
-                        //     message: "请输入所属租户",
-                        //     trigger: "click"
-                        //   }],
-                        //   span: 24,
-                        // },
-                        {
-                            label: "登录账号",
-                            prop: "account",
-                            rules: [{
-                                required: true,
-                                message: "请输入登录账号",
-                                trigger: "blur"
-                            }],
-                        },
-                        // {
-                        //   label: "用户平台",
-                        //   type: "select",
-                        //   dicUrl: "/api/blade-system/dict/dictionary?code=user_type",
-                        //   props: {
-                        //     label: "dictValue",
-                        //     value: "dictKey"
-                        //   },
-                        //   dataType: "number",
-                        //   slot: true,
-                        //   prop: "userType",
-                        //   rules: [{
-                        //     required: true,
-                        //     message: "请选择用户平台",
-                        //     trigger: "blur"
-                        //   }]
-                        // },
-                        {
-                            label: '密码',
-                            prop: 'password',
-                            hide: true,
-                            editDisplay: false,
-                            viewDisplay: false,
-                            rules: [{
-                                required: true,
-                                validator: validatePass,
-                                trigger: 'blur'
-                            }]
-                        },
-                        {
-                            label: '确认密码',
-                            prop: 'password2',
-                            hide: true,
-                            editDisplay: false,
-                            viewDisplay: false,
-                            rules: [{
-                                required: true,
-                                validator: validatePass2,
-                                trigger: 'blur'
-                            }]
-                        },
-                    ]
-                },
-                {
-                    label: '详细信息',
-                    prop: 'detailInfo',
-                    icon: 'el-icon-s-order',
-                    column: [{
-                        label: "用户昵称",
-                        prop: "name",
-                        hide: true,
-                        rules: [{
-                            required: true,
-                            message: "请输入用户昵称",
-                            trigger: "blur"
-                        }]
-                    },
-                    {
-                        label: "用户姓名",
-                        prop: "realName",
-                        rules: [{
-                            required: true,
-                            message: "请输入用户姓名",
-                            trigger: "blur"
-                        }, {
-                            min: 2,
-                            max: 5,
-                            message: '姓名长度在2到5个字符'
-                        }]
-                    },
-                    {
-                        label: "手机号码",
-                        prop: "phone",
-                        overHidden: true
-                    },
-                    {
-                        label: "电子邮箱",
-                        prop: "email",
-                        hide: true,
-                        overHidden: true
-                    },
-                    {
-                        label: "用户性别",
-                        prop: "sex",
-                        type: "select",
-                        dicData: [{
-                            label: "男",
-                            value: 1
-                        },
-                        {
-                            label: "女",
-                            value: 2
-                        },
-                        {
-                            label: "未知",
-                            value: 3
-                        }
-                        ],
-                        hide: true
-                    },
-                    {
-                        label: "用户生日",
-                        type: "date",
-                        prop: "birthday",
-                        format: "yyyy-MM-dd hh:mm:ss",
-                        valueFormat: "yyyy-MM-dd hh:mm:ss",
-                        hide: true
-                    },
-                    {
-                        label: "账号状态",
-                        prop: "statusName",
-                        hide: true,
-                        display: false
-                    }
-                    ]
-                },
-                {
-                    label: '职责信息',
-                    prop: 'dutyInfo',
-                    icon: 'el-icon-s-custom',
-                    column: [
-                        // {
-                        //   label: "用户编号",
-                        //   prop: "code",
-                        // },
-                        {
-                            label: "所属角色",
-                            prop: "roleId",
-                            type: "tree",
-                            multiple: true,
-                            checkStrictly: true,
-                            leafOnly: false,
-                            dicData: [],
-                            props: {
-                                label: "title",
-                                value:"id"
-                            },
-                            rules: [{
-                                required: true,
-                                message: "请选择所属角色",
-                                trigger: "click"
-                            }]
-                        },
-                        {
-                            label: "所属部门",
-                            prop: "deptId",
-                            type: "tree",
-                            multiple: true,
-                            leafOnly: false,
-                            dicData: [],
-                            // dataType: "string",
-                            props: {
-                                label: "title",
-                                value: "id"
-                            },
-                            checkStrictly: true,
-                            slot: true,
-                            span: 12,
-                            rules: [{
-                                required: true,
-                                message: "请选择所属部门",
-                                trigger: "click"
-                            }]
-                        },
-                        // {
-                        //   label: "所属岗位",
-                        //   prop: "postId",
-                        //   type: "tree",
-                        //   multiple: true,
-                        //   dicData: [],
-                        //   props: {
-                        //     label: "postName",
-                        //     value: "id"
-                        //   },
-                        //   rules: [{
-                        //     required: true,
-                        //     message: "请选择所属岗位",
-                        //     trigger: "click"
-                        //   }],
-                        // },
-                    ]
-                },
-                ]
+              ]
             },
-            data: [],
-            platformQuery: {},
-            platformSelectionList: [],
-            platformData: [],
-            platformForm: {},
-            platformOption: {
-                tip: false,
-                searchShow: true,
-                searchMenuSpan: 6,
-                border: true,
-                index: true,
-                selection: true,
-                viewBtn: true,
-                dialogClickModal: false,
-                menuWidth: 120,
-                editBtnText: '配置',
-                column: [{
-                    label: "登录账号",
-                    prop: "account",
-                    search: true,
-                    display: false
+            {
+              label: '详细信息',
+              prop: 'detailInfo',
+              icon: 'el-icon-s-order',
+              column: [{
+                  label: "用户昵称",
+                  prop: "name",
+                  hide: true,
+                  rules: [{
+                    required: true,
+                    message: "请输入用户昵称",
+                    trigger: "blur"
+                  }]
                 },
                 {
-                    label: "所属租户",
-                    prop: "tenantName",
-                    slot: true,
-                    display: false
+                  label: "用户姓名",
+                  prop: "realName",
+                  rules: [{
+                    required: true,
+                    message: "请输入用户姓名",
+                    trigger: "blur"
+                  }, {
+                    min: 2,
+                    max: 5,
+                    message: '姓名长度在2到5个字符'
+                  }]
                 },
                 {
-                    label: "用户姓名",
-                    prop: "realName",
-                    search: true,
-                    display: false
+                  label: "手机号码",
+                  prop: "phone",
+                  overHidden: true
                 },
                 {
-                    label: "用户平台",
-                    prop: "userTypeName",
-                    slot: true,
-                    display: false
+                  label: "电子邮箱",
+                  prop: "email",
+                  hide: true,
+                  overHidden: true
                 },
                 {
-                    label: "用户平台",
-                    type: "select",
-                    dicUrl: "/api/blade-system/dict/dictionary?code=user_type",
-                    props: {
-                        label: "dictValue",
-                        value: "dictKey"
-                    },
-                    dataType: "number",
-                    search: true,
-                    hide: true,
-                    display: false,
-                    prop: "userType",
-                    rules: [{
-                        required: true,
-                        message: "请选择用户平台",
-                        trigger: "blur"
-                    }]
-                },
-                {
-                    label: "用户拓展",
-                    prop: "userExt",
-                    type: "textarea",
-                    minRows: 8,
-                    span: 24,
-                    overHidden: true,
-                    row: true,
-                    hide: true,
-                },
-                ],
-            },
-            excelForm: {},
-            excelOption: {
-                submitBtn: false,
-                emptyBtn: false,
-                column: [{
-                    label: '模板上传',
-                    prop: 'excelFile',
-                    type: 'upload',
-                    drag: true,
-                    loadText: '模板上传中,请稍等',
-                    span: 24,
-                    propsHttp: {
-                        res: 'data'
-                    },
-                    tip: '请上传 .xls,.xlsx 标准格式文件',
-                    action: "/api/blade-system/user/import-user"
-                },
-                {
-                    label: "数据覆盖",
-                    prop: "isCovered",
-                    type: "switch",
-                    align: "center",
-                    width: 80,
-                    dicData: [{
-                        label: "否",
-                        value: 0
+                  label: "用户性别",
+                  prop: "sex",
+                  type: "select",
+                  dicData: [{
+                      label: "男",
+                      value: 1
                     },
                     {
-                        label: "是",
-                        value: 1
+                      label: "女",
+                      value: 2
+                    },
+                    {
+                      label: "未知",
+                      value: 3
                     }
-                    ],
-                    value: 0,
-                    slot: true,
-                    rules: [{
-                        required: true,
-                        message: "请选择是否覆盖",
-                        trigger: "blur"
-                    }]
+                  ],
+                  hide: true
                 },
                 {
-                    label: '模板下载',
-                    prop: 'excelTemplate',
-                    formslot: true,
-                    span: 24,
+                  label: "用户生日",
+                  type: "date",
+                  prop: "birthday",
+                  format: "yyyy-MM-dd hh:mm:ss",
+                  valueFormat: "yyyy-MM-dd hh:mm:ss",
+                  hide: true
+                },
+                {
+                  label: "账号状态",
+                  prop: "statusName",
+                  hide: true,
+                  display: false
                 }
-                ]
+              ]
+            },
+            {
+              label: '职责信息',
+              prop: 'dutyInfo',
+              icon: 'el-icon-s-custom',
+              column: [
+                // {
+                //   label: "用户编号",
+                //   prop: "code",
+                // },
+                {
+                  label: "所属角色",
+                  prop: "roleId",
+                  type: "tree",
+                  multiple: true,
+                  checkStrictly: true,
+                  leafOnly: false,
+                  dicData: [],
+                  props: {
+                    label: "title",
+                    value: "id"
+                  },
+                  rules: [{
+                    required: true,
+                    message: "请选择所属角色",
+                    trigger: "click"
+                  }]
+                },
+                {
+                  label: "所属部门",
+                  prop: "deptId",
+                  type: "tree",
+                  multiple: true,
+                  leafOnly: false,
+                  dicData: [],
+                  // dataType: "string",
+                  props: {
+                    label: "title",
+                    value: "id"
+                  },
+                  checkStrictly: true,
+                  slot: true,
+                  span: 12,
+                  rules: [{
+                    required: true,
+                    message: "请选择所属部门",
+                    trigger: "click"
+                  }]
+                },
+                // {
+                //   label: "所属岗位",
+                //   prop: "postId",
+                //   type: "tree",
+                //   multiple: true,
+                //   dicData: [],
+                //   props: {
+                //     label: "postName",
+                //     value: "id"
+                //   },
+                //   rules: [{
+                //     required: true,
+                //     message: "请选择所属岗位",
+                //     trigger: "click"
+                //   }],
+                // },
+              ]
+            },
+          ]
+        },
+        data: [],
+        platformQuery: {},
+        platformSelectionList: [],
+        platformData: [],
+        platformForm: {},
+        platformOption: {
+          tip: false,
+          searchShow: true,
+          searchMenuSpan: 6,
+          border: true,
+          index: true,
+          selection: true,
+          viewBtn: true,
+          dialogClickModal: false,
+          menuWidth: 120,
+          editBtnText: '配置',
+          column: [{
+              label: "登录账号",
+              prop: "account",
+              search: true,
+              display: false
+            },
+            {
+              label: "所属租户",
+              prop: "tenantName",
+              slot: true,
+              display: false
+            },
+            {
+              label: "用户姓名",
+              prop: "realName",
+              search: true,
+              display: false
+            },
+            {
+              label: "用户平台",
+              prop: "userTypeName",
+              slot: true,
+              display: false
+            },
+            {
+              label: "用户平台",
+              type: "select",
+              dicUrl: "/api/blade-system/dict/dictionary?code=user_type",
+              props: {
+                label: "dictValue",
+                value: "dictKey"
+              },
+              dataType: "number",
+              search: true,
+              hide: true,
+              display: false,
+              prop: "userType",
+              rules: [{
+                required: true,
+                message: "请选择用户平台",
+                trigger: "blur"
+              }]
+            },
+            {
+              label: "用户拓展",
+              prop: "userExt",
+              type: "textarea",
+              minRows: 8,
+              span: 24,
+              overHidden: true,
+              row: true,
+              hide: true,
+            },
+          ],
+        },
+        excelForm: {},
+        excelOption: {
+          submitBtn: false,
+          emptyBtn: false,
+          column: [{
+              label: '模板上传',
+              prop: 'excelFile',
+              type: 'upload',
+              drag: true,
+              loadText: '模板上传中,请稍等',
+              span: 24,
+              propsHttp: {
+                res: 'data'
+              },
+              tip: '请上传 .xls,.xlsx 标准格式文件',
+              action: "/api/blade-system/user/import-user"
+            },
+            {
+              label: "数据覆盖",
+              prop: "isCovered",
+              type: "switch",
+              align: "center",
+              width: 80,
+              dicData: [{
+                  label: "否",
+                  value: 0
+                },
+                {
+                  label: "是",
+                  value: 1
+                }
+              ],
+              value: 0,
+              slot: true,
+              rules: [{
+                required: true,
+                message: "请选择是否覆盖",
+                trigger: "blur"
+              }]
+            },
+            {
+              label: '模板下载',
+              prop: 'excelTemplate',
+              formslot: true,
+              span: 24,
             }
+          ]
         }
+      }
     },
     watch: {
-        'form.tenantId' () {
-            if (this.form.tenantId !== '' && this.initFlag) {
-                this.initData(this.form.tenantId)
-            }
-        },
-        'excelForm.isCovered' () {
-            if (this.excelForm.isCovered !== '') {
-                const column = this.findObject(this.excelOption.column, "excelFile")
-                column.action = `/api/blade-system/user/import-user?isCovered=${this.excelForm.isCovered}`
-            }
+      'form.tenantId'() {
+        if (this.form.tenantId !== '' && this.initFlag) {
+          this.initData(this.form.tenantId)
         }
+      },
+      'excelForm.isCovered'() {
+        if (this.excelForm.isCovered !== '') {
+          const column = this.findObject(this.excelOption.column, "excelFile")
+          column.action = `/api/blade-system/user/import-user?isCovered=${this.excelForm.isCovered}`
+        }
+      }
     },
     computed: {
-        ...mapGetters(["userInfo", "permission"]),
-        permissionList () {
-            return {
-                addBtn: this.vaildData(this.permission.user_add, false),
-                viewBtn: this.vaildData(this.permission.user_view, false),
-                delBtn: this.vaildData(this.permission.user_delete, false),
-                editBtn: this.vaildData(this.permission.user_edit, false)
-            }
-        },
-        platformPermissionList () {
-            return {
-                addBtn: false,
-                viewBtn: false,
-                delBtn: false,
-                editBtn: this.vaildData(this.permission.user_edit, false)
-            }
-        },
-        ids () {
-            let ids = []
-            this.selectionList.forEach(ele => {
-                ids.push(ele.id)
-            })
-            return ids.join(",")
-        },
-    },
-    mounted () {
-        // 非租户模式默认加载管理组数据
-        if (!website.tenantMode) {
-            this.initData(website.tenantId)
+      ...mapGetters(["userInfo", "permission"]),
+      permissionList() {
+        return {
+          addBtn: this.vaildData(this.permission.user_add, false),
+          viewBtn: this.vaildData(this.permission.user_view, false),
+          delBtn: this.vaildData(this.permission.user_delete, false),
+          editBtn: this.vaildData(this.permission.user_edit, false)
         }
+      },
+      platformPermissionList() {
+        return {
+          addBtn: false,
+          viewBtn: false,
+          delBtn: false,
+          editBtn: this.vaildData(this.permission.user_edit, false)
+        }
+      },
+      ids() {
+        let ids = []
+        this.selectionList.forEach(ele => {
+          ids.push(ele.id)
+        })
+        return ids.join(",")
+      },
     },
-    created () {
+    mounted() {
+      // 非租户模式默认加载管理组数据
+      if (!website.tenantMode) {
         this.initData(website.tenantId)
+      }
+    },
+    created() {
+      this.initData(website.tenantId)
     },
     methods: {
-        nodeClick (data) {
-            this.treeDeptId = data.id
-            this.page.currentPage = 1
+      nodeClick(data) {
+        this.treeDeptId = data.id
+        this.page.currentPage = 1
+        this.onLoad(this.page)
+      },
+      initData(tenantId) {
+        getRoleTree(tenantId).then(res => {
+          const column = this.findObject(this.option.group, "roleId")
+          column.dicData = res.data.data
+        })
+        getDeptTree(tenantId).then(res => {
+          const column = this.findObject(this.option.group, "deptId")
+          column.dicData = res.data.data
+        })
+        // getPostList(tenantId).then(res => {
+        //   const column = this.findObject(this.option.group, "postId");
+        //   column.dicData = res.data.data;
+        // });
+      },
+      submitRole() {
+        const roleList = this.$refs.treeRole.getCheckedKeys().join(",")
+        grant(this.ids, roleList).then(() => {
+          this.roleBox = false
+          this.$message({
+            type: "success",
+            message: "操作成功!"
+          })
+          this.onLoad(this.page)
+        })
+      },
+      rowSave(row, done, loading) {
+        row['tenantId'] = "000000"
+        row['userType'] = 1
+        row.deptId = func.join(row.deptId)
+        row.roleId = func.join(row.roleId)
+        // row.postId = func.join(row.postId)
+        add(row).then(() => {
+          this.initFlag = false
+          this.onLoad(this.page)
+          this.$message({
+            type: "success",
+            message: "操作成功!"
+          })
+          done()
+        }, error => {
+          window.console.log(error)
+          loading()
+        })
+      },
+      rowUpdate(row, index, done, loading) {
+        row['tenantId'] = "000000"
+        row['userType'] = 1
+        row.deptId = func.join(row.deptId)
+        row.roleId = func.join(row.roleId)
+        // row.postId = func.join(row.postId)
+        update(row).then(() => {
+          this.initFlag = false
+          this.onLoad(this.page)
+          this.$message({
+            type: "success",
+            message: "操作成功!"
+          })
+          done()
+        }, error => {
+          window.console.log(error)
+          loading()
+        })
+      },
+      rowDel(row) {
+        this.$confirm("确定将选择数据删除?", {
+            confirmButtonText: "确定",
+            cancelButtonText: "取消",
+            type: "warning"
+          })
+          .then(() => {
+            return remove(row.id)
+          })
+          .then(() => {
             this.onLoad(this.page)
-        },
-        initData (tenantId) {
-            getRoleTree(tenantId).then(res => {
-                const column = this.findObject(this.option.group, "roleId")
-                column.dicData = res.data.data
+            this.$message({
+              type: "success",
+              message: "操作成功!"
             })
-            getDeptTree(tenantId).then(res => {
-                const column = this.findObject(this.option.group, "deptId")
-                column.dicData = res.data.data
-            })
-            // getPostList(tenantId).then(res => {
-            //   const column = this.findObject(this.option.group, "postId");
-            //   column.dicData = res.data.data;
-            // });
-        },
-        submitRole () {
-            const roleList = this.$refs.treeRole.getCheckedKeys().join(",")
-            grant(this.ids, roleList).then(() => {
-                this.roleBox = false
-                this.$message({
-                    type: "success",
-                    message: "操作成功!"
-                })
-                this.onLoad(this.page)
-            })
-        },
-        rowSave (row, done, loading) {
-            row['tenantId'] = "000000"
-            row['userType'] = 1
-            row.deptId = func.join(row.deptId)
-            row.roleId = func.join(row.roleId)
-            // row.postId = func.join(row.postId)
-            add(row).then(() => {
-                this.initFlag = false
-                this.onLoad(this.page)
-                this.$message({
-                    type: "success",
-                    message: "操作成功!"
-                })
-                done()
-            }, error => {
-                window.console.log(error)
-                loading()
-            })
-        },
-        rowUpdate (row, index, done, loading) {
-            row['tenantId'] = "000000"
-            row['userType'] = 1
-            row.deptId = func.join(row.deptId)
-            row.roleId = func.join(row.roleId)
-            // row.postId = func.join(row.postId)
-            update(row).then(() => {
-                this.initFlag = false
-                this.onLoad(this.page)
-                this.$message({
-                    type: "success",
-                    message: "操作成功!"
-                })
-                done()
-            }, error => {
-                window.console.log(error)
-                loading()
-            })
-        },
-        rowDel (row) {
-            this.$confirm("确定将选择数据删除?", {
-                confirmButtonText: "确定",
-                cancelButtonText: "取消",
-                type: "warning"
-            })
-                .then(() => {
-                    return remove(row.id)
-                })
-                .then(() => {
-                    this.onLoad(this.page)
-                    this.$message({
-                        type: "success",
-                        message: "操作成功!"
-                    })
-                })
-        },
-        searchReset () {
-            this.query = {}
-            this.treeDeptId = ''
-            this.onLoad(this.page)
-        },
-        searchChange (params, done) {
-            this.query = params
-            this.page.currentPage = 1
-            this.onLoad(this.page, params)
-            done()
-        },
-        selectionChange (list) {
-            this.selectionList = list
-        },
-        selectionClear () {
-            this.selectionList = []
-            this.$refs.crud.toggleSelection()
-        },
-        handleDelete () {
-            if (this.selectionList.length === 0) {
-                this.$message.warning("请选择至少一条数据")
-                return
-            }
-            this.$confirm("确定将选择数据删除?", {
-                confirmButtonText: "确定",
-                cancelButtonText: "取消",
-                type: "warning"
-            })
-                .then(() => {
-                    return remove(this.ids)
-                })
-                .then(() => {
-                    this.onLoad(this.page)
-                    this.$message({
-                        type: "success",
-                        message: "操作成功!"
-                    })
-                    this.$refs.crud.toggleSelection()
-                })
-        },
-        handleReset () {
-            if (this.selectionList.length === 0) {
-                this.$message.warning("请选择至少一条数据")
-                return
-            }
-            this.$confirm("确定将选择账号密码重置为123456?", {
-                confirmButtonText: "确定",
-                cancelButtonText: "取消",
-                type: "warning"
-            })
-                .then(() => {
-                    return resetPassword(this.ids)
-                })
-                .then(() => {
-                    this.$message({
-                        type: "success",
-                        message: "操作成功!"
-                    })
-                    this.$refs.crud.toggleSelection()
-                })
-        },
-        handleGrant () {
-            if (this.selectionList.length === 0) {
-                this.$message.warning("请选择至少一条数据")
-                return
-            }
-            this.roleTreeObj = []
-            if (this.selectionList.length === 1) {
-                this.roleTreeObj = this.selectionList[0].roleId.split(",")
-            }
-            getRoleTree().then(res => {
-                this.roleGrantList = res.data.data
-                this.roleBox = true
-            })
-        },
-        handlePlatform () {
-            this.platformBox = true
-        },
-        handleLock () {
-            if (this.selectionList.length === 0) {
-                this.$message.warning("请选择至少一条数据")
-                return
-            }
-            this.$confirm("确定将选择账号解封?", {
-                confirmButtonText: "确定",
-                cancelButtonText: "取消",
-                type: "warning"
-            })
-                .then(() => {
-                    return unlock(this.ids)
-                })
-                .then(() => {
-                    this.$message({
-                        type: "success",
-                        message: "操作成功!"
-                    })
-                })
-        },
-        handleImport () {
-            this.excelBox = true
-        },
-        uploadAfter (res, done, loading, column) {
-            window.console.log(column)
-            this.excelBox = false
-            this.refreshChange()
-            done()
-        },
-        handleExport () {
-            const account = func.toStr(this.search.account)
-            const realName = func.toStr(this.search.realName)
-            this.$confirm("是否导出用户数据?", "提示", {
-                confirmButtonText: "确定",
-                cancelButtonText: "取消",
-                type: "warning"
-            }).then(() => {
-                NProgress.start()
-                exportBlob(
-                    `/api/blade-system/user/export-user?${this.website.tokenHeader}=${getToken()}&account=${account}&realName=${realName}`
-                ).then(res => {
-                    downloadXls(res.data, `用户数据表${dateNow()}.xlsx`)
-                    NProgress.done()
-                })
-            })
-        },
-        handleTemplate () {
-            exportBlob(`/api/blade-system/user/export-template?${this.website.tokenHeader}=${getToken()}`).then(res => {
-                downloadXls(res.data, "用户数据模板.xlsx")
-            })
-        },
-        beforeOpen (done, type) {
-            if (["edit", "view"].includes(type)) {
-                getUser(this.form.id).then(res => {
-                    this.form = res.data.data
-                    if (this.form.hasOwnProperty("deptId")) {
-                        this.form.deptId = this.form.deptId.split(",")
-                    }
-                    if (this.form.hasOwnProperty("roleId")) {
-                        this.form.roleId = this.form.roleId.split(",")
-                    }
-                    // if (this.form.hasOwnProperty("postId")) {
-                    //     this.form.postId = this.form.postId.split(",")
-                    // }
-                })
-            }
-            this.initFlag = true
-            done()
-        },
-        currentChange (currentPage) {
-            this.page.currentPage = currentPage
-        },
-        sizeChange (pageSize) {
-            this.page.pageSize = pageSize
-        },
-        refreshChange () {
-            this.onLoad(this.page, this.query)
-        },
-        onLoad (page, params = {}) {
-            this.loading = true
-            getList(page.currentPage, page.pageSize, Object.assign(params, this.query), this.treeDeptId).then(res => {
-                const data = res.data.data
-                this.page.total = data.total
-                this.data = data.records
-                this.loading = false
-                this.selectionClear()
-            })
-        },
-        platformRowUpdate (row, index, done, loading) {
-            updatePlatform(row.id, row.userType, row.userExt).then(() => {
-                this.platformOnLoad(this.platformPage)
-                this.$message({
-                    type: "success",
-                    message: "操作成功!"
-                })
-                done()
-            }, error => {
-                window.console.log(error)
-                loading()
-            })
-        },
-        platformBeforeOpen (done, type) {
-            if (["edit", "view"].includes(type)) {
-                getUserPlatform(this.platformForm.id).then(res => {
-                    this.platformForm = res.data.data
-                })
-            }
-            done()
-        },
-        platformSearchReset () {
-            this.platformQuery = {}
-            this.platformOnLoad(this.platformPage)
-        },
-        platformSearchChange (params, done) {
-            this.platformQuery = params
-            this.platformPage.currentPage = 1
-            this.platformOnLoad(this.platformPage, params)
-            done()
-        },
-        platformSelectionChange (list) {
-            this.platformSelectionList = list
-        },
-        platformSelectionClear () {
-            this.platformSelectionList = []
-            this.$refs.platformCrud.toggleSelection()
-        },
-        platformCurrentChange (currentPage) {
-            this.platformPage.currentPage = currentPage
-        },
-        platformSizeChange (pageSize) {
-            this.platformPage.pageSize = pageSize
-        },
-        platformRefreshChange () {
-            this.platformOnLoad(this.platformPage, this.platformQuery)
-        },
-        platformOnLoad (page, params = {}) {
-            this.platformLoading = true
-            getList(page.currentPage, page.pageSize, Object.assign(params, this.query), this.treeDeptId).then(res => {
-                const data = res.data.data
-                this.platformPage.total = data.total
-                this.platformData = data.records
-                this.platformLoading = false
-                this.selectionClear()
-            })
+          })
+      },
+      searchReset() {
+        this.query = {}
+        this.treeDeptId = ''
+        this.onLoad(this.page)
+      },
+      searchChange(params, done) {
+        this.query = params
+        this.page.currentPage = 1
+        this.onLoad(this.page, params)
+        done()
+      },
+      selectionChange(list) {
+        this.selectionList = list
+      },
+      selectionClear() {
+        this.selectionList = []
+        this.$refs.crud.toggleSelection()
+      },
+      handleDelete() {
+        if (this.selectionList.length === 0) {
+          this.$message.warning("请选择至少一条数据")
+          return
         }
+        this.$confirm("确定将选择数据删除?", {
+            confirmButtonText: "确定",
+            cancelButtonText: "取消",
+            type: "warning"
+          })
+          .then(() => {
+            return remove(this.ids)
+          })
+          .then(() => {
+            this.onLoad(this.page)
+            this.$message({
+              type: "success",
+              message: "操作成功!"
+            })
+            this.$refs.crud.toggleSelection()
+          })
+      },
+      handleReset() {
+        if (this.selectionList.length === 0) {
+          this.$message.warning("请选择至少一条数据")
+          return
+        }
+        this.$confirm("确定将选择账号密码重置为123456?", {
+            confirmButtonText: "确定",
+            cancelButtonText: "取消",
+            type: "warning"
+          })
+          .then(() => {
+            return resetPassword(this.ids)
+          })
+          .then(() => {
+            this.$message({
+              type: "success",
+              message: "操作成功!"
+            })
+            this.$refs.crud.toggleSelection()
+          })
+      },
+      handleGrant() {
+        if (this.selectionList.length === 0) {
+          this.$message.warning("请选择至少一条数据")
+          return
+        }
+        this.roleTreeObj = []
+        if (this.selectionList.length === 1) {
+          this.roleTreeObj = this.selectionList[0].roleId.split(",")
+        }
+        getRoleTree().then(res => {
+          this.roleGrantList = res.data.data
+          this.roleBox = true
+        })
+      },
+      handlePlatform() {
+        this.platformBox = true
+      },
+      handleLock() {
+        if (this.selectionList.length === 0) {
+          this.$message.warning("请选择至少一条数据")
+          return
+        }
+        this.$confirm("确定将选择账号解封?", {
+            confirmButtonText: "确定",
+            cancelButtonText: "取消",
+            type: "warning"
+          })
+          .then(() => {
+            return unlock(this.ids)
+          })
+          .then(() => {
+            this.$message({
+              type: "success",
+              message: "操作成功!"
+            })
+          })
+      },
+      handleImport() {
+        this.excelBox = true
+      },
+      uploadAfter(res, done, loading, column) {
+        window.console.log(column)
+        this.excelBox = false
+        this.refreshChange()
+        done()
+      },
+      handleExport() {
+        const account = func.toStr(this.search.account)
+        const realName = func.toStr(this.search.realName)
+        const deptId = this.treeDeptId
+        this.$confirm("是否导出用户数据?", "提示", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(() => {
+          NProgress.start()
+          exportBlob(
+            `/api/blade-system/user/export-user?${this.website.tokenHeader}=${getToken()}&account=${account}&realName=${realName}&deptId=${deptId}`
+          ).then(res => {
+            downloadXls(res.data, `用户数据表${dateNow()}.xlsx`)
+            NProgress.done()
+          })
+        })
+      },
+      handleTemplate() {
+        exportBlob(`/api/blade-system/user/export-template?${this.website.tokenHeader}=${getToken()}`).then(res => {
+          downloadXls(res.data, "用户数据模板.xlsx")
+        })
+      },
+      beforeOpen(done, type) {
+        if (["edit", "view"].includes(type)) {
+          getUser(this.form.id).then(res => {
+            this.form = res.data.data
+            if (this.form.hasOwnProperty("deptId")) {
+              this.form.deptId = this.form.deptId.split(",")
+            }
+            if (this.form.hasOwnProperty("roleId")) {
+              this.form.roleId = this.form.roleId.split(",")
+            }
+            // if (this.form.hasOwnProperty("postId")) {
+            //     this.form.postId = this.form.postId.split(",")
+            // }
+          })
+        }
+        this.initFlag = true
+        done()
+      },
+      currentChange(currentPage) {
+        this.page.currentPage = currentPage
+      },
+      sizeChange(pageSize) {
+        this.page.pageSize = pageSize
+      },
+      refreshChange() {
+        this.onLoad(this.page, this.query)
+      },
+      onLoad(page, params = {}) {
+        this.loading = true
+        getList(page.currentPage, page.pageSize, Object.assign(params, this.query), this.treeDeptId).then(res => {
+          const data = res.data.data
+          this.page.total = data.total
+          this.data = data.records
+          this.loading = false
+          this.selectionClear()
+        })
+      },
+      platformRowUpdate(row, index, done, loading) {
+        updatePlatform(row.id, row.userType, row.userExt).then(() => {
+          this.platformOnLoad(this.platformPage)
+          this.$message({
+            type: "success",
+            message: "操作成功!"
+          })
+          done()
+        }, error => {
+          window.console.log(error)
+          loading()
+        })
+      },
+      platformBeforeOpen(done, type) {
+        if (["edit", "view"].includes(type)) {
+          getUserPlatform(this.platformForm.id).then(res => {
+            this.platformForm = res.data.data
+          })
+        }
+        done()
+      },
+      platformSearchReset() {
+        this.platformQuery = {}
+        this.platformOnLoad(this.platformPage)
+      },
+      platformSearchChange(params, done) {
+        this.platformQuery = params
+        this.platformPage.currentPage = 1
+        this.platformOnLoad(this.platformPage, params)
+        done()
+      },
+      platformSelectionChange(list) {
+        this.platformSelectionList = list
+      },
+      platformSelectionClear() {
+        this.platformSelectionList = []
+        this.$refs.platformCrud.toggleSelection()
+      },
+      platformCurrentChange(currentPage) {
+        this.platformPage.currentPage = currentPage
+      },
+      platformSizeChange(pageSize) {
+        this.platformPage.pageSize = pageSize
+      },
+      platformRefreshChange() {
+        this.platformOnLoad(this.platformPage, this.platformQuery)
+      },
+      platformOnLoad(page, params = {}) {
+        this.platformLoading = true
+        getList(page.currentPage, page.pageSize, Object.assign(params, this.query), this.treeDeptId).then(res => {
+          const data = res.data.data
+          this.platformPage.total = data.total
+          this.platformData = data.records
+          this.platformLoading = false
+          this.selectionClear()
+        })
+      }
     }
-}
+  }
 </script>
 
 <style>
-.box {
+  .box {
     height: 800px;
-}
+  }
 
-.el-scrollbar {
+  .el-scrollbar {
     height: 100%;
-}
+  }
 
-.box .el-scrollbar__wrap {
+  .box .el-scrollbar__wrap {
     overflow: scroll;
-}
-</style>
+  }
+</style>
\ No newline at end of file
diff --git a/src/views/userHouse/houseHoldList.vue b/src/views/userHouse/houseHoldList.vue
index ac9243a..f8a11a6 100644
--- a/src/views/userHouse/houseHoldList.vue
+++ b/src/views/userHouse/houseHoldList.vue
@@ -50,7 +50,7 @@
     </el-dialog>
 
     <el-dialog title="标签管理" append-to-body :visible.sync="labelFlag" center width="600px">
-      <div v-for="(item, index) in labelData" :key="index">
+      <div v-for="(item, index) in  labelData " :key="index">
         <el-row>
           <el-col :span="24">
             <div>
@@ -58,9 +58,23 @@
             </div>
           </el-col>
         </el-row>
-        <div class="grid-container2" v-if="item.children">
+
+        <el-collapse accordion @change="handleChange" v-if="item.children[0].children.length">
+          <el-collapse-item :title="item2.name" :name="index2" v-for="(item2, index2) in item.children" :key="index2">
+            <div class="grid-container2">
+              <div class="grid-item" :style="{ backgroundColor: getColor(i.color) }" v-for="(i, k) in item2.children"
+                @click="changLabel(i)" :key="k">
+                {{ i.name }}
+              </div>
+            </div>
+          </el-collapse-item>
+        </el-collapse>
+
+
+
+        <div class="grid-container2" v-else>
           <div class="grid-item" :style="{ backgroundColor: getColor(item2.color) }"
-            v-for="(item2, index2) in item.children" @click="changLabel(item2)" :key="index2">
+            v-for="( item2, index2 ) in  item.children " @click="changLabel(item2)" :key="index2">
             {{ item2.name }}
           </div>
         </div>
@@ -96,833 +110,844 @@
 </template>
 
 <script>
-  import {
-    setLabelColor
-  } from '@/util/util'
-  import {
-    getList,
-    remove,
-    add,
-    update,
-    getDetatil,
-    getDetatils
-  } from "@/api/userHouse/list/houseHold.js"
-  import {
-    removeHouseholdLabel,
-    saveOrUpdateHouseholdLabel
-  } from "@/api/userHouse/list/userHouseList.js"
-  import {
-    getLabelList,
-  } from '@/api/label/label'
-  import {
-    exportBlob
-  } from "@/api/common"
-  import {
-    mapGetters
-  } from "vuex"
-  import {
-    getToken
-  } from '@/util/auth'
-  import {
-    downloadXls,
-    findParentOrCur,
-  } from "@/util/util"
-  import {
-    dateNow
-  } from "@/util/date"
-  import NProgress from 'nprogress'
-  import 'nprogress/nprogress.css'
-  import Qs from "qs"
-  import {
-    lintOnSave
-  } from "../../../vue.config"
+import {
+  setLabelColor
+} from '@/util/util'
+import {
+  getList,
+  remove,
+  add,
+  update,
+  getDetatil,
+  getDetatils
+} from "@/api/userHouse/list/houseHold.js"
+import {
+  removeHouseholdLabel,
+  saveOrUpdateHouseholdLabel
+} from "@/api/userHouse/list/userHouseList.js"
+import {
+  getLabelList,
+} from '@/api/label/label'
+import {
+  exportBlob
+} from "@/api/common"
+import {
+  mapGetters
+} from "vuex"
+import {
+  getToken
+} from '@/util/auth'
+import {
+  downloadXls,
+  findParentOrCur,
+} from "@/util/util"
+import {
+  dateNow
+} from "@/util/date"
+import NProgress from 'nprogress'
+import 'nprogress/nprogress.css'
+import Qs from "qs"
+import {
+  lintOnSave
+} from "../../../vue.config"
 
-  export default {
-    data() {
-      let isCardId = function(rule, value, callback) {
-        // 15位和18位身份证号码的正则表达式
-        var regIdCard =
-          /^(^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$)|(^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])((\d{4})|\d{3}[Xx])$)$/
+export default {
+  data() {
+    let isCardId = function (rule, value, callback) {
+      // 15位和18位身份证号码的正则表达式
+      var regIdCard =
+        /^(^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$)|(^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])((\d{4})|\d{3}[Xx])$)$/
 
-        // 如果通过该验证,说明身份证格式正确,但准确性还需计算
-        if (regIdCard.test(value) || value == '') {
-          if (value.length == 18) {
-            var idCardWi = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10,
-              5, 8, 4, 2) // 将前17位加权因子保存在数组里
-            var idCardY = new Array(1, 0, 10, 9, 8, 7, 6, 5, 4, 3, 2) // 这是除以11后,可能产生的11位余数、验证码,也保存成数组
-            var idCardWiSum = 0 // 用来保存前17位各自乖以加权因子后的总和
-            for (var i = 0; i < 17; i++) {
-              idCardWiSum += value.substring(i, i + 1) * idCardWi[i]
-            }
+      // 如果通过该验证,说明身份证格式正确,但准确性还需计算
+      if (regIdCard.test(value) || value == '') {
+        if (value.length == 18) {
+          var idCardWi = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10,
+            5, 8, 4, 2) // 将前17位加权因子保存在数组里
+          var idCardY = new Array(1, 0, 10, 9, 8, 7, 6, 5, 4, 3, 2) // 这是除以11后,可能产生的11位余数、验证码,也保存成数组
+          var idCardWiSum = 0 // 用来保存前17位各自乖以加权因子后的总和
+          for (var i = 0; i < 17; i++) {
+            idCardWiSum += value.substring(i, i + 1) * idCardWi[i]
+          }
 
-            var idCardMod = idCardWiSum % 11 // 计算出校验码所在数组的位置
-            var idCardLast = value.substring(17) // 得到最后一位身份证号码
+          var idCardMod = idCardWiSum % 11 // 计算出校验码所在数组的位置
+          var idCardLast = value.substring(17) // 得到最后一位身份证号码
 
-            // 如果等于2,则说明校验码是10,身份证号码最后一位应该是X
-            if (idCardMod == 2) {
-              if (idCardLast == "X" || idCardLast == "x") {
-                callback()
-              } else {
-                callback(new Error("身份证号格式有误!"))
-              }
+          // 如果等于2,则说明校验码是10,身份证号码最后一位应该是X
+          if (idCardMod == 2) {
+            if (idCardLast == "X" || idCardLast == "x") {
+              callback()
             } else {
-              // 用计算出的验证码与最后一位身份证号码匹配,如果一致,说明通过,否则是无效的身份证号码
-              if (idCardLast == idCardY[idCardMod]) {
-                callback()
-              } else {
-                callback(new Error("身份证号格式有误!"))
-              }
+              callback(new Error("身份证号格式有误!"))
             }
           } else {
-            callback()
+            // 用计算出的验证码与最后一位身份证号码匹配,如果一致,说明通过,否则是无效的身份证号码
+            if (idCardLast == idCardY[idCardMod]) {
+              callback()
+            } else {
+              callback(new Error("身份证号格式有误!"))
+            }
           }
         } else {
-          //alert("身份证格式不正确!");
-          callback(new Error("身份证号格式有误!"))
+          callback()
         }
-
-        callback()
+      } else {
+        //alert("身份证格式不正确!");
+        callback(new Error("身份证号格式有误!"))
       }
 
-      //手机号格式校验
-      let validatorPhone = function(rule, value, callback) {
-        if (value) {
-          if (!/^1[3456789]\d{9}$/.test(value)) {
-            callback(new Error('手机号格式有误!'))
-          } else {
-            callback()
-          }
+      callback()
+    }
+
+    //手机号格式校验
+    let validatorPhone = function (rule, value, callback) {
+      if (value) {
+        if (!/^1[3456789]\d{9}$/.test(value)) {
+          callback(new Error('手机号格式有误!'))
+        } else {
+          callback()
         }
-        callback()
       }
+      callback()
+    }
 
-      return {
-        labelData: [],
-        form: {},
-        search: {},
-        excelBox: false,
-        selectionList: [],
-        labelFlag: false,
-        editLabelFlge: false,
-        query: {},
-        loading: true,
-        page: {
-          pageSize: 10,
-          currentPage: 1,
-          total: 0
-        },
-        option: {
-          labelWidth: 144,
-          searchLabelWidth: 96,
-          searchShow: true,
-          searchMenuSpan: 3,
-          menuWidth: 280,
+    return {
+      labelData: [],
+      form: {},
+      search: {},
+      excelBox: false,
+      selectionList: [],
+      labelFlag: false,
+      editLabelFlge: false,
+      query: {},
+      loading: true,
+      page: {
+        pageSize: 10,
+        currentPage: 1,
+        total: 0
+      },
+      option: {
+        labelWidth: 144,
+        searchLabelWidth: 96,
+        searchShow: true,
+        searchMenuSpan: 3,
+        menuWidth: 280,
 
-          height: 'auto',
-          calcHeight: 80,
-          tip: false,
-          border: true,
-          index: true,
-          selection: true,
-          viewBtn: true,
-          addBtn: true,
-          dialogType: 'drawer',
-          dialogClickModal: false,
-          menuFixed: 'right',
-          column: [
+        height: 'auto',
+        calcHeight: 80,
+        tip: false,
+        border: true,
+        index: true,
+        selection: true,
+        viewBtn: true,
+        addBtn: true,
+        dialogType: 'drawer',
+        dialogClickModal: false,
+        menuFixed: 'right',
+        column: [
 
-            {
-              width: 110,
-              label: "姓名",
-              prop: "name",
-              searchSpan: 3,
-              searchLabelWidth: 46,
-              search: true,
-              rules: [{
-                required: true,
-                message: "请输入姓名",
-                trigger: "blur",
-              }],
-            },
-
-            {
-              hide: true,
-              label: "证件类型",
-              prop: "cardType",
-              type: "select",
-              dicUrl: "/api/blade-system/dict-biz/dictionary?code=cardType",
-              dataType: "number",
-              props: {
-                label: "dictValue",
-                value: "dictKey",
-              },
-            },
-
-            {
-              width: 160,
-              display: true,
-              label: "身份证号",
-              prop: "idCard",
-              search: true,
-              searchSpan: 4,
-              slot: true,
-              rules: [{
-                validator: isCardId,
-                trigger: 'blur'
-              }],
-            },
-
-            {
-              hide: true,
-              display: false,
-              width: 160,
-              label: "证件号码",
-              prop: "cardNo",
-            },
-
-            {
-              label: "出生日期",
-              prop: "birthday",
-              type: "date",
-              format: "yyyy-MM-dd",
-              valueFormat: "yyyy-MM-dd",
-              hide: true,
-            },
-
-
-            {
-              width: 60,
-              label: "性别",
-              prop: "gender",
-              type: "select",
-              dicData: [{
-                  label: "男",
-                  value: 1
-                },
-                {
-                  label: "女",
-                  value: 0
-                },
-                {
-                  label: "未知",
-                  value: "3"
-                }
-              ],
-            },
-
-            {
-              width: 120,
-              label: "手机号码",
-              prop: "phoneNumber",
-              search: true,
-              searchSpan: 4,
-              slot: true,
-              rules: [{
-                  required: true,
-                  message: "请输入手机号码",
-                  trigger: "blur",
-                },
-                {
-                  validator: validatorPhone,
-                  trigger: 'blur'
-                }
-              ],
-            },
-
-            {
-              label: "居住情况",
-              prop: "residentialStatus",
-              type: "select",
-              hide: true,
-              dicUrl: "/api/blade-system/dict-biz/dictionary?code=residentialStatusType",
-              dataType: "number",
-              props: {
-                label: "dictValue",
-                value: "dictKey",
-              },
-            },
-
-            {
-              label: "其他联系方式",
-              prop: "otherContact",
-              hide: true,
-              rules: [{
-                validator: validatorPhone,
-                trigger: 'blur'
-              }],
-            },
-
-            {
-              label: "是否主要联系人",
-              prop: "isPrimaryContact",
-              type: "select",
-              dicUrl: "/api/blade-system/dict-biz/dictionary?code=primaryContactType",
-              dataType: "number",
-              hide: true,
-              props: {
-                label: "dictValue",
-                value: "dictKey",
-              },
-            },
-            {
-              label: "与业主关系",
-              prop: "relationship",
-              type: "select",
-              dicUrl: "/api/blade-system/dict-biz/dictionary?code=roleRelation",
-              dataType: "number",
-              // hide: true,
-              width: 100,
-              props: {
-                label: "dictValue",
-                value: "dictKey",
-              },
-              rules: [{
-                required: true,
-                message: "请选择与业主关系",
-                trigger: "blur",
-              }],
-            },
-            {
-              label: "民族",
-              prop: "ethnicity",
-              type: "select",
-              // hide: true,
-              dicUrl: "/api/blade-system/dict-biz/dictionary?code=nationType",
-              dataType: "number",
-              props: {
-                label: "dictValue",
-                value: "dictKey",
-              },
-            },
-            {
-              width: 110,
-              label: "所属街道",
-              addDisplay: false,
-              editDisplay: false,
-              viewDisplay: false,
-              prop: "townStreetName",
-              search: true,
-              searchSpan: 4
-            },
-            {
-              width: 156,
-              overHidden: true,
-              label: "所属社区",
-              addDisplay: false,
-              editDisplay: false,
-              viewDisplay: false,
-              prop: "neiName",
-              search: true,
-              searchSpan: 4
-            },
-            {
-              width: 110,
-              overHidden: true,
-              label: "所属网格",
-              addDisplay: false,
-              editDisplay: false,
-              viewDisplay: false,
-              prop: "gridName",
-            },
-            
-            {
-              width: 220,
-              overHidden: true,
-              label: '小区名称',
-              prop: "aoiName",
-              search: true,
-              searchSpan: 4,
-              display: false
-            },
-            {
-              hide: true,
-              parent: false,
-              width: 160,
-              label: "籍贯地区",
-              prop: "nativePlaceAdcode",
-              type: "tree",
-              typeformat(item, label, value) {
-                return item.addressDetail
-              },
-              change: ({
-                value,
-                column,
-                item,
-                dic
-              }) => {
-                item.addressDetail = findParentOrCur(dic, item.id)
-              },
-              props: {
-                label: 'name',
-                value: 'id'
-              },
-              dicUrl: `/api/blade-system/region/getBaseTree`,
-            },
-
-            {
-              hide: true,
-              label: "户籍类型",
-              prop: "residentType",
-              type: "select",
-              dicUrl: "/api/blade-system/dict-biz/dictionary?code=residentType",
-              dataType: "number",
-              props: {
-                label: "dictValue",
-                value: "dictKey",
-              },
-            },
-
-            {
-              hide: true,
-              parent: false,
-              width: 160,
-              label: "户籍地区",
-              prop: "residentAdcode",
-              type: "tree",
-              typeformat(item, label, value) {
-                return item.addressDetail
-              },
-              change: ({
-                value,
-                column,
-                item,
-                dic
-              }) => {
-                item.addressDetail = findParentOrCur(dic, item.id)
-              },
-              props: {
-                label: 'name',
-                value: 'id'
-              },
-              dicUrl: `/api/blade-system/region/getBaseTree`,
-            },
-
-            {
-              label: "户籍地址",
-              prop: "hukouRegistration",
-              hide: true,
-            },
-
-            {
-              disabled: false,
-              label: "居住地区",
-              prop: "homeAdcode",
-              hide: true,
-              type: 'select',
-              props: {
-                label: 'name',
-                value: 'code'
-              },
-              dicUrl: `/api/blade-system/region/select?code=361102`,
-            },
-
-            {
-              disabled: false,
-              label: "现居住地",
-              prop: "currentAddress",
-              minWidth:150,
-              overHidden:true
-              // hide: true,
-            },
-            {
-              minWidth:180,
-              overHidden: true,
-              label: "标签",
-              prop: "householdLabelList",
-              display: false,
-              overHidden:true
-            },
-            {
-              label: "学历",
-              prop: "education",
-              type: "select",
-              hide: true,
-              dicUrl: "/api/blade-system/dict-biz/dictionary?code=educationType",
-              dataType: "number",
-              props: {
-                label: "dictValue",
-                value: "dictKey",
-              },
-            },
-
-            {
-              hide: true,
-              width: 160,
-              label: "职业类别",
-              prop: "occupation"
-            },
-
-            {
-              label: "工作单位",
-              prop: "employer",
-              hide: true,
-            },
-
-            {
-              hide: true,
-              width: 160,
-              label: "工作单位地址",
-              prop: "cmpyRegAddr"
-            },
-
-            {
-              label: "工作状态",
-              prop: "workStatus",
-              type: "select",
-              hide: true,
-              dicUrl: "/api/blade-system/dict-biz/dictionary?code=workStatusType",
-              dataType: "number",
-              props: {
-                label: "dictValue",
-                value: "dictKey",
-              },
-            },
-
-            {
-              label: "婚姻状态",
-              prop: "maritalStatus",
-              type: "select",
-              hide: true,
-              dicUrl: "/api/blade-system/dict-biz/dictionary?code=marriageStatusType",
-              dataType: "number",
-              props: {
-                label: "dictValue",
-                value: "dictKey",
-              },
-            },
-
-            {
-              hide: true,
-              width: 160,
-              label: "宗教信仰",
-              prop: "religiousBelief",
-            },
-
-            {
-              hide: true,
-              label: "健康状态",
-              prop: "healthStatus",
-              type: "select",
-              dicUrl: "/api/blade-system/dict-biz/dictionary?code=healthStatus",
-              dataType: "number",
-              props: {
-                label: "dictValue",
-                value: "dictKey",
-              },
-            },
-
-            {
-              disabled: true,
-              hide: true,
-              width: 160,
-              label: "疾病名称",
-              prop: "diseaseName"
-            },
-
-            {
-              hide: true,
-              width: 160,
-              label: "外出去向",
-              prop: "goOutWhere"
-            },
-
-            {
-              hide: true,
-              width: 160,
-              label: "外出原因",
-              prop: "goOutReason"
-            },
-
-            {
-              hide: true,
-              label: "外出时间",
-              prop: "goOutTime",
-              type: "date",
-              format: "yyyy-MM-dd",
-              valueFormat: "yyyy-MM-dd",
-              width: 160,
-            },
-
-            {
-              hide: true,
-              width: 160,
-              label: "外出详址",
-              prop: "goOutAddr"
-            },
-
-            {
-              label: "车牌号",
-              prop: "cardNumber",
-              hide: true,
-            },
-            {
-              label: "自愿者组织",
-              prop: "volunteerOrg",
-              hide: true,
-            },
-
-            {
-              label: "备注",
-              prop: "remark",
-              hide: true,
-            },
-          ]
-        },
-        data: [],
-
-        excelForm: {},
-        labelForm: {},
-        labelOption: {
-          submitBtn: false,
-          emptyBtn: false,
-          column: [{
-            label: '级别',
-            prop: 'color',
-            type: 'radio',
-            button: true,
-            row: true,
-            dicData: [{
-              label: '撤销',
-              value: '#999'
-            }, {
-              label: '绿',
-              value: 'green'
-            }, {
-              label: '黄',
-              value: 'yellow'
-            }, {
-              label: '红',
-              value: 'red'
-            }],
+          {
+            width: 110,
+            label: "姓名",
+            prop: "name",
+            searchSpan: 3,
+            searchLabelWidth: 46,
+            search: true,
             rules: [{
               required: true,
-              message: "请选择",
-              trigger: "blur"
-            }]
+              message: "请输入姓名",
+              trigger: "blur",
+            }],
+          },
+
+          {
+            hide: true,
+            label: "证件类型",
+            prop: "cardType",
+            type: "select",
+            dicUrl: "/api/blade-system/dict-biz/dictionary?code=cardType",
+            dataType: "number",
+            props: {
+              label: "dictValue",
+              value: "dictKey",
+            },
+          },
+
+          {
+            width: 160,
+            display: true,
+            label: "身份证号",
+            prop: "idCard",
+            search: true,
+            searchSpan: 4,
+            slot: true,
+            rules: [{
+              validator: isCardId,
+              trigger: 'blur'
+            }],
+          },
+
+          {
+            hide: true,
+            display: false,
+            width: 160,
+            label: "证件号码",
+            prop: "cardNo",
+          },
+
+          {
+            label: "出生日期",
+            prop: "birthday",
+            type: "date",
+            format: "yyyy-MM-dd",
+            valueFormat: "yyyy-MM-dd",
+            hide: true,
+          },
+
+
+          {
+            width: 60,
+            label: "性别",
+            prop: "gender",
+            type: "select",
+            dicData: [{
+              label: "男",
+              value: 1
+            },
+            {
+              label: "女",
+              value: 0
+            },
+            {
+              label: "未知",
+              value: "3"
+            }
+            ],
+          },
+
+          {
+            width: 120,
+            label: "手机号码",
+            prop: "phoneNumber",
+            search: true,
+            searchSpan: 4,
+            slot: true,
+            rules: [{
+              required: true,
+              message: "请输入手机号码",
+              trigger: "blur",
+            },
+            {
+              validator: validatorPhone,
+              trigger: 'blur'
+            }
+            ],
+          },
+
+          {
+            label: "居住情况",
+            prop: "residentialStatus",
+            type: "select",
+            hide: true,
+            dicUrl: "/api/blade-system/dict-biz/dictionary?code=residentialStatusType",
+            dataType: "number",
+            props: {
+              label: "dictValue",
+              value: "dictKey",
+            },
+          },
+
+          {
+            label: "其他联系方式",
+            prop: "otherContact",
+            hide: true,
+            rules: [{
+              validator: validatorPhone,
+              trigger: 'blur'
+            }],
+          },
+
+          {
+            label: "是否主要联系人",
+            prop: "isPrimaryContact",
+            type: "select",
+            dicUrl: "/api/blade-system/dict-biz/dictionary?code=primaryContactType",
+            dataType: "number",
+            hide: true,
+            props: {
+              label: "dictValue",
+              value: "dictKey",
+            },
+          },
+          {
+            label: "与业主关系",
+            prop: "relationship",
+            type: "select",
+            dicUrl: "/api/blade-system/dict-biz/dictionary?code=roleRelation",
+            dataType: "number",
+            // hide: true,
+            width: 100,
+            props: {
+              label: "dictValue",
+              value: "dictKey",
+            },
+            rules: [{
+              required: true,
+              message: "请选择与业主关系",
+              trigger: "blur",
+            }],
+          },
+          {
+            label: "民族",
+            prop: "ethnicity",
+            type: "select",
+            // hide: true,
+            dicUrl: "/api/blade-system/dict-biz/dictionary?code=nationType",
+            dataType: "number",
+            props: {
+              label: "dictValue",
+              value: "dictKey",
+            },
+          },
+          {
+            width: 110,
+            label: "所属街道",
+            addDisplay: false,
+            editDisplay: false,
+            viewDisplay: false,
+            prop: "townStreetName",
+            search: true,
+            searchSpan: 4
+          },
+          {
+            width: 156,
+            overHidden: true,
+            label: "所属社区",
+            addDisplay: false,
+            editDisplay: false,
+            viewDisplay: false,
+            prop: "neiName",
+            search: true,
+            searchSpan: 4
+          },
+          {
+            width: 110,
+            overHidden: true,
+            label: "所属网格",
+            addDisplay: false,
+            editDisplay: false,
+            viewDisplay: false,
+            prop: "gridName",
+          },
+
+          {
+            width: 220,
+            overHidden: true,
+            label: '小区名称',
+            prop: "aoiName",
+            search: true,
+            searchSpan: 4,
+            display: false
+          },
+          {
+            hide: true,
+            parent: false,
+            width: 160,
+            label: "籍贯地区",
+            prop: "nativePlaceAdcode",
+            type: "tree",
+            typeformat(item, label, value) {
+              return item.addressDetail
+            },
+            change: ({
+              value,
+              column,
+              item,
+              dic
+            }) => {
+              item.addressDetail = findParentOrCur(dic, item.id)
+            },
+            props: {
+              label: 'name',
+              value: 'id'
+            },
+            dicUrl: `/api/blade-system/region/getBaseTree`,
+          },
+
+          {
+            hide: true,
+            label: "户籍类型",
+            prop: "residentType",
+            type: "select",
+            dicUrl: "/api/blade-system/dict-biz/dictionary?code=residentType",
+            dataType: "number",
+            props: {
+              label: "dictValue",
+              value: "dictKey",
+            },
+          },
+
+          {
+            hide: true,
+            parent: false,
+            width: 160,
+            label: "户籍地区",
+            prop: "residentAdcode",
+            type: "tree",
+            typeformat(item, label, value) {
+              return item.addressDetail
+            },
+            change: ({
+              value,
+              column,
+              item,
+              dic
+            }) => {
+              item.addressDetail = findParentOrCur(dic, item.id)
+            },
+            props: {
+              label: 'name',
+              value: 'id'
+            },
+            dicUrl: `/api/blade-system/region/getBaseTree`,
+          },
+
+          {
+            label: "户籍地址",
+            prop: "hukouRegistration",
+            hide: true,
+          },
+
+          {
+            disabled: false,
+            label: "居住地区",
+            prop: "homeAdcode",
+            hide: true,
+            type: 'select',
+            props: {
+              label: 'name',
+              value: 'code'
+            },
+            dicUrl: `/api/blade-system/region/select?code=361102`,
+          },
+
+          {
+            disabled: false,
+            label: "现居住地",
+            prop: "currentAddress",
+            minWidth: 150,
+            overHidden: true
+            // hide: true,
+          },
+          {
+            minWidth: 180,
+            overHidden: true,
+            label: "标签",
+            prop: "householdLabelList",
+            display: false,
+            overHidden: true
+          },
+          {
+            label: "学历",
+            prop: "education",
+            type: "select",
+            hide: true,
+            dicUrl: "/api/blade-system/dict-biz/dictionary?code=educationType",
+            dataType: "number",
+            props: {
+              label: "dictValue",
+              value: "dictKey",
+            },
+          },
+
+          {
+            hide: true,
+            width: 160,
+            label: "职业类别",
+            prop: "occupation"
+          },
+
+          {
+            label: "工作单位",
+            prop: "employer",
+            hide: true,
+          },
+
+          {
+            hide: true,
+            width: 160,
+            label: "工作单位地址",
+            prop: "cmpyRegAddr"
+          },
+
+          {
+            label: "工作状态",
+            prop: "workStatus",
+            type: "select",
+            hide: true,
+            dicUrl: "/api/blade-system/dict-biz/dictionary?code=workStatusType",
+            dataType: "number",
+            props: {
+              label: "dictValue",
+              value: "dictKey",
+            },
+          },
+
+          {
+            label: "婚姻状态",
+            prop: "maritalStatus",
+            type: "select",
+            hide: true,
+            dicUrl: "/api/blade-system/dict-biz/dictionary?code=marriageStatusType",
+            dataType: "number",
+            props: {
+              label: "dictValue",
+              value: "dictKey",
+            },
+          },
+
+          {
+            hide: true,
+            width: 160,
+            label: "宗教信仰",
+            prop: "religiousBelief",
+          },
+
+          {
+            hide: true,
+            label: "健康状态",
+            prop: "healthStatus",
+            type: "select",
+            dicUrl: "/api/blade-system/dict-biz/dictionary?code=healthStatus",
+            dataType: "number",
+            props: {
+              label: "dictValue",
+              value: "dictKey",
+            },
+          },
+
+          {
+            disabled: true,
+            hide: true,
+            width: 160,
+            label: "疾病名称",
+            prop: "diseaseName"
+          },
+
+          {
+            hide: true,
+            width: 160,
+            label: "外出去向",
+            prop: "goOutWhere"
+          },
+
+          {
+            hide: true,
+            width: 160,
+            label: "外出原因",
+            prop: "goOutReason"
+          },
+
+          {
+            hide: true,
+            label: "外出时间",
+            prop: "goOutTime",
+            type: "date",
+            format: "yyyy-MM-dd",
+            valueFormat: "yyyy-MM-dd",
+            width: 160,
+          },
+
+          {
+            hide: true,
+            width: 160,
+            label: "外出详址",
+            prop: "goOutAddr"
+          },
+
+          {
+            label: "车牌号",
+            prop: "cardNumber",
+            hide: true,
+          },
+          {
+            label: "自愿者组织",
+            prop: "volunteerOrg",
+            hide: true,
+          },
+
+          {
+            label: "备注",
+            prop: "remark",
+            hide: true,
+          },
+        ]
+      },
+      data: [],
+
+      excelForm: {},
+      labelForm: {},
+      labelOption: {
+        submitBtn: false,
+        emptyBtn: false,
+        column: [{
+          label: '级别',
+          prop: 'color',
+          type: 'radio',
+          button: true,
+          row: true,
+          dicData: [{
+            label: '撤销',
+            value: '#999'
           }, {
-            row: true,
-            label: '备注',
-            prop: 'remark',
-            type: 'input'
+            label: '绿',
+            value: 'green'
+          }, {
+            label: '黄',
+            value: 'yellow'
+          }, {
+            label: '红',
+            value: 'red'
+          }],
+          rules: [{
+            required: true,
+            message: "请选择",
+            trigger: "blur"
+          }]
+        }, {
+          row: true,
+          label: '备注',
+          prop: 'remark',
+          type: 'input'
+        }]
+      },
+      excelOption: {
+        submitBtn: false,
+        emptyBtn: false,
+        column: [{
+          label: '模板上传',
+          prop: 'excelFile',
+          type: 'upload',
+          drag: true,
+          loadText: '模板上传中,请稍等',
+          span: 24,
+          propsHttp: {
+            res: 'data'
+          },
+          tip: '请上传 .xls,.xlsx 标准格式文件',
+          action: "/api/blade-system/user/import-user"
+        },
+        {
+          label: "数据覆盖",
+          prop: "isCovered",
+          type: "switch",
+          align: "center",
+          width: 80,
+          dicData: [{
+            label: "否",
+            value: 0
+          },
+          {
+            label: "是",
+            value: 1
+          }
+          ],
+          value: 0,
+          slot: true,
+          rules: [{
+            required: true,
+            message: "请选择是否覆盖",
+            trigger: "blur"
           }]
         },
-        excelOption: {
-          submitBtn: false,
-          emptyBtn: false,
-          column: [{
-              label: '模板上传',
-              prop: 'excelFile',
-              type: 'upload',
-              drag: true,
-              loadText: '模板上传中,请稍等',
-              span: 24,
-              propsHttp: {
-                res: 'data'
-              },
-              tip: '请上传 .xls,.xlsx 标准格式文件',
-              action: "/api/blade-system/user/import-user"
-            },
-            {
-              label: "数据覆盖",
-              prop: "isCovered",
-              type: "switch",
-              align: "center",
-              width: 80,
-              dicData: [{
-                  label: "否",
-                  value: 0
-                },
-                {
-                  label: "是",
-                  value: 1
-                }
-              ],
-              value: 0,
-              slot: true,
-              rules: [{
-                required: true,
-                message: "请选择是否覆盖",
-                trigger: "blur"
-              }]
-            },
-            {
-              label: '模板下载',
-              prop: 'excelTemplate',
-              formslot: true,
-              span: 24,
-            }
-          ]
-        },
-        currentLabel: {},
-        currentRow: {},
-        householdLabelList: [],
-      }
-    },
-    watch: {
-      'form.source': {
-        handler(newData) {
-          let currentAddressColumn = this.findObject(
-            this.option.column,
-            'currentAddress'
-          )
-
-          let homeAdcodeColumn = this.findObject(
-            this.option.column,
-            'homeAdcode'
-          )
-
-          if (newData == 1) {
-            currentAddressColumn.disabled = true
-            homeAdcodeColumn.disabled = true
-          } else {
-            currentAddressColumn.disabled = false
-            homeAdcodeColumn.disabled = false
-          }
-        },
-      },
-
-      'form.cardType': {
-        handler(newData) {
-          let idCardColumn = this.findObject(
-            this.option.column,
-            'idCard'
-          )
-
-          let cardNoColumn = this.findObject(
-            this.option.column,
-            'cardNo'
-          )
-
-          if (newData == 111) {
-            idCardColumn.display = true
-            cardNoColumn.display = false
-          } else {
-            idCardColumn.display = false
-            cardNoColumn.display = true
-          }
-        },
-      },
-
-      'form.healthStatus': {
-        handler(newData) {
-          let diseaseNameColumn = this.findObject(
-            this.option.column,
-            'diseaseName'
-          )
-
-          if (newData == 3) {
-            diseaseNameColumn.disabled = false
-          } else {
-            diseaseNameColumn.disabled = true
-          }
-        },
-      },
-    },
-    computed: {
-      ...mapGetters(["userInfo", "permission"]),
-      permissionList() {
-        console.log("permission===>", this.permission)
-        return {
-          addBtn: this.vaildData(this.permission.household_add, false),
-          viewBtn: this.vaildData(this.permission.household_view, true),
-          delBtn: this.vaildData(this.permission.household_delete, true),
-          editBtn: this.vaildData(this.permission.household_edit, true),
-          // tagBtn: this.vaildData(this.permission.household_manager, true)
+        {
+          label: '模板下载',
+          prop: 'excelTemplate',
+          formslot: true,
+          span: 24,
         }
+        ]
       },
+      currentLabel: {},
+      currentRow: {},
+      householdLabelList: [],
+    }
+  },
+  watch: {
+    'form.source': {
+      handler(newData) {
+        let currentAddressColumn = this.findObject(
+          this.option.column,
+          'currentAddress'
+        )
 
-      textDispose() {
-        return (row, flag, type) => {
-          if (row[flag] || row[type] == null) {
-            return row[type]
-          } else {
-            if (type == 'idCard') {
-              return row[type].replace(/^(.{6})(?:\d+)(.{4})$/, "$1******$2")
-            } else {
-              return row[type].replace(/^(.{3})(?:\d+)(.{4})$/, "$1****$2")
-            }
-          }
-        }
-      },
+        let homeAdcodeColumn = this.findObject(
+          this.option.column,
+          'homeAdcode'
+        )
 
-      labelDispose() {
-        return (list) => {
-          return list.map(item => item.labelName).join(',')
-        }
-      },
-
-      getColor() {
-        return (data) => {
-          return setLabelColor(data)
-        }
-      }
-    },
-    mounted() {},
-    methods: {
-      onsubmit() {
-        if (this.labelForm.color === '#EBEDF0') {
-          let params = {
-            householdId: this.currentRow.id,
-            labelId: this.currentLabel.id,
-            // userId: this.currentLabel.id
-          }
-          removeHouseholdLabel(params).then(res => {
-            this.onLoad(this.page)
-
-            this.$message({
-              type: "success",
-              message: "操作成功!"
-            })
-            this.editLabelFlge = false
-            this.manageLabel(this.currentRow)
-            this.loading = false
-          })
+        if (newData == 1) {
+          currentAddressColumn.disabled = true
+          homeAdcodeColumn.disabled = true
         } else {
-          this.labelForm.houseCode = this.currentRow.houseCode
-          this.labelForm.householdId = this.currentRow.id
-          this.labelForm.labelId = this.currentLabel.id
-          this.labelForm.userId = this.currentRow.associatedUserId
-          this.labelForm.lableType = 1
-
-          saveOrUpdateHouseholdLabel(this.labelForm).then(res => {
-            this.onLoad(this.page)
-
-            this.$message({
-              type: "success",
-              message: "操作成功!"
-            })
-            this.editLabelFlge = false
-            this.manageLabel(this.currentRow)
-            this.loading = false
-          })
+          currentAddressColumn.disabled = false
+          homeAdcodeColumn.disabled = false
         }
       },
+    },
 
-      changLabel(item) {
-        this.editLabelFlge = true
-        this.currentLabel = item
-        this.labelForm.color = item.color
-        this.labelForm.remark = item.remark
+    'form.cardType': {
+      handler(newData) {
+        let idCardColumn = this.findObject(
+          this.option.column,
+          'idCard'
+        )
+
+        let cardNoColumn = this.findObject(
+          this.option.column,
+          'cardNo'
+        )
+
+        if (newData == 111) {
+          idCardColumn.display = true
+          cardNoColumn.display = false
+        } else {
+          idCardColumn.display = false
+          cardNoColumn.display = true
+        }
       },
+    },
 
-      manageLabel(item) {
-        this.loading = true
-        this.currentRow = item
-        this.labelFlag = true
+    'form.healthStatus': {
+      handler(newData) {
+        let diseaseNameColumn = this.findObject(
+          this.option.column,
+          'diseaseName'
+        )
+
+        if (newData == 3) {
+          diseaseNameColumn.disabled = false
+        } else {
+          diseaseNameColumn.disabled = true
+        }
+      },
+    },
+  },
+  computed: {
+    ...mapGetters(["userInfo", "permission"]),
+    permissionList() {
+      console.log("permission===>", this.permission)
+      return {
+        addBtn: this.vaildData(this.permission.household_add, false),
+        viewBtn: this.vaildData(this.permission.household_view, true),
+        delBtn: this.vaildData(this.permission.household_delete, true),
+        editBtn: this.vaildData(this.permission.household_edit, true),
+        // tagBtn: this.vaildData(this.permission.household_manager, true)
+      }
+    },
+
+    textDispose() {
+      return (row, flag, type) => {
+        if (row[flag] || row[type] == null) {
+          return row[type]
+        } else {
+          if (type == 'idCard') {
+            return row[type].replace(/^(.{6})(?:\d+)(.{4})$/, "$1******$2")
+          } else {
+            return row[type].replace(/^(.{3})(?:\d+)(.{4})$/, "$1****$2")
+          }
+        }
+      }
+    },
+
+    labelDispose() {
+      return (list) => {
+        return list.map(item => item.labelName).join(',')
+      }
+    },
+
+    getColor() {
+      return (data) => {
+        return setLabelColor(data)
+      }
+    }
+  },
+  mounted() { },
+  methods: {
+    onsubmit() {
+      if (this.labelForm.color === '#EBEDF0') {
         let params = {
-          parentId: 1000
+          householdId: this.currentRow.id,
+          labelId: this.currentLabel.id,
+          // userId: this.currentLabel.id
         }
-        // 查询标签
-        getLabelList(Object.assign(params)).then(res => {
-          const data = res.data.data
-          // this.labelData = data;
-          // 查询详情
-          getDetatils(item.id).then(res => {
-            this.householdLabelList = res.data.data.householdLabelList
-            // 将细类放到一起
-            data.forEach(e => {
-              e.children.forEach(f => {
-                if (this.householdLabelList.length > 0) {
+        removeHouseholdLabel(params).then(res => {
+          this.onLoad(this.page)
+
+          this.$message({
+            type: "success",
+            message: "操作成功!"
+          })
+          this.editLabelFlge = false
+          this.manageLabel(this.currentRow)
+          this.loading = false
+        })
+      } else {
+        this.labelForm.houseCode = this.currentRow.houseCode
+        this.labelForm.householdId = this.currentRow.id
+        this.labelForm.labelId = this.currentLabel.id
+        this.labelForm.userId = this.currentRow.associatedUserId
+        this.labelForm.lableType = 1
+
+        saveOrUpdateHouseholdLabel(this.labelForm).then(res => {
+          this.onLoad(this.page)
+
+          this.$message({
+            type: "success",
+            message: "操作成功!"
+          })
+          this.editLabelFlge = false
+          this.manageLabel(this.currentRow)
+          this.loading = false
+        })
+      }
+    },
+
+    changLabel(item) {
+      this.editLabelFlge = true
+      this.currentLabel = item
+      this.labelForm.color = item.color
+      this.labelForm.remark = item.remark
+    },
+
+    manageLabel(item) {
+      this.loading = true
+      this.currentRow = item
+      this.labelFlag = true
+      let params = {
+        parentId: 1000
+      }
+      // 查询标签
+      getLabelList(Object.assign(params)).then(res => {
+        const data = res.data.data
+        // this.labelData = data;
+        // 查询详情
+        getDetatils(item.id).then(res => {
+          this.householdLabelList = res.data.data.householdLabelList
+          console.log("===>", this.householdLabelList);
+          // 将细类放到一起
+          data.forEach(e => {
+            e.children.forEach(f => {
+              if (this.householdLabelList.length > 0) {
+                if (f.children.length) {
+                  f.children.forEach(k => {
+                    this.householdLabelList.forEach(h => {
+                      if (Number(k.id) == h.labelId) {
+                        k['color'] = h.color
+                        k['remark'] = h.remark
+                      }
+                    })
+                  })
+                } else {
                   this.householdLabelList.forEach(h => {
                     if (Number(f.id) == h.labelId) {
                       f['color'] = h.color
@@ -930,219 +955,221 @@
                     }
                   })
                 }
-              })
-            })
-            this.labelData = data
-            this.loading = false
-          })
-        })
-      },
-      rowSave(row, done, loading) {
-        add(row).then(() => {
-          this.initFlag = false
-          this.onLoad(this.page)
-          this.$message({
-            type: "success",
-            message: "操作成功!"
-          })
-          done()
-        }, error => {
-          window.console.log(error)
-          loading()
-        })
-      },
-      rowUpdate(row, index, done, loading) {
-        update(row).then(() => {
-          this.initFlag = false
-          this.onLoad(this.page)
-          this.$message({
-            type: "success",
-            message: "操作成功!"
-          })
-          done()
-        }, error => {
-          window.console.log(error)
-          loading()
-        })
-      },
-      rowDel(row) {
-        this.$confirm("确定将选择数据删除?", {
-            confirmButtonText: "确定",
-            cancelButtonText: "取消",
-            type: "warning"
-          })
-          .then(() => {
-            return remove(row.id)
-          })
-          .then(() => {
-            this.onLoad(this.page)
-            this.$message({
-              type: "success",
-              message: "操作成功!"
-            })
-          })
-      },
-      searchReset() {
-        this.query = {}
-        this.treeDeptId = ''
-        this.onLoad(this.page)
-      },
-      searchChange(params, done) {
-        this.query = params
-        this.page.currentPage = 1
-        this.onLoad(this.page, params)
-        done()
-      },
-      selectionChange(list) {
-        this.selectionList = list
-      },
-      selectionClear() {
-        this.selectionList = []
-        // this.$refs.crud.toggleSelection();
-      },
-      handleDelete() {
-        if (this.selectionList.length === 0) {
-          this.$message.warning("请选择至少一条数据")
-          return
-        }
-        this.$confirm("确定将选择数据删除?", {
-            confirmButtonText: "确定",
-            cancelButtonText: "取消",
-            type: "warning"
-          })
-          .then(() => {
-            return remove(this.ids)
-          })
-          .then(() => {
-            this.onLoad(this.page)
-            this.$message({
-              type: "success",
-              message: "操作成功!"
-            })
-            this.$refs.crud.toggleSelection()
-          })
-      },
-      handleImport() {
-        this.excelBox = true
-      },
-      uploadAfter(res, done, loading, column) {
-        this.excelBox = false
-        this.refreshChange()
-        done()
-      },
-      handleExport() {
-        this.$confirm("是否导出住户数据?", "提示", {
-          confirmButtonText: "确定",
-          cancelButtonText: "取消",
-          type: "warning"
-        }).then(() => {
-          NProgress.start()
-          var data = {
-            ...this.query
-          }
-          data = Qs.stringify(data)
-          exportBlob(
-            `/api/blade-household/household/export-household?${this.website.tokenHeader}=${getToken()}&` + data
-          ).then(res => {
-            downloadXls(res.data, `住户数据表${dateNow()}.xlsx`)
-            NProgress.done()
-          })
-        })
-      },
-      handleTemplate() {
-        exportBlob(`/api/blade-system/user/export-template?${this.website.tokenHeader}=${getToken()}`).then(res => {
-          downloadXls(res.data, "住户数据模板.xlsx")
-        })
-      },
-      beforeOpen(done, type) {
-        if (["edit", "view"].includes(type)) {
-          getDetatils(this.form.id).then(res => {
-            this.form = res.data.data
-            done()
-          })
-        }
-        this.initFlag = true
-      },
-      currentChange(currentPage) {
-        this.page.currentPage = currentPage
-      },
-      sizeChange(pageSize) {
-        this.page.pageSize = pageSize
-      },
-      refreshChange() {
-        this.onLoad(this.page, this.query)
-      },
 
-      onLoad(page, params = {}) {
-        this.loading = true
-
-        getList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
-          const data = {
-            ...res.data.data,
-            records: res.data.data.records.map(item => {
-              return {
-                ...item,
-                'phoneNumberflag': false,
-                'idCardflag': false
               }
             })
-          }
-
-          this.page.total = data.total
-          this.data = data.records
+          })
+          this.labelData = data
           this.loading = false
-          this.selectionClear()
         })
-      },
-
-      showStringDispose(row, type) {
-        row[type] = !row[type]
+      })
+    },
+    rowSave(row, done, loading) {
+      add(row).then(() => {
+        this.initFlag = false
+        this.onLoad(this.page)
+        this.$message({
+          type: "success",
+          message: "操作成功!"
+        })
+        done()
+      }, error => {
+        window.console.log(error)
+        loading()
+      })
+    },
+    rowUpdate(row, index, done, loading) {
+      update(row).then(() => {
+        this.initFlag = false
+        this.onLoad(this.page)
+        this.$message({
+          type: "success",
+          message: "操作成功!"
+        })
+        done()
+      }, error => {
+        window.console.log(error)
+        loading()
+      })
+    },
+    rowDel(row) {
+      this.$confirm("确定将选择数据删除?", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      })
+        .then(() => {
+          return remove(row.id)
+        })
+        .then(() => {
+          this.onLoad(this.page)
+          this.$message({
+            type: "success",
+            message: "操作成功!"
+          })
+        })
+    },
+    searchReset() {
+      this.query = {}
+      this.treeDeptId = ''
+      this.onLoad(this.page)
+    },
+    searchChange(params, done) {
+      this.query = params
+      this.page.currentPage = 1
+      this.onLoad(this.page, params)
+      done()
+    },
+    selectionChange(list) {
+      this.selectionList = list
+    },
+    selectionClear() {
+      this.selectionList = []
+      // this.$refs.crud.toggleSelection();
+    },
+    handleDelete() {
+      if (this.selectionList.length === 0) {
+        this.$message.warning("请选择至少一条数据")
+        return
       }
+      this.$confirm("确定将选择数据删除?", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      })
+        .then(() => {
+          return remove(this.ids)
+        })
+        .then(() => {
+          this.onLoad(this.page)
+          this.$message({
+            type: "success",
+            message: "操作成功!"
+          })
+          this.$refs.crud.toggleSelection()
+        })
+    },
+    handleImport() {
+      this.excelBox = true
+    },
+    uploadAfter(res, done, loading, column) {
+      this.excelBox = false
+      this.refreshChange()
+      done()
+    },
+    handleExport() {
+      this.$confirm("是否导出住户数据?", "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      }).then(() => {
+        NProgress.start()
+        var data = {
+          ...this.query
+        }
+        data = Qs.stringify(data)
+        exportBlob(
+          `/api/blade-household/household/export-household?${this.website.tokenHeader}=${getToken()}&` + data
+        ).then(res => {
+          downloadXls(res.data, `住户数据表${dateNow()}.xlsx`)
+          NProgress.done()
+        })
+      })
+    },
+    handleTemplate() {
+      exportBlob(`/api/blade-system/user/export-template?${this.website.tokenHeader}=${getToken()}`).then(res => {
+        downloadXls(res.data, "住户数据模板.xlsx")
+      })
+    },
+    beforeOpen(done, type) {
+      if (["edit", "view"].includes(type)) {
+        getDetatils(this.form.id).then(res => {
+          this.form = res.data.data
+          done()
+        })
+      }
+      this.initFlag = true
+    },
+    currentChange(currentPage) {
+      this.page.currentPage = currentPage
+    },
+    sizeChange(pageSize) {
+      this.page.pageSize = pageSize
+    },
+    refreshChange() {
+      this.onLoad(this.page, this.query)
+    },
+
+    onLoad(page, params = {}) {
+      this.loading = true
+
+      getList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
+        const data = {
+          ...res.data.data,
+          records: res.data.data.records.map(item => {
+            return {
+              ...item,
+              'phoneNumberflag': false,
+              'idCardflag': false
+            }
+          })
+        }
+
+        this.page.total = data.total
+        this.data = data.records
+        this.loading = false
+        this.selectionClear()
+      })
+    },
+
+    showStringDispose(row, type) {
+      row[type] = !row[type]
     }
   }
+}
 </script>
 
 <style lang="scss" scoped>
-  .box {
-    height: 800px;
-  }
+.box {
+  height: 800px;
+}
 
-  .grid-container2 {
-    /* display: grid;
+.grid-container2 {
+  /* display: grid;
     grid-template-columns: auto auto auto auto;
     grid-gap: 10px; */
-    display: flex;
-    flex-wrap: wrap;
-    padding-bottom: 20px;
-  }
+  display: flex;
+  flex-wrap: wrap;
+  padding-bottom: 20px;
+}
 
-  .grid-item {
-    padding: 8px 14px;
-    border: 1px solid #dcdfe6;
-    margin-right: 10px;
-    margin-bottom: 10px;
-    border-radius: 20px;
-  }
+.grid-item {
+  padding: 8px 14px;
+  border: 1px solid #dcdfe6;
+  margin-right: 10px;
+  margin-bottom: 10px;
+  border-radius: 20px;
+}
 
-  .grid-item:hover {
-    background-color: #e8f4ff;
-    color: #017BFC;
-    cursor: pointer;
-  }
+.grid-item:hover {
+  background-color: #e8f4ff;
+  color: #017BFC;
+  cursor: pointer;
+}
 
-  .el-scrollbar {
-    height: 100%;
-  }
+.el-scrollbar {
+  height: 100%;
+}
 
-  .box .el-scrollbar__wrap {
-    overflow: scroll;
-  }
+.box .el-scrollbar__wrap {
+  overflow: scroll;
+}
 
-  :deep(.el-form-item__content) {
-    text-align: left !important;
-  }
+:deep(.el-form-item__content) {
+  text-align: left !important;
+}
 
-  :deep(.avue-form__menu--center .el-button) {
-    margin: 0 5px 0 0;
-  }
+:deep(.avue-form__menu--center .el-button) {
+  margin: 0 5px 0 0;
+}
 </style>
\ No newline at end of file
diff --git a/vue.config.js b/vue.config.js
index 80cb24d..8d63659 100644
--- a/vue.config.js
+++ b/vue.config.js
@@ -38,7 +38,7 @@
         proxy: {
             "/api": {
                 //本地服务接口地址
-                target:"http://192.168.2.140:9528",
+                target:"http://192.168.2.111:9528",
                 // target: "https://srgdjczzxtpt.com:2080/api",
                 // target: "https://kt39592615.goho.co",
                 // target: "http://z4042833u6.wicp.vip",

--
Gitblit v1.9.3