yahyahy 3 vuotta sitten
vanhempi
commit
e43ce1421c
40 muutettua tiedostoa jossa 8677 lisäystä ja 2041 poistoa
  1. 108 0
      src/api/index.js
  2. 152 0
      src/api/system/bin.js
  3. 23 4
      src/api/system/claim.js
  4. 33 0
      src/api/system/config.js
  5. 9 0
      src/api/system/eturnees.js
  6. 30 1
      src/api/system/resident.js
  7. 188 0
      src/api/system/residentss.js
  8. BIN
      src/assets/images/icon_ewmdl@2x.png
  9. BIN
      src/assets/images/icon_htgl_myc_normal.png
  10. BIN
      src/assets/images/icon_htgl_myc_selected.png
  11. BIN
      src/assets/images/icon_htgl_mzc_normal.png
  12. BIN
      src/assets/images/icon_htgl_mzc_selected.png
  13. BIN
      src/assets/images/icon_htgl_smrs_normal.png
  14. BIN
      src/assets/images/icon_htgl_smrs_selected.png
  15. BIN
      src/assets/images/icon_htgl_wdyc_normal.png
  16. BIN
      src/assets/images/icon_htgl_wdyc_selected.png
  17. BIN
      src/assets/images/login-background.jpg
  18. BIN
      src/assets/images/profile.jpg
  19. 1 1
      src/layout/components/Sidebar/Logo.vue
  20. 2 2
      src/settings.js
  21. 109 52
      src/views/dashboard/BarChart.vue
  22. 13 7
      src/views/dashboard/LineChart.vue
  23. 127 102
      src/views/dashboard/PanelGroup.vue
  24. 167 0
      src/views/dashboard/PanelGroupfour.vue
  25. 167 0
      src/views/dashboard/PanelGroupone.vue
  26. 167 0
      src/views/dashboard/PanelGroups.vue
  27. 167 0
      src/views/dashboard/PanelGroupther.vue
  28. 167 0
      src/views/dashboard/PanelGrouptwo.vue
  29. 93 28
      src/views/dashboard/PieChart.vue
  30. 235 63
      src/views/dashboard/RaddarChart.vue
  31. 8 0
      src/views/dashboard/RatioIndex.vue
  32. 484 1367
      src/views/index.vue
  33. 1 1
      src/views/login.vue
  34. 1578 0
      src/views/system/bin/index.vue
  35. 782 151
      src/views/system/claim/index.vue
  36. 1289 0
      src/views/system/claimtwo/index.vue
  37. 38 14
      src/views/system/eturnees/index.vue
  38. 347 247
      src/views/system/resident/index.vue
  39. 2178 0
      src/views/system/residentss/index.vue
  40. 14 1
      src/views/system/user/index.vue

+ 108 - 0
src/api/index.js

@@ -0,0 +1,108 @@
+import request from '@/utils/request'
+
+
+// 圆环列表
+export function treeselect(query) {
+  return request({
+    url: '/sts/smsts/' + query ,
+    method: 'get'
+  })
+}
+
+// 圆环列表上部
+
+export function listTsde(query) {
+  return request({
+    url: '/boman-web-core/index/stsByCzrkHomePage' ,
+    method: 'get'
+  })
+}
+
+
+
+// 查询设备信息列表
+export function listDevice(query) {
+  return request({
+    url: '/sts/per/school/smmx',
+    method: 'get',
+    params: query
+  })
+}
+
+// 折线图
+export function listzhex(query) {
+  return request({
+    url: '/sts/twycrs/zrs',
+    method: 'get',
+    params: query
+  })
+}
+
+// 雷达图
+export function listleida(query) {
+  return request({
+    url: '/sts/echarts1 ',
+    method: 'get',
+    params: query
+  })
+}
+// 底部圆环数据
+export function listdbyh(query) {
+  return request({
+    url: '/sts/echarts2 ',
+    method: 'get',
+    params: query
+  })
+}
+// 柱状图数据
+export function listzhuzh(query) {
+  return request({
+    url: '/sts/echarts3 ',
+    method: 'get',
+    params: query
+  })
+}
+
+
+// 查询设备信息详细
+export function getDevice(id) {
+  return request({
+    url: '/school/device/' + id,
+    method: 'get'
+  })
+}
+
+// 新增设备信息
+export function addDevice(data) {
+  return request({
+    url: '/school/device',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改设备信息
+export function updateDevice(data) {
+  return request({
+    url: '/school/device',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除设备信息
+export function delDevice(id) {
+  return request({
+    url: '/school/device/' + id,
+    method: 'delete'
+  })
+}
+
+// 导出
+export function exportPost(query) {
+  return request({
+    url: '/sts/per/school/smmx/export',
+    method: 'get',
+    params: query
+  })
+}

+ 152 - 0
src/api/system/bin.js

@@ -0,0 +1,152 @@
+import request from '@/utils/request'
+
+// 查询疫苗信息列表
+export function listInfo(query) {
+  return request({
+    url: '/boman-web-core/core/ryrl/list',
+    method: 'get',
+    params: query
+  })
+}
+
+export function listInfotj(query) {
+  return request({
+    url: '/boman-web-core/core/czrk/stsByCzrk ',
+    method: 'get',
+    params: query
+  })
+}
+
+
+// 查询疫苗信息详细
+export function getInfo(id) {
+  return request({
+    url: '/boman-web-core/core/ryrl/getById/' + id,
+    method: 'get'
+  })
+}
+
+// 户籍地址 新增修改
+export function listRoleer(data) {
+  return request({
+    url: '/boman-web-core/administrativeInfo/treeSelect',
+    method: 'get',
+    // data
+  })
+}
+
+// 户籍地址 新增修改
+export function listRoleergth(data) {
+  return request({
+    url: '/boman-web-core/core/fxry/getSysRegion',
+    method: 'post',
+    data: data
+  })
+}
+
+
+// 户籍地址搜索
+export function listRoleerseavh(data) {
+  return request({
+    url: '/boman-web-core/administrativeInfo/treeSelectVillage',
+    method: 'get',
+    // data
+  })
+}
+
+
+// 新增人员信息
+export function addInfo(data) {
+  return request({
+    url: '/boman-web-core/core/ryrl/addRlry',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改疫苗信息
+export function updateInfo(data) {
+  return request({
+    url: '/boman-web-core/core/ryrl/editRlry',
+    method: 'post',
+    data: data
+  })
+}
+
+// 删除疫苗信息
+export function delInfo(query) {
+  return request({
+    url: '/boman-web-core/core/czrk/deleteCzrk' ,
+    method: 'get',
+    params: query
+
+  })
+}
+
+// 导出疫苗信息
+export function exportInfo(query) {
+  return request({
+    url: '/boman-web-core/core/info/export',
+    method: 'post',
+    data: query
+  })
+}
+
+// 查询身份证信息
+export function idces(query) {
+  return request({
+    url: '/boman-web-core/core/info/findHjInfo',
+    method: 'post',
+    data: query
+  })
+}
+// 导出参数
+export function exportConfig(query) {
+  return request({
+    url: '/boman-file/common/file/async/export',
+    method: 'post',
+    data: query
+  })
+}
+
+// 导出参数
+export function exportConfigtyr(query) {
+  return request({
+    url: '/boman-file/common/file/before/download ',
+    method: 'get',
+    params: query
+  })
+}
+
+// 删除疫苗名称信息
+export function delInfort(id) {
+  return request({
+    url: '/boman-web-core/core/info/vaccineInfoUser/' + id,
+    method: 'get'
+  })
+}
+
+// 列表查看疫苗信息
+export function yiaoe(query) {
+  return request({
+    url: '/boman-web-core/core/info/findInfoUser',
+    method: 'post',
+	data: query
+  })
+}
+
+export function delInfohy(query) {
+  return request({
+    url: '/boman-web-core/core/czrk/reduction/' + query,
+    method: 'get'
+  })
+}
+
+// 导出错误日志
+export function importLog(query){
+  return request({
+    url: '/boman-web-core/ymjzImportError/list',
+    method: 'get',
+    data: query
+  })
+}

+ 23 - 4
src/api/system/claim.js

@@ -9,6 +9,15 @@ export function listInfo(query) {
   })
 }
 
+
+export function delInfohy(query) {
+  return request({
+    url: '/boman-web-core/core/czrk/reduction/' + query,
+    method: 'get'
+  })
+}
+
+
 // 查询疫苗信息详细
 export function getInfo(id) {
   return request({
@@ -55,10 +64,11 @@ export function updateInfo(data) {
 }
 
 // 删除疫苗信息
-export function delInfo(id) {
+export function delInfo(query) {
   return request({
-    url: '/boman-web-core/core/info/' + id,
-    method: 'delete'
+    url: '/boman-web-core/core/czrk/deleteCzrk' ,
+    method: 'get',
+    params: query
   })
 }
 
@@ -71,10 +81,19 @@ export function exportInfo(query) {
   })
 }
 
+// // 查询身份证信息
+// export function idces(query) {
+//   return request({
+//     url: '/boman-web-core/core/info/findHjInfo',
+//     method: 'post',
+//     data: query
+//   })
+// }
+
 // 查询身份证信息
 export function idces(query) {
   return request({
-    url: '/boman-web-core/core/info/findHjInfo',
+    url: '/boman-web-core/core/czrk/findHjInfo',
     method: 'post',
     data: query
   })

+ 33 - 0
src/api/system/config.js

@@ -9,6 +9,39 @@ export function listConfig(query) {
   })
 }
 
+export function listInfotj(query) {
+  return request({
+    url: '/boman-web-core/core/czrk/stsByCzrkHomePage',
+    method: 'get',
+    params: query
+  })
+}
+export function delInfohy(query) {
+  return request({
+    url: '/boman-web-core/core/czrk/reduction/' + query,
+    method: 'get'
+  })
+}
+
+
+// 新增人员列表
+export function listInfotjxz(query) {
+  return request({
+    url: '/boman-web-core/core/czrk/listByXz',
+    method: 'get',
+    params: query
+  })
+}
+
+// 减少人员列表
+export function listInfotjjs(query) {
+  return request({
+    url: '/boman-web-core/core/czrk/listByJs',
+    method: 'get',
+    params: query
+  })
+}
+
 export function listIndextwo(query) {
   return request({
     url: '/system/dict/data/type/' + query,

+ 9 - 0
src/api/system/eturnees.js

@@ -9,6 +9,15 @@ export function listInfo(query) {
   })
 }
 
+// // 查询疫苗信息列表
+// export function listInfo(query) {
+//   return request({
+//     url: '/boman-web-core/core/fxry/getSysRegion',
+//     method: 'post',
+//    data: query
+//   })
+// }
+
 // 查询疫苗信息详细
 export function getInfo(id) {
   return request({

+ 30 - 1
src/api/system/resident.js

@@ -18,6 +18,35 @@ export function listInfotj(query) {
 }
 
 
+// 新增人员列表
+export function listInfotjxz(query) {
+  return request({
+    url: '/boman-web-core/core/czrk/listByXz',
+    method: 'get',
+    params: query
+  })
+}
+
+// 减少人员列表
+export function listInfotjjs(query) {
+  return request({
+    url: '/boman-web-core/core/czrk/listByJs',
+    method: 'get',
+    params: query
+  })
+}
+
+
+// 家庭成员信息
+export function listInfotjjsfaml(query) {
+  return request({
+    url: '/boman-web-core/core/czrk/family/' + query,
+    method: 'get'
+    // params: query
+  })
+}
+
+
 // 查询疫苗信息详细
 export function getInfo(id) {
   return request({
@@ -38,7 +67,7 @@ export function listRoleer(data) {
 // 户籍地址 新增修改
 export function listRoleergth(data) {
   return request({
-    url: '/core/fxry/select',
+    url: '/boman-web-core/core/fxry/getSysRegion',
     method: 'post',
     data: data
   })

+ 188 - 0
src/api/system/residentss.js

@@ -0,0 +1,188 @@
+import request from '@/utils/request'
+
+// 查询疫苗信息列表
+export function listInfo(query) {
+  return request({
+    url: '/boman-web-core/core/ryrl/list',
+    method: 'get',
+    params: query
+  })
+}
+
+export function listInfotj(query) {
+  return request({
+    url: '/boman-web-core/core/czrk/stsByCzrk ',
+    method: 'get',
+    params: query
+  })
+}
+
+
+// 新增人员列表
+export function listInfotjxz(query) {
+  return request({
+    url: '/boman-web-core/core/czrk/listByXz',
+    method: 'get',
+    params: query
+  })
+}
+
+// 减少人员列表
+export function listInfotjjs(query) {
+  return request({
+    url: '/boman-web-core/core/czrk/listByJs',
+    method: 'get',
+    params: query
+  })
+}
+
+
+// 家庭成员信息
+export function listInfotjjsfaml(query) {
+  return request({
+    url: '/boman-web-core/core/czrk/family/' + query,
+    method: 'get'
+    // params: query
+  })
+}
+
+
+
+
+
+// 查询疫苗信息详细
+export function getInfo(id) {
+  return request({
+    url: '/boman-web-core/core/ryrl/getById/' + id,
+    method: 'get'
+  })
+}
+
+// 户籍地址 新增修改
+export function listRoleer(data) {
+  return request({
+    url: '/boman-web-core/administrativeInfo/treeSelect',
+    method: 'get',
+    // data
+  })
+}
+
+// 户籍地址 新增修改
+export function listRoleergth(data) {
+  return request({
+    url: '/boman-web-core/core/fxry/getSysRegion',
+    method: 'post',
+    data: data
+  })
+}
+
+
+// 户籍地址搜索
+export function listRoleerseavh(data) {
+  return request({
+    url: '/boman-web-core/administrativeInfo/treeSelectVillage',
+    method: 'get',
+    // data
+  })
+}
+
+
+// 新增人员信息
+export function addInfo(data) {
+  return request({
+    url: '/boman-web-core/core/ryrl/addRlry',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改疫苗信息
+export function updateInfo(data) {
+  return request({
+    url: '/boman-web-core/core/ryrl/editRlry',
+    method: 'post',
+    data: data
+  })
+}
+
+// 删除疫苗信息
+export function delInfo(query) {
+  return request({
+    url: '/boman-web-core/core/czrk/deleteCzrk' ,
+    method: 'get',
+    params: query
+
+  })
+}
+
+// 导出疫苗信息
+export function exportInfo(query) {
+  return request({
+    url: '/boman-web-core/core/info/export',
+    method: 'post',
+    data: query
+  })
+}
+
+// 查询身份证信息
+// export function idces(query) {
+//   return request({
+//     url: '/boman-web-core/core/info/findHjInfo',
+//     method: 'post',
+//     data: query
+//   })
+// }
+
+// 查询身份证信息
+export function idces(query) {
+  return request({
+    url: '/boman-web-core/core/czrk/findHjInfo',
+    method: 'post',
+    data: query
+  })
+}
+
+
+// 导出参数
+export function exportConfig(query) {
+  return request({
+    url: '/boman-file/common/file/async/export',
+    method: 'post',
+    data: query
+  })
+}
+
+// 导出参数
+export function exportConfigtyr(query) {
+  return request({
+    url: '/boman-file/common/file/before/download ',
+    method: 'get',
+    params: query
+  })
+}
+
+// 删除疫苗名称信息
+export function delInfort(id) {
+  return request({
+    url: '/boman-web-core/core/info/vaccineInfoUser/' + id,
+    method: 'get'
+  })
+}
+
+// 列表查看疫苗信息
+export function yiaoe(query) {
+  return request({
+    url: '/boman-web-core/core/info/findInfoUser',
+    method: 'post',
+	data: query
+  })
+}
+
+// 导出错误日志
+export function importLog(query){
+  return request({
+    url: '/boman-web-core/ymjzImportError/list',
+    method: 'get',
+    data: query
+  })
+}

BIN
src/assets/images/icon_ewmdl@2x.png


BIN
src/assets/images/icon_htgl_myc_normal.png


BIN
src/assets/images/icon_htgl_myc_selected.png


BIN
src/assets/images/icon_htgl_mzc_normal.png


BIN
src/assets/images/icon_htgl_mzc_selected.png


BIN
src/assets/images/icon_htgl_smrs_normal.png


BIN
src/assets/images/icon_htgl_smrs_selected.png


BIN
src/assets/images/icon_htgl_wdyc_normal.png


BIN
src/assets/images/icon_htgl_wdyc_selected.png


BIN
src/assets/images/login-background.jpg


BIN
src/assets/images/profile.jpg


+ 1 - 1
src/layout/components/Sidebar/Logo.vue

@@ -36,7 +36,7 @@ export default {
   },
   data() {
     return {
-      title: '潜山市防疫数据平台',
+      title: '潜山市数据平台',
       logo: logoImg
     }
   }

+ 2 - 2
src/settings.js

@@ -1,9 +1,9 @@
 module.exports = {
   title: '潜山市防疫数据平台',
   // urls: `http://118.178.139.79:7090`,
-  // urls: `http://192.168.101.110:8090`,
+  urls: `http://192.168.101.110:8090`,
   // urls: `http://192.168.101.11:8090`,
-   urls: `https://qsfy.qs163.cn`,
+   // urls: `https://qsfy.qs163.cn`,
 
   /**
    * 侧边栏主题 深色主题theme-dark,浅色主题theme-light

+ 109 - 52
src/views/dashboard/BarChart.vue

@@ -23,6 +23,18 @@ export default {
     height: {
       type: String,
       default: '300px'
+    },
+    chartData: {
+      type: Object,
+      required: true
+    }
+  },
+  watch: {
+    chartData: {
+      deep: true,
+      handler(val) {
+        this.setOptions(val)
+      }
     }
   },
   data() {
@@ -44,59 +56,104 @@ export default {
   },
   methods: {
     initChart() {
+      this.chart = echarts.init(this.$el, 'macarons');
       this.chart = echarts.init(this.$el, 'macarons')
-
-      this.chart.setOption({
-        tooltip: {
-          trigger: 'axis',
-          axisPointer: { // 坐标轴指示器,坐标轴触发有效
-            type: 'shadow' // 默认为直线,可选为:'line' | 'shadow'
-          }
-        },
-        grid: {
-          top: 10,
-          left: '2%',
-          right: '2%',
-          bottom: '3%',
-          containLabel: true
-        },
-        xAxis: [{
-          type: 'category',
-          data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
-          axisTick: {
-            alignWithLabel: true
-          }
-        }],
-        yAxis: [{
-          type: 'value',
-          axisTick: {
-            show: false
-          }
-        }],
-        series: [{
-          name: 'pageA',
-          type: 'bar',
-          stack: 'vistors',
-          barWidth: '60%',
-          data: [79, 52, 200, 334, 390, 330, 220],
-          animationDuration
-        }, {
-          name: 'pageB',
-          type: 'bar',
-          stack: 'vistors',
-          barWidth: '60%',
-          data: [80, 52, 200, 334, 390, 330, 220],
-          animationDuration
-        }, {
-          name: 'pageC',
-          type: 'bar',
-          stack: 'vistors',
-          barWidth: '60%',
-          data: [30, 52, 200, 334, 390, 330, 220],
-          animationDuration
-        }]
-      })
-    }
+      this.setOptions(this.chartData)
+    },
+      setOptions({ y, x ,data } = {}) {
+        console.log(y,x,data,56)
+       this.chart.setOption({
+         tooltip: {
+           trigger: 'axis',
+           axisPointer: { // 坐标轴指示器,坐标轴触发有效
+             type: 'shadow' // 默认为直线,可选为:'line' | 'shadow'
+           }
+         },
+         grid: {
+           top: 10,
+           left: '2%',
+           right: '2%',
+           bottom: '3%',
+           containLabel: true
+         },
+         xAxis: [{
+           type: 'category',
+           data: y,
+           axisTick: {
+             alignWithLabel: true
+           },
+           axisLine: {   //  控制x轴线的样式
+                              lineStyle: {
+                                   type: 'solid',
+                                  color: '#CECECE',
+                                   width:'1' }
+                                }
+         }],
+         yAxis: [{
+           type: 'value',
+           axisTick: {
+             show: false
+           },
+            axisLine: {
+                               lineStyle: {
+                                    type: 'solid',
+                                     color: '#CECECE',
+                                   width:'1'
+                               }
+                              }
+         }],
+         series: [{
+           name: '绿码',
+           type: 'bar',
+           stack: 'vistors',
+           barWidth: '40%',
+           itemStyle: {
+           normal: {
+           color: '#8ecd72',
+           }
+           },
+           data: x[0].data,
+           animationDuration
+         }, {
+           name: '灰码',
+           type: 'bar',
+           stack: 'vistors',
+           barWidth: '40%',
+           data: x[2].data,
+           itemStyle: {
+           normal: {
+           color: '#536fcd',
+           }
+           },
+           animationDuration
+         }, {
+           name: '未申领',
+           type: 'bar',
+           stack: 'vistors',
+           barWidth: '40%',
+           data: x[3].data,
+           itemStyle: {
+           normal: {
+           color: '#f1c250',
+           }
+           },
+           animationDuration
+         },
+         {
+           name: '红码',
+           type: 'bar',
+           stack: 'vistors',
+           barWidth: '40%',
+           data: x[1].data,
+           itemStyle: {
+           normal: {
+           color: '#e96a62',
+           }
+           },
+           animationDuration
+         }]
+       })
+      }
   }
 }
 </script>

+ 13 - 7
src/views/dashboard/LineChart.vue

@@ -60,11 +60,17 @@ export default {
     initChart() {
       this.chart = echarts.init(this.$el, 'macarons')
       this.setOptions(this.chartData)
+
     },
-    setOptions({ expectedData, actualData } = {}) {
+    setOptions({ x, y } = {}) {
+      // console.log(x,y[0].data,45)
+      const datayc = y[0].data
+      const datazrs = y[1].data
+      const nameyc = y[0].name
+      const namezrs = y[1].name
       this.chart.setOption({
         xAxis: {
-          data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
+          data: x,
           boundaryGap: false,
           axisTick: {
             show: false
@@ -90,10 +96,10 @@ export default {
           }
         },
         legend: {
-          data: ['expected', 'actual']
+          data: [nameyc, namezrs]
         },
         series: [{
-          name: 'expected', itemStyle: {
+          name: nameyc, itemStyle: {
             normal: {
               color: '#FF005A',
               lineStyle: {
@@ -104,12 +110,12 @@ export default {
           },
           smooth: true,
           type: 'line',
-          data: expectedData,
+          data: datayc,
           animationDuration: 2800,
           animationEasing: 'cubicInOut'
         },
         {
-          name: 'actual',
+          name: namezrs,
           smooth: true,
           type: 'line',
           itemStyle: {
@@ -124,7 +130,7 @@ export default {
               }
             }
           },
-          data: actualData,
+          data:datazrs,
           animationDuration: 2800,
           animationEasing: 'quadraticOut'
         }]

+ 127 - 102
src/views/dashboard/PanelGroup.vue

@@ -3,52 +3,57 @@
     <el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
       <div class="card-panel" @click="handleSetLineChartData('newVisitis')">
         <div class="card-panel-icon-wrapper icon-people">
-          <svg-icon icon-class="peoples" class-name="card-panel-icon" />
+          <!-- <svg-icon icon-class="peoples" class-name="card-panel-icon" /> -->
         </div>
         <div class="card-panel-description">
           <div class="card-panel-text">
-            访客
+            总扫码人次数
           </div>
-          <count-to :start-val="0" :end-val="102400" :duration="2600" class="card-panel-num" />
+          <count-to :start-val="0" :end-val="total" :duration="2600" class="card-panel-num" />
         </div>
       </div>
     </el-col>
     <el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
       <div class="card-panel" @click="handleSetLineChartData('messages')">
         <div class="card-panel-icon-wrapper icon-message">
-          <svg-icon icon-class="message" class-name="card-panel-icon" />
+          <!-- <svg-icon icon-class="message" class-name="card-panel-icon" /> -->
         </div>
         <div class="card-panel-description">
           <div class="card-panel-text">
-            消息
+            绿码
           </div>
-          <count-to :start-val="0" :end-val="81212" :duration="3000" class="card-panel-num" />
+          <count-to :start-val="0" :end-val="greenCode" :duration="3000" class="card-panel-num" />
         </div>
       </div>
     </el-col>
     <el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
       <div class="card-panel" @click="handleSetLineChartData('purchases')">
         <div class="card-panel-icon-wrapper icon-money">
-          <svg-icon icon-class="money" class-name="card-panel-icon" />
+          <!-- <svg-icon icon-class="money" class-name="card-panel-icon" /> -->
         </div>
         <div class="card-panel-description">
           <div class="card-panel-text">
-            金额
+            红码:
+            <count-to :start-val="0" :end-val="redCode" :duration="3200" class="card-panel-num" /> <br>
+            灰码:
+            <count-to :start-val="0" :end-val="gaeyCode" :duration="3200" class="card-panel-num" /> <br>
+            未申请:
+            <count-to :start-val="0" :end-val="notapplied" :duration="3200" class="card-panel-num" />
           </div>
-          <count-to :start-val="0" :end-val="9280" :duration="3200" class="card-panel-num" />
+
         </div>
       </div>
     </el-col>
     <el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
       <div class="card-panel" @click="handleSetLineChartData('shoppings')">
         <div class="card-panel-icon-wrapper icon-shopping">
-          <svg-icon icon-class="shopping" class-name="card-panel-icon" />
+          <!-- <svg-icon icon-class="shopping" class-name="card-panel-icon" /> -->
         </div>
         <div class="card-panel-description">
           <div class="card-panel-text">
-            订单
+            体温异常
           </div>
-          <count-to :start-val="0" :end-val="13600" :duration="3600" class="card-panel-num" />
+          <count-to :start-val="0" :end-val="emperature" :duration="3600" class="card-panel-num" />
         </div>
       </div>
     </el-col>
@@ -56,126 +61,146 @@
 </template>
 
 <script>
-import CountTo from 'vue-count-to'
-
-export default {
-  components: {
-    CountTo
-  },
-  methods: {
-    handleSetLineChartData(type) {
-      this.$emit('handleSetLineChartData', type)
+  import CountTo from 'vue-count-to'
+
+  export default {
+    components: {
+      CountTo
+    },
+    data(){
+      return{
+        total:102405,
+        greenCode:81258,
+        redCode:25,
+        gaeyCode:39,
+        notapplied:83,
+        emperature:36974
+      }
+    },
+    methods: {
+      handleSetLineChartData(type) {
+        this.$emit('handleSetLineChartData', type)
+      }
     }
   }
-}
 </script>
 
 <style lang="scss" scoped>
-.panel-group {
-  margin-top: 18px;
+  .panel-group {
+    margin-top: 18px;
 
-  .card-panel-col {
-    margin-bottom: 32px;
-  }
+    .card-panel-col {
+      margin-bottom: 32px;
+    }
 
-  .card-panel {
-    height: 108px;
-    cursor: pointer;
-    font-size: 12px;
-    position: relative;
-    overflow: hidden;
-    color: #666;
-    background: #fff;
-    box-shadow: 4px 4px 40px rgba(0, 0, 0, .05);
-    border-color: rgba(0, 0, 0, .05);
-
-    &:hover {
-      .card-panel-icon-wrapper {
-        color: #fff;
+    .card-panel {
+      height: 108px;
+      cursor: pointer;
+      font-size: 12px;
+      position: relative;
+      overflow: hidden;
+      color: #666;
+      background: #fff;
+      box-shadow: 4px 4px 40px rgba(0, 0, 0, .05);
+      border-color: rgba(0, 0, 0, .05);
+
+      &:hover {
+        .card-panel-icon-wrapper {
+          color: #fff;
+        }
+
+        .icon-people {
+          background: url('../../assets/images/icon_htgl_smrs_selected.png') no-repeat;
+          background-size: 100% 100%;
+        }
+
+        .icon-message {
+          background: url('../../assets/images/icon_htgl_mzc_selected.png') no-repeat;
+          background-size: 100% 100%;
+        }
+
+        .icon-money {
+          background: url('../../assets/images/icon_htgl_myc_selected.png') no-repeat;
+          background-size: 100% 100%;
+        }
+
+        .icon-shopping {
+          background: url('../../assets/images/icon_htgl_wdyc_selected.png') no-repeat;
+          background-size: 100% 100%;
+        }
       }
 
       .icon-people {
-        background: #40c9c6;
+        background: url('../../assets/images/icon_htgl_smrs_normal.png') no-repeat;
+        background-size: 100% 100%;
       }
 
       .icon-message {
-        background: #36a3f7;
+        background: url('../../assets/images/icon_htgl_mzc_normal.png') no-repeat;
+        background-size: 100% 100%;
       }
 
       .icon-money {
-        background: #f4516c;
+        background: url('../../assets/images/icon_htgl_myc_normal.png') no-repeat;
+        background-size: 100% 100%;
       }
 
       .icon-shopping {
-        background: #34bfa3
+        background: url('../../assets/images/icon_htgl_wdyc_normal.png') no-repeat;
+        background-size: 100% 100%;
       }
-    }
-
-    .icon-people {
-      color: #40c9c6;
-    }
-
-    .icon-message {
-      color: #36a3f7;
-    }
-
-    .icon-money {
-      color: #f4516c;
-    }
-
-    .icon-shopping {
-      color: #34bfa3
-    }
-
-    .card-panel-icon-wrapper {
-      float: left;
-      margin: 14px 0 0 14px;
-      padding: 16px;
-      transition: all 0.38s ease-out;
-      border-radius: 6px;
-    }
 
-    .card-panel-icon {
-      float: left;
-      font-size: 48px;
-    }
+      .card-panel-icon-wrapper {
+        float: left;
+        margin: 14px 0 0 14px;
+        width: 80px;
+        height: 80px;
+        transition: all 0.38s ease-out;
+        border-radius: 6px;
+      }
 
-    .card-panel-description {
-      float: right;
-      font-weight: bold;
-      margin: 26px;
-      margin-left: 0px;
-
-      .card-panel-text {
-        line-height: 18px;
-        color: rgba(0, 0, 0, 0.45);
-        font-size: 16px;
-        margin-bottom: 12px;
+      .card-panel-icon {
+        float: left;
+        font-size: 48px;
       }
 
-      .card-panel-num {
-        font-size: 20px;
+      .card-panel-description {
+        float: right;
+        font-weight: bold;
+        margin: 26px;
+        margin-left: 0px;
+
+        .card-panel-text {
+          line-height: 18px;
+          color: rgba(0, 0, 0, 0.45);
+          font-size: 16px;
+          margin-bottom: 12px;
+        }
+
+        .card-panel-num {
+          font-size: 20px;
+          color: #000;
+        }
       }
     }
   }
-}
-
-@media (max-width:550px) {
-  .card-panel-description {
-    display: none;
-  }
 
-  .card-panel-icon-wrapper {
-    float: none !important;
-    width: 100%;
-    height: 100%;
-    margin: 0 !important;
+  @media (max-width:550px) {
+    .card-panel-description {
+      display: none;
+    }
 
-    .svg-icon {
-      display: block;
-      margin: 14px auto !important;
+    .card-panel-icon-wrapper {
       float: none !important;
+      width: 100%;
+      height: 100%;
+      margin: 0 !important;
+
+      .svg-icon {
+        display: block;
+        margin: 14px auto !important;
+        float: none !important;
+      }
     }
   }
-}
 </style>

+ 167 - 0
src/views/dashboard/PanelGroupfour.vue

@@ -0,0 +1,167 @@
+<template>
+  <div :class="className" :style="{ height: height, width: width }" />
+
+
+</template>
+
+<script>
+import echarts from 'echarts';
+require('echarts/theme/macarons'); // echarts theme
+import resize from './mixins/resize';
+
+export default {
+  mixins: [resize],
+  props: {
+    className: {
+      type: String,
+      default: 'chart'
+    },
+    width: {
+      type: String,
+      default: '150px'
+    },
+    height: {
+      type: String,
+      default: '150px'
+    },
+    autoResize: {
+      type: Boolean,
+      default: true
+    },
+    chartData: {
+      type: Object,
+      required: true
+    }
+  },
+  data() {
+    return {
+      chart: null
+    };
+  },
+  watch: {
+    chartData: {
+      deep: true,
+      handler(val) {
+        this.setOptions(val)
+      }
+    }
+  },
+  mounted() {
+    this.$nextTick(() => {
+      this.initChart();
+    });
+
+    console.log(this.chartData,58)
+  },
+  beforeDestroy() {
+    if (!this.chart) {
+      return;
+    }
+    this.chart.dispose();
+    this.chart = null;
+  },
+  methods: {
+    initChart() {
+      this.chart = echarts.init(this.$el, 'macarons');
+      this.chart = echarts.init(this.$el, 'macarons')
+      this.setOptions(this.chartData)
+
+    },
+
+    setOptions({ czzrs , czbfb,zrs } = {}) {
+      this.chart.setOption({
+        color: [new echarts.graphic.LinearGradient(1, 0, 0, 0, [{
+               offset: 0,
+               color: '#F69F24'
+           },
+           {
+               offset: 1,
+               color: '#F69F24'
+           }]), new echarts.graphic.LinearGradient(1, 1, 0, 0, [{
+               offset: 0,
+               color: '#FFE1B7'
+           },
+           {
+               offset: 0.9,
+               color: '#FFE1B7'
+           }]),],
+            tooltip: {
+                  trigger: 'item'
+              },
+              legend: {
+                  top: '10%',
+                  left: 'center',
+                  data:[]
+              },
+              // 设置环形中间的数据
+                  graphic: [{
+                      type: 'text',
+                      left: 'center',
+                      top: '47%',
+                      z: 10,
+                      style: {
+                          fill: '#F69F24',
+                          text: czbfb,
+                          font: '12px Microsoft YaHei'
+                      },
+                      textStyle: {
+                              color: "#F69F24",
+                              fontSize: 12,
+                              align: "center"
+                            }
+                  }],
+              series: [
+                  {
+                      name: '人口数据',
+                      type: 'pie',
+                      radius: ['50%', '70%'],
+                      center: ['center', '50%'],
+                      avoidLabelOverlap: false,
+                      // label: {
+                      //     show: false,
+                      //     position: 'center'
+                      // },
+                      // emphasis: {
+                      //     label: {
+                      //         show: true,
+                      //         fontSize: '17',
+                      //         fontWeight: '400',
+                      //         color:'#2497D5'
+                      //     }
+                      // },
+                      // labelLine: {
+                      //     show: true
+                      // },
+                      itemStyle: {
+                                  normal: {
+                                      label: {
+                                          show: false
+                                      },
+                                      labelLine: {
+                                          show: false
+                                      }
+                                  },
+                                  emphasis: {
+                                      label: {
+                                          show: false,
+                                          position: 'outer',
+                                          textStyle: {
+                                              fontSize: '15',
+                                              fontWeight: 'bold',
+                                              color: 'white'
+                                          }
+                                      }
+                                  }
+                              },
+                      data: [
+                        {value: czzrs, name: '常住总人数'},
+                        {value: zrs, name: '总人数'}
+
+                      ]
+                  }
+              ]
+      })
+    }
+  }
+};
+</script>

+ 167 - 0
src/views/dashboard/PanelGroupone.vue

@@ -0,0 +1,167 @@
+<template>
+  <div :class="className" :style="{ height: height, width: width }" />
+
+
+</template>
+
+<script>
+import echarts from 'echarts';
+require('echarts/theme/macarons'); // echarts theme
+import resize from './mixins/resize';
+
+export default {
+  mixins: [resize],
+  props: {
+    className: {
+      type: String,
+      default: 'chart'
+    },
+    width: {
+      type: String,
+      default: '150px'
+    },
+    height: {
+      type: String,
+      default: '150px'
+    },
+    autoResize: {
+      type: Boolean,
+      default: true
+    },
+    chartData: {
+      type: Object,
+      required: true
+    }
+  },
+  data() {
+    return {
+      chart: null
+    };
+  },
+  watch: {
+    chartData: {
+      deep: true,
+      handler(val) {
+        this.setOptions(val)
+      }
+    }
+  },
+  mounted() {
+    this.$nextTick(() => {
+      this.initChart();
+    });
+
+    console.log(this.chartData,58)
+  },
+  beforeDestroy() {
+    if (!this.chart) {
+      return;
+    }
+    this.chart.dispose();
+    this.chart = null;
+  },
+  methods: {
+    initChart() {
+      this.chart = echarts.init(this.$el, 'macarons');
+      this.chart = echarts.init(this.$el, 'macarons')
+      this.setOptions(this.chartData)
+
+    },
+
+    setOptions({ hongmrs, hongmrszb,jrsmrc } = {}) {
+      this.chart.setOption({
+        color: [new echarts.graphic.LinearGradient(1, 0, 0, 0, [{
+               offset: 0,
+               color: '#F52F2F'
+           },
+           {
+               offset: 1,
+               color: '#F52F2F'
+           }]), new echarts.graphic.LinearGradient(1, 1, 0, 0, [{
+               offset: 0,
+               color: '#FFCECE'
+           },
+           {
+               offset: 0.9,
+               color: '#FFCECE'
+           }]),],
+            tooltip: {
+                  trigger: 'item'
+              },
+              legend: {
+                  top: '10%',
+                  left: 'center',
+                  data:[]
+              },
+              // 设置环形中间的数据
+                  graphic: [{
+                      type: 'text',
+                      left: 'center',
+                      top: '46%',
+                      z: 10,
+                      style: {
+                          fill: '#F52F2F',
+                          text: hongmrszb,
+                          font: '16px Microsoft YaHei'
+                      },
+                      textStyle: {
+                              color: "#F52F2F",
+                              fontSize: 17,
+                              align: "center"
+                            }
+                  }],
+              series: [
+                  {
+                      name: '红码',
+                      type: 'pie',
+                      radius: ['50%', '70%'],
+                      center: ['center', '50%'],
+                      avoidLabelOverlap: false,
+                      // label: {
+                      //     show: false,
+                      //     position: 'center'
+                      // },
+                      // emphasis: {
+                      //     label: {
+                      //         show: true,
+                      //         fontSize: '17',
+                      //         fontWeight: '400',
+                      //         color:'#2497D5'
+                      //     }
+                      // },
+                      // labelLine: {
+                      //     show: true
+                      // },
+                      itemStyle: {
+                                  normal: {
+                                      label: {
+                                          show: false
+                                      },
+                                      labelLine: {
+                                          show: false
+                                      }
+                                  },
+                                  emphasis: {
+                                      label: {
+                                          show: false,
+                                          position: 'outer',
+                                          textStyle: {
+                                              fontSize: '15',
+                                              fontWeight: 'bold',
+                                              color: 'white'
+                                          }
+                                      }
+                                  }
+                              },
+                      data: [
+                        {value: hongmrs, name: '红码人数'},
+                          {value: jrsmrc, name: '扫码人数'}
+
+                      ]
+                  }
+              ]
+      })
+    }
+  }
+};
+</script>

+ 167 - 0
src/views/dashboard/PanelGroups.vue

@@ -0,0 +1,167 @@
+<template>
+  <div :class="className" :style="{ height: height, width: width }" />
+
+
+</template>
+
+<script>
+import echarts from 'echarts';
+require('echarts/theme/macarons'); // echarts theme
+import resize from './mixins/resize';
+
+export default {
+  mixins: [resize],
+  props: {
+    className: {
+      type: String,
+      default: 'chart'
+    },
+    width: {
+      type: String,
+      default: '150px'
+    },
+    height: {
+      type: String,
+      default: '150px'
+    },
+    autoResize: {
+      type: Boolean,
+      default: true
+    },
+    chartData: {
+      type: Object,
+      required: true
+    }
+  },
+  data() {
+    return {
+      chart: null
+    };
+  },
+  watch: {
+    chartData: {
+      deep: true,
+      handler(val) {
+        this.setOptions(val)
+      }
+    }
+  },
+  mounted() {
+    this.$nextTick(() => {
+      this.initChart();
+    });
+
+    console.log(this.chartData,58)
+  },
+  beforeDestroy() {
+    if (!this.chart) {
+      return;
+    }
+    this.chart.dispose();
+    this.chart = null;
+  },
+  methods: {
+    initChart() {
+      this.chart = echarts.init(this.$el, 'macarons');
+      this.chart = echarts.init(this.$el, 'macarons')
+      this.setOptions(this.chartData)
+
+    },
+
+    setOptions({ lmrs, lmrszb,jrsmrc } = {}) {
+      this.chart.setOption({
+        color: [new echarts.graphic.LinearGradient(1, 0, 0, 0, [{
+               offset: 0,
+               color: '#50BD04'
+           },
+           {
+               offset: 1,
+               color: '#50BD04'
+           }]), new echarts.graphic.LinearGradient(1, 1, 0, 0, [{
+               offset: 0,
+               color: '#C8E1B6'
+           },
+           {
+               offset: 0.9,
+               color: '#C8E1B6'
+           }]),],
+            tooltip: {
+                  trigger: 'item'
+              },
+              legend: {
+                  top: '10%',
+                  left: 'center',
+                  data:[]
+              },
+              // 设置环形中间的数据
+                  graphic: [{
+                      type: 'text',
+                      left: 'center',
+                      top: '46%',
+                      z: 10,
+                      style: {
+                          fill: '#50BD04',
+                          text: lmrszb,
+                          font: '16px Microsoft YaHei'
+                      },
+                      textStyle: {
+                              color: "#50BD04",
+                              fontSize: 17,
+                              align: "center"
+                            }
+                  }],
+              series: [
+                  {
+                      name: '绿码',
+                      type: 'pie',
+                      radius: ['50%', '70%'],
+                      center: ['center', '50%'],
+                      avoidLabelOverlap: false,
+                      // label: {
+                      //     show: false,
+                      //     position: 'center'
+                      // },
+                      // emphasis: {
+                      //     label: {
+                      //         show: true,
+                      //         fontSize: '17',
+                      //         fontWeight: '400',
+                      //         color:'#2497D5'
+                      //     }
+                      // },
+                      // labelLine: {
+                      //     show: true
+                      // },
+                      itemStyle: {
+                                  normal: {
+                                      label: {
+                                          show: false
+                                      },
+                                      labelLine: {
+                                          show: false
+                                      }
+                                  },
+                                  emphasis: {
+                                      label: {
+                                          show: false,
+                                          position: 'outer',
+                                          textStyle: {
+                                              fontSize: '15',
+                                              fontWeight: 'bold',
+                                              color: 'white'
+                                          }
+                                      }
+                                  }
+                              },
+                      data: [
+                        {value: lmrs, name: '绿码人数'},
+                          {value:jrsmrc, name: '扫码人数'}
+
+                      ]
+                  }
+              ]
+      })
+    }
+  }
+};
+</script>

+ 167 - 0
src/views/dashboard/PanelGroupther.vue

@@ -0,0 +1,167 @@
+<template>
+  <div :class="className" :style="{ height: height, width: width }" />
+
+
+</template>
+
+<script>
+import echarts from 'echarts';
+require('echarts/theme/macarons'); // echarts theme
+import resize from './mixins/resize';
+
+export default {
+  mixins: [resize],
+  props: {
+    className: {
+      type: String,
+      default: 'chart'
+    },
+    width: {
+      type: String,
+      default: '150px'
+    },
+    height: {
+      type: String,
+      default: '150px'
+    },
+    autoResize: {
+      type: Boolean,
+      default: true
+    },
+    chartData: {
+      type: Object,
+      required: true
+    }
+  },
+  data() {
+    return {
+      chart: null
+    };
+  },
+  watch: {
+    chartData: {
+      deep: true,
+      handler(val) {
+        this.setOptions(val)
+      }
+    }
+  },
+  mounted() {
+    this.$nextTick(() => {
+      this.initChart();
+    });
+
+    console.log(this.chartData,58)
+  },
+  beforeDestroy() {
+    if (!this.chart) {
+      return;
+    }
+    this.chart.dispose();
+    this.chart = null;
+  },
+  methods: {
+    initChart() {
+      this.chart = echarts.init(this.$el, 'macarons');
+      this.chart = echarts.init(this.$el, 'macarons')
+      this.setOptions(this.chartData)
+
+    },
+
+    setOptions({ hjzrs, hjbfb,zrs } = {}) {
+      this.chart.setOption({
+        color: [new echarts.graphic.LinearGradient(1, 0, 0, 0, [{
+               offset: 0,
+               color: '#9836C1'
+           },
+           {
+               offset: 1,
+               color: '#9836C1'
+           }]), new echarts.graphic.LinearGradient(1, 1, 0, 0, [{
+               offset: 0,
+               color: '#EBC8FA'
+           },
+           {
+               offset: 0.9,
+               color: '#EBC8FA'
+           }]),],
+            tooltip: {
+                  trigger: 'item'
+              },
+              legend: {
+                  top: '10%',
+                  left: 'center',
+                  data:[]
+              },
+              // 设置环形中间的数据
+                  graphic: [{
+                      type: 'text',
+                      left: 'center',
+                      top: '46%',
+                      z: 10,
+                      style: {
+                          fill: '#9836C1',
+                          text: hjbfb,
+                          font: '12px Microsoft YaHei'
+                      },
+                      textStyle: {
+                              color: "#9836C1",
+                              fontSize: 12,
+                              align: "center"
+                            }
+                  }],
+              series: [
+                  {
+                      name: '人口信息',
+                      type: 'pie',
+                      radius: ['50%', '70%'],
+                      center: ['center', '50%'],
+                      avoidLabelOverlap: false,
+                      // label: {
+                      //     show: false,
+                      //     position: 'center'
+                      // },
+                      // emphasis: {
+                      //     label: {
+                      //         show: true,
+                      //         fontSize: '17',
+                      //         fontWeight: '400',
+                      //         color:'#2497D5'
+                      //     }
+                      // },
+                      // labelLine: {
+                      //     show: true
+                      // },
+                      itemStyle: {
+                                  normal: {
+                                      label: {
+                                          show: false
+                                      },
+                                      labelLine: {
+                                          show: false
+                                      }
+                                  },
+                                  emphasis: {
+                                      label: {
+                                          show: false,
+                                          position: 'outer',
+                                          textStyle: {
+                                              fontSize: '15',
+                                              fontWeight: 'bold',
+                                              color: 'white'
+                                          }
+                                      }
+                                  }
+                              },
+                      data: [
+                        {value: hjzrs, name: '户籍人数'},
+                        {value: zrs, name: '总人数'}
+
+                      ]
+                  }
+              ]
+      })
+    }
+  }
+};
+</script>

+ 167 - 0
src/views/dashboard/PanelGrouptwo.vue

@@ -0,0 +1,167 @@
+<template>
+  <div :class="className" :style="{ height: height, width: width }" />
+
+
+</template>
+
+<script>
+import echarts from 'echarts';
+require('echarts/theme/macarons'); // echarts theme
+import resize from './mixins/resize';
+
+export default {
+  mixins: [resize],
+  props: {
+    className: {
+      type: String,
+      default: 'chart'
+    },
+    width: {
+      type: String,
+      default: '150px'
+    },
+    height: {
+      type: String,
+      default: '150px'
+    },
+    autoResize: {
+      type: Boolean,
+      default: true
+    },
+    chartData: {
+      type: Object,
+      required: true
+    }
+  },
+  data() {
+    return {
+      chart: null
+    };
+  },
+  watch: {
+    chartData: {
+      deep: true,
+      handler(val) {
+        this.setOptions(val)
+      }
+    }
+  },
+  mounted() {
+    this.$nextTick(() => {
+      this.initChart();
+    });
+
+    console.log(this.chartData,58)
+  },
+  beforeDestroy() {
+    if (!this.chart) {
+      return;
+    }
+    this.chart.dispose();
+    this.chart = null;
+  },
+  methods: {
+    initChart() {
+      this.chart = echarts.init(this.$el, 'macarons');
+      this.chart = echarts.init(this.$el, 'macarons')
+      this.setOptions(this.chartData)
+
+    },
+
+    setOptions({ huimrs, huimrszb ,jrsmrc } = {}) {
+      this.chart.setOption({
+        color: [new echarts.graphic.LinearGradient(1, 0, 0, 0, [{
+               offset: 0,
+               color: '#9A9A9A'
+           },
+           {
+               offset: 1,
+               color: '#9A9A9A'
+           }]), new echarts.graphic.LinearGradient(1, 1, 0, 0, [{
+               offset: 0,
+               color: '#DFDFDF'
+           },
+           {
+               offset: 0.9,
+               color: '#DFDFDF'
+           }]),],
+            tooltip: {
+                  trigger: 'item'
+              },
+              legend: {
+                  top: '10%',
+                  left: 'center',
+                  data:[]
+              },
+              // 设置环形中间的数据
+                  graphic: [{
+                      type: 'text',
+                      left: 'center',
+                      top: '46%',
+                      z: 10,
+                      style: {
+                          fill: '#9A9A9A',
+                          text: huimrszb ,
+                          font: '16px Microsoft YaHei'
+                      },
+                      textStyle: {
+                              color: "#9A9A9A",
+                              fontSize: 17,
+                              align: "center"
+                            }
+                  }],
+              series: [
+                  {
+                      name: '灰码',
+                      type: 'pie',
+                      radius: ['50%', '70%'],
+                      center: ['center', '50%'],
+                      avoidLabelOverlap: false,
+                      // label: {
+                      //     show: false,
+                      //     position: 'center'
+                      // },
+                      // emphasis: {
+                      //     label: {
+                      //         show: true,
+                      //         fontSize: '17',
+                      //         fontWeight: '400',
+                      //         color:'#2497D5'
+                      //     }
+                      // },
+                      // labelLine: {
+                      //     show: true
+                      // },
+                      itemStyle: {
+                                  normal: {
+                                      label: {
+                                          show: false
+                                      },
+                                      labelLine: {
+                                          show: false
+                                      }
+                                  },
+                                  emphasis: {
+                                      label: {
+                                          show: false,
+                                          position: 'outer',
+                                          textStyle: {
+                                              fontSize: '15',
+                                              fontWeight: 'bold',
+                                              color: 'white'
+                                          }
+                                      }
+                                  }
+                              },
+                      data: [
+                        {value: huimrs, name: '灰码人数'},
+                          {value: jrsmrc, name: '扫码人数'}
+
+                      ]
+                  }
+              ]
+      })
+    }
+  }
+};
+</script>

+ 93 - 28
src/views/dashboard/PieChart.vue

@@ -21,6 +21,18 @@ export default {
     height: {
       type: String,
       default: '300px'
+    },
+    chartData: {
+      type: Array,
+      required: true
+    }
+  },
+  watch: {
+    chartData: {
+      deep: true,
+      handler(val) {
+        this.setOptions(val)
+      }
     }
   },
   data() {
@@ -42,38 +54,91 @@ export default {
   },
   methods: {
     initChart() {
+      this.chart = echarts.init(this.$el, 'macarons');
       this.chart = echarts.init(this.$el, 'macarons')
-
+      this.setOptions(this.chartData)
+    },
+    setOptions(data) {
       this.chart.setOption({
-        tooltip: {
-          trigger: 'item',
-          formatter: '{a} <br/>{b} : {c} ({d}%)'
-        },
-        legend: {
-          left: 'center',
-          bottom: '10',
-          data: ['Industries', 'Technology', 'Forex', 'Gold', 'Forecasts']
-        },
-        series: [
-          {
-            name: 'WEEKLY WRITE ARTICLES',
-            type: 'pie',
-            roseType: 'radius',
-            radius: [15, 95],
-            center: ['50%', '38%'],
-            data: [
-              { value: 320, name: 'Industries' },
-              { value: 240, name: 'Technology' },
-              { value: 149, name: 'Forex' },
-              { value: 100, name: 'Gold' },
-              { value: 59, name: 'Forecasts' }
-            ],
-            animationEasing: 'cubicInOut',
-            animationDuration: 2600
-          }
-        ]
+        // tooltip: {
+        //   trigger: 'item',
+        //   formatter: '{a} <br/>{b} : {c} ({d}%)'
+        // },
+        // legend: {
+        //   left: 'center',
+        //   bottom: '10',
+        //   data: ['Industries', 'Technology', 'Forex', 'Gold', 'Forecasts']
+        // },
+        // series: [
+        //   {
+        //     name: 'WEEKLY WRITE ARTICLES',
+        //     type: 'pie',
+        //     roseType: 'radius',
+        //     radius: ["40", "70%"],
+        //     avoidLabelOverlap: false,
+        //     center: ['50%', '38%'],
+        //     data: [
+        //       { value: 320, name: 'Industries' },
+        //       { value: 240, name: 'Technology' },
+        //       { value: 149, name: 'Forex' },
+        //       { value: 100, name: 'Gold' },
+        //       { value: 59, name: 'Forecasts' }
+        //     ],
+        //     // animationEasing: 'cubicInOut',
+        //     animationDuration: 2600
+        //   }
+        // ]
+
+         tooltip: {
+            trigger: 'item'
+          },
+          color:['#3ba372', 'red','#d5d9e2','#fa8555','#546eca'],
+          legend: {
+            bottom: 10,
+            left: 'center',
+
+          },
+          series: [
+            {
+              name: 'Access From',
+              type: 'pie',
+              radius: ['40%', '70%'],
+              avoidLabelOverlap: false,
+               center: ['50%', '38%'],
+              itemStyle: {
+                  borderRadius: 10,
+                  borderColor: '#fff',
+                  borderWidth: 2
+
+              },
+              label: {
+                show: false,
+                position: 'center'
+              },
+              emphasis: {
+                label: {
+                  show: true,
+                  fontSize: '18',
+                  fontWeight: '400',
+                  color:"#333"
+                }
+              },
+              labelLine: {
+                show: true
+              },
+              data:data,
+              // data: [
+              //   { value: 8000, name: '绿码' },
+              //   { value: 250, name: '红码' },
+              //   { value: 390, name: '灰码' },
+              //   { value: 830, name: '未申请' },
+              //   { value: 10000, name: '总人数' }
+              // ]
+            }
+          ]
       })
     }
+
   }
 }
 </script>

+ 235 - 63
src/views/dashboard/RaddarChart.vue

@@ -23,6 +23,18 @@ export default {
     height: {
       type: String,
       default: '300px'
+    },
+    chartData: {
+      type: Object,
+      required: true
+    }
+  },
+  watch: {
+    chartData: {
+      deep: true,
+      handler(val) {
+        this.setOptions(val)
+      }
     }
   },
   data() {
@@ -43,74 +55,234 @@ export default {
     this.chart = null
   },
   methods: {
-    initChart() {
-      this.chart = echarts.init(this.$el, 'macarons')
+    listy(){
 
-      this.chart.setOption({
-        tooltip: {
-          trigger: 'axis',
-          axisPointer: { // 坐标轴指示器,坐标轴触发有效
-            type: 'shadow' // 默认为直线,可选为:'line' | 'shadow'
-          }
-        },
-        radar: {
-          radius: '66%',
-          center: ['50%', '42%'],
-          splitNumber: 8,
-          splitArea: {
-            areaStyle: {
-              color: 'rgba(127,95,132,.3)',
-              opacity: 1,
-              shadowBlur: 45,
-              shadowColor: 'rgba(0,0,0,.5)',
-              shadowOffsetX: 0,
-              shadowOffsetY: 15
-            }
-          },
-          indicator: [
-            { name: 'Sales', max: 10000 },
-            { name: 'Administration', max: 20000 },
-            { name: 'Information Techology', max: 20000 },
-            { name: 'Customer Support', max: 20000 },
-            { name: 'Development', max: 20000 },
-            { name: 'Marketing', max: 20000 }
-          ]
-        },
-        legend: {
-          left: 'center',
-          bottom: '10',
-          data: ['Allocated Budget', 'Expected Spending', 'Actual Spending']
-        },
-        series: [{
-          type: 'radar',
-          symbolSize: 0,
-          areaStyle: {
-            normal: {
-              shadowBlur: 13,
-              shadowColor: 'rgba(0,0,0,.2)',
-              shadowOffsetX: 0,
-              shadowOffsetY: 10,
-              opacity: 1
+    },
+      initChart() {
+        this.chart = echarts.init(this.$el, 'macarons');
+        this.setOptions(this.chartData)
+      },
+      setOptions({ x,y } = {}) {
+        console.log(x,y,98)
+        const dats = y
+        this.chart.setOption({
+          color: ['#4163d1', '#6be442', '#fbbc29', '#e32b3b','#1898d3'],
+            title: {
+              text: ''
+            },
+          tooltip: {
+            trigger: 'axis',
+            axisPointer: { // 坐标轴指示器,坐标轴触发有效
+              type: 'shadow' // 默认为直线,可选为:'line' | 'shadow'
             }
           },
-          data: [
-            {
-              value: [5000, 7000, 12000, 11000, 15000, 14000],
-              name: 'Allocated Budget'
+          radar: {
+            name:{
+               formatter:'{value}',
+                              // 字体样式
+                // 字体样式
+                textStyle:{
+                    fontSize:12,
+                    color:'#333'
+                }
             },
-            {
-              value: [4000, 9000, 15000, 15000, 13000, 11000],
-              name: 'Expected Spending'
+            radius: "66%",
+            //图外名称
+
+            center: ['50%', '42%'],
+            splitNumber: 4,
+            shape: 'circle',
+            splitArea: {
+              // areaStyle: {
+              //   color: 'rgba(127,95,132,.3)',
+              //   opacity: 1,
+              //   shadowBlur: 45,
+              //   shadowColor: 'rgba(0,0,0,.5)',
+              //   shadowOffsetX: 0,
+              //   shadowOffsetY: 15
+              // }
+              areaStyle: {
+                        color: ['#94aadc', '#a9b9df', '#d5d9e2', '#eaecf0'],
+                        shadowColor: 'rgba(0, 0, 0, 0)',
+                        shadowBlur: 45
+                      },
+
+
             },
-            {
-              value: [5500, 11000, 12000, 15000, 12000, 12000],
-              name: 'Actual Spending'
-            }
-          ],
-          animationDuration: animationDuration
-        }]
-      })
-    }
+            axisLine: {
+              show: true,
+                  lineStyle: {
+                    color: '#fff'
+                  }
+                },
+            indicator: [
+              { name: '总人数', max: 2500 },
+              { name: "绿码人数", max: 2500 },
+              { name: '红码人数', max: 2500 },
+              { name: '灰码人数', max: 2500 },
+              { name: '未申请', max: 2500 }
+              // { name: 'Marketing', max: 20000 }
+            ]
+          },
+          legend: {
+            left: 'center',
+            bottom: '10',
+            // data: ['周一', '周二', '周三','周四','周五'],
+
+          },
+          series: [{
+            type: 'radar',
+            symbolSize: 3,
+
+            // data: [
+            //   {
+            //     value: y[0].value,
+            //     name: '周一',
+            //   },
+            //   {
+            //     value: y[1].value,
+            //     name: '周二',
+            //   },
+            //   {
+            //     value: y[2].value,
+            //     name: '周三',
+            //   },
+            //   {
+            //     value: y[3].value,
+            //     name: '周四',
+            //   },
+            //   {
+            //     value: [960, 120, 186, 189, 852, 357],
+            //     name: '周五',
+            //   }
+            // ],
+            data:dats,
+            animationDuration: animationDuration
+          }]
+        })
+      }
+      // this.chart.setOption({
+      //   color: ['#67F9D8', '#FFE434', '#56A3F1', '#FF917C'],
+      //     title: {
+      //       text: 'Customized Radar Chart'
+      //     },
+      //     legend: {},
+      //     radar: [
+      //       {
+      //         indicator: [
+      //           { text: 'Indicator1' },
+      //           { text: 'Indicator2' },
+      //           { text: 'Indicator3' },
+      //           { text: 'Indicator4' },
+      //           { text: 'Indicator5' }
+      //         ],
+      //         center: ['50%', '50%'],
+      //         radius: 120,
+      //         startAngle: 90,
+      //         splitNumber: 4,
+      //         shape: 'circle',
+      //         axisName: {
+      //           formatter: '【{value}】',
+      //           color: '#428BD4'
+      //         },
+      //         splitArea: {
+      //           areaStyle: {
+      //             color: ['#77EADF', '#26C3BE', '#d5d9b2', '#eaecf0'],
+      //             shadowColor: 'rgba(0, 0, 0, 0.2)',
+      //             shadowBlur: 10
+      //           }
+      //         },
+      //         axisLine: {
+      //           lineStyle: {
+      //             color: 'rgba(211, 253, 250, 0.8)'
+      //           }
+      //         },
+      //         splitLine: {
+      //           lineStyle: {
+      //             color: 'rgba(211, 253, 250, 0.8)'
+      //           }
+      //         }
+      //       },
+      //       // {
+      //       //   indicator: [
+      //       //     { text: 'Indicator1', max: 150 },
+      //       //     { text: 'Indicator2', max: 150 },
+      //       //     { text: 'Indicator3', max: 150 },
+      //       //     { text: 'Indicator4', max: 120 },
+      //       //     { text: 'Indicator5', max: 108 },
+      //       //     { text: 'Indicator6', max: 72 }
+      //       //   ],
+      //       //   center: ['75%', '50%'],
+      //       //   radius: 120,
+      //       //   axisName: {
+      //       //     color: '#fff',
+      //       //     backgroundColor: '#666',
+      //       //     borderRadius: 3,
+      //       //     padding: [3, 5]
+      //       //   }
+      //       // }
+      //     ],
+      //     series: [
+      //       {
+      //         type: 'radar',
+      //         emphasis: {
+      //           lineStyle: {
+      //             width: 4
+      //           }
+      //         },
+      //         data: [
+      //           {
+      //             value: [100, 8, 0.4, -80, 2000],
+      //             name: 'Data A'
+      //           },
+      //           {
+      //             value: [60, 5, 0.3, -100, 1500],
+      //             name: 'Data B',
+      //             areaStyle: {
+      //               color: 'rgba(255, 228, 52, 0.6)'
+      //             }
+      //           }
+      //         ]
+      //       },
+      //       // {
+      //       //   type: 'radar',
+      //       //   radarIndex: 1,
+      //       //   data: [
+      //       //     {
+      //       //       value: [120, 118, 130, 100, 99, 70],
+      //       //       name: 'Data C',
+      //       //       symbol: 'rect',
+      //       //       symbolSize: 12,
+      //       //       lineStyle: {
+      //       //         type: 'dashed'
+      //       //       },
+      //       //       label: {
+      //       //         show: true,
+      //       //         formatter: function (params) {
+      //       //           return params.value;
+      //       //         }
+      //       //       }
+      //       //     },
+      //       //     {
+      //       //       value: [100, 93, 50, 90, 70, 60],
+      //       //       name: 'Data D',
+      //       //       areaStyle: {
+      //       //         color: new echarts.graphic.RadialGradient(0.1, 0.6, 1, [
+      //       //           {
+      //       //             color: 'rgba(255, 145, 124, 0.1)',
+      //       //             offset: 0
+      //       //           },
+      //       //           {
+      //       //             color: 'rgba(255, 145, 124, 0.9)',
+      //       //             offset: 1
+      //       //           }
+      //       //         ])
+      //       //       }
+      //       //     }
+      //       //   ]
+      //       // }
+      //     ]
+      // })
   }
 }
 </script>

+ 8 - 0
src/views/dashboard/RatioIndex.vue

@@ -0,0 +1,8 @@
+<template>
+</template>
+
+<script>
+</script>
+
+<style>
+</style>

+ 484 - 1367
src/views/index.vue

@@ -1,1392 +1,509 @@
 <template>
-	<div class="app-container home">
-		<el-row :gutter="5">
-			<el-col :sm="24" :lg="17">
-				<div class="index_heade index_headeNav" >
-					<div  style="padding-top: 20px;">
-						<el-table height="500" max-height="500" :data="tjsli" style="width: 100%;margin-top: 10px;" :stripe="true">
-							<el-table-column  fixed prop="xz" label="乡镇" align="center" ></el-table-column>
-							<el-table-column   label="18岁以上第一针完成情况" align="center">
-								<el-table-column fixed  prop="zrws" label="总任务数"  align="center"></el-table-column>
-								<!-- <el-table-column label="地址"> -->
-									<el-table-column  prop="zjzs" label="总接种数" align="center"></el-table-column>
-									<el-table-column  prop="wcl1" label="完成率" align="center"></el-table-column>
-									<el-table-column  prop="wwcs" label="未完成数 " align="center"></el-table-column>
-									<el-table-column  prop="drjzs" label="当日接种数" align="center"></el-table-column>
-									
-								<!-- </el-table-column> -->
-							</el-table-column>
-							<el-table-column label="第二针当日完成情况" align="center">
-								<el-table-column  prop="drrws" label="当日任务数" align="center"></el-table-column>
-								<el-table-column label="接种数" align="center">
-									<el-table-column  prop="dez" label="第二针" align="center" ></el-table-column>
-									<el-table-column  prop="dsz" label="第三针" align="center" ></el-table-column>
-									<el-table-column  prop="hj" label="合计" align="center" ></el-table-column>
-									
-								
-								</el-table-column>
-								<el-table-column  prop="wcl2" label="完成率" align="center" ></el-table-column>
-							</el-table-column>
-						</el-table>
-						<div class="index_haderPagin">
-							<!-- <el-pagination
-								@size-change="handleSizeChange"
-								@current-change="handleCurrentChange"
-								:current-page.sync="currentPage3"
-								:page-size="pageSize"
-								layout="prev, pager, next, jumper"
-								:total="1000"
-							></el-pagination>
-							<span>共 85 条 每页显示 5 条 当前 1/17 页</span> -->
-						</div>
-					</div>
-				</div>
-				<!-- 列表 -->
-				<el-col :sm="24" :lg="24" style="margin-top: 20px; ">
-					<div class="index_heade">
-						<img src="../assets/images/icon_more.png" alt="" class="index_headerImg" />
-						<p class="index_headetab">
-							<span :class="[num == index ? ' spanto' : '']" v-for="(item, index) in editableTabs" :key="index" @click="tabSbu(item.dictValue)">
-								{{ item.dictLabel }}
-							</span>
-						</p>
-						<div style="height: 87%;">
-							<ul class="index_headerUl">
-								<li v-for="(item, index) in configList" :key="index" @click="headerCld(item)">
-									<img src="../assets/images/icon_list_sj.png" alt="" />
-									<p>{{ item.notice_title }}</p>
-									<span>{{ item.create_time }}</span>
-								</li>
-							</ul>
-							<div class="index_haderPagin">
-								<el-pagination
-									v-show="total > 0"
-									@size-change="handleSizeChange"
-									@current-change="handleCurrentChange"
-									:current-page.sync="currentPage3"
-									:page-size="queryParams.pageSize"
-									layout="prev, pager, next, jumper"
-									:total="total"
-								></el-pagination>
-								<span>共 {{ total }} 条 每页显示 10 条</span>
-							</div>
-						</div>
-					</div>
-					
-				</el-col>
-				<!-- </el-row> -->
-				<!-- 公司概况 -->
-				<!-- <el-col :sm="24" :lg="24">
-           <div class="index_heade  index_headeProfile">
-             <img src="../assets/images/icon_tjbj.png" alt="" class="index_headerImg">
-            <p class="index_headetab">
-              <span :class="[numprofile == index ? ' spanto' : '']" v-for="(item,index) in editableTabsteo" :key="index" @click="tabSbuprofile(item.dictValue)">{{item.dictLabel}} </span>
-            </p>
-                   <div style="height: 84%;">
-                        <div style="height: 85%;">
-                          <h3 style="text-align: center; margin: 35px 0; margin-bottom: 0;" v-html="tieku"></h3>
-                          <pre>
-                            <div class="index_profilep" v-html="comg"></div>
-                          </pre>
-                        </div>
-                                      <div class="index_haderPagin">
-                                        <el-pagination
-                                             @size-change="handleSizeChangeprofile"
-                                             @current-change="handleCurrentChangeprofile"
-                                             :current-page.sync="currentPage3"
-                                             :page-size="queryParamstabprofile.pageSize"
-                                             layout="prev, pager, next, jumper"
-                                             :total="totalprofile">
-                                        </el-pagination>
-                                        <span>共 {{totalprofile}} 条  每页显示 1条  </span>
-                                      </div>
-                   </div>
-           </div>
-        </el-col> -->
-			</el-col>
+  <div class="dashboard-editor-container">
+    <!-- <div class="header">
+      <p @click="day(1)" :class="[dayList == 1 ? 'heade_cod' : '']">天</p>
+      <p>{{ '\xa0\xa0' }}|{{ '\xa0\xa0' }}</p>
+      <p @click="day(2)" :class="[dayList == 2 ? 'heade_cod' : '']">周</p>
+      <p>{{ '\xa0\xa0' }}|{{ '\xa0\xa0' }}</p>
+      <p @click="day(3)" :class="[dayList == 3 ? 'heade_cod' : '']">月</p>
+    </div> -->
+    <el-row style="background-color: #fff; margin-top: 20px;">
+      <el-col :xs="24" :sm="24">
+        <el-row>
+          <el-col :xs="12" :sm="6" style="display: flex;  height: 120px;">
+            <div style=" text-align: center; margin-right: 20px;" class="hedse_radt">
+              <div class="hedse_radtone">
+                <p>当前单位</p>
+                <p>{{panelChartDatas.dqdw}}</p>
+              </div>
+              <div class="hedse_radttwo">
+                <div>
+                  <p>乡镇</p>
+                  <p>{{panelChartDatas.zhen}}</p>
+                </div>
+                <div>
+                  <p>村</p>
+                  <p>{{panelChartDatas.cun}}</p>
+                </div>
+              </div>
+              <p class="p"></p>
+            </div>
+          </el-col>
+          <el-col :xs="12" :sm="9" style="display: flex; align-items: center;position: relative; justify-content: space-between; height: 120px;">
+            <div class="nav_raet" style="width: 30%;">
+              <p >常住人口</p>
+              <p style=" color: #F69F24;">{{panelChartDatas.czzrs}}</p>
+            </div>
+            <panel-groupfour :chart-data="panelChartDatas" />
 
-			<el-col :sm="24" :lg="7" style="padding-left: 15px">
-				<div class="index_nav">
-					<div class="index_navTime">
-						<p class="index_navTimep" @click="handleAdd">
-							<span>日程</span>
-							<span>
-								<i class="el-icon-date"></i>
-								创建日程
-							</span>
-						</p>
-						<el-calendar id="calendar">
-							<!-- 这里使用的是 2.5 slot 语法,对于新项目请使用 2.6 slot 语法-->
-							<template slot="dateCell" slot-scope="{ date, data }">
-								<!--自定义内容-->
-								<div>
-									<div class="calendar-day" style="text-align: center">
-										<el-tooltip v-if="brightDate.indexOf(data.day) != -1" class="item" effect="dark" :content="content(data.day)" placement="right">
-											<span class="everyDay">
-												{{
-													data.day
-														.split('-')
-														.slice(2)
-														.join('-')
-												}}
-											</span>
-										</el-tooltip>
-										<span v-else>
-											{{
-												data.day
-													.split('-')
-													.slice(2)
-													.join('-')
-											}}
-										</span>
-										<!-- <p :class="data.isSelected ? 'is-selected' : ''">
-                            {{ data.day.split('-').slice(1).join('-') }} {{ data.isSelected ? '✔️' : ''}}
-                      </p> -->
-									</div>
-								</div>
-							</template>
-						</el-calendar>
-						<img src="../assets/images/pic_kpbg.png" alt="" class="index_navTimeimg" />
-					</div>
-				</div>
-				<!-- 备忘录 -->
-				<el-col :sm="24" :lg="24">
-					<div class="index_nav index_memoranduNnavTime">
-						<div class="index_navTime ">
-							<p class="index_navTimep">
-								<span>备忘录</span>
-								<span @click="memoere">
-									<i class="el-icon-date"></i>
-									创建备忘录
-								</span>
-							</p>
-							<ul>
-								<li v-for="(item, index) in getmemorandum" :key="index">
-									<p>{{ item.memorandum_title }}</p>
-									<div class="index_navspande">
-										<span>{{ item.remind_time }}</span>
-										<img src="../assets/images/deletety.png" alt="" v-if="shower" @click="index_deledetfe(item.id)" />
-									</div>
-								</li>
-							</ul>
-							<img src="../assets/images/icon_more.png" alt="" class="imjud" />
-							<!--              <el-calendar v-model="value">
-              </el-calendar> -->
+            <div class="nav_raetone"  style="width: 50%;">
+              <div class="nav_raetones">
+                <p >新增</p>
+                <p style=" color: #46D871; ">{{panelChartDatas.czxz}}</p>
+              </div>
+              <div class="nav_raetoness">
+                <p>减少</p>
+                <p style=" color: #F52F2F;">{{panelChartDatas.czjs}}</p>
+              </div>
+            </div>
+            <p class="p"></p>
 
-							<img src="../assets/images/pic_kpbg.png" alt="" class="index_navTimeimg" />
-						</div>
-					</div>
-				</el-col>
-				<!-- 通讯录 -->
-				<el-col :sm="24" :lg="24">
-					<div class="index_nav index_memoranduMail">
-						<div class="index_navTime ">
-							<p class="index_navTimep">
-								<span>通讯录</span>
-								<img src="../assets/images/icon_more.png" alt="" class="index_navTimeimgtwo" />
-								<!-- <span><i class="el-icon-date"></i>创建日程</span> -->
-							</p>
-							<div class="index_memoranduMailnav">
-								<div class="tab_tol">
-									<el-form class="iejgu" :model="queryParamsail" ref="queryForm" :inline="true">
-										<dynamic-forms
-											:type="0"
-											:ref="item.columnName"
-											:config="queryParamsail"
-											@inputs="changeFn"
-											:formConfig="item"
-											v-for="(item, index) in queryDataali.queryList"
-											:key="index"
-										/>
-										<el-form-item style="width: 20%; text-align: right;">
-											<el-button type="primary" size="mini" @click="handleQuerygty">搜索</el-button>
-										</el-form-item>
-									</el-form>
-									<el-table stripe v-loading="loading" :data="postList.rows" @selection-change="handleSelectionChange">
-										<el-table-column
-											:width="item.columnComment == 'id' ? '40' : item.columnComment == '姓名' ? '60' : '110'"
-											:label="item.columnComment"
-											align="left"
-											:prop="item.columnName"
-											v-for="(item, index) in postList.tableHeadList"
-											:key="index"
-										/>
-									</el-table>
-								</div>
-								<div class="index_haderPagin index_haderPaginfoiu">
-									<!-- getLisail -->
-									<el-pagination
-										@size-change="handleSizeChangeali"
-										@current-change="handleCurrentChangeali"
-										:current-page.sync="currentPage3"
-										:page-size="queryParamsail.pageSize"
-										:small="true"
-										layout="prev, pager, next, jumper"
-										:total="totalali"
-									></el-pagination>
-								</div>
-							</div>
-							<img src="../assets/images/pic_kpbg.png" alt="" class="index_navTimeimg" />
-						</div>
-					</div>
-				</el-col>
-			</el-col>
-		</el-row>
-		<!-- <el-divider /> -->
-		<!-- 添加或修改公告对话框 -->
-		<el-dialog :close-on-click-modal="false" :title="title" :visible.sync="open" width="980px" append-to-body>
-			<el-form ref="form" :model="form" :rules="queryData.rules" label-width="160px" class="from_index">
-				<el-row>
-					<el-col :span="24">
-						<dynamic-forms
-							@modelFn="modelFn"
-							:ref="item.columnName"
-							:config="form.fixedData"
-							@inputs="changeFn"
-							:formConfig="item"
-							v-for="(item, index) in queryData.showData"
-							:key="index"
-						/>
-					</el-col>
-				</el-row>
-			</el-form>
-			<div slot="footer" class="dialog-footer">
-				<el-button type="primary" @click="handleQuery">确 定</el-button>
-				<el-button @click="cancel">取 消</el-button>
-			</div>
-		</el-dialog>
-		<!-- 通知公告弹窗 -->
-		<el-dialog class="index_ese" :close-on-click-modal="false" :title="title" :visible.sync="openety" width="980px" append-to-body>
-			<div class="index_headertan">
-				<p v-html="actingk.notice_title == undefined ? '暂无数据' : actingk.notice_title"></p>
-				<p>{{ actingk.create_time == undefined ? '暂无数据' : actingk.create_time }} 发布人:{{ actingk.create_by }}</p>
-				<pre>
-                 <div v-html="actingk.notice_content"></div>
-               </pre>
-			</div>
-		</el-dialog>
-	</div>
+          </el-col>
+          <el-col :xs="12" :sm="9" style="display: flex; align-items: center;position: relative; justify-content: space-between; height: 120px;">
+            <div class="nav_raet" style="width: 25%;">
+              <p>户籍人口</p>
+              <p style=" color: #9836C1;">{{panelChartDatas.hjzrs}}</p>
+            </div>
+            <panel-groupther :chart-data="panelChartDatas"  />
+            <div class="nav_raetone"  style="width: 50%;">
+              <div class="nav_raetones">
+                <p>新增</p>
+                <p style=" color: #46D871; ">{{panelChartDatas.hjxz}}</p>
+              </div>
+              <div class="nav_raetoness">
+                <p>减少</p>
+                <p style=" color: #F52F2F;">{{panelChartDatas.hjjs}}</p>
+              </div>
+            </div>
+
+          </el-col>
+
+        </el-row>
+      </el-col>
+    </el-row>
+
+    <!-- 列表 -->
+
+    <div class="tabsty" v-if="panelChartDatas.dqdw == '潜山市'">
+      <div class="tabbuut">
+        <p>各乡镇人口信息表</p>
+        <!-- <el-button  size="small" @click="handleExport" type="primary">导出</el-button> -->
+      </div>
+      <el-table v-loading="loading" :data="panelChartDatas.townDatas"
+        style="width: 100%;"  stripe border height="280" :show-overflow-tooltip="true">
+        <el-table-column prop="zhen" label="乡镇"  align="center"/>
+        <el-table-column prop="cun" label="村"  align="center" width="180"/>
+        <el-table-column prop="zu" label="组"  align="center"/>
+        <el-table-column prop="czzrs" label="常住人口"  align="center"/>
+
+        <el-table-column prop="hjzrs" label="户籍人口"  align="center"/>
+
+
+      </el-table>
+<!--
+      <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" @pagination="getList" /> -->
+    </div>
+
+    <!-- <panel-group @handleSetLineChartData="handleSetLineChartData" /> -->
+
+    <el-row style="background:#fff;padding:16px 16px 0;margin-bottom:32px;">
+      <line-chart :chart-data="lineChartData" /></el-row>
+
+    <!-- <el-row :gutter="32">
+      <el-col :xs="24" :sm="24" :lg="8">
+        <div class="chart-wrapper"><raddar-chart :chart-data="panelChartDataleid"/></div>
+      </el-col>
+      <el-col :xs="24" :sm="24" :lg="8">
+        <div class="chart-wrapper"><pie-chart :chart-data="panelChartDatayuanh" /></div>
+      </el-col>
+      <el-col :xs="24" :sm="24" :lg="8">
+        <div class="chart-wrapper" ><bar-chart :chart-data="panelChartDatazhuzh" /></div>
+      </el-col>
+    </el-row> -->
+  </div>
 </template>
 
 <script>
-import {
-	listIndex,
-	getUserProfile,
-	listIndextwo,
-	listIndextherr,
-	listIndexfou,
-	listIndextanl,
-	getConfig,
-	delConfig,
-	addConfig,
-	addConfigindex,
-	updateConfig,
-	clearCache,
-	delIndexnabd,
-	listIndexber,
-	getTableQuery,
-	tjList
-} from '@/api/system/config';
-import Editor from '@/components/Editor';
-export default {
-	name: 'index',
-	components: {
-		Editor
-	},
-	data() {
-		return {
-			// 版本号
-			version: '2.5.0',
-			currentPage3: 1,
-			total: 0,
-			totalprofile: 0,
-			totalali: 0,
-			pageSize: 6,
-			activeName: 'second',
-			// 是否显示弹出层
-			open: false,
-			// 弹出层标题
-			title: '',
-			value: new Date(),
-			editableTabs: [],
-			attendance: ['待我审批', '已办理', '我的流程', '驳回审批'],
-			editableTabsteo: [],
-			configList: [],
-			queryParams: {
-				table: 'sys_notice',
-				orderBy: 'create_time desc',
-				pageNo: 1,
-				pageSize: 10,
-				fixedData: {
-					condition: {
-						notice_type: 1,
-						status: 0
-					}
-				}
-			},
-			queryParamstab: {
-				table: 'sys_notice',
-				orderBy: 'create_time desc',
-				pageNo: 1,
-				pageSize: 6,
-				condition: {
-					notice_type: 1
-				}
-			},
-			// 公司概况
-			queryParamstabprofile: {
-				table: 'sys_info',
-				orderBy: 'create_time desc',
-				pageNo: 1,
-				pageSize: 1,
-				fixedData: {
-					condition: {
-						info_type: 1
-					}
-				}
-			},
-			// 日历
-			queryParamscalendar: {
-				table: 'sys_schedule',
-				orderBy: 'create_time desc',
-				pageNo: 1,
-				pageSize: 10,
-				fixedData: {
-					condition: {
-						create_by: ''
-					}
-				}
-			},
-			// 备忘录
-			queryParamstabmemorandum: {
-				table: 'sys_memorandum',
-				orderBy: 'create_time desc',
-				pageNo: 1,
-				pageSize: 6,
-				fixedData: {
-					condition: {
-						create_by: ''
-					}
-				}
-			},
-			// 通讯录
-			queryParamsail: {
-				table: 'sys_contacts',
-				orderBy: 'create_time desc',
-				pageNo: 1,
-				pageSize: 3,
-				fixedData: {
-					condition: {}
-				}
-			},
-			// 通讯录搜索
-			queryParamsailss: {
-				table: '',
-				pageNo: 1,
-				isUi: false,
-				pageSize: 10,
-				orderBy: 'create_time desc',
-				fixedData: {
-					condition: {}
-				}
-			},
-			queryParamsijeu: {
-				table: 'sys_contacts'
-			},
-			num: 0,
-			numlist: 0,
-			numprofile: 0,
-			dictType: 'sys_notice_type',
-			// 公司概况
-			dictTypetwo: 'sys_describe_type',
-			gettabList: [],
-			getLisprofileone: [],
-			// 备忘录
-			getmemorandum: [],
-			//通讯录参数
-			aliemg: {
-				table: 'sys_contacts',
-				orderBy: 'create_time desc',
-				pageNo: 1,
-				pageSize: 4
-			},
-			tableDataalid: [],
-			getLisaillie: [],
-			alendarList: [],
-			calendarData: [],
-			tjsli:[],
-			ary: [],
-			tieku: '',
-			comg: '',
-			aekti: '',
-			// 弹框数据
-			form: {},
-			// 表单校验
-			rules: {},
-			//日历弹框
-			calendaradd: {
-				table: 'sys_schedule',
-				isUi: false,
-				fixedData: {
-					id: -1
-				}
-			},
-			//备忘录弹框
-			calendaraddmer: {
-				table: 'sys_memorandum',
-				isUi: false,
-				fixedData: {
-					id: -1
-				}
-			},
-			// input
-			inputList: [],
-			// 时间
-			dataList: [],
-			//单选框
-			radiolist: [],
-			// 复选框
-			chekbosList: [],
-			//下拉框
-			selectList: [],
-			editorList: [],
-			queryData: {},
-			queryDatatwo: {},
-			queryDatathre: {},
-			queryDataali: {},
-			nummer: 0, //0 是日历  1 是备忘录
-			forme: {
-				table: '',
-				objId: -1,
-				fixedData: {}
-			},
-			rjtu: [],
-			truew: [],
-			fales: [],
-			postList: {},
-			arr: '2,2,3,3,4,4',
-			// 删除参数
-			deledlid: {
-				table: 'sys_memorandum',
-				idList: [],
-				user: {
-					oldPassword: undefined,
-					newPassword: undefined,
-					confirmPassword: undefined
-				},
-				shower: true //判断删除图标是否显示
-			},
-			titlees: '通知公告', //通知公告弹框
-			openety: false,
-			actingk: {}
-		};
-	},
-
-	created() {
-		// console.log(this.user)
-		this.unique(this.arr);
-		this.getList();
-		this.getListtab();
-		this.getLiser();
-		this.getLisprofile();
-		// 用户信息
-		this.getUser();
-		// this.getLismemorandum()  //备忘录
-		this.getLisail(); //通讯录
-		this.getLisailtwo();
-		this.init();
-		// 统计列表
-		this.tiheyu()
-	},
-	computed: {
-		// 时间高亮的数组
-		brightDate() {
-			// let ary = []
-			var that = this;
-			if (that.calendarData.length !== null) {
-				for (var i = 0; i < that.calendarData.length; i++) {
-					that.calendarData[i].love = 'yu';
-					if (that.calendarData[i].remind_time !== undefined) {
-						that.ary.push(that.calendarData[i].remind_time);
-					}
-				}
-			}
-			return that.ary;
-		}
-	},
-	methods: {
-		// 通讯录搜索
-		init() {
-			console.log(1243);
-			getTableQuery({
-				table: this.queryParamsijeu.table
-			}).then(res => {
-				let data = res.data;
-				this.queryDataali = data;
-			});
-		},
-		// Tooltip 文字提示
-		content(date) {
-			let data = date;
-			let datase = date;
-			let content = '';
-			let conert = '';
-			let conertre = '';
-			let nujue = 0;
-			for (var i = 0; i < this.calendarData.length; i++) {
-				if (this.calendarData[i].schedule_content !== undefined) {
-					this.calendarData[i].schedule_content = this.calendarData[i].schedule_content.replace(/<\/?[^>]*>/g, '');
-				}
-				if (data == this.calendarData[i].remind_time) {
-					if (content == this.calendarData[i].schedule_content + '、') {
-						content = content;
-					} else {
-						content = content + this.calendarData[i].schedule_content + '、';
-					}
-				}
-			}
-			return content;
-		},
-		modelFn(obj, cont) {
-			this.$set(this.form, obj, cont);
-		},
-		//数据  第一部分列表
-		getList() {
-			this.loading = true;
-			this.configList = [];
-			listIndex(this.queryParams).then(response => {
-				if (response.data.rows !== null) {
-					this.configList = response.data.rows;
-				} else {
-					this.configList.push({ notice_title: '暂无数据' });
-				}
-				this.total = response.data.total;
-				this.loading = false;
-			});
-		},
-		//数据  第二部分列表
-		getListtabone() {
-			this.loading = true;
-			listIndex(this.queryParams).then(response => {
-				this.configList = response.data.rows;
-				this.total = response.data.total;
-				this.loading = false;
-			});
-		},
-		//数据  第三部分列表
-		getLisprofile() {
-			// this.loading = true;
-			listIndexber(this.queryParamstabprofile).then(response => {
-				if (response.data !== undefined) {
-					this.getLisprofileone = response.data.rows;
-					if (response.data.rows !== null) {
-						this.tieku = this.getLisprofileone[0].info_title;
-						this.comg = this.getLisprofileone[0].info_content;
-					} else {
-						this.tieku = '暂无数据';
-						this.comg = '暂无数据';
-					}
-					this.totalprofile = response.data.total;
-				}
-				this.loading = false;
-			});
-		},
-		//数据  日历数据列表
-		getLisalendar() {
-			this.loading = true;
-			this.queryParamscalendar.fixedData.condition.create_by = this.user.userName;
-			listIndex(this.queryParamscalendar).then(response => {
-				if (response.data !== undefined) {
-					this.calendarData = response.data.rows;
-				}
-				this.loading = false;
-			});
-		},
-		//数据  备忘录数据列表
-		getLismemorandum() {
-			this.loading = true;
-			this.getmemorandum = [];
-			this.queryParamstabmemorandum.fixedData.condition.create_by = this.user.userName;
-			listIndex(this.queryParamstabmemorandum).then(response => {
-				if (response.data !== undefined) {
-					if (response.data.rows !== null) {
-						this.shower = true;
-						this.getmemorandum = response.data.rows;
-					} else {
-						this.shower = false;
-						this.getmemorandum.push({ memorandum_title: '暂无数据', shower: false });
-					}
-				}
-				this.loading = false;
-			});
-		},
-		// 数据列表   通讯录数据
-		getLisailtwo() {
-			this.loading = true;
-			listIndex(this.queryParamsail).then(response => {
-				if (response.data !== undefined) {
-					this.getLisaillie = response.data.rows;
-				}
-				this.totalali = response.data.total;
-				this.loading = false;
-			});
-		},
-		//tab 公告 栏数据
-		getListtab() {
-			this.loading = true;
-			listIndextwo(this.dictType).then(response => {
-				this.editableTabs = response.data;
-				this.queryParams.dictType = response.data[1].dictType;
-				// this.total = response.total;
-				this.loading = false;
-			});
-		},
-		// 公司概况  tab
-		getLiser() {
-			this.loading = true;
-			listIndextherr(this.dictTypetwo).then(response => {
-				this.editableTabsteo = response.data;
-				// this.total = response.total;
-				this.loading = false;
-			});
-		},
-		// 通讯录表头
-		getLisail() {
-			this.loading = true;
-			listIndexfou(this.queryParamsail).then(response => {
-				if (response.data !== undefined) {
-					this.tableDataalid = response.data.tableHeadList;
-					this.postList = response.data;
-					if (this.postList.rows !== null) {
-						this.postList.rows.filter(route => {
-							// route.dept_id = route.dept_id.value
-							for (var item in route) {
-								if (typeof route[item] == 'object') {
-									route[item] = route[item].value;
-								}
-							}
-						});
-					}
+import {treeselect,listDevice, exportPost,listzhex,listleida,listdbyh, listzhuzh,listTsde} from "@/api/index";
+import PanelGroup from './dashboard/PanelGroup';
+import PanelGroups from './dashboard/PanelGroups';
+import PanelGroupone from './dashboard/PanelGroupone';
+import PanelGrouptwo from './dashboard/PanelGrouptwo';
+import PanelGroupther from './dashboard/PanelGroupther';
+import PanelGroupfour from './dashboard/PanelGroupfour';
+import LineChart from './dashboard/LineChart';
+import RaddarChart from './dashboard/RaddarChart';
+import PieChart from './dashboard/PieChart';
+import BarChart from './dashboard/BarChart';
+const lineChartData = {
+  newVisitis: {
+    expectedData: [80, 120, 111, 104, 105, 100, 105],
+    actualData: [120, 140, 130, 110, 162, 140, 145]
+  },
+  messages: {
+    expectedData: [200, 192, 120, 144, 160, 130, 140],
+    actualData: [180, 160, 151, 106, 145, 150, 130]
+  },
+  purchases: {
+    expectedData: [80, 100, 121, 104, 105, 90, 100],
+    actualData: [120, 90, 100, 138, 142, 130, 130]
+  },
+  shoppings: {
+    expectedData: [130, 140, 141, 142, 145, 150, 160],
+    actualData: [120, 82, 91, 154, 162, 140, 130]
+  }
+};
 
-					this.totalali = response.data.total;
-				}
-				this.loading = false;
-			});
-		},
-		//日历新增弹框数据
-		getLisalendaraddd() {
-			this.loading = true;
-			this.queryData = [];
-			listIndextanl(this.calendaradd).then(response => {
-				if (response.data !== undefined) {
-					this.queryData = response.data;
-				}
-				this.loading = false;
-			});
-		},
-		//备忘录新增弹框数据
-		getLisalendaradddmer() {
-			this.loading = true;
-			this.queryData = [];
-			listIndextanl(this.calendaraddmer).then(response => {
-				if (response.data !== undefined) {
-					this.queryData = response.data;
-				}
-				this.loading = false;
-			});
-		},
-		goTarget(href) {
-			window.open(href, '_blank');
-		},
-		handleSizeChange(val) {},
-		handleCurrentChange(val) {
-			this.queryParams.pageNo = val;
-			this.getList();
-		},
-		// 公司概况
-		handleSizeChangeprofile(val) {},
-		handleCurrentChangeprofile(val) {
-			this.queryParamstabprofile.pageNo = val;
-			this.getLisprofile();
-		},
-		// 通讯录
-		handleSizeChangeali(val) {},
-		handleCurrentChangeali(val) {
-			this.queryParamsail.pageNo = val;
-			this.getLisail();
-		},
-		handleClick(tab, event) {},
-		// 第一部分tab点击
-		tabSbu(index) {
-			this.num = index - 1;
-			this.queryParams.fixedData.condition.notice_type = index;
-			this.getList();
-		},
-		// 第二部分tab点击numlist
-		tabList(index) {
-			this.numlist = index;
-		},
-		// 第三部分tab点击
-		tabSbuprofile(index) {
-			this.numprofile = index - 1;
-			this.queryParamstabprofile.fixedData.condition.info_type = index;
-			this.getLisprofile();
-		},
-		// 表单重置
-		reset() {
-			(this.form = {}), this.resetForm('form');
-		},
-		// 取消按钮
-		cancel() {
-			this.open = false;
-			this.openety = false;
-			this.reset();
-		},
-		/** 新增按钮操作 */
-		handleAdd() {
-			this.nummer = 0;
-			this.reset();
-			this.form = {};
-			this.getLisalendaraddd();
-			this.open = true;
-			this.title = '添加日程';
-		},
-		/** 提交按钮操作 */
-		handleQuery() {
-			for (let item of this.queryData.showData) {
-				if (item.htmlType == 'checkbox' || item.htmlType == 'imageUpload' || item.htmlType == 'fileUpload') {
-					this.form[item.columnName] = this.$refs[item.columnName][0].config;
-				} else {
-					this.form[item.columnName] = this.$refs[item.columnName][0].config[item.columnName];
-				}
-			}
-			// this.forme = this.form
-			if (this.nummer == 0) {
-				this.forme.table = 'sys_schedule';
-				this.forme.objId = -1;
-				this.forme.fixedData = this.form;
-				// if(this.forme.fixedData.remind_type !== undefined){
-				//   this.forme.fixedData.remind_type = this.forme.fixedData.remind_type.join(',');
-				// }
-				//日历
-				addConfigindex(this.forme).then(response => {
-					this.msgSuccess('新增成功');
-					// this.open = false;
-					this.getLisalendar();
-					this.cancel();
-				});
-			} else if (this.nummer == 1) {
-				// this.form.table = 'sys_memorandum'
-				this.forme.table = 'sys_memorandum';
-				this.forme.objId = -1;
-				this.forme.fixedData = this.form;
+export default {
+  name: 'Index',
+  components: {
+    PanelGroup,
+    PanelGroups,
+    LineChart,
+    RaddarChart,
+    PieChart,
+    BarChart,
+    PanelGroupone,
+    PanelGrouptwo,
+    PanelGroupther,
+    PanelGroupfour
+  },
+  data() {
+    return {
+      lineChartData: {},
+      dayList: 1, //判断天周月
+      taye: 'newVisitis', //根据点击天周月变换,折线图数据变换
+      panelChartData: {},
+      panelChartDatas:{},
+      panelChartDataleid:{},
+      panelChartDatayuanh:[],
+      tableData: [
+      ], //表格数据
+      // 总条数
+      total: 10,
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10
+      },
+      // 遮罩层
+      loading: false,
+      deviceIpOptions:{},
+      panelChartDatazhuzh:{}
+    };
+  },
+  mounted(){
+   // this.yuanhaun(1)
+   // this.tableList()
+   // 折线
+   this.zhexianList()
+   // 雷达
+   // this.leidaList()
+   // 底部圆环
+   // this.dbyhList()
+   // 柱状图
+   // this.zhuzhList()
 
-				//备忘录
-				addConfigindex(this.forme).then(response => {
-					this.msgSuccess('新增成功');
-					// this.open = false;
-					this.getLismemorandum();
-					this.cancel();
-				});
-			}
-			// this.getList();
-		},
-		// 弹框
-		changeFn(obj) {
-			console.log(obj);
-			for (let key in obj) {
-				this.form.fixedData[key] = obj[key];
-			}
-		},
-		// 新增备忘录
-		memoere() {
-			this.nummer = 1;
-			this.open = true;
-			this.title = '添加备忘录';
-			this.getLisalendaradddmer();
-		},
-		// 备忘录删除
-		index_deledetfe(id) {
-			var that = this;
-			that.deledlid.idList = [];
-			that.deledlid.idList.push(id);
+   //户籍列表
+   this.lisdtwe()
+  },
+  methods: {
+    handleSetLineChartData(type) {
+      this.lineChartData = lineChartData[type];
+    },
+    // 月 周 天 点击
+    day(index) {
+      this.dayList = index;
+      this.yuanhaun(index)
+      if (index == 1) {
+        // 天
+        this.taye = 'newVisitis';
+        this.lineChartData = lineChartData[this.taye];
+      } else if (index == 2) {
+        // 周
+        this.taye = 'messages';
+        this.lineChartData = lineChartData[this.taye];
+      } else {
+        // 月
+        this.taye = 'purchases';
+        this.lineChartData = lineChartData[this.taye];
+      }
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      // this.ids = selection.map(item => item.id)
+      // this.single = selection.length !== 1
+      // this.multiple = !selection.length
+    },
+    // 表格点击事件
+    tabclick(val){
+      console.log(val)
+      this.$router.push({
+        path:'./school/temperatures',
+        query:{
+          val:val,
+        }
+      })
+      },
+    // 圆环数据
+    yuanhaun(val){
+      treeselect(val).then(response => {
+        this.deviceIpOptions = response.data;
+        this.panelChartDatas = this.deviceIpOptions
+      });
+    },
+    // 列表数据
+   tableList(){
+     listDevice().then(response => {
+       this.tableData = response.data;
+       // this.panelChartDatas = this.deviceIpOptions
+     });
+   },
+   // 户籍列表
+   lisdtwe(){
+      listTsde().then(response => {
+        this.deviceIpOptions = response.data;
+        this.panelChartDatas = this.deviceIpOptions
+      });
+   },
+   // 折线图数据
+   zhexianList(){
+     listzhex().then(response => {
+       this.lineChartData = response.data;
+       // this.panelChartDatas = this.deviceIpOptions
+     });
+   },
+   // 雷达图
+   leidaList(){
+     listleida().then(response => {
+       this.panelChartDataleid = response.data;
+       // this.panelChartDatas = this.deviceIpOptions
+     });
+   },
+   // 底部圆环数据
+   dbyhList(){
+     listdbyh().then(response => {
+       this.panelChartDatayuanh = response.data;
+       // this.panelChartDatas = this.deviceIpOptions
+     });
+   },
+   // 柱状图数据
+   zhuzhList(){
+     listzhuzh().then(response => {
+       this.panelChartDatazhuzh = response.data;
+       // this.panelChartDatas = this.deviceIpOptions
+     });
+   },
 
-			this.$confirm('是否确认删除', '警告', {
-				confirmButtonText: '确定',
-				cancelButtonText: '取消',
-				type: 'warning'
-			})
-				.then(function() {
-					return delIndexnabd(that.deledlid);
-				})
-				.then(() => {
-					this.getLismemorandum();
-					this.msgSuccess('删除成功');
-					// this.$router.go(-1)
-				});
-		},
+   /** 导出按钮操作 */
+   handleExport() {
+     const queryParams = this.queryParams;
+     this.$confirm('是否确认导出?', "警告", {
+         confirmButtonText: "确定",
+         cancelButtonText: "取消",
+         type: "warning"
+       }).then(function() {
+         return exportPost();
+       }).then(response => {
+         this.download(response.msg);
+       })
+   }
 
-		handleSelectionChange() {},
-		// 字符串去重
-		unique(arr) {
-			let arfe = [];
-			let serfgt = [];
-			arfe = arr.split(',');
-			for (var i = 0; i < arfe.length; i++) {
-				if (serfgt.indexOf(arfe[i]) === -1) {
-					serfgt.push(arfe[i]);
-				}
-			}
-			// const res = new Map();
-			// return arr.filter((arr) => !res.has(arr.id) && res.set(arr.id, 1));
-		},
-		getUser() {
-			getUserProfile().then(response => {
-				this.user = response.data;
-				this.getLisalendar();
-				this.getLismemorandum();
-			});
-		},
-		// 通知公告弹窗
-		headerCld(index) {
-			this.title = '通知公告';
-			(this.openety = true), (this.actingk = index);
-		},
-		// 搜索
-		handleQuerygty() {
-			this.queryParams.pageNo = 1;
-			this.grabFn(this.queryDataali.queryList, this.queryParamsail.fixedData.condition);
-			this.getLisail();
-		},
-		// 抓取参数
-		grabFn(arr, parForm) {
-			for (let item of arr) {
-				if (item.htmlType == 'checkbox' || item.htmlType == 'imageUpload' || item.htmlType == 'fileUpload') {
-					if (this.$refs[item.columnName][0].config.length) {
-						parForm[item.columnName] = this.$refs[item.columnName][0].config;
-					}
-				} else {
-					parForm[item.columnName] = this.$refs[item.columnName][0].config[item.columnName];
-				}
-			}
-		},
-		// 搜索重置  通讯录
-		resetQuery() {
-			console.log(12436);
-			this.queryParamsail.fixedData.condition = {};
-			this.queryParamsail.pageNo = 1;
-			// this.resetForm("queryParamsail");
-			console.log(this.queryParamsail);
-			this.getLisail();
-		},
-		// 统计列表
-		tiheyu(){
-			tjList().then(response => {
-				this.tjsli = response.data;
-			});
-		}
-	}
+  }
 };
 </script>
 
 <style lang="scss">
-.iejgu {
-	.el-form-item__label {
-		width: 40px !important;
-		.el-input__inner {
-			width: 60%;
-		}
-	}
-	.el-form-item {
-		width: 71%;
-	}
-	.el-form--inline .el-form-item {
-	}
-	.el-form--inline .el-form-item__content {
-		width: 76%;
-	}
-	.el-form-item__content {
-		width: 75%;
-	}
+.tabsty {
+  .el-table .el-table__header-wrapper th {
+    background-color: #7bcbff;
+    color: #fff;
+    border:0 !important;
+  }
+  .el-table--striped .el-table__body tr.el-table__row--striped td {
+    background-color: #e9f1f7;
+  }
+  .el-table--group,
+  .el-table--border {
+    // border-color: #0CA0FF;
+    border: 1px solid #0CA0FF;
+  }
 }
-.index_ese {
-	.el-dialog__body {
-		padding-top: 10px !important;
-	}
+</style>
+
+<style lang="scss" scoped>
+.header {
+  display: flex;
+  text-align: left;
+  justify-content: flex-end;
+  margin-bottom: 12px;
+  p {
+    font-size: 18px;
+    font-family: PingFang SC;
+    font-weight: 700;
+    color: #666666;
+    cursor: pointer;
+  }
+  p:nth-child(1)::before {
+    width: 1px;
+    background-color: #666;
+  }
+  .heade_cod {
+    color: #00a8ec;
+  }
+  .el-table--border {
+    border: 1px solid #0ca0ff !important;
+  }
 }
-.home {
-	.el-tabs__header {
-		margin-bottom: 5px !important;
-	}
-	.el-calendar-table tr td:first-child {
-		border: 0 !important;
-	}
-	.el-calendar-table tr:first-child td {
-		border: 0 !important;
-	}
-	.el-calendar-table td {
-		border: 0 !important;
-	}
-	.el-calendar-table .el-calendar-day {
-		height: 30px;
-		text-align: center;
-		line-height: 30px;
-		border-radius: 30px;
-		padding: 0;
-		// background-color: #0B18E8;
-	}
-	.el-calendar-table td.is-selected {
-		// background-color: #0B18E8;
-		border-radius: 30px;
-	}
-	.el-calendar__header {
-		border: 0;
-		padding: 0 20px;
-	}
-	.el-calendar__body {
-		padding-top: 0;
-		padding-bottom: 0;
-	}
-	.el-pagination {
-		padding-left: 0;
-	}
-	.index_headeNav {
-		.el-tabs__item {
-			position: relative;
-		}
-	}
-	.el-table th.is-leaf,
-	.el-table td {
-		// border: 0 !important;
-	}
-	.el-table thead.is-group th{
-		background-color: #f8f8f8 !important;
-	}
-	.el-table--medium td{
-		padding: 12px 0 !important;
-	}
-	.el-calendar__title {
-		font-size: 12px;
-	}
-	.el-table td {
-		padding: 6px 0;
-	}
-	.index_haderPaginfoiu {
-		.el-pagination__jump {
-			display: block !important;
-			text-align: center;
-			margin-left: 0;
-		}
-	}
-	.everyDay {
-		display: inline-block;
-		width: 20px;
-		height: 20px;
-		line-height: 20px;
-		background-color: #409eff;
-		color: #fff;
-		border-radius: 50%;
-		margin-top: 5px;
-	}
+p {
+  margin: 0;
 }
-</style>
+.hedse_radt {
+  height: 100%;
+  padding-top: 24px;
+  position: relative;
+  display: flex;
+  justify-content: space-between;
+  align-content: center;
+  width: 100%;
+  padding-left: 26px;
+  padding-bottom: 24px;
+  .p {
+    position: absolute;
+    right: -28px;
+    width: 1px;
+    height: 70px;
+    background-color: #c7cbd7;
+    top: 22%;
+  }
+  .hedse_radtone {
+    // margin-bottom: 30px;
+    // padding:  0 26px;
+    text-align: left;
+    width: 33.33%;
+    display: flex;
+    flex-direction: column;
+    justify-content: center;
+    p:nth-child(1) {
+      font-size: 15px;
+      font-family: PingFang SC;
+      font-weight: bold;
+      color: #343434;
+    }
+    p:nth-child(2) {
+      font-size: 25px;
+      font-family: PingFang SC;
+      font-weight: bold;
+      color: #00a8ec;
+    }
 
-<style scoped lang="scss">
-.home {
-	// tab
-	.index_headetab {
-		display: flex;
-		border-bottom: 1px solid #e5e5e5;
-		height: 65px;
-		padding-top: 10px;
-		padding-bottom: 10px;
-		span {
-			cursor: pointer;
-			width: 80px;
-			// flex: 1;
-			text-align: center;
-			line-height: 55px;
-			height: 55px;
-			font-size: 15px;
-			font-family: PingFang SC;
-			font-weight: bold;
-			color: #666;
-			position: relative;
-			overflow: hidden;
-			white-space: nowrap;
-			text-overflow: ellipsis;
-			// flex: 1;
-			// border-bottom: ;
-		}
-		.span {
-			content: '';
-			display: block;
-			width: 18px;
-			height: 8px;
-			border-radius: 3px;
-			background-color: #3c8dbc;
-			color: #3c8dbc !important;
-			// position: absolute;
-			// border-bottom: ;
-		}
-		.spanto {
-			color: #3c8dbc;
-			border-bottom: 3px solid #3c8dbc;
-		}
-	}
-	p {
-		margin: 0;
-	}
-	ul {
-		margin: 0;
-		padding: 0;
-	}
-	background-color: #eef0ff;
-	blockquote {
-		padding: 10px 20px;
-		margin: 0 0 20px;
-		font-size: 17.5px;
-		border-left: 5px solid #eee;
-	}
-	.index_heade {
-		// border: 1px solid #eee;
-		// width: 100%;
-		padding: 0 20px;
-		height: 570px;
-		background-color: #fff;
-		position: relative;
-		border-radius: 6px;
-		.index_headerImg {
-			width: 23px;
-			height: 6px;
-			position: absolute;
-			right: 20px;
-			top: 32px;
-		}
-		.index_headerUl {
-			width: 100%;
-			padding: 0;
-			margin: 0;
-			height: 85%;
-			li {
-				margin: 0;
-				display: flex;
-				justify-content: space-between;
-				align-items: center;
-				height: 43px;
-				cursor: pointer;
-				img {
-					width: 11px;
-					height: 13px;
-				}
-				p {
-					font-size: 14px;
-					font-family: PingFang SC;
-					font-weight: 400;
-					color: #343434;
-					line-height: 36px;
-					margin: 0;
-					text-align: left;
-					flex: 1;
-					padding: 0 18px;
-					overflow: hidden;
-					text-overflow: ellipsis;
-					white-space: nowrap;
-				}
-				span {
-					font-size: 14px;
-					font-family: PingFang SC;
-					font-weight: 400;
-					color: #343434;
-					line-height: 36px;
-				}
-			}
-		}
-		.index_haderPagin {
-			display: flex;
-			justify-content: space-between;
-			align-items: center;
-			margin-top: 30px;
-			span {
-				flex: 1;
-				font-size: 12px;
-				font-family: PingFang SC;
-				font-weight: 400;
-				color: #343434;
-				text-align: right;
-				// line-height: 36px;
-			}
-		}
-	}
-	//表格样式
-	.index_headeNav {
-		padding: 0 20px;
-		height: 550px;
-		background-color: #fff;
-		position: relative;
-		border-radius: 6px;
-		.tab_i {
-			position: absolute;
-			right: 1px;
-			top: 5px;
-			border-radius: 50%;
-			// display: block;
-			width: 15px;
-			height: 15px;
-			line-height: 15px;
-			text-align: center;
-			color: #fff;
-			background-color: red;
-			overflow: hidden; //超出的文本隐藏
-			text-overflow: ellipsis; //溢出用省略号显示
-			white-space: nowrap; //溢出不换行
-			font-size: 11px;
-			font-family: PingFang SC;
-			font-weight: bold;
-		}
-	}
-	.index_nav {
-		// border: 1px solid #eee;
-		background-color: #fff;
-		height: 315px;
-		box-shadow: 0px 4px 4px 0px rgba(130, 150, 162, 0.64);
-		border-radius: 6px;
-		.index_navTime {
-			height: 270px;
-			position: relative;
-		}
-		.index_navTimeimg {
-			height: 47px;
-			width: 100%;
-			position: absolute;
-			bottom: -76px;
-			left: 0;
-		}
-		.index_navTimep {
-			padding: 10px 0;
-			margin: 0 20px;
-			margin-bottom: 10px;
-			border-bottom: 1px solid #e5e5e5;
-			display: flex;
-			justify-content: space-between;
-			align-items: center;
-			span:nth-child(1) {
-				font-size: 15px;
-				font-family: PingFang SC;
-				font-weight: bold;
-				color: #3c8dbc;
-			}
-			span:nth-child(1)::before {
-				content: '';
-				display: block;
-				width: 18px;
-				height: 8px;
-				background: #3c8dbc;
-				border-radius: 3px;
-			}
-			span:nth-child(2) {
-				font-size: 12px;
-				font-family: PingFang SC;
-				font-weight: 400;
-				color: #3c8dbc;
-				cursor: pointer;
-			}
-		}
-	}
-	// 公司概况样式
-	.index_headeProfile {
-		margin-top: 40px;
-		margin-bottom: 20px;
-		height: 590px;
-		.index_profilep {
-			font-size: 12px;
-			font-family: PingFang SC;
-			font-weight: bold;
-			color: #343434;
-			line-height: 27px;
-			text-indent: 2em;
-			height: 368px;
-			overflow-y: hidden;
-			// p{
+  }
+  .hedse_radttwo {
+    display: flex;
+    // padding: 0 26px;
+    // justify-content: space-between;
+    justify-content: space-around;
+    flex: 1;
+    div{
+      display: flex;
+      flex-direction: column;
+      justify-content: center;
+    }
+    p:nth-child(1) {
+      font-size: 15px;
+      font-family: PingFang SC;
+      font-weight: bold;
+      color: #343434;
+    }
+    p:nth-child(2) {
+      font-size: 25px;
+      font-family: PingFang SC;
+      font-weight: bold;
+      color: #546fc6;
+    }
+  }
+}
+.nav_raet {
+  // padding-top: 24px;
+  margin-left: 60px;
+  p:nth-child(1) {
+    font-size: 15px;
+    font-family: PingFang SC;
+    font-weight: bold;
+    color: #343434;
+  }
+  p:nth-child(2) {
+    font-size: 25px;
+    font-family: PingFang SC;
+    font-weight: bold;
+    color: #50bd04;
+  }
+}
+.dashboard-editor-container {
+  padding: 32px;
+  padding-top: 12px;
+  background-color: rgb(240, 242, 245);
+  position: relative;
 
-			// }
-		}
-		.index_haderPagin {
-			margin-top: 25px;
-		}
-		.index_headerImg {
-			width: 21px;
-			height: 21px;
-			top: 19px;
-		}
-	}
-	// 备忘录样式
-	.index_memoranduNnavTime {
-		height: 335px;
-		margin-top: 90px;
-		position: relative;
-		.index_navTimep {
-			padding: 20px 0;
-			// margin-bottom: 20px;
-		}
-		.index_navTimeimg {
-			height: 47px;
-			width: 100%;
-			position: absolute;
-			bottom: -76px;
-			left: 0;
-			bottom: -96px;
-		}
-		.imjud {
-			width: 23px;
-			height: 6px;
-			position: absolute;
-			right: 20px;
-			bottom: -50px;
-		}
-		ul {
-			padding: 0 20px;
-			li {
-				display: flex;
-				justify-content: space-between;
-				align-items: center;
-				border-bottom: 1px dashed #e5e5e5;
-				p {
-					font-size: 12px;
-					font-family: PingFang SC;
-					font-weight: 400;
-					color: #343434;
-					line-height: 36px;
-					flex: 1;
-				}
-				.index_navspande {
-					display: flex;
-					justify-content: space-between;
-					align-items: center;
-					span {
-						font-size: 12px;
-						font-family: PingFang SC;
-						font-weight: 400;
-						color: #343434;
-						line-height: 36px;
-						flex: 1;
-						white-space: nowrap;
-						overflow: hidden;
-						text-overflow: ellipsis;
-						// width: 20%;
-					}
-					img {
-						width: 16px;
-						height: 16px;
-						margin-left: 5px;
-						cursor: pointer;
-					}
-				}
-			}
-		}
-	}
-	//通讯录样式
-	.index_memoranduMail {
-		height: 363px;
-		margin-top: 100px;
-		.index_navTimeimgtwo {
-			width: 23px;
-			height: 6px;
-		}
-		.index_navTimep {
-			padding: 20px 0;
-		}
-		.index_memoranduMailnav {
-			padding: 0 20px;
-			height: 90%;
-		}
-		.index_navTimeimg {
-			height: 47px;
-			width: 100%;
-			position: absolute;
-			bottom: -76px;
-			left: 0;
-			bottom: -126px;
-		}
-		.index_haderPagin {
-			margin-top: 10px;
-		}
-	}
+  .chart-wrapper {
+    background: #fff;
+    padding: 16px 16px 0;
+    margin-bottom: 32px;
+  }
 }
 
-// table
-.tab_tol {
-	// display: flex;
-	height: 80%;
-	.tr_one {
-		display: flex;
-		justify-content: space-around;
-		width: 100%;
-		th {
-			flex: 1;
-			font-size: 12px;
-			font-family: PingFang SC;
-			font-weight: bold;
-			color: #343434;
-			line-height: 36px;
-			overflow: hidden;
-			text-overflow: ellipsis;
-			white-space: nowrap;
-		}
-	}
-	.two_tr {
-		display: flex;
-		justify-content: space-around;
-		font-size: 12px;
-		font-family: PingFang SC;
-		font-weight: bold;
-		color: #343434;
-		line-height: 36px;
-		td {
-			flex: 1;
-			overflow: hidden;
-			text-overflow: ellipsis;
-			white-space: nowrap;
-		}
-	}
-	.two_trtwo {
-		background-color: #f2f2f2;
-	}
+@media (max-width: 1024px) {
+  .chart-wrapper {
+    padding: 8px;
+  }
 }
-// 通知公告弹窗
-.index_headertan {
-	margin: 0 30px;
-	p {
-		margin: 0;
-	}
-	p:nth-child(1) {
-		font-size: 24px;
-		font-family: PingFang SC;
-		font-weight: bold;
-		color: #343434;
-		line-height: 42px;
-		text-align: center;
-		margin-bottom: 10px;
-		text-indent: 0em;
-	}
-	p:nth-child(2) {
-		font-size: 16px;
-		font-family: PingFang SC;
-		font-weight: 400;
-		color: #666666;
-		line-height: 24px;
-		text-align: center;
-		margin-bottom: 20px;
-		text-indent: 0em;
-	}
-	pre {
-		font-size: 16px;
-		font-family: PingFang SC;
-		font-weight: 400;
-		color: #343434;
-	}
+
+// 表格央视
+.tabsty {
+  background-color: #fff;
+  width: 100%;
+  margin-top: 16px;
+  padding: 0 30px;
+  padding-top: 23px;
+  padding-bottom: 40px;
+  margin-bottom: 36px;
 }
-pre {
-	white-space: pre-wrap;
+.tabbuut {
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+  margin-bottom: 15px;
+  p:nth-child(1) {
+    font-size: 16px;
+    font-family: PingFang SC;
+    font-weight: bold;
+    color: #343434;
+  }
 }
+.nav_raetone{
+  // flex: 1;
+  display: flex ;
+  // flex-direction: column;
+  justify-content: space-between;
+  align-content: center;
+  // height: 100%;
+  text-align: right;
+  // padding-top: 18px;
+  margin-right: 30px;
+  box-sizing:border-box;
+  -moz-box-sizing:border-box; /* Firefox */
+  -webkit-box-sizing:border-box;
+  padding-left: 20px;
+
+  p:nth-child(1) {
+    font-size: 15px;
+    font-family: PingFang SC;
+    font-weight: bold;
+    color: #343434;
+  }
+  p:nth-child(2) {
+    font-size: 25px;
+    font-family: PingFang SC;
+    font-weight: bold;
+    color: #50bd04;
+  }
+}
+
+.p {
+      position: absolute;
+      right: -18px;
+      width: 1px;
+      height: 70px;
+      background-color: #c7cbd7;
+      top: 22%;
+    }
 </style>

+ 1 - 1
src/views/login.vue

@@ -3,7 +3,7 @@
     <el-form ref="loginForm" :model="loginForm" :rules="loginRules" class="login-form">
       <img src="../assets/images/icon_dl_ewm@2x.png" v-if="stageType==1" @click="dhiwyrei" alt="" class="icon_rw">
       <img src="../assets/images/icon_dl_madl@2x.png" v-if="stageType==2" alt="" @click="stageType=1" class="icon_mim">
-      <h3 class="title"> 潜山市防疫数据平台</h3>
+      <h3 class="title"> 潜山市数据平台</h3>
       <!-- <div v-if="statusFlag==2">
         <div class="erw_img">
           <img src="" alt="" class="imgs">

+ 1578 - 0
src/views/system/bin/index.vue

@@ -0,0 +1,1578 @@
+<template>
+	<div class="app-container">
+		<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="70px">
+			<el-row>
+				<el-col :span="24">
+					<el-row>
+						<el-col :span="6">
+							<el-form-item label="身份证号" prop="idCard">
+								<el-input v-model="queryParams.idCard" placeholder="请输入身份证号码" style="width:200px;" clearable @keyup.enter.native="handleQuery" />
+							</el-form-item>
+						</el-col>
+            <el-col :span="6">
+            	<el-form-item label="姓名" prop="userName">
+            		<el-input v-model="queryParams.userName" placeholder="请输入姓名" style="width:200px;" clearable @keyup.enter.native="handleQuery" />
+            	</el-form-item>
+            </el-col>
+						<el-col :span="6">
+							<el-form-item label="联系号码" prop="phoneNum">
+								<el-input v-model="queryParams.phoneNum" placeholder="请输入联系号码" style="width:190px;"clearable @keyup.enter.native="handleQuery" />
+							</el-form-item>
+						</el-col>
+            <el-col :span="6">
+            	<el-form-item label="年龄阶段" >
+            		<el-select v-model="queryParams.params.age" placeholder="年龄阶段" style="width:190px;" clearable>
+            			<el-option v-for="dict in angesList" :key="dict.dictValue" :label="dict.dictLabel" :value="dict.dictValue" />
+            		</el-select>
+            	</el-form-item>
+            </el-col>
+					</el-row>
+				</el-col>
+				<el-col :span="24">
+					<el-row>
+						<el-col :span="12" class="jehak">
+							<el-form-item label="居住地址" prop="villagerGroup">
+                <el-cascader
+                	placeholder="点击选择居住地址"
+                	:options="optionsList"
+                	filterable
+                	@change="chahetwo"
+                	:props="optionPropsss"
+                	style="width: 140%;"
+                	@keyup.enter.native="handleQuery"
+                	clearable
+                  ref = "cdd"
+                  v-model="listd"
+                  @active-item-change="handleItemChange"
+                ></el-cascader>
+							</el-form-item>
+						</el-col>
+            <el-col :span="8" class="jehak">
+            	<el-form-item label="户籍地址" prop="villagerGroup">
+            		<el-cascader
+            			placeholder="点击选择户籍地址"
+            			:options="options"
+            			filterable
+            			@change="chahetwo"
+            			:props="optionPropstwo"
+            			style="width: 125%;"
+            			@keyup.enter.native="handleQuery"
+            			clearable
+            		></el-cascader>
+            	</el-form-item>
+            </el-col>
+            <el-col :span="4" >
+            	<el-form-item>
+            		<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+            		<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+            	</el-form-item>
+            </el-col>
+					</el-row>
+				</el-col>
+				<el-col :span="24">
+					<el-row>
+					</el-row>
+				</el-col>
+			</el-row>
+		</el-form>
+
+		<!-- <el-row :gutter="10" class="mb8">
+			<el-col :span="1.5">
+				<el-button type="warning" plain icon="el-icon-edit" size="mini" :disabled="multiple" @click="handleDeletehy" >还原</el-button>
+			</el-col>
+
+			<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+		</el-row> -->
+
+		<el-table v-loading="loading" :data="infoList" @selection-change="handleSelectionChange" stripe style="width: 100%" :height="tableMaxHeight">
+			<el-table-column type="selection" width="55" align="center" />
+			<el-table-column label="姓名" align="center" prop="userName" fixed width="100px"/>
+			<el-table-column label="联系方式" align="center" prop="phoneNum" width="110" />
+			<el-table-column label="身份证号码" align="center" prop="idCard" width="180" />
+			<el-table-column label="户籍地址" align="center" prop="domicileSelect"  width="280" />
+      <!-- nowInSelect -->
+			<el-table-column label="居住地址" align="center" prop="nowInSelect"  />
+      <el-table-column label="是否户主" align="center" prop="houseType" width="90" />
+      <el-table-column label="删除人" align="center" prop="updateBy" width="90" />
+      <el-table-column label="删除时间" align="center" prop="updateTime" width="160" />
+			<el-table-column label="操作" align="left" class-name="small-padding fixed-width" fixed="right" width="80" >
+				<template slot-scope="scope">
+					<el-button size="mini" type="text" icon="el-icon-edit" @click="handleDeletehy(scope.row)" class="hueya" >
+					  还原
+					</el-button>
+				</template>
+			</el-table-column>
+		</el-table>
+
+		<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" @pagination="getList" />
+
+		<!-- 添加或修改疫苗信息对话框 -->
+		<el-dialog :title="title" :visible.sync="opens" width="1240px" append-to-body>
+			<el-form ref="form" :model="form" :rules="rules" label-width="100px">
+				<el-row>
+					<el-col :span="8">
+						<el-form-item label="身份证号" prop="idCard"><el-input v-model="form.idCard" placeholder="请输入身份证号码" @blur="idcde" /></el-form-item>
+					</el-col>
+					<el-col :span="8">
+						<el-form-item label="姓名" prop="userName"><el-input v-model="form.userName" placeholder="请输入姓名" /></el-form-item>
+					</el-col>
+					<el-col :span="8">
+						<el-form-item label="性别" prop="gender">
+							<!-- <el-input v-model="form.gender" placeholder="请输入性别" /> -->
+							<el-select v-model="form.gender" placeholder="性别" clearable style="width: 100%;">
+								<el-option v-for="dict in statusOptions" :key="dict.dictValue" :label="dict.dictLabel" :value="dict.dictValue" />
+							</el-select>
+						</el-form-item>
+					</el-col>
+					<el-col :span="24">
+						<el-row>
+							<el-col :span="8">
+								<el-form-item label="联系号码" prop="phoneNum"><el-input v-model="form.phoneNum" placeholder="请输入联系号码" /></el-form-item>
+							</el-col>
+							<el-col :span="8">
+								<el-form-item label="人员分类" prop="keyIndustries">
+									<el-select v-model="form.keyIndustries" placeholder="人员分类" clearable style="width: 100%;">
+										<el-option v-for="dict in typeOptionsname" :key="dict.dictValue" :label="dict.dictLabel" :value="dict.dictValue" />
+									</el-select>
+								</el-form-item>
+							</el-col>
+							<el-col :span="8">
+								<el-form-item label="年龄" prop="age"><el-input v-model="form.age" placeholder="请输入年龄" /></el-form-item>
+							</el-col>
+						</el-row>
+					</el-col>
+
+          <el-col :span="24">
+          	<el-row>
+          		<el-col :span="12">
+          			<el-form-item label="户籍地址" prop="villageTowns">
+          				<!-- <el-input v-model="form.villageTowns" type="textarea" placeholder="请输入内容" /> -->
+          				<!-- <treeselect v-model="form.parentId" :options="deptOptionstwo" :normalizer="normalizer" :flat="true" :maxHeight="150" @select="djieskle" :multiple=true placeholder="点击选择户籍地" /> -->
+          				<el-cascader
+          					placeholder="点击选择户籍地址"
+          					:options="options"
+          					:filterable="true"
+          					separator="/"
+          					@change="chahe"
+          					v-model="villageTownshy"
+          					:props="optionProps"
+          					style="width: 100%;"
+          					ref="myCascader"
+          				></el-cascader>
+          			</el-form-item>
+          		</el-col>
+
+          		<el-col :span="12">
+          			<el-form-item label="详细地址" prop="domicile"><el-input v-model="form.domicile" type="input" placeholder="请输入户籍详细地址" /></el-form-item>
+          		</el-col>
+          	</el-row>
+          </el-col>
+
+					<el-col :span="12">
+						<el-form-item label="居住地址" prop="province">
+							<!-- <area-select
+								type="text"
+								v-model="selected"
+								v-if="jue"
+								:data="$pcaa"
+								:level="2"
+								style="display: flex;line-height: 18px;"
+								@change="onSelected"
+								class="hues"
+							></area-select> -->
+             <!-- <el-cascader
+              	placeholder="点击选择居住地址"
+              	:options="optionsList"
+              	filterable
+              	@change="chahetwo"
+              	:props="optionPropsss"
+              	style="width: 130%;"
+              	@keyup.enter.native="handleQuery"
+              	clearable
+                ref = "cdd"
+                v-model="list"
+              ></el-cascader> -->
+              <el-cascader
+              	:placeholder="nhdyesfgh"
+              	:options="optionsList"
+              	:filterable="true"
+              	separator="/"
+              	@change="onSelected"
+              	v-model="selected"
+              	:props="optionPropsss"
+              	style="width: 100%;"
+              	ref="myCascaderf"
+                @active-item-change="handleItemChange"
+                :class="[nhdyesfgh == '点击选择居住地址' ? '' : 'placf']"
+              ></el-cascader>
+						</el-form-item>
+					</el-col>
+
+					<el-col :span="12">
+						<el-form-item label="详细地址" prop="nowIn"><el-input v-model="form.nowIn" type="input" placeholder="请输入内容" /></el-form-item>
+					</el-col>
+
+					<el-col :span="24">
+						<el-col :span="12">
+							<el-form-item label="户主" prop="houseType">
+								<el-select v-model="form.houseType" placeholder="户主" clearable style="width: 100%;"  @change="changese">
+									<el-option v-for="dict in typeOptionshuuj" :key="dict.dictValue" :label="dict.dictLabel" :value="dict.dictValue" />
+								</el-select>
+							</el-form-item>
+						</el-col>
+						<el-col :span="12">
+							<el-form-item label="户编号" prop="code">
+							<el-input  v-model="form.code" placeholder="请输入户主编号"/>
+              <!-- :disabled="nhe" -->
+							</el-form-item>
+						</el-col>
+					</el-col>
+				</el-row>
+			</el-form>
+			<div slot="footer" class="dialog-footer">
+				<el-button type="primary" @click="submitForm">确 定</el-button>
+				<el-button @click="cancel">取 消</el-button>
+			</div>
+		</el-dialog>
+		<!-- 图片预览 -->
+		<el-dialog :close-on-click-modal="false" title="删除原因" :visible.sync="imashow" width="800px" append-to-body >
+      <el-form ref="formgt" :model="formgt" :rules="ruleshy" label-width="100px" style="padding-bottom: 30px;">
+      <el-form-item label="删除原因:" prop="houseType">
+      	<el-select v-model="formgt.houseType" placeholder="请选择删除原因" clearable style="width: 100%;">
+      		<el-option v-for="dict in typeOptions" :key="dict.dictValue" :label="dict.dictLabel" :value="dict.dictValue" />
+      	</el-select>
+      </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+      	<el-button type="primary" @click="submitFormfr">确 定</el-button>
+      	<el-button @click="cancel">取 消</el-button>
+      </div>
+		</el-dialog>
+    <el-dialog :close-on-click-modal="false" title="查看信息" :visible.sync="jiezhong" width="1200px" append-to-body class="ojhgy">
+    	<el-table :data="jiezheList" stripe style="width: 100%">
+    		<el-table-column label="疫苗名称" align="center" prop="vaccineName" />
+    		<el-table-column label="剂次" align="center" prop="jici" />
+    		<el-table-column label="接种时间" align="center" prop="vaccinationTime" width="180">
+    			<template slot-scope="scope">
+    				<span>{{ scope.row.vaccinationTime }}</span>
+    			</template>
+    		</el-table-column>
+    		<el-table-column label="接种地点" align="center" prop=".vaccinationPlace" />
+    	</el-table>
+    </el-dialog>
+
+	</div>
+</template>
+
+<script>
+import { listInfo, getInfo, delInfo, addInfo, updateInfo, exportInfo, listRoleer, idces, delInfort,yiaoe,exportConfig,exportConfigtyr,importLog,listInfotj,listRoleergth,delInfohy } from '@/api/system/bin';
+import { treeselect } from '@/api/system/dept';
+import Treeselect from '@riophae/vue-treeselect';
+import { getToken } from '@/utils/auth';
+import '@riophae/vue-treeselect/dist/vue-treeselect.css';
+export default {
+	name: 'Info',
+	components: { Treeselect },
+	data() {
+		return {
+			// 遮罩层
+			loading: true,
+			// 选中数组
+			ids: [],
+			// 非单个禁用
+			single: true,
+			// 非多个禁用
+			multiple: true,
+			// 显示搜索条件
+			showSearch: true,
+			// 总条数
+			total: 0,
+      ruleshy:{},
+			// 疫苗信息表格数据
+			infoList: [],
+			dialogImageUrl: '',
+			// 弹出层标题
+			title: '',
+			// 是否显示弹出层
+			opens: false,
+      tableMaxHeight:300,
+			process: process.env.VUE_APP_BASE_API,
+			// 查询参数
+			queryParams: {
+				pageNum: 1,
+				pageSize: 10,
+				villageTowns: null,
+				village: null,
+				villagerGroup: null,
+				houseType: null,
+				province: null,
+				city: null,
+				userName: null,
+        isDel:"Y",
+				gender: null,
+				idCard: null,
+				phoneNum: null,
+				keyIndustries: null,
+				isVaccination: null,
+				vaccineName: null,
+				vaccinationTime: null,
+				vaccinationPlace: null,
+				contraindication: null,
+				params:{
+					age:''
+				}
+			},
+			config: [],
+			comfietg:[],
+			configther:[],
+			configfor:[],
+			// 表单参数
+			form: {
+				nowIn: '',
+				age:'',
+				code:'',
+				vaccineInfoUserList: [
+					{
+						vaccineName: '',
+						vaccinationTime: '',
+						vaccinationPlace: '',
+						jici: '',
+						progress: '',
+						url:null,
+						disableg:false
+					}
+				]
+			},
+      // 用户导入参数
+      upload: {
+        // 是否显示弹出层(用户导入)
+        opens: false,
+        // 弹出层标题(用户导入)
+        title: "",
+        // 是否禁用上传
+        isUploading: false,
+        // 是否更新已经存在的用户数据
+        updateSupport: 0,
+        // 设置上传的请求头部
+        headers: { Authorization: "Bearer " + getToken() },
+        // 上传的地址
+        url: process.env.VUE_APP_BASE_API + "/boman-web-core//file/common/importYmjz"
+      },
+			// 表单校验
+			rules: {
+				province: [{ required: true, message: '居住地址不能为空', trigger: 'blur' }],
+				idCard: [{ required: true, message: '身份证号码不能为空', trigger: 'blur' }],
+				userName: [{ required: true, message: '姓名不能为空', trigger: 'blur' }],
+				villageTowns:[{ required: true, message: '户籍地址不能为空或不能只选潜山市', trigger: 'blur' }],
+			},
+			selected: [12, 340800000000, 340882000000, 340882100000, 340882100002],
+			selectedtwo: [],
+			statusOptions: [
+				{
+					dictValue: '女',
+					dictLabel: '女'
+				},
+				{
+					dictValue: '男',
+					dictLabel: '男'
+				}
+			],
+			statusOptionstue: [
+				{
+					dictValue: '已完成',
+					dictLabel: '已完成'
+				},
+				{
+					dictValue: '未完成',
+					dictLabel: '未完成'
+				}
+			],
+			typeOptionshuuj: [
+				{
+					dictValue: '是',
+					dictLabel: '是'
+				},
+				{
+					dictValue: '否',
+					dictLabel: '否'
+				}
+			],
+			deptOptionstwo: [],
+			options: [],
+      optionss:[],
+      optionsList: [],
+			optionProps: {
+				value: 'label',
+				label: 'label',
+				children: 'children',
+				checkStrictly: true
+			},
+      optionPropsss: {
+      	value: 'areaId',
+      	label: 'name',
+      	checkStrictly: true,
+        lazy: true,
+        lazyLoad: this.lazyLoads,
+        leaf: "leaf"
+      },
+			optionPropstwo: {
+				value: 'id',
+				label: 'label',
+				children: 'children',
+				checkStrictly: true
+			},
+			heuiq: [],
+			typeOptions: [],
+			typeOptionsty: [
+				{
+					dictValue: '是',
+					dictLabel: '是'
+				},
+				{
+					dictValue: '否',
+					dictLabel: '否'
+				}
+			],
+			typeOptionstyzandeh:[],
+			angesList: [
+
+			],
+			typeOptionsname: [],
+			typeOptionstimes: [],
+			typeOptionsvaccinatio: [],
+			typeOptionscont: [],
+			typeOptionscontty: [],
+			typeOptionscontqit:[],
+			// 剂次
+			typeOptionstimesgt: [
+				{
+					dictValue: '1',
+					dictLabel: '1'
+				},
+				{
+					dictValue: '2',
+					dictLabel: '2'
+				},
+				{
+					dictValue: '3',
+					dictLabel: '3'
+				},
+				{
+					dictValue: '加强针',
+					dictLabel: '加强针'
+				}
+			],
+			imashow: false,
+			naneme: false,
+			shouwes: false,
+			shouwestwo:false,
+			villageTownshy: undefined,
+			naiseurya: '',
+			hsuej: '',
+			jdourdjoaj: false,
+			jiezhong: false,
+			jiezheList: [],
+			fireLise:{config:[]},
+			nameutaiL:0,
+			jue:false,
+			nhue:true,
+      exportflag:true,
+      errorlog:false,
+      errorList:[],
+      idfer:0,
+      formgt:{},
+      list: [],
+      listd:[],
+      dneyhsd:{},
+      nhdyesfgh:'点击选择居住地址',
+      nhe:false
+		};
+	},
+	created() {
+		this.getList();
+		this.getTreeselectjue();
+    this.mnyesfjer(0)
+    this.getTreeselectjuetj()
+		// 重点行业
+		this.getDicts('person_type').then(response => {
+			this.typeOptions = response.data;
+		});
+		// 疫苗名称
+		this.getDicts('renyuanfenlei').then(response => {
+			this.typeOptionsname = response.data;
+		});
+
+		// 年龄阶段
+		this.getDicts('age_interval').then(response => {
+			this.angesList = response.data;
+		});
+    window.onresize = () => {
+                    this.changeTableMaxHeight()
+                  }
+                  this.changeTableMaxHeight()
+
+		// this.form.province = this.selected[0];
+		// this.form.city = this.selected[1];
+		// this.form.region = this.selected[2];
+		console.log(this.selected,456)
+		// this.queryParams.province = this.selectedtwo[0];
+		// this.queryParams.city = this.selectedtwo[1];
+		// this.queryParams.region = this.selectedtwo[2];
+		// this.naiseurya = this.form.province + this.form.city + this.form.region;
+	},
+	mounted() {
+		console.log(136)
+    window.onresize = () => {
+                    this.changeTableMaxHeight()
+                  }
+                  this.changeTableMaxHeight()
+	},
+	methods: {
+		onSelected(data) {
+			console.log(data, 125);
+      console.log(this.$refs['myCascaderf'].getCheckedNodes()[0].pathLabels)
+			// province
+      let nhdye = []
+      nhdye = this.$refs['myCascaderf'].getCheckedNodes()[0].pathLabels
+      // id
+			// this.form.province = data[0];
+			// this.form.city = data[1];
+			// this.form.region = data[2];
+      // 名称
+      this.form.province = nhdye[0];
+      this.form.city = nhdye[1];
+      this.form.region = nhdye[2];
+      this.form.residenceTown = nhdye[3];
+      this.form.residenceVillage = nhdye[4];
+
+
+			this.naiseurya = this.form.province + this.form.city + this.form.region;
+			if (this.jdourdjoaj == false) {
+				// 修改
+				this.form.nowIn = '';
+			}
+			// this.form.nowIn = undefined
+			// this.form.villageTowns = data[3]
+		},
+		dakousr() {
+			console.log(2345);
+		},
+    mnyesfjer(index){
+      this.loading = true;
+      let pids = {}
+      pids.pid = index
+      listRoleergth(pids).then(response => {
+      	this.optionsList = this.handleData(response.data);
+      	this.loading = false;
+      });
+    },
+
+
+
+
+    // // 模拟请求一级节点
+    //      getfristChild() {
+    //       return [
+    //         {
+    //           label: "第一个",
+    //           hasChdild: true,
+    //           leaf: false,
+    //           pid: null,
+    //           value: "1",
+    //         },
+    //         {
+    //           label: "第2个",
+    //           hasChdild: true,
+    //           leaf: false,
+
+    //           pid: null,
+    //           value: "2",
+    //         },
+    //         {
+    //           label: "第3个",
+    //           hasChdild: true,
+    //           leaf: true,
+
+    //           pid: null,
+    //           value: "3",
+    //         },
+    //       ];
+    //     },
+    //     // 模拟请求子级节点
+    //      getOther(value) {
+    //       let res = [];
+    //       if (value == 1) {
+    //         res = [
+    //           {
+    //             label: "第一个1",
+    //             hasChdild: false,
+    //             pid: 1,
+    //             value: "11",
+    //             leaf: false, // 差别: 这里加了是否叶子节点属性,后面都加了
+    //           },
+    //           {
+    //             label: "第一个2",
+    //             hasChdild: false,
+    //             pid: 1,
+    //             value: "12",
+    //             leaf: false,
+    //           },
+    //         ];
+    //       }
+    //       if (value == 2) {
+    //         res = [
+    //           {
+    //             label: "第2个1",
+    //             hasChdild: false,
+    //             pid: 2,
+    //             leaf: true,
+    //             value: "5",
+    //           },
+    //           {
+    //             label: "第2个2",
+    //             hasChdild: false,
+    //             leaf: true,
+
+    //             pid: 2,
+    //             value: "6",
+    //           },
+    //         ];
+    //       }
+    //       if (value == 11) {
+    //         res = [
+    //           {
+    //             label: "第3个1",
+    //             hasChdild: false,
+    //             pid: 2,
+    //             leaf: true,
+
+    //             value: "111",
+    //           },
+    //           {
+    //             label: "第3个2",
+    //             hasChdild: false,
+    //             leaf: true,
+
+    //             pid: 2,
+    //             value: "112",
+    //           },
+    //         ];
+    //       }
+    //       return res;
+    //     },
+
+
+
+
+
+
+        // // 模拟请求一级节点
+        //      getfristChild() {
+        //       return [
+        //         {
+        //           label: "第一个",
+        //           hasChdild: true,
+        //           pid: null,
+        //           value: "1",
+        //         },
+        //         {
+        //           label: "第2个",
+        //           hasChdild: true,
+        //           pid: null,
+        //           value: "2",
+        //         },
+        //         {
+        //           label: "第3个",
+        //           hasChdild: true,
+        //           pid: null,
+        //           value: "3",
+        //         },
+        //       ];
+        //     },
+        //     // 模拟请求子级节点
+        //      getOther(value) {
+        //       let res = [];
+        //       if (value == 1) {
+        //         res = [
+        //           {
+        //             label: "第一个1",
+        //             hasChdild: false,
+        //             pid: 1,
+        //             value: "3",
+        //           },
+        //           {
+        //             label: "第一个2",
+        //             hasChdild: false,
+        //             pid: 1,
+        //             value: "4",
+        //           },
+        //         ];
+        //       }
+        //       if (value == 2) {
+        //         res = [
+        //           {
+        //             label: "第2个1",
+        //             hasChdild: false,
+        //             pid: 2,
+        //             value: "5",
+        //           },
+        //           {
+        //             label: "第2个2",
+        //             hasChdild: false,
+        //             pid: 2,
+        //             value: "6",
+        //           },
+        //         ];
+        //       }
+        //       return res;
+        //     },
+    // lazyLoads(node, resolve){
+    //   if (node.level == 0) {
+    //     console.log(node,2547);
+    //           if (this.list.length > 0) {
+    //             // 存在回显的id我们才去设置回显
+    //             let res =  this.format(); // 这里就是获取第一次要回显的内容了
+    //             console.log("00000", res);
+    //             this.optionsList = res; // 有回显第一次就直接给绑定的对象,不要resolve
+    //           } else {
+
+    //             let res =  this.getfristChild(); // 不存在就默认加载第一集节点
+    //             console.log(res,67)
+    //             resolve(res);
+    //           }
+    //         } else {
+    //           // 记录选择的,不然会点击字节点加载时丢失数据
+    //           let list = this.list;
+    //           // 有children属性了就不要再请求了,不然字节点会重复
+    //           if (!node.data.children) {
+    //             // 获取子节点数据
+    //             let res =  this.getOther(node.data.value);
+    //             setTimeout(() => {
+    //               // 模拟延时,实际不需要
+    //               resolve(res);
+    //             }, 100);
+    //           } else {
+    //             resolve([]);
+    //           }
+    //           // 重新把选择的id放回来-
+    //           // this.$nextTick(() => {
+    //           //   this.list = [...new Set([...this.list, ...list])]; //差别: 合并并且去重
+    //           // });
+    //           setTimeout(() => {
+    //             this.list = [...new Set([...this.list, ...list])]; //差别: 合并并且去重
+    //           }, 250);
+    //         }
+    // },
+
+    // lazyLoads(node, resolve) {
+    //   console.log(node)
+    //       if (node.level == 0) {
+    //         let res =  this.mnyesfjer(0); // 不存在就默认加载第一集节点
+    //         resolve(res);
+    //       } else {
+    //         // 有children属性了就不要再请求了,不然字节点会重复
+    //         // if (!node.data.children) {
+    //           // 获取子节点数据
+    //           let res =  this.mnyesfjer(node.data.areaId);
+    //           console.log(node.children)
+    //           let nfhh = node.children.push(res)
+    //           setTimeout(() => {
+    //             resolve(nfhh);
+    //           }, 200);
+    //         // } else {
+    //         //   resolve([]);
+    //         // }
+    //       }
+    //     },
+     format() {
+          let res =  this.getfristChild(); // 拿一级数据
+          this.list.forEach((item) => {
+            // 遍历回显的id 二维数组
+            if (item.length > 1) {
+              item.forEach(async (sitem, index) => {
+                if (index == item.length - 1) {
+                  return; // 如果是一级节点就不用查找了
+                }
+                let arr =  this.getOther(sitem); // 不是一级,获取子级
+                this.findItem(res, arr, sitem); //  判断当前拿到的子级数据属于哪个一级数据下的子级,并且加到当前一级的children属性下
+              });
+            }
+          });
+           },
+     // 递归判断
+           findItem(res, arr, id) {
+            for (let i = 0; i < res.length; i++) {
+              if (res[i].value === id) {
+                res[i].children = arr; // 有chidlren 也要判断是不是这个children下的子级
+                return res;
+              }
+              if (res[i].children) {
+                this.findItem(res[i].children, arr, id);
+              }
+            }
+             return res;
+          },
+
+
+   // getAddress() {
+   // 	        this.mnyesfjer(0).then(res => {
+   // 	          this.optionsList =  this.handleData(res.data);
+   // 	        }).catch(err => {
+   // 	        })
+   // 	    },
+   	     handleItemChange(val) {
+           console.log(val,235)
+   	        let code = val ? val[val.length - 1] : '';  //需请求数据的上级地址的code值
+   	        let level = val.length + 1;  //需请求第几级地址
+   	        this.optionsList = this.handleData(this.optionsList, code, level);
+         	},
+
+         	handleData(data, val, level) {
+            console.log(data,val,level)
+   	        for (let i = 0; i < data.length; i++) {
+   	          if(!data[i].children) {
+   	            this.$set(data[i], 'children', []);
+   	          }
+   	          if(data[i].areaId === val){
+                let vfer = {}
+                vfer.pid = val
+   	            listRoleergth(vfer).then(res => {
+   	              if(res.data.length) {
+   	                data[i].children = res.data;
+   	                data[i].children.forEach(ele => {
+   	                  this.$set(ele, 'children', [])
+   	                });
+   	              }else {
+   	                data[i].children = undefined;
+   	              }
+   	            }).catch(err => {
+   	            });
+   	          }else {
+   	            if(data[i].children.length){
+   	              this.handleData(data[i].children,val,level)
+   	            }
+   	          }
+   	        }
+
+             return data;
+         },
+
+
+
+
+		onSelectedtwo(data) {
+			console.log(data);
+			// province
+			this.queryParams.province = data[0];
+			this.queryParams.city = data[1];
+			this.queryParams.region = data[2];
+			// this.queryParams.villageTowns = data[3]
+		},
+		/** 查询疫苗信息列表 */
+		getList() {
+			this.loading = true;
+			listInfo(this.queryParams).then(response => {
+				this.infoList = response.rows;
+				this.total = response.total;
+				this.loading = false;
+			});
+		},
+		getToken() {
+			return getToken();
+		},
+		getTreeselectjue() {
+			this.loading = true;
+      let pids = {}
+      pids.pid = 0
+			listRoleer().then(response => {
+				this.options = response.data;
+				this.loading = false;
+			});
+		},
+    // 统计数据
+    getTreeselectjuetj() {
+    	this.loading = true;
+      listInfotj().then(response => {
+        this.dneyhsd =  response.data
+        this.loading = false;
+      });
+    },
+
+		/** 转换角色数据结构 */
+		normalizer(node) {
+			// if (node.children && !node.children.length) {
+			//   delete node.children;
+			// }
+			return {
+				id: node.id,
+				label: node.roleName
+			};
+		},
+		// 点击组/角色
+		djieskle(node, instanceId) {
+			// this.personnel(node.id);
+			console.log(node, instanceId);
+		},
+		// 身份证
+		idcde(event) {
+			console.log(event);
+			// 身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X
+			let reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
+			if (reg.test(this.form.idCard)) {
+				this.idea();
+				// this.go(this.form.idCard.length);
+				// callback()
+			} else {
+				// callback(new Error('身份证号码不正确'))
+				this.msgInfo('身份证号码不正确');
+			}
+		},
+		// 实现自动生成生日,性别,年龄
+		go(val) {
+			let iden = this.form.idCard;
+			let sex = null;
+			let birth = null;
+			let birthr = '';
+			let myDate = new Date();
+			let month = myDate.getMonth() + 1;
+			let day = myDate.getDate();
+			let age = 0;
+
+			if (val === 18) {
+				age = myDate.getFullYear() - iden.substring(6, 10) - 1;
+				sex = iden.substring(16, 17);
+				birth = iden.substring(6, 10) + '-' + iden.substring(10, 12) + '-' + iden.substring(12, 14);
+				if (iden.substring(10, 12) < month || (iden.substring(10, 12) == month && iden.substring(12, 14) <= day)) age++;
+			}
+			if (val === 15) {
+				age = myDate.getFullYear() - iden.substring(6, 8) - 1901;
+				sex = iden.substring(13, 14);
+				birth = '19' + iden.substring(6, 8) + '-' + iden.substring(8, 10) + '-' + iden.substring(10, 12);
+				if (iden.substring(8, 10) < month || (iden.substring(8, 10) == month && iden.substring(10, 12) <= day)) age++;
+			}
+
+			if (sex % 2 === 0) sex = '女';
+			else sex = '男';
+			this.form.gender = sex;
+			// this.baseInfo.age = age;
+			birthr = birth + '';
+			console.log(birthr);
+			// this.form.birthday = birthr;
+			// this.$set(this.form.birthday, birthr)
+			// this.baseInfo.birthplace = this.area[iden.substring(0,2)];
+		},
+		// 请求身份证数据
+		idea() {
+			idces({ idCard: this.form.idCard }).then(response => {
+				console.log(response);
+				this.form.gender = response.data.gender;
+				// this.form.birthday = response.data.birthday;
+				this.form.age = response.data.age
+				this.form.code = response.data.code
+				if (response.data.userName == null) {
+					this.form.userName = undefined;
+				} else {
+					this.form.userName = response.data.userName;
+				}
+			});
+		},
+		// 取消按钮
+		cancel() {
+			this.opens = false;
+			this.jiezhong = false;
+			this.imashow = false;
+      this.errorlog=false;
+			this.reset();
+		},
+		gywoa() {
+			console.log(this.form.isVaccination);
+			if (this.form.isVaccination !== null) {
+				if (this.form.isVaccination == '是') {
+					// 接种疫苗
+					this.naneme = false,
+					this.shouwes = true;
+				}else {
+					this.naneme = true,
+					this.shouwes = false,
+					this.form.vaccineInfoUserList = [{
+						vaccineName: '',
+						vaccinationTime: '',
+						vaccinationPlace: '',
+						jici: '',
+						progress: '',
+						url:null
+					}
+				]
+				}
+			}
+		},
+		gywoatwo() {
+			console.log(this.queryParams.isVaccination);
+			if (this.queryParams.isVaccination !== null) {
+				if (this.queryParams.isVaccination == '是') {
+					// 接种疫苗
+					// (this.naneme = false), (this.shouwes = true);
+					this.shouwestwo = false
+				} else {
+					// (this.naneme = true), (this.shouwes = false);
+					this.shouwestwo = true
+				}
+			}
+		},
+
+		// 表单重置
+		reset() {
+			this.form = {
+				id: null,
+				villageTowns: null,
+				village: null,
+				age:'',
+				code:'',
+				villagerGroup: null,
+				houseType: null,
+				domicile: null,
+				province: null,
+				city: null,
+				region: null,
+				userName: null,
+        isDel:"Y",
+				gender: null,
+				idCard: null,
+				phoneNum: null,
+				keyIndustries: null,
+				isVaccination: null,
+				vaccinationPlace: null,
+				contraindication: null,
+				nowIn: '',
+				remark: null,
+        residenceTown:null,
+        residenceVillage:null
+			};
+			this.resetForm('form');
+		},
+		/** 搜索按钮操作 */
+		handleQuery() {
+			this.queryParams.pageNum = 1;
+			console.log(this.queryParams)
+			this.getList();
+		},
+		/** 重置按钮操作 */
+		resetQuery() {
+			this.nhue = false
+			this.selectedtwo = []
+			setTimeout( ()=>{
+				this.nhue = true
+			},100)
+			this.queryParams.province = undefined;
			this.queryParams.city = undefined;
			this.queryParams.region = undefined;
+      this.queryParams.deptId = undefined
+      this.listd = []
+			this.resetForm('queryForm');
+			this.handleQuery();
+		},
+		// 多选框选中数据
+		handleSelectionChange(selection) {
+			this.ids = selection.map(item => item.id);
+			this.single = selection.length !== 1;
+			this.multiple = !selection.length;
+		},
+		/** 新增按钮操作 */
+		handleAdd() {
+			this.reset();
+			this.opens = true;
+			(this.naneme = false),
+			(this.shouwes = false);
+			this.selected = ['安徽省', '安庆市', '潜山市'],
+			this.form.province = this.selected[0];
+			this.villageTownshy = '';
+			this.naiseurya = '';
+			this.hsuej = '';
+			this.form.city = this.selected[1];
+			this.form.region = this.selected[2];
+			this.title = '添加常住人口';
+			this.jdourdjoaj = true;
+			this.jue = true
+      this.form.province = '安徽省';
+      this.form.city = '安庆市';
+      this.form.region = '潜山市';
+      this.form.residenceTown = '梅城镇';
+      this.form.residenceVillage = '龙井社区';
+       this.nhdyesfgh = this.form.province + '/' + this.form.city + '/' + this.form.region + '/' + this.form.residenceTown + '/' + this.form.residenceVillage;
+			console.log(this.form)
+		},
+		/** 修改按钮操作 */
+		handleUpdate(row) {
+			this.reset();
+			const id = row.id || this.ids;
+			getInfo(id).then(response => {
+				this.form = response.data;
+				this.jue = false
+				if(response.data.province !== null && response.data.province !== ""){
+					this.nhdyesfgh = response.data.province;
+          if(response.data.city !== null && response.data.city !== ""){
+            this.nhdyesfgh = response.data.province + '/' + response.data.city;
+            if(response.data.region !== null && response.data.region !== ""){
+            	this.nhdyesfgh = response.data.province + '/' + response.data.city + '/' + response.data.region;
+              if(this.form.residenceTown !==null && this.form.residenceTown !=='' && this.form.residenceTown !== undefined){
+                this.nhdyesfgh = response.data.province + '/' + response.data.city + '/' + response.data.region + '/' + this.form.residenceTown;
+                if(this.form.residenceVillage !==null && this.form.residenceVillage !=='' && this.form.residenceVillage !== undefined){
+                  this.nhdyesfgh = response.data.province + '/' + response.data.city + '/' + response.data.region + '/' + this.form.residenceTown + '/' + this.form.residenceVillage;
+                }
+              }
+            }else{
+            	// this.nhdyesfgh ='点击选择居住地址'
+            }
+          }else{
+          	// this.nhdyesfgh ='点击选择居住地址'
+          }
+				}else{
+					this.nhdyesfgh ='点击选择居住地址'
+				}
+
+
+				// if(response.data.province !== null){
+				// 	this.selected[0] = response.data.province;
+				// }else{
+				// 	this.selected[0] ='安徽省'
+				// }
+				// if(response.data.city !== null){
+				// 	this.selected[1] = response.data.city;
+				// }else{
+				// 	this.selected[1] = '安庆市'
+				// }
+				// if(response.data.region !== null){
+				// 	this.selected[2] = response.data.region;
+				// }else{
+				// 	this.selected[2] = '潜山市'
+				// }
+				// this.onSelected(this.selected)
+				setTimeout( ()=>{
+					this.jue = true
+				},100)
+				// this.jue = true
+				console.log(this.selected,98767)
+				// if(this.form){
+				if (this.form.isVaccination !== null) {
+					if (this.form.isVaccination == '是') {
+						// 接种疫苗
+						(this.naneme = false), (this.shouwes = true);
+					} else {
+						(this.naneme = true), (this.shouwes = false);
+					}
+				} else {
+					this.naneme = false;
+					this.shouwes = false;
+				}
+
+				if (this.form.dictValue !== null && this.form.dictValue !== undefined) {
+					this.jicheru(this.form.dictValue);
+				}
+				if (this.form.villageTowns !== null) {
+					this.villageTownshy = this.form.villageTowns;
+					if (this.form.village !== null) {
+						this.villageTownshy = this.form.village;
+						if (this.form.villagerGroup !== null) {
+							this.villageTownshy = this.form.villagerGroup;
+						}
+					}
+				}else{
+					this.villageTownshy = '';
+				}
+        console.log(this.villageTownshy,3455)
+
+				if (this.form.vaccineInfoUserList !== null) {
+					if (this.form.vaccineInfoUserList.length == 0) {
+
+					}else {
+						this.form.isVaccination = '是'
+						this.form.vaccineInfoUserList.filter(router =>{
+							if(router.url == undefined){
+								router.url = null
+							}else if(router.url == []){
+								router.url = null
+							}
+							router.disableg = true
+						})
+					}
+				}
+				// villageTownshy
+				// }
+				// this.heuiq.push()
+				this.naiseurya = '';
+				this.hsuej = '';
+				this.opens = true;
+				this.jdourdjoaj = false;
+				this.title = '查看编辑常住人口';
+			});
+		},
+		chahe(data) {
+			console.log(data);
+			// let labelValue = this.$refs['myCascader'].inputValue
+			// console.log(labelValue)
+			console.log(this.$refs['myCascader'])
+			this.form.villageTowns = data[1];
+			this.form.village = data[2];
+			this.form.villagerGroup = data[3];
+			if (this.form.villageTowns !== undefined) {
+				this.hsuej = this.form.villageTowns;
+				if (this.form.village !== undefined) {
+					this.hsuej = this.form.villageTowns + this.form.village;
+					if (this.form.villagerGroup !== undefined) {
+						this.hsuej = this.form.villageTowns + this.form.village + this.form.villagerGroup;
+					}
+				}
+			}
+			this.form.domicile = '';
+
+      // if(this.jdourdjoaj == true){
+      //   //新增
+      //   this.form.nowIn =  this.hsuej
+
+      // }else{
+      //    this.form.nowIn !=  this.hsuej
+      // }
+		},
+		chahetwo(data) {
+			console.log(data)
+			// this.queryParams.villageTowns = data[1];
+			// this.queryParams.village = data[2];
+			// this.queryParams.villagerGroup = data[3];
+			this.queryParams.deptId = data[ data.length - 1]
+		},
+		/** 提交按钮 */
+		submitForm() {
+			this.$refs['form'].validate(valid => {
+				console.log(this.selected);
+				if (valid) {
+					if (this.form.id != null) {
+						// this.form.nowIn = this.naiseurya + this.form.nowIn;
+						// this.form.domicile = this.hsuej + this.form.domicile;
+						updateInfo(this.form).then(response => {
+							this.msgSuccess('修改成功');
+							this.opens = false;
+							this.getList();
+						});
+					} else {
+						// this.form.nowIn = this.naiseurya + this.form.nowIn;
+						// this.form.domicile = this.hsuej + this.form.domicile;
+						// if (this.form.nowIn == 'undefined') {
+						// 	this.form.nowIn = null;
+						// }
+						console.log(this.form)
+						// return
+						addInfo(this.form).then(response => {
+							this.msgSuccess('新增成功');
+							this.opens = false;
+							this.getList();
+						});
+					}
+				}
+			});
+		},
+		/** 删除按钮操作 */
+		handleDelete(row) {
+			const ids = row.id || this.ids;
+      this.idfer = ids
+      this.imashow = true;
+			// this.$confirm('是否确认删除疫苗信息编号为"' + ids + '"的数据项?', '警告', {
+			// 	confirmButtonText: '确定',
+			// 	cancelButtonText: '取消',
+			// 	type: 'warning'
+			// })
+			// 	.then(function() {
+			// 		return delInfo(ids);
+			// 	})
+			// 	.then(() => {
+			// 		this.getList();
+			// 		this.msgSuccess('删除成功');
+			// 	});
+		},
+    submitFormfr(){
+      // formgt
+      if(this.formgt.houseType == null || this.formgt.houseType == undefined){
+        this.$message.error('请选择删除原因');
+        return  false
+      }
+      let nhue = {}
+      nhue.deleteReason = this.formgt.houseType
+      nhue.id = this.idfer
+      delInfo(nhue).then(response => {
+      	this.msgSuccess('删除成功');
+      	this.imashow = false;
+      	this.getList();
+      });
+    },
+    // 还原
+    handleDeletehy(row){
+      const ids = row.id || this.ids;
+      this.$confirm('是否确认还原信息?', '警告', {
+      	confirmButtonText: '确定',
+      	cancelButtonText: '取消',
+      	type: 'warning'
+      })
+      	.then(function() {
+      		return delInfohy(ids);
+      	})
+      	.then(() => {
+      		this.getList();
+      		this.msgSuccess('还原成功');
+      	});
+    },
+		/** 导出按钮操作 */
+		handleExport() {
+			var heuia = {
+                tableName: "vaccine_info",
+                empty: false,
+                condition: {}
+            }
+            var that=this;
+            heuia.condition = this.queryParams
+			const queryParams = this.queryParams
+			this.$confirm('是否确认导出?', "警告", {
+			    confirmButtonText: "确定",
+			    cancelButtonText: "取消",
+			    type: "warning"
+			  }).then(function() {
+			    return exportConfig(heuia);
+			  }).then(response => {
+				  const jues= response.data
+          that.exportflag=false;
+          that.$alert('数据导入中,系统将自动处理数据,请稍后查看结果', "导出结果", { dangerouslyUseHTMLString: true });
+          // that.msgSuccess('数据导入中,系统将自动处理数据,请稍后查看结果');
+				// exportConfigtyr().then(responsr => {
+				// 			console.log(responsr)
+				// 			if(responsr.data == true){
+				// 				// this.download(jues);
+				// 				// window.location.href = jues
+				// 				window.open(jues)
+				// 			}else{
+				// 				this.msgSuccess('数据暂未加载完成,请稍后点击导出进度按钮查看');
+				// 			}
+				// 		});
+
+			  })
+
+
+			// this.download('/boman-web-core/core/info/export',
+			// 	{
+			// 		...this.queryParams
+			// 	},
+			// 	`post_${new Date().getTime()}.xlsx`
+			// );
+
+		},
+
+		// 点击查看
+		chakei(row) {
+			console.log(row);
+			// yiaoe({idCard:row.idCard}).then(response => {
+			// 	// this.msgSuccess('操作成功');
+			// 	if(response.code == 200){
+			// 		this.jiezheList = response.data
+			// 	}
+			// });
+
+			this.jiezhong = true;
+		},
+    /** 导入按钮操作 */
+    handleImport() {
+      this.upload.title = "数据导入";
+      this.upload.opens = true;
+    },
+
+  // 判断是否选择户主
+  changese(){
+    console.log(this.form.houseType)
+    if(this.form.houseType == '是'){
+      this.form.code = this.form.idCard
+      this.nhe = false
+    }else{
+      this.form.code != this.form.idCard
+      this.nhe = true
+    }
+  },
+  // 获取屏幕高度
+            showFilterForm () {
+                  this.filterActive = !this.filterActive
+                  this.changeTableMaxHeight()
+                },
+
+                changeTableMaxHeight () {
+                  let height = document.body.offsetHeight // 网页可视区域高度
+                  // if (this.filterActive) {
+                  //   this.tableMaxHeight = height - 320
+                  // } else {
+                    this.tableMaxHeight = height - 250
+                  // }
+                  console.log(height)
+                },
+	}
+};
+</script>
+<style lang="scss">
+  .placf {
+    .el-input {
+      .el-input__inner::placeholder{
+        color: #333;
+      }
+      /* 谷歌 */
+          .el-input__inner::-webkit-input-placeholder {
+             color: #333;
+          }
+           /* 火狐 */
+         .el-input__inner:-moz-placeholder {
+              color: #333;
+          }
+           /*ie*/
+         .el-input__inner:-ms-input-placeholder {
+              color: #333;
+          }
+    }
+
+  }
+	.jdueuh{
+		.el-form-item__label {
+			width: 0px !important;
+		}
+		.el-form-item__content {
+			margin-left: 10px !important;
+			// width: 70%;
+		}
+	}
+	.ijeuhdy{
+		.el-form-item__label {
+			width: 80px !important;
+		}
+		.el-form-item__content {
+			margin-left: 80px !important;
+			// width: 70%;
+		}
+	}
+	.znshu{
+		.el-form-item__label {
+			width: 80px !important;
+			// padding-left: 30px;
+		}
+		.el-form-item__content {
+			margin-left: 80px !important;
+
+			// width: 70%;
+		}
+		.el-input__inner{
+			padding-left: 0 !important;
+		}
+	}
+	.heioangd{
+		.el-form-item__label {
+			width: 70px !important;
+		}
+		.el-form-item__content {
+			margin-left: 70px !important;
+			// width: 70%;
+		}
+	}
+.hues {
+	.area-select {
+		margin-left: 0 !important;
+		margin-right: 10px;
+	}
+}
+.jehak {
+	.el-form-item {
+		width: 100%;
+	}
+	.el-form-item__content {
+		width: 60%;
+	}
+}
+.oiuyty {
+	.el-form-item__label {
+		width: 80px !important;
+	}
+	.el-form-item__content {
+		margin-left: 80px !important;
+		// width: 70%;
+	}
+	input {
+		padding-right: 0 !important;
+	}
+}
+.el-dialog__body {
+	padding-top: 0;
+	padding-bottom: 0;
+}
+.jhy {
+	// width: 100%;
+	// .el-form-item__content {
+	// 	width: 100%;
+	// 	margin-left: 0 !important;
+	// }
+	.el-form-item__content {
+		margin-left: 55px !important;
+		// width: 70%;
+	}
+	.el-form-item__label {
+		width: 55px !important;
+	}
+}
+.ehiqya {
+	.el-form-item__content {
+		display: flex;
+		.jdidur {
+			flex: 1;
+			margin-left: 10px;
+			// text-align: left;
+			display: flex;
+		}
+	}
+	.upload-demo {
+		display: flex;
+	}
+}
+.jdoier{
+	display: flex;
+	align-items: center;
+	.upload-demo {
+		display: flex;
+	}
+}
+.hueyde {
+	width: 18px;
+	height: 18px;
+	margin: 0 5px;
+	margin-right: 10px;
+}
+.hueydele {
+	width: 15px;
+	height: 18px;
+}
+.hyeoa {
+	height: 100%;
+	display: flex;
+	align-items: center;
+}
+.hjdoecdre {
+	// margin-top: 50%;
+	transform: translateY(50%);
+}
+.ojhgy {
+	.el-dialog {
+		padding-bottom: 40px;
+		padding-top: 10px;
+	}
+	.el-dialog__header {
+		padding-bottom: 20px;
+	}
+	.el-table .cell {
+		line-height: 50px;
+	}
+}
+.hueya{
+	margin-left: 0 !important;
+}
+.iejghiadh{
+	.el-input__inner{
+		padding-right: 0 !important;
+		padding-left: 5px !important;
+	}
+}
+</style>

Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 782 - 151
src/views/system/claim/index.vue


+ 1289 - 0
src/views/system/claimtwo/index.vue

@@ -0,0 +1,1289 @@
+<template>
+	<div class="app-container">
+		<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="70px">
+			<el-row>
+				<el-col :span="24">
+					<el-row>
+						<el-col :span="8">
+							<el-form-item label="身份证号" prop="idCard">
+								<el-input v-model="queryParams.idCard" placeholder="请输入身份证号码" style="width:240px;" clearable @keyup.enter.native="handleQuery" />
+							</el-form-item>
+						</el-col>
+            <el-col :span="8">
+            	<el-form-item label="姓名" prop="userName">
+            		<el-input v-model="queryParams.userName" placeholder="请输入姓名" style="width:240px;" clearable @keyup.enter.native="handleQuery" />
+            	</el-form-item>
+            </el-col>
+						<el-col :span="8">
+							<el-form-item label="联系号码" prop="phoneNum">
+								<el-input v-model="queryParams.phoneNum" placeholder="请输入联系号码" style="width:240px;"clearable @keyup.enter.native="handleQuery" />
+							</el-form-item>
+						</el-col>
+
+					</el-row>
+				</el-col>
+				<el-col :span="24">
+					<el-row>
+            <el-col :span="8">
+            	<el-form-item label="年龄阶段" >
+            		<el-select v-model="queryParams.params.age" placeholder="年龄阶段" style="width:240px;" clearable>
+            			<el-option v-for="dict in angesList" :key="dict.dictValue" :label="dict.dictLabel" :value="dict.dictValue" />
+            		</el-select>
+            	</el-form-item>
+            </el-col>
+            <el-col :span="4" style="text-align: center;">
+            	<el-form-item>
+            		<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+            		<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+            	</el-form-item>
+            </el-col>
+					</el-row>
+				</el-col>
+				<el-col :span="24">
+					<el-row>
+
+
+					</el-row>
+				</el-col>
+			</el-row>
+		</el-form>
+
+		<el-row :gutter="10" class="mb8">
+			<el-col :span="1.5">
+        <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd" >新增</el-button>
+       </el-col>
+			<el-col :span="1.5">
+				<el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate" >认领</el-button>
+			</el-col>
+      <el-col :span="1.5">
+      	<el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete" >删除</el-button>
+      </el-col>
+      
+			<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+		</el-row>
+
+		<el-table v-loading="loading" :data="infoList" @selection-change="handleSelectionChange" stripe style="width: 100%" height="350">
+			<el-table-column type="selection" width="55" align="center" />
+			<el-table-column label="姓名" align="center" prop="userName" fixed width="100"/>
+			<el-table-column label="联系方式" align="center" prop="phoneNum" width="110" />
+			<el-table-column label="身份证号码" align="center" prop="idCard" width="180" />
+			<el-table-column label="户籍地址" align="center" prop="domicileSelect" width="250" />
+			<el-table-column label="居住地址" align="center" prop="nowInSelect"  />
+
+			<el-table-column label="操作" align="left" class-name="small-padding fixed-width" fixed="right"  width="160px">
+				<template slot-scope="scope">
+					<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" >查看认领</el-button>
+          <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" class="hueya" >删除</el-button>
+          
+				</template>
+			</el-table-column>
+		</el-table>
+
+		<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" @pagination="getList" />
+
+		<!-- 添加或修改疫苗信息对话框 -->
+		<el-dialog :title="title" :visible.sync="opens" width="1240px" append-to-body>
+			<el-form ref="form" :model="form" :rules="rules" label-width="100px">
+				<el-row>
+					<el-col :span="8" v-if="shouwef">
+						<el-form-item  label="身份证号" prop="idCard"><el-input v-model="form.idCard" placeholder="请输入身份证号码" @blur="idcde" /></el-form-item>
+					</el-col>
+					<el-col :span="8" v-if="shouwef">
+						<el-form-item label="姓名" prop="userName"><el-input v-model="form.userName" placeholder="请输入姓名" /></el-form-item>
+					</el-col>
+					<el-col :span="8" v-if="shouwef">
+						<el-form-item label="性别" prop="gender">
+							<!-- <el-input v-model="form.gender" placeholder="请输入性别" /> -->
+							<el-select v-model="form.gender" placeholder="性别" clearable style="width: 100%;">
+								<el-option v-for="dict in statusOptions" :key="dict.dictValue" :label="dict.dictLabel" :value="dict.dictValue" />
+							</el-select>
+						</el-form-item>
+					</el-col>
+					<el-col :span="24" v-if="shouwef">
+						<el-row>
+							<el-col :span="8">
+								<el-form-item label="联系号码" prop="phoneNum"><el-input v-model="form.phoneNum" placeholder="请输入联系号码" /></el-form-item>
+							</el-col>
+              <el-col :span="8" v-if="shouwef">
+              	<el-form-item label="户主" prop="houseType">
+              		<el-select v-model="form.houseType" placeholder="户主" clearable style="width: 100%;" @change="changese">
+              			<el-option v-for="dict in typeOptionshuuj" :key="dict.dictValue" :label="dict.dictLabel" :value="dict.dictValue" />
+              		</el-select>
+              	</el-form-item>
+              </el-col>
+							<el-col :span="8" v-if="shouwef">
+								<el-form-item label="年龄" prop="age"><el-input v-model="form.age" placeholder="请输入年龄" /></el-form-item>
+							</el-col>
+						</el-row>
+					</el-col>
+
+          <el-col :span="24">
+          	<el-row>
+          		<el-col :span="12">
+          			<el-form-item label="户籍地址" prop="villageTowns">
+          				<!-- <el-input v-model="form.villageTowns" type="textarea" placeholder="请输入内容" /> -->
+          				<!-- <treeselect v-model="form.parentId" :options="deptOptionstwo" :normalizer="normalizer" :flat="true" :maxHeight="150" @select="djieskle" :multiple=true placeholder="点击选择户籍地" /> -->
+          				<el-cascader
+          					placeholder="点击选择户籍地址"
+          					:options="options"
+          					:filterable="true"
+          					separator="/"
+          					@change="chahe"
+          					v-model="villageTownshy"
+          					:props="optionProps"
+          					style="width: 100%;"
+          					ref="myCascader"
+          				></el-cascader>
+          			</el-form-item>
+          		</el-col>
+
+          		<el-col :span="12">
+          			<el-form-item label="详细地址" prop="domicile"><el-input v-model="form.domicile" type="input" placeholder="请输入户籍详细地址" /></el-form-item>
+          		</el-col>
+          	</el-row>
+          </el-col>
+
+					<el-col :span="12">
+						<el-form-item label="居住地址" prop="region">
+							<area-select
+								type="text"
+								v-model="selected"
+								v-if="jue"
+								:data="$pcaa"
+								:level="2"
+								style="display: flex;line-height: 18px;"
+								@change="onSelected"
+								class="hues"
+							></area-select>
+						</el-form-item>
+					</el-col>
+
+					<el-col :span="12">
+						<el-form-item label="详细地址" prop="nowIn"><el-input v-model="form.nowIn" type="input" placeholder="请输入内容" /></el-form-item>
+					</el-col>
+
+					<el-col :span="24" v-if="shouwef == true">
+
+						<el-col :span="12">
+							<el-form-item label="户主编号" prop="code">
+							<el-input :disabled="nhe" v-model="form.code" placeholder="请输入户主编号"/>
+							</el-form-item>
+						</el-col>
+					</el-col>
+				</el-row>
+			</el-form>
+			<div slot="footer" class="dialog-footer">
+				<el-button type="primary" @click="submitForm">确 定</el-button>
+				<el-button @click="cancel">取 消</el-button>
+			</div>
+		</el-dialog>
+
+    <!-- 用户导入对话框 -->
+
+    <!-- 图片预览 -->
+    <el-dialog :close-on-click-modal="false" title="删除原因" :visible.sync="imashow" width="800px" append-to-body >
+      <el-form ref="formgt" :model="formgt" :rules="ruleshy" label-width="100px" style="padding-bottom: 30px;">
+      <el-form-item label="删除原因:" prop="houseType">
+      	<el-select v-model="formgt.houseType" placeholder="请选择删除原因" clearable style="width: 100%;">
+      		<el-option v-for="dict in typeOptions" :key="dict.dictValue" :label="dict.dictLabel" :value="dict.dictValue" />
+      	</el-select>
+      </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+      	<el-button type="primary" @click="submitFormfr">确 定</el-button>
+      	<el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+
+
+	</div>
+</template>
+
+<script>
+import { listInfo, getInfo, delInfo, addInfo, updateInfo, exportInfo, listRoleer, idces, delInfort,yiaoe,exportConfig,exportConfigtyr,importLog,delInfohy } from '@/api/system/claim';
+import { treeselect } from '@/api/system/dept';
+import Treeselect from '@riophae/vue-treeselect';
+import { getToken } from '@/utils/auth';
+import '@riophae/vue-treeselect/dist/vue-treeselect.css';
+export default {
+	name: 'Info',
+	components: { Treeselect },
+	data() {
+		return {
+			// 遮罩层
+			loading: true,
+			// 选中数组
+			ids: [],
+			// 非单个禁用
+			single: true,
+			// 非多个禁用
+			multiple: true,
+			// 显示搜索条件
+			showSearch: true,
+			// 总条数
+			total: 0,
+			// 疫苗信息表格数据
+			infoList: [],
+			dialogImageUrl: '',
+			// 弹出层标题
+			title: '',
+			// 是否显示弹出层
+			opens: false,
+			process: process.env.VUE_APP_BASE_API,
+      formgt:{},
+      ruleshy:{},
+			// 查询参数
+			queryParams: {
+				pageNum: 1,
+				pageSize: 10,
+				ryrl: false,
+				userName: null,
+				idCard: null,
+				phoneNum: null,
+        params:{
+        	age:''
+        }
+			},
+			config: [],
+			comfietg:[],
+			configther:[],
+			configfor:[],
+			// 表单参数
+			form: {
+				nowIn: '',
+				age:'',
+				code:'',
+				vaccineInfoUserList: [
+					{
+						vaccineName: '',
+						vaccinationTime: '',
+						vaccinationPlace: '',
+						jici: '',
+						progress: '',
+						url:null,
+						disableg:false
+					}
+				]
+			},
+      // 用户导入参数
+      upload: {
+        // 是否显示弹出层(用户导入)
+        opens: false,
+        // 弹出层标题(用户导入)
+        title: "",
+        // 是否禁用上传
+        isUploading: false,
+        // 是否更新已经存在的用户数据
+        updateSupport: 0,
+        // 设置上传的请求头部
+        headers: { Authorization: "Bearer " + getToken() },
+        // 上传的地址
+        url: process.env.VUE_APP_BASE_API + "/boman-web-core//file/common/importYmjz"
+      },
+			// 表单校验
+			rules: {
+
+			},
+			selected: ['安徽省', '安庆市', '潜山市'],
+			selectedtwo: [],
+			statusOptions: [
+				{
+					dictValue: '女',
+					dictLabel: '女'
+				},
+				{
+					dictValue: '男',
+					dictLabel: '男'
+				}
+			],
+			statusOptionstue: [
+				{
+					dictValue: '已完成',
+					dictLabel: '已完成'
+				},
+				{
+					dictValue: '未完成',
+					dictLabel: '未完成'
+				}
+			],
+			typeOptionshuuj: [
+				{
+					dictValue: '是',
+					dictLabel: '是'
+				},
+				{
+					dictValue: '否',
+					dictLabel: '否'
+				}
+			],
+			deptOptionstwo: [],
+			options: [],
+			optionProps: {
+				value: 'label',
+				label: 'label',
+				children: 'children',
+				checkStrictly: true
+			},
+			optionPropstwo: {
+				value: 'id',
+				label: 'label',
+				children: 'children',
+				checkStrictly: true
+			},
+			heuiq: [],
+			typeOptions: [],
+			typeOptionsty: [
+				{
+					dictValue: '是',
+					dictLabel: '是'
+				},
+				{
+					dictValue: '否',
+					dictLabel: '否'
+				}
+			],
+			typeOptionstyzandeh:[],
+			angesList: [
+
+			],
+			typeOptionsname: [],
+			typeOptionstimes: [],
+			typeOptionsvaccinatio: [],
+			typeOptionscont: [],
+			typeOptionscontty: [],
+			typeOptionscontqit:[],
+			// 剂次
+			typeOptionstimesgt: [
+				{
+					dictValue: '1',
+					dictLabel: '1'
+				},
+				{
+					dictValue: '2',
+					dictLabel: '2'
+				},
+				{
+					dictValue: '3',
+					dictLabel: '3'
+				},
+				{
+					dictValue: '加强针',
+					dictLabel: '加强针'
+				}
+			],
+			imashow: false,
+			naneme: false,
+			shouwes: false,
+			shouwestwo:false,
+			villageTownshy: undefined,
+			naiseurya: '',
+			hsuej: '',
+			jdourdjoaj: false,
+			jiezhong: false,
+			jiezheList: [],
+			fireLise:{config:[]},
+			nameutaiL:0,
+			jue:false,
+			nhue:true,
+      exportflag:true,
+      errorlog:false,
+      errorList:[],
+      idfer:0,
+      shouwef:false,
+      ndnuead:0,
+      nhe:false
+		};
+	},
+	created() {
+		this.getList();
+		this.getTreeselectjue();
+		// 重点行业
+		this.getDicts('person_type').then(response => {
+			this.typeOptions = response.data;
+		});
+
+
+    this.getDicts('age_interval').then(response => {
+    	this.angesList = response.data;
+    });
+
+
+
+		// this.form.province = this.selected[0];
+		// this.form.city = this.selected[1];
+		// this.form.region = this.selected[2];
+		console.log(this.selected,456)
+		// this.queryParams.province = this.selectedtwo[0];
+		// this.queryParams.city = this.selectedtwo[1];
+		// this.queryParams.region = this.selectedtwo[2];
+		// this.naiseurya = this.form.province + this.form.city + this.form.region;
+	},
+	mounted() {
+		console.log(136)
+	},
+	methods: {
+		onSelected(data) {
+			console.log(data, 125);
+			// province
+			this.form.province = data[0];
+			this.form.city = data[1];
+			this.form.region = data[2];
+			this.naiseurya = this.form.province + this.form.city + this.form.region;
+			if (this.jdourdjoaj == false) {
+				// 修改
+				this.form.nowIn = '';
+			}
+			// this.form.nowIn = undefined
+			// this.form.villageTowns = data[3]
+		},
+		dakousr() {
+			console.log(2345);
+		},
+		onSelectedtwo(data) {
+			console.log(data);
+			// province
+			this.queryParams.province = data[0];
+			this.queryParams.city = data[1];
+			this.queryParams.region = data[2];
+			// this.queryParams.villageTowns = data[3]
+		},
+		/** 查询疫苗信息列表 */
+		getList() {
+			this.loading = true;
+			listInfo(this.queryParams).then(response => {
+				this.infoList = response.rows;
+				this.total = response.total;
+				this.loading = false;
+			});
+		},
+		getToken() {
+			return getToken();
+		},
+		getTreeselectjue() {
+			this.loading = true;
+			listRoleer(this.queryParams).then(response => {
+				this.options = response.data;
+				this.loading = false;
+			});
+		},
+		/** 转换角色数据结构 */
+		normalizer(node) {
+			// if (node.children && !node.children.length) {
+			//   delete node.children;
+			// }
+			return {
+				id: node.id,
+				label: node.roleName
+			};
+		},
+		// 点击组/角色
+		djieskle(node, instanceId) {
+			// this.personnel(node.id);
+			console.log(node, instanceId);
+		},
+		// 身份证
+		idcde(event) {
+			console.log(event);
+			// 身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X
+			let reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
+			if (reg.test(this.form.idCard)) {
+				this.idea();
+				// this.go(this.form.idCard.length);
+				// callback()
+			} else {
+				// callback(new Error('身份证号码不正确'))
+				this.msgInfo('身份证号码不正确');
+			}
+		},
+		// 实现自动生成生日,性别,年龄
+		go(val) {
+			let iden = this.form.idCard;
+			let sex = null;
+			let birth = null;
+			let birthr = '';
+			let myDate = new Date();
+			let month = myDate.getMonth() + 1;
+			let day = myDate.getDate();
+			let age = 0;
+
+			if (val === 18) {
+				age = myDate.getFullYear() - iden.substring(6, 10) - 1;
+				sex = iden.substring(16, 17);
+				birth = iden.substring(6, 10) + '-' + iden.substring(10, 12) + '-' + iden.substring(12, 14);
+				if (iden.substring(10, 12) < month || (iden.substring(10, 12) == month && iden.substring(12, 14) <= day)) age++;
+			}
+			if (val === 15) {
+				age = myDate.getFullYear() - iden.substring(6, 8) - 1901;
+				sex = iden.substring(13, 14);
+				birth = '19' + iden.substring(6, 8) + '-' + iden.substring(8, 10) + '-' + iden.substring(10, 12);
+				if (iden.substring(8, 10) < month || (iden.substring(8, 10) == month && iden.substring(10, 12) <= day)) age++;
+			}
+
+			if (sex % 2 === 0) sex = '女';
+			else sex = '男';
+			this.form.gender = sex;
+			// this.baseInfo.age = age;
+			birthr = birth + '';
+			console.log(birthr);
+			// this.form.birthday = birthr;
+			// this.$set(this.form.birthday, birthr)
+			// this.baseInfo.birthplace = this.area[iden.substring(0,2)];
+		},
+		// 请求身份证数据
+		idea() {
+			idces({ idCard: this.form.idCard }).then(response => {
+				console.log(response);
+				this.form.gender = response.data.gender;
+				// this.form.birthday = response.data.birthday;
+				this.form.age = response.data.age
+				this.form.code = response.data.code
+				if (response.data.userName == null) {
+					this.form.userName = undefined;
+				} else {
+					this.form.userName = response.data.userName;
+				}
+			});
+		},
+		// 取消按钮
+		cancel() {
+			this.opens = false;
+			this.jiezhong = false;
+			this.imashow = false;
+      this.errorlog=false;
+			this.reset();
+		},
+		gywoa() {
+			console.log(this.form.isVaccination);
+			if (this.form.isVaccination !== null) {
+				if (this.form.isVaccination == '是') {
+					// 接种疫苗
+					this.naneme = false,
+					this.shouwes = true;
+				}else {
+					this.naneme = true,
+					this.shouwes = false,
+					this.form.vaccineInfoUserList = [{
+						vaccineName: '',
+						vaccinationTime: '',
+						vaccinationPlace: '',
+						jici: '',
+						progress: '',
+						url:null
+					}
+				]
+				}
+			}
+		},
+		gywoatwo() {
+			console.log(this.queryParams.isVaccination);
+			if (this.queryParams.isVaccination !== null) {
+				if (this.queryParams.isVaccination == '是') {
+					// 接种疫苗
+					// (this.naneme = false), (this.shouwes = true);
+					this.shouwestwo = false
+				} else {
+					// (this.naneme = true), (this.shouwes = false);
+					this.shouwestwo = true
+				}
+			}
+		},
+		// 表单重置
+		reset() {
+			this.form = {
+				id: null,
+				villageTowns: null,
+				village: null,
+				age:'',
+				code:'',
+				villagerGroup: null,
+				houseType: null,
+				domicile: null,
+				province: null,
+				city: null,
+				region: null,
+				userName: null,
+				gender: null,
+				idCard: null,
+				phoneNum: null,
+				keyIndustries: null,
+				isVaccination: null,
+				vaccinationPlace: null,
+				contraindication: null,
+				suspend: null,
+				death: null,
+				lostInMissing: null,
+				shouldBe: null,
+				other: null,
+				nowIn: '',
+				remark: null,
+				createBy: null,
+				createTime: null,
+				updateBy: null,
+				updateTime: null,
+				isDel: null,
+			};
+			this.resetForm('form');
+		},
+		/** 搜索按钮操作 */
+		handleQuery() {
+			this.queryParams.pageNum = 1;
+			console.log(this.queryParams)
+			this.getList();
+		},
+		/** 重置按钮操作 */
+		resetQuery() {
+			this.nhue = false
+			this.selectedtwo = []
+			setTimeout( ()=>{
+				this.nhue = true
+			},100)
+			this.queryParams.province = undefined;
			this.queryParams.city = undefined;
			this.queryParams.region = undefined;
+			this.resetForm('queryForm');
+			this.handleQuery();
+		},
+		// 多选框选中数据
+		handleSelectionChange(selection) {
+			this.ids = selection.map(item => item.id);
+			this.single = selection.length !== 1;
+			this.multiple = !selection.length;
+		},
+		/** 新增按钮操作 */
+		handleAdd() {
+			this.reset();
+			this.opens = true;
+			(this.naneme = false),
+			(this.shouwes = false);
+			this.selected = ['安徽省', '安庆市', '潜山市'],
+			this.form.province = this.selected[0];
+			this.villageTownshy = '';
+			this.naiseurya = '';
+			this.hsuej = '';
+			this.form.city = this.selected[1];
+			this.form.region = this.selected[2];
+			this.title = '添加人员信息';
+			this.jdourdjoaj = true;
+			this.jue = true
+      this.shouwef = true
+			console.log(this.form)
+		},
+		/** 修改按钮操作 */
+		handleUpdate(row) {
+			this.reset();
+			const id = row.id || this.ids;
+      console.log(id,34567)
+      this.ndnuead = id
+			getInfo(id).then(response => {
+				this.form = response.data;
+				this.jue = false
+				if(response.data.province !== null){
+					this.selected[0] = response.data.province;
+				}else{
+					this.selected[0] ='安徽省'
+				}
+				if(response.data.city !== null){
+					this.selected[1] = response.data.city;
+				}else{
+					this.selected[1] = '安庆市'
+				}
+				if(response.data.region !== null){
+					this.selected[2] = response.data.region;
+				}else{
+					this.selected[2] = '潜山市'
+				}
+				this.onSelected(this.selected)
+				setTimeout( ()=>{
+					this.jue = true
+				},100)
+				// this.jue = true
+				console.log(this.selected,98767)
+				// if(this.form){
+				if (this.form.isVaccination !== null) {
+					if (this.form.isVaccination == '是') {
+						// 接种疫苗
+						(this.naneme = false), (this.shouwes = true);
+					} else {
+						(this.naneme = true), (this.shouwes = false);
+					}
+				} else {
+					this.naneme = false;
+					this.shouwes = false;
+				}
+
+				if (this.form.dictValue !== null && this.form.dictValue !== undefined) {
+					this.jicheru(this.form.dictValue);
+				}
+				if (this.form.villageTowns !== null) {
+					this.villageTownshy = this.form.villageTowns;
+					if (this.form.village !== null) {
+						this.villageTownshy = this.form.village;
+						if (this.form.villagerGroup !== null) {
+							this.villageTownshy = this.form.villagerGroup;
+						}
+					}
+				}else{
+					this.villageTownshy = '';
+				}
+
+				if (this.form.vaccineInfoUserList !== null) {
+					if (this.form.vaccineInfoUserList.length == 0) {
+
+						this.form.vaccineInfoUserList = [
+							{
+								vaccineName: '',
+								vaccinationTime: '',
+								vaccinationPlace: '',
+								jici: '',
+								progress: '',
+								url:null,
+								disableg:false
+							}
+						];
+					}else {
+						this.form.isVaccination = '是'
+						this.form.vaccineInfoUserList.filter(router =>{
+							if(router.url == undefined){
+								router.url = null
+							}else if(router.url == []){
+								router.url = null
+							}
+							router.disableg = true
+						})
+					}
+				}
+				// villageTownshy
+				// }
+				// this.heuiq.push()
+
+			});
+      setTimeout( ()=>{
+      		this.jue = true
+      	},100)
+      	// this.jue = true
+      this.naiseurya = '';
+      this.hsuej = '';
+      this.opens = true;
+      this.shouwef = false
+      this.jdourdjoaj = false;
+      this.title = '查看认领人员';
+		},
+		chahe(data) {
+			console.log(data);
+			// let labelValue = this.$refs['myCascader'].inputValue
+			// console.log(labelValue)
+			console.log(this.$refs['myCascader'])
+			this.form.villageTowns = data[1];
+			this.form.village = data[2];
+			this.form.villagerGroup = data[3];
+			if (this.form.villageTowns !== undefined) {
+				this.hsuej = this.form.villageTowns;
+				if (this.form.village !== undefined) {
+					this.hsuej = this.form.villageTowns + this.form.village;
+					if (this.form.villagerGroup !== undefined) {
+						this.hsuej = this.form.villageTowns + this.form.village + this.form.villagerGroup;
+					}
+				}
+			}
+
+			this.form.domicile = '';
+		},
+		chahetwo(data) {
+			console.log(data)
+			// this.queryParams.villageTowns = data[1];
+			// this.queryParams.village = data[2];
+			// this.queryParams.villagerGroup = data[3];
+			this.queryParams.deptId = data[ data.length - 1]
+		},
+		/** 提交按钮 */
+		submitForm() {
+			this.$refs['form'].validate(valid => {
+				console.log(this.selected);
+				if (valid) {
+					if (this.form.id != null) {
+						// this.form.nowIn = this.naiseurya + this.form.nowIn;
+						// this.form.domicile = this.hsuej + this.form.domicile;
+            let bhye = {}
+            bhye.province = this.form.province
+            bhye.city = this.form.city
+            bhye.region = this.form.region
+            bhye.domicile = this.form.domicile
+            bhye.villageTowns = this.form.villageTowns
+            bhye.village = this.form.village
+            bhye.villagerGroup = this.form.villagerGroup
+            bhye.nowIn = this.form.nowIn
+            bhye.id = this.ndnuead
+
+						updateInfo(bhye).then(response => {
+							this.msgSuccess('修改成功');
+							this.opens = false;
+							this.getList();
+						});
+					} else {
+						// this.form.nowIn = this.naiseurya + this.form.nowIn;
+						// this.form.domicile = this.hsuej + this.form.domicile;
+						// if (this.form.nowIn == 'undefined') {
+						// 	this.form.nowIn = null;
+						// }
+            if(this.form.idCard == null || this.form.idCard == undefined || this.form.idCard ==''){
+              this.msgSuccess('请填写身份证信息');
+              return false
+            }
+						console.log(this.form)
+						// return
+						addInfo(this.form).then(response => {
+							this.msgSuccess('新增成功');
+							this.opens = false;
+							this.getList();
+						});
+					}
+				}
+			});
+		},
+		/** 删除按钮操作 */
+		handleDelete(row) {
+			const ids = row.id || this.ids.join(',');
+      this.idfer = ids
+      console.log(this.idfer,4567)
+      this.imashow = true;
+			// this.$confirm('是否确认删除疫苗信息编号为"' + ids + '"的数据项?', '警告', {
+			// 	confirmButtonText: '确定',
+			// 	cancelButtonText: '取消',
+			// 	type: 'warning'
+			// })
+			// 	.then(function() {
+			// 		return delInfo(ids);
+			// 	})
+			// 	.then(() => {
+			// 		this.getList();
+			// 		this.msgSuccess('删除成功');
+			// 	});
+		},
+    submitFormfr(){
+      // formgt
+      if(this.formgt.houseType == null || this.formgt.houseType == undefined){
+        this.$message.error('请选择删除原因');
+        return  false
+      }
+      let nhue = {}
+      nhue.deleteReason = this.formgt.houseType
+      nhue.id = this.idfer
+      delInfo(nhue).then(response => {
+      	this.msgSuccess('删除成功');
+      	this.imashow = false;
+      	this.getList();
+      });
+    },
+    // 还原
+    handleDeletehy(row){
+      const ids = row.id || this.ids;
+      this.$confirm('是否确认还原信息?', '警告', {
+      	confirmButtonText: '确定',
+      	cancelButtonText: '取消',
+      	type: 'warning'
+      })
+      	.then(function() {
+      		return delInfohy(ids);
+      	})
+      	.then(() => {
+      		this.getList();
+      		this.msgSuccess('还原成功');
+      	});
+    },
+		/** 导出按钮操作 */
+		handleExport() {
+			var heuia = {
+                tableName: "vaccine_info",
+                empty: false,
+                condition: {}
+            }
+            var that=this;
+            heuia.condition = this.queryParams
+			const queryParams = this.queryParams
+			this.$confirm('是否确认导出?', "警告", {
+			    confirmButtonText: "确定",
+			    cancelButtonText: "取消",
+			    type: "warning"
+			  }).then(function() {
+			    return exportConfig(heuia);
+			  }).then(response => {
+				  const jues= response.data
+          that.exportflag=false;
+          that.$alert('数据导入中,系统将自动处理数据,请稍后查看结果', "导出结果", { dangerouslyUseHTMLString: true });
+          // that.msgSuccess('数据导入中,系统将自动处理数据,请稍后查看结果');
+				// exportConfigtyr().then(responsr => {
+				// 			console.log(responsr)
+				// 			if(responsr.data == true){
+				// 				// this.download(jues);
+				// 				// window.location.href = jues
+				// 				window.open(jues)
+				// 			}else{
+				// 				this.msgSuccess('数据暂未加载完成,请稍后点击导出进度按钮查看');
+				// 			}
+				// 		});
+
+			  })
+
+
+			// this.download('/boman-web-core/core/info/export',
+			// 	{
+			// 		...this.queryParams
+			// 	},
+			// 	`post_${new Date().getTime()}.xlsx`
+			// );
+
+		},
+		// 疫苗名称改变
+		changeheu(index, data) {
+			console.log(index, data);
+			let hueya = this.form.vaccineInfoUserList[index].vaccineName;
+			// this.form.vaccineName = this.form.vaccineName.label;
+			this.form.vaccineInfoUserList[index].vaccineName = hueya.label;
+			console.log(this.form.vaccineInfoUserList[index].vaccineName);
+			this.jicheru(hueya.value);
+		},
+
+		// 剂次
+		jicheru(data) {
+			// 计次
+			this.getDicts(data).then(response => {
+				this.typeOptionstimes = response.data;
+			});
+		},
+		// 剂次改变
+		changeheujici(index) {
+			console.log(index);
+			let hueya = this.form.vaccineInfoUserList[index].jici;
+			// this.form.vaccineName = this.form.vaccineName.label;
+			this.form.vaccineInfoUserList[index].jici = hueya.label;
+			console.log(this.form.vaccineInfoUserList[index].jici);
+			if (hueya.value == this.typeOptionstimes.length) {
+				this.form.vaccineInfoUserList[index].progress = '已完成';
+			} else {
+				this.form.vaccineInfoUserList[index].progress = '未完成';
+			}
+		},
+		// 剂次
+		jicherutwo(data) {
+			// 计次
+			this.getDicts(data).then(response => {
+				this.typeOptionstimes = response.data;
+			});
+		},
+		// 疫苗名称改变
+		changeheutwo(data) {
+			console.log(data);
+			this.queryParams.vaccineName = this.queryParams.vaccineName.label;
+			console.log(this.queryParams.vaccineName);
+			this.jicherutwo(data.value);
+		},
+		// 点击新增
+		tijea(index) {
+			console.log(index+ 1)
+			this.nameutaiL = index+ 1
+			this.form.vaccineInfoUserList.push({
+				vaccineName: '',
+				vaccinationTime: '',
+				vaccinationPlace: '',
+				jici: '',
+				progress: '',
+				url:null,
+				disableg:false
+			});
+		},
+		// 点击删除
+		naeyrfakjf(index, item) {
+			var that = this
+			this.$confirm('是否确认删除疫苗信息?', '警告', {
+				confirmButtonText: '确定',
+				cancelButtonText: '取消',
+				type: 'warning'
+			})
+				.then(function() {
+					return that.delseeug(index,item)
+				})
+				.then(() => {
+					// this.getList();
+					this.msgSuccess('删除成功');
+				});
+
+		},
+		delseeug(index,item){
+			console.log(234)
+			if (this.form.vaccineInfoUserList.length == 1) {
+				// if (this.jdourdjoaj == true) {
+				// 	// 新增
+				// 	this.form.vaccineInfoUserList = [{
+				// 		vaccineName: '',
+				// 		vaccinationTime: '',
+				// 		vaccinationPlace: '',
+				// 		jici: '',
+				// 		progress: '',
+				// 		url:null,
+				// 		disableg:false
+				// 	}]
+				// } else {
+				// 	// 修改
+				// 	let ide = this.form.vaccineInfoUserList[index].id;
+				// 	console.log(this.form.vaccineInfoUserList[index]);
+				// 	// ()
+				// 	console.log(ide);
+				// 	if (ide !== undefined) {
+				// 		console.log(234);
+				// 		delInfort(ide).then(response => {
+				// 			this.msgSuccess('操作成功');
+				// 		});
+				// 	}
+				// 	this.form.vaccineInfoUserList = [{
+				// 		vaccineName: '',
+				// 		vaccinationTime: '',
+				// 		vaccinationPlace: '',
+				// 		jici: '',
+				// 		progress: '',
+				// 		url:null,
+				// 		disableg:false
+				// 	}]
+				// }
+				return false;
+			}
+			if (this.jdourdjoaj == true) {
+				// 新增
+				this.form.vaccineInfoUserList.splice(index, 1);
+			} else {
+				// 修改
+				let ide = this.form.vaccineInfoUserList[index].id;
+				console.log(this.form.vaccineInfoUserList[index]);
+				// ()
+				console.log(ide);
+				if (ide !== undefined) {
+					console.log(234);
+					delInfort(ide).then(response => {
+						this.msgSuccess('操作成功');
+					});
+				}
+				this.form.vaccineInfoUserList.splice(index, 1);
+			}
+		},
+		// 点击查看
+		chakei(row) {
+			console.log(row);
+			yiaoe({idCard:row.idCard}).then(response => {
+				// this.msgSuccess('操作成功');
+				if(response.code == 200){
+					this.jiezheList = response.data
+				}
+			});
+
+			this.jiezhong = true;
+		},
+    /** 导入按钮操作 */
+    handleImport() {
+      this.upload.title = "数据导入";
+      this.upload.opens = true;
+    },
+    // 文件上传中处理
+    handleFileUploadProgress(event, file, fileList) {
+      this.upload.isUploading = true;
+    },
+    // 文件上传成功处理
+    handleFileSuccess(response, file, fileList) {
+      this.upload.opens = false;
+      this.upload.isUploading = false;
+      this.$refs.upload.clearFiles();
+      // this.$alert(response.msg, "导入结果", { dangerouslyUseHTMLString: true });
+	  this.$alert(response.msg, "导入结果", { dangerouslyUseHTMLString: true });
+      this.getList();
+    },
+    // 提交上传文件
+    submitFileForm() {
+      this.$refs.upload.submit();
+    },
+	/** 下载模板操作 */
+	importTemplate() {
+	  this.download('system/user/importTemplate', {
+	    ...this.queryParams
+	  }, `user_${new Date().getTime()}.xlsx`)
+	},
+	// 导入进度查询
+	handleImporthg(){
+    importLog().then(res=>{
+      if(res.code==200){
+        this.errorList=res.rows;
+        this.errorlog=true;
+      }
+    })
+	},
+	// 导出进度查询
+	handleExportjy(){
+		exportConfigtyr().then(responsr => {
+					// console.log(responsr)
+					if(responsr.data == true){
+						// this.download(jues);
+						// window.location.href = jues
+            this.exportflag=true;
+						window.open(responsr.msg)
+					}else{
+						this.msgSuccess('数据暂未加载完成,请稍后点击导出进度按钮查看');
+					}
+				});
+	},
+  // 判断是否选择户主
+  changese(){
+    console.log(this.form.houseType)
+    if(this.form.houseType == '是'){
+      this.form.code = this.form.idCard
+      this.nhe = false
+    }else{
+      this.form.code != this.form.idCard
+      this.nhe = true
+    }
+  }
+	}
+};
+</script>
+<style lang="scss">
+	.jdueuh{
+		.el-form-item__label {
+			width: 0px !important;
+		}
+		.el-form-item__content {
+			margin-left: 10px !important;
+			// width: 70%;
+		}
+	}
+	.ijeuhdy{
+		.el-form-item__label {
+			width: 80px !important;
+		}
+		.el-form-item__content {
+			margin-left: 80px !important;
+			// width: 70%;
+		}
+	}
+	.znshu{
+		.el-form-item__label {
+			width: 80px !important;
+			// padding-left: 30px;
+		}
+		.el-form-item__content {
+			margin-left: 80px !important;
+
+			// width: 70%;
+		}
+		.el-input__inner{
+			padding-left: 0 !important;
+		}
+	}
+	.heioangd{
+		.el-form-item__label {
+			width: 70px !important;
+		}
+		.el-form-item__content {
+			margin-left: 70px !important;
+			// width: 70%;
+		}
+	}
+.hues {
+	.area-select {
+		margin-left: 0 !important;
+		margin-right: 10px;
+	}
+}
+.jehak {
+	.el-form-item {
+		width: 100%;
+	}
+	.el-form-item__content {
+		width: 60%;
+	}
+}
+.oiuyty {
+	.el-form-item__label {
+		width: 80px !important;
+	}
+	.el-form-item__content {
+		margin-left: 80px !important;
+		// width: 70%;
+	}
+	input {
+		padding-right: 0 !important;
+	}
+}
+.el-dialog__body {
+	padding-top: 0;
+	padding-bottom: 0;
+}
+.jhy {
+	// width: 100%;
+	// .el-form-item__content {
+	// 	width: 100%;
+	// 	margin-left: 0 !important;
+	// }
+	.el-form-item__content {
+		margin-left: 55px !important;
+		// width: 70%;
+	}
+	.el-form-item__label {
+		width: 55px !important;
+	}
+}
+.ehiqya {
+	.el-form-item__content {
+		display: flex;
+		.jdidur {
+			flex: 1;
+			margin-left: 10px;
+			// text-align: left;
+			display: flex;
+		}
+	}
+	.upload-demo {
+		display: flex;
+	}
+}
+.jdoier{
+	display: flex;
+	align-items: center;
+	.upload-demo {
+		display: flex;
+	}
+}
+.hueyde {
+	width: 18px;
+	height: 18px;
+	margin: 0 5px;
+	margin-right: 10px;
+}
+.hueydele {
+	width: 15px;
+	height: 18px;
+}
+.hyeoa {
+	height: 100%;
+	display: flex;
+	align-items: center;
+}
+.hjdoecdre {
+	// margin-top: 50%;
+	transform: translateY(50%);
+}
+.ojhgy {
+	.el-dialog {
+		padding-bottom: 40px;
+		padding-top: 10px;
+	}
+	.el-dialog__header {
+		padding-bottom: 20px;
+	}
+	.el-table .cell {
+		line-height: 50px;
+	}
+}
+.hueya{
+	margin-left: 0 !important;
+}
+.iejghiadh{
+	.el-input__inner{
+		padding-right: 0 !important;
+		padding-left: 5px !important;
+	}
+}
+</style>

+ 38 - 14
src/views/system/eturnees/index.vue

@@ -26,29 +26,29 @@
 		</el-form>
 
 		<el-row :gutter="10" class="mb8">
-			<el-col :span="1.5"><el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd" v-hasPermi="['core:info:add']">新增</el-button></el-col>
+			<el-col :span="1.5"><el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd">新增</el-button></el-col>
 			<el-col :span="1.5">
-				<el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate" v-hasPermi="['core:info:edit']">修改</el-button>
+				<el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate">修改</el-button>
 			</el-col>
       <el-col :span="1.5">
-      	<el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete" v-hasPermi="['core:info:remove']">删除</el-button>
+      	<el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete">删除</el-button>
       </el-col>
 			<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
 		</el-row>
 
-		<el-table v-loading="loading" :data="infoList" @selection-change="handleSelectionChange" stripe style="width: 100%" height="350">
+		<el-table v-loading="loading" :data="infoList" @selection-change="handleSelectionChange" stripe style="width: 100%" :height="tableMaxHeight">
 			<el-table-column type="selection" width="55" align="center" />
-			<el-table-column label="姓名" align="center" prop="name" fixed />
+			<el-table-column label="姓名" align="center" prop="name" fixed width="100"/>
 			<el-table-column label="联系方式" align="center" prop="telephone" width="110" />
 			<el-table-column label="身份证号码" align="center" prop="idCardHide" width="180" />
 			<el-table-column label="户籍地址" align="center" prop="wzhjdz" width="250" />
-			<el-table-column label="工作地址" align="center" prop="addrOutsideProvince" width="250" />
+			<el-table-column label="工作地址" align="center" prop="addrOutsideProvince"  />
       <el-table-column label="返乡时间" align="center" prop="intendedReturnTime" width="250" />
 
-			<el-table-column label="操作" align="left" class-name="small-padding fixed-width" fixed="right" >
+			<el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right" width="160">
 				<template slot-scope="scope">
-					<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" v-hasPermi="['core:info:edit']">查看修改</el-button>
-          <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" class="hueya" v-hasPermi="['core:info:remove']">删除</el-button>
+					<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)">查看修改</el-button>
+          <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" class="hueya">删除</el-button>
 				</template>
 			</el-table-column>
 		</el-table>
@@ -341,7 +341,8 @@ export default {
       errorList:[],
       idfer:0,
       shouwef:false,
-      ndnuead:0
+      ndnuead:0,
+      tableMaxHeight:300,
 		};
 	},
 	created() {
@@ -355,14 +356,22 @@ export default {
 		// this.form.province = this.selected[0];
 		// this.form.city = this.selected[1];
 		// this.form.region = this.selected[2];
-		console.log(this.selected,456)
+		console.log(this.selected,456)
+    window.onresize = () => {
+                    this.changeTableMaxHeight()
+                  }
+                  this.changeTableMaxHeight()
 		// this.queryParams.province = this.selectedtwo[0];
 		// this.queryParams.city = this.selectedtwo[1];
 		// this.queryParams.region = this.selectedtwo[2];
 		// this.naiseurya = this.form.province + this.form.city + this.form.region;
 	},
 	mounted() {
-		console.log(136)
+		console.log(136)
+    window.onresize = () => {
+                    this.changeTableMaxHeight()
+                  }
+                  this.changeTableMaxHeight()
 	},
 	methods: {
 		onSelected(data) {
@@ -392,7 +401,7 @@ export default {
 		},
 		/** 查询疫苗信息列表 */
 		getList() {
-			this.loading = true;
+			this.loading = true;
 			listInfo(this.queryParams).then(response => {
 				this.infoList = response.rows;
 				this.total = response.total;
@@ -1002,7 +1011,22 @@ export default {
     }else{
       this.form.code != this.form.idCard
     }
-  }
+  },
+  // 获取屏幕高度
+            showFilterForm () {
+                  this.filterActive = !this.filterActive
+                  this.changeTableMaxHeight()
+                },
+  
+                changeTableMaxHeight () {
+                  let height = document.body.offsetHeight // 网页可视区域高度
+                  // if (this.filterActive) {
+                  //   this.tableMaxHeight = height - 320
+                  // } else {
+                    this.tableMaxHeight = height - 250
+                  // }
+                  console.log(height)
+                },
 	}
 };
 </script>

+ 347 - 247
src/views/system/resident/index.vue

@@ -1,7 +1,8 @@
 <template>
 	<div class="app-container">
     <div style="margin-bottom: 20px;">
-      <p style="font-size: 16px;line-height: 24px; color: #333; font-weight: 700;">当前单位:<span style="font-weight: 400; color: #009fe8; margin-right: 15px; ">{{dneyhsd.dqdw == null? '暂无数据' : dneyhsd.dqdw}}</span>   村:<span style="font-weight: 400; color: #009fe8;margin-right: 15px;">{{dneyhsd.cun == null? '暂无数据' : dneyhsd.cun}}个</span>   组:<span style="font-weight: 400; color: #009fe8; margin-right: 15px;">{{dneyhsd.zu == null? '暂无数据' : dneyhsd.zu}}个</span>   常住人口:<span style="font-weight: 400; margin-right: 15px; color: #f66b0e;">{{dneyhsd.czrk == null? '暂无数据' : dneyhsd.czrk}}人</span>   新增:<span style="font-weight: 400; margin-right: 15px; color: #00b034;" >{{dneyhsd.xz == null? '暂无数据' : dneyhsd.xz}}人</span>  减少:<span style="font-weight: 400; margin-right: 15px; color: #fa2323;">{{dneyhsd.js == null? '暂无数据' : dneyhsd.js}}人</span></p>
+      <p style="font-size: 16px;line-height: 24px; color: #333; font-weight: 700;">当前单位:<span style="font-weight: 400; color: #009fe8; margin-right: 15px; ">{{dneyhsd.dqdw == null? '暂无数据' : dneyhsd.dqdw}}</span>
+镇:<span style="font-weight: 400; color: #009fe8; margin-right: 15px; ">{{dneyhsd.zhen == null? '暂无数据' : dneyhsd.zhen}}个</span>     村:<span style="font-weight: 400; color: #009fe8;margin-right: 15px;">{{dneyhsd.cun == null? '暂无数据' : dneyhsd.cun}}个</span>   组:<span style="font-weight: 400; color: #009fe8; margin-right: 15px;">{{dneyhsd.zu == null? '暂无数据' : dneyhsd.zu}}个</span>   常住人口:<span style="font-weight: 400; margin-right: 15px; color: #f66b0e;">{{dneyhsd.czrk == null? '暂无数据' : dneyhsd.czrk}}人</span>   <span @click="chakei(0)">新增:<span style="font-weight: 400; margin-right: 15px; color: #00b034;" >{{dneyhsd.xz == null? '暂无数据' : dneyhsd.xz}}人</span></span>  <span @click="chakei(1)">减少:<span style="font-weight: 400; margin-right: 15px; color: #fa2323;" >{{dneyhsd.js == null? '暂无数据' : dneyhsd.js}}人</span></span></p>
     </div>
 		<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="70px">
 			<el-row>
@@ -33,47 +34,38 @@
 				</el-col>
 				<el-col :span="24">
 					<el-row>
-						<el-col :span="8" class="jehak">
-							<el-form-item label="户籍地址" prop="villagerGroup">
-								<el-cascader
-									placeholder="点击选择户籍地址"
-									:options="options"
-									filterable
-									@change="chahetwo"
-									:props="optionPropstwo"
-									style="width: 125%;"
-									@keyup.enter.native="handleQuery"
-									clearable
-								></el-cascader>
-							</el-form-item>
-						</el-col>
-						<el-col :span="10" class="jehak">
+						<el-col :span="12" class="jehak">
 							<el-form-item label="居住地址" prop="villagerGroup">
-                <!-- <el-cascader
+                <el-cascader
                 	placeholder="点击选择居住地址"
                 	:options="optionsList"
                 	filterable
                 	@change="chahetwo"
                 	:props="optionPropsss"
-                	style="width: 130%;"
+                	style="width: 140%;"
                 	@keyup.enter.native="handleQuery"
                 	clearable
                   ref = "cdd"
-                ></el-cascader> -->
-								<area-select
-								type="text"
-								v-if="nhue"
-								v-model="selectedtwo"
-								:data="$pcaa"
-								:level="2"
-								style="display: flex;line-height: 18px; width: 130%;"
-								@change="onSelectedtwo"
-								@blur="dakousr"
-								class="hues"
-							></area-select>
+                  v-model="listd"
+                  @active-item-change="handleItemChange"
+                ></el-cascader>
 							</el-form-item>
 						</el-col>
-            <el-col :span="4" style="text-align: center;">
+            <el-col :span="8" class="jehak">
+            	<el-form-item label="户籍地址" prop="villagerGroup">
+            		<el-cascader
+            			placeholder="点击选择户籍地址"
+            			:options="options"
+            			filterable
+            			@change="chahetwo"
+            			:props="optionPropstwo"
+            			style="width: 125%;"
+            			@keyup.enter.native="handleQuery"
+            			clearable
+            		></el-cascader>
+            	</el-form-item>
+            </el-col>
+            <el-col :span="4" >
             	<el-form-item>
             		<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
             		<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
@@ -83,20 +75,18 @@
 				</el-col>
 				<el-col :span="24">
 					<el-row>
-
-
 					</el-row>
 				</el-col>
 			</el-row>
 		</el-form>
 
 		<el-row :gutter="10" class="mb8">
-			<el-col :span="1.5"><el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd" v-hasPermi="['core:info:add']">新增</el-button></el-col>
+			<el-col :span="1.5"><el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd" >新增</el-button></el-col>
 			<el-col :span="1.5">
-				<el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate" v-hasPermi="['core:info:edit']">修改</el-button>
+				<el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate" >修改</el-button>
 			</el-col>
 			<el-col :span="1.5">
-				<el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete" v-hasPermi="['core:info:remove']">删除</el-button>
+				<el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete" >删除</el-button>
 			</el-col>
 
 			<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
@@ -104,20 +94,19 @@
 
 		<el-table v-loading="loading" :data="infoList" @selection-change="handleSelectionChange" stripe style="width: 100%" height="350">
 			<el-table-column type="selection" width="55" align="center" />
-			<el-table-column label="姓名" align="center" prop="userName" fixed />
+			<el-table-column label="姓名" align="center" prop="userName" fixed  width="110"/>
 			<el-table-column label="联系方式" align="center" prop="phoneNum" width="110" />
-			<!-- <el-table-column label="性别" align="center" prop="gender" /> -->
 			<el-table-column label="身份证号码" align="center" prop="idCard" width="180" />
-			<!-- <el-table-column label="现居省份" align="center" prop="province" />
-			<el-table-column label="现居市" align="center" prop="city" />
-			<el-table-column label="现居县区" align="center" prop="region" /> -->
-			<el-table-column label="户籍地址" align="center" prop="domicileSelect" width="250" />
-			<el-table-column label="居住地址" align="center" prop="nowInSelect" width="250" />
-
-			<el-table-column label="操作" align="left" class-name="small-padding fixed-width" fixed="right" >
+			<el-table-column label="户籍地址" align="center" prop="domicileSelect" width="250" />
+      <!-- nowInSelect -->
+			<el-table-column label="居住地址" align="center" prop="nowInSelect"  />
+      <el-table-column label="是否户主" align="center" prop="houseType" width="90" />
+      <el-table-column label="认领人" align="center" prop="rlr" width="90" />
+			<el-table-column label="操作" align="left" class-name="small-padding fixed-width" fixed="right"  width="120">
 				<template slot-scope="scope">
-					<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" v-hasPermi="['core:info:edit']">查看修改</el-button>
-					<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" class="hueya" v-hasPermi="['core:info:remove']">删除</el-button>
+					<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" >查看修改</el-button>
+					<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" class="hueya" >删除</el-button>
+          <el-button v-if="scope.row.houseType == '是'" size="mini" type="text" icon="el-icon-edit" @click="handleDeletefamide(scope.row)" class="hueya" >查看家庭成员</el-button>
 				</template>
 			</el-table-column>
 		</el-table>
@@ -187,30 +176,8 @@
           </el-col>
 
 					<el-col :span="12">
-						<el-form-item label="居住地址" prop="region">
-							<area-select
-								type="text"
-								v-model="selected"
-								v-if="jue"
-								:data="$pcaa"
-								:level="2"
-								style="display: flex;line-height: 18px;"
-								@change="onSelected"
-								class="hues"
-							></area-select>
-             <!-- <el-cascader
-              	placeholder="点击选择居住地址"
-              	:options="optionsList"
-              	filterable
-              	@change="chahetwo"
-              	:props="optionPropsss"
-              	style="width: 130%;"
-              	@keyup.enter.native="handleQuery"
-              	clearable
-                ref = "cdd"
-                v-model="list"
-              ></el-cascader> -->
-              <!-- <el-cascader
+						<el-form-item label="居住地址" prop="province">
+              <el-cascader
               	:placeholder="nhdyesfgh"
               	:options="optionsList"
               	:filterable="true"
@@ -220,8 +187,9 @@
               	:props="optionPropsss"
               	style="width: 100%;"
               	ref="myCascaderf"
+                @active-item-change="handleItemChange"
                 :class="[nhdyesfgh == '点击选择居住地址' ? '' : 'placf']"
-              ></el-cascader> -->
+              ></el-cascader>
 						</el-form-item>
 					</el-col>
 
@@ -238,8 +206,9 @@
 							</el-form-item>
 						</el-col>
 						<el-col :span="12">
-							<el-form-item label="户主编号" prop="code">
-							<el-input v-model="form.code" placeholder="请输入户主编号"/>
+							<el-form-item label="户编号" prop="code">
+							<el-input  v-model="form.code" placeholder="请输入户主编号"/>
+              <!-- :disabled="nhe" -->
 							</el-form-item>
 						</el-col>
 					</el-col>
@@ -249,7 +218,8 @@
 				<el-button type="primary" @click="submitForm">确 定</el-button>
 				<el-button @click="cancel">取 消</el-button>
 			</div>
-		</el-dialog>
+		</el-dialog>
+
 		<!-- 图片预览 -->
 		<el-dialog :close-on-click-modal="false" title="删除原因" :visible.sync="imashow" width="800px" append-to-body >
       <el-form ref="formgt" :model="formgt" :rules="ruleshy" label-width="100px" style="padding-bottom: 30px;">
@@ -263,13 +233,30 @@
       	<el-button type="primary" @click="submitFormfr">确 定</el-button>
       	<el-button @click="cancel">取 消</el-button>
       </div>
-		</el-dialog>
-
+		</el-dialog>
+
+    <el-dialog :close-on-click-modal="false" title="查看信息" :visible.sync="jiezhong" width="1100px" append-to-body class="ojhgy">
+    	<el-table :data="jiezheList" stripe style="width: 100%">
+    		<el-table-column type="selection" width="55" align="center" />
+    			<el-table-column label="姓名" align="center" prop="userName" fixed  width="100"/>
+          <el-table-column label="与户主关系" align="center" prop="yhzgx" fixed  width="100"/>
+    			<el-table-column label="联系方式" align="center" prop="phoneNum" width="110" />
+    			<el-table-column label="身份证号码" align="center" prop="idCard" width="180" />
+    			<el-table-column label="户籍地址" align="center" prop="domicileSelect" width="250" />
+    		  <!-- nowInSelect -->
+    			<el-table-column label="居住地址" align="center" prop="nowInSelect" />
+    		  <!-- <el-table-column label="是否户主" align="center" prop="houseType" width="90" /> -->
+          <el-table-column v-if="nhyesoder !== 3" label="操作人" align="center" prop="updateBy" width="90" />
+          <el-table-column v-if="nhyesoder !== 3" label="创建时间" align="center" prop="createTime"  />
+    		</el-table>
+    	</el-table>
+      <pagination v-show="totalfr > 0" :total="totalfr" :page.sync="ndhuwosdjh.pageNum" :limit.sync="ndhuwosdjh.pageSize" @pagination="chakei"  />
+    </el-dialog>
 	</div>
 </template>
 
 <script>
-import { listInfo, getInfo, delInfo, addInfo, updateInfo, exportInfo, listRoleer, idces, delInfort,yiaoe,exportConfig,exportConfigtyr,importLog,listInfotj,listRoleergth } from '@/api/system/resident';
+import { listInfo, getInfo, delInfo, addInfo, updateInfo, exportInfo, listRoleer, idces, delInfort,yiaoe,exportConfig,exportConfigtyr,importLog,listInfotj,listRoleergth,listInfotjxz,listInfotjjs,listInfotjjsfaml } from '@/api/system/resident';
 import { treeselect } from '@/api/system/dept';
 import Treeselect from '@riophae/vue-treeselect';
 import { getToken } from '@/utils/auth';
@@ -296,7 +283,8 @@ export default {
 			infoList: [],
 			dialogImageUrl: '',
 			// 弹出层标题
-			title: '',
+			title: '',
+      totalfr:0,
 			// 是否显示弹出层
 			opens: false,
 			process: process.env.VUE_APP_BASE_API,
@@ -363,15 +351,12 @@ export default {
       },
 			// 表单校验
 			rules: {
-				region: [{ required: true, message: '区不能为空', trigger: 'blur' }],
+				province: [{ required: true, message: '居住地址不能为空', trigger: 'blur' }],
 				idCard: [{ required: true, message: '身份证号码不能为空', trigger: 'blur' }],
 				userName: [{ required: true, message: '姓名不能为空', trigger: 'blur' }],
 				villageTowns:[{ required: true, message: '户籍地址不能为空或不能只选潜山市', trigger: 'blur' }],
-				code:[{
-					required: true, message: '受种者编号不能为空', trigger: 'blur'
-				}]
 			},
-			selected: ['安徽省', '安庆市', '潜山市'],
+			selected: [12, 340800000000, 340882000000, 340882100000, 340882100002],
 			selectedtwo: [],
 			statusOptions: [
 				{
@@ -414,8 +399,8 @@ export default {
 				checkStrictly: true
 			},
       optionPropsss: {
-      	value: 'value',
-      	label: 'label',
+      	value: 'areaId',
+      	label: 'name',
       	checkStrictly: true,
         lazy: true,
         lazyLoad: this.lazyLoads,
@@ -487,15 +472,22 @@ export default {
       errorList:[],
       idfer:0,
       formgt:{},
-      list: ["2", "5"],
+      list: [],
+      listd:[],
       dneyhsd:{},
-      nhdyesfgh:'点击选择居住地址'
+      nhdyesfgh:'点击选择居住地址',
+      nhe:false,
+      nhyesoder:0,
+      ndhuwosdjh:{
+        pageNum: 1,
+        pageSize: 10,
+      }
 		};
 	},
 	created() {
 		this.getList();
 		this.getTreeselectjue();
-    // this.mnyesfjer()
+    this.mnyesfjer(0)
     this.getTreeselectjuetj()
 		// 重点行业
 		this.getDicts('person_type').then(response => {
@@ -525,11 +517,23 @@ export default {
 	},
 	methods: {
 		onSelected(data) {
-			console.log(data, 125);
-			// province
-			this.form.province = data[0];
-			this.form.city = data[1];
-			this.form.region = data[2];
+			console.log(data, 125);
+      console.log(this.$refs['myCascaderf'].getCheckedNodes()[0].pathLabels)
+			// province
+      let nhdye = []
+      nhdye = this.$refs['myCascaderf'].getCheckedNodes()[0].pathLabels
+      // id
+			// this.form.province = data[0];
+			// this.form.city = data[1];
+			// this.form.region = data[2];
+      // 名称
+      this.form.province = nhdye[0];
+      this.form.city = nhdye[1];
+      this.form.region = nhdye[2];
+      this.form.residenceTown = nhdye[3];
+      this.form.residenceVillage = nhdye[4];
+
+
 			this.naiseurya = this.form.province + this.form.city + this.form.region;
 			if (this.jdourdjoaj == false) {
 				// 修改
@@ -541,12 +545,12 @@ export default {
 		dakousr() {
 			console.log(2345);
 		},
-    mnyesfjer(){
+    mnyesfjer(index){
       this.loading = true;
       let pids = {}
-      pids.pid = 0
+      pids.pid = index
       listRoleergth(pids).then(response => {
-      	this.options = response.data;
+      	this.optionsList = this.handleData(response.data);
       	this.loading = false;
       });
     },
@@ -554,96 +558,96 @@ export default {
 
 
 
-    // 模拟请求一级节点
-         getfristChild() {
-          return [
-            {
-              label: "第一个",
-              hasChdild: true,
-              leaf: false,
-              pid: null,
-              value: "1",
-            },
-            {
-              label: "第2个",
-              hasChdild: true,
-              leaf: false,
+    // // 模拟请求一级节点
+    //      getfristChild() {
+    //       return [
+    //         {
+    //           label: "第一个",
+    //           hasChdild: true,
+    //           leaf: false,
+    //           pid: null,
+    //           value: "1",
+    //         },
+    //         {
+    //           label: "第2个",
+    //           hasChdild: true,
+    //           leaf: false,
 
-              pid: null,
-              value: "2",
-            },
-            {
-              label: "第3个",
-              hasChdild: true,
-              leaf: true,
+    //           pid: null,
+    //           value: "2",
+    //         },
+    //         {
+    //           label: "第3个",
+    //           hasChdild: true,
+    //           leaf: true,
 
-              pid: null,
-              value: "3",
-            },
-          ];
-        },
-        // 模拟请求子级节点
-         getOther(value) {
-          let res = [];
-          if (value == 1) {
-            res = [
-              {
-                label: "第一个1",
-                hasChdild: false,
-                pid: 1,
-                value: "11",
-                leaf: false, // 差别: 这里加了是否叶子节点属性,后面都加了
-              },
-              {
-                label: "第一个2",
-                hasChdild: false,
-                pid: 1,
-                value: "12",
-                leaf: false,
-              },
-            ];
-          }
-          if (value == 2) {
-            res = [
-              {
-                label: "第2个1",
-                hasChdild: false,
-                pid: 2,
-                leaf: true,
-                value: "5",
-              },
-              {
-                label: "第2个2",
-                hasChdild: false,
-                leaf: true,
+    //           pid: null,
+    //           value: "3",
+    //         },
+    //       ];
+    //     },
+    //     // 模拟请求子级节点
+    //      getOther(value) {
+    //       let res = [];
+    //       if (value == 1) {
+    //         res = [
+    //           {
+    //             label: "第一个1",
+    //             hasChdild: false,
+    //             pid: 1,
+    //             value: "11",
+    //             leaf: false, // 差别: 这里加了是否叶子节点属性,后面都加了
+    //           },
+    //           {
+    //             label: "第一个2",
+    //             hasChdild: false,
+    //             pid: 1,
+    //             value: "12",
+    //             leaf: false,
+    //           },
+    //         ];
+    //       }
+    //       if (value == 2) {
+    //         res = [
+    //           {
+    //             label: "第2个1",
+    //             hasChdild: false,
+    //             pid: 2,
+    //             leaf: true,
+    //             value: "5",
+    //           },
+    //           {
+    //             label: "第2个2",
+    //             hasChdild: false,
+    //             leaf: true,
 
-                pid: 2,
-                value: "6",
-              },
-            ];
-          }
-          if (value == 11) {
-            res = [
-              {
-                label: "第3个1",
-                hasChdild: false,
-                pid: 2,
-                leaf: true,
+    //             pid: 2,
+    //             value: "6",
+    //           },
+    //         ];
+    //       }
+    //       if (value == 11) {
+    //         res = [
+    //           {
+    //             label: "第3个1",
+    //             hasChdild: false,
+    //             pid: 2,
+    //             leaf: true,
 
-                value: "111",
-              },
-              {
-                label: "第3个2",
-                hasChdild: false,
-                leaf: true,
+    //             value: "111",
+    //           },
+    //           {
+    //             label: "第3个2",
+    //             hasChdild: false,
+    //             leaf: true,
 
-                pid: 2,
-                value: "112",
-              },
-            ];
-          }
-          return res;
-        },
+    //             pid: 2,
+    //             value: "112",
+    //           },
+    //         ];
+    //       }
+    //       return res;
+    //     },
 
 
 
@@ -748,23 +752,26 @@ export default {
     //         }
     // },
 
-    lazyLoads(node, resolve) {
-          if (node.level == 0) {
-            let res =  this.getfristChild(); // 不存在就默认加载第一集节点
-            resolve(res);
-          } else {
-            // 有children属性了就不要再请求了,不然字节点会重复
-            if (!node.data.children) {
-              // 获取子节点数据
-              let res =  this.getOther(node.data.value);
-              setTimeout(() => {
-                resolve(res);
-              }, 200);
-            } else {
-              resolve([]);
-            }
-          }
-        },
+    // lazyLoads(node, resolve) {
+    //   console.log(node)
+    //       if (node.level == 0) {
+    //         let res =  this.mnyesfjer(0); // 不存在就默认加载第一集节点
+    //         resolve(res);
+    //       } else {
+    //         // 有children属性了就不要再请求了,不然字节点会重复
+    //         // if (!node.data.children) {
+    //           // 获取子节点数据
+    //           let res =  this.mnyesfjer(node.data.areaId);
+    //           console.log(node.children)
+    //           let nfhh = node.children.push(res)
+    //           setTimeout(() => {
+    //             resolve(nfhh);
+    //           }, 200);
+    //         // } else {
+    //         //   resolve([]);
+    //         // }
+    //       }
+    //     },
      format() {
           let res =  this.getfristChild(); // 拿一级数据
           this.list.forEach((item) => {
@@ -795,6 +802,52 @@ export default {
           },
 
 
+   // getAddress() {
+   // 	        this.mnyesfjer(0).then(res => {
+   // 	          this.optionsList =  this.handleData(res.data);
+   // 	        }).catch(err => {
+   // 	        })
+   // 	    },
+   	     handleItemChange(val) {
+           console.log(val,235)
+   	        let code = val ? val[val.length - 1] : '';  //需请求数据的上级地址的code值
+   	        let level = val.length + 1;  //需请求第几级地址
+   	        this.optionsList = this.handleData(this.optionsList, code, level);
+         	},
+
+         	handleData(data, val, level) {
+            console.log(data,val,level)
+   	        for (let i = 0; i < data.length; i++) {
+   	          if(!data[i].children) {
+   	            this.$set(data[i], 'children', []);
+   	          }
+   	          if(data[i].areaId === val){
+                let vfer = {}
+                vfer.pid = val
+   	            listRoleergth(vfer).then(res => {
+   	              if(res.data.length) {
+   	                data[i].children = res.data;
+   	                data[i].children.forEach(ele => {
+   	                  this.$set(ele, 'children', [])
+   	                });
+   	              }else {
+   	                data[i].children = undefined;
+   	              }
+   	            }).catch(err => {
+   	            });
+   	          }else {
+   	            if(data[i].children.length){
+   	              this.handleData(data[i].children,val,level)
+   	            }
+   	          }
+   	        }
+
+             return data;
+         },
+
+
+
+
 		onSelectedtwo(data) {
 			console.log(data);
 			// province
@@ -978,7 +1031,9 @@ export default {
 				vaccinationPlace: null,
 				contraindication: null,
 				nowIn: '',
-				remark: null,
+				remark: null,
+        residenceTown:null,
+        residenceVillage:null
 			};
 			this.resetForm('form');
 		},
@@ -995,7 +1050,9 @@ export default {
 			setTimeout( ()=>{
 				this.nhue = true
 			},100)
-			this.queryParams.province = undefined;
			this.queryParams.city = undefined;
			this.queryParams.region = undefined;
+			this.queryParams.province = undefined;
			this.queryParams.city = undefined;
			this.queryParams.region = undefined;
+      this.queryParams.deptId = undefined
+      this.listd = []
 			this.resetForm('queryForm');
 			this.handleQuery();
 		},
@@ -1021,7 +1078,12 @@ export default {
 			this.title = '添加常住人口';
 			this.jdourdjoaj = true;
 			this.jue = true
-      this.nhdyesfgh = '点击选择居住地址'
+      this.form.province = '安徽省';
+      this.form.city = '安庆市';
+      this.form.region = '潜山市';
+      this.form.residenceTown = '梅城镇';
+      this.form.residenceVillage = '龙井社区';
+       this.nhdyesfgh = this.form.province + '/' + this.form.city + '/' + this.form.region + '/' + this.form.residenceTown + '/' + this.form.residenceVillage;
 			console.log(this.form)
 		},
 		/** 修改按钮操作 */
@@ -1031,39 +1093,45 @@ export default {
 			getInfo(id).then(response => {
 				this.form = response.data;
 				this.jue = false
-				// if(response.data.province !== null && response.data.province !== ""){
-				// 	this.nhdyesfgh = response.data.province;
-    //       if(response.data.city !== null && response.data.city !== ""){
-    //         this.nhdyesfgh = response.data.province + '/' + response.data.city;
-    //         if(response.data.region !== null && response.data.region !== ""){
-    //         	this.nhdyesfgh = response.data.province + '/' + response.data.city + '/' + response.data.region;
-    //         }else{
-    //         	// this.nhdyesfgh ='点击选择居住地址'
-    //         }
-    //       }else{
-    //       	// this.nhdyesfgh ='点击选择居住地址'
-    //       }
-				// }else{
-				// 	this.nhdyesfgh ='点击选择居住地址'
-				// }
+				if(response.data.province !== null && response.data.province !== ""){
+					this.nhdyesfgh = response.data.province;
+          if(response.data.city !== null && response.data.city !== ""){
+            this.nhdyesfgh = response.data.province + '/' + response.data.city;
+            if(response.data.region !== null && response.data.region !== ""){
+            	this.nhdyesfgh = response.data.province + '/' + response.data.city + '/' + response.data.region;
+              if(this.form.residenceTown !==null && this.form.residenceTown !=='' && this.form.residenceTown !== undefined){
+                this.nhdyesfgh = response.data.province + '/' + response.data.city + '/' + response.data.region + '/' + this.form.residenceTown;
+                if(this.form.residenceVillage !==null && this.form.residenceVillage !=='' && this.form.residenceVillage !== undefined){
+                  this.nhdyesfgh = response.data.province + '/' + response.data.city + '/' + response.data.region + '/' + this.form.residenceTown + '/' + this.form.residenceVillage;
+                }
+              }
+            }else{
+            	// this.nhdyesfgh ='点击选择居住地址'
+            }
+          }else{
+          	// this.nhdyesfgh ='点击选择居住地址'
+          }
+				}else{
+					this.nhdyesfgh ='点击选择居住地址'
+				}
 
 
-				if(response.data.province !== null){
-					this.selected[0] = response.data.province;
-				}else{
-					this.selected[0] ='安徽省'
-				}
-				if(response.data.city !== null){
-					this.selected[1] = response.data.city;
-				}else{
-					this.selected[1] = '安庆市'
-				}
-				if(response.data.region !== null){
-					this.selected[2] = response.data.region;
-				}else{
-					this.selected[2] = '潜山市'
-				}
-				this.onSelected(this.selected)
+				// if(response.data.province !== null){
+				// 	this.selected[0] = response.data.province;
+				// }else{
+				// 	this.selected[0] ='安徽省'
+				// }
+				// if(response.data.city !== null){
+				// 	this.selected[1] = response.data.city;
+				// }else{
+				// 	this.selected[1] = '安庆市'
+				// }
+				// if(response.data.region !== null){
+				// 	this.selected[2] = response.data.region;
+				// }else{
+				// 	this.selected[2] = '潜山市'
+				// }
+				// this.onSelected(this.selected)
 				setTimeout( ()=>{
 					this.jue = true
 				},100)
@@ -1095,7 +1163,8 @@ export default {
 					}
 				}else{
 					this.villageTownshy = '';
-				}
+				}
+        console.log(this.villageTownshy,3455)
 
 				if (this.form.vaccineInfoUserList !== null) {
 					if (this.form.vaccineInfoUserList.length == 0) {
@@ -1141,13 +1210,13 @@ export default {
 			}
 			this.form.domicile = '';
 
-      if(this.jdourdjoaj == true){
-        //新增
-        this.form.nowIn =  this.hsuej
+      // if(this.jdourdjoaj == true){
+      //   //新增
+      //   this.form.nowIn =  this.hsuej
 
-      }else{
-         this.form.nowIn !=  this.hsuej
-      }
+      // }else{
+      //    this.form.nowIn !=  this.hsuej
+      // }
 		},
 		chahetwo(data) {
 			console.log(data)
@@ -1265,16 +1334,45 @@ export default {
 
 		// 点击查看
 		chakei(row) {
-			console.log(row);
-			yiaoe({idCard:row.idCard}).then(response => {
+			console.log(row);
+      let nhyes= {pageNum: 1,
+      pageSize: 10,}
+      this.nhyesoder = row
+      if(row == 0){
+        // 新增
+       listInfotjxz(this.ndhuwosdjh).then(response => {
 				// this.msgSuccess('操作成功');
-				if(response.code == 200){
-					this.jiezheList = response.data
-				}
-			});
+					this.jiezheList = response.rows
+          this.totalfr = response.total
+				})
+      } else if(row == 1){
+        // 减少
+        listInfotjjs(this.ndhuwosdjh).then(response => {
+        				// this.msgSuccess('操作成功');
+        					this.jiezheList = response.rows
+                  this.totalfr = response.total
+
+      }	)
+          }// yiaoe({idCard:row.idCard}).then(response => {
+			// 	// this.msgSuccess('操作成功');
+			// 	if(response.code == 200){
+			// 		this.jiezheList = response.data
+			// 	}
+			// });
 
 			this.jiezhong = true;
-		},
+		},
+    // 查看家庭成员信息
+    handleDeletefamide(row){
+      this.jiezhong = true;
+      this.nhyesoder = 3
+      listInfotjjsfaml(row.code).then(response => {
+        				// this.msgSuccess('操作成功');
+        					this.jiezheList = response.data
+                  this.totalfr = 0
+
+      }	)
+    },
     /** 导入按钮操作 */
     handleImport() {
       this.upload.title = "数据导入";
@@ -1286,8 +1384,10 @@ export default {
     console.log(this.form.houseType)
     if(this.form.houseType == '是'){
       this.form.code = this.form.idCard
+      this.nhe = false
     }else{
       this.form.code != this.form.idCard
+      this.nhe = true
     }
   }
 	}

+ 2178 - 0
src/views/system/residentss/index.vue

@@ -0,0 +1,2178 @@
+<template>
+	<div class="app-container">
+    <div style="margin-bottom: 20px;">
+      <p style="font-size: 16px;line-height: 24px; color: #333; font-weight: 700;">当前单位:<span style="font-weight: 400; color: #009fe8; margin-right: 15px; ">{{dneyhsd.dqdw == null? '暂无数据' : dneyhsd.dqdw}}</span>
+镇:<span style="font-weight: 400; color: #009fe8; margin-right: 15px; ">{{dneyhsd.zhen == null? '暂无数据' : dneyhsd.zhen}}个</span>     村:<span style="font-weight: 400; color: #009fe8;margin-right: 15px;">{{dneyhsd.cun == null? '暂无数据' : dneyhsd.cun}}个</span>   组:<span style="font-weight: 400; color: #009fe8; margin-right: 15px;">{{dneyhsd.zu == null? '暂无数据' : dneyhsd.zu}}个</span>   常住人口:<span style="font-weight: 400; margin-right: 15px; color: #f66b0e;">{{dneyhsd.czrk == null? '暂无数据' : dneyhsd.czrk}}人</span>   <span @click="chakei(0)">新增:<span style="font-weight: 400; margin-right: 15px; color: #00b034;" >{{dneyhsd.xz == null? '暂无数据' : dneyhsd.xz}}人</span></span>  <span @click="chakei(1)">减少:<span style="font-weight: 400; margin-right: 15px; color: #fa2323;" >{{dneyhsd.js == null? '暂无数据' : dneyhsd.js}}人</span></span></p>
+    </div>
+		<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="70px">
+			<el-row>
+				<el-col :span="24">
+					<el-row>
+						<el-col :span="6">
+							<el-form-item label="身份证号" prop="idCard">
+								<el-input v-model="queryParams.idCard" placeholder="请输入身份证号码" style="width:200px;" clearable @keyup.enter.native="handleQuery" />
+							</el-form-item>
+						</el-col>
+            <el-col :span="6">
+            	<el-form-item label="姓名" prop="userName">
+            		<el-input v-model="queryParams.userName" placeholder="请输入姓名" style="width:200px;" clearable @keyup.enter.native="handleQuery" />
+            	</el-form-item>
+            </el-col>
+						<el-col :span="6">
+							<el-form-item label="联系号码" prop="phoneNum">
+								<el-input v-model="queryParams.phoneNum" placeholder="请输入联系号码" style= "width:190px;"clearable @keyup.enter.native="handleQuery" />
+							</el-form-item>
+						</el-col>
+            <el-col :span="6">
+            	<el-form-item label="年龄阶段" >
+            		<el-select v-model="queryParams.params.age" placeholder="年龄阶段" style="width:190px;" clearable>
+            			<el-option v-for="dict in angesList" :key="dict.dictValue" :label="dict.dictLabel" :value="dict.dictValue" />
+            		</el-select>
+            	</el-form-item>
+            </el-col>
+					</el-row>
+				</el-col>
+				<el-col :span="24">
+					<el-row>
+						<el-col :span="12" class="jehak">
+							<el-form-item label="居住地址" prop="villagerGroup">
+                <el-cascader
+                	placeholder="点击选择居住地址"
+                	:options="optionsList"
+                	filterable
+                	@change="chahetwos"
+                	:props="optionPropsssd"
+                	style="width: 140%;"
+                	@keyup.enter.native="handleQuery"
+                	clearable
+                  ref = "cdd"
+                  v-model="listd"
+                  @active-item-change="handleItemChangefr"
+                ></el-cascader>
+                <!-- optionPropsssd  optionPropsss-->
+							</el-form-item>
+						</el-col>
+            <el-col :span="8" class="jehak">
+            	<el-form-item label="户籍地址" prop="villagerGroup">
+                <el-cascader
+                	placeholder="点击选择户籍地址"
+                	:options="optionsList"
+                	:filterable="true"
+                	separator="/"
+                	@change="chahetwo"
+                	:props="optionPropsss"
+                	style="width: 130%;"
+                	ref="myCascaderqty"
+                  v-model="lser"
+                  @active-item-change="handleItemChangefr"
+                  @keyup.enter.native="handleQuery"
+                  clearable
+                ></el-cascader>
+            	</el-form-item>
+            </el-col>
+            <el-col :span="4" >
+            	<el-form-item>
+            		<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+            		<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+            	</el-form-item>
+            </el-col>
+					</el-row>
+				</el-col>
+				<el-col :span="24">
+					<el-row>
+					</el-row>
+				</el-col>
+			</el-row>
+		</el-form>
+
+		<el-row :gutter="10" class="mb8">
+			<el-col :span="1.5"><el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd" >新增</el-button></el-col>
+			<el-col :span="1.5">
+				<el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate" >修改</el-button>
+			</el-col>
+			<el-col :span="1.5">
+				<el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete" >删除</el-button>
+			</el-col>
+      <el-col :span="1.5">
+      	<el-button type="primary" plain icon="el-icon-view" size="mini"  @click="chajnd" >查看常住人口信息</el-button>
+      </el-col>
+      <el-col :span="1.5">
+      	<el-button type="primary" plain icon="el-icon-view" size="mini"  @click="chajnds" >查看户籍人口信息</el-button>
+      </el-col>
+
+			<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+		</el-row>
+
+		<el-table v-loading="loading" :data="infoList" @selection-change="handleSelectionChange" stripe style="width: 100%" :height="tableMaxHeight">
+			<el-table-column type="selection" width="55" align="center" />
+			<el-table-column label="姓名" align="center" prop="userName"   width="110"/>
+			<el-table-column label="联系方式" align="center" prop="phoneNum" width="110" />
+			<el-table-column label="身份证号码" align="center" prop="idCard" width="180" />
+			<el-table-column label="户籍地址" align="center" prop="domicileSelect" width="250" />
+      <!-- nowInSelect -->
+			<el-table-column label="居住地址" align="center" prop="nowInSelect"  />
+      <el-table-column label="是否户主" align="center" prop="houseType" width="90" />
+      <el-table-column label="认领人" align="center" prop="rlr" width="90" />
+			<el-table-column label="操作" align="left" class-name="small-padding fixed-width" fixed="right"  width="120">
+				<template slot-scope="scope">
+					<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" >查看修改</el-button>
+					<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" class="hueya" >删除</el-button>
+          <el-button v-if="scope.row.houseType == '是'" size="mini" type="text" icon="el-icon-edit" @click="handleDeletefamide(scope.row)" class="hueya" >查看家庭成员</el-button>
+				</template>
+			</el-table-column>
+		</el-table>
+
+		<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" @pagination="getList" />
+
+		<!-- 添加或修改疫苗信息对话框 -->
+		<el-dialog :title="title" :visible.sync="opens" width="1240px" append-to-body>
+			<el-form ref="form" :model="form" :rules="rules" label-width="100px">
+				<el-row>
+					<el-col :span="8">
+						<el-form-item label="身份证号" prop="idCard"><el-input v-model="form.idCard" placeholder="请输入身份证号码" @blur="idcde" /></el-form-item>
+					</el-col>
+					<el-col :span="8">
+						<el-form-item label="姓名" prop="userName"><el-input v-model="form.userName" placeholder="请输入姓名" /></el-form-item>
+					</el-col>
+					<el-col :span="8">
+						<el-form-item label="性别" prop="gender">
+
+							<!-- <el-input v-model="form.gender" placeholder="请输入性别" /> -->
+
+							<el-select v-model="form.gender" placeholder="性别" clearable style="width: 100%;">
+								<el-option v-for="dict in statusOptions" :key="dict.dictValue" :label="dict.dictLabel" :value="dict.dictValue" />
+							</el-select>
+						</el-form-item>
+					</el-col>
+					<el-col :span="24">
+						<el-row>
+							<el-col :span="8">
+								<el-form-item label="联系号码" prop="phoneNum"><el-input v-model="form.phoneNum" placeholder="请输入联系号码" /></el-form-item>
+							</el-col>
+							<el-col :span="8">
+								<el-form-item label="人员分类" prop="keyIndustries">
+									<el-select v-model="form.keyIndustries" placeholder="人员分类" clearable style="width: 100%;">
+										<el-option v-for="dict in typeOptionsname" :key="dict.dictValue" :label="dict.dictLabel" :value="dict.dictValue" />
+									</el-select>
+								</el-form-item>
+
+							</el-col>
+							<el-col :span="8">
+								<el-form-item label="年龄" prop="age"><el-input v-model="form.age" placeholder="请输入年龄" /></el-form-item>
+							</el-col>
+						</el-row>
+					</el-col>
+
+          <el-col :span="24">
+          	<el-row>
+          		<el-col :span="12">
+          			<el-form-item label="户籍地址" prop="villageTowns">
+          				<!-- <el-input v-model="form.villageTowns" type="textarea" placeholder="请输入内容" /> -->
+          				<!-- <treeselect v-model="form.parentId" :options="deptOptionstwo" :normalizer="normalizer" :flat="true" :maxHeight="150" @select="djieskle" :multiple=true placeholder="点击选择户籍地" /> -->
+          				<el-cascader
+          					:placeholder="nhdyesfgh"
+          					:options="optionsLists"
+          					:filterable="true"
+          					separator="/"
+          					@change="chahe"
+          					:props="optionPropsss"
+          					style="width: 100%;"
+          					ref="myCascader"
+                    @active-item-change="handleItemChanges"
+                    :class="[nhdyesfgh == '点击选择户籍地址' ? '' : 'placf']"
+          				></el-cascader>
+                  <!-- <el-cascader
+                  	:placeholder="nhdyesfgh"
+                  	:options="optionsList"
+                  	:filterable="true"
+                  	separator="/"
+                  	@change="chahe(index)"
+                  	v-model="selected"
+                  	:props="optionPropsss"
+                  	style="width: 100%;"
+                  	ref="myCascader"
+                    @active-item-change="handleItemChange"
+                    :class="[nhdyesfgh == '点击选择居住地址' ? '' : 'placf']"
+                  ></el-cascader> -->
+          			</el-form-item>
+          		</el-col>
+
+          		<el-col :span="12">
+          			<el-form-item label="详细地址" prop="nowIn"><el-input v-model="form.nowIn" type="input" placeholder="请输入户籍详细地址" /></el-form-item>
+          		</el-col>
+          	</el-row>
+          </el-col>
+
+					<el-col :span="24" v-for="(item, index) in form.czrkJzdzList" :key="index">
+            <el-col :span="12">
+            	<el-form-item label="居住地址" prop="province">
+                <el-cascader
+                	:placeholder="item.plaed"
+                	:options="item.optiodne"
+                	:filterable="true"
+                	separator="/"
+                	@change="onSelected(index)"
+                	:props="optionPropsss"
+                	style="width: 100%;"
+                	:ref="'myCascaderf' + '' + index"
+                  v-model="item.seleted"
+                  :key="cascaderKey"
+                  @active-item-change="handleItemChange"
+                  :class="[item.plaed == '请选择居住地址' ? '' : 'placf']"
+                ></el-cascader>
+                 <!-- @active-item-change="handleItemChange" -->
+            	</el-form-item>
+              <!-- :key="cascaderKey"  seleted -->
+
+            </el-col>
+            <el-col :span="11">
+            	<el-form-item label="详细地址" prop="nowIn"><el-input v-model="item.nowIn" type="input" placeholder="请输入内容" /></el-form-item>
+            </el-col>
+            <el-col :span="1">
+              <div class="hyeoa" style="margin-top: 10px;">
+              	 <el-tooltip class="item" effect="dark" content="新增居住地址信息,请慎重操作" placement="top-start">
+              	      <img src="../../../assets/images/icon_tc_add.png" alt="" class="hueyde" @click="tijea(index)" />
+              	    </el-tooltip>
+              		<el-tooltip class="item" effect="dark" content="删除无法恢复,请慎重操作" placement="top-start">
+              		     <img src="../../../assets/images/delei.png" alt="" class="hueydele" @click="naeyrfakjf(index, item)" />
+              		   </el-tooltip>
+              </div>
+            </el-col>
+          </el-col>
+
+					<el-col :span="24">
+						<el-col :span="12">
+							<el-form-item label="户主" prop="houseType">
+								<el-select v-model="form.houseType" placeholder="户主" clearable style="width: 100%;"  @change="changese">
+									<el-option v-for="dict in typeOptionshuuj" :key="dict.dictValue" :label="dict.dictLabel" :value="dict.dictValue" />
+								</el-select>
+							</el-form-item>
+						</el-col>
+						<el-col :span="12">
+							<el-form-item label="户编号" prop="code">
+							<el-input  v-model="form.code" placeholder="请输入户主编号"/>
+              <!-- :disabled="nhe" -->
+							</el-form-item>
+						</el-col>
+					</el-col>
+          <el-col :span="24">
+            <el-col :span="12">
+                <el-form-item label="与户主关系" prop="yhzgx">
+                	<el-select v-model="form.yhzgx" placeholder="与户主关系" clearable style="width: 100%;">
+                		<el-option v-for="dict in typeOptionstyzandeh" :key="dict.dictValue" :label="dict.dictLabel" :value="dict.dictLabel" />
+                	</el-select>
+                </el-form-item>
+            </el-col>
+            <el-col :span="12">
+            	<el-form-item label="网格" prop="houseType">
+            		<el-cascader
+            			placeholder="点击网格"
+            			:options="optionsList"
+            			filterable
+            			@change="chahetwos"
+            			:props="optionPropsssd"
+            			style="width: 140%;"
+            			@keyup.enter.native="handleQuery"
+            			clearable
+            		  ref = "cdd"
+            		  v-model="listd"
+            		  @active-item-change="handleItemChangefr"
+            		></el-cascader>
+            	</el-form-item>
+            </el-col>
+          </el-col>
+          <el-col :span="24">
+              <el-form-item label="备注" prop="remark">
+              	<el-input v-model="form.remark" type="input" placeholder="请输入户籍详细地址" />
+              </el-form-item>
+          </el-col>
+				</el-row>
+			</el-form>
+			<div slot="footer" class="dialog-footer">
+				<el-button type="primary" @click="submitForm">确 定</el-button>
+				<el-button @click="cancel">取 消</el-button>
+			</div>
+		</el-dialog>
+
+		<!-- 图片预览 -->
+		<el-dialog :close-on-click-modal="false" title="删除原因" :visible.sync="imashow" width="800px" append-to-body >
+      <el-form ref="formgt" :model="formgt" :rules="ruleshy" label-width="100px" style="padding-bottom: 30px;">
+      <el-form-item label="删除原因:" prop="houseType">
+      	<el-select v-model="formgt.houseType" placeholder="请选择删除原因" clearable style="width: 100%;">
+      		<el-option v-for="dict in typeOptions" :key="dict.dictValue" :label="dict.dictLabel" :value="dict.dictValue" />
+      	</el-select>
+      </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+      	<el-button type="primary" @click="submitFormfr">确 定</el-button>
+      	<el-button @click="cancel">取 消</el-button>
+      </div>
+		</el-dialog>
+
+    <el-dialog :close-on-click-modal="false" title="查看信息" :visible.sync="jiezhong" width="1100px" append-to-body class="ojhgy">
+    	<el-table :data="jiezheList" stripe style="width: 100%">
+    		<el-table-column type="selection" width="55" align="center" />
+    			<el-table-column label="姓名" align="center" prop="userName" fixed  width="100"/>
+          <el-table-column label="与户主关系" align="center" prop="yhzgx" fixed  width="100"/>
+    			<el-table-column label="联系方式" align="center" prop="phoneNum" width="110" />
+    			<el-table-column label="身份证号码" align="center" prop="idCard" width="180" />
+    			<el-table-column label="户籍地址" align="center" prop="domicileSelect" width="250" />
+    		  <!-- nowInSelect -->
+    			<el-table-column label="居住地址" align="center" prop="nowInSelect" />
+    		  <!-- <el-table-column label="是否户主" align="center" prop="houseType" width="90" /> -->
+          <el-table-column v-if="nhyesoder !== 3" label="操作人" align="center" prop="updateBy" width="90" />
+          <el-table-column v-if="nhyesoder !== 3" label="创建时间" align="center" prop="createTime"  />
+    		</el-table>
+    	</el-table>
+      <pagination v-show="totalfr > 0" :total="totalfr" :page.sync="ndhuwosdjh.pageNum" :limit.sync="ndhuwosdjh.pageSize" @pagination="chakei"  />
+    </el-dialog>
+	</div>
+</template>
+
+<script>
+import { listInfo, getInfo, delInfo, addInfo, updateInfo, exportInfo, listRoleer, idces, delInfort,yiaoe,exportConfig,exportConfigtyr,importLog,listInfotj,listRoleergth,listInfotjxz,listInfotjjs,listInfotjjsfaml } from '@/api/system/residentss';
+import { treeselect } from '@/api/system/dept';
+import Treeselect from '@riophae/vue-treeselect';
+import { getToken } from '@/utils/auth';
+import '@riophae/vue-treeselect/dist/vue-treeselect.css';
+export default {
+	name: 'Info',
+	components: { Treeselect },
+	data() {
+		return {
+			// 遮罩层
+			loading: true,
+			// 选中数组
+			ids: [],
+			// 非单个禁用
+			single: true,
+			// 非多个禁用
+			multiple: true,
+			// 显示搜索条件
+			showSearch: true,
+			// 总条数
+			total: 0,
+      ruleshy:{},
+			// 疫苗信息表格数据
+			infoList: [],
+			dialogImageUrl: '',
+			// 弹出层标题
+			title: '',
+      totalfr:0,
+			// 是否显示弹出层
+			opens: false,
+			process: process.env.VUE_APP_BASE_API,
+			// 查询参数
+			queryParams: {
+				pageNum: 1,
+				pageSize: 10,
+				villageTowns: null,
+				village: null,
+				villagerGroup: null,
+				houseType: null,
+				province: null,
+				city: null,
+				userName: null,
+        queryType:'hj',
+				gender: null,
+				idCard: null,
+				phoneNum: null,
+				keyIndustries: null,
+				isVaccination: null,
+				vaccineName: null,
+				vaccinationTime: null,
+				vaccinationPlace: null,
+				contraindication: null,
+				params:{
+					age:''
+				}
+			},
+			config: [],
+			comfietg:[],
+			configther:[],
+			configfor:[],
+			// 表单参数
+			form: {
+				nowIn: '',
+				age:'',
+				code:'',
+				czrkJzdzList: [
+					{
+						provinceId: '',
+						province: '',
+						deptId: '',
+						cityId: '',
+						city: '',
+						regionId:'',
+            region: '',
+            townId: '',
+            town: '',
+            villageId: '',
+            village: '',
+            nowIn:'',
+            seleted:[],
+            plaed:'请选择居住地址',
+            optiodne:[],
+						disableg:false
+					}
+				]
+			},
+      // 用户导入参数
+      upload: {
+        // 是否显示弹出层(用户导入)
+        opens: false,
+        // 弹出层标题(用户导入)
+        title: "",
+        // 是否禁用上传
+        isUploading: false,
+        // 是否更新已经存在的用户数据
+        updateSupport: 0,
+        // 设置上传的请求头部
+        headers: { Authorization: "Bearer " + getToken() },
+        // 上传的地址
+        url: process.env.VUE_APP_BASE_API + "/boman-web-core//file/common/importYmjz"
+      },
+			// 表单校验
+			rules: {
+				idCard: [{ required: true, message: '身份证号码不能为空', trigger: 'blur' }],
+				userName: [{ required: true, message: '姓名不能为空', trigger: 'blur' }],
+				villageTowns:[{ required: true, message: '户籍地址不能为空或不能只选潜山市', trigger: 'blur' }],
+        houseType:[{ required: true, message: '请选择户主', trigger: 'blur' }],
+        code:[{ required: true, message: '请输入户编号信息', trigger: 'blur' }],
+        yhzgx:[{ required: true, message: '请选择与户主关系', trigger: 'blur' }],
+      },
+      // yhzgx:[{ required: true, message: '请选择与户主关系', trigger: 'blur' }],
+			selected: [],
+			selectedtwo: [],
+			statusOptions: [
+				{
+					dictValue: '女',
+					dictLabel: '女'
+				},
+				{
+					dictValue: '男',
+					dictLabel: '男'
+				}
+			],
+			statusOptionstue: [
+				{
+					dictValue: '已完成',
+					dictLabel: '已完成'
+				},
+				{
+					dictValue: '未完成',
+					dictLabel: '未完成'
+				}
+			],
+			typeOptionshuuj: [
+				{
+					dictValue: '是',
+					dictLabel: '是'
+				},
+				{
+					dictValue: '否',
+					dictLabel: '否'
+				}
+			],
+			deptOptionstwo: [],
+			options: [],
+      optionss:[],
+      optionsList: [],
+			optionProps: {
+				value: 'areaId',
+				label: 'name',
+				checkStrictly: true,
+			},
+      optionPropsssd:{
+        value: 'areaId',
+        label: 'name',
+        checkStrictly: true,
+        lazy: true,
+        lazyLoad: this.lazyLoads,
+        leaf: "leaf"
+      },
+      optionPropsss: {
+      	value: 'areaId',
+      	label: 'name',
+      	checkStrictly: true,
+      },
+			optionPropstwo: {
+				value: 'id',
+				label: 'label',
+				children: 'children',
+				checkStrictly: true
+			},
+			heuiq: [],
+			typeOptions: [],
+			typeOptionsty: [
+				{
+					dictValue: '是',
+					dictLabel: '是'
+				},
+				{
+					dictValue: '否',
+					dictLabel: '否'
+				}
+			],
+			typeOptionstyzandeh:[],
+			angesList: [
+
+			],
+			typeOptionsname: [],
+			typeOptionstimes: [],
+			typeOptionsvaccinatio: [],
+			typeOptionscont: [],
+			typeOptionscontty: [],
+			typeOptionscontqit:[],
+			// 剂次
+			typeOptionstimesgt: [
+				{
+					dictValue: '1',
+					dictLabel: '1'
+				},
+				{
+					dictValue: '2',
+					dictLabel: '2'
+				},
+				{
+					dictValue: '3',
+					dictLabel: '3'
+				},
+				{
+					dictValue: '加强针',
+					dictLabel: '加强针'
+				}
+			],
+			imashow: false,
+			naneme: false,
+			shouwes: false,
+			shouwestwo:false,
+			villageTownshy: undefined,
+			naiseurya: '',
+			hsuej: '',
+			jdourdjoaj: false,
+			jiezhong: false,
+			jiezheList: [],
+			fireLise:{config:[]},
+			nameutaiL:0,
+			jue:false,
+			nhue:true,
+      exportflag:true,
+      errorlog:false,
+      errorList:[],
+      idfer:0,
+      formgt:{},
+      list: [],
+      listd:[],
+      lser:[],
+      dneyhsd:{},
+      nhdyesfgh:'点击选择户籍地址',
+      nhe:false,
+      nhyesoder:0,
+      ndhuwosdjh:{
+        pageNum: 1,
+        pageSize: 10,
+      },
+      tableMaxHeight:300,
+      cascaderKey:0,
+      optionsLists:[],
+      nhyeojd:false,
+      ndhyuewkg:[],
+      nhdyesku:false
+		};
+	},
+	created() {
+		this.getList();
+		// this.getTreeselectjue();
+    this.mnyesfjer(0)
+    this.mnyesfjers(0)
+    this.mnyesfjerop(0)
+    this.getTreeselectjuetj()
+		// 重点行业
+		this.getDicts('person_type').then(response => {
+			this.typeOptions = response.data;
+		});
+		// 疫苗名称
+		this.getDicts('renyuanfenlei').then(response => {
+			this.typeOptionsname = response.data;
+		});
+
+    // 与户主关系
+    this.getDicts('yuhuzhuguanxi').then(response => {
+    	this.typeOptionstyzandeh = response.data;
+    });
+
+		// 年龄阶段
+		this.getDicts('age_interval').then(response => {
+			this.angesList = response.data;
+		});
+
+		// this.form.province = this.selected[0];
+		// this.form.city = this.selected[1];
+		// this.form.region = this.selected[2];
+		console.log(this.selected,456)
+    console.log(this.cascaderKey,347)
+		// this.queryParams.province = this.selectedtwo[0];
+		// this.queryParams.city = this.selectedtwo[1];
+		// this.queryParams.region = this.selectedtwo[2];
+		// this.naiseurya = this.form.province + this.form.city + this.form.region;
+    window.onresize = () => {
+                    this.changeTableMaxHeight()
+                  }
+                  this.changeTableMaxHeight()
+	},
+	mounted() {
+		console.log(136)
+    window.onresize = () => {
+                    this.changeTableMaxHeight()
+                  }
+                  this.changeTableMaxHeight()
+	},
+	methods: {
+    nhyeosdsef(){
+     console.log(234)
+    },
+		onSelected(data,val) {
+			console.log(data, 125);
+      if(this.opens == false){
+        return  false
+      }
+      this.nameutaiL = data
+      console.log(this.nameutaiL,76543)
+      console.log(this.form.czrkJzdzList[data].seleted)
+      console.log(this.$refs['myCascaderf' + '' + data],123)
+      console.log(this.$refs['myCascaderf' + '' + data][0].$refs.panel.checkedValue,data)
+      console.log(this.$refs['myCascaderf' + '' + data][0].getCheckedNodes()[0].pathLabels)
+
+      // if(data !== 0){
+      //   if(this.nhyeojd = true){
+      //     this.$refs['myCascaderf' + '' + this.nameutaiL][0].$refs.panel.clearCheckedNodes()
+      //   }
+      // }
+      // var nhedse = []
+      // nhedse = this.$refs['myCascaderf']
+      // if(nhedse.length > 1){
+      //   this.$refs['myCascaderf'] = this.$refs['myCascaderf'][0];
+      //   console.log(this.$refs['myCascaderf'],133)
+      //   // for(var i = 0 ; i < nhedse.length; i++){
+      //   //   if(i == 0){
+      //   //     this.$refs['myCascaderf'][0].$refs.panel.clearCheckedNodes()
+      //   //   }
+      //   // }
+      // }
+   //    this.$refs['myCascaderf'][0].$refs.panel.checkedValue =  this.form.czrkJzdzList[data].seleted
+   //    console.log(this.$refs['myCascaderf'][0].$refs.panel.checkedValue,data)
+   //    console.log(this.$refs['myCascaderf'][0].getCheckedNodes()[0].pathLabels)
+      this.nhyeojd = false
+      // this.nhdyesku = false
+			// province
+      let nhdye = []
+      nhdye = this.$refs['myCascaderf' + '' + data][0].getCheckedNodes()[0].pathLabels
+      let nhyhe = []
+      nhyhe = this.form.czrkJzdzList[data].seleted
+      if(nhdye.length == 1){
+        this.form.czrkJzdzList[data].provinceId = nhyhe[ nhyhe.length - 1];
+        this.form.czrkJzdzList[data].province = nhdye[ nhdye.length - 1];
+      }else if(nhdye.length == 2){
+        this.form.czrkJzdzList[data].cityId = nhyhe[ nhyhe.length - 1];
+        this.form.czrkJzdzList[data].city = nhdye[ nhdye.length - 1];
+      }else if(nhdye.length == 3){
+        this.form.czrkJzdzList[data].regionId = nhyhe[ nhyhe.length - 1];
+        this.form.czrkJzdzList[data].region = nhdye[ nhdye.length - 1];
+      }else if(nhdye.length == 4){
+        this.form.czrkJzdzList[data].townId = nhyhe[ nhyhe.length - 1];
+        this.form.czrkJzdzList[data].town = nhdye[ nhdye.length - 1];
+      }else if(nhdye.length == 5){
+        this.form.czrkJzdzList[data].villageId = nhyhe[ nhyhe.length - 1];
+        this.form.czrkJzdzList[data].village = nhdye[ nhdye.length - 1];
+      }
+     this.form.czrkJzdzList[data].deptId =  nhyhe[ nhyhe.length - 1]
+      // id
+			// this.form.province = data[0];
+			// this.form.city = data[1];
+			// this.form.region = data[2];
+      // 名称
+			// this.naiseurya = this.form.province + this.form.city + this.form.region;
+			// if (this.jdourdjoaj == false) {
+			// 	// 修改
+			// 	this.form.nowIn = '';
+			// }
+			// this.form.nowIn = undefined
+			// this.form.villageTowns = data[3]
+      console.log(this.form)
+		},
+		dakousr() {
+			console.log(2345);
+		},
+    mnyesfjer(index,val){
+      this.loading = true;
+      let pids = {}
+      pids.pid = index
+      listRoleergth(pids).then(response => {
+        // this.cascaderKey = this.cascaderKey + 1
+        if(response.data.length == 0){
+          return
+        }
+        if(val !== undefined){
+          this.nameutaiL = val
+        }
+         console.log(this.nameutaiL,87)
+      	this.form.czrkJzdzList[this.nameutaiL].optiodne = this.handleData(response.data);
+        // this.form.czrkJzdzList[0].optiodne
+      	this.loading = false;
+        console.log(this.cascaderKey,8765)
+      });
+    },
+    mnyesfjerty(index,val){
+      this.loading = true;
+      let pids = {}
+      pids.pid = index
+      listRoleergth(pids).then(response => {
+        // this.cascaderKey = this.cascaderKey + 1
+        if(response.data.length == 0){
+          return
+        }
+        if(val !== undefined){
+          this.nameutaiL = val
+        }
+        for(var i = 0 ; i < this.form.czrkJzdzList.length ; i++){
+          // this.nameutaiL = i
+          // this.mnyesfjerty(0)
+          this.form.czrkJzdzList[i].optiodne = this.handleData(response.data);
+        }
+
+        // this.form.czrkJzdzList[0].optiodne
+      	this.loading = false;
+        console.log(this.cascaderKey,8765)
+      });
+    },
+    mnyesfjerop(index){
+      this.loading = true;
+      let pids = {}
+      pids.pid = index
+      listRoleergth(pids).then(response => {
+      	this.optionsList = this.handleData(response.data);
+      	this.loading = false;
+      });
+    },
+    mnyesfjers(index){
+      this.loading = true;
+      let pids = {}
+      pids.pid = index
+      listRoleergth(pids).then(response => {
+        // this.cascaderKey = this.cascaderKey + 1
+        if(response.data.length == 0){
+          return
+        }
+      	this.optionsLists = this.handleData(response.data);
+      	this.loading = false;
+        console.log(this.cascaderKey,8765)
+      });
+    },
+
+
+
+
+    // // 模拟请求一级节点
+    //      getfristChild() {
+    //       return [
+    //         {
+    //           label: "第一个",
+    //           hasChdild: true,
+    //           leaf: false,
+    //           pid: null,
+    //           value: "1",
+    //         },
+    //         {
+    //           label: "第2个",
+    //           hasChdild: true,
+    //           leaf: false,
+
+    //           pid: null,
+    //           value: "2",
+    //         },
+    //         {
+    //           label: "第3个",
+    //           hasChdild: true,
+    //           leaf: true,
+
+    //           pid: null,
+    //           value: "3",
+    //         },
+    //       ];
+    //     },
+    //     // 模拟请求子级节点
+    //      getOther(value) {
+    //       let res = [];
+    //       if (value == 1) {
+    //         res = [
+    //           {
+    //             label: "第一个1",
+    //             hasChdild: false,
+    //             pid: 1,
+    //             value: "11",
+    //             leaf: false, // 差别: 这里加了是否叶子节点属性,后面都加了
+    //           },
+    //           {
+    //             label: "第一个2",
+    //             hasChdild: false,
+    //             pid: 1,
+    //             value: "12",
+    //             leaf: false,
+    //           },
+    //         ];
+    //       }
+    //       if (value == 2) {
+    //         res = [
+    //           {
+    //             label: "第2个1",
+    //             hasChdild: false,
+    //             pid: 2,
+    //             leaf: true,
+    //             value: "5",
+    //           },
+    //           {
+    //             label: "第2个2",
+    //             hasChdild: false,
+    //             leaf: true,
+
+    //             pid: 2,
+    //             value: "6",
+    //           },
+    //         ];
+    //       }
+    //       if (value == 11) {
+    //         res = [
+    //           {
+    //             label: "第3个1",
+    //             hasChdild: false,
+    //             pid: 2,
+    //             leaf: true,
+
+    //             value: "111",
+    //           },
+    //           {
+    //             label: "第3个2",
+    //             hasChdild: false,
+    //             leaf: true,
+
+    //             pid: 2,
+    //             value: "112",
+    //           },
+    //         ];
+    //       }
+    //       return res;
+    //     },
+
+
+
+
+
+
+        // // 模拟请求一级节点
+        //      getfristChild() {
+        //       return [
+        //         {
+        //           label: "第一个",
+        //           hasChdild: true,
+        //           pid: null,
+        //           value: "1",
+        //         },
+        //         {
+        //           label: "第2个",
+        //           hasChdild: true,
+        //           pid: null,
+        //           value: "2",
+        //         },
+        //         {
+        //           label: "第3个",
+        //           hasChdild: true,
+        //           pid: null,
+        //           value: "3",
+        //         },
+        //       ];
+        //     },
+        //     // 模拟请求子级节点
+        //      getOther(value) {
+        //       let res = [];
+        //       if (value == 1) {
+        //         res = [
+        //           {
+        //             label: "第一个1",
+        //             hasChdild: false,
+        //             pid: 1,
+        //             value: "3",
+        //           },
+        //           {
+        //             label: "第一个2",
+        //             hasChdild: false,
+        //             pid: 1,
+        //             value: "4",
+        //           },
+        //         ];
+        //       }
+        //       if (value == 2) {
+        //         res = [
+        //           {
+        //             label: "第2个1",
+        //             hasChdild: false,
+        //             pid: 2,
+        //             value: "5",
+        //           },
+        //           {
+        //             label: "第2个2",
+        //             hasChdild: false,
+        //             pid: 2,
+        //             value: "6",
+        //           },
+        //         ];
+        //       }
+        //       return res;
+        //     },
+    // lazyLoads(node, resolve){
+    //   if (node.level == 0) {
+    //     console.log(node,2547);
+    //           if (this.list.length > 0) {
+    //             // 存在回显的id我们才去设置回显
+    //             let res =  this.format(); // 这里就是获取第一次要回显的内容了
+    //             console.log("00000", res);
+    //             this.optionsList = res; // 有回显第一次就直接给绑定的对象,不要resolve
+    //           } else {
+
+    //             let res =  this.getfristChild(); // 不存在就默认加载第一集节点
+    //             console.log(res,67)
+    //             resolve(res);
+    //           }
+    //         } else {
+    //           // 记录选择的,不然会点击字节点加载时丢失数据
+    //           let list = this.list;
+    //           // 有children属性了就不要再请求了,不然字节点会重复
+    //           if (!node.data.children) {
+    //             // 获取子节点数据
+    //             let res =  this.getOther(node.data.value);
+    //             setTimeout(() => {
+    //               // 模拟延时,实际不需要
+    //               resolve(res);
+    //             }, 100);
+    //           } else {
+    //             resolve([]);
+    //           }
+    //           // 重新把选择的id放回来-
+    //           // this.$nextTick(() => {
+    //           //   this.list = [...new Set([...this.list, ...list])]; //差别: 合并并且去重
+    //           // });
+    //           setTimeout(() => {
+    //             this.list = [...new Set([...this.list, ...list])]; //差别: 合并并且去重
+    //           }, 250);
+    //         }
+    // },
+
+    lazyLoads(node, resolve) {
+      console.log(node,34545678)
+          if (node.level == 0) {
+            let res =  this.mnyesfjer(0); // 不存在就默认加载第一集节点
+            resolve(res);
+          } else {
+            // 有children属性了就不要再请求了,不然字节点会重复
+            if (!node.data.children) {
+              // 获取子节点数据
+              let res =  this.mnyesfjer(node.data.areaId);
+              console.log(node.children)
+              let nfhh = node.children.push(res)
+              setTimeout(() => {
+                resolve(res);
+              }, 200);
+            } else {
+              resolve([]);
+            }
+          }
+        },
+     format() {
+          let res =  this.getfristChild(); // 拿一级数据
+          this.list.forEach((item) => {
+            // 遍历回显的id 二维数组
+            if (item.length > 1) {
+              item.forEach(async (sitem, index) => {
+                if (index == item.length - 1) {
+                  return; // 如果是一级节点就不用查找了
+                }
+                let arr =  this.getOther(sitem); // 不是一级,获取子级
+                this.findItem(res, arr, sitem); //  判断当前拿到的子级数据属于哪个一级数据下的子级,并且加到当前一级的children属性下
+              });
+            }
+          });
+           },
+     // 递归判断
+           findItem(res, arr, id) {
+            for (let i = 0; i < res.length; i++) {
+              if (res[i].value === id) {
+                res[i].children = arr; // 有chidlren 也要判断是不是这个children下的子级
+                return res;
+              }
+              if (res[i].children) {
+                this.findItem(res[i].children, arr, id);
+              }
+            }
+             return res;
+          },
+
+
+   // getAddress() {
+   // 	        this.mnyesfjer(0).then(res => {
+   // 	          this.optionsList =  this.handleData(res.data);
+   // 	        }).catch(err => {
+   // 	        })
+   // 	    },
+   	     handleItemChange(val) {
+           console.log(val,235)
+   	        let code = val ? val[val.length - 1] : '';  //需请求数据的上级地址的code值
+   	        let level = val.length + 1;  //需请求第几级地址
+            console.log(this.nameutaiL,2345)
+            console.log(this.form.czrkJzdzList,12365)
+            this.$set(this.form.czrkJzdzList[this.nameutaiL],'optiodne',this.handleData(this.form.czrkJzdzList[this.nameutaiL].optiodne, code, level))
+   	        // this.form.czrkJzdzList[this.nameutaiL].optiodne = this.handleData(this.form.czrkJzdzList[this.nameutaiL].optiodne, code, level);
+         	  // console.log(this.optionsList,23456)
+            // console.log(this.$refs.myCascaderf,2588)
+            // console.log(this.$refs['myCascaderf'][0].$refs.panel.clearCheckedNodes(),258)
+            // if(data !== 0){
+              // if(this.nhyeojd == true){
+              //   this.$refs['myCascaderf'][this.nameutaiL].$refs.panel.clearCheckedNodes()
+              // }
+            // }
+            // this.$refs['myCascaderf'][0].$refs.panel.clearCheckedNodes()
+            // console.log(this.$refs['myCascaderf'][this.nameutaiL].$refs.panel.checkedValue,345678)
+
+          },
+
+
+          handleItemChangefr(val) {
+            console.log(val,235)
+             let code = val ? val[val.length - 1] : '';  //需请求数据的上级地址的code值
+             let level = val.length + 1;  //需请求第几级地址
+             this.optionsList = this.handleData(this.optionsList, code, level);
+          	},
+
+          handleItemChanges(val) {
+            console.log(val,235)
+             let code = val ? val[val.length - 1] : '';  //需请求数据的上级地址的code值
+             let level = val.length + 1;  //需请求第几级地址
+             this.optionsLists = this.handleData(this.optionsLists, code, level);
+             this.cascaderKey = this.cascaderKey + 1
+          	},
+
+         	handleData(data, val, level) {
+            console.log(data,val,level,7536)
+   	        for (let i = 0; i < data.length; i++) {
+   	          if(!data[i].children) {
+   	            this.$set(data[i], 'children', []);
+   	          }
+   	          if(data[i].areaId === val){
+                let vfer = {}
+                vfer.pid = val
+   	            listRoleergth(vfer).then(res => {
+                  // this.cascaderKey = this.cascaderKey + 1
+   	              if(res.data.length) {
+                    console.log(data[i].children,4567)
+   	                // data[i].children = res.data;
+                    this.$set(data[i], 'children', res.data)
+                    console.log(data[i].children,45678)
+                     this.nhdyesku = true
+   	                data[i].children.forEach(ele => {
+   	                  this.$set(ele, 'children', [])
+   	                });
+   	              }else {
+   	                data[i].children = undefined;
+   	              }
+   	            }).catch(err => {
+   	            });
+   	          }else {
+   	            if(data[i].children.length){
+   	              this.handleData(data[i].children,val,level)
+   	            }
+   	          }
+   	        }
+
+             return data;
+         },
+
+		onSelectedtwo(data) {
+			console.log(data);
+			// province
+			this.queryParams.province = data[0];
+			this.queryParams.city = data[1];
+			this.queryParams.region = data[2];
+			// this.queryParams.villageTowns = data[3]
+		},
+		/** 查询疫苗信息列表 */
+		getList() {
+			this.loading = true;
+			listInfo(this.queryParams).then(response => {
+				this.infoList = response.rows;
+				this.total = response.total;
+				this.loading = false;
+			});
+		},
+		getToken() {
+			return getToken();
+		},
+		getTreeselectjue() {
+			this.loading = true;
+      let pids = {}
+      pids.pid = 0
+			listRoleer().then(response => {
+				this.options = response.data;
+				this.loading = false;
+			});
+		},
+    // 统计数据
+    getTreeselectjuetj() {
+    	this.loading = true;
+      listInfotj().then(response => {
+        this.dneyhsd =  response.data
+        this.loading = false;
+      });
+    },
+
+		/** 转换角色数据结构 */
+		normalizer(node) {
+			// if (node.children && !node.children.length) {
+			//   delete node.children;
+			// }
+			return {
+				id: node.id,
+				label: node.roleName
+			};
+		},
+		// 点击组/角色
+		djieskle(node, instanceId) {
+			// this.personnel(node.id);
+			console.log(node, instanceId);
+		},
+		// 身份证
+		idcde(event) {
+			console.log(event);
+			// 身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X
+			let reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
+			if (reg.test(this.form.idCard)) {
+				this.idea();
+				// this.go(this.form.idCard.length);
+				// callback()
+			} else {
+				// callback(new Error('身份证号码不正确'))
+				this.msgInfo('身份证号码不正确');
+			}
+		},
+		// 实现自动生成生日,性别,年龄
+		go(val) {
+			let iden = this.form.idCard;
+			let sex = null;
+			let birth = null;
+			let birthr = '';
+			let myDate = new Date();
+			let month = myDate.getMonth() + 1;
+			let day = myDate.getDate();
+			let age = 0;
+
+			if (val === 18) {
+				age = myDate.getFullYear() - iden.substring(6, 10) - 1;
+				sex = iden.substring(16, 17);
+				birth = iden.substring(6, 10) + '-' + iden.substring(10, 12) + '-' + iden.substring(12, 14);
+				if (iden.substring(10, 12) < month || (iden.substring(10, 12) == month && iden.substring(12, 14) <= day)) age++;
+			}
+			if (val === 15) {
+				age = myDate.getFullYear() - iden.substring(6, 8) - 1901;
+				sex = iden.substring(13, 14);
+				birth = '19' + iden.substring(6, 8) + '-' + iden.substring(8, 10) + '-' + iden.substring(10, 12);
+				if (iden.substring(8, 10) < month || (iden.substring(8, 10) == month && iden.substring(10, 12) <= day)) age++;
+			}
+
+			if (sex % 2 === 0) sex = '女';
+			else sex = '男';
+			this.form.gender = sex;
+			// this.baseInfo.age = age;
+			birthr = birth + '';
+			console.log(birthr);
+			// this.form.birthday = birthr;
+			// this.$set(this.form.birthday, birthr)
+			// this.baseInfo.birthplace = this.area[iden.substring(0,2)];
+		},
+
+
+		// 请求身份证数据
+		idea() {
+			idces({ idCard: this.form.idCard }).then(response => {
+				console.log(response);
+				this.form.gender = response.data.gender;
+				// this.form.birthday = response.data.birthday;
+				this.form.age = response.data.age
+				this.form.code = response.data.code
+				if (response.data.userName == null) {
+					this.form.userName = undefined;
+				} else {
+					this.form.userName = response.data.userName;
+				}
+        if(response.data.code == null){
+          this.form.code = null;
+        }else{
+          this.form.code = response.data.code;
+        }
+        if(response.data.province == null){
+          this.form.province = null;
+          this.form.provinceId = null;
+        }else{
+          this.form.province = response.data.province;
+          this.form.provinceId = response.data.provinceId;
+        }
+        if(response.data.city == null){
+          this.form.city = null;
+          this.form.cityId = null;
+        }else{
+          this.form.city = response.data.city;
+          this.form.cityId = response.data.cityId;
+        }
+        if(response.data.region == null){
+          this.form.region = null;
+          this.form.regionId = null;
+        }else{
+          this.form.region = response.data.region;
+          this.form.regionId = response.data.regionId;
+        }
+
+        if(response.data.villageTowns == null){
+          this.form.villageTowns = null;
+          this.form.villageTownsId = null;
+        }else{
+          this.form.villageTowns = response.data.villageTowns;
+          this.form.villageTownsId = response.data.villageTownsId;
+        }
+
+        if(response.data.village == null){
+          this.form.village = null;
+          this.form.villageId = null;
+        }else{
+          this.form.village = response.data.village;
+          this.form.villageId = response.data.villageId;
+        }
+
+        if(response.data.villagerGroupId == null){
+          this.form.villagerGroup = null;
+          this.form.villagerGroupId = null;
+        }else{
+          this.form.villagerGroup = response.data.villagerGroup;
+          this.form.villagerGroupId = response.data.villagerGroupId;
+        }
+
+        if(response.data.province !== null && response.data.province !== ""){
+        	this.nhdyesfgh = response.data.province;
+          if(response.data.city !== null && response.data.city !== ""){
+            this.nhdyesfgh = response.data.province + '/' + response.data.city;
+            if(response.data.region !== null && response.data.region !== ""){
+            	this.nhdyesfgh = response.data.province + '/' + response.data.city + '/' + response.data.region;
+              if(this.form.residenceTown !==null && this.form.residenceTown !=='' && this.form.residenceTown !== undefined){
+                this.nhdyesfgh = response.data.province + '/' + response.data.city + '/' + response.data.region + '/' + this.form.residenceTown;
+                if(this.form.residenceVillage !==null && this.form.residenceVillage !=='' && this.form.residenceVillage !== undefined){
+                  this.nhdyesfgh = response.data.province + '/' + response.data.city + '/' + response.data.region + '/' + this.form.residenceTown + '/' + this.form.residenceVillage;
+                }
+              }
+            }else{
+            	// this.nhdyesfgh ='点击选择居住地址'
+            }
+          }else{
+          	// this.nhdyesfgh ='点击选择居住地址'
+          }
+        }else{
+        	this.nhdyesfgh ='点击选择户籍地址'
+        }
+
+
+
+        if( response.data.czrkJzdzList !== null && response.data.czrkJzdzList.length !== 0  ){
+        	// this.selected[0] = response.data.province;
+          // for(var i = 0 ; i < response.data.czrkJzdzList.length ; i++){
+            // this.nameutaiL = i
+            this.mnyesfjerty(0)
+          // }
+          response.data.czrkJzdzList.filter(route =>{
+            if(route.province !== ""){
+              route.plaed =  route.province
+              if(route.city !== ""){
+                route.plaed =  route.plaed + '/' + route.city
+                if(route.city !== ""){
+                  route.plaed =  route.plaed + '/' + route.city
+                  if(route.region !== ""){
+                    route.plaed =  route.plaed + '/' + route.region
+                    if(route.town !== ""){
+                      route.plaed =  route.plaed + '/' + route.town
+                      if(route.village !== ""){
+                        route.plaed =  route.plaed + '/' + route.village
+                      }
+                    }
+                  }
+                }
+              }
+            }else{
+              route.plaed = '请选择居住地址'
+            }
+
+          })
+        }
+        this.form.czrkJzdzList   = response.data.czrkJzdzList
+        this.form.phoneNum   = response.data.phoneNum
+        this.form.houseType   = response.data.houseType
+        this.form.nowIn   = response.data.nowIn
+        this.form.remark   = response.data.remark
+			});
+		},
+
+
+		// 取消按钮
+		cancel() {
+			this.opens = false;
+			this.jiezhong = false;
+			this.imashow = false;
+      this.errorlog=false;
+      this.$refs['myCascaderf' + '' + this.nameutaiL][0].$refs.panel.clearCheckedNodes()
+			this.reset();
+		},
+		gywoa() {
+			console.log(this.form.isVaccination);
+			if (this.form.isVaccination !== null) {
+				if (this.form.isVaccination == '是') {
+					// 接种疫苗
+					this.naneme = false,
+					this.shouwes = true;
+				}else {
+					this.naneme = true,
+					this.shouwes = false,
+					this.form.czrkJzdzList = [{
+						provinceId: '',
+						province: '',
+						deptId: '',
+						cityId: '',
+						city: '',
+						regionId:'',
+						region: '',
+						townId: '',
+						town: '',
+						villageId: '',
+						village: '',
+						nowIn:'',
+            seleted:[],
+            optiodne:[],
+            plaed:'请选择居住地址',
+					}
+				]
+				}
+			}
+		},
+		gywoatwo() {
+			console.log(this.queryParams.isVaccination);
+			if (this.queryParams.isVaccination !== null) {
+				if (this.queryParams.isVaccination == '是') {
+					// 接种疫苗
+					// (this.naneme = false), (this.shouwes = true);
+					this.shouwestwo = false
+				} else {
+					// (this.naneme = true), (this.shouwes = false);
+					this.shouwestwo = true
+				}
+			}
+		},
+
+		// 表单重置
+		reset() {
+			this.form = {
+				id: null,
+				age:'',
+				code:'',
+				houseType: null,
+				domicile: null,
+				province: null,
+				city: null,
+				region: null,
+				userName: null,
+				gender: null,
+				idCard: null,
+				phoneNum: null,
+				keyIndustries: null,
+				isVaccination: null,
+				vaccinationPlace: null,
+				contraindication: null,
+				nowIn: '',
+				remark: null,
+        residenceTown:null,
+        residenceVillage:null,
+        czrkJzdzList: [
+        	{
+        		provinceId: '',
+        		province: '',
+        		deptId: '',
+        		cityId: '',
+        		city: '',
+        		regionId:'',
+        		region: '',
+        		townId: '',
+        		town: '',
+        		villageId: '',
+        		village: '',
+        		nowIn:'',
+        		disableg:false,
+            optiodne:[],
+            seleted:[],
+            plaed:'请选择居住地址',
+        	}
+        ]
+			};
+			this.resetForm('form');
+		},
+		/** 搜索按钮操作 */
+		handleQuery() {
+			this.queryParams.pageNum = 1;
+			console.log(this.queryParams)
+			this.getList();
+		},
+		/** 重置按钮操作 */
+		resetQuery() {
+			this.nhue = false
+			this.selectedtwo = []
+			setTimeout( ()=>{
+				this.nhue = true
+			},100)
+			this.queryParams.province = undefined;
			this.queryParams.city = undefined;
			this.queryParams.region = undefined;
+      this.queryParams.deptId = undefined
+      this.queryParams.provinceIdXjd = undefined
+      this.queryParams.cityIdXjd = undefined
+      this.queryParams.regionIdXjd = undefined
+      this.queryParams.villageTownsIdXjd = undefined
+      this.queryParams.villageIdXjd = undefined;
+      this.queryParams.provinceId = undefined
+      this.queryParams.cityId = undefined
+      this.queryParams.regionId = undefined
+      this.queryParams.villageTownsId = undefined
+      this.queryParams.villageId = undefined
+      this.listd = []
+      this.lser = []
+			this.resetForm('queryForm');
+			this.handleQuery();
+		},
+		// 多选框选中数据
+		handleSelectionChange(selection) {
+			this.ids = selection.map(item => item.id);
+			this.single = selection.length !== 1;
+			this.multiple = !selection.length;
+		},
+		/** 新增按钮操作 */
+		handleAdd() {
+			this.reset();
+			this.opens = true;
+			(this.naneme = false),
+			(this.shouwes = false);
+			this.form.province = this.selected[0];
+			this.villageTownshy = '';
+			this.naiseurya = '';
+			this.hsuej = '';
+			this.form.city = this.selected[1];
+			this.form.region = this.selected[2];
+			this.title = '添加信息';
+			this.jdourdjoaj = true;
+			this.jue = true
+      this.nhdyesfgh = '点击选择户籍地址'
+      this.mnyesfjer(0)
+      // this.form.province = '安徽省';
+      // this.form.city = '安庆市';
+      // this.form.region = '潜山市';
+      // this.form.residenceTown = '梅城镇';
+      // this.form.residenceVillage = '龙井社区';
+      // this.nhdyesfgh = this.form.province + '/' + this.form.city + '/' + this.form.region + '/' + this.form.residenceTown + '/' + this.form.residenceVillage;
+			console.log(this.form)
+		},
+		/** 修改按钮操作 */
+		handleUpdate(row) {
+			this.reset();
+			const id = row.id || this.ids;
+			getInfo(id).then(response => {
+				this.form = response.data;
+				this.jue = false
+        this.nhdyesku = true
+				if(response.data.province !== null && response.data.province !== ""){
+					this.nhdyesfgh = response.data.province;
+          if(response.data.city !== null && response.data.city !== ""){
+            this.nhdyesfgh = response.data.province + '/' + response.data.city;
+            if(response.data.region !== null && response.data.region !== ""){
+            	this.nhdyesfgh = response.data.province + '/' + response.data.city + '/' + response.data.region;
+              if(this.form.residenceTown !==null && this.form.residenceTown !=='' && this.form.residenceTown !== undefined){
+                this.nhdyesfgh = response.data.province + '/' + response.data.city + '/' + response.data.region + '/' + this.form.residenceTown;
+                if(this.form.residenceVillage !==null && this.form.residenceVillage !=='' && this.form.residenceVillage !== undefined){
+                  this.nhdyesfgh = response.data.province + '/' + response.data.city + '/' + response.data.region + '/' + this.form.residenceTown + '/' + this.form.residenceVillage;
+                }
+              }
+            }else{
+            	// this.nhdyesfgh ='点击选择居住地址'
+            }
+          }else{
+          	// this.nhdyesfgh ='点击选择居住地址'
+          }
+				}else{
+					this.nhdyesfgh ='点击选择户籍地址'
+				}
+
+				if(response.data.czrkJzdzList.length !== 0 && response.data.czrkJzdzList !== null){
+					// this.selected[0] = response.data.province;
+          // for(var i = 0 ; i < response.data.czrkJzdzList.length ; i++){
+            // this.nameutaiL = i
+            this.mnyesfjerty(0)
+          // }
+          response.data.czrkJzdzList.filter(route =>{
+            if(route.province !== ""){
+              route.plaed =  route.province
+              if(route.city !== ""){
+                route.plaed =  route.plaed + '/' + route.city
+                if(route.city !== ""){
+                  route.plaed =  route.plaed + '/' + route.city
+                  if(route.region !== ""){
+                    route.plaed =  route.plaed + '/' + route.region
+                    if(route.town !== ""){
+                      route.plaed =  route.plaed + '/' + route.town
+                      if(route.village !== ""){
+                        route.plaed =  route.plaed + '/' + route.village
+                      }
+                    }
+                  }
+                }
+              }
+            }else{
+              route.plaed = '请选择居住地址'
+            }
+
+          })
+				}
+
+				// this.onSelected(this.selected)
+				setTimeout( ()=>{
+					this.jue = true
+				},100)
+				// this.jue = true
+				console.log(this.selected,98767)
+				// if(this.form){
+				if (this.form.isVaccination !== null) {
+					if (this.form.isVaccination == '是') {
+						// 接种疫苗
+						(this.naneme = false), (this.shouwes = true);
+					} else {
+						(this.naneme = true), (this.shouwes = false);
+					}
+				} else {
+					this.naneme = false;
+					this.shouwes = false;
+				}
+
+				if (this.form.dictValue !== null && this.form.dictValue !== undefined) {
+					this.jicheru(this.form.dictValue);
+				}
+				if (this.form.villageTowns !== null) {
+					this.villageTownshy = this.form.villageTowns;
+					if (this.form.village !== null) {
+						this.villageTownshy = this.form.village;
+						if (this.form.villagerGroup !== null) {
+							this.villageTownshy = this.form.villagerGroup;
+						}
+					}
+				}else{
+					this.villageTownshy = '';
+				}
+        console.log(this.villageTownshy,3455)
+
+				// if (this.form.vaccineInfoUserList !== null) {
+				// 	if (this.form.vaccineInfoUserList.length == 0) {
+
+				// 	}else {
+				// 		this.form.isVaccination = '是'
+				// 		this.form.vaccineInfoUserList.filter(router =>{
+				// 			if(router.url == undefined){
+				// 				router.url = null
+				// 			}else if(router.url == []){
+				// 				router.url = null
+				// 			}
+				// 			router.disableg = true
+				// 		})
+				// 	}
+				// }
+				// villageTownshy
+				// }
+				// this.heuiq.push()
+				this.naiseurya = '';
+				this.hsuej = '';
+				this.opens = true;
+				this.jdourdjoaj = false;
+				this.title = '查看编辑人口信息';
+			});
+		},
+		chahe(data) {
+			console.log(data);
+			// let labelValue = this.$refs['myCascader'].inputValue
+			// console.log(labelValue)
+			console.log(this.$refs['myCascader'])
+			// this.form.provinceId = data[1];
+			// this.form.cityId = data[2];
+			// this.form.regionId = data[3];
+   //    this.form.villageTownsId = data[3];
+   //    this.form.villageId = data[3];
+   let nhdye = []
+   nhdye = this.$refs['myCascader'].getCheckedNodes()[0].pathLabels
+      if(data.length == 1){
+        this.form.provinceId = data[ data.length - 1];
+        this.form.province = nhdye[ data.length - 1];
+      }else if(data.length == 2){
+        this.form.cityId = data[ data.length - 1];
+        this.form.city = nhdye[ data.length - 1];
+      }else if(data.length == 3){
+        this.form.regionId = data[ data.length - 1];
+        this.form.region = nhdye[ data.length - 1];
+      }else if(data.length == 4){
+        this.form.villageTownsId = data[ data.length - 1];
+        this.form.villageTowns = nhdye[ data.length - 1];
+      }else if(data.length == 5){
+        this.form.villageId = data[ data.length - 1];
+        this.form.village = nhdye[ data.length - 1];
+      }
+      this.form.deptId = data[ data.length - 1];
+
+			// if (this.form.villageTowns !== undefined) {
+			// 	this.hsuej = this.form.villageTowns;
+			// 	if (this.form.village !== undefined) {
+			// 		this.hsuej = this.form.villageTowns + this.form.village;
+			// 		if (this.form.villagerGroup !== undefined) {
+			// 			this.hsuej = this.form.villageTowns + this.form.village + this.form.villagerGroup;
+			// 		}
+			// 	}
+			// }
+			this.form.domicile = '';
+      console.log(this.form)
+
+      // if(this.jdourdjoaj == true){
+      //   //新增
+      //   this.form.nowIn =  this.hsuej
+
+      // }else{
+      //    this.form.nowIn !=  this.hsuej
+      // }
+		},
+		chahetwo(data) {
+			console.log(data)
+      if(data.length == 1){
+        this.queryParams.provinceId = data[ data.length - 1];
+      }else if(data.length == 2){
+        this.queryParams.provinceId = undefined
+        this.queryParams.cityId = data[ data.length - 1];
+      }else if(data.length == 3){
+        this.queryParams.provinceId = undefined
+        this.queryParams.cityId = undefined
+        this.queryParams.regionId = data[ data.length - 1];
+      }else if(data.length == 4){
+        this.queryParams.provinceId = undefined
+        this.queryParams.cityId = undefined
+        this.queryParams.regionId = undefined
+        this.queryParams.villageTownsId = data[ data.length - 1];
+      }else if(data.length == 5){
+        this.queryParams.provinceId = undefined
+        this.queryParams.cityId = undefined
+        this.queryParams.regionId = undefined
+        this.queryParams.villageTownsId = undefined
+        this.queryParams.villageId = data[ data.length - 1];
+      }
+		},
+    // 居住地址搜索条件
+    chahetwos(data) {
+    	console.log(data)
+      if(data.length == 1){
+        this.queryParams.provinceIdXjd = data[ data.length - 1];
+      }else if(data.length == 2){
+        this.queryParams.provinceIdXjd = undefined
+        this.queryParams.cityIdXjd = data[ data.length - 1];
+      }else if(data.length == 3){
+        this.queryParams.provinceIdXjd = undefined
+        this.queryParams.cityIdXjd = undefined
+        this.queryParams.regionIdXjd = data[ data.length - 1];
+      }else if(data.length == 4){
+        this.queryParams.provinceIdXjd = undefined
+        this.queryParams.cityIdXjd = undefined
+        this.queryParams.regionIdXjd = undefined
+        this.queryParams.villageTownsIdXjd = data[ data.length - 1];
+      }else if(data.length == 5){
+        this.queryParams.provinceIdXjd = undefined
+        this.queryParams.cityIdXjd = undefined
+        this.queryParams.regionIdXjd = undefined
+        this.queryParams.villageTownsIdXjd = undefined
+        this.queryParams.villageIdXjd = data[ data.length - 1];
+      }
+    },
+		/** 提交按钮 */
+		submitForm() {
+			this.$refs['form'].validate(valid => {
+				console.log(this.selected);
+				if (valid) {
+					if (this.form.id != null) {
+						// this.form.nowIn = this.naiseurya + this.form.nowIn;
+						// this.form.domicile = this.hsuej + this.form.domicile;
+						updateInfo(this.form).then(response => {
+							this.msgSuccess('修改成功');
+							this.opens = false;
+							this.getList();
+						});
+					} else {
+						// this.form.nowIn = this.naiseurya + this.form.nowIn;
+						// this.form.domicile = this.hsuej + this.form.domicile;
+						// if (this.form.nowIn == 'undefined') {
+						// 	this.form.nowIn = null;
+						// }
+            if(this.form.czrkJzdzList[0].province == ''){
+              this.msgInfo('请填写居住地址');
+              return false
+            }
+						console.log(this.form)
+            this.form.czrkJzdzList.filter(route =>{
+              route.seleted = []
+              route.optiodne = []
+            })
+						// return
+						addInfo(this.form).then(response => {
+							this.msgSuccess('新增成功');
+							this.opens = false;
+							this.getList();
+						});
+					}
+				}
+			});
+		},
+		/** 删除按钮操作 */
+		handleDelete(row) {
+			const ids = row.id || this.ids;
+      this.idfer = ids
+      this.imashow = true;
+			// this.$confirm('是否确认删除疫苗信息编号为"' + ids + '"的数据项?', '警告', {
+			// 	confirmButtonText: '确定',
+			// 	cancelButtonText: '取消',
+			// 	type: 'warning'
+			// })
+			// 	.then(function() {
+			// 		return delInfo(ids);
+			// 	})
+			// 	.then(() => {
+			// 		this.getList();
+			// 		this.msgSuccess('删除成功');
+			// 	});
+		},
+    submitFormfr(){
+      // formgt
+      if(this.formgt.houseType == null || this.formgt.houseType == undefined){
+        this.$message.error('请选择删除原因');
+        return  false
+      }
+      let nhue = {}
+      nhue.deleteReason = this.formgt.houseType
+      nhue.id = this.idfer
+      delInfo(nhue).then(response => {
+      	this.msgSuccess('删除成功');
+      	this.imashow = false;
+      	this.getList();
+      });
+    },
+    // 点击新增
+    tijea(index) {
+    	console.log(index+ 1)
+    	this.nameutaiL = index+ 1
+       this.cascaderKey = index + 1
+    	this.form.czrkJzdzList.push({
+    		provinceId: '',
+    		province: '',
+    		deptId: '',
+    		cityId: '',
+    		city: '',
+    		regionId:'',
+    		region: '',
+    		townId: '',
+    		town: '',
+    		villageId: '',
+    		village: '',
+    		nowIn:'',
+    		disableg:false,
+        seleted:[],
+        optiodne:[],
+        plaed:'请选择居住地址',
+    	});
+      this.nhyeojd = true
+      this.mnyesfjer(0)
+      // this.form.czrkJzdzList[this.nameutaiL].optiodne
+      // console.log(this.cascaderKey,123465)
+      // // console.log()
+      // console.log( this.$refs.myCascaderf[this.$refs.myCascaderf.length - 1] ,258)
+      // // console.log(this.$refs['myCascaderf'][0].$refs.panel.clearCheckedNodes(),258)
+      // this.$refs['myCascaderf'][this.$refs.myCascaderf.length - 1].$refs.panel.clearCheckedNodes()
+      // console.log(this.$refs['myCascaderf'][0].$refs.panel.checkedValue,34567)
+      // this.mnyesfjer(0)
+    },
+    // 点击删除
+    naeyrfakjf(index, item) {
+    	var that = this
+    	this.$confirm('是否确认删除信息?', '警告', {
+    		confirmButtonText: '确定',
+    		cancelButtonText: '取消',
+    		type: 'warning'
+    	})
+    		.then(function() {
+    			return that.delseeug(index,item)
+    		})
+    		.then(() => {
+    			// this.getList();
+    			// this.msgSuccess('删除成功');
+    		});
+
+    },
+    delseeug(index,item){
+    	console.log(234)
+    	if (this.form.czrkJzdzList.length == 1) {
+    		// if (this.jdourdjoaj == true) {
+    		// 	// 新增
+    		// 	this.form.vaccineInfoUserList = [{
+    		// 		vaccineName: '',
+    		// 		vaccinationTime: '',
+    		// 		vaccinationPlace: '',
+    		// 		jici: '',
+    		// 		progress: '',
+    		// 		url:null,
+    		// 		disableg:false
+    		// 	}]
+    		// } else {
+    		// 	// 修改
+    		// 	let ide = this.form.vaccineInfoUserList[index].id;
+    		// 	console.log(this.form.vaccineInfoUserList[index]);
+    		// 	// ()
+    		// 	console.log(ide);
+    		// 	if (ide !== undefined) {
+    		// 		console.log(234);
+    		// 		delInfort(ide).then(response => {
+    		// 			this.msgSuccess('操作成功');
+    		// 		});
+    		// 	}
+    		// 	this.form.vaccineInfoUserList = [{
+    		// 		vaccineName: '',
+    		// 		vaccinationTime: '',
+    		// 		vaccinationPlace: '',
+    		// 		jici: '',
+    		// 		progress: '',
+    		// 		url:null,
+    		// 		disableg:false
+    		// 	}]
+    		// }
+
+        this.msgSuccess('只剩一条数据,无法删除');
+    		return false;
+    	}
+    	if (this.jdourdjoaj == true) {
+    		// 新增
+    		this.form.czrkJzdzList.splice(index, 1);
+    	} else {
+    		// 修改
+    		// ()
+    		this.form.czrkJzdzList.splice(index, 1);
+    	}
+      this.msgSuccess('删除成功');
+    },
+		/** 导出按钮操作 */
+		handleExport() {
+			var heuia = {
+                tableName: "vaccine_info",
+                empty: false,
+                condition: {}
+            }
+            var that=this;
+            heuia.condition = this.queryParams
+			const queryParams = this.queryParams
+			this.$confirm('是否确认导出?', "警告", {
+			    confirmButtonText: "确定",
+			    cancelButtonText: "取消",
+			    type: "warning"
+			  }).then(function() {
+			    return exportConfig(heuia);
+			  }).then(response => {
+				  const jues= response.data
+          that.exportflag=false;
+          that.$alert('数据导入中,系统将自动处理数据,请稍后查看结果', "导出结果", { dangerouslyUseHTMLString: true });
+          // that.msgSuccess('数据导入中,系统将自动处理数据,请稍后查看结果');
+				// exportConfigtyr().then(responsr => {
+				// 			console.log(responsr)
+				// 			if(responsr.data == true){
+				// 				// this.download(jues);
+				// 				// window.location.href = jues
+				// 				window.open(jues)
+				// 			}else{
+				// 				this.msgSuccess('数据暂未加载完成,请稍后点击导出进度按钮查看');
+				// 			}
+				// 		});
+
+			  })
+
+
+			// this.download('/boman-web-core/core/info/export',
+			// 	{
+			// 		...this.queryParams
+			// 	},
+			// 	`post_${new Date().getTime()}.xlsx`
+			// );
+
+		},
+
+		// 点击查看
+		chakei(row) {
+			console.log(row);
+      let nhyes= {pageNum: 1,
+      pageSize: 10,}
+      this.nhyesoder = row
+      if(row == 0){
+        // 新增
+       listInfotjxz(this.ndhuwosdjh).then(response => {
+				// this.msgSuccess('操作成功');
+					this.jiezheList = response.rows
+          this.totalfr = response.total
+				})
+      } else if(row == 1){
+        // 减少
+        listInfotjjs(this.ndhuwosdjh).then(response => {
+        				// this.msgSuccess('操作成功');
+        					this.jiezheList = response.rows
+                  this.totalfr = response.total
+
+      }	)
+          }// yiaoe({idCard:row.idCard}).then(response => {
+			// 	// this.msgSuccess('操作成功');
+			// 	if(response.code == 200){
+			// 		this.jiezheList = response.data
+			// 	}
+			// });
+
+			this.jiezhong = true;
+		},
+    // 查看家庭成员信息
+    handleDeletefamide(row){
+      this.jiezhong = true;
+      this.nhyesoder = 3
+      listInfotjjsfaml(row.code).then(response => {
+        				// this.msgSuccess('操作成功');
+        					this.jiezheList = response.data
+                  this.totalfr = 0
+
+      }	)
+    },
+    /** 导入按钮操作 */
+    handleImport() {
+      this.upload.title = "数据导入";
+      this.upload.opens = true;
+    },
+    // 获取屏幕高度
+              showFilterForm () {
+                    this.filterActive = !this.filterActive
+                    this.changeTableMaxHeight()
+                  },
+
+                  changeTableMaxHeight () {
+                    let height = document.body.offsetHeight // 网页可视区域高度
+                    // if (this.filterActive) {
+                    //   this.tableMaxHeight = height - 320
+                    // } else {
+                      this.tableMaxHeight = height - 250
+                    // }
+                    console.log(height)
+                  },
+
+  // 判断是否选择户主
+  changese(){
+    console.log(this.form.houseType)
+    if(this.form.houseType == '是'){
+      this.form.code = this.form.idCard
+      this.nhe = false
+    }else{
+      this.form.code != this.form.idCard
+      this.nhe = true
+    }
+  },
+  // 常住人口
+  chajnd(){
+   this.queryParams.queryType = 'cz'
+   this.getList();
+  },
+  // 户籍人口
+  chajnds(){
+   this.queryParams.queryType = 'hj'
+   this.getList();
+  }
+	}
+};
+</script>
+<style lang="scss">
+  .placf {
+    .el-input {
+      .el-input__inner::placeholder{
+        color: #333;
+      }
+      /* 谷歌 */
+          .el-input__inner::-webkit-input-placeholder {
+             color: #333;
+          }
+           /* 火狐 */
+         .el-input__inner:-moz-placeholder {
+              color: #333;
+          }
+           /*ie*/
+         .el-input__inner:-ms-input-placeholder {
+              color: #333;
+          }
+    }
+
+  }
+	.jdueuh{
+		.el-form-item__label {
+			width: 0px !important;
+		}
+		.el-form-item__content {
+			margin-left: 10px !important;
+			// width: 70%;
+		}
+	}
+	.ijeuhdy{
+		.el-form-item__label {
+			width: 80px !important;
+		}
+		.el-form-item__content {
+			margin-left: 80px !important;
+			// width: 70%;
+		}
+	}
+	.znshu{
+		.el-form-item__label {
+			width: 80px !important;
+			// padding-left: 30px;
+		}
+		.el-form-item__content {
+			margin-left: 80px !important;
+
+			// width: 70%;
+		}
+		.el-input__inner{
+			padding-left: 0 !important;
+		}
+	}
+	.heioangd{
+		.el-form-item__label {
+			width: 70px !important;
+		}
+		.el-form-item__content {
+			margin-left: 70px !important;
+			// width: 70%;
+		}
+	}
+.hues {
+	.area-select {
+		margin-left: 0 !important;
+		margin-right: 10px;
+	}
+}
+.jehak {
+	.el-form-item {
+		width: 100%;
+	}
+	.el-form-item__content {
+		width: 60%;
+	}
+}
+.oiuyty {
+	.el-form-item__label {
+		width: 80px !important;
+	}
+	.el-form-item__content {
+		margin-left: 80px !important;
+		// width: 70%;
+	}
+	input {
+		padding-right: 0 !important;
+	}
+}
+.el-dialog__body {
+	padding-top: 0;
+	padding-bottom: 0;
+}
+.jhy {
+	// width: 100%;
+	// .el-form-item__content {
+	// 	width: 100%;
+	// 	margin-left: 0 !important;
+	// }
+	.el-form-item__content {
+		margin-left: 55px !important;
+		// width: 70%;
+	}
+	.el-form-item__label {
+		width: 55px !important;
+	}
+}
+.ehiqya {
+	.el-form-item__content {
+		display: flex;
+		.jdidur {
+			flex: 1;
+			margin-left: 10px;
+			// text-align: left;
+			display: flex;
+		}
+	}
+	.upload-demo {
+		display: flex;
+	}
+}
+.jdoier{
+	display: flex;
+	align-items: center;
+	.upload-demo {
+		display: flex;
+	}
+}
+.hueyde {
+	width: 18px;
+	height: 18px;
+	margin: 0 5px;
+	margin-right: 10px;
+}
+.hueydele {
+	width: 15px;
+	height: 18px;
+}
+.hyeoa {
+	height: 100%;
+	display: flex;
+	align-items: center;
+}
+.hjdoecdre {
+	// margin-top: 50%;
+	transform: translateY(50%);
+}
+.ojhgy {
+	.el-dialog {
+		padding-bottom: 40px;
+		padding-top: 10px;
+	}
+	.el-dialog__header {
+		padding-bottom: 20px;
+	}
+	.el-table .cell {
+		line-height: 50px;
+	}
+}
+.hueya{
+	margin-left: 0 !important;
+}
+.iejghiadh{
+	.el-input__inner{
+		padding-right: 0 !important;
+		padding-left: 5px !important;
+	}
+}
+</style>

+ 14 - 1
src/views/system/user/index.vue

@@ -298,7 +298,20 @@
           </el-col>
         </el-row>
         <el-row>
-          <el-col :span="24">
+          <el-col :span="12">
+            <el-form-item label="网格">
+              <el-select v-model="form.roleIds" multiple placeholder="请选择">
+                <el-option
+                  v-for="item in roleOptions"
+                  :key="item.id"
+                  :label="item.roleName"
+                  :value="item.id"
+                  :disabled="item.status == 1"
+                ></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
             <el-form-item label="备注">
               <el-input v-model="form.remark" type="textarea" placeholder="请输入内容"></el-input>
             </el-form-item>

Kaikkia tiedostoja ei voida näyttää, sillä liian monta tiedostoa muuttui tässä diffissä