wangzhe 7 ヶ月 前
コミット
01fbaebed6
45 ファイル変更10422 行追加0 行削除
  1. 88 0
      src/api/gas/area.js
  2. 51 0
      src/api/gas/building.js
  3. 81 0
      src/api/gas/census.js
  4. 51 0
      src/api/gas/explain.js
  5. 66 0
      src/api/gas/house.js
  6. 44 0
      src/api/gas/notice.js
  7. 168 0
      src/api/gas/order.js
  8. 44 0
      src/api/gas/otherEngine.js
  9. 51 0
      src/api/gas/parameter.js
  10. 44 0
      src/api/gas/pipeLength.js
  11. 44 0
      src/api/gas/pipeType.js
  12. 44 0
      src/api/gas/rotation.js
  13. 59 0
      src/api/gas/unit.js
  14. 69 0
      src/api/gas/user.js
  15. 44 0
      src/api/gas/valve.js
  16. 134 0
      src/components/echart/CakeShape.vue
  17. 537 0
      src/views/zdsz_p1/anjian/index.vue
  18. 723 0
      src/views/zdsz_p1/area/index.vue
  19. 290 0
      src/views/zdsz_p1/building/index.vue
  20. 142 0
      src/views/zdsz_p1/census/index-all.vue
  21. 86 0
      src/views/zdsz_p1/census/index1.vue
  22. 83 0
      src/views/zdsz_p1/census/index3.vue
  23. 85 0
      src/views/zdsz_p1/census/index4.vue
  24. 85 0
      src/views/zdsz_p1/census/index5.vue
  25. 85 0
      src/views/zdsz_p1/census/index6.vue
  26. 85 0
      src/views/zdsz_p1/census/index7.vue
  27. 541 0
      src/views/zdsz_p1/census/index8.vue
  28. 86 0
      src/views/zdsz_p1/census/index9.vue
  29. 181 0
      src/views/zdsz_p1/explain/index.vue
  30. 347 0
      src/views/zdsz_p1/house/index.vue
  31. 502 0
      src/views/zdsz_p1/kaishuan/index.vue
  32. 271 0
      src/views/zdsz_p1/notice/index.vue
  33. 945 0
      src/views/zdsz_p1/order/index.vue
  34. 547 0
      src/views/zdsz_p1/order/index1.vue
  35. 243 0
      src/views/zdsz_p1/order/index2.vue
  36. 573 0
      src/views/zdsz_p1/order/index3.vue
  37. 475 0
      src/views/zdsz_p1/otherEngine/index.vue
  38. 162 0
      src/views/zdsz_p1/parameter/index.vue
  39. 250 0
      src/views/zdsz_p1/pipeLength/index.vue
  40. 251 0
      src/views/zdsz_p1/pipeType/index.vue
  41. 270 0
      src/views/zdsz_p1/rotation/index.vue
  42. 319 0
      src/views/zdsz_p1/unit/index.vue
  43. 398 0
      src/views/zdsz_p1/user/index.vue
  44. 240 0
      src/views/zdsz_p1/valve/index.vue
  45. 538 0
      src/views/zdsz_p1/weixiu/index.vue

+ 88 - 0
src/api/gas/area.js

@@ -0,0 +1,88 @@
+import request from '@/utils/request'
+// 小区下拉框
+export function getAreaList() {
+  return request({
+    url: '/gas/area/getArea',
+    method: 'get',
+  })
+}
+// 查询小区列表
+export function listArea(query) {
+  return request({
+    url: '/gas/area/getList',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询小区详细
+export function getArea(id) {
+  return request({
+    url: '/gas/area/' + id,
+    method: 'get'
+  })
+}
+
+// 新增小区
+export function addArea(data) {
+  return request({
+    url: '/gas/area',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改小区
+export function updateArea(data) {
+  return request({
+    url: '/gas/area',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除小区
+export function delArea(id) {
+  return request({
+    url: '/gas/area/' + id,
+    method: 'delete'
+  })
+}
+
+
+// 下载
+export function areaUpload() {
+  return request({
+    url: '/obs/upload',
+    method: 'post',
+  })
+}
+//释放
+export function releaseIs(id) {
+  return request({
+    url: '/gas/area/releaseIs?id=' + id,
+    method: 'get',
+  })
+}
+// 工号验证
+export function getForName(value,id) {
+  return request({
+    url: '/gas/area/getForName?name='+value+'&id='+id,
+    method: 'get',
+  })
+}
+
+// 小区导入滚动条监控接口
+export function flushProgress() {
+  return request({
+    url: '/gas/area/flushProgress',
+    method: 'get',
+  })
+}
+// 小区导入滚动条停止监控接口
+export function clearFlushProgress() {
+  return request({
+    url: '/gas/area/clearFlushProgress',
+    method: 'get',
+  })
+}

+ 51 - 0
src/api/gas/building.js

@@ -0,0 +1,51 @@
+import request from '@/utils/request'
+
+// 查询楼宇列表
+export function listBuilding(query) {
+  return request({
+    url: '/gas/building/getList',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询楼宇详细
+export function getBuilding(id) {
+  return request({
+    url: '/gas/building/' + id,
+    method: 'get'
+  })
+}
+
+// 新增楼宇
+export function addBuilding(data) {
+  return request({
+    url: '/gas/building',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改楼宇
+export function updateBuilding(data) {
+  return request({
+    url: '/gas/building',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除楼宇
+export function delBuilding(id) {
+  return request({
+    url: '/gas/building/' + id,
+    method: 'delete'
+  })
+}
+// 小区下拉框
+export function getArea() {
+  return request({
+    url: '/gas/area/getArea',
+    method: 'get',
+  })
+}

+ 81 - 0
src/api/gas/census.js

@@ -0,0 +1,81 @@
+import request from '@/utils/request'
+
+// 小区下拉框
+export function getArea() {
+  return request({
+    url: '/gas/area/getArea',
+    method: 'get',
+  })
+}
+// 合格/不合格统计-小区
+export function getExamineArea(query) {
+  return request({
+    url: '/gas/area/getExamineArea',
+    method: 'get',
+    params: query
+  })
+}
+
+// 合格/不合格统计-工长
+export function getExamineForeman(query) {
+  return request({
+    url: '/gas/user/getExamineForeman',
+    method: 'get',
+    params: query
+  })
+}
+// 职工下拉框
+export function getWorker() {
+  return request({
+    url: '/gas/user/getWorker',
+    method: 'get',
+  })
+}
+// 合格/不合格统计-职工
+export function getExamineWorker(query) {
+  return request({
+    url: '/gas/user/getExamineWorker',
+    method: 'get',
+    params: query
+  })
+}
+// 服务统计-针对小区
+export function getExamineServe(query) {
+  return request({
+    url: '/gas/area/getExamineServe',
+    method: 'get',
+    params: query
+  })
+}
+//管材类别统计
+export function getExaminePipeType(query) {
+  return request({
+    url: '/gas/order/getExaminePipeType',
+    method: 'get',
+    params: query
+  })
+}
+//管材长度统计
+export function getExaminePipeLength(query) {
+  return request({
+    url: '/gas/order/getExaminePipeLength',
+    method: 'get',
+    params: query
+  })
+}
+//自闭阀类别统计
+export function getExamineValveType(query) {
+  return request({
+    url: '/gas/order/getExamineValveType',
+    method: 'get',
+    params: query
+  })
+}
+//小区汇总统计
+export function getAreaSum(query) {
+  return request({
+    url: '/gas/area/getAreaSum',
+    method: 'get',
+    params: query
+  })
+}

+ 51 - 0
src/api/gas/explain.js

@@ -0,0 +1,51 @@
+import request from '@/utils/request'
+
+// 查询服务说明列表
+export function listExplain(query) {
+  return request({
+    url: '/gas/explain/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询服务说明详细
+export function getExplain(id) {
+  return request({
+    url: '/gas/explain/' + id,
+    method: 'get'
+  })
+}
+
+// 新增服务说明
+export function addExplain(data) {
+  return request({
+    url: '/gas/explain',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改服务说明
+export function updateExplain(data) {
+  return request({
+    url: '/gas/explain',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除服务说明
+export function delExplain(id) {
+  return request({
+    url: '/gas/explain/' + id,
+    method: 'delete'
+  })
+}
+export function getOne(query) {
+  return request({
+    url: '/gas/explain/getOne',
+    method: 'get',
+    params: query
+  })
+}

+ 66 - 0
src/api/gas/house.js

@@ -0,0 +1,66 @@
+import request from '@/utils/request'
+
+// 查询房屋列表
+export function listHouse(query) {
+  return request({
+    url: '/gas/house/getList',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询房屋详细
+export function getHouse(id) {
+  return request({
+    url: '/gas/house/' + id,
+    method: 'get'
+  })
+}
+
+// 新增房屋
+export function addHouse(data) {
+  return request({
+    url: '/gas/house',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改房屋
+export function updateHouse(data) {
+  return request({
+    url: '/gas/house',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除房屋
+export function delHouse(id) {
+  return request({
+    url: '/gas/house/' + id,
+    method: 'delete'
+  })
+}
+// 小区下拉框
+export function getArea() {
+  return request({
+    url: '/gas/area/getArea',
+    method: 'get',
+  })
+}
+// 楼宇下拉框
+export function getBuilding(areaId) {
+  return request({
+    url: '/gas/building/getBuilding?areaId='+ areaId,
+    method: 'get',
+
+  })
+}
+// 单元下拉框
+export function getUnit(buildingId) {
+  return request({
+    url: '/gas/unit/getUnit?buildingId='+ buildingId,
+    method: 'get',
+  })
+}

+ 44 - 0
src/api/gas/notice.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询公告管理列表
+export function listNotice(query) {
+  return request({
+    url: '/gas/notice/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询公告管理详细
+export function getNotice(id) {
+  return request({
+    url: '/gas/notice/' + id,
+    method: 'get'
+  })
+}
+
+// 新增公告管理
+export function addNotice(data) {
+  return request({
+    url: '/gas/notice',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改公告管理
+export function updateNotice(data) {
+  return request({
+    url: '/gas/notice',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除公告管理
+export function delNotice(id) {
+  return request({
+    url: '/gas/notice/' + id,
+    method: 'delete'
+  })
+}

+ 168 - 0
src/api/gas/order.js

@@ -0,0 +1,168 @@
+import request from '@/utils/request'
+
+// 查询工程管理列表
+export function listOrder(query) {
+  return request({
+    url: '/gas/order/getListAll',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询工程管理详细
+export function getOrder(id) {
+  return request({
+    url: '/gas/order/' + id,
+    method: 'get'
+  })
+}
+
+// 新增工程管理
+export function addOrder(data) {
+  return request({
+    url: '/gas/order',
+    method: 'post',
+    data: data
+  })
+}
+
+// 批量合格
+export function submitY(id,reason, versions) {
+  return request({
+    url: '/gas/order/submitY?ids=' + id+'&reason='+reason+'&versions='+versions,
+    method: 'get',
+  })
+}
+// 批量不合格
+export function submitN(id,reason, versions) {
+  return request({
+    url: '/gas/order/submitN?ids=' + id+'&reason='+reason+'&versions='+versions,
+    method: 'get',
+  })
+}
+// 修改工程管理
+export function updateOrder(data) {
+  return request({
+    url: '/gas/order',
+    method: 'put',
+    data: data
+  })
+}
+// 删除工程管理
+export function delOrder(id) {
+  return request({
+    url: '/gas/order/' + id,
+    method: 'delete'
+  })
+}
+// 职工下拉框
+export function getWorker() {
+  return request({
+    url: '/gas/user/getWorker',
+    method: 'get',
+  })
+}
+// 管子长度
+export function getPipeLength() {
+  return request({
+    url: '/gas/pipeLength/getList',
+    method: 'get',
+  })
+}
+// 管子类型
+export function getPipeType() {
+  return request({
+    url: '/gas/pipeType/getList',
+    method: 'get',
+  })
+}
+// 管子类型
+export function getValveType() {
+  return request({
+    url: '/gas/valve/getList',
+    method: 'get',
+  })
+}
+// 小区下拉框
+export function getArea() {
+  return request({
+    url: '/gas/area/getArea',
+    method: 'get',
+  })
+}
+// 楼宇下拉框
+export function getBuilding(areaId) {
+  return request({
+    url: '/gas/building/getBuilding?areaId='+ areaId,
+    method: 'get',
+
+  })
+}
+// 单元下拉框
+export function getUnit(buildingId) {
+  return request({
+    url: '/gas/unit/getUnit?buildingId='+ buildingId,
+    method: 'get',
+  })
+}
+// 房屋下拉框
+export function getHouse(unitId) {
+  return request({
+    url: '/gas/house/getHouse?unitId='+ unitId,
+    method: 'get',
+  })
+}
+// 查询工程审核列表
+export function getListExamine(query) {
+  return request({
+    url: '/gas/order/getListExamine',
+    method: 'get',
+    params: query
+  })
+}
+
+export function getOrderForStatus(value,id) {
+  return request({
+    url: '/gas/order/getOrderForStatus?houseId='+value+'&id='+id,
+    method: 'get',
+  })
+}
+// 统计图点击跳转列表
+export function getListByStatus(query) {
+  return request({
+    url: '/gas/order/getListByStatus',
+    method: 'get',
+    params: query
+  })
+}
+// 批量合格
+export function backup() {
+  return request({
+    url: '/gas/order/backup',
+    method: 'get',
+  })
+}
+//安检列表
+export function getListAnJian(query) {
+  return request({
+    url: '/gas/order/getListAnJian',
+    method: 'get',
+    params: query
+  })
+}
+//维修列表
+export function getListWeiXiu(query) {
+  return request({
+    url: '/gas/order/getListWeiXiu',
+    method: 'get',
+    params: query
+  })
+}
+//开栓列表
+export function getListKaiShuan(query) {
+  return request({
+    url: '/gas/order/getListKaiShuan',
+    method: 'get',
+    params: query
+  })
+}

+ 44 - 0
src/api/gas/otherEngine.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询其他工程列表
+export function listOtherEngine(query) {
+  return request({
+    url: '/gas/otherEngine/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询其他工程详细
+export function getOtherEngine(id) {
+  return request({
+    url: '/gas/otherEngine/' + id,
+    method: 'get'
+  })
+}
+
+// 新增其他工程
+export function addOtherEngine(data) {
+  return request({
+    url: '/gas/otherEngine',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改其他工程
+export function updateOtherEngine(data) {
+  return request({
+    url: '/gas/otherEngine',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除其他工程
+export function delOtherEngine(id) {
+  return request({
+    url: '/gas/otherEngine/' + id,
+    method: 'delete'
+  })
+}

+ 51 - 0
src/api/gas/parameter.js

@@ -0,0 +1,51 @@
+import request from '@/utils/request'
+
+// 查询黑名单参数设置列表
+export function listParameter(query) {
+  return request({
+    url: '/gas/parameter/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询黑名单参数设置详细
+export function getParameter(id) {
+  return request({
+    url: '/gas/parameter/' + id,
+    method: 'get'
+  })
+}
+
+// 新增黑名单参数设置
+export function addParameter(data) {
+  return request({
+    url: '/gas/parameter',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改黑名单参数设置
+export function updateParameter(data) {
+  return request({
+    url: '/gas/parameter',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除黑名单参数设置
+export function delParameter(id) {
+  return request({
+    url: '/gas/parameter/' + id,
+    method: 'delete'
+  })
+}
+export function getOne(query) {
+  return request({
+    url: '/gas/parameter/getOne',
+    method: 'get',
+    params: query
+  })
+}

+ 44 - 0
src/api/gas/pipeLength.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询管子长度列表
+export function listPipeLength(query) {
+  return request({
+    url: '/gas/pipeLength/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询管子长度详细
+export function getPipeLength(id) {
+  return request({
+    url: '/gas/pipeLength/' + id,
+    method: 'get'
+  })
+}
+
+// 新增管子长度
+export function addPipeLength(data) {
+  return request({
+    url: '/gas/pipeLength',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改管子长度
+export function updatePipeLength(data) {
+  return request({
+    url: '/gas/pipeLength',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除管子长度
+export function delPipeLength(id) {
+  return request({
+    url: '/gas/pipeLength/' + id,
+    method: 'delete'
+  })
+}

+ 44 - 0
src/api/gas/pipeType.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询管子类别列表
+export function listPipeType(query) {
+  return request({
+    url: '/gas/pipeType/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询管子类别详细
+export function getPipeType(id) {
+  return request({
+    url: '/gas/pipeType/' + id,
+    method: 'get'
+  })
+}
+
+// 新增管子类别
+export function addPipeType(data) {
+  return request({
+    url: '/gas/pipeType',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改管子类别
+export function updatePipeType(data) {
+  return request({
+    url: '/gas/pipeType',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除管子类别
+export function delPipeType(id) {
+  return request({
+    url: '/gas/pipeType/' + id,
+    method: 'delete'
+  })
+}

+ 44 - 0
src/api/gas/rotation.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询首页轮播图列表
+export function listRotation(query) {
+  return request({
+    url: '/gas/rotation/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询首页轮播图详细
+export function getRotation(id) {
+  return request({
+    url: '/gas/rotation/' + id,
+    method: 'get'
+  })
+}
+
+// 新增首页轮播图
+export function addRotation(data) {
+  return request({
+    url: '/gas/rotation',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改首页轮播图
+export function updateRotation(data) {
+  return request({
+    url: '/gas/rotation',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除首页轮播图
+export function delRotation(id) {
+  return request({
+    url: '/gas/rotation/' + id,
+    method: 'delete'
+  })
+}

+ 59 - 0
src/api/gas/unit.js

@@ -0,0 +1,59 @@
+import request from '@/utils/request'
+
+// 查询单元列表
+export function listUnit(query) {
+  return request({
+    url: '/gas/unit/getList',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询单元详细
+export function getUnit(id) {
+  return request({
+    url: '/gas/unit/' + id,
+    method: 'get'
+  })
+}
+
+// 新增单元
+export function addUnit(data) {
+  return request({
+    url: '/gas/unit',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改单元
+export function updateUnit(data) {
+  return request({
+    url: '/gas/unit',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除单元
+export function delUnit(id) {
+  return request({
+    url: '/gas/unit/' + id,
+    method: 'delete'
+  })
+}
+// 小区下拉框
+export function getArea() {
+  return request({
+    url: '/gas/area/getArea',
+    method: 'get',
+  })
+}
+// 楼宇下拉框
+export function getBuilding(areaId) {
+  return request({
+    url: '/gas/building/getBuilding?areaId='+ areaId,
+    method: 'get',
+
+  })
+}

+ 69 - 0
src/api/gas/user.js

@@ -0,0 +1,69 @@
+import request from '@/utils/request'
+
+// 查询用户列表
+export function listUser(query) {
+  return request({
+    url: '/gas/user/getList',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询用户详细
+export function getUser(id) {
+  return request({
+    url: '/gas/user/' + id,
+    method: 'get'
+  })
+}
+
+// 新增用户
+export function addUser(data) {
+  return request({
+    url: '/gas/user',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改用户
+export function updateUser(data) {
+  return request({
+    url: '/gas/user',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除用户
+export function delUser(id) {
+  return request({
+    url: '/gas/user/' + id,
+    method: 'delete'
+  })
+}
+
+
+// 黑名单管理列表
+export function getBlacklist(query) {
+  return request({
+    url: '/gas/user/getBlacklist',
+    method: 'get',
+    params: query
+  })
+}
+
+// 手机号验证
+export function getForPhone(value,id) {
+  return request({
+    url: '/gas/user/getForPhone?phone='+value+'&id='+id,
+    method: 'get',
+  })
+}
+// 工号验证
+export function getForJobnum(value,id) {
+  return request({
+    url: '/gas/user/getForJobnum?jobNum='+value+'&id='+id,
+    method: 'get',
+  })
+}

+ 44 - 0
src/api/gas/valve.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询自闭阀类别列表
+export function listValve(query) {
+  return request({
+    url: '/gas/valve/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询自闭阀类别详细
+export function getValve(id) {
+  return request({
+    url: '/gas/valve/' + id,
+    method: 'get'
+  })
+}
+
+// 新增自闭阀类别
+export function addValve(data) {
+  return request({
+    url: '/gas/valve',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改自闭阀类别
+export function updateValve(data) {
+  return request({
+    url: '/gas/valve',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除自闭阀类别
+export function delValve(id) {
+  return request({
+    url: '/gas/valve/' + id,
+    method: 'delete'
+  })
+}

+ 134 - 0
src/components/echart/CakeShape.vue

@@ -0,0 +1,134 @@
+<template>
+  <!-- 饼状图 -->
+  <div class="page-header-index-wide">
+      <div :id="id" :text="text" :subtext="subtext" :style="{width: '100%', height: `${height}px`}"></div>
+  </div>
+</template>
+
+<script>
+export default {
+  name: 'CakeShape',
+  components: {},
+  props: {
+    id: {
+      type: String,
+      default: 'myChart'
+    },
+    text: {
+      type: String,
+      default: ''
+    },
+    subtext: {
+      type: String,
+      default: ''
+    },
+    // 图表高度
+    height: {
+      type: Number,
+      default: 500
+    },
+    data: {
+      type: [Object, Array],
+      default: () => []
+    },
+    radius: {
+      type: Array,
+      default: () => ['0%', '80%']
+    },
+    center: {
+      type: Array,
+      default: () => ['50%', '50%']
+    },
+    fontSize: {
+      type: Number,
+      default: () => 10
+    },
+    textStyle: {
+      type: String,
+      default: '#000000'
+    },
+    // 图例方向
+    orientOrient: {
+      type: String,
+      default: 'vertical'
+    },
+
+  },
+  data() {
+    return {
+      orgOptions: {}
+    }
+  },
+  mounted() {
+  },
+  created() {
+  },
+  methods: {
+
+    drawLine(res, queryParams,bool) {
+      let that = this
+      // 基于准备好的dom,初始化echarts实例
+      let myChart = this.$echarts.init(document.getElementById(this.id))
+      let data = {
+        legend: {
+          orient: this.orientOrient,
+          left: 'left',
+          textStyle: {
+            color: this.textStyle //字体颜色
+          },
+        },
+        title : {
+          text: this.text,
+          subtext: this.subtext,
+          x:'center'
+        },
+        tooltip: {
+          trigger: 'item',
+        },
+        series: [{
+          type: 'pie',
+          radius: this.radius,
+          center: ['50%', '50%'],
+          // label: {
+          //   show: true,
+          //   position: 'inside',
+          //   textStyle: {
+          //     color: this.textStyle //字体颜色
+          //   },
+          //   formatter: (params) => {
+          //     return `${params.percent}%`
+          //   }
+          // },
+          data: res
+        }]
+      }
+      if (bool === true){
+        myChart.on('click', function (param) {
+          let query={
+            areaId: queryParams.areaId,
+            foremanId:queryParams.foremanId,
+            workerId:queryParams.workerId,
+            value:param.data.name,
+          }
+          that.$router.push({
+            path:'/census/census8',
+            query
+          })
+          // window.location.href = 'https://www.baidu.com/';
+        });
+      }
+      // 绘制图表
+      myChart.setOption(data)
+      document.getElementById(this.id).setAttribute('_echarts_instance_', '')
+      window.addEventListener('resize', () => {
+        myChart.resize()
+      })
+    },
+  }
+};
+</script>
+
+<style lang="less" scoped>
+
+</style>
+

+ 537 - 0
src/views/zdsz_p1/anjian/index.vue

@@ -0,0 +1,537 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="行政区" prop="district" >
+        <el-select v-model="queryParams.district" placeholder="请选择行政区">
+          <el-option
+            v-for="dict in dict.type.district"
+            :key="dict.value"
+            :label="dict.label"
+            :value="dict.value"
+          ></el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item  label="所属小区" prop="areaId">
+        <el-select v-model="queryParams.areaId" filterable clearable placeholder="请选择所属小区"  @change="getBuilding(queryParams.areaId),resetqueryform()">
+          <el-option v-for="item in areaList" :key="item.id" :value="item.id" :label="item.name">{{ item.name }}</el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item  label="所属楼宇" prop="buildingId">
+        <el-select v-model="queryParams.buildingId" filterable clearable placeholder="请选择楼宇" @change="getUnit(queryParams.buildingId),resetqueryunitform()">
+          <el-option v-for="item in buildingList" :key="item.id" :value="item.id" :label="item.name">{{ item.name }}</el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item  label="所属单元" prop="unitId">
+        <el-select v-model="queryParams.unitId" filterable clearable placeholder="请选择单元" @change="getHouse(queryParams.unitId),resetqueryhouseform()">
+          <el-option v-for="item in unitList" :key="item.id" :value="item.id" :label="item.name">{{ item.name }}</el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item  label="房屋" prop="houseId">
+        <el-select v-model="queryParams.houseId" filterable clearable placeholder="请选择房屋">
+          <el-option v-for="item in houseList" :key="item.id" :value="item.id" :label="item.name">{{ item.name }}</el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="职工" prop="userId">
+        <el-select v-model="queryParams.userId" filterable placeholder="请选择职工">
+          <el-option v-for="item in workerList" :key="item.id" :value="item.id" :label="item.name">{{
+              item.name
+            }}
+          </el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="开始时间" prop="starTime">
+        <el-date-picker clearable size="small"
+                        v-model="queryParams.starTime"
+                        type="date"
+                        value-format="yyyy-MM-dd"
+                        placeholder="选择日期">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="结束时间" prop="endTime">
+        <el-date-picker clearable size="small"
+                        v-model="queryParams.endTime"
+                        type="date"
+                        value-format="yyyy-MM-dd"
+                        placeholder="选择日期">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="工号" prop="jobNum">
+        <el-input
+          v-model="queryParams.jobNum"
+          :maxlength="4"
+          placeholder="请输入工号前四位"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <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-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="['gas:order:add']"
+        >新增
+        </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="['gas:order:remove']"
+        >删除</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          :loading="exportLoading"
+          @click="handleExport"
+          v-hasPermi="['gas:anjian:getListAnJianExport']"
+        >导出</el-button>
+      </el-col>
+<!--      <el-col :span="1.5">-->
+<!--        <el-button-->
+<!--          type="warning"-->
+<!--          plain-->
+<!--          icon="el-icon-download"-->
+<!--          size="mini"-->
+<!--          :loading="exportLoading"-->
+<!--          @click="backup"-->
+<!--          v-hasPermi="['gas:order:export']"-->
+<!--        >备份</el-button>-->
+<!--      </el-col>-->
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="orderList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center"/>
+      <el-table-column label="职工" align="center" prop="userName"/>
+      <el-table-column label="房屋" align="center" prop="house"/>
+      <el-table-column label="创建时间" align="center" prop="time" />
+      <el-table-column label="修改时间" align="center" prop="updateTime" />
+      <el-table-column label="照片" align="center" prop="photoList">
+        <template slot-scope="scope">
+          <el-image
+            v-if="scope.row.photoList.length> 0"
+            style="width: 100px; height: 100px"
+            :src="scope.row.photoList[0]"
+            :preview-src-list="scope.row.photoList">
+          </el-image>
+        </template>
+      </el-table-column>
+      <el-table-column label="是否合格" align="center" prop="whether"/>
+      <el-table-column label="备注" align="center" prop="remark"/>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['gas:order:edit']"
+          >修改
+          </el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['gas:order:remove']"
+          >删除</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="open" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="照片" prop="photoList">
+          <imageUpload v-model="form.photoList"/>
+        </el-form-item>
+        <el-form-item label="职工" prop="userId">
+          <el-select v-model="form.userId" filterable placeholder="请选择职工">
+            <el-option v-for="item in workerList" :key="item.id" :value="item.id" :label="item.name">{{
+                item.name
+              }}
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="所属小区" prop="areaId">
+          <el-select v-model="form.areaId" filterable placeholder="请选择小区"
+                     @change="getBuilding(form.areaId),resetform()">
+            <el-option v-for="item in areaList" :key="item.id" :value="item.id" :label="item.name">{{
+                item.name
+              }}
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="所属楼宇" prop="buildingId">
+          <el-select v-model="form.buildingId" filterable placeholder="请选择楼宇"
+                     @change="getUnit(form.buildingId),resetunitform()">
+            <el-option v-for="item in buildingList" :key="item.id" :value="item.id" :label="item.name">{{
+                item.name
+              }}
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="所属单元" prop="unitId">
+          <el-select v-model="form.unitId" filterable placeholder="请选择单元"
+                     @change="getHouse(form.unitId),resethouseform()">
+            <el-option v-for="item in unitList" :key="item.id" :value="item.id" :label="item.name">{{
+                item.name
+              }}
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="房屋" prop="houseId">
+          <el-select v-model="form.houseId" filterable placeholder="请选择房屋">
+            <el-option v-for="item in houseList" :key="item.id" :value="item.id" :label="item.name">{{item.name}}
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="是否合格" prop="whether">
+          <el-select v-model="form.whether" filterable placeholder="请选择">
+            <el-option v-for="item in whetherList" :value="item.value" :label="item.label">{{item.label}}</el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="备注" prop="remark">
+          <el-input v-model="form.remark" type="textarea" placeholder="请输入内容"/>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button :loading="buttonLoading" type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import {
+  listOrder,
+  getOrderForStatus,
+  getListAnJian,
+  getHouse,
+  backup,
+  getUnit,
+  getArea,
+  getBuilding,
+  getOrder,
+  getWorker,
+  getPipeType,
+  getValveType,
+  getPipeLength,
+  delOrder,
+  addOrder,
+  submitY,
+  submitN,
+  updateOrder
+} from "@/api/gas/order";
+
+export default {
+  name: "Order",
+  dicts: ['district'],
+  data() {
+    return {
+      whetherList:[
+        {
+          value: '是',
+          label: '是',
+        },
+        {
+          value: '否',
+          label: '否',
+        }
+      ],
+      // 按钮loading
+      buttonLoading: false,
+      // 遮罩层
+      loading: true,
+      // 导出遮罩层
+      exportLoading: false,
+      //职工下拉
+      workerList: [],
+      pipeLengthList: [],
+      pipeTypeList: [],
+      valveTypeList: [],
+      areaList: [],
+      buildingList: [],
+      unitList: [],
+      houseList: [],
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 工程管理表格数据
+      orderList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      open1: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        serviceType: undefined,
+        starTime: undefined,
+        endTime: undefined,
+        areaId: undefined,
+        buildingId: undefined,
+        unitId: undefined,
+        houseId: undefined,
+        userId: undefined,
+        orderStatus: undefined,
+        examineStatus: undefined,
+        jobNum: undefined,
+      },
+      // 表单参数
+      form: {
+        serviceType: '004',
+        orderStatus:'002',
+        examineStatus:'001'
+      },
+      // 表单校验
+      rules: {
+        photoList: [
+          {required: true, message: "请上传照片", trigger: "change"}
+        ],
+        userId: [
+          {required: true, message: "职工不能为空", trigger: "blur"}
+        ],
+        houseId: [
+          {required: true, message: "房屋不能为空", trigger: "change"}
+
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+    this.getWorker();
+    this.getArea();
+  },
+  methods: {
+    backup() {
+      backup().then(response => {
+      });
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.$download.excel('/gas/order/getListAnJianExport', this.queryParams);
+    },
+    /** 查询工程管理列表 */
+    getList() {
+      this.loading = true;
+      getListAnJian(this.queryParams).then(response => {
+        this.orderList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    /**职工下拉框*/
+    getWorker() {
+      getWorker().then(response => {
+        this.workerList = response.data;
+      });
+    },
+
+    /**小区下拉框*/
+    getArea() {
+      getArea().then(response => {
+        this.areaList = response.data;
+      });
+    },
+    /**楼宇下拉框*/
+    getBuilding(areaId) {
+      this.form.areaName =  this.areaList.filter(item => item.id == areaId )[0].name
+      getBuilding(areaId).then(response => {
+        this.buildingList = response.data;
+        this.getUnit(this.form.buildingId);
+      });
+    },
+    getUnit(buildingId) {
+      this.form.buildingName =  this.buildingList.filter(item => item.id == buildingId )[0].name
+      getUnit(buildingId).then(response => {
+        this.unitList = response.data;
+        this.getHouse(this.form.unitId);
+      });
+    },
+    getHouse(unitId) {
+      this.form.unitName =  this.unitList.filter(item => item.id == unitId )[0].name
+      getHouse(unitId).then(response => {
+        this.houseList = response.data;
+      });
+    },
+    /**
+     * 联级清空
+     */
+    resetform() {
+      this.form.buildingId = undefined;
+      this.form.unitId = undefined;
+      this.form.houseId = undefined;
+    },
+    resetunitform() {
+      this.form.unitId = undefined;
+      this.form.houseId = undefined;
+    },
+    resethouseform() {
+      this.form.houseId = undefined;
+    },
+    resetqueryform(){
+      this.queryParams.buildingId = undefined;
+      this.queryParams.unitId = undefined;
+      this.queryParams.houseId = undefined;
+    },
+    resetqueryunitform(){
+      this.queryParams.unitId = undefined;
+      this.queryParams.houseId = undefined;
+    },
+    resetqueryhouseform(){
+      this.queryParams.houseId = undefined;
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: undefined,
+        serviceType: '004',
+        photoList: [],
+        userId: undefined,
+        unitId: undefined,
+        buildingId: undefined,
+        areaId: undefined,
+        houseId: undefined,
+        remark: undefined,
+        delFlag: undefined,
+        createBy: undefined,
+        createTime: undefined,
+        updateBy: undefined,
+        updateTime: undefined,
+        orderStatus:'002',
+        examineStatus:'001',
+        whether:undefined
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      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.open = true;
+      this.title = "添加";
+      this.getWorker();
+      this.getArea();
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      this.getWorker();
+      this.getArea();
+      const id = row.id || this.ids
+      getOrder(id).then(response => {
+        this.loading = false;
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改";
+        this.getBuilding(this.form.areaId);
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          this.buttonLoading = true;
+          if (this.form.id != null) {
+            if (typeof this.form.photoList==='string'){
+              this.form.photoList = this.form.photoList.split(',')
+            }
+            updateOrder(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+              this.getWorker();
+            }).finally(() => {
+              this.buttonLoading = false;
+            });
+          } else {
+            this.form.photoList = this.form.photoList.split(',')
+            addOrder(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+              this.getWorker();
+            }).finally(() => {
+              this.buttonLoading = false;
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除工程管理编号为"' + ids + '"的数据项?').then(() => {
+        this.loading = true;
+        return delOrder(ids);
+      }).then(() => {
+        this.loading = false;
+        this.getList();
+        this.getWorker();
+        this.$modal.msgSuccess("删除成功");
+      }).finally(() => {
+        this.loading = false;
+      });
+    },
+
+  }
+};
+</script>

+ 723 - 0
src/views/zdsz_p1/area/index.vue

@@ -0,0 +1,723 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="小区名" prop="name">
+        <el-input
+          v-model="queryParams.name"
+          placeholder="请输入小区名"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="行政区" prop="district">
+        <el-select v-model="queryParams.district" placeholder="请选择行政区" clearable style="width: 100%">
+          <el-option
+            v-for="dict in dict.type.district"
+            :key="dict.value"
+            :label="dict.label"
+            :value="dict.value"
+            @keyup.enter.native="handleQuery"
+          />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="核算行政区" prop="calculateDistrictId" label-width="100px">
+        <el-select v-model="queryParams.calculateDistrictId" placeholder="请选择核算行政区" clearable style="width: 100%">
+          <el-option
+            v-for="dict in dict.type.district"
+            :key="dict.value"
+            :label="dict.label"
+            :value="dict.value"
+            @keyup.enter.native="handleQuery"
+          />
+        </el-select>
+      </el-form-item>
+      <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-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="['gas:area:add']"
+        >新增
+        </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="['gas:area:remove']"
+        >删除
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          :loading="exportLoading"
+          @click="handleExport"
+          v-hasPermi="['gas:area:export']"
+        >导出
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          :loading="exportLoading"
+          @click="handleExports"
+        >所属包导出
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="info"
+          plain
+          icon="el-icon-upload2"
+          size="mini"
+          @click="handleImport"
+          v-hasPermi="['system:user:import']"
+        >导入
+        </el-button>
+      </el-col>
+      <!--<el-col :span="1.5">-->
+      <!--<el-button-->
+      <!--type="info"-->
+      <!--plain-->
+      <!--icon="el-icon-upload2"-->
+      <!--size="mini"-->
+      <!--@click="examinehandleImport"-->
+      <!--v-hasPermi="['system:user:import']"-->
+      <!--&gt;批量合格-->
+      <!--</el-button>-->
+      <!--</el-col>-->
+      <el-col :span="1.5">
+        <el-button
+          type="info"
+          plain
+          icon="el-icon-upload2"
+          size="mini"
+          @click="handleUpload"
+          v-hasPermi="['system:user:import']"
+        >下载
+        </el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="areaList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center"/>
+      <el-table-column label="小区名" align="center" prop="name"/>
+      <el-table-column label="完成率" align="center" prop="rate"/>
+      <el-table-column label="释放状态" align="center" prop="releaseIs">
+        <template slot-scope="scope">
+          <dict-tag :options="dict.type.release_status" :value="scope.row.releaseIs"/>
+        </template>
+      </el-table-column>
+      <el-table-column label="行政区" align="center" prop="calculateDistrictName">
+        <template slot-scope="scope">
+          <dict-tag :options="dict.type.district" :value="scope.row.district"/>
+        </template>
+      </el-table-column>
+      <el-table-column label="核算行政区" align="center" prop="calculateDistrictName">
+        <template slot-scope="scope">
+          <dict-tag :options="dict.type.district" :value="scope.row.calculateDistrictId"/>
+        </template>
+      </el-table-column>
+
+      <el-table-column label="小区规模" align="center" prop="areaSize"/>
+
+      <el-table-column label="所属包" align="center" prop="affiliatedPackage">
+        <template slot-scope="scope">
+          <dict-tag :options="dict.type.affiliated_package" :value="scope.row.affiliatedPackage"/>
+        </template>
+      </el-table-column>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-download"
+            @click="handleExportHouse(scope.row)"
+            v-hasPermi="['gas:area:edit']"
+          >导出完工详情
+          </el-button>
+          <el-button v-if="scope.row.releaseIs ==='001'"
+                     size="mini"
+                     type="text"
+                     icon="el-icon-edit"
+                     @click="handleRelease(scope.row)"
+                     v-hasPermi="['gas:area:edit']"
+          >释放
+          </el-button>
+          <el-button v-if="scope.row.releaseIs ==='001'"
+                     type="text"
+                     plain
+                     icon="el-icon-download"
+                     size="mini"
+                     @click="handleUpload(scope.row)"
+                     v-hasPermi="['gas:area:edit']"
+          >下载
+          </el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['gas:area:edit']"
+          >编辑
+          </el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['gas:area:remove']"
+          >删除
+          </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="open" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="100px">
+        <el-form-item label="行政区" prop="district" >
+          <el-select v-model="form.district" placeholder="请选择行政区">
+            <el-option
+              v-for="dict in dict.type.district"
+              :key="dict.value"
+              :label="dict.label"
+              :value="dict.value"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="小区名" prop="name">
+          <el-input v-model="form.name" placeholder="请输入小区名" :disabled="disabled"/>
+        </el-form-item>
+        <el-form-item label="负责工长" prop="userId">
+          <el-select v-model="form.userId" filterable placeholder="请选择负责工长" style="width: 100%">
+            <el-option v-for="item in foremanList" :key="item.id" :value="item.id" :label="item.name">{{
+                item.name
+              }}
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="核算行政区" prop="calculateDistrictId">
+          <el-select v-model="form.calculateDistrictId" placeholder="请选择核算行政区" clearable style="width: 100%">
+            <el-option
+              v-for="dict in dict.type.district"
+              :key="dict.value"
+              :label="dict.label"
+              :value="dict.value"
+            />
+          </el-select>
+        </el-form-item>
+        <el-form-item label="小区规模" prop="areaSize">
+          <el-input-number v-model="form.areaSize" style="width: 100%"></el-input-number>
+        </el-form-item>
+        <el-form-item label="所属包" prop="affiliatedPackage">
+          <el-select v-model="form.affiliatedPackage" placeholder="请选择所属包" clearable style="width: 100%">
+            <el-option
+              v-for="dict in dict.type.affiliated_package"
+              :key="dict.value"
+              :label="dict.label"
+              :value="dict.value"
+            />
+          </el-select>
+        </el-form-item>
+      </el-form>
+
+      <div slot="footer" class="dialog-footer">
+        <el-button :loading="buttonLoading" type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+    <!-- 用户导入对话框 -->
+    <el-dialog :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body>
+      <el-upload
+        ref="upload"
+        :limit="1"
+        accept=".xlsx, .xls"
+        :headers="upload.headers"
+        :action="upload.url + '?updateSupport=' + upload.updateSupport"
+        :disabled="upload.isUploading"
+        :on-progress="handleFileUploadProgress"
+        :on-success="handleFileSuccess"
+        :auto-upload="false"
+        drag
+      >
+        <i class="el-icon-upload"></i>
+        <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
+        <div class="el-upload__tip text-center" slot="tip">
+          <!--<div class="el-upload__tip" slot="tip">-->
+          <!--<el-checkbox v-model="upload.updateSupport"/>-->
+          <!--是否更新已经存在的用户数据-->
+          <!--</div>-->
+          <span>仅允许导入xls、xlsx格式文件。</span>
+          <el-link type="primary" :underline="false" style="font-size:12px;vertical-align: baseline;"
+                   @click="importTemplate"
+          >下载模板
+          </el-link>
+        </div>
+      </el-upload>
+      <div style="padding-top: 15px;line-height: 25px;font-size: 14px;">
+        完成度:{{ bfb }}%
+        <progress max="100" :value="bfb" style="width: 200px;height: 18px;"></progress>
+        <br>
+        导入结果:{{ jdtMsg }}
+      </div>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitFileForm">确 定</el-button>
+        <el-button @click="upload.open = false;bfb='0';jdtMsg=''">取 消</el-button>
+      </div>
+    </el-dialog>
+    <!--<el-dialog :title="examineupload.examinetitle" :visible.sync="examineupload.examineopen" width="400px" append-to-body>-->
+    <!--<el-upload-->
+    <!--ref="examineupload"-->
+    <!--:limit="1"-->
+    <!--accept=".xlsx, .xls"-->
+    <!--:headers="examineupload.examineheaders"-->
+    <!--:action="examineupload.examineurl + '?updateSupport=' + examineupload.examineupdateSupport"-->
+    <!--:disabled="examineupload.examineisUploading"-->
+    <!--:on-progress="examineishandleFileUploadProgress"-->
+    <!--:on-success="examineishandleFileSuccess"-->
+    <!--:auto-upload="false"-->
+    <!--drag-->
+    <!--&gt;-->
+    <!--<i class="el-icon-upload"></i>-->
+    <!--<div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>-->
+    <!--<div class="el-upload__tip text-center" slot="tip">-->
+    <!--<div class="el-upload__tip" slot="tip">-->
+    <!--<el-checkbox v-model="examineupload.examineupdateSupport"/>-->
+    <!--是否更新已经存在的用户数据-->
+    <!--</div>-->
+    <!--<span>仅允许导入xls、xlsx格式文件。</span>-->
+    <!--<el-link type="primary" :underline="false" style="font-size:12px;vertical-align: baseline;"-->
+    <!--@click="importTemplate">下载模板-->
+    <!--</el-link>-->
+    <!--</div>-->
+    <!--</el-upload>-->
+    <!--<div slot="footer" class="dialog-footer">-->
+    <!--<el-button type="primary" @click="examinesubmitFileForm">确 定</el-button>-->
+    <!--<el-button @click="examineupload.examineopen = false">取 消</el-button>-->
+    <!--</div>-->
+    <!--</el-dialog>-->
+
+
+    <!-- 导出对话框 -->
+    <el-dialog title="所属包导出" :visible.sync="opens" width="500px" append-to-body>
+      <el-form ref="form" :model="forms" :rules="ruless" label-width="100px">
+        <el-form-item label="核算行政区" prop="calculateDistrictId">
+          <el-select v-model="forms.calculateDistrictId" placeholder="请选择核算行政区" clearable style="width: 100%">
+            <el-option
+              v-for="dict in dict.type.district"
+              :key="dict.value"
+              :label="dict.label"
+              :value="dict.value"
+            />
+          </el-select>
+        </el-form-item>
+        <el-form-item label="所属包" prop="affiliatedPackage">
+          <el-select v-model="forms.affiliatedPackage" placeholder="请选择所属包" clearable style="width: 100%">
+            <el-option
+              v-for="dict in dict.type.affiliated_package"
+              :key="dict.value"
+              :label="dict.label"
+              :value="dict.value"
+            />
+          </el-select>
+        </el-form-item>
+      </el-form>
+
+      <div slot="footer" class="dialog-footer">
+        <el-button :loading="buttonLoading" type="primary" @click="dowExports">确 定</el-button>
+        <el-button @click="cancels">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import {
+  listArea,
+  releaseIs,
+  getArea,
+  delArea,
+  addArea,
+  updateArea,
+  areaUpload,
+  flushProgress,
+  clearFlushProgress,
+  getAreaList
+} from '@/api/gas/area'
+import { getToken } from '@/utils/auth'
+import { getForName } from '../../../api/gas/area'
+
+export default {
+  name: 'Area',
+  dicts: ['release_status', 'affiliated_package', 'district'],
+  data() {
+    // 工号唯一性验证
+    let validateAnother = (rule, value, callback) => {
+      if (value) {
+        getForName(value, this.form.id).then(res => {
+          if (res.data === false) {
+            callback('该小区已存在')
+          } else {
+            callback()
+          }
+        }).catch(err => {
+          callback(new Error(err.data.msg))
+        })
+      } else {
+        callback()
+      }
+    }
+    return {
+      //进度条
+      timeInterval: null,
+      bfb: '0',
+      jdtMsg: '',
+      // 按钮loading
+      buttonLoading: false,
+      // 遮罩层
+      loading: true,
+      // 导出遮罩层
+      exportLoading: false,
+      // 选中数组
+      ids: [],
+      disabled: false,
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 小区表格数据
+      areaList: [],
+      areaLists: [],
+      // 弹出层标题
+      title: '',
+      // 是否显示弹出层
+      open: false,
+      opens: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        name: undefined,
+        district: undefined,
+        calculateDistrictId: undefined,
+        userId: undefined
+      },
+      foremanList: [],
+      // 表单参数
+      form: {},
+      forms: {
+        pageNum: 1,
+        pageSize: 10
+      },
+      // 用户导入参数
+      upload: {
+        // 是否显示弹出层(用户导入)
+        open: false,
+        // 弹出层标题(用户导入)
+        title: '',
+        // 是否禁用上传
+        isUploading: false,
+        // 是否更新已经存在的用户数据
+        updateSupport: 0,
+        // 设置上传的请求头部
+        headers: { Authorization: 'Bearer ' + getToken() },
+        // 上传的地址
+        url: process.env.VUE_APP_BASE_API + '/gas/area/importData'
+      },
+      // examineupload: {
+      //   // 是否显示弹出层(用户导入)
+      //   examineopen: false,
+      //   // 弹出层标题(用户导入)
+      //   examinetitle: "",
+      //   // 是否禁用上传
+      //   examineisUploading: false,
+      //   // 是否更新已经存在的用户数据
+      //   examineupdateSupport: 0,
+      //   // 设置上传的请求头部
+      //   examineheaders: {Authorization: "Bearer " + getToken()},
+      //   // 上传的地址
+      //   examineurl: process.env.VUE_APP_BASE_API + "/gas/area/importApprovalExcel"
+      // },
+      // 表单校验
+      rules: {
+        name: [
+          { required: true, message: '小区名不能为空', trigger: 'blur' },
+          { required: true, trigger: 'blur', validator: validateAnother }
+        ],
+        calculateDistrictId: [{ required: true, message: '请选择核算行政区', trigger: 'change' }],
+        areaSize: [{ required: true, message: '请输入小区规模', trigger: 'blur' }],
+        affiliatedPackage: [{ required: true, message: '请选择所属包', trigger: 'change' }]
+      },
+      // 表单校验
+      ruless: {
+        calculateDistrictId: [{ required: true, message: '请选择核算行政区', trigger: 'change' }],
+        affiliatedPackage: [{ required: true, message: '请选择所属包', trigger: 'change' }]
+      }
+    }
+  },
+  created() {
+    this.getList()
+    this.getAreaList()
+  },
+  methods: {
+    setCalculateDistrictName(data) {
+      this.form.calculateDistrictName = this.areaLists.filter(item => item.id == data)[0].name
+      console.log(this.form.calculateDistrictName)
+    },
+    /**小区下拉框*/
+    getAreaList() {
+      getAreaList().then(response => {
+        this.areaLists = response.data
+      })
+    },
+    /** 查询小区列表 */
+    getList() {
+      this.loading = true
+      listArea(this.queryParams).then(response => {
+        this.areaList = response.rows
+        this.total = response.total
+        this.loading = false
+      })
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false
+      this.reset()
+    },
+    // 取消按钮
+    cancels() {
+      this.opens = false
+      this.forms = {}
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: undefined,
+        name: undefined,
+        userId: undefined,
+        delFlag: undefined,
+        createBy: undefined,
+        createTime: undefined,
+        updateBy: undefined,
+        updateTime: undefined,
+        district:undefined,
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1
+      this.getList()
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      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.open = true
+      this.title = '添加小区'
+      this.disabled = false
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.loading = true
+      this.reset()
+      this.disabled = true
+      const id = row.id || this.ids
+      getArea(id).then(response => {
+        this.loading = false
+        this.form = response.data
+        this.open = true
+        this.title = '修改小区'
+      })
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs['form'].validate(valid => {
+        if (valid) {
+          this.buttonLoading = true
+          if (this.form.id != null) {
+            updateArea(this.form).then(response => {
+              this.$modal.msgSuccess('修改成功')
+              this.open = false
+              this.getList()
+            }).finally(() => {
+              this.buttonLoading = false
+            })
+          } else {
+            addArea(this.form).then(response => {
+              if (response.data) {
+                this.$modal.msgSuccess('新增成功')
+                this.open = false
+                this.getList()
+              } else {
+                this.$modal.msgError('小区名称不允许重复,请重新填写!')
+              }
+            }).finally(() => {
+              this.buttonLoading = false
+            })
+          }
+        }
+      })
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids
+      this.$modal.confirm('是否确认删除小区编号为"' + ids + '"的数据项?').then(() => {
+        this.loading = true
+        return delArea(ids)
+      }).then(() => {
+        this.loading = false
+        this.getList()
+        this.$modal.msgSuccess('删除成功')
+      }).finally(() => {
+        this.loading = false
+      })
+    },
+    //释放
+    handleRelease(row) {
+      this.$modal.confirm('请确认照片是否下载!释放过程不可逆!是否释放?').then(() => {
+        this.loading = true
+        return releaseIs(row.id)
+      }).then(() => {
+        this.loading = false
+        this.getList()
+        this.getArea()
+        this.$modal.msgSuccess('释放成功')
+      }).finally(() => {
+        this.loading = false
+      })
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.$download.excel('/gas/area/export', this.queryParams)
+    },
+    /** 导出按钮操作 */
+    handleExports() {
+      this.opens = true
+      this.forms = {}
+    },
+    dowExports() {
+      this.$download.excel('/gas/area/exports', this.forms)
+      this.opens = false
+    },
+    /** 导出完工率按钮操作 */
+    handleExportHouse(row) {
+      this.$download.excel('/gas/area/getExportHouse?areaId=' + row.id)
+    },
+    /** 导入按钮操作 */
+    handleImport() {
+      this.upload.title = '用户导入'
+      this.upload.open = true
+    },
+    handleUpload(row) {
+      window.location.href = 'https://cczdsz.com/prod-api/gas/area/upload?id=' + row.id
+      // window.open("http://sz.cxcloudsci.com/prod-api/gas/area/upload?id=" + row.id, '_blank')
+      // window.open("http://localhost:8080/gas/area/upload?id=" + row.id, '_blank')
+      // window.location.href="http://localhost:8080/gas/area/upload?id=" + row.id;
+    },
+    /** 下载模板操作 */
+    importTemplate() {
+      this.$download.excel('/gas/area/importTemplate')
+    },
+    // 文件上传中处理
+    handleFileUploadProgress(event, file, fileList) {
+      this.upload.isUploading = true
+    },
+    // 文件上传成功处理
+    handleFileSuccess(response, file, fileList) {
+      // this.upload.open = false;
+      this.upload.isUploading = false
+      this.$refs.upload.clearFiles()
+      // this.$alert(response.msg, "导入结果", {dangerouslyUseHTMLString: true});
+      // this.jdtMsg=response.msg;
+      this.getList()
+    },
+    // 提交上传文件
+    submitFileForm() {
+      const ther = this
+      this.timeInterval = setInterval(function() {
+        ther.flushProgress()
+      }, 1500)
+      this.$refs.upload.submit()
+    },
+    // 提交上传文件
+    flushProgress() {
+      flushProgress().then(response => {
+        this.bfb = parseInt(response.data.bfb) >= 100 ? 100 : response.data.bfb
+        this.jdtMsg = response.data.message
+        if (response.data.message != null && response.data.message != '') {
+          clearFlushProgress().then(response => {
+          })
+          clearInterval(this.timeInterval)
+        }
+      })
+    }
+
+    // examinehandleImport() {
+    //   this.examineupload.examinetitle = "用户导入";
+    //   this.examineupload.examineopen = true;
+    // },
+    // // 文件上传中处理
+    // examineishandleFileUploadProgress(event, file, fileList) {
+    //   this.examineupload.examineisUploading = true;
+    // },
+    // // 文件上传成功处理
+    // examineishandleFileSuccess(response, file, fileList) {
+    //   this.examineupload.examineopen = false;
+    //   this.examineupload.examineisUploading = false;
+    //   this.$refs.examineupload.clearFiles();
+    //   this.$alert(response.msg, "导入结果", {dangerouslyUseHTMLString: true});
+    //   this.getList();
+    // },
+    // // 提交上传文件
+    // examinesubmitFileForm() {
+    //   this.$refs.examineupload.submit();
+    // }
+  }
+}
+</script>

+ 290 - 0
src/views/zdsz_p1/building/index.vue

@@ -0,0 +1,290 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="楼宇名" prop="name">
+        <el-input
+          v-model="queryParams.name"
+          placeholder="请输入楼宇名"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item  label="所属小区" prop="areaId">
+        <el-select v-model="queryParams.areaId" filterable placeholder="请选择所属小区">
+          <el-option v-for="item in areaList" :key="item.id" :value="item.id" :label="item.name">{{ item.name }}</el-option>
+        </el-select>
+      </el-form-item>
+      <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-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="['gas:building:add']"
+        >新增</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="['gas:building:remove']"
+        >删除</el-button>
+      </el-col>
+<!--      <el-col :span="1.5">-->
+<!--        <el-button-->
+<!--          type="warning"-->
+<!--          plain-->
+<!--          icon="el-icon-download"-->
+<!--          size="mini"-->
+<!--          :loading="exportLoading"-->
+<!--          @click="handleExport"-->
+<!--          v-hasPermi="['gas:building:export']"-->
+<!--        >导出</el-button>-->
+<!--      </el-col>-->
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="buildingList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="所属小区" align="center" prop="areaName" />
+      <el-table-column label="楼宇名" align="center" prop="name" />
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+<!--          <el-button-->
+<!--            size="mini"-->
+<!--            type="text"-->
+<!--            icon="el-icon-edit"-->
+<!--            @click="handleUpdate(scope.row)"-->
+<!--            v-hasPermi="['gas:building:edit']"-->
+<!--          >修改</el-button>-->
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['gas:building:remove']"
+          >删除</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="open" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="楼宇名" prop="name">
+          <el-input v-model="form.name" placeholder="请输入楼宇名" />
+        </el-form-item>
+        <el-form-item  label="所属小区" prop="areaId">
+          <el-select v-model="form.areaId" filterable placeholder="请选择所属小区">
+            <el-option v-for="item in areaList" :key="item.id" :value="item.id" :label="item.name">{{ item.name }}</el-option>
+          </el-select>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button :loading="buttonLoading" type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listBuilding, getBuilding, getArea,delBuilding, addBuilding, updateBuilding } from "@/api/gas/building";
+
+export default {
+  name: "Building",
+  data() {
+    return {
+      // 按钮loading
+      buttonLoading: false,
+      // 遮罩层
+      loading: true,
+      // 导出遮罩层
+      exportLoading: false,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 楼宇表格数据
+      buildingList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        name: undefined,
+        areaId: undefined,
+      },
+      areaList:[],
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        name: [
+          { required: true, message: "楼宇名不能为空", trigger: "blur" }
+        ],
+        areaId: [
+          { required: true, message: "小区id不能为空", trigger: "blur" }
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+    this.getArea();
+  },
+  methods: {
+    /** 查询楼宇列表 */
+    getList() {
+      this.loading = true;
+      listBuilding(this.queryParams).then(response => {
+        this.buildingList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    /**小区下拉框*/
+    getArea() {
+      this.loading = true;
+      getArea().then(response => {
+        this.areaList = response.data;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: undefined,
+        name: undefined,
+        areaId: undefined,
+        delFlag: undefined,
+        createBy: undefined,
+        createTime: undefined,
+        updateBy: undefined,
+        updateTime: undefined
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+      this.getArea();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      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.open = true;
+      this.title = "添加楼宇";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.loading = true;
+      this.reset();
+      const id = row.id || this.ids
+      getBuilding(id).then(response => {
+        this.loading = false;
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改楼宇";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          this.buttonLoading = true;
+          if (this.form.id != null) {
+            updateBuilding(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+              this.getArea();
+            }).finally(() => {
+              this.buttonLoading = false;
+            });
+          } else {
+            addBuilding(this.form).then(response => {
+              if(response.data){
+                this.$modal.msgSuccess("新增成功");
+                this.open = false;
+                this.getList();
+                this.getArea();
+              }else{
+                this.$modal.msgError("同一小区下楼宇名称不允许重复,请重新填写!");
+              }
+            }).finally(() => {
+              this.buttonLoading = false;
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除楼宇编号为"' + ids + '"的数据项?').then(() => {
+        this.loading = true;
+        return delBuilding(ids);
+      }).then(() => {
+        this.loading = false;
+        this.getList();
+        this.getArea();
+        this.$modal.msgSuccess("删除成功");
+      }).finally(() => {
+        this.loading = false;
+      });
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+        this.$download.excel('/gas/building/export', this.queryParams);
+    }
+  }
+};
+</script>

+ 142 - 0
src/views/zdsz_p1/census/index-all.vue

@@ -0,0 +1,142 @@
+<template>
+  <div class="app-container">
+    <el-row :gutter="20">
+      <el-col :span="6">
+      <cake-shape id="area" ref="area" text="小区合格率"
+                  :height="300" :radius="[0,100]" :center="['30%','60%']"></cake-shape>
+      </el-col>
+      <el-col :span="6">
+        <cake-shape id="worker" ref="worker" text="工人合格率"
+                    :height="300" :radius="[0,100]" :center="['30%','60%']"></cake-shape>
+      </el-col>
+      <el-col :span="6">
+        <cake-shape id="areaService" ref="areaService" text="小区服务统计"
+                    :height="300" :radius="[0,100]" :center="['30%','60%']"></cake-shape>
+      </el-col>
+      <el-col :span="6">
+        <cake-shape id="zbf" ref="zbf" text="自闭阀类别统计"
+                    :height="300" :radius="[0,100]" :center="['30%','60%']"></cake-shape>
+      </el-col>
+    </el-row>
+    <el-row :gutter="20">
+      <el-col :span="6">
+        <cake-shape id="gclb" ref="gclb" text="管材类别统计"
+                    :height="300" :radius="[0,100]" :center="['30%','60%']"></cake-shape>
+      </el-col>
+      <el-col :span="6">
+        <cake-shape id="gccd" ref="gccd" text="管材长度统计"
+                    :height="300" :radius="[0,100]" :center="['30%','60%']"></cake-shape>
+      </el-col>
+      <el-col :span="6">
+        <cake-shape id="areaSum" ref="areaSum" text="小区汇总统计"
+                    :height="300" :radius="[0,100]" :center="['30%','60%']"></cake-shape>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+import {
+  getExamineArea,
+  getExamineWorker,
+  getExamineServe,
+  getExaminePipeType, getExaminePipeLength, getExamineValveType, getAreaSum
+} from '@/api/gas/census'
+import CakeShape from '@/components/echart/CakeShape';
+
+export default {
+  components: {
+    CakeShape,
+  },
+  name: "",
+  data() {
+    return {
+      // 显示搜索条件
+      id:null,
+      showSearch: true,
+      // 查询参数
+      queryParams: {
+        areaId: undefined,
+      },
+      areaExaminelist:[],
+      workerExaminelist:[],
+      areaServiceExaminelist:[],
+      zbfExaminelist:[],
+      gclbExaminelist:[],
+      gccdExaminelist:[],
+      areaSumExaminelist:[],
+    };
+  },
+  created() {
+  },
+  mounted() {
+    this.getExamineArea();
+    this.getExamineWorker();
+    this.getExamineServe();
+    this.getExamineValveType();
+    this.getExaminePipeType();
+    this.getExaminePipeLength();
+    this.getAreaSum();
+  },
+  methods: {
+    /**小区合格率start**/
+    getExamineArea() {
+      getExamineArea(this.queryParams).then(response => {
+        this.areaExaminelist = response.data;
+        let bool = true;
+        this.$refs.area.drawLine(this.areaExaminelist,this.queryParams,bool)
+      });
+    },
+    /**小区合格率end**/
+    /**工人合格率start**/
+    getExamineWorker() {
+      getExamineWorker(this.queryParams).then(response => {
+        this.workerExaminelist = response.data;
+        let bool = true;
+        this.$refs.worker.drawLine(this.workerExaminelist,this.queryParams,bool)
+      });
+    },
+    /**工人合格率end**/
+    /**小区服务统计start**/
+    getExamineServe() {
+      getExamineServe(this.queryParams).then(response => {
+        this.areaServiceExaminelist = response.data;
+        this.$refs.areaService.drawLine(this.areaServiceExaminelist)
+      });
+    },
+    /**小区服务统计end**/
+    /**自闭阀类别统计start**/
+    getExamineValveType() {
+      getExamineValveType(this.queryParams).then(response => {
+        this.zbfExaminelist = response.data;
+        this.$refs.zbf.drawLine(this.zbfExaminelist)
+      });
+    },
+    /**自闭阀类别统计end**/
+    /**管材类别统计start**/
+    getExaminePipeType() {
+      getExaminePipeType(this.queryParams).then(response => {
+        this.gclbExaminelist = response.data;
+        this.$refs.gclb.drawLine(this.gclbExaminelist)
+      });
+    },
+    /**管材类别统计end**/
+    /**管材长度统计start**/
+    getExaminePipeLength() {
+      getExaminePipeLength(this.queryParams).then(response => {
+        this.gccdExaminelist = response.data;
+        this.$refs.gccd.drawLine(this.gccdExaminelist)
+      });
+    },
+    /**管材长度统计end**/
+    /**小区汇总统计start**/
+    getAreaSum() {
+      getAreaSum(this.queryParams).then(response => {
+        this.areaSumExaminelist = response.data;
+        this.$refs.areaSum.drawLine(this.areaSumExaminelist)
+      });
+    },
+    /**小区汇总统计end**/
+  }
+};
+</script>

+ 86 - 0
src/views/zdsz_p1/census/index1.vue

@@ -0,0 +1,86 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="小区" prop="areaId">
+        <el-select v-model="queryParams.areaId" filterable placeholder="请选择小区">
+          <el-option v-for="item in areaList" :key="item.id" :value="item.id" :label="item.name">{{
+              item.name
+            }}
+          </el-option>
+        </el-select>
+      </el-form-item>
+      <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-form>
+    <div style="width: 50%">
+      <cake-shape id="rose-chart" ref="cake_shape"
+                  :height="300" :radius="[0,100]" :center="['30%','60%']" :queryParams="this.queryParams"></cake-shape>
+    </div>
+  </div>
+</template>
+
+<script>
+import {getExamineArea, getArea,} from "@/api/gas/census";
+import CakeShape from '@/components/echart/CakeShape';
+
+export default {
+  components: {
+    CakeShape,
+  },
+  name: "",
+  data() {
+    return {
+      // 显示搜索条件
+      id:null,
+      showSearch: true,
+      // 查询参数
+      queryParams: {
+        areaId: undefined,
+      },
+      areaList: [],
+      examinelist:[],
+    };
+  },
+  created() {
+    // this.getArea();
+    // this.getExamineArea();
+  },
+  mounted() {
+    this.getArea();
+  },
+  methods: {
+    /**小区下拉框*/
+    getArea() {
+      this.loading = true;
+      getArea().then(response => {
+        this.areaList = response.data;
+        this.getExamineArea();
+        // if (response.data.length>0){
+        //   this.queryParams.id=response.data[0].id;
+        //   this.getExamineArea();
+        //   this.id=response.data[0].id;
+        // }
+      });
+    },
+    getExamineArea() {
+      getExamineArea(this.queryParams).then(response => {
+        this.examinelist = response.data;
+        let bool = true;
+        this.$refs.cake_shape.drawLine(this.examinelist,this.queryParams,bool)
+      });
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.getExamineArea();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.queryParams.id = this.id
+      this.handleQuery();
+    },
+  }
+};
+</script>

+ 83 - 0
src/views/zdsz_p1/census/index3.vue

@@ -0,0 +1,83 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item  label="职工" prop="workerId">
+        <el-select v-model="queryParams.workerId" filterable placeholder="请选择职工">
+          <el-option v-for="item in workerList" :key="item.id" :value="item.id" :label="item.name">{{ item.name }}</el-option>
+        </el-select>
+      </el-form-item>
+
+      <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-form>
+    <div style="width: 50%">
+      <cake-shape id="rose-chart" ref="cake_shape"
+                  :height="300" :radius="[0,100]" :center="['30%','60%']"></cake-shape>
+    </div>
+  </div>
+</template>
+
+<script>
+import {getExamineWorker, getWorker,} from "@/api/gas/census";
+import CakeShape from '@/components/echart/CakeShape';
+
+export default {
+  components: {
+    CakeShape,
+  },
+  name: "",
+  data() {
+    return {
+      // 显示搜索条件
+      id:null,
+      showSearch: true,
+      // 查询参数
+      queryParams: {
+        workerId: undefined,
+      },
+      workerList: [],
+      examinelist:[],
+    };
+  },
+  created() {
+
+  },
+  mounted() {
+    this.getWorker();
+  },
+  methods: {
+    /**职工下拉框*/
+    getWorker() {
+      getWorker().then(response => {
+        this.workerList = response.data;
+        this.getExamineWorker();
+
+        // if (response.data.length>0){
+        //   this.queryParams.id=response.data[0].id;
+        //   this.getExamineWorker();
+        //   this.id=response.data[0].id;
+        // }
+      });
+    },
+    getExamineWorker() {
+      getExamineWorker(this.queryParams).then(response => {
+        this.examinelist = response.data;
+        let bool = true;
+        this.$refs.cake_shape.drawLine(this.examinelist,this.queryParams,bool)
+      });
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.getExamineWorker();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.queryParams.id = this.id
+      this.handleQuery();
+    },
+  }
+};
+</script>

+ 85 - 0
src/views/zdsz_p1/census/index4.vue

@@ -0,0 +1,85 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="小区" prop="id">
+        <el-select v-model="queryParams.id" filterable placeholder="请选择小区">
+          <el-option v-for="item in areaList" :key="item.id" :value="item.id" :label="item.name">{{
+              item.name
+            }}
+          </el-option>
+        </el-select>
+      </el-form-item>
+      <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-form>
+    <div style="width: 50%">
+      <cake-shape id="rose-chart" ref="cake_shape"
+                  :height="300" :radius="[0,100]" :center="['30%','60%']"></cake-shape>
+    </div>
+  </div>
+</template>
+
+<script>
+import {getExamineServe, getArea,} from "@/api/gas/census";
+import CakeShape from '@/components/echart/CakeShape';
+
+export default {
+  components: {
+    CakeShape,
+  },
+  name: "",
+  data() {
+    return {
+      // 显示搜索条件
+      id:null,
+      showSearch: true,
+      // 查询参数
+      queryParams: {
+        id: undefined,
+      },
+      areaList: [],
+      examinelist:[],
+    };
+  },
+  created() {
+
+  },
+  mounted() {
+    this.getArea();
+  },
+  methods: {
+    /**小区下拉框*/
+    getArea() {
+      this.loading = true;
+      getArea().then(response => {
+        this.areaList = response.data;
+        this.getExamineServe();
+
+        // if (response.data.length>0){
+        //   this.queryParams.id=response.data[0].id;
+        //   this.getExamineServe();
+        //   this.id=response.data[0].id;
+        // }
+      });
+    },
+    getExamineServe() {
+      getExamineServe(this.queryParams).then(response => {
+        this.examinelist = response.data;
+        this.$refs.cake_shape.drawLine(this.examinelist)
+      });
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.getExamineServe();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.queryParams.id = this.id
+      this.handleQuery();
+    },
+  }
+};
+</script>

+ 85 - 0
src/views/zdsz_p1/census/index5.vue

@@ -0,0 +1,85 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="小区" prop="id">
+        <el-select v-model="queryParams.id" filterable placeholder="请选择小区">
+          <el-option v-for="item in areaList" :key="item.id" :value="item.id" :label="item.name">{{
+              item.name
+            }}
+          </el-option>
+        </el-select>
+      </el-form-item>
+      <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-form>
+    <div style="width: 50%">
+      <cake-shape id="rose-chart" ref="cake_shape"
+                  :height="300" :radius="[0,100]" :center="['30%','60%']"></cake-shape>
+    </div>
+  </div>
+</template>
+
+<script>
+import {getExaminePipeType, getArea,} from "@/api/gas/census";
+import CakeShape from '@/components/echart/CakeShape';
+
+export default {
+  components: {
+    CakeShape,
+  },
+  name: "",
+  data() {
+    return {
+      // 显示搜索条件
+      id:null,
+      showSearch: true,
+      // 查询参数
+      queryParams: {
+        id: undefined,
+      },
+      areaList: [],
+      examinelist:[],
+    };
+  },
+  created() {
+
+  },
+  mounted() {
+    this.getArea();
+  },
+  methods: {
+    /**小区下拉框*/
+    getArea() {
+      this.loading = true;
+      getArea().then(response => {
+        this.areaList = response.data;
+        this.getExaminePipeType();
+
+        // if (response.data.length>0){
+        //   this.queryParams.id=response.data[0].id;
+        //   this.getExaminePipeType();
+        //   this.id=response.data[0].id;
+        // }
+      });
+    },
+    getExaminePipeType() {
+      getExaminePipeType(this.queryParams).then(response => {
+        this.examinelist = response.data;
+        this.$refs.cake_shape.drawLine(this.examinelist)
+      });
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.getExaminePipeType();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.queryParams.id = this.id
+      this.handleQuery();
+    },
+  }
+};
+</script>

+ 85 - 0
src/views/zdsz_p1/census/index6.vue

@@ -0,0 +1,85 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="小区" prop="id">
+        <el-select v-model="queryParams.id" filterable placeholder="请选择小区">
+          <el-option v-for="item in areaList" :key="item.id" :value="item.id" :label="item.name">{{
+              item.name
+            }}
+          </el-option>
+        </el-select>
+      </el-form-item>
+      <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-form>
+    <div style="width: 50%">
+      <cake-shape id="rose-chart" ref="cake_shape"
+                  :height="300" :radius="[0,100]" :center="['30%','60%']"></cake-shape>
+    </div>
+  </div>
+</template>
+
+<script>
+import {getExaminePipeLength, getArea,} from "@/api/gas/census";
+import CakeShape from '@/components/echart/CakeShape';
+
+export default {
+  components: {
+    CakeShape,
+  },
+  name: "",
+  data() {
+    return {
+      // 显示搜索条件
+      id:null,
+      showSearch: true,
+      // 查询参数
+      queryParams: {
+        id: undefined,
+      },
+      areaList: [],
+      examinelist:[],
+    };
+  },
+  created() {
+
+  },
+  mounted() {
+    this.getArea();
+  },
+  methods: {
+    /**小区下拉框*/
+    getArea() {
+      this.loading = true;
+      getArea().then(response => {
+        this.areaList = response.data;
+        this.getExaminePipeLength();
+
+        // if (response.data.length>0){
+        //   this.queryParams.id=response.data[0].id;
+        //   this.getExaminePipeLength();
+        //   this.id=response.data[0].id;
+        // }
+      });
+    },
+    getExaminePipeLength() {
+      getExaminePipeLength(this.queryParams).then(response => {
+        this.examinelist = response.data;
+        this.$refs.cake_shape.drawLine(this.examinelist)
+      });
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.getExaminePipeLength();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.queryParams.id = this.id
+      this.handleQuery();
+    },
+  }
+};
+</script>

+ 85 - 0
src/views/zdsz_p1/census/index7.vue

@@ -0,0 +1,85 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="小区" prop="areaId">
+        <el-select v-model="queryParams.areaId" filterable placeholder="请选择小区">
+          <el-option v-for="item in areaList" :key="item.id" :value="item.id" :label="item.name">{{
+              item.name
+            }}
+          </el-option>
+        </el-select>
+      </el-form-item>
+      <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-form>
+    <div style="width: 50%">
+      <cake-shape id="rose-chart" ref="cake_shape"
+                  :height="300" :radius="[0,100]" :center="['30%','60%']"></cake-shape>
+    </div>
+  </div>
+</template>
+
+<script>
+import {getAreaSum, getArea,} from "@/api/gas/census";
+import CakeShape from '@/components/echart/CakeShape';
+
+export default {
+  components: {
+    CakeShape,
+  },
+  name: "",
+  data() {
+    return {
+      // 显示搜索条件
+      id:null,
+      showSearch: true,
+      // 查询参数
+      queryParams: {
+        areaId: undefined,
+      },
+      areaList: [],
+      examinelist:[],
+    };
+  },
+  created() {
+
+  },
+  mounted() {
+    this.getArea();
+  },
+  methods: {
+    /**小区下拉框*/
+    getArea() {
+      this.loading = true;
+      getArea().then(response => {
+        this.areaList = response.data;
+        this.getAreaSum();
+
+        // if (response.data.length>0){
+        //   this.queryParams.id=response.data[0].id;
+        //   this.getExaminePipeLength();
+        //   this.id=response.data[0].id;
+        // }
+      });
+    },
+    getAreaSum() {
+      getAreaSum(this.queryParams).then(response => {
+        this.examinelist = response.data;
+        this.$refs.cake_shape.drawLine(this.examinelist)
+      });
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.getAreaSum();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.queryParams.id = this.id
+      this.handleQuery();
+    },
+  }
+};
+</script>

+ 541 - 0
src/views/zdsz_p1/census/index8.vue

@@ -0,0 +1,541 @@
+<template>
+  <div class="app-container">
+<!--    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">-->
+<!--      <el-form-item label="服务类别" prop="serviceType">-->
+<!--        <el-select v-model="queryParams.serviceType" placeholder="请选择服务类别" clearable size="small">-->
+<!--          <el-option-->
+<!--            v-for="dict in dict.type.service_type"-->
+<!--            :key="dict.value"-->
+<!--            :label="dict.label"-->
+<!--            :value="dict.value"-->
+<!--          />-->
+<!--        </el-select>-->
+<!--      </el-form-item>-->
+<!--      &lt;!&ndash;      <el-form-item  label="职工" prop="userId">&ndash;&gt;-->
+<!--      &lt;!&ndash;        <el-select v-model="queryParams.userId" filterable placeholder="请选择职工">&ndash;&gt;-->
+<!--      &lt;!&ndash;          <el-option v-for="item in workerList" :key="item.id" :value="item.id" :label="item.name">{{ item.name }}</el-option>&ndash;&gt;-->
+<!--      &lt;!&ndash;        </el-select>&ndash;&gt;-->
+<!--      &lt;!&ndash;      </el-form-item>&ndash;&gt;-->
+<!--      <el-form-item label="订单状态" prop="orderStatus">-->
+<!--        <el-select v-model="queryParams.orderStatus" placeholder="请选择订单状态" clearable size="small">-->
+<!--          <el-option-->
+<!--            v-for="dict in dict.type.order_status"-->
+<!--            :key="dict.value"-->
+<!--            :label="dict.label"-->
+<!--            :value="dict.value"-->
+<!--          />-->
+<!--        </el-select>-->
+<!--      </el-form-item>-->
+<!--      &lt;!&ndash;      <el-form-item label="审核状态" prop="examineStatus">&ndash;&gt;-->
+<!--      &lt;!&ndash;        <el-select v-model="queryParams.examineStatus" placeholder="请选择审核状态" clearable size="small">&ndash;&gt;-->
+<!--      &lt;!&ndash;          <el-option&ndash;&gt;-->
+<!--      &lt;!&ndash;            v-for="dict in dict.type.examine_status"&ndash;&gt;-->
+<!--      &lt;!&ndash;            :key="dict.value"&ndash;&gt;-->
+<!--      &lt;!&ndash;            :label="dict.label"&ndash;&gt;-->
+<!--      &lt;!&ndash;            :value="dict.value"&ndash;&gt;-->
+<!--      &lt;!&ndash;          />&ndash;&gt;-->
+<!--      &lt;!&ndash;        </el-select>&ndash;&gt;-->
+<!--      &lt;!&ndash;      </el-form-item>&ndash;&gt;-->
+<!--      <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-form>-->
+
+<!--    <el-row :gutter="10" class="mb8">-->
+<!--      &lt;!&ndash;      <el-col :span="1.5">&ndash;&gt;-->
+<!--      &lt;!&ndash;        <el-button&ndash;&gt;-->
+<!--      &lt;!&ndash;          type="success"&ndash;&gt;-->
+<!--      &lt;!&ndash;          plain&ndash;&gt;-->
+<!--      &lt;!&ndash;          icon="el-icon-edit"&ndash;&gt;-->
+<!--      &lt;!&ndash;          size="mini"&ndash;&gt;-->
+<!--      &lt;!&ndash;          :disabled="single"&ndash;&gt;-->
+<!--      &lt;!&ndash;          @click="handleUpdate"&ndash;&gt;-->
+<!--      &lt;!&ndash;          v-hasPermi="['gas:order:edit']"&ndash;&gt;-->
+<!--      &lt;!&ndash;        >审核&ndash;&gt;-->
+<!--      &lt;!&ndash;        </el-button>&ndash;&gt;-->
+<!--      &lt;!&ndash;      </el-col>&ndash;&gt;-->
+<!--      <el-col :span="1.5">-->
+<!--        <el-button-->
+<!--          type="success"-->
+<!--          plain-->
+<!--          icon="el-icon-edit"-->
+<!--          size="mini"-->
+<!--          :disabled="multiple"-->
+<!--          @click="submitY"-->
+<!--          v-hasPermi="['gas:order:edit']"-->
+<!--        >合格-->
+<!--        </el-button>-->
+<!--      </el-col>-->
+<!--      <el-col :span="1.5">-->
+<!--        <el-button-->
+<!--          type="success"-->
+<!--          plain-->
+<!--          icon="el-icon-edit"-->
+<!--          size="mini"-->
+<!--          :disabled="multiple"-->
+<!--          @click="submitN"-->
+<!--          v-hasPermi="['gas:order:edit']"-->
+<!--        >不合格-->
+<!--        </el-button>-->
+<!--      </el-col>-->
+<!--    </el-row>-->
+
+    <el-table v-loading="loading" :data="orderList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center"/>
+      <el-table-column label="服务类别" align="center" prop="serviceType">
+        <template slot-scope="scope">
+          <dict-tag :options="dict.type.service_type" :value="scope.row.serviceType"/>
+        </template>
+      </el-table-column>
+      <el-table-column label="职工" align="center" prop="userName"/>
+      <el-table-column label="房屋" align="center" prop="house"/>
+      <el-table-column label="管子类型" align="center" prop="pipeType"/>
+      <el-table-column label="管子长度" align="center" prop="pipeLength"/>
+      <el-table-column label="时间" align="center" prop="time"/>
+      <!--      <el-table-column label="订单状态" align="center" prop="orderStatus">-->
+      <!--        <template slot-scope="scope">-->
+      <!--          <dict-tag :options="dict.type.order_status" :value="scope.row.orderStatus"/>-->
+      <!--        </template>-->
+      <!--      </el-table-column>-->
+      <el-table-column label="审核状态" align="center" prop="examineStatus">
+        <template slot-scope="scope">
+          <dict-tag :options="dict.type.examine_status" :value="scope.row.examineStatus"/>
+        </template>
+      </el-table-column>
+      <el-table-column label="照片" align="center" prop="photoList">
+        <template slot-scope="scope">
+          <el-image
+            v-if="scope.row.photoList.length> 0"
+            style="width: 100px; height: 100px"
+            :src="scope.row.photoList[0]"
+            :preview-src-list="scope.row.photoList">
+          </el-image>
+        </template>
+      </el-table-column>
+      <el-table-column label="备注" align="center" prop="remark"/>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+            <el-button
+              size="mini"
+              type="text"
+              icon="el-icon-search"
+              @click="handleUpdate(scope.row)"
+              v-hasPermi="['gas:order:edit']"
+            >查看详情
+            </el-button>
+<!--          <p v-if="scope.row.orderStatus ==='001'">-->
+<!--            <el-button-->
+<!--              size="mini"-->
+<!--              type="text"-->
+<!--              icon="el-icon-edit"-->
+<!--              @click="handleUpdate(scope.row)"-->
+<!--              v-hasPermi="['gas:order:edit']"-->
+<!--            >审核-->
+<!--            </el-button>-->
+<!--          </p>-->
+<!--          <p v-if="scope.row.orderStatus ==='002'">-->
+<!--            <el-button-->
+<!--              size="mini"-->
+<!--              type="text"-->
+<!--              icon="el-icon-edit"-->
+<!--              @click="handleUpdate(scope.row)"-->
+<!--              v-hasPermi="['gas:order:edit']"-->
+<!--            >复核-->
+<!--            </el-button>-->
+<!--          </p>-->
+        </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="open" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="服务类别" prop="serviceType">
+          <el-select disabled v-model="form.serviceType" placeholder="请选择服务类别">
+            <el-option
+              v-for="dict in dict.type.service_type"
+              :key="dict.value"
+              :label="dict.label"
+              :value="dict.value"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="照片">
+          <imageUpload v-model="form.photoList" :disabled="true"/>
+        </el-form-item>
+        <el-form-item label="职工" prop="userId">
+          <el-select disabled v-model="form.userId" filterable placeholder="请选择职工">
+            <el-option v-for="item in workerList" :key="item.id" :value="item.id" :label="item.name">{{
+                item.name
+              }}
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="所属小区" prop="areaId">
+          <el-select disabled v-model="form.areaId" filterable placeholder="请选择小区"
+                     @change="getBuilding(form.areaId),resetform()">
+            <el-option v-for="item in areaList" :key="item.id" :value="item.id" :label="item.name">{{
+                item.name
+              }}
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="所属楼宇" prop="buildingId">
+          <el-select disabled v-model="form.buildingId" filterable placeholder="请选择楼宇"
+                     @change="getUnit(form.buildingId),resetunitform()">
+            <el-option v-for="item in buildingList" :key="item.id" :value="item.id" :label="item.name">{{
+                item.name
+              }}
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="所属单元" prop="unitId">
+          <el-select disabled v-model="form.unitId" filterable placeholder="请选择单元"
+                     @change="getHouse(form.unitId),resethouseform()">
+            <el-option v-for="item in unitList" :key="item.id" :value="item.id" :label="item.name">{{
+                item.name
+              }}
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="房屋" prop="houseId">
+          <el-select disabled v-model="form.houseId" filterable placeholder="请选择房屋">
+            <el-option v-for="item in houseList" :key="item.id" :value="item.id" :label="item.name">{{
+                item.name
+              }}
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="管子类型" prop="pipeType">
+          <el-radio-group disabled v-model="form.pipeType">
+            <el-radio
+              v-for="item in pipeTypeList"
+              :key="item.pipeType"
+              :label="item.pipeType"
+            >{{ item.pipeType }}
+            </el-radio>
+          </el-radio-group>
+        </el-form-item>
+        <el-form-item label="管子长度" prop="pipeLength">
+          <el-radio-group disabled v-model="form.pipeLength">
+            <el-radio
+              v-for="item in pipeLengthList"
+              :key="item.pipeLength"
+              :label="item.pipeLength"
+            >{{ item.pipeLength }}
+            </el-radio>
+          </el-radio-group>
+        </el-form-item>
+        <el-form-item label="备注" prop="remark">
+          <el-input disabled v-model="form.remark" type="textarea" placeholder="请输入内容"/>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+<!--        <el-button :loading="buttonLoading" type="primary" @click="submitForm('001')">合格</el-button>-->
+<!--        <el-button :loading="buttonLoading" type="primary" @click="submitForm('002')">不合格</el-button>-->
+        <el-button @click="cancel">取 消</el-button>
+
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import {
+  getListByStatus,
+  getHouse,
+  getUnit,
+  getArea,
+  getBuilding,
+  getOrder,
+  submitY,
+  submitN,
+  getWorker,
+  getPipeType,
+  getPipeLength,
+  delOrder,
+  addOrder,
+  updateOrder
+} from "@/api/gas/order";
+
+export default {
+  name: "Order",
+  dicts: ['service_type', 'order_status', 'examine_status'],
+  data() {
+    return {
+      // 按钮loading
+      buttonLoading: false,
+      // 遮罩层
+      loading: true,
+      // 导出遮罩层
+      exportLoading: false,
+      //职工下拉
+      workerList: [],
+      pipeLengthList: [],
+      pipeTypeList: [],
+      areaList: [],
+      buildingList: [],
+      unitList: [],
+      houseList: [],
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 工程管理表格数据
+      orderList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        serviceType: undefined,
+        userId: undefined,
+        orderStatus: undefined,
+        examineStatus: undefined,
+        areaId: undefined,
+        foremanId: undefined,
+        workerId: undefined,
+        value: undefined,
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        serviceType: [
+          {required: true, message: "服务类别不能为空", trigger: "change"}
+        ],
+        userId: [
+          {required: true, message: "职工id不能为空", trigger: "blur"}
+        ],
+        houseId: [
+          {required: true, message: "房屋不能为空", trigger: "blur"}
+        ],
+      }
+    };
+  },
+  created() {
+    this.queryParams.areaId = this.$route.query.areaId
+    this.queryParams.foremanId = this.$route.query.foremanId
+    this.queryParams.workerId = this.$route.query.workerId
+    this.queryParams.value = this.$route.query.value
+    this.getList();
+    this.getWorker();
+    this.getPipeLength();
+    this.getPipeType();
+
+  },
+  methods: {
+    /** 查询工程管理列表 */
+    getList() {
+      this.loading = true;
+      getListByStatus(this.queryParams).then(response => {
+        this.orderList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    /**工长下拉框*/
+    getWorker() {
+      getWorker().then(response => {
+        this.workerList = response.data;
+      });
+    },
+    //管子长度
+    getPipeLength() {
+      getPipeLength().then(response => {
+        this.pipeLengthList = response.data;
+      });
+    },
+    //管子长度
+    getPipeType() {
+      getPipeType().then(response => {
+        this.pipeTypeList = response.data;
+      });
+    },
+    /**小区下拉框*/
+    getArea() {
+      getArea().then(response => {
+        this.areaList = response.data;
+      });
+    },
+    /**楼宇下拉框*/
+    getBuilding(areaId) {
+      getBuilding(areaId).then(response => {
+        this.buildingList = response.data;
+      });
+    },
+    getUnit(buildingId) {
+      getUnit(buildingId).then(response => {
+        this.unitList = response.data;
+      });
+    },
+    getHouse(unitId) {
+      getHouse(unitId).then(response => {
+        this.houseList = response.data;
+      });
+    },
+    resetform() {
+      this.form.buildingId = undefined;
+      this.form.unitId = undefined;
+      this.form.houseId = undefined;
+    },
+    resetunitform() {
+      this.form.unitId = undefined;
+      this.form.houseId = undefined;
+    },
+    resethouseform() {
+      this.form.houseId = undefined;
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: undefined,
+        serviceType: undefined,
+        picUrl: undefined,
+        userId: undefined,
+        unitId: undefined,
+        buildingId: undefined,
+        areaId: undefined,
+        houseId: undefined,
+        pipeLength: undefined,
+        pipeType: undefined,
+        remark: undefined,
+        delFlag: undefined,
+        createBy: undefined,
+        createTime: undefined,
+        updateBy: undefined,
+        updateTime: undefined
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      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.open = true;
+      this.title = "添加工程管理";
+      this.getWorker();
+      this.getPipeLength();
+      this.getPipeType();
+      this.getArea();
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.loading = true;
+      this.reset();
+      this.getWorker();
+      this.getPipeLength();
+      this.getPipeType();
+      this.getArea();
+      const id = row.id || this.ids
+      getOrder(id).then(response => {
+        this.loading = false;
+        this.form = response.data;
+        this.open = true;
+        this.title = "查看工程";
+        this.getBuilding(this.form.areaId);
+        this.getUnit(this.form.buildingId);
+        this.getHouse(this.form.unitId);
+      });
+    },
+    /** 提交按钮 */
+    submitForm(status) {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          this.buttonLoading = true;
+          this.form.examineStatus = status;
+          this.form.orderStatus = "002";
+          updateOrder(this.form).then(response => {
+            this.$modal.msgSuccess("审核成功");
+          }).finally(() => {
+            this.buttonLoading = false;
+          });
+        }
+      });
+      this.getList();
+      this.handleUpdate(this.orderList[0]);
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除工程管理编号为"' + ids + '"的数据项?').then(() => {
+        this.loading = true;
+        return delOrder(ids);
+      }).then(() => {
+        this.loading = false;
+        this.getList();
+        this.getWorker();
+        this.$modal.msgSuccess("删除成功");
+      }).finally(() => {
+        this.loading = false;
+      });
+    },
+    submitY(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm("确定审核?").then(() => {
+        this.loading = true;
+        return submitY(ids);
+      }).then(() => {
+        this.loading = false;
+        this.getList();
+        this.getWorker();
+        this.$modal.msgSuccess("审核成功");
+      }).finally(() => {
+        this.loading = false;
+      });
+    },
+    submitN(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm("确定审核?").then(() => {
+        this.loading = true;
+        return submitN(ids);
+      }).then(() => {
+        this.loading = false;
+        this.getList();
+        this.getWorker();
+        this.$modal.msgSuccess("审核成功");
+      }).finally(() => {
+        this.loading = false;
+      });
+    },
+  }
+};
+</script>

+ 86 - 0
src/views/zdsz_p1/census/index9.vue

@@ -0,0 +1,86 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="小区" prop="id">
+        <el-select v-model="queryParams.id" filterable placeholder="请选择小区">
+          <el-option v-for="item in areaList" :key="item.id" :value="item.id" :label="item.name">{{
+              item.name
+            }}
+          </el-option>
+        </el-select>
+      </el-form-item>
+      <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-form>
+    <div style="width: 50%">
+      <cake-shape id="rose-chart" ref="cake_shape"
+                  :height="300" :radius="[0,100]" :center="['30%','60%']"></cake-shape>
+    </div>
+  </div>
+</template>
+
+<script>
+import { getArea,} from "@/api/gas/census";
+import CakeShape from '@/components/echart/CakeShape';
+import {getExamineValveType} from "../../../api/gas/census";
+
+export default {
+  components: {
+    CakeShape,
+  },
+  name: "",
+  data() {
+    return {
+      // 显示搜索条件
+      id:null,
+      showSearch: true,
+      // 查询参数
+      queryParams: {
+        id: undefined,
+      },
+      areaList: [],
+      examinelist:[],
+    };
+  },
+  created() {
+
+  },
+  mounted() {
+    this.getArea();
+  },
+  methods: {
+    /**小区下拉框*/
+    getArea() {
+      this.loading = true;
+      getArea().then(response => {
+        this.areaList = response.data;
+        this.getExamineValveType();
+
+        // if (response.data.length>0){
+        //   this.queryParams.id=response.data[0].id;
+        //   this.getExaminePipeType();
+        //   this.id=response.data[0].id;
+        // }
+      });
+    },
+    getExamineValveType() {
+      getExamineValveType(this.queryParams).then(response => {
+        this.examinelist = response.data;
+        this.$refs.cake_shape.drawLine(this.examinelist)
+      });
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.getExamineValveType();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.queryParams.id = this.id
+      this.handleQuery();
+    },
+  }
+};
+</script>

+ 181 - 0
src/views/zdsz_p1/explain/index.vue

@@ -0,0 +1,181 @@
+<template>
+  <div class="app-container">
+
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="标题" prop="title">
+          <el-input v-model="form.title" placeholder="请输入标题" />
+        </el-form-item>
+        <el-form-item label="内容">
+          <editor v-model="form.text" :min-height="192"/>
+        </el-form-item>
+        <el-form-item label="备注" prop="remark">
+          <el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
+        </el-form-item>
+        <el-form-item label="时间" prop="time">
+          <el-date-picker clearable size="small"
+            v-model="form.time"
+            type="datetime"
+            value-format="yyyy-MM-dd HH:mm:ss"
+            placeholder="选择时间">
+          </el-date-picker>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button :loading="buttonLoading" type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+  </div>
+</template>
+
+<script>
+import { listExplain, getExplain, getOne,delExplain, addExplain, updateExplain } from "@/api/gas/explain";
+
+export default {
+  name: "Explain",
+  data() {
+    return {
+      // 按钮loading
+      buttonLoading: false,
+      // 遮罩层
+      loading: true,
+      // 导出遮罩层
+      exportLoading: false,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 服务说明表格数据
+      explainList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+      }
+    };
+  },
+  created() {
+    this.getOne();
+  },
+  methods: {
+    /** 查询服务说明列表 */
+    getList() {
+      this.loading = true;
+      listExplain(this.queryParams).then(response => {
+        this.explainList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    getOne() {
+      getOne().then(response => {
+        if (response.data != null) {
+          this.form = response.data
+        }
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: undefined,
+        title: undefined,
+        text: undefined,
+        remark: undefined,
+        time: undefined,
+        delFlag: undefined,
+        createBy: undefined,
+        createTime: undefined,
+        updateBy: undefined,
+        updateTime: undefined
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getOne();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      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.open = true;
+      this.title = "添加服务说明";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.loading = true;
+      this.reset();
+      const id = row.id || this.ids
+      getExplain(id).then(response => {
+        this.loading = false;
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改服务说明";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          this.buttonLoading = true;
+            updateExplain(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getOne();
+            }).finally(() => {
+              this.buttonLoading = false;
+            });
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除服务说明编号为"' + ids + '"的数据项?').then(() => {
+        this.loading = true;
+        return delExplain(ids);
+      }).then(() => {
+        this.loading = false;
+        this.getOne();
+        this.$modal.msgSuccess("删除成功");
+      }).finally(() => {
+        this.loading = false;
+      });
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+        this.$download.excel('/gas/explain/export', this.queryParams);
+    }
+  }
+};
+</script>

+ 347 - 0
src/views/zdsz_p1/house/index.vue

@@ -0,0 +1,347 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="房屋名" prop="name">
+        <el-input
+          v-model="queryParams.name"
+          placeholder="请输入房屋名"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item  label="所属小区" prop="areaId">
+        <el-select  v-model="queryParams.areaId" filterable placeholder="请选择小区" @change="getBuilding(queryParams.areaId) ,resetqueryform()">
+          <el-option v-for="item in areaList" :key="item.id" :value="item.id" :label="item.name" >{{ item.name }}</el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item  label="所属楼宇" prop="buildingId">
+        <el-select v-model="queryParams.buildingId" filterable placeholder="请选择楼宇" @change="getUnit(queryParams.buildingId),resetqueryunitform()">
+          <el-option v-for="item in buildingList" :key="item.id" :value="item.id" :label="item.name">{{ item.name }}</el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item  label="所属单元" prop="unitId">
+        <el-select v-model="queryParams.unitId" filterable placeholder="请选择楼宇">
+          <el-option v-for="item in unitList" :key="item.id" :value="item.id" :label="item.name">{{ item.name }}</el-option>
+        </el-select>
+      </el-form-item>
+      <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-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="['gas:house:add']"
+        >新增</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="['gas:house:remove']"
+        >删除</el-button>
+      </el-col>
+<!--      <el-col :span="1.5">-->
+<!--        <el-button-->
+<!--          type="warning"-->
+<!--          plain-->
+<!--          icon="el-icon-download"-->
+<!--          size="mini"-->
+<!--          :loading="exportLoading"-->
+<!--          @click="handleExport"-->
+<!--          v-hasPermi="['gas:house:export']"-->
+<!--        >导出</el-button>-->
+<!--      </el-col>-->
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="houseList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="所属小区" align="center" prop="areaName" />
+      <el-table-column label="所属楼宇" align="center" prop="buildingName" />
+      <el-table-column label="所属单元" align="center" prop="unitName" />
+      <el-table-column label="房屋名" align="center" prop="name" />
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+<!--          <el-button-->
+<!--            size="mini"-->
+<!--            type="text"-->
+<!--            icon="el-icon-edit"-->
+<!--            @click="handleUpdate(scope.row)"-->
+<!--            v-hasPermi="['gas:house:edit']"-->
+<!--          >修改</el-button>-->
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['gas:house:remove']"
+          >删除</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="open" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="房屋名" prop="name">
+          <el-input v-model="form.name" placeholder="请输入房屋名" />
+        </el-form-item>
+        <el-form-item  label="所属小区" prop="areaId">
+          <el-select v-model="form.areaId" filterable placeholder="请选择小区" @change="getBuilding(form.areaId),resetform()">
+            <el-option v-for="item in areaList" :key="item.id" :value="item.id" :label="item.name" >{{ item.name }}</el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item  label="所属楼宇" prop="buildingId">
+          <el-select v-model="form.buildingId" filterable placeholder="请选择楼宇" @change="getUnit(form.buildingId),resetunitform()">
+            <el-option v-for="item in buildingList" :key="item.id" :value="item.id" :label="item.name">{{ item.name }}</el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item  label="所属单元" prop="unitId">
+          <el-select v-model="form.unitId" filterable placeholder="请选择单元">
+            <el-option v-for="item in unitList" :key="item.id" :value="item.id" :label="item.name">{{ item.name }}</el-option>
+          </el-select>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button :loading="buttonLoading" type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listHouse, getHouse,getUnit,getArea,getBuilding, delHouse, addHouse, updateHouse } from "@/api/gas/house";
+
+export default {
+  name: "House",
+  data() {
+    return {
+      // 按钮loading
+      buttonLoading: false,
+      // 遮罩层
+      loading: true,
+      // 导出遮罩层
+      exportLoading: false,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 房屋表格数据
+      houseList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        name: undefined,
+        unitId: undefined,
+        buildingId: undefined,
+        areaId: undefined,
+      },
+      areaList:[],
+      buildingList:[],
+      unitList:[],
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        name: [
+          { required: true, message: "房屋名不能为空", trigger: "blur" }
+        ],
+        unitId: [
+          { required: true, message: "单元id不能为空", trigger: "blur" }
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+    this.getArea();
+  },
+  methods: {
+    /** 查询房屋列表 */
+    getList() {
+      this.loading = true;
+      listHouse(this.queryParams).then(response => {
+        this.houseList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    /**小区下拉框*/
+    getArea() {
+      this.loading = true;
+      getArea().then(response => {
+        this.areaList = response.data;
+      });
+    },
+    /**楼宇下拉框*/
+    getBuilding(areaId) {
+      getBuilding(areaId).then(response => {
+        this.buildingList = response.data;
+      });
+    },
+    getUnit(buildingId) {
+      getUnit(buildingId).then(response => {
+        this.unitList = response.data;
+      });
+    },
+    resetqueryform(){
+      this.queryParams.buildingId = undefined;
+      this.queryParams.unitId = undefined;
+    },
+    resetqueryunitform(){
+      this.queryParams.unitId = undefined;
+    },
+    resetform(){
+      this.form.buildingId = undefined;
+      this.form.unitId = undefined;
+    },
+    resetunitform(){
+      this.form.unitId = undefined;
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: undefined,
+        name: undefined,
+        unitId: undefined,
+        buildingId: undefined,
+        areaId: undefined,
+        delFlag: undefined,
+        createBy: undefined,
+        createTime: undefined,
+        updateBy: undefined,
+        updateTime: undefined
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.buildingList = [];
+      this.unitList = [];
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加房屋";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.loading = true;
+      this.reset();
+      const id = row.id || this.ids
+      getHouse(id).then(response => {
+        this.loading = false;
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改房屋";
+        this.getBuilding(this.form.areaId);
+        this.getUnit(this.form.buildingId);
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          this.buttonLoading = true;
+          if (this.form.id != null) {
+            updateHouse(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+              this.getArea();
+            }).finally(() => {
+              this.buttonLoading = false;
+            });
+          } else {
+            addHouse(this.form).then(response => {
+              if(response.data){
+                this.$modal.msgSuccess("新增成功");
+                this.open = false;
+                this.getList();
+                this.getArea();
+              }else{
+                this.$modal.msgError("同一小区、同一楼宇、同一单元下房屋名称不允许重复,请重新填写!");
+              }
+
+            }).finally(() => {
+              this.buttonLoading = false;
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除房屋编号为"' + ids + '"的数据项?').then(() => {
+        this.loading = true;
+        return delHouse(ids);
+      }).then(() => {
+        this.loading = false;
+        this.getList();
+        this.getArea();
+        this.$modal.msgSuccess("删除成功");
+      }).finally(() => {
+        this.loading = false;
+      });
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+        this.$download.excel('/gas/house/export', this.queryParams);
+    }
+  }
+};
+</script>

+ 502 - 0
src/views/zdsz_p1/kaishuan/index.vue

@@ -0,0 +1,502 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="行政区" prop="district" >
+        <el-select v-model="queryParams.district" placeholder="请选择行政区">
+          <el-option
+            v-for="dict in dict.type.district"
+            :key="dict.value"
+            :label="dict.label"
+            :value="dict.value"
+          ></el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item  label="所属小区" prop="areaId">
+        <el-select v-model="queryParams.areaId" filterable clearable placeholder="请选择所属小区"  @change="getBuilding(queryParams.areaId),resetqueryform()">
+          <el-option v-for="item in areaList" :key="item.id" :value="item.id" :label="item.name">{{ item.name }}</el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item  label="所属楼宇" prop="buildingId">
+        <el-select v-model="queryParams.buildingId" filterable clearable placeholder="请选择楼宇" @change="getUnit(queryParams.buildingId),resetqueryunitform()">
+          <el-option v-for="item in buildingList" :key="item.id" :value="item.id" :label="item.name">{{ item.name }}</el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item  label="所属单元" prop="unitId">
+        <el-select v-model="queryParams.unitId" filterable clearable placeholder="请选择单元" @change="getHouse(queryParams.unitId),resetqueryhouseform()">
+          <el-option v-for="item in unitList" :key="item.id" :value="item.id" :label="item.name">{{ item.name }}</el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item  label="房屋" prop="houseId">
+        <el-select v-model="queryParams.houseId" filterable clearable placeholder="请选择房屋">
+          <el-option v-for="item in houseList" :key="item.id" :value="item.id" :label="item.name">{{ item.name }}</el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="职工" prop="userId">
+        <el-select v-model="queryParams.userId" filterable placeholder="请选择职工">
+          <el-option v-for="item in workerList" :key="item.id" :value="item.id" :label="item.name">{{
+              item.name
+            }}
+          </el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="开始时间" prop="starTime">
+        <el-date-picker clearable size="small"
+                        v-model="queryParams.starTime"
+                        type="date"
+                        value-format="yyyy-MM-dd"
+                        placeholder="选择日期">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="结束时间" prop="endTime">
+        <el-date-picker clearable size="small"
+                        v-model="queryParams.endTime"
+                        type="date"
+                        value-format="yyyy-MM-dd"
+                        placeholder="选择日期">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="工号" prop="jobNum">
+        <el-input
+          v-model="queryParams.jobNum"
+          :maxlength="4"
+          placeholder="请输入工号前四位"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <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-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="['gas:order:add']"
+        >新增
+        </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="['gas:order:remove']"
+        >删除</el-button>
+      </el-col>
+<!--      <el-col :span="1.5">-->
+<!--        <el-button-->
+<!--          type="warning"-->
+<!--          plain-->
+<!--          icon="el-icon-download"-->
+<!--          size="mini"-->
+<!--          :loading="exportLoading"-->
+<!--          @click="backup"-->
+<!--          v-hasPermi="['gas:order:export']"-->
+<!--        >备份</el-button>-->
+<!--      </el-col>-->
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="orderList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center"/>
+      <el-table-column label="职工" align="center" prop="userName"/>
+      <el-table-column label="房屋" align="center" prop="house"/>
+      <el-table-column label="创建时间" align="center" prop="time" />
+      <el-table-column label="修改时间" align="center" prop="updateTime" />
+      <el-table-column label="照片" align="center" prop="photoList">
+        <template slot-scope="scope">
+          <el-image
+            v-if="scope.row.photoList.length> 0"
+            style="width: 100px; height: 100px"
+            :src="scope.row.photoList[0]"
+            :preview-src-list="scope.row.photoList">
+          </el-image>
+        </template>
+      </el-table-column>
+      <el-table-column label="备注" align="center" prop="remark"/>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['gas:order:edit']"
+          >修改
+          </el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['gas:order:remove']"
+          >删除</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="open" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="照片" prop="photoList">
+          <imageUpload v-model="form.photoList"/>
+        </el-form-item>
+        <el-form-item label="职工" prop="userId">
+          <el-select v-model="form.userId" filterable placeholder="请选择职工">
+            <el-option v-for="item in workerList" :key="item.id" :value="item.id" :label="item.name">{{
+                item.name
+              }}
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="所属小区" prop="areaId">
+          <el-select v-model="form.areaId" filterable placeholder="请选择小区"
+                     @change="getBuilding(form.areaId),resetform()">
+            <el-option v-for="item in areaList" :key="item.id" :value="item.id" :label="item.name">{{
+                item.name
+              }}
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="所属楼宇" prop="buildingId">
+          <el-select v-model="form.buildingId" filterable placeholder="请选择楼宇"
+                     @change="getUnit(form.buildingId),resetunitform()">
+            <el-option v-for="item in buildingList" :key="item.id" :value="item.id" :label="item.name">{{
+                item.name
+              }}
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="所属单元" prop="unitId">
+          <el-select v-model="form.unitId" filterable placeholder="请选择单元"
+                     @change="getHouse(form.unitId),resethouseform()">
+            <el-option v-for="item in unitList" :key="item.id" :value="item.id" :label="item.name">{{
+                item.name
+              }}
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="房屋" prop="houseId">
+          <el-select v-model="form.houseId" filterable placeholder="请选择房屋">
+            <el-option v-for="item in houseList" :key="item.id" :value="item.id" :label="item.name">{{item.name}}
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="备注" prop="remark">
+          <el-input v-model="form.remark" type="textarea" placeholder="请输入内容"/>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button :loading="buttonLoading" type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import {
+  listOrder,
+  getOrderForStatus,
+  getListKaiShuan,
+  getHouse,
+  backup,
+  getUnit,
+  getArea,
+  getBuilding,
+  getOrder,
+  getWorker,
+  getPipeType,
+  getValveType,
+  getPipeLength,
+  delOrder,
+  addOrder,
+  submitY,
+  submitN,
+  updateOrder
+} from "@/api/gas/order";
+
+export default {
+  name: "Order",
+  dicts: ['district'],
+  data() {
+    return {
+      // 按钮loading
+      buttonLoading: false,
+      // 遮罩层
+      loading: true,
+      // 导出遮罩层
+      exportLoading: false,
+      //职工下拉
+      workerList: [],
+      pipeLengthList: [],
+      pipeTypeList: [],
+      valveTypeList: [],
+      areaList: [],
+      buildingList: [],
+      unitList: [],
+      houseList: [],
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 工程管理表格数据
+      orderList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      open1: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        serviceType: undefined,
+        starTime: undefined,
+        endTime: undefined,
+        areaId: undefined,
+        buildingId: undefined,
+        unitId: undefined,
+        houseId: undefined,
+        userId: undefined,
+        orderStatus: undefined,
+        examineStatus: undefined,
+        jobNum: undefined,
+      },
+      // 表单参数
+      form: {
+        serviceType: '006',
+        orderStatus:'002',
+        examineStatus:'001'
+      },
+      // 表单校验
+      rules: {
+        photoList: [
+          {required: true, message: "请上传照片", trigger: "change"}
+        ],
+        userId: [
+          {required: true, message: "职工不能为空", trigger: "blur"}
+        ],
+        houseId: [
+          {required: true, message: "房屋不能为空", trigger: "change"}
+
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+    this.getWorker();
+    this.getArea();
+  },
+  methods: {
+    backup() {
+      backup().then(response => {
+      });
+    },
+    /** 查询工程管理列表 */
+    getList() {
+      this.loading = true;
+      getListKaiShuan(this.queryParams).then(response => {
+        this.orderList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    /**职工下拉框*/
+    getWorker() {
+      getWorker().then(response => {
+        this.workerList = response.data;
+      });
+    },
+
+    /**小区下拉框*/
+    getArea() {
+      getArea().then(response => {
+        this.areaList = response.data;
+      });
+    },
+    /**楼宇下拉框*/
+    getBuilding(areaId) {
+      getBuilding(areaId).then(response => {
+        this.buildingList = response.data;
+        this.getUnit(this.form.buildingId);
+      });
+    },
+    getUnit(buildingId) {
+      getUnit(buildingId).then(response => {
+        this.unitList = response.data;
+        this.getHouse(this.form.unitId);
+      });
+    },
+    getHouse(unitId) {
+      getHouse(unitId).then(response => {
+        this.houseList = response.data;
+      });
+    },
+    /**
+     * 联级清空
+     */
+    resetform() {
+      this.form.buildingId = undefined;
+      this.form.unitId = undefined;
+      this.form.houseId = undefined;
+    },
+    resetunitform() {
+      this.form.unitId = undefined;
+      this.form.houseId = undefined;
+    },
+    resethouseform() {
+      this.form.houseId = undefined;
+    },
+    resetqueryform(){
+      this.queryParams.buildingId = undefined;
+      this.queryParams.unitId = undefined;
+      this.queryParams.houseId = undefined;
+    },
+    resetqueryunitform(){
+      this.queryParams.unitId = undefined;
+      this.queryParams.houseId = undefined;
+    },
+    resetqueryhouseform(){
+      this.queryParams.houseId = undefined;
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: undefined,
+        serviceType: '006',
+        photoList: [],
+        userId: undefined,
+        unitId: undefined,
+        buildingId: undefined,
+        areaId: undefined,
+        houseId: undefined,
+        remark: undefined,
+        delFlag: undefined,
+        createBy: undefined,
+        createTime: undefined,
+        updateBy: undefined,
+        updateTime: undefined,
+        orderStatus:'002',
+        examineStatus:'001'
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      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.open = true;
+      this.title = "添加";
+      this.getWorker();
+      this.getArea();
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      this.getWorker();
+      this.getArea();
+      const id = row.id || this.ids
+      getOrder(id).then(response => {
+        this.loading = false;
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改";
+        this.getBuilding(this.form.areaId);
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          this.buttonLoading = true;
+          if (this.form.id != null) {
+            if (typeof this.form.photoList==='string'){
+              this.form.photoList = this.form.photoList.split(',')
+            }
+            updateOrder(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+              this.getWorker();
+            }).finally(() => {
+              this.buttonLoading = false;
+            });
+          } else {
+            this.form.photoList = this.form.photoList.split(',')
+            addOrder(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+              this.getWorker();
+            }).finally(() => {
+              this.buttonLoading = false;
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除工程管理编号为"' + ids + '"的数据项?').then(() => {
+        this.loading = true;
+        return delOrder(ids);
+      }).then(() => {
+        this.loading = false;
+        this.getList();
+        this.getWorker();
+        this.$modal.msgSuccess("删除成功");
+      }).finally(() => {
+        this.loading = false;
+      });
+    },
+
+  }
+};
+</script>

+ 271 - 0
src/views/zdsz_p1/notice/index.vue

@@ -0,0 +1,271 @@
+<template>
+  <div class="app-container">
+
+    <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="['gas:notice:add']"
+        >新增</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="['gas:notice:remove']"
+        >删除</el-button>
+      </el-col>
+<!--      <el-col :span="1.5">-->
+<!--        <el-button-->
+<!--          type="warning"-->
+<!--          plain-->
+<!--          icon="el-icon-download"-->
+<!--          size="mini"-->
+<!--          :loading="exportLoading"-->
+<!--          @click="handleExport"-->
+<!--          v-hasPermi="['gas:notice:export']"-->
+<!--        >导出</el-button>-->
+<!--      </el-col>-->
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="noticeList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="标题" align="center" prop="title" />
+      <el-table-column label="内容" align="center" prop="text" />
+      <el-table-column label="备注" align="center" prop="remark" />
+      <el-table-column label="时间" align="center" prop="time" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.time, '{y}-{m}-{d} {h}:{m}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['gas:notice:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['gas:notice:remove']"
+          >删除</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="open" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="标题" prop="title">
+          <el-input v-model="form.title" placeholder="请输入标题" />
+        </el-form-item>
+        <el-form-item label="内容" prop="text">
+          <editor v-model="form.text" :min-height="192"/>
+        </el-form-item>
+        <el-form-item label="备注" prop="remark">
+          <el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
+        </el-form-item>
+        <el-form-item label="时间" prop="time">
+          <el-date-picker clearable size="small"
+            v-model="form.time"
+            type="datetime"
+            value-format="yyyy-MM-dd HH:mm:ss"
+            placeholder="选择时间">
+          </el-date-picker>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button :loading="buttonLoading" type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listNotice, getNotice, delNotice, addNotice, updateNotice } from "@/api/gas/notice";
+
+export default {
+  name: "Notice",
+  data() {
+    return {
+      // 按钮loading
+      buttonLoading: false,
+      // 遮罩层
+      loading: true,
+      // 导出遮罩层
+      exportLoading: false,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 公告管理表格数据
+      noticeList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        title: [
+          {required: true, message: "标题不能为空", trigger: "blur"}
+        ],
+        text: [
+          {required: true, message: "内容不能为空", trigger: "blur"}
+        ],
+        time: [
+          {required: true, message: "请选择时间", trigger: "blur"}
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询公告管理列表 */
+    getList() {
+      this.loading = true;
+      listNotice(this.queryParams).then(response => {
+        this.noticeList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: undefined,
+        title: undefined,
+        text: undefined,
+        remark: undefined,
+        time: undefined,
+        delFlag: undefined,
+        createBy: undefined,
+        createTime: undefined,
+        updateBy: undefined,
+        updateTime: undefined
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      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.open = true;
+      this.title = "添加公告管理";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.loading = true;
+      this.reset();
+      const id = row.id || this.ids
+      getNotice(id).then(response => {
+        this.loading = false;
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改公告管理";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          this.buttonLoading = true;
+          if (this.form.id != null) {
+            updateNotice(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            }).finally(() => {
+              this.buttonLoading = false;
+            });
+          } else {
+            addNotice(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            }).finally(() => {
+              this.buttonLoading = false;
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除公告管理编号为"' + ids + '"的数据项?').then(() => {
+        this.loading = true;
+        return delNotice(ids);
+      }).then(() => {
+        this.loading = false;
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).finally(() => {
+        this.loading = false;
+      });
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+        this.$download.excel('/gas/notice/export', this.queryParams);
+    }
+  }
+};
+</script>

+ 945 - 0
src/views/zdsz_p1/order/index.vue

@@ -0,0 +1,945 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="行政区" prop="district" >
+        <el-select v-model="queryParams.district" placeholder="请选择行政区">
+          <el-option
+            v-for="dict in dict.type.district"
+            :key="dict.value"
+            :label="dict.label"
+            :value="dict.value"
+          ></el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="所属小区" prop="areaId">
+        <el-select v-model="queryParams.areaId" filterable clearable placeholder="请选择所属小区"
+                   @change="getBuilding(queryParams.areaId),resetqueryform()"
+        >
+          <el-option v-for="item in areaList" :key="item.id" :value="item.id" :label="item.name">{{
+              item.name
+            }}
+          </el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="所属楼宇" prop="buildingId">
+        <el-select v-model="queryParams.buildingId" filterable clearable placeholder="请选择楼宇"
+                   @change="getUnit(queryParams.buildingId),resetqueryunitform()"
+        >
+          <el-option v-for="item in buildingList" :key="item.id" :value="item.id" :label="item.name">{{
+              item.name
+            }}
+          </el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="所属单元" prop="unitId">
+        <el-select v-model="queryParams.unitId" filterable clearable placeholder="请选择单元"
+                   @change="getHouse(queryParams.unitId),resetqueryhouseform()"
+        >
+          <el-option v-for="item in unitList" :key="item.id" :value="item.id" :label="item.name">{{
+              item.name
+            }}
+          </el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="房屋" prop="houseId">
+        <el-select v-model="queryParams.houseId" filterable clearable placeholder="请选择房屋" @change="setHouseName(queryParams.houseId)" >
+          <el-option v-for="item in houseList" :key="item.id" :value="item.id" :label="item.name">{{
+              item.name
+            }}
+          </el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="服务类别" prop="serviceType">
+        <el-select v-model="queryParams.serviceType" placeholder="请选择服务类别" clearable size="small">
+          <el-option
+            v-for="dict in dict.type.service_type"
+            :key="dict.value"
+            :label="dict.label"
+            :value="dict.value"
+          />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="职工" prop="userId">
+        <el-select v-model="queryParams.userId" filterable placeholder="请选择职工">
+          <el-option v-for="item in workerList" :key="item.id" :value="item.id" :label="item.name">{{
+              item.name
+            }}
+          </el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="订单状态" prop="orderStatus">
+        <el-select v-model="queryParams.orderStatus" placeholder="请选择订单状态" clearable size="small">
+          <el-option
+            v-for="dict in dict.type.order_status"
+            :key="dict.value"
+            :label="dict.label"
+            :value="dict.value"
+          />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="审核状态" prop="examineStatus">
+        <el-select v-model="queryParams.examineStatus" placeholder="请选择审核状态" clearable size="small">
+          <el-option
+            v-for="dict in dict.type.examine_status"
+            :key="dict.value"
+            :label="dict.label"
+            :value="dict.value"
+          />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="开始时间" prop="starTime">
+        <el-date-picker clearable size="small"
+                        v-model="queryParams.starTime"
+                        type="date"
+                        value-format="yyyy-MM-dd"
+                        placeholder="选择日期"
+        >
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="结束时间" prop="endTime">
+        <el-date-picker clearable size="small"
+                        v-model="queryParams.endTime"
+                        type="date"
+                        value-format="yyyy-MM-dd"
+                        placeholder="选择日期"
+        >
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="工号" prop="jobNum">
+        <el-input
+          v-model="queryParams.jobNum"
+          :maxlength="4"
+          placeholder="请输入工号前四位"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <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-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="['gas:order:add']"
+        >新增
+        </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="['gas:order:remove']"
+        >删除
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          :loading="exportLoading"
+          @click="handleExport"
+          v-hasPermi="['gas:order:export']"
+        >导出
+        </el-button>
+      </el-col>
+      <!--      <el-col :span="1.5">-->
+      <!--        <el-button-->
+      <!--          type="warning"-->
+      <!--          plain-->
+      <!--          icon="el-icon-download"-->
+      <!--          size="mini"-->
+      <!--          :loading="exportLoading"-->
+      <!--          @click="backup"-->
+      <!--          v-hasPermi="['gas:order:export']"-->
+      <!--        >备份</el-button>-->
+      <!--      </el-col>-->
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="orderList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center"/>
+      <el-table-column label="服务类别" align="center" prop="serviceType">
+        <template slot-scope="scope">
+          <dict-tag :options="dict.type.service_type" :value="scope.row.serviceType"/>
+        </template>
+      </el-table-column>
+      <el-table-column label="职工" align="center" prop="userName"/>
+      <el-table-column label="房屋" align="center" prop="house"/>
+      <el-table-column label="管子类型" align="center" prop="pipeType"/>
+      <el-table-column label="管子长度" align="center" prop="pipeLength"/>
+      <el-table-column label="自闭阀类型" align="center" prop="valveType"/>
+      <el-table-column label="订单时间" align="center" prop="time"/>
+      <el-table-column label="订单状态" align="center" prop="orderStatus">
+        <template slot-scope="scope">
+          <dict-tag :options="dict.type.order_status" :value="scope.row.orderStatus"/>
+        </template>
+      </el-table-column>
+      <el-table-column label="审核状态" align="center" prop="examineStatus">
+        <template slot-scope="scope">
+          <dict-tag :options="dict.type.examine_status" :value="scope.row.examineStatus"/>
+        </template>
+      </el-table-column>
+      <el-table-column label="照片" align="center" prop="photoList">
+        <template slot-scope="scope">
+          <el-image
+            v-if="scope.row.photoList.length> 0"
+            style="width: 100px; height: 100px"
+            :src="scope.row.photoList[0]"
+            :preview-src-list="scope.row.photoList"
+          >
+          </el-image>
+        </template>
+      </el-table-column>
+      <el-table-column label="备注" align="center" prop="remark"/>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button v-show="scope.row.orderStatus ==='001'"
+                     size="mini"
+                     type="text"
+                     icon="el-icon-edit"
+                     @click="handleUpdate(scope.row)"
+                     v-hasPermi="['gas:order:edit']"
+          >修改
+          </el-button>
+          <el-button v-show="scope.row.orderStatus ==='002'"
+                     size="mini"
+                     type="text"
+                     icon="el-icon-edit"
+                     @click="handleUpdate1(scope.row)"
+                     v-hasPermi="['gas:order:edit']"
+          >复审
+          </el-button>
+          <el-button v-show="scope.row.anjianId != null && scope.row.anjianId != ''"
+                     size="mini"
+                     type="text"
+                     icon="el-icon-edit"
+                     @click="viewAnJian(scope.row)"
+          >安检开栓
+          </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="open" width="1000px" append-to-body>
+      <el-row :gutter="15">
+        <el-form ref="form" :model="form" :rules="rules" label-width="100px">
+          <el-col :span="22">
+            <el-form-item label="服务类别" prop="serviceType">
+              <el-select v-model="form.serviceType" placeholder="请选择服务类别" clearable :style="{width: '100%'}">
+                <el-option
+                  v-for="dict in dict.type.service_type"
+                  :key="dict.value"
+                  :label="dict.label"
+                  :value="dict.value"
+                ></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="23">
+            <el-form-item label="照片" prop="photoList">
+              <imageUpload v-model="form.photoList"/>
+            </el-form-item>
+          </el-col>
+          <el-col :span="11">
+            <el-form-item label="职工" prop="userId">
+              <el-select v-model="form.userId" filterable placeholder="请选择职工" clearable :style="{width: '100%'}">
+                <el-option v-for="item in workerList" :key="item.id" :value="item.id" :label="item.name">{{
+                    item.name
+                  }}
+                </el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="11">
+            <el-form-item label="所属小区" prop="areaId">
+              <el-select v-model="form.areaId" filterable placeholder="请选择小区" clearable :style="{width: '100%'}"
+                         @change="getBuilding(form.areaId),resetform()"
+              >
+                <el-option v-for="item in areaList" :key="item.id" :value="item.id" :label="item.name">{{
+                    item.name
+                  }}
+                </el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="11">
+            <el-form-item label="所属楼宇" prop="buildingId">
+              <el-select v-model="form.buildingId" filterable placeholder="请选择楼宇" clearable :style="{width: '100%'}"
+                         @change="getUnit(form.buildingId),resetunitform()"
+              >
+                <el-option v-for="item in buildingList" :key="item.id" :value="item.id" :label="item.name">{{
+                    item.name
+                  }}
+                </el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="11">
+            <el-form-item label="所属单元" prop="unitId">
+              <el-select v-model="form.unitId" filterable placeholder="请选择单元" clearable :style="{width: '100%'}"
+                         @change="getHouse(form.unitId),resethouseform()"
+              >
+                <el-option v-for="item in unitList" :key="item.id" :value="item.id" :label="item.name">{{
+                    item.name
+                  }}
+                </el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="11">
+            <el-form-item label="房屋" prop="houseId">
+              <el-select v-model="form.houseId" filterable placeholder="请选择房屋" clearable :style="{width: '100%'}">
+                <el-option v-for="item in houseList" :key="item.id" :value="item.id" :label="item.name">{{ item.name }}
+                </el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="11">
+            <el-form-item label="管子类型" prop="pipeType">
+              <el-radio-group v-model="form.pipeType">
+                <el-radio
+                  v-for="item in pipeTypeList"
+                  :key="item.pipeType"
+                  :label="item.pipeType"
+                >{{ item.pipeType }}
+                </el-radio>
+              </el-radio-group>
+            </el-form-item>
+          </el-col>
+          <el-col :span="11">
+            <el-form-item label="管子长度" prop="pipeLength" >
+              <el-radio-group v-model="form.pipeLength">
+                <el-radio
+                  v-for="item in pipeLengthList"
+                  :key="item.pipeLength"
+                  :label="item.pipeLength"
+                >{{ item.pipeLength }}
+                </el-radio>
+              </el-radio-group>
+            </el-form-item>
+          </el-col>
+          <el-col :span="11">
+            <el-form-item label="自闭阀类型" prop="valveType">
+              <el-radio-group v-model="form.valveType">
+                <el-radio
+                  v-for="item in valveTypeList"
+                  :key="item.valveType"
+                  :label="item.valveType"
+                >{{ item.valveType }}
+                </el-radio>
+              </el-radio-group>
+            </el-form-item>
+          </el-col>
+          <el-col :span="22">
+            <el-form-item label="备注" prop="remark">
+              <el-input v-model="form.remark" type="textarea" placeholder="请输入内容"/>
+            </el-form-item>
+          </el-col>
+        </el-form>
+
+      </el-row>
+      <div slot="footer" class="dialog-footer">
+        <el-button :loading="buttonLoading" type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+
+
+    <!-- 复审对话框 -->
+    <el-dialog :title="title" :visible.sync="open1" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="服务类别" prop="serviceType">
+          <el-select disabled v-model="form.serviceType" placeholder="请选择服务类别">
+            <el-option
+              v-for="dict in dict.type.service_type"
+              :key="dict.value"
+              :label="dict.label"
+              :value="dict.value"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="照片">
+          <imageUpload v-model="form.photoList" :disabled="true"/>
+        </el-form-item>
+        <el-form-item label="职工" prop="userId">
+          <el-select disabled v-model="form.userId" filterable placeholder="请选择职工">
+            <el-option v-for="item in workerList" :key="item.id" :value="item.id" :label="item.name">{{
+                item.name
+              }}
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="所属小区" prop="areaId">
+          <el-select disabled v-model="form.areaId" filterable placeholder="请选择小区"
+                     @change="getBuilding(form.areaId),resetform()"
+          >
+            <el-option v-for="item in areaList" :key="item.id" :value="item.id" :label="item.name">{{
+                item.name
+              }}
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="所属楼宇" prop="buildingId">
+          <el-select disabled v-model="form.buildingId" filterable placeholder="请选择楼宇"
+                     @change="getUnit(form.buildingId),resetunitform()"
+          >
+            <el-option v-for="item in buildingList" :key="item.id" :value="item.id" :label="item.name">{{
+                item.name
+              }}
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="所属单元" prop="unitId">
+          <el-select disabled v-model="form.unitId" filterable placeholder="请选择单元"
+                     @change="getHouse(form.unitId),resethouseform()"
+          >
+            <el-option v-for="item in unitList" :key="item.id" :value="item.id" :label="item.name">{{
+                item.name
+              }}
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="房屋" prop="houseId">
+          <el-select disabled v-model="form.houseId" filterable placeholder="请选择房屋">
+            <el-option v-for="item in houseList" :key="item.id" :value="item.id" :label="item.name">{{
+                item.name
+              }}
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="管子类型" prop="pipeType">
+          <el-radio-group disabled v-model="form.pipeType">
+            <el-radio
+              v-for="item in pipeTypeList"
+              :key="item.pipeType"
+              :label="item.pipeType"
+            >{{ item.pipeType }}
+            </el-radio>
+          </el-radio-group>
+        </el-form-item>
+        <el-form-item label="管子长度" prop="pipeLength">
+          <el-radio-group disabled v-model="form.pipeLength">
+            <el-radio
+              v-for="item in pipeLengthList"
+              :key="item.pipeLength"
+              :label="item.pipeLength"
+            >{{ item.pipeLength }}
+            </el-radio>
+          </el-radio-group>
+        </el-form-item>
+        <el-form-item label="自闭阀类型" prop="valveType">
+          <el-radio-group disabled v-model="form.valveType">
+            <el-radio
+              v-for="item in valveTypeList"
+              :key="item.valveType"
+              :label="item.valveType"
+            >{{ item.valveType }}
+            </el-radio>
+          </el-radio-group>
+        </el-form-item>
+        <el-form-item label="备注" prop="remark">
+          <el-input disabled v-model="form.remark" type="textarea" placeholder="请输入内容"/>
+        </el-form-item>
+        <el-form-item label="审核意见" prop="reason">
+          <el-input v-model="form.reason" type="textarea" placeholder="请输入内容"/>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button :loading="buttonLoading" type="primary" @click="submitY">合格</el-button>
+        <el-button :loading="buttonLoading" type="primary" @click="submitN">不合格</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+    <el-dialog title="安检开栓" :visible.sync="anjianopen" width="500px" append-to-body>
+      <el-form ref="form" :model="anjianform" label-width="80px">
+        <el-form-item label="照片" prop="photoList">
+          <imageUpload v-model="anjianform.photoList"/>
+        </el-form-item>
+        <el-form-item label="职工" prop="userId">
+          <el-select v-model="anjianform.userId" filterable placeholder="请选择职工">
+            <el-option v-for="item in workerList" :key="item.id" :value="item.id" :label="item.name">{{
+                item.name
+              }}
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="是否合格" prop="whether">
+          <el-select v-model="anjianform.whether" filterable placeholder="请选择">
+            <el-option v-for="item in whetherList" :value="item.value" :label="item.label">{{item.label}}</el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="备注" prop="remark">
+          <el-input v-model="anjianform.remark" type="textarea" placeholder="请输入内容"/>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import {
+  listOrder,
+  getOrderForStatus,
+  getHouse,
+  backup,
+  getUnit,
+  getArea,
+  getBuilding,
+  getOrder,
+  getWorker,
+  getPipeType,
+  getValveType,
+  getPipeLength,
+  delOrder,
+  addOrder,
+  submitY,
+  submitN,
+  updateOrder
+} from '@/api/gas/order'
+
+export default {
+  name: 'Order',
+  inheritAttrs: false,
+  dicts: ['service_type', 'order_status', 'examine_status','district'],
+  data() {
+    return {
+      // 按钮loading
+      buttonLoading: false,
+      // 遮罩层
+      loading: true,
+      // 导出遮罩层
+      exportLoading: false,
+      //职工下拉
+      workerList: [],
+      pipeLengthList: [],
+      pipeTypeList: [],
+      valveTypeList: [],
+      areaList: [],
+      buildingList: [],
+      unitList: [],
+      houseList: [],
+      // 选中数组
+      ids: [],
+      // 选中数组的乐观锁
+      versions: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 工程管理表格数据
+      orderList: [],
+      // 弹出层标题
+      title: '',
+      // 是否显示弹出层
+      open: false,
+      open1: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        serviceType: undefined,
+        starTime: undefined,
+        endTime: undefined,
+        areaId: undefined,
+        buildingId: undefined,
+        unitId: undefined,
+        houseId: undefined,
+        userId: undefined,
+        orderStatus: undefined,
+        examineStatus: undefined,
+        jobNum: undefined
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        serviceType: [
+          { required: true, message: '服务类别不能为空', trigger: 'change' }
+        ],
+        photoList: [
+          { required: false, message: '请上传照片', trigger: 'change' }
+        ],
+        userId: [
+          { required: true, message: '职工不能为空', trigger: 'blur' }
+        ],
+        houseId: [
+          { required: true, message: '房屋不能为空', trigger: 'change' }
+
+        ]
+      },
+      anjianopen:false,
+      anjianform:{},
+      whetherList:[
+        {
+          value: '是',
+          label: '是',
+        },
+        {
+          value: '否',
+          label: '否',
+        }
+      ],
+    }
+  },
+  created() {
+    this.getList()
+    this.getWorker()
+    this.getArea()
+    this.getPipeLength()
+    this.getPipeType()
+    this.getValveType()
+  },
+  methods: {
+    backup() {
+      backup().then(response => {
+      })
+    },
+    /** 查询工程管理列表 */
+    getList() {
+      this.loading = true
+      listOrder(this.queryParams).then(response => {
+        this.orderList = response.rows
+        this.total = response.total
+        this.loading = false
+      })
+    },
+    /**职工下拉框*/
+    getWorker() {
+      getWorker().then(response => {
+        this.workerList = response.data
+      })
+    },
+
+    //管子长度
+    getPipeLength() {
+      getPipeLength().then(response => {
+        this.pipeLengthList = response.data
+      })
+    },
+    //管子类别
+    getPipeType() {
+      getPipeType().then(response => {
+        this.pipeTypeList = response.data
+      })
+    },
+    //自闭阀类别
+    getValveType() {
+      getValveType().then(response => {
+        this.valveTypeList = response.data
+      })
+    },
+    /**小区下拉框*/
+    getArea() {
+      getArea().then(response => {
+        this.areaList = response.data
+      })
+    },
+    /**楼宇下拉框*/
+    getBuilding(areaId) {
+      this.form.areaName =  this.areaList.filter(item => item.id == areaId )[0].name
+      getBuilding(areaId).then(response => {
+        this.buildingList = response.data
+        this.getUnit(this.form.buildingId)
+      })
+    },
+    getUnit(buildingId) {
+      this.form.buildingName =  this.buildingList.filter(item => item.id == buildingId )[0].name
+      getUnit(buildingId).then(response => {
+        this.unitList = response.data
+        this.getHouse(this.form.unitId)
+
+      })
+    },
+    getHouse(unitId) {
+      this.form.unitName =  this.unitList.filter(item => item.id == unitId )[0].name
+      getHouse(unitId).then(response => {
+        this.houseList = response.data
+      })
+    },
+    setHouseName(houseId) {
+      this.form.houseName =  this.houseList.filter(item => item.id == houseId )[0].name
+    },
+    /**
+     * 联级清空
+     */
+    resetform() {
+      this.form.buildingId = undefined
+      this.form.unitId = undefined
+      this.form.houseId = undefined
+    },
+    resetunitform() {
+      this.form.unitId = undefined
+      this.form.houseId = undefined
+    },
+    resethouseform() {
+      this.form.houseId = undefined
+    },
+    resetqueryform() {
+      this.queryParams.buildingId = undefined
+      this.queryParams.unitId = undefined
+      this.queryParams.houseId = undefined
+    },
+    resetqueryunitform() {
+      this.queryParams.unitId = undefined
+      this.queryParams.houseId = undefined
+    },
+    resetqueryhouseform() {
+      this.queryParams.houseId = undefined
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false
+      this.open1 = false
+      this.anjianopen = false
+      this.reset()
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: undefined,
+        serviceType: undefined,
+        photoList: [],
+        userId: undefined,
+        unitId: undefined,
+        buildingId: undefined,
+        areaId: undefined,
+        houseId: undefined,
+        pipeLength: undefined,
+        pipeType: undefined,
+        remark: undefined,
+        delFlag: undefined,
+        createBy: undefined,
+        createTime: undefined,
+        updateBy: undefined,
+        updateTime: undefined,
+        reason: undefined
+      }
+      this.resetForm('form')
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1
+      this.getList()
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      // this.resetForm("queryForm");
+      this.$refs['queryForm'].resetFields()
+      this.handleQuery()
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length !== 1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset()
+      this.open = true
+      this.title = '添加工程管理'
+      this.getWorker()
+      this.getPipeLength()
+      this.getPipeType()
+      this.getValveType()
+      this.getArea()
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset()
+      this.getWorker()
+      this.getPipeLength()
+      this.getPipeType()
+      this.getValveType()
+      this.getArea()
+      const id = row.id || this.ids
+      getOrder(id).then(response => {
+        this.loading = false
+        this.form = response.data
+        this.open = true
+        this.title = '修改工程管理'
+        this.getBuilding(this.form.areaId)
+      })
+    },
+    //安检查看
+    viewAnJian(row) {
+      this.reset();
+      this.getWorker();
+      const id = row.anjianId
+      getOrder(id).then(response => {
+        this.loading = false;
+        this.anjianform = response.data;
+        this.anjianopen = true;
+      });
+    },
+    /** 复审按钮操作 */
+    handleUpdate1(row) {
+      this.loading = true
+      this.reset()
+      this.getWorker()
+      this.getPipeLength()
+      this.getPipeType()
+      this.getValveType()
+      this.getArea()
+      const id = row.id || this.ids
+      getOrder(id).then(response => {
+        this.loading = false
+        this.form = response.data
+        this.open1 = true
+        this.title = '审核信息'
+        this.getBuilding(this.form.areaId)
+        this.getUnit(this.form.buildingId)
+        this.getHouse(this.form.unitId)
+      })
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs['form'].validate(valid => {
+        if (valid) {
+          this.buttonLoading = true
+          if (this.form.id != null) {
+            if (typeof this.form.photoList === 'string') {
+              this.form.photoList = this.form.photoList.split(',')
+            }
+            updateOrder(this.form).then(response => {
+              this.$modal.msgSuccess('修改成功')
+              this.open = false
+              this.getList()
+              this.getWorker()
+            }).finally(() => {
+              this.buttonLoading = false
+            })
+          } else {
+            this.form.photoList = this.form.photoList.split(',')
+            addOrder(this.form).then(response => {
+              this.$modal.msgSuccess('新增成功')
+              this.open = false
+              this.getList()
+              this.getWorker()
+            }).finally(() => {
+              this.buttonLoading = false
+            })
+          }
+        }
+      })
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids
+      this.$modal.confirm('是否确认删除工程管理编号为"' + ids + '"的数据项?').then(() => {
+        this.loading = true
+        return delOrder(ids)
+      }).then(() => {
+        this.loading = false
+        this.getList()
+        this.getWorker()
+        this.$modal.msgSuccess('删除成功')
+      }).finally(() => {
+        this.loading = false
+      })
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.$download.excel('/gas/order/export', this.queryParams)
+    },
+    submitY(row) {
+      if (this.form.id != null) {
+        const ids = this.form.id
+        const versions = this.form.version
+        this.$modal.confirm('确定审核?').then(() => {
+          this.loading = true
+          return submitY(ids, this.form.reason, versions)
+        }).then((res) => {
+          this.open1 = false
+          this.loading = false
+          this.getList()
+          this.getWorker()
+          this.$modal.msgSuccess(res.msg)
+        }).finally(() => {
+          this.loading = false
+        })
+      } else {
+        const ids = row.id || this.ids
+        const versions = row.version || this.versions
+        this.$modal.confirm('确定审核?').then(() => {
+          this.loading = true
+          return submitY(ids, this.form.reason, versions)
+        }).then((res) => {
+          this.loading = false
+          this.getList()
+          this.getWorker()
+          this.$modal.msgSuccess(res.msg)
+        }).finally(() => {
+          this.loading = false
+        })
+      }
+    },
+    submitN(row) {
+      if (this.form.id != null) {
+        const ids = this.form.id
+        const versions = this.form.version
+        this.$modal.confirm('确定审核?').then(() => {
+          this.loading = true
+          return submitN(ids, this.form.reason, versions)
+        }).then((res) => {
+          this.open1 = false
+          this.loading = false
+          this.getList()
+          this.getWorker()
+          this.$modal.msgSuccess(res.msg)
+        }).finally(() => {
+          this.loading = false
+        })
+      } else {
+        const ids = row.id || this.ids
+        const versions = row.version || this.versions
+        this.$modal.confirm('确定审核?').then(() => {
+          this.loading = true
+          return submitN(ids, this.form.reason, versions)
+        }).then((res) => {
+          this.loading = false
+          this.getList()
+          this.getWorker()
+          this.$modal.msgSuccess(res.msg)
+        }).finally(() => {
+          this.loading = false
+        })
+      }
+
+    }
+
+  }
+}
+</script>

+ 547 - 0
src/views/zdsz_p1/order/index1.vue

@@ -0,0 +1,547 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="服务类别" prop="serviceType">
+        <el-select v-model="queryParams.serviceType" placeholder="请选择服务类别" clearable size="small">
+          <el-option
+            v-for="dict in dict.type.service_type"
+            :key="dict.value"
+            :label="dict.label"
+            :value="dict.value"
+          />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="职工" prop="userId">
+        <el-select v-model="queryParams.userId" filterable placeholder="请选择职工">
+          <el-option v-for="item in workerList" :key="item.id" :value="item.id" :label="item.name">{{
+              item.name
+            }}
+          </el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="工号" prop="jobNum">
+        <el-input
+          v-model="queryParams.jobNum"
+          :maxlength="4"
+          placeholder="请输入工号前四位"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <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-form>
+
+    <el-row :gutter="10" class="mb8">
+<!--      <el-col :span="1.5">-->
+<!--        <el-button-->
+<!--          type="success"-->
+<!--          plain-->
+<!--          icon="el-icon-edit"-->
+<!--          size="mini"-->
+<!--          :disabled="single"-->
+<!--          @click="handleUpdate"-->
+<!--          v-hasPermi="['gas:order:edit']"-->
+<!--        >审核-->
+<!--        </el-button>-->
+<!--      </el-col>-->
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="multiple"
+          @click="submitY"
+          v-hasPermi="['gas:order:edit']"
+        >合格</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="multiple"
+          @click="submitN"
+          v-hasPermi="['gas:order:edit']"
+        >不合格</el-button>
+      </el-col>
+    </el-row>
+
+    <el-table v-loading="loading" :data="orderList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center"/>
+      <el-table-column label="服务类别" align="center" prop="serviceType">
+        <template slot-scope="scope">
+          <dict-tag :options="dict.type.service_type" :value="scope.row.serviceType"/>
+        </template>
+      </el-table-column>
+      <el-table-column label="职工" align="center" prop="userName"/>
+      <el-table-column label="房屋" align="center" prop="house"/>
+      <el-table-column label="管子类型" align="center" prop="pipeType"/>
+      <el-table-column label="管子长度" align="center" prop="pipeLength"/>
+      <el-table-column label="自闭阀类型" align="center" prop="valveType"/>
+      <el-table-column label="订单时间" align="center" prop="time"/>
+      <el-table-column label="照片" align="center" prop="photoList">
+        <template slot-scope="scope">
+          <el-image
+            v-if="scope.row.photoList.length > 0"
+            style="width: 100px; height: 100px"
+            :src="scope.row.photoList[0]"
+            :preview-src-list="scope.row.photoList">
+          </el-image>
+        </template>
+      </el-table-column>
+      <el-table-column label="备注" align="center" prop="remark"/>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['gas:order:edit']"
+          >审核
+          </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="open" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="服务类别" prop="serviceType">
+          <el-select disabled v-model="form.serviceType" placeholder="请选择服务类别">
+            <el-option
+              v-for="dict in dict.type.service_type"
+              :key="dict.value"
+              :label="dict.label"
+              :value="dict.value"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="照片">
+          <imageUpload v-model="form.photoList" :disabled="true"/>
+        </el-form-item>
+        <el-form-item label="职工" prop="userId">
+          <el-select disabled v-model="form.userId" filterable placeholder="请选择职工">
+            <el-option v-for="item in workerList" :key="item.id" :value="item.id" :label="item.name">{{
+                item.name
+              }}
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="所属小区" prop="areaId">
+          <el-select disabled v-model="form.areaId" filterable placeholder="请选择小区"
+                     @change="getBuilding(form.areaId),resetform()">
+            <el-option v-for="item in areaList" :key="item.id" :value="item.id" :label="item.name">{{
+                item.name
+              }}
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="所属楼宇" prop="buildingId">
+          <el-select disabled v-model="form.buildingId" filterable placeholder="请选择楼宇"
+                     @change="getUnit(form.buildingId),resetunitform()">
+            <el-option v-for="item in buildingList" :key="item.id" :value="item.id" :label="item.name">{{
+                item.name
+              }}
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="所属单元" prop="unitId">
+          <el-select disabled v-model="form.unitId" filterable placeholder="请选择单元"
+                     @change="getHouse(form.unitId),resethouseform()">
+            <el-option v-for="item in unitList" :key="item.id" :value="item.id" :label="item.name">{{
+                item.name
+              }}
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="房屋" prop="houseId">
+          <el-select disabled v-model="form.houseId" filterable placeholder="请选择房屋">
+            <el-option v-for="item in houseList" :key="item.id" :value="item.id" :label="item.name">{{
+                item.name
+              }}
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="管子类型" prop="pipeType">
+          <el-radio-group disabled v-model="form.pipeType">
+            <el-radio
+              v-for="item in pipeTypeList"
+              :key="item.pipeType"
+              :label="item.pipeType"
+            >{{ item.pipeType }}
+            </el-radio>
+          </el-radio-group>
+        </el-form-item>
+        <el-form-item label="管子长度" prop="pipeLength">
+          <el-radio-group disabled v-model="form.pipeLength">
+            <el-radio
+              v-for="item in pipeLengthList"
+              :key="item.pipeLength"
+              :label="item.pipeLength"
+            >{{ item.pipeLength }}
+            </el-radio>
+          </el-radio-group>
+        </el-form-item>
+        <el-form-item label="自闭阀类型" prop="valveType">
+          <el-radio-group disabled v-model="form.valveType">
+            <el-radio
+              v-for="item in valveTypeList"
+              :key="item.valveType"
+              :label="item.valveType"
+            >{{ item.valveType }}
+            </el-radio>
+          </el-radio-group>
+        </el-form-item>
+        <el-form-item label="备注" prop="remark">
+          <el-input disabled v-model="form.remark" type="textarea" placeholder="请输入内容"/>
+        </el-form-item>
+        <el-form-item label="审核意见" prop="reason">
+          <el-input  v-model="form.reason" type="textarea" placeholder="请输入内容"/>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button :loading="buttonLoading" type="primary" @click="submitY" >合格</el-button>
+        <el-button :loading="buttonLoading" type="primary" @click="submitN">不合格</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import {
+  getListExamine,
+  getHouse,
+  getUnit,
+  getArea,
+  getValveType,
+  getBuilding,
+  getOrder,
+  getWorker,
+  getPipeType,
+  getPipeLength,
+  delOrder,
+  submitY,
+  submitN,
+  addOrder,
+  updateOrder
+} from "@/api/gas/order";
+
+export default {
+  name: "Order",
+  dicts: ['service_type', 'order_status', 'examine_status'],
+  data() {
+    return {
+      // 按钮loading
+      buttonLoading: false,
+      // 遮罩层
+      loading: true,
+      // 导出遮罩层
+      exportLoading: false,
+      //职工下拉
+      workerList: [],
+      pipeLengthList: [],
+      pipeTypeList: [],
+      valveTypeList: [],
+      areaList: [],
+      buildingList: [],
+      unitList: [],
+      houseList: [],
+      // 选中数组
+      ids: [],
+      // 选中数组的乐观锁
+      versions: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 工程管理表格数据
+      orderList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        serviceType: undefined,
+        userId: undefined,
+        orderStatus: undefined,
+        examineStatus: undefined,
+        jobNum: undefined,
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        serviceType: [
+          {required: true, message: "服务类别不能为空", trigger: "change"}
+        ],
+        userId: [
+          {required: true, message: "职工id不能为空", trigger: "blur"}
+        ],
+        houseId: [
+          {required: true, message: "房屋不能为空", trigger: "blur"}
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+    this.getWorker();
+    this.getValveType();
+  },
+  methods: {
+    /** 查询工程管理列表 */
+    getList() {
+      return new Promise((resolve, reject) => {
+        this.loading = true;
+        getListExamine(this.queryParams).then(response => {
+          this.orderList = response.rows;
+          this.total = response.total;
+          this.loading = false;
+        });
+        resolve(this.orderList.length);
+      })
+
+    },
+    /**工长下拉框*/
+    getWorker() {
+      getWorker().then(response => {
+        this.workerList = response.data;
+      });
+    },
+    //管子长度
+    getPipeLength() {
+      getPipeLength().then(response => {
+        this.pipeLengthList = response.data;
+      });
+    },
+    //管子长度
+    getPipeType() {
+      getPipeType().then(response => {
+        this.pipeTypeList = response.data;
+      });
+    },
+    //自闭阀类别
+    getValveType() {
+      getValveType().then(response => {
+        this.valveTypeList = response.data;
+      });
+    },
+    /**小区下拉框*/
+    getArea() {
+      getArea().then(response => {
+        this.areaList = response.data;
+      });
+    },
+    /**楼宇下拉框*/
+    getBuilding(areaId) {
+      getBuilding(areaId).then(response => {
+        this.buildingList = response.data;
+        this.getUnit(this.form.buildingId);
+      });
+    },
+    getUnit(buildingId) {
+      getUnit(buildingId).then(response => {
+        this.unitList = response.data;
+        this.getHouse(this.form.unitId);
+      });
+    },
+    getHouse(unitId) {
+      getHouse(unitId).then(response => {
+        this.houseList = response.data;
+      });
+    },
+    resetform() {
+      this.form.buildingId = undefined;
+      this.form.unitId = undefined;
+      this.form.houseId = undefined;
+    },
+    resetunitform() {
+      this.form.unitId = undefined;
+      this.form.houseId = undefined;
+    },
+    resethouseform() {
+      this.form.houseId = undefined;
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: undefined,
+        serviceType: undefined,
+        picUrl: undefined,
+        userId: undefined,
+        unitId: undefined,
+        buildingId: undefined,
+        areaId: undefined,
+        houseId: undefined,
+        pipeLength: undefined,
+        pipeType: undefined,
+        remark: undefined,
+        delFlag: undefined,
+        createBy: undefined,
+        createTime: undefined,
+        updateBy: undefined,
+        reason: undefined,
+        updateTime: undefined,
+        version:undefined
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.versions = selection.map(item => item.version)
+      this.single = selection.length !== 1
+      this.multiple = !selection.length;
+
+      if(this.ids != null && this.ids.length>0){
+        this.form.id = null;
+      }
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      this.getWorker();
+      this.getPipeLength();
+      this.getPipeType();
+      this.getArea();
+      this.getValveType();
+      const id = row.id || this.ids
+      getOrder(id).then(response => {
+        this.loading = false;
+        this.form = response.data;
+        this.open = true;
+        this.title = "审核信息";
+        this.getBuilding(this.form.areaId);
+
+      });
+    },
+    /** 提交按钮 */
+    submitForm(status) {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          this.buttonLoading = true;
+          this.form.examineStatus = status;
+          this.form.orderStatus = "002";
+          updateOrder(this.form).then(response => {
+            this.$modal.msgSuccess("审核成功");
+            this.open = false;
+            this.getList(r => {
+              console.log("777", r)
+              if (this.orderList.length > 0) {
+                this.open = true;
+                console.log(this.orderList[0]);
+                this.handleUpdate(this.orderList[0]);
+              }
+            })
+          }).finally(() => {
+            this.buttonLoading = false;
+          });
+        }
+      });
+    },
+    submitY(row){
+      if (this.form.id!=null){
+        const ids = this.form.id;
+        const versions = this.form.version;
+        this.$modal.confirm("确定审核?").then(() => {
+          this.loading = true;
+          return submitY(ids,this.form.reason,versions);
+        }).then((res) => {
+          this.open = false;
+          this.loading = false;
+          this.getList();
+          this.getWorker();
+          this.$modal.msgSuccess(res.msg);
+        }).finally(() => {
+          this.loading = false;
+        });
+      }else{
+        const ids = row.id || this.ids;
+        const versions = row.version || this.versions;
+        this.$modal.confirm("确定审核?").then(() => {
+          this.loading = true;
+          return submitY(ids,'',versions);
+        }).then((res) => {
+          this.loading = false;
+          this.getList();
+          this.getWorker();
+          this.$modal.msgSuccess(res.msg);
+        }).finally(() => {
+          this.loading = false;
+        });
+      }
+    },
+    submitN(row){
+      if (this.form.id!=null){
+        const ids = this.form.id;
+        const versions = this.form.version;
+        this.$modal.confirm("确定审核?").then(() => {
+          this.loading = true;
+          return submitN(ids,this.form.reason,versions);
+        }).then((res) => {
+          this.open = false;
+          this.loading = false;
+          this.getList();
+          this.getWorker();
+          this.$modal.msgSuccess(res.msg);
+        }).finally(() => {
+          this.loading = false;
+        });
+      }else{
+        const ids = row.id || this.ids;
+        const versions = row.version || this.versions;
+        this.$modal.confirm("确定审核?").then(() => {
+          this.loading = true;
+          return submitN(ids,'',versions);
+        }).then((res) => {
+          this.loading = false;
+          this.getList();
+          this.getWorker();
+          this.$modal.msgSuccess(res.msg);
+        }).finally(() => {
+          this.loading = false;
+        });
+      }
+
+    },
+  }
+};
+</script>

+ 243 - 0
src/views/zdsz_p1/order/index2.vue

@@ -0,0 +1,243 @@
+<template>
+  <div class="app-container">
+
+    <el-table v-loading="loading" :data="userList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="姓名" align="center" prop="name" />
+      <el-table-column label="工号" align="center" prop="jobNum" />
+      <el-table-column label="手机号" align="center" prop="phone" />
+      <el-table-column label="不合格订单数" align="center" prop="num" />
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-search"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['gas:user:edit']"
+          >查看订单</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="open" width="500px" append-to-body>-->
+<!--      <el-form ref="form" :model="form" :rules="rules" label-width="80px">-->
+<!--        <el-form-item label="用户类型" prop="role" >-->
+<!--          <el-select v-model="form.role" placeholder="请选择用户类型" @change="foreman(form.role)">-->
+<!--            <el-option-->
+<!--              v-for="dict in dict.type.user_type"-->
+<!--              :key="dict.value"-->
+<!--              :label="dict.label"-->
+<!--              :value="dict.value"-->
+<!--            ></el-option>-->
+<!--          </el-select>-->
+<!--        </el-form-item>-->
+<!--        <el-form-item label="姓名" prop="name">-->
+<!--          <el-input v-model="form.name" placeholder="请输入姓名" />-->
+<!--        </el-form-item>-->
+<!--        <el-form-item label="工号" prop="jobNum">-->
+<!--          <el-input v-model="form.jobNum" placeholder="请输入工号" />-->
+<!--        </el-form-item>-->
+<!--        <el-form-item label="手机号" prop="phone">-->
+<!--          <el-input v-model="form.phone" placeholder="请输入手机号" />-->
+<!--        </el-form-item>-->
+<!--        <el-form-item label="密码" prop="password">-->
+<!--          <el-input v-model="form.password" placeholder="请输入密码" />-->
+<!--        </el-form-item>-->
+<!--        <el-form-item v-if="foremanForm" label="工长" prop="parentId">-->
+<!--          <el-select v-model="form.parentId" filterable placeholder="请选择工长">-->
+<!--            <el-option v-for="item in foremanList" :key="item.id" :value="item.id" :label="item.name">{{ item.name }}</el-option>-->
+<!--          </el-select>-->
+<!--        </el-form-item>-->
+<!--      </el-form>-->
+<!--      <div slot="footer" class="dialog-footer">-->
+<!--        <el-button :loading="buttonLoading" type="primary" @click="submitForm">确 定</el-button>-->
+<!--        <el-button @click="cancel">取 消</el-button>-->
+<!--      </div>-->
+<!--    </el-dialog>-->
+  </div>
+</template>
+
+<script>
+import { getBlacklist, getUser, delUser, addUser,updateUser } from "@/api/gas/user";
+
+export default {
+  name: "User",
+  dicts: ['user_type'],
+  data() {
+    return {
+      // 按钮loading
+      buttonLoading: false,
+      // 遮罩层
+      loading: true,
+      // 导出遮罩层
+      exportLoading: false,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      //表单工长下拉
+      foremanForm:false,
+      // 用户表格数据
+      userList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        parentId: undefined,
+      },
+      foremanList:[],
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        role: [
+          { required: true, message: "用户类型", trigger: "change" }
+        ],
+        name: [
+          { required: true, message: "姓名不能为空", trigger: "blur" }
+        ],
+        jobNum: [
+          { required: true, message: "工号不能为空", trigger: "blur" }
+        ],
+        phone: [
+          { required: true, message: "手机号不能为空", trigger: "blur" }
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+
+  },
+  methods: {
+    /** 查询用户列表 */
+    getList() {
+      this.loading = true;
+      getBlacklist(this.queryParams).then(response => {
+        this.userList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+
+
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: undefined,
+        role: undefined,
+        name: undefined,
+        jobNum: undefined,
+        phone: undefined,
+        parentId: undefined,
+        delFlag: undefined,
+        createBy: undefined,
+        createTime: undefined,
+        updateBy: undefined,
+        updateTime: undefined
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      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.open = true;
+      this.title = "添加用户";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      let query={
+        id: row.id
+      }
+      this.$router.push({
+        path:'/gas_order/order3',
+        query
+      })
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          this.buttonLoading = true;
+          if (this.form.id != null) {
+            updateUser(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            }).finally(() => {
+              this.buttonLoading = false;
+            });
+          } else {
+            addUser(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            }).finally(() => {
+              this.buttonLoading = false;
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除用户编号为"' + ids + '"的数据项?').then(() => {
+        this.loading = true;
+        return delUser(ids);
+      }).then(() => {
+        this.loading = false;
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).finally(() => {
+        this.loading = false;
+      });
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+        this.$download.excel('/gas/user/export', this.queryParams);
+    }
+  }
+};
+</script>

+ 573 - 0
src/views/zdsz_p1/order/index3.vue

@@ -0,0 +1,573 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="服务类别" prop="serviceType">
+        <el-select v-model="queryParams.serviceType" placeholder="请选择服务类别" clearable size="small">
+          <el-option
+            v-for="dict in dict.type.service_type"
+            :key="dict.value"
+            :label="dict.label"
+            :value="dict.value"
+          />
+        </el-select>
+      </el-form-item>
+      <!--      <el-form-item  label="职工" prop="userId">-->
+      <!--        <el-select v-model="queryParams.userId" filterable placeholder="请选择职工">-->
+      <!--          <el-option v-for="item in workerList" :key="item.id" :value="item.id" :label="item.name">{{ item.name }}</el-option>-->
+      <!--        </el-select>-->
+      <!--      </el-form-item>-->
+      <el-form-item label="订单状态" prop="orderStatus">
+        <el-select v-model="queryParams.orderStatus" placeholder="请选择订单状态" clearable size="small">
+          <el-option
+            v-for="dict in dict.type.order_status"
+            :key="dict.value"
+            :label="dict.label"
+            :value="dict.value"
+          />
+        </el-select>
+      </el-form-item>
+      <!--      <el-form-item label="审核状态" prop="examineStatus">-->
+      <!--        <el-select v-model="queryParams.examineStatus" placeholder="请选择审核状态" clearable size="small">-->
+      <!--          <el-option-->
+      <!--            v-for="dict in dict.type.examine_status"-->
+      <!--            :key="dict.value"-->
+      <!--            :label="dict.label"-->
+      <!--            :value="dict.value"-->
+      <!--          />-->
+      <!--        </el-select>-->
+      <!--      </el-form-item>-->
+      <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-form>
+
+<!--    <el-row :gutter="10" class="mb8">-->
+<!--      &lt;!&ndash;      <el-col :span="1.5">&ndash;&gt;-->
+<!--      &lt;!&ndash;        <el-button&ndash;&gt;-->
+<!--      &lt;!&ndash;          type="success"&ndash;&gt;-->
+<!--      &lt;!&ndash;          plain&ndash;&gt;-->
+<!--      &lt;!&ndash;          icon="el-icon-edit"&ndash;&gt;-->
+<!--      &lt;!&ndash;          size="mini"&ndash;&gt;-->
+<!--      &lt;!&ndash;          :disabled="single"&ndash;&gt;-->
+<!--      &lt;!&ndash;          @click="handleUpdate"&ndash;&gt;-->
+<!--      &lt;!&ndash;          v-hasPermi="['gas:order:edit']"&ndash;&gt;-->
+<!--      &lt;!&ndash;        >审核&ndash;&gt;-->
+<!--      &lt;!&ndash;        </el-button>&ndash;&gt;-->
+<!--      &lt;!&ndash;      </el-col>&ndash;&gt;-->
+<!--      <el-col :span="1.5">-->
+<!--        <el-button-->
+<!--          type="success"-->
+<!--          plain-->
+<!--          icon="el-icon-edit"-->
+<!--          size="mini"-->
+<!--          :disabled="multiple"-->
+<!--          @click="submitY"-->
+<!--          v-hasPermi="['gas:order:edit']"-->
+<!--        >合格-->
+<!--        </el-button>-->
+<!--      </el-col>-->
+<!--      <el-col :span="1.5">-->
+<!--        <el-button-->
+<!--          type="success"-->
+<!--          plain-->
+<!--          icon="el-icon-edit"-->
+<!--          size="mini"-->
+<!--          :disabled="multiple"-->
+<!--          @click="submitN"-->
+<!--          v-hasPermi="['gas:order:edit']"-->
+<!--        >不合格-->
+<!--        </el-button>-->
+<!--      </el-col>-->
+<!--    </el-row>-->
+
+    <el-table v-loading="loading" :data="orderList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center"/>
+      <el-table-column label="服务类别" align="center" prop="serviceType">
+        <template slot-scope="scope">
+          <dict-tag :options="dict.type.service_type" :value="scope.row.serviceType"/>
+        </template>
+      </el-table-column>
+      <el-table-column label="职工" align="center" prop="userName"/>
+      <el-table-column label="房屋" align="center" prop="house"/>
+      <el-table-column label="管子类型" align="center" prop="pipeType"/>
+      <el-table-column label="管子长度" align="center" prop="pipeLength"/>
+      <el-table-column label="自闭阀类型" align="center" prop="valveType"/>
+      <el-table-column label="订单时间" align="center" prop="time"/>
+      <!--      <el-table-column label="订单状态" align="center" prop="orderStatus">-->
+      <!--        <template slot-scope="scope">-->
+      <!--          <dict-tag :options="dict.type.order_status" :value="scope.row.orderStatus"/>-->
+      <!--        </template>-->
+      <!--      </el-table-column>-->
+      <el-table-column label="审核状态" align="center" prop="examineStatus">
+        <template slot-scope="scope">
+          <dict-tag :options="dict.type.examine_status" :value="scope.row.examineStatus"/>
+        </template>
+      </el-table-column>
+      <el-table-column label="照片" align="center" prop="photoList">
+        <template slot-scope="scope">
+          <el-image
+            v-if="scope.row.photoList.length> 0"
+            style="width: 100px; height: 100px"
+            :src="scope.row.photoList[0]"
+            :preview-src-list="scope.row.photoList">
+          </el-image>
+        </template>
+      </el-table-column>
+      <el-table-column label="备注" align="center" prop="remark"/>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-search"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['gas:order:edit']"
+          >查看详情
+          </el-button>
+<!--          <p v-if="scope.row.orderStatus ==='001'">-->
+<!--            <el-button-->
+<!--              size="mini"-->
+<!--              type="text"-->
+<!--              icon="el-icon-edit"-->
+<!--              @click="handleUpdate(scope.row)"-->
+<!--              v-hasPermi="['gas:order:edit']"-->
+<!--            >审核-->
+<!--            </el-button>-->
+<!--          </p>-->
+<!--          <p v-if="scope.row.orderStatus ==='002'">-->
+<!--            <el-button-->
+<!--              size="mini"-->
+<!--              type="text"-->
+<!--              icon="el-icon-edit"-->
+<!--              @click="handleUpdate(scope.row)"-->
+<!--              v-hasPermi="['gas:order:edit']"-->
+<!--            >复核-->
+<!--            </el-button>-->
+<!--          </p>-->
+        </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="open" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="服务类别" prop="serviceType">
+          <el-select disabled v-model="form.serviceType" placeholder="请选择服务类别">
+            <el-option
+              v-for="dict in dict.type.service_type"
+              :key="dict.value"
+              :label="dict.label"
+              :value="dict.value"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="照片">
+          <imageUpload v-model="form.photoList" :disabled="true"/>
+        </el-form-item>
+        <el-form-item label="职工" prop="userId">
+          <el-select disabled v-model="form.userId" filterable placeholder="请选择职工">
+            <el-option v-for="item in workerList" :key="item.id" :value="item.id" :label="item.name">{{
+                item.name
+              }}
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="所属小区" prop="areaId">
+          <el-select disabled v-model="form.areaId" filterable placeholder="请选择小区"
+                     @change="getBuilding(form.areaId),resetform()">
+            <el-option v-for="item in areaList" :key="item.id" :value="item.id" :label="item.name">{{
+                item.name
+              }}
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="所属楼宇" prop="buildingId">
+          <el-select disabled v-model="form.buildingId" filterable placeholder="请选择楼宇"
+                     @change="getUnit(form.buildingId),resetunitform()">
+            <el-option v-for="item in buildingList" :key="item.id" :value="item.id" :label="item.name">{{
+                item.name
+              }}
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="所属单元" prop="unitId">
+          <el-select disabled v-model="form.unitId" filterable placeholder="请选择单元"
+                     @change="getHouse(form.unitId),resethouseform()">
+            <el-option v-for="item in unitList" :key="item.id" :value="item.id" :label="item.name">{{
+                item.name
+              }}
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="房屋" prop="houseId">
+          <el-select disabled v-model="form.houseId" filterable placeholder="请选择房屋">
+            <el-option v-for="item in houseList" :key="item.id" :value="item.id" :label="item.name">{{
+                item.name
+              }}
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="管子类型" prop="pipeType">
+          <el-radio-group disabled v-model="form.pipeType">
+            <el-radio
+              v-for="item in pipeTypeList"
+              :key="item.pipeType"
+              :label="item.pipeType"
+            >{{ item.pipeType }}
+            </el-radio>
+          </el-radio-group>
+        </el-form-item>
+        <el-form-item label="管子长度" prop="pipeLength">
+          <el-radio-group disabled v-model="form.pipeLength">
+            <el-radio
+              v-for="item in pipeLengthList"
+              :key="item.pipeLength"
+              :label="item.pipeLength"
+            >{{ item.pipeLength }}
+            </el-radio>
+          </el-radio-group>
+        </el-form-item>
+        <el-form-item label="备注" prop="remark">
+          <el-input disabled v-model="form.remark" type="textarea" placeholder="请输入内容"/>
+        </el-form-item>
+        <el-form-item label="审核意见" prop="reason">
+          <el-input disabled v-model="form.reason" type="textarea" placeholder="请输入内容"/>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+<!--        <el-button :loading="buttonLoading" type="primary" @click="submitY" >合格</el-button>-->
+<!--        <el-button :loading="buttonLoading" type="primary" @click="submitN">不合格</el-button>-->
+        <el-button @click="cancel">取 消</el-button>
+
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import {
+  listOrder,
+  getHouse,
+  getUnit,
+  getArea,
+  getBuilding,
+  getOrder,
+  submitY,
+  submitN,
+  getWorker,
+  getPipeType,
+  getPipeLength,
+  delOrder,
+  addOrder,
+  updateOrder
+} from "@/api/gas/order";
+
+export default {
+  name: "Order",
+  dicts: ['service_type', 'order_status', 'examine_status'],
+  data() {
+    return {
+      // 按钮loading
+      buttonLoading: false,
+      // 遮罩层
+      loading: true,
+      // 导出遮罩层
+      exportLoading: false,
+      //职工下拉
+      workerList: [],
+      pipeLengthList: [],
+      pipeTypeList: [],
+      areaList: [],
+      buildingList: [],
+      unitList: [],
+      houseList: [],
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 工程管理表格数据
+      orderList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        serviceType: undefined,
+        userId: undefined,
+        orderStatus: undefined,
+        examineStatus: undefined,
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        serviceType: [
+          {required: true, message: "服务类别不能为空", trigger: "change"}
+        ],
+        userId: [
+          {required: true, message: "职工id不能为空", trigger: "blur"}
+        ],
+        houseId: [
+          {required: true, message: "房屋不能为空", trigger: "blur"}
+        ],
+      }
+    };
+  },
+  created() {
+    this.queryParams.userId = this.$route.query.id
+    this.getList();
+    this.getWorker();
+    this.getPipeLength();
+    this.getPipeType();
+
+  },
+  methods: {
+    /** 查询工程管理列表 */
+    getList() {
+      this.loading = true;
+      listOrder(this.queryParams).then(response => {
+        this.orderList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    /**工长下拉框*/
+    getWorker() {
+      getWorker().then(response => {
+        this.workerList = response.data;
+      });
+    },
+    //管子长度
+    getPipeLength() {
+      getPipeLength().then(response => {
+        this.pipeLengthList = response.data;
+      });
+    },
+    //管子长度
+    getPipeType() {
+      getPipeType().then(response => {
+        this.pipeTypeList = response.data;
+      });
+    },
+    /**小区下拉框*/
+    getArea() {
+      getArea().then(response => {
+        this.areaList = response.data;
+      });
+    },
+    /**楼宇下拉框*/
+    getBuilding(areaId) {
+      getBuilding(areaId).then(response => {
+        this.buildingList = response.data;
+        this.getUnit(this.form.buildingId);
+      });
+    },
+    getUnit(buildingId) {
+      getUnit(buildingId).then(response => {
+        this.unitList = response.data;
+        this.getHouse(this.form.unitId);
+
+      });
+    },
+    getHouse(unitId) {
+      getHouse(unitId).then(response => {
+        this.houseList = response.data;
+      });
+    },
+    resetform() {
+      this.form.buildingId = undefined;
+      this.form.unitId = undefined;
+      this.form.houseId = undefined;
+    },
+    resetunitform() {
+      this.form.unitId = undefined;
+      this.form.houseId = undefined;
+    },
+    resethouseform() {
+      this.form.houseId = undefined;
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: undefined,
+        serviceType: undefined,
+        picUrl: undefined,
+        userId: undefined,
+        unitId: undefined,
+        buildingId: undefined,
+        areaId: undefined,
+        houseId: undefined,
+        pipeLength: undefined,
+        pipeType: undefined,
+        remark: undefined,
+        delFlag: undefined,
+        createBy: undefined,
+        createTime: undefined,
+        updateBy: undefined,
+        updateTime: undefined
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      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.open = true;
+      this.title = "添加工程管理";
+      this.getWorker();
+      this.getPipeLength();
+      this.getPipeType();
+      this.getArea();
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.loading = true;
+      this.reset();
+      this.getWorker();
+      this.getPipeLength();
+      this.getPipeType();
+      this.getArea();
+      const id = row.id || this.ids
+      getOrder(id).then(response => {
+        this.loading = false;
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改工程管理";
+        this.getBuilding(this.form.areaId);
+
+      });
+    },
+    /** 提交按钮 */
+    submitForm(status) {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          this.buttonLoading = true;
+          this.form.examineStatus = status;
+          this.form.orderStatus = "002";
+          updateOrder(this.form).then(response => {
+            this.$modal.msgSuccess("审核成功");
+          }).finally(() => {
+            this.buttonLoading = false;
+          });
+        }
+      });
+      this.getList();
+      this.handleUpdate(this.orderList[0]);
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除工程管理编号为"' + ids + '"的数据项?').then(() => {
+        this.loading = true;
+        return delOrder(ids);
+      }).then(() => {
+        this.loading = false;
+        this.getList();
+        this.getWorker();
+        this.$modal.msgSuccess("删除成功");
+      }).finally(() => {
+        this.loading = false;
+      });
+    },
+    submitY(row){
+      if (this.form.id!=null){
+        const ids = this.form.id;
+        this.$modal.confirm("确定审核?").then(() => {
+          this.loading = true;
+          return submitY(ids);
+        }).then(() => {
+          this.open = false;
+          this.loading = false;
+          this.getList();
+          this.getWorker();
+          this.$modal.msgSuccess("审核成功");
+        }).finally(() => {
+          this.loading = false;
+        });
+      }else{
+        const ids = row.id || this.ids;
+        this.$modal.confirm("确定审核?").then(() => {
+          this.loading = true;
+          return submitY(ids);
+        }).then(() => {
+          this.loading = false;
+          this.getList();
+          this.getWorker();
+          this.$modal.msgSuccess("审核成功");
+        }).finally(() => {
+          this.loading = false;
+        });
+      }
+    },
+    submitN(row){
+      if (this.form.id!=null){
+        const ids = this.form.id;
+        this.$modal.confirm("确定审核?").then(() => {
+          this.loading = true;
+          return submitN(ids);
+        }).then(() => {
+          this.open = false;
+          this.loading = false;
+          this.getList();
+          this.getWorker();
+          this.$modal.msgSuccess("审核成功");
+        }).finally(() => {
+          this.loading = false;
+        });
+      }else{
+        const ids = row.id || this.ids;
+        this.$modal.confirm("确定审核?").then(() => {
+          this.loading = true;
+          return submitN(ids);
+        }).then(() => {
+          this.loading = false;
+          this.getList();
+          this.getWorker();
+          this.$modal.msgSuccess("审核成功");
+        }).finally(() => {
+          this.loading = false;
+        });
+      }
+
+    },
+  }
+};
+</script>

+ 475 - 0
src/views/zdsz_p1/otherEngine/index.vue

@@ -0,0 +1,475 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="工程类型" prop="engineType">
+        <el-select v-model="queryParams.engineType" placeholder="请选择工程类型" clearable size="small">
+          <el-option
+            v-for="dict in dicts.engine_type"
+            :key="dict.value"
+            :label="dict.label"
+            :value="dict.value"
+          />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="工程名" prop="name">
+        <el-input
+          v-model="queryParams.name"
+          placeholder="请输入工程名"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="是否完工" prop="status">
+        <el-select v-model="queryParams.status" placeholder="请选择是否完工" clearable size="small">
+          <el-option
+            v-for="dict in dicts.engine_status"
+            :key="dict.value"
+            :label="dict.label"
+            :value="dict.value"
+          />
+        </el-select>
+      </el-form-item>
+      <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-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="['gas:otherEngine:add']"-->
+        <!--&gt;新增-->
+        <!--</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="['gas:otherEngine:remove']"-->
+        <!--&gt;删除-->
+        <!--</el-button>-->
+      <!--</el-col>-->
+      <!--&lt;!&ndash;      <el-col :span="1.5">&ndash;&gt;-->
+      <!--&lt;!&ndash;        <el-button&ndash;&gt;-->
+      <!--&lt;!&ndash;          type="warning"&ndash;&gt;-->
+      <!--&lt;!&ndash;          plain&ndash;&gt;-->
+      <!--&lt;!&ndash;          icon="el-icon-download"&ndash;&gt;-->
+      <!--&lt;!&ndash;          size="mini"&ndash;&gt;-->
+      <!--&lt;!&ndash;          :loading="exportLoading"&ndash;&gt;-->
+      <!--&lt;!&ndash;          @click="handleExport"&ndash;&gt;-->
+      <!--&lt;!&ndash;          v-hasPermi="['gas:otherEngine:export']"&ndash;&gt;-->
+      <!--&lt;!&ndash;        >导出</el-button>&ndash;&gt;-->
+      <!--&lt;!&ndash;      </el-col>&ndash;&gt;-->
+      <!--<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>-->
+    <!--</el-row>-->
+
+    <el-table v-loading="loading" :data="otherEngineList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center"/>
+      <el-table-column label="工程类型" align="center" prop="engineType">
+        <template slot-scope="scope">
+          <dict-tag :options="dicts.engine_type" :value="scope.row.engineType"/>
+        </template>
+      </el-table-column>
+      <el-table-column label="工程名" align="center" prop="name"/>
+      <el-table-column label="工程地址" align="center" prop="address"/>
+      <el-table-column label="创建时间" align="center" prop="time"/>
+      <el-table-column label="修改时间" align="center" prop="updateTime"/>
+      <el-table-column label="照片" align="center" prop="photo">
+        <template slot-scope="scope">
+          <el-image
+            v-if="scope.row.photo.length> 0 && (scope.row.photo[0].substring(scope.row.photo[0].lastIndexOf('.')+1)!='mp4')"
+            style="width: 100px; height: 100px"
+            :src="scope.row.photo[0]"
+            :preview-src-list="scope.row.photo"
+          >
+          </el-image>
+          <video
+            v-else
+            style="width: 100px; height: 100px"
+            :src="scope.row.photo[0]"
+          >
+          </video>
+        </template>
+      </el-table-column>
+      <!--<el-table-column label="备注" align="center" prop="remark" />-->
+      <el-table-column label="是否完工" align="center" prop="status">
+        <!--<template slot-scope="scope">-->
+          <!--<dict-tag :options="dicts.engine_status" :value="scope.row.status"/>-->
+        <!--</template>-->
+      </el-table-column>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+<!--          <el-button-->
+<!--            v-show="scope.row.status == '001'"-->
+<!--            size="mini"-->
+<!--            type="text"-->
+<!--            icon="el-icon-download"-->
+<!--            @click="imgDownload(scope.row)"-->
+<!--          >导出图片-->
+<!--          </el-button>-->
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-view"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['gas:otherEngine:edit']"
+          >详情
+          </el-button>
+          <!--<el-button-->
+            <!--size="mini"-->
+            <!--type="text"-->
+            <!--icon="el-icon-edit"-->
+            <!--@click="handleUpdate(scope.row)"-->
+            <!--v-hasPermi="['gas:otherEngine:edit']"-->
+          <!--&gt;修改-->
+          <!--</el-button>-->
+          <!--<el-button-->
+            <!--size="mini"-->
+            <!--type="text"-->
+            <!--icon="el-icon-delete"-->
+            <!--@click="handleDelete(scope.row)"-->
+            <!--v-hasPermi="['gas:otherEngine:remove']"-->
+          <!--&gt;删除-->
+          <!--</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="open" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="工程类型" prop="engineType">
+          <el-select v-model="form.engineType" placeholder="请选择工程类型" disabled>
+            <el-option
+              v-for="dict in dicts.engine_type"
+              :key="dict.value"
+              :label="dict.label"
+              :value="dict.value"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="工程名" prop="name">
+          <el-input v-model="form.name" placeholder="请输入工程名" disabled/>
+        </el-form-item>
+        <el-form-item label="工程地址" prop="address">
+          <el-input v-model="form.address" placeholder="请输入工程地址" disabled/>
+        </el-form-item>
+        <el-form-item label="照片">
+          <imageUpload v-model="form.photo"/>
+        </el-form-item>
+        <el-form-item label="备注" prop="remark" disabled>
+          <el-input v-model="form.remark" type="textarea" placeholder="请输入内容"/>
+        </el-form-item>
+        <el-form-item label="是否完工" prop="status">
+          <el-radio-group v-model="form.status" disabled>
+            <el-radio
+              v-for="dict in dicts.engine_status"
+              :key="dict.value"
+              :label="dict.value"
+            >{{ dict.label }}
+            </el-radio>
+          </el-radio-group>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <!--<el-button :loading="buttonLoading" type="primary" @click="submitForm">确 定</el-button>-->
+        <!--<el-button @click="cancel">取 消</el-button>-->
+        <el-button @click="cancel">关 闭</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import {
+  listOtherEngine,
+  getOtherEngine,
+  delOtherEngine,
+  addOtherEngine,
+  updateOtherEngine
+} from '@/api/gas/otherEngine'
+import {getYqDicts} from "@/api/system/dict/data";
+import JSZip from 'jszip'
+import FileSaver from 'file-saver'
+import axios from 'axios'
+
+export default {
+  name: 'OtherEngine',
+  dicts: ['engine_status', 'engine_type'],
+  data() {
+    return {
+      dicts:{
+        engine_status: [],
+        engine_type: [],
+      },
+      // 按钮loading
+      buttonLoading: false,
+      // 遮罩层
+      loading: true,
+      // 导出遮罩层
+      exportLoading: false,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 其他工程表格数据
+      otherEngineList: [],
+      // 弹出层标题
+      title: '',
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        name: undefined,
+        status: undefined,
+        engineType: undefined
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        engineType: [
+          { required: true, message: '请选择工程类型', trigger: 'blur' }
+        ],
+        name: [
+          { required: true, message: '工程名不能为空', trigger: 'blur' }
+        ],
+        address: [
+          { required: true, message: '工程地址不能为空', trigger: 'blur' }
+        ],
+        status: [
+          { required: true, message: '是否完工不能为空', trigger: 'blur' }
+        ]
+      }
+    }
+  },
+  created() {
+    this.getYqDictsList();
+    // this.getList()
+  },
+  methods: {
+    getYqDictsList(){
+      getYqDicts("engine_status").then(res => {
+        this.dicts.engine_status = res.data
+        getYqDicts("engine_type").then(res => {
+          this.dicts.engine_type = res.data
+          this.getList()
+        })
+      })
+    },
+// 获取文件blob
+    getFile(url) {
+      return new Promise((resolve, reject) => {
+        url = url.split("myhuaweicloud.com")[1]
+        axios(url,{
+          method: 'get',
+          // responseType: 'blob'
+        })
+          .then(res => {
+            resolve(res.data)
+          })
+          .catch(err => {
+            reject(err.toString())
+          })
+      })
+    },
+    // 图片批量处理成压缩包后下载
+    batchPictureZip(data,fileName) {
+      const zip = new JSZip()
+      const promises = []
+      const cache = {}
+      this.$message('正在下载,请耐心等待...')
+      for (const item of data) {
+        const promise = this.getFile(item.url).then(data => {
+          // 下载文件, 并存成ArrayBuffer对象
+          zip.file(item.fileName, data, { binary: true }) // 逐个添加文件
+          cache[item.fileName] = data
+        })
+        promises.push(promise)
+      }
+      Promise.all(promises)
+        .then(() => {
+          zip.generateAsync({ type: 'blob' }).then((content) => {
+            // 生成二进制流
+            FileSaver.saveAs(content, fileName) // 利用file-saver保存文件  自定义文件名
+            this.$message.success('下载成功')
+          })
+        })
+        .catch(res => {
+          this.$message.error('下载失败')
+        })
+    },
+    // 下载附件
+    imgDownload(data) {
+      console.log(data)
+      let ls = []
+      for (let i = 0; i < data.photo.length; i++) {
+        let a = {
+          fileName: data.photo[i].split("/file/")[1],
+          url: data.photo[i]
+        }
+        ls.push(a)
+      }
+      this.batchPictureZip(ls,data.name)
+
+    },
+
+    /** 查询其他工程列表 */
+    getList() {
+      this.loading = true
+      listOtherEngine(this.queryParams).then(response => {
+        this.otherEngineList = response.rows
+        for (let i = 0; i < this.otherEngineList.length; i++) {
+          for (let j = 0; j < this.dicts.engine_type.length; j++) {
+            if(this.otherEngineList[i].engineType == this.dicts.engine_type[j].value){
+              this.otherEngineList[i].engineType = this.dicts.engine_type[j].label;
+            }
+          }
+          for (let j = 0; j < this.dicts.engine_status.length; j++) {
+            if(this.otherEngineList[i].status == this.dicts.engine_status[j].value){
+              this.otherEngineList[i].status = this.dicts.engine_status[j].label;
+            }
+          }
+        }
+        console.log(response.rows)
+        this.total = response.total
+        this.loading = false
+      })
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false
+      this.reset()
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: undefined,
+        name: undefined,
+        address: undefined,
+        remark: undefined,
+        photo: undefined,
+        status: '0',
+        delFlag: undefined,
+        createBy: undefined,
+        createTime: undefined,
+        updateBy: undefined,
+        updateTime: undefined
+      }
+      this.resetForm('form')
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1
+      this.getList()
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      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.open = true
+      this.title = '添加其他工程'
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.loading = true
+      this.reset()
+      const id = row.id || this.ids
+      getOtherEngine(id).then(response => {
+        this.loading = false
+        this.form = response.data
+        this.open = true
+        // this.title = '修改其他工程'
+        this.title = '工程详情'
+      })
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs['form'].validate(valid => {
+        if (valid) {
+          this.buttonLoading = true
+          if (this.form.id != null) {
+            if (typeof this.form.photo === 'string') {
+              this.form.photo = this.form.photo.split(',')
+            }
+            updateOtherEngine(this.form).then(response => {
+              this.$modal.msgSuccess('修改成功')
+              this.open = false
+              this.getList()
+            }).finally(() => {
+              this.buttonLoading = false
+            })
+          } else {
+            if (this.form.photo != null) {
+              this.form.photo = this.form.photo.split(',')
+            }
+            addOtherEngine(this.form).then(response => {
+              this.$modal.msgSuccess('新增成功')
+              this.open = false
+              this.getList()
+            }).finally(() => {
+              this.buttonLoading = false
+            })
+          }
+        }
+      })
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids
+      this.$modal.confirm('是否确认删除其他工程编号为"' + ids + '"的数据项?').then(() => {
+        this.loading = true
+        return delOtherEngine(ids)
+      }).then(() => {
+        this.loading = false
+        this.getList()
+        this.$modal.msgSuccess('删除成功')
+      }).finally(() => {
+        this.loading = false
+      })
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.$download.excel('/gas/otherEngine/export', this.queryParams)
+    }
+  }
+}
+</script>

+ 162 - 0
src/views/zdsz_p1/parameter/index.vue

@@ -0,0 +1,162 @@
+<template>
+  <div class="app-container">
+    <!-- 添加或修改黑名单参数设置对话框 -->
+    <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+      <el-form-item label="参数设置" prop="parameter">
+        <el-input v-model.number="form.parameter" placeholder="请输入参数设置"/>
+      </el-form-item>
+    </el-form>
+    <div slot="footer" class="dialog-footer">
+      <el-button :loading="buttonLoading" type="primary" @click="submitForm">确 定</el-button>
+    </div>
+  </div>
+</template>
+
+<script>
+import {listParameter, getParameter, getOne, delParameter, addParameter, updateParameter} from "@/api/gas/parameter";
+
+export default {
+  name: "Parameter",
+  data() {
+    return {
+      // 按钮loading
+      buttonLoading: false,
+      // 遮罩层
+      loading: true,
+      // 导出遮罩层
+      exportLoading: false,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 黑名单参数设置表格数据
+      parameterList: [],
+      // 弹出层标题
+      title: "",
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        parameter: undefined,
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        parameter: [
+          {required: true, message: "参数设置不能为空", trigger: "blur"},
+          { type: 'number', message: '参数设置必须为数字值'}
+        ],
+      }
+    };
+  },
+  created() {
+    this.getOne();
+  },
+  methods: {
+    /** 查询黑名单参数设置列表 */
+    getList() {
+      this.loading = true;
+      listParameter(this.queryParams).then(response => {
+        this.parameterList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    getOne() {
+      getOne().then(response => {
+        if (response.data != null) {
+          this.form = response.data
+        }
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: undefined,
+        parameter: undefined,
+        delFlag: undefined,
+        createBy: undefined,
+        createTime: undefined,
+        updateBy: undefined,
+        updateTime: undefined
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      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.title = "添加黑名单参数设置";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.loading = true;
+      this.reset();
+      const id = row.id || this.ids
+      getParameter(id).then(response => {
+        this.loading = false;
+        this.form = response.data;
+        this.title = "修改黑名单参数设置";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          this.buttonLoading = true;
+          updateParameter(this.form).then(response => {
+            this.$modal.msgSuccess("操作成功");
+            this.getOne();
+          }).finally(() => {
+            this.buttonLoading = false;
+          });
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除黑名单参数设置编号为"' + ids + '"的数据项?').then(() => {
+        this.loading = true;
+        return delParameter(ids);
+      }).then(() => {
+        this.loading = false;
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).finally(() => {
+        this.loading = false;
+      });
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.$download.excel('/gas/parameter/export', this.queryParams);
+    }
+  }
+};
+</script>

+ 250 - 0
src/views/zdsz_p1/pipeLength/index.vue

@@ -0,0 +1,250 @@
+<template>
+  <div class="app-container">
+
+    <!--<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="['gas:pipeLength:add']"-->
+        <!--&gt;新增</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="['gas:pipeLength:remove']"-->
+        <!--&gt;删除</el-button>-->
+      <!--</el-col>-->
+<!--&lt;!&ndash;      <el-col :span="1.5">&ndash;&gt;-->
+<!--&lt;!&ndash;        <el-button&ndash;&gt;-->
+<!--&lt;!&ndash;          type="warning"&ndash;&gt;-->
+<!--&lt;!&ndash;          plain&ndash;&gt;-->
+<!--&lt;!&ndash;          icon="el-icon-download"&ndash;&gt;-->
+<!--&lt;!&ndash;          size="mini"&ndash;&gt;-->
+<!--&lt;!&ndash;          :loading="exportLoading"&ndash;&gt;-->
+<!--&lt;!&ndash;          @click="handleExport"&ndash;&gt;-->
+<!--&lt;!&ndash;          v-hasPermi="['gas:pipeLength:export']"&ndash;&gt;-->
+<!--&lt;!&ndash;        >导出</el-button>&ndash;&gt;-->
+<!--&lt;!&ndash;      </el-col>&ndash;&gt;-->
+      <!--<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>-->
+    <!--</el-row>-->
+
+    <el-table v-loading="loading" :data="pipeLengthList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="管子长度" align="center" prop="pipeLength" />
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-view"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['gas:pipeLength:edit']"
+          >详情</el-button>
+          <!--<el-button-->
+            <!--size="mini"-->
+            <!--type="text"-->
+            <!--icon="el-icon-edit"-->
+            <!--@click="handleUpdate(scope.row)"-->
+            <!--v-hasPermi="['gas:pipeLength:edit']"-->
+          <!--&gt;修改</el-button>-->
+          <!--<el-button-->
+            <!--size="mini"-->
+            <!--type="text"-->
+            <!--icon="el-icon-delete"-->
+            <!--@click="handleDelete(scope.row)"-->
+            <!--v-hasPermi="['gas:pipeLength:remove']"-->
+          <!--&gt;删除</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="open" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="管子长度" prop="pipeLength">
+          <el-input v-model="form.pipeLength" placeholder="请输入管子长度" disabled />
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <!--<el-button :loading="buttonLoading" type="primary" @click="submitForm">确 定</el-button>-->
+        <!--<el-button @click="cancel">取 消</el-button>-->
+        <el-button @click="cancel">关 闭</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listPipeLength, getPipeLength, delPipeLength, addPipeLength, updatePipeLength } from "@/api/gas/pipeLength";
+
+export default {
+  name: "PipeLength",
+  data() {
+    return {
+      // 按钮loading
+      buttonLoading: false,
+      // 遮罩层
+      loading: true,
+      // 导出遮罩层
+      exportLoading: false,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 管子长度表格数据
+      pipeLengthList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        pipeLength: [
+          { required: true, message: "管子长度不能为空", trigger: "blur" },
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询管子长度列表 */
+    getList() {
+      this.loading = true;
+      listPipeLength(this.queryParams).then(response => {
+        this.pipeLengthList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: undefined,
+        pipeLength: undefined,
+        delFlag: undefined,
+        createBy: undefined,
+        createTime: undefined,
+        updateBy: undefined,
+        updateTime: undefined
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      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.open = true;
+      this.title = "添加管子长度";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.loading = true;
+      this.reset();
+      const id = row.id || this.ids
+      getPipeLength(id).then(response => {
+        this.loading = false;
+        this.form = response.data;
+        this.open = true;
+        // this.title = "修改管子长度";
+        this.title = "管子长度详情";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          this.buttonLoading = true;
+          if (this.form.id != null) {
+            updatePipeLength(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            }).finally(() => {
+              this.buttonLoading = false;
+            });
+          } else {
+            addPipeLength(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            }).finally(() => {
+              this.buttonLoading = false;
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除管子长度编号为"' + ids + '"的数据项?').then(() => {
+        this.loading = true;
+        return delPipeLength(ids);
+      }).then(() => {
+        this.loading = false;
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).finally(() => {
+        this.loading = false;
+      });
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+        this.$download.excel('/gas/pipeLength/export', this.queryParams);
+    }
+  }
+};
+</script>

+ 251 - 0
src/views/zdsz_p1/pipeType/index.vue

@@ -0,0 +1,251 @@
+<template>
+  <div class="app-container">
+
+
+    <!--<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="['gas:pipeType:add']"-->
+        <!--&gt;新增</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="['gas:pipeType:remove']"-->
+        <!--&gt;删除</el-button>-->
+      <!--</el-col>-->
+<!--&lt;!&ndash;      <el-col :span="1.5">&ndash;&gt;-->
+<!--&lt;!&ndash;        <el-button&ndash;&gt;-->
+<!--&lt;!&ndash;          type="warning"&ndash;&gt;-->
+<!--&lt;!&ndash;          plain&ndash;&gt;-->
+<!--&lt;!&ndash;          icon="el-icon-download"&ndash;&gt;-->
+<!--&lt;!&ndash;          size="mini"&ndash;&gt;-->
+<!--&lt;!&ndash;          :loading="exportLoading"&ndash;&gt;-->
+<!--&lt;!&ndash;          @click="handleExport"&ndash;&gt;-->
+<!--&lt;!&ndash;          v-hasPermi="['gas:pipeType:export']"&ndash;&gt;-->
+<!--&lt;!&ndash;        >导出</el-button>&ndash;&gt;-->
+<!--&lt;!&ndash;      </el-col>&ndash;&gt;-->
+      <!--<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>-->
+    <!--</el-row>-->
+
+    <el-table v-loading="loading" :data="pipeTypeList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="管子类别" align="center" prop="pipeType" />
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-view"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['gas:pipeType:edit']"
+          >详情</el-button>
+          <!--<el-button-->
+            <!--size="mini"-->
+            <!--type="text"-->
+            <!--icon="el-icon-edit"-->
+            <!--@click="handleUpdate(scope.row)"-->
+            <!--v-hasPermi="['gas:pipeType:edit']"-->
+          <!--&gt;修改</el-button>-->
+          <!--<el-button-->
+            <!--size="mini"-->
+            <!--type="text"-->
+            <!--icon="el-icon-delete"-->
+            <!--@click="handleDelete(scope.row)"-->
+            <!--v-hasPermi="['gas:pipeType:remove']"-->
+          <!--&gt;删除</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="open" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="管子类别" prop="pipeType">
+          <el-input v-model="form.pipeType" placeholder="请输入管子类别" disabled />
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <!--<el-button :loading="buttonLoading" type="primary" @click="submitForm">确 定</el-button>-->
+        <!--<el-button @click="cancel">取 消</el-button>-->
+        <el-button @click="cancel">关 闭</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listPipeType, getPipeType, delPipeType, addPipeType, updatePipeType } from "@/api/gas/pipeType";
+
+export default {
+  name: "PipeType",
+  data() {
+    return {
+      // 按钮loading
+      buttonLoading: false,
+      // 遮罩层
+      loading: true,
+      // 导出遮罩层
+      exportLoading: false,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 管子类别表格数据
+      pipeTypeList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        pipeType: [
+          { required: true, message: "管子类别不能为空", trigger: "blur" }
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询管子类别列表 */
+    getList() {
+      this.loading = true;
+      listPipeType(this.queryParams).then(response => {
+        this.pipeTypeList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: undefined,
+        pipeType: undefined,
+        delFlag: undefined,
+        createBy: undefined,
+        createTime: undefined,
+        updateBy: undefined,
+        updateTime: undefined
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      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.open = true;
+      this.title = "添加管子类别";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.loading = true;
+      this.reset();
+      const id = row.id || this.ids
+      getPipeType(id).then(response => {
+        this.loading = false;
+        this.form = response.data;
+        this.open = true;
+        // this.title = "修改管子类别";
+        this.title = "管子类别详情";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          this.buttonLoading = true;
+          if (this.form.id != null) {
+            updatePipeType(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            }).finally(() => {
+              this.buttonLoading = false;
+            });
+          } else {
+            addPipeType(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            }).finally(() => {
+              this.buttonLoading = false;
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除管子类别编号为"' + ids + '"的数据项?').then(() => {
+        this.loading = true;
+        return delPipeType(ids);
+      }).then(() => {
+        this.loading = false;
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).finally(() => {
+        this.loading = false;
+      });
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+        this.$download.excel('/gas/pipeType/export', this.queryParams);
+    }
+  }
+};
+</script>

+ 270 - 0
src/views/zdsz_p1/rotation/index.vue

@@ -0,0 +1,270 @@
+<template>
+  <div class="app-container">
+
+    <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="['gas:rotation:add']"
+        >新增</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="['gas:rotation:remove']"
+        >删除</el-button>
+      </el-col>
+<!--      <el-col :span="1.5">-->
+<!--        <el-button-->
+<!--          type="warning"-->
+<!--          plain-->
+<!--          icon="el-icon-download"-->
+<!--          size="mini"-->
+<!--          :loading="exportLoading"-->
+<!--          @click="handleExport"-->
+<!--          v-hasPermi="['gas:rotation:export']"-->
+<!--        >导出</el-button>-->
+<!--      </el-col>-->
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="rotationList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="标题" align="center" prop="title" />
+      <el-table-column label="图片" align="center" prop="picUrl" >
+        <template slot-scope="scope">
+          <el-image
+            style="width: 100px; height: 100px"
+            :src="scope.row.picUrl"
+            :preview-src-list="[scope.row.picUrl]">
+          </el-image>
+        </template>
+      </el-table-column>
+      <el-table-column label="时间" align="center" prop="time" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.time, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="备注" align="center" prop="remark" />
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['gas:rotation:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['gas:rotation:remove']"
+          >删除</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="open" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="标题" prop="title">
+          <el-input v-model="form.title" placeholder="请输入标题" />
+        </el-form-item>
+        <el-form-item label="图片">
+          <imageUpload v-model="form.picUrl" :limit = "1"/>
+        </el-form-item>
+        <el-form-item label="时间" prop="time">
+          <el-date-picker clearable size="small"
+            v-model="form.time"
+            type="datetime"
+            value-format="yyyy-MM-dd HH:mm:ss"
+            placeholder="选择时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="备注" prop="remark">
+          <el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button :loading="buttonLoading" type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listRotation, getRotation, delRotation, addRotation, updateRotation } from "@/api/gas/rotation";
+
+export default {
+  name: "Rotation",
+  data() {
+    return {
+      // 按钮loading
+      buttonLoading: false,
+      // 遮罩层
+      loading: true,
+      // 导出遮罩层
+      exportLoading: false,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 首页轮播图表格数据
+      rotationList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询首页轮播图列表 */
+    getList() {
+      this.loading = true;
+      listRotation(this.queryParams).then(response => {
+        this.rotationList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: undefined,
+        title: undefined,
+        picUrl: undefined,
+        time: undefined,
+        remark: undefined,
+        delFlag: undefined,
+        createBy: undefined,
+        createTime: undefined,
+        updateBy: undefined,
+        updateTime: undefined
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      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.open = true;
+      this.title = "添加首页轮播图";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.loading = true;
+      this.reset();
+      const id = row.id || this.ids
+      getRotation(id).then(response => {
+        this.loading = false;
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改首页轮播图";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          this.buttonLoading = true;
+          if (this.form.id != null) {
+            updateRotation(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            }).finally(() => {
+              this.buttonLoading = false;
+            });
+          } else {
+            addRotation(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            }).finally(() => {
+              this.buttonLoading = false;
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除首页轮播图编号为"' + ids + '"的数据项?').then(() => {
+        this.loading = true;
+        return delRotation(ids);
+      }).then(() => {
+        this.loading = false;
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).finally(() => {
+        this.loading = false;
+      });
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+        this.$download.excel('/gas/rotation/export', this.queryParams);
+    }
+  }
+};
+</script>

+ 319 - 0
src/views/zdsz_p1/unit/index.vue

@@ -0,0 +1,319 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="单元名" prop="name">
+        <el-input
+          v-model="queryParams.name"
+          placeholder="请输入单元名"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item  label="所属小区" prop="areaId">
+      <el-select  v-model="queryParams.areaId" filterable placeholder="请选择小区" @change="getBuilding(queryParams.areaId) ,resetqueryform()">
+        <el-option v-for="item in areaList" :key="item.id" :value="item.id" :label="item.name" >{{ item.name }}</el-option>
+      </el-select>
+      </el-form-item>
+      <el-form-item  label="所属楼宇" prop="buildingId">
+        <el-select v-model="queryParams.buildingId" filterable placeholder="请选择楼宇">
+          <el-option v-for="item in buildingList" :key="item.id" :value="item.id" :label="item.name">{{ item.name }}</el-option>
+        </el-select>
+      </el-form-item>
+      <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-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="['gas:unit:add']"
+        >新增</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="['gas:unit:remove']"
+        >删除</el-button>
+      </el-col>
+<!--      <el-col :span="1.5">-->
+<!--        <el-button-->
+<!--          type="warning"-->
+<!--          plain-->
+<!--          icon="el-icon-download"-->
+<!--          size="mini"-->
+<!--          :loading="exportLoading"-->
+<!--          @click="handleExport"-->
+<!--          v-hasPermi="['gas:unit:export']"-->
+<!--        >导出</el-button>-->
+<!--      </el-col>-->
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="unitList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="所属小区" align="center" prop="areaName" />
+      <el-table-column label="所属楼宇" align="center" prop="buildingName" />
+      <el-table-column label="单元名" align="center" prop="name" />
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+<!--          <el-button-->
+<!--            size="mini"-->
+<!--            type="text"-->
+<!--            icon="el-icon-edit"-->
+<!--            @click="handleUpdate(scope.row)"-->
+<!--            v-hasPermi="['gas:unit:edit']"-->
+<!--          >修改</el-button>-->
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['gas:unit:remove']"
+          >删除</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="open" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="单元名" prop="name">
+          <el-input v-model="form.name" placeholder="请输入单元名" />
+        </el-form-item>
+        <el-form-item  label="所属小区" prop="areaId">
+        <el-select v-model="form.areaId" filterable placeholder="请选择小区" @change="getBuilding(form.areaId),resetform()">
+          <el-option v-for="item in areaList" :key="item.id" :value="item.id" :label="item.name" >{{ item.name }}</el-option>
+        </el-select>
+        </el-form-item>
+        <el-form-item  label="所属楼宇" prop="buildingId">
+          <el-select v-model="form.buildingId" filterable placeholder="请选择楼宇">
+            <el-option v-for="item in buildingList" :key="item.id" :value="item.id" :label="item.name">{{ item.name }}</el-option>
+          </el-select>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button :loading="buttonLoading" type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listUnit, getUnit,getArea,getBuilding, delUnit, addUnit, updateUnit } from "@/api/gas/unit";
+
+export default {
+  name: "Unit",
+  data() {
+    return {
+      // 按钮loading
+      buttonLoading: false,
+      // 遮罩层
+      loading: true,
+      // 导出遮罩层
+      exportLoading: false,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 单元表格数据
+      unitList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        name: undefined,
+        buildingId: undefined,
+        areaId: undefined,
+      },
+      areaList:[],
+      buildingList:[],
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        name: [
+          { required: true, message: "单元名不能为空", trigger: "blur" }
+        ],
+        buildingId: [
+          { required: true, message: "楼宇id不能为空", trigger: "blur" }
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+    this.getArea();
+  },
+  methods: {
+    /** 查询单元列表 */
+    getList() {
+      this.loading = true;
+      listUnit(this.queryParams).then(response => {
+        this.unitList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    /**小区下拉框*/
+    getArea() {
+      this.loading = true;
+      getArea().then(response => {
+        this.areaList = response.data;
+      });
+    },
+    /**楼宇下拉框*/
+    getBuilding(areaId) {
+      getBuilding(areaId).then(response => {
+        this.buildingList = response.data;
+      });
+    },
+    resetqueryform(){
+      this.queryParams.buildingId = undefined;
+    },
+    resetform(){
+      this.form.buildingId = undefined;
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: undefined,
+        name: undefined,
+        buildingId: undefined,
+        areaId: undefined,
+        delFlag: undefined,
+        createBy: undefined,
+        createTime: undefined,
+        updateBy: undefined,
+        updateTime: undefined
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.buildingList = [];
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加单元";
+      this.buildingList = [];
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.loading = true;
+      this.reset();
+      const id = row.id || this.ids
+      getUnit(id).then(response => {
+        this.loading = false;
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改单元";
+        this.getBuilding(this.form.areaId);
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          this.buttonLoading = true;
+          if (this.form.id != null) {
+            updateUnit(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+              this.getArea();
+            }).finally(() => {
+              this.buttonLoading = false;
+            });
+          } else {
+            addUnit(this.form).then(response => {
+              if(response.data){
+                this.$modal.msgSuccess("新增成功");
+                this.open = false;
+                this.getList();
+                this.getArea();
+              }else{
+                this.$modal.msgError("同一小区、同一楼宇下房屋名称不允许重复,请重新填写!");
+              }
+            }).finally(() => {
+              this.buttonLoading = false;
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除单元编号为"' + ids + '"的数据项?').then(() => {
+        this.loading = true;
+        return delUnit(ids);
+      }).then(() => {
+        this.loading = false;
+        this.getList();
+        this.getArea();
+        this.$modal.msgSuccess("删除成功");
+      }).finally(() => {
+        this.loading = false;
+      });
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+        this.$download.excel('/gas/unit/export', this.queryParams);
+    }
+  }
+};
+</script>

+ 398 - 0
src/views/zdsz_p1/user/index.vue

@@ -0,0 +1,398 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="姓名" prop="name">
+        <el-input
+          v-model="queryParams.name"
+          placeholder="请输入姓名"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="工号" prop="jobNum">
+        <el-input
+          v-model="queryParams.jobNum"
+          placeholder="请输入工号"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+
+      <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-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="['gas:user:add']"
+        >新增</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="['gas:user:remove']"
+        >删除</el-button>
+      </el-col>
+<!--      <el-col :span="1.5">-->
+<!--        <el-button-->
+<!--          type="warning"-->
+<!--          plain-->
+<!--          icon="el-icon-download"-->
+<!--          size="mini"-->
+<!--          :loading="exportLoading"-->
+<!--          @click="handleExport"-->
+<!--          v-hasPermi="['gas:user:export']"-->
+<!--        >导出</el-button>-->
+<!--      </el-col>-->
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="userList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="主键id" align="center" prop="id" v-if="false"/>
+      <el-table-column label="姓名" align="center" prop="name" />
+      <el-table-column label="工号" align="center" prop="jobNum" />
+      <el-table-column label="手机号" align="center" prop="phone" />
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['gas:user:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['gas:user:remove']"
+          >删除</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="open" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="姓名" prop="name">
+          <el-input v-model="form.name" placeholder="请输入姓名" />
+        </el-form-item>
+        <el-form-item label="工号" prop="jobNum">
+          <el-input v-model="form.jobNum" placeholder="请输入工号" />
+        </el-form-item>
+        <el-form-item label="手机号" prop="phone">
+          <el-input v-model="form.phone" placeholder="请输入手机号" />
+        </el-form-item>
+        <el-form-item label="密码" prop="password">
+          <el-input type="password" v-model="form.password" placeholder="请输入密码" />
+        </el-form-item>
+
+
+        <el-form-item label="工程权限" prop="power">
+          <el-select
+            v-model="form.power"
+            placeholder="工程权限"
+            clearable
+            multiple
+            size="small"
+            style="width:100%"
+            @change="powerChange"
+          >
+            <el-option
+              v-for="dict in dict.type.engine_type"
+              :key="dict.value"
+              :label="dict.label"
+              :value="dict.value"
+            />
+          </el-select>
+        </el-form-item>
+        <el-form-item label="民用内部权限" prop="civilPower" v-if="isCivilPower" v-show="isCivilPower">
+          <el-select
+            v-model="form.civilPower"
+            placeholder="民用内部权限"
+            clearable
+            multiple
+            size="small"
+            style="width:100%"
+          >
+            <el-option
+              v-for="dict in dict.type.civil_power_user"
+              :key="dict.value"
+              :label="dict.label"
+              :value="dict.value"
+            />
+          </el-select>
+        </el-form-item>
+
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button :loading="buttonLoading" type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listUser, getForPhone,getForJobnum,getUser, delUser, addUser,updateUser } from "@/api/gas/user";
+
+export default {
+  name: "User",
+  dicts: ['user_type','engine_type','civil_power_user'],
+  data() {
+    // 手机号唯一性验证
+    let validateAnotherPhone = (rule, value, callback) => {
+      console.log(value)
+      console.log(rule)
+      console.log(this.form)
+      let PHONE_REG = /^((0\d{2,3}-{0,1}\d{7,8})|(1[3-9]\d{9}))$/;
+      if (value) {
+        if (!PHONE_REG.test(value)) {
+          callback(new Error('请输入有效的手机号'));
+          return;
+        }
+        getForPhone(value,this.form.id).then(res => {
+              if (res.data===false) {
+                callback('该手机号已存在');
+              } else {
+                callback();
+              }
+            }).catch(err => {
+              callback(new Error(err.data.msg));
+            });
+      } else {
+        callback();
+      }
+    };
+    // 工号唯一性验证
+    let validateAnother = (rule, value, callback) => {
+      if (value) {
+        getForJobnum(value,this.form.id).then(res => {
+              if (res.data===false) {
+                callback('该工号已存在');
+              } else {
+                callback();
+              }
+            }).catch(err => {
+              callback(new Error(err.data.msg));
+            });
+      } else {
+        callback();
+      }
+    };
+    return {
+      // 按钮loading
+      buttonLoading: false,
+      // 遮罩层
+      loading: true,
+      // 导出遮罩层
+      exportLoading: false,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 用户表格数据
+      userList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        name: undefined,
+        jobNum: undefined,
+      },
+      // 工程权限集合
+      isCivilPower:false,
+
+      foremanList:[],
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        name: [
+          { required: true, message: "姓名不能为空", trigger: "blur" }
+        ],
+        jobNum: [
+          { required: true, message: "工号不能为空", trigger: "blur" },
+          { required: true, trigger: 'blur', validator: validateAnother }
+        ],
+
+      }
+    };
+  },
+  created() {
+    this.getList();
+
+  },
+  methods: {
+    /** 查询用户列表 */
+    getList() {
+      this.loading = true;
+      listUser(this.queryParams).then(response => {
+        this.userList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    foreman(role){
+      if (role === "002"){
+        this.foremanForm=true;
+      }else {
+        this.foremanForm=false;
+        this.form.parentId = undefined;
+      }
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: undefined,
+        name: undefined,
+        jobNum: undefined,
+        phone: undefined,
+        delFlag: undefined,
+        createBy: undefined,
+        createTime: undefined,
+        updateBy: undefined,
+        updateTime: undefined,
+        power: undefined,
+        civilPower: undefined
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      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.open = true;
+      this.title = "添加用户";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.loading = true;
+      this.reset();
+      const id = row.id || this.ids
+      getUser(id).then(response => {
+        this.loading = false;
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改用户";
+        this.form.power = response.data.power.split(",");
+        if(response.data.power.indexOf('001')!=-1){
+          this.isCivilPower=true;
+        }
+        this.form.civilPower = response.data.civilPower.split(",");
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if(!this.isCivilPower){
+            this.form.civilPower=null;
+          }else {
+            this.form.civilPower = this.form.civilPower.toString();
+          }
+          this.form.power = this.form.power.toString();
+          this.buttonLoading = true;
+          if (this.form.id != null) {
+            updateUser(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            }).finally(() => {
+              this.buttonLoading = false;
+            });
+          } else {
+            addUser(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            }).finally(() => {
+              this.buttonLoading = false;
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除用户编号为"' + ids + '"的数据项?').then(() => {
+        this.loading = true;
+        return delUser(ids);
+      }).then(() => {
+        this.loading = false;
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).finally(() => {
+        this.loading = false;
+      });
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+        this.$download.excel('/gas/user/export', this.queryParams);
+    },
+    powerChange(val){
+      if(val.indexOf("001") > -1){
+        this.isCivilPower=true;
+      }else{
+        this.isCivilPower=false;
+      }
+    }
+  }
+};
+</script>

+ 240 - 0
src/views/zdsz_p1/valve/index.vue

@@ -0,0 +1,240 @@
+<template>
+  <div class="app-container">
+
+
+    <!--<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="['gas:valve:add']"-->
+        <!--&gt;新增</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="['gas:valve:remove']"-->
+        <!--&gt;删除</el-button>-->
+      <!--</el-col>-->
+      <!--<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>-->
+    <!--</el-row>-->
+
+    <el-table v-loading="loading" :data="valveList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="主键id" align="center" prop="id" v-if="false"/>
+      <el-table-column label="自闭阀类别" align="center" prop="valveType" />
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+              size="mini"
+              type="text"
+              icon="el-icon-view"
+              @click="handleUpdate(scope.row)"
+              v-hasPermi="['gas:valve:edit']"
+          >详情</el-button>
+          <!--<el-button-->
+            <!--size="mini"-->
+            <!--type="text"-->
+            <!--icon="el-icon-edit"-->
+            <!--@click="handleUpdate(scope.row)"-->
+            <!--v-hasPermi="['gas:valve:edit']"-->
+          <!--&gt;修改</el-button>-->
+          <!--<el-button-->
+            <!--size="mini"-->
+            <!--type="text"-->
+            <!--icon="el-icon-delete"-->
+            <!--@click="handleDelete(scope.row)"-->
+            <!--v-hasPermi="['gas:valve:remove']"-->
+          <!--&gt;删除</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="open" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="100px">
+        <el-form-item label="自闭阀类别" prop="valveType">
+          <el-input v-model="form.valveType" placeholder="请输入自闭阀类别" disabled />
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <!--<el-button :loading="buttonLoading" type="primary" @click="submitForm">确 定</el-button>-->
+        <!--<el-button @click="cancel">取 消</el-button>-->
+        <el-button @click="cancel">关 闭</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listValve, getValve, delValve, addValve, updateValve } from "@/api/gas/valve";
+
+export default {
+  name: "Valve",
+  data() {
+    return {
+      // 按钮loading
+      buttonLoading: false,
+      // 遮罩层
+      loading: true,
+      // 导出遮罩层
+      exportLoading: false,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 自闭阀类别表格数据
+      valveList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        valveType: [
+          { required: true, message: "自闭阀类别不能为空", trigger: "blur" }
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询自闭阀类别列表 */
+    getList() {
+      this.loading = true;
+      listValve(this.queryParams).then(response => {
+        this.valveList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: undefined,
+        valveType: undefined,
+        delFlag: undefined,
+        createBy: undefined,
+        createTime: undefined,
+        updateBy: undefined,
+        updateTime: undefined
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      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.open = true;
+      this.title = "添加自闭阀类别";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.loading = true;
+      this.reset();
+      const id = row.id || this.ids
+      getValve(id).then(response => {
+        this.loading = false;
+        this.form = response.data;
+        this.open = true;
+        // this.title = "修改自闭阀类别";
+        this.title = "自闭阀类别详情";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          this.buttonLoading = true;
+          if (this.form.id != null) {
+            updateValve(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            }).finally(() => {
+              this.buttonLoading = false;
+            });
+          } else {
+            addValve(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            }).finally(() => {
+              this.buttonLoading = false;
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除自闭阀类别编号为"' + ids + '"的数据项?').then(() => {
+        this.loading = true;
+        return delValve(ids);
+      }).then(() => {
+        this.loading = false;
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).finally(() => {
+        this.loading = false;
+      });
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+        this.$download.excel('/gas/valve/export', this.queryParams);
+    }
+  }
+};
+</script>

+ 538 - 0
src/views/zdsz_p1/weixiu/index.vue

@@ -0,0 +1,538 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="行政区" prop="district" >
+        <el-select v-model="queryParams.district" placeholder="请选择行政区">
+          <el-option
+            v-for="dict in dict.type.district"
+            :key="dict.value"
+            :label="dict.label"
+            :value="dict.value"
+          ></el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item  label="所属小区" prop="areaId">
+        <el-select v-model="queryParams.areaId" filterable clearable placeholder="请选择所属小区"  @change="getBuilding(queryParams.areaId),resetqueryform()">
+          <el-option v-for="item in areaList" :key="item.id" :value="item.id" :label="item.name">{{ item.name }}</el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item  label="所属楼宇" prop="buildingId">
+        <el-select v-model="queryParams.buildingId" filterable clearable placeholder="请选择楼宇" @change="getUnit(queryParams.buildingId),resetqueryunitform()">
+          <el-option v-for="item in buildingList" :key="item.id" :value="item.id" :label="item.name">{{ item.name }}</el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item  label="所属单元" prop="unitId">
+        <el-select v-model="queryParams.unitId" filterable clearable placeholder="请选择单元" @change="getHouse(queryParams.unitId),resetqueryhouseform()">
+          <el-option v-for="item in unitList" :key="item.id" :value="item.id" :label="item.name">{{ item.name }}</el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item  label="房屋" prop="houseId">
+        <el-select v-model="queryParams.houseId" filterable clearable placeholder="请选择房屋">
+          <el-option v-for="item in houseList" :key="item.id" :value="item.id" :label="item.name">{{ item.name }}</el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="职工" prop="userId">
+        <el-select v-model="queryParams.userId" filterable placeholder="请选择职工">
+          <el-option v-for="item in workerList" :key="item.id" :value="item.id" :label="item.name">{{
+              item.name
+            }}
+          </el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="开始时间" prop="starTime">
+        <el-date-picker clearable size="small"
+                        v-model="queryParams.starTime"
+                        type="date"
+                        value-format="yyyy-MM-dd"
+                        placeholder="选择日期">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="结束时间" prop="endTime">
+        <el-date-picker clearable size="small"
+                        v-model="queryParams.endTime"
+                        type="date"
+                        value-format="yyyy-MM-dd"
+                        placeholder="选择日期">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="工号" prop="jobNum">
+        <el-input
+          v-model="queryParams.jobNum"
+          :maxlength="4"
+          placeholder="请输入工号前四位"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <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-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="['gas:order:add']"
+        >新增
+        </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="['gas:order:remove']"
+        >删除</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          :loading="exportLoading"
+          @click="handleExport"
+          v-hasPermi="['gas:weixiu:getListWeiXiuExport']"
+        >导出</el-button>
+      </el-col>
+<!--      <el-col :span="1.5">-->
+<!--        <el-button-->
+<!--          type="warning"-->
+<!--          plain-->
+<!--          icon="el-icon-download"-->
+<!--          size="mini"-->
+<!--          :loading="exportLoading"-->
+<!--          @click="backup"-->
+<!--          v-hasPermi="['gas:order:export']"-->
+<!--        >备份</el-button>-->
+<!--      </el-col>-->
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="orderList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center"/>
+      <el-table-column label="职工" align="center" prop="userName"/>
+      <el-table-column label="房屋" align="center" prop="house"/>
+      <el-table-column label="创建时间" align="center" prop="time" />
+      <el-table-column label="修改时间" align="center" prop="updateTime" />
+      <el-table-column label="照片" align="center" prop="photoList">
+        <template slot-scope="scope">
+          <el-image
+            v-if="scope.row.photoList.length> 0"
+            style="width: 100px; height: 100px"
+            :src="scope.row.photoList[0]"
+            :preview-src-list="scope.row.photoList">
+          </el-image>
+        </template>
+      </el-table-column>
+      <el-table-column label="是否维修" align="center" prop="whether"/>
+      <el-table-column label="备注" align="center" prop="remark"/>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['gas:order:edit']"
+          >修改
+          </el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['gas:order:remove']"
+          >删除</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="open" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="照片" prop="photoList">
+          <imageUpload v-model="form.photoList"/>
+        </el-form-item>
+        <el-form-item label="职工" prop="userId">
+          <el-select v-model="form.userId" filterable placeholder="请选择职工">
+            <el-option v-for="item in workerList" :key="item.id" :value="item.id" :label="item.name">{{
+                item.name
+              }}
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="所属小区" prop="areaId">
+          <el-select v-model="form.areaId" filterable placeholder="请选择小区"
+                     @change="getBuilding(form.areaId),resetform()">
+            <el-option v-for="item in areaList" :key="item.id" :value="item.id" :label="item.name">{{
+                item.name
+              }}
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="所属楼宇" prop="buildingId">
+          <el-select v-model="form.buildingId" filterable placeholder="请选择楼宇"
+                     @change="getUnit(form.buildingId),resetunitform()">
+            <el-option v-for="item in buildingList" :key="item.id" :value="item.id" :label="item.name">{{
+                item.name
+              }}
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="所属单元" prop="unitId">
+          <el-select v-model="form.unitId" filterable placeholder="请选择单元"
+                     @change="getHouse(form.unitId),resethouseform()">
+            <el-option v-for="item in unitList" :key="item.id" :value="item.id" :label="item.name">{{
+                item.name
+              }}
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="房屋" prop="houseId">
+          <el-select v-model="form.houseId" filterable placeholder="请选择房屋">
+            <el-option v-for="item in houseList" :key="item.id" :value="item.id" :label="item.name">{{item.name}}
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="是否维修" prop="whether">
+          <el-select v-model="form.whether" filterable placeholder="请选择">
+            <el-option v-for="item in whetherList" :value="item.value" :label="item.label">{{item.label}}</el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="备注" prop="remark">
+          <el-input v-model="form.remark" type="textarea" placeholder="请输入内容"/>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button :loading="buttonLoading" type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import {
+  listOrder,
+  getOrderForStatus,
+  getListWeiXiu,
+  getHouse,
+  backup,
+  getUnit,
+  getArea,
+  getBuilding,
+  getOrder,
+  getWorker,
+  getPipeType,
+  getValveType,
+  getPipeLength,
+  delOrder,
+  addOrder,
+  submitY,
+  submitN,
+  updateOrder
+} from "@/api/gas/order";
+
+export default {
+  name: "Order",
+  dicts: ['district'],
+  data() {
+    return {
+      whetherList:[
+        {
+          value: '是',
+          label: '是',
+        },
+        {
+          value: '否',
+          label: '否',
+        }
+      ],
+      // 按钮loading
+      buttonLoading: false,
+      // 遮罩层
+      loading: true,
+      // 导出遮罩层
+      exportLoading: false,
+      //职工下拉
+      workerList: [],
+      pipeLengthList: [],
+      pipeTypeList: [],
+      valveTypeList: [],
+      areaList: [],
+      buildingList: [],
+      unitList: [],
+      houseList: [],
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 工程管理表格数据
+      orderList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      open1: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        serviceType: undefined,
+        starTime: undefined,
+        endTime: undefined,
+        areaId: undefined,
+        buildingId: undefined,
+        unitId: undefined,
+        houseId: undefined,
+        userId: undefined,
+        orderStatus: undefined,
+        examineStatus: undefined,
+        jobNum: undefined,
+      },
+      // 表单参数
+      form: {
+        serviceType: '005',
+        orderStatus:'002',
+        examineStatus:'001'
+      },
+      // 表单校验
+      rules: {
+        photoList: [
+          {required: true, message: "请上传照片", trigger: "change"}
+        ],
+        userId: [
+          {required: true, message: "职工不能为空", trigger: "blur"}
+        ],
+        houseId: [
+          {required: true, message: "房屋不能为空", trigger: "change"}
+
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+    this.getWorker();
+    this.getArea();
+  },
+  methods: {
+    backup() {
+      backup().then(response => {
+      });
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.$download.excel('/gas/order/getListWeiXiuExport', this.queryParams);
+    },
+    /** 查询工程管理列表 */
+    getList() {
+      this.loading = true;
+      getListWeiXiu(this.queryParams).then(response => {
+        this.orderList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    /**职工下拉框*/
+    getWorker() {
+      getWorker().then(response => {
+        this.workerList = response.data;
+      });
+    },
+
+    /**小区下拉框*/
+    getArea() {
+      getArea().then(response => {
+        this.areaList = response.data;
+      });
+    },
+    /**楼宇下拉框*/
+    getBuilding(areaId) {
+      this.form.areaName =  this.areaList.filter(item => item.id == areaId )[0].name
+      getBuilding(areaId).then(response => {
+        this.buildingList = response.data;
+        this.getUnit(this.form.buildingId);
+      });
+    },
+    getUnit(buildingId) {
+      this.form.buildingName =  this.buildingList.filter(item => item.id == buildingId )[0].name
+      getUnit(buildingId).then(response => {
+        this.unitList = response.data;
+        this.getHouse(this.form.unitId);
+      });
+    },
+    getHouse(unitId) {
+      this.form.unitName =  this.unitList.filter(item => item.id == unitId )[0].name
+      getHouse(unitId).then(response => {
+        this.houseList = response.data;
+      });
+    },
+    /**
+     * 联级清空
+     */
+    resetform() {
+      this.form.buildingId = undefined;
+      this.form.unitId = undefined;
+      this.form.houseId = undefined;
+    },
+    resetunitform() {
+      this.form.unitId = undefined;
+      this.form.houseId = undefined;
+    },
+    resethouseform() {
+      this.form.houseId = undefined;
+    },
+    resetqueryform(){
+      this.queryParams.buildingId = undefined;
+      this.queryParams.unitId = undefined;
+      this.queryParams.houseId = undefined;
+    },
+    resetqueryunitform(){
+      this.queryParams.unitId = undefined;
+      this.queryParams.houseId = undefined;
+    },
+    resetqueryhouseform(){
+      this.queryParams.houseId = undefined;
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: undefined,
+        serviceType: '005',
+        photoList: [],
+        userId: undefined,
+        unitId: undefined,
+        buildingId: undefined,
+        areaId: undefined,
+        houseId: undefined,
+        remark: undefined,
+        delFlag: undefined,
+        createBy: undefined,
+        createTime: undefined,
+        updateBy: undefined,
+        updateTime: undefined,
+        orderStatus:'002',
+        examineStatus:'001',
+        whether:undefined
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      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.open = true;
+      this.title = "添加";
+      this.getWorker();
+      this.getArea();
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      this.getWorker();
+      this.getArea();
+      const id = row.id || this.ids
+      getOrder(id).then(response => {
+        this.loading = false;
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改";
+        this.getBuilding(this.form.areaId);
+
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          this.buttonLoading = true;
+          if (this.form.id != null) {
+            if (typeof this.form.photoList==='string'){
+              this.form.photoList = this.form.photoList.split(',')
+            }
+            updateOrder(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+              this.getWorker();
+            }).finally(() => {
+              this.buttonLoading = false;
+            });
+          } else {
+            this.form.photoList = this.form.photoList.split(',')
+            addOrder(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+              this.getWorker();
+            }).finally(() => {
+              this.buttonLoading = false;
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除工程管理编号为"' + ids + '"的数据项?').then(() => {
+        this.loading = true;
+        return delOrder(ids);
+      }).then(() => {
+        this.loading = false;
+        this.getList();
+        this.getWorker();
+        this.$modal.msgSuccess("删除成功");
+      }).finally(() => {
+        this.loading = false;
+      });
+    },
+
+  }
+};
+</script>