chenjingyu 4 years ago
parent
commit
d7720fb2ba
  1. 2
      src/app/data-collection/fire-force/fire-force.component.html
  2. 14
      src/app/data-collection/fire-force/fire-force.component.ts
  3. 2
      src/app/data-collection/linkage-forces/linkage-forces.component.html
  4. 94
      src/app/data-collection/linkage-forces/linkage-forces.component.ts
  5. 2
      src/app/data-collection/water-collection/water-collection.component.html
  6. 16
      src/app/data-collection/water-collection/water-collection.component.ts
  7. 80
      src/app/gis-management/gis-labeling/gis-labeling.component.ts
  8. 5
      src/app/key-unit/edit-plan-info/edit-plan-info.component.scss
  9. 226
      src/app/key-unit/key-unit-management/key-unit-management.component.html
  10. 5
      src/app/key-unit/view-unit-details/view-unit-details.component.scss
  11. 18
      src/app/key-unit/water-road/water-road.component.ts
  12. 2
      src/app/plan-audit/fireforce-audit/fireforce-audit.component.ts
  13. 32
      src/app/plan-audit/linkageforces-audit/linkageforces-audit.component.ts
  14. 2
      src/app/plan-audit/water-audit/water-audit.component.ts
  15. 4
      src/app/plan-management/entry-plan/entry-plan.component.html
  16. 644
      src/app/plan-management/maintain-up/maintain-up.component.html
  17. 347
      src/app/tabbar/tabbar.component.html
  18. 4
      src/app/ui/collection-tools-building/collection-tools.component.html
  19. 7
      src/app/ui/collection-tools-building/collection-tools.component.ts
  20. 12
      src/app/ui/collection-tools-plan/collection-tools.component.html
  21. 113
      src/app/ui/collection-tools-plan/collection-tools.component.ts
  22. 11
      src/app/ui/collection-tools-plan/leftFunctionalDomain.ts
  23. 4
      src/app/ui/collection-tools/collection-tools.component.html
  24. 9
      src/app/ui/collection-tools/collection-tools.component.ts
  25. 7
      src/app/ui/collection-tools/leftFunctionalDomain.ts
  26. 5
      src/app/working-area/working-area.component.ts
  27. 0
      src/assets/fireForcesMarkers/dadui.png
  28. 0
      src/assets/fireForcesMarkers/qita.png
  29. 0
      src/assets/fireForcesMarkers/zhidui.png
  30. 0
      src/assets/fireForcesMarkers/zhongdui.png
  31. 0
      src/assets/fireForcesMarkers/zongdui.png
  32. 0
      src/assets/images/canyin.png
  33. 0
      src/assets/images/changfang.png
  34. 0
      src/assets/images/chuguanlei.png
  35. 0
      src/assets/images/czsf.png
  36. 0
      src/assets/images/dingwei.png
  37. 0
      src/assets/images/dixia.png
  38. 0
      src/assets/images/fxcsc.png
  39. 0
      src/assets/images/guidaojiaotong.png
  40. 0
      src/assets/images/gujianzhu.png
  41. 0
      src/assets/images/ldll.png
  42. 0
      src/assets/images/qita.png
  43. 0
      src/assets/images/shangchangchaoshi.png
  44. 0
      src/assets/images/suidao.png
  45. 0
      src/assets/images/sysf.png
  46. 0
      src/assets/images/szxhs.png
  47. 0
      src/assets/images/trsy.png
  48. 0
      src/assets/images/weihuapin.png
  49. 0
      src/assets/images/xfll.png
  50. 0
      src/assets/images/xuexiao.png
  51. 0
      src/assets/images/xxsq.png
  52. 0
      src/assets/images/yingjuyuan.png
  53. 0
      src/assets/images/yiyuan.png
  54. 0
      src/assets/images/yule.png
  55. 0
      src/assets/images/zhanlanjianzhu.png
  56. 0
      src/assets/linkageForces/anjian.png
  57. 0
      src/assets/linkageForces/dianliju.png
  58. 0
      src/assets/linkageForces/gongan.png
  59. 0
      src/assets/linkageForces/haishi.png
  60. 0
      src/assets/linkageForces/huanbaoju.png
  61. 0
      src/assets/linkageForces/jiaotong.png
  62. 0
      src/assets/linkageForces/minzheng.png
  63. 0
      src/assets/linkageForces/qixiangju.png
  64. 0
      src/assets/linkageForces/ranqiju.png
  65. 0
      src/assets/linkageForces/shizheng.png
  66. 0
      src/assets/linkageForces/shuili.png
  67. 0
      src/assets/linkageForces/tongxin.png
  68. 0
      src/assets/linkageForces/yiliao.png
  69. 0
      src/assets/linkageForces/yingjiguanli.png
  70. 0
      src/assets/linkageForces/zhujian.png
  71. 0
      src/assets/linkageForcesMarkers/anjian.png
  72. 0
      src/assets/linkageForcesMarkers/dianliju.png
  73. 0
      src/assets/linkageForcesMarkers/gongan.png
  74. 0
      src/assets/linkageForcesMarkers/haishi.png
  75. 0
      src/assets/linkageForcesMarkers/huanbaoju.png
  76. 0
      src/assets/linkageForcesMarkers/jiaotong.png
  77. 0
      src/assets/linkageForcesMarkers/minzheng.png
  78. 0
      src/assets/linkageForcesMarkers/qixiangju.png
  79. 0
      src/assets/linkageForcesMarkers/ranqiju.png
  80. 0
      src/assets/linkageForcesMarkers/shizheng.png
  81. 0
      src/assets/linkageForcesMarkers/shuili.png
  82. 0
      src/assets/linkageForcesMarkers/tongxin.png
  83. 0
      src/assets/linkageForcesMarkers/yiliao.png
  84. 0
      src/assets/linkageForcesMarkers/yingjiguanli.png
  85. 0
      src/assets/linkageForcesMarkers/zhujian.png
  86. 0
      src/assets/waterMarkers/fxcsc.png
  87. 0
      src/assets/waterMarkers/szxhs.png
  88. 0
      src/assets/waterMarkers/trsy.png

2
src/app/data-collection/fire-force/fire-force.component.html

@ -107,7 +107,7 @@
</div>
<div class="detailsbox" *ngIf="selectedFireForceLevel != null" [ngClass]="{'noHeight': isPutDown}">
<div class="putDown" (click)="putDown()">
<img src="/assets/images/向下收起.png" alt="">
<img src="/assets/images/xxsq.png" alt="">
</div>
<div class="masklayer" *ngIf="isMasklayer">
<mat-spinner [diameter]='30'></mat-spinner>

14
src/app/data-collection/fire-force/fire-force.component.ts

@ -73,15 +73,15 @@ export class FireForceComponent implements OnInit {
list.forEach((item) => {
let image
if(item.forceType == 2){
image = '/assets/fireForcesMarkers/其他.png'
image = '/assets/fireForcesMarkers/qita.png'
}else if(item.level == 0){
image = '/assets/fireForcesMarkers/总队.png'
image = '/assets/fireForcesMarkers/zongdui.png'
}else if(item.level == 1){
image = '/assets/fireForcesMarkers/支队.png'
image = '/assets/fireForcesMarkers/zhidui.png'
}else if(item.level == 2){
image = '/assets/fireForcesMarkers/大队.png'
image = '/assets/fireForcesMarkers/dadui.png'
}else if(item.level == 3){
image = '/assets/fireForcesMarkers/中队.png'
image = '/assets/fireForcesMarkers/zhongdui.png'
}
// 用于点集合的数组
item.fireForceDetailInfo.location ?
@ -798,11 +798,11 @@ export class FireForceComponent implements OnInit {
isMapLabel:boolean = false //是否已经标记坐标
newPositionMarkerContent:any =
'<div class="custom-content-marker">' +
' <img src="/assets/images/定位.png">' +
' <img src="/assets/images/dingwei.png">' +
'</div>'
newPositionMarkerContentBtn:any =
'<div class="custom-content-marker">' +
' <img src="/assets/images/定位.png">' +
' <img src="/assets/images/dingwei.png">' +
' <div class="btnbox"><img id="setPositionOk" src="/assets/images/ok.png"><span>|</span><img id="setPositionClose" src="/assets/images/close.png"></div>' +
'</div>'
//创建地图

2
src/app/data-collection/linkage-forces/linkage-forces.component.html

@ -98,7 +98,7 @@
<span>下载中...({{progressBarValue}}%)</span>
</div>
<div class="putDown" (click)="putDown()">
<img src="/assets/images/向下收起.png" alt="">
<img src="/assets/images/xxsq.png" alt="">
</div>
<div class="tabsbox">
<div class="tabs">

94
src/app/data-collection/linkage-forces/linkage-forces.component.ts

@ -40,21 +40,21 @@ export class LinkageForcesComponent implements OnInit {
{id:5,name:'90%-100%'}
]
checkBoxList:any[] = [
{id:0,name:'安监',imgUrl:'/assets/linkageForces/安监.png',isChecked:false},
{id:1,name:'电力局',imgUrl:'/assets/linkageForces/电力局.png',isChecked:false},
{id:2,name:'公安',imgUrl:'/assets/linkageForces/公安.png',isChecked:false},
{id:3,name:'海事',imgUrl:'/assets/linkageForces/海事.png',isChecked:false},
{id:4,name:'环保局',imgUrl:'/assets/linkageForces/环保局.png',isChecked:false},
{id:5,name:'交通',imgUrl:'/assets/linkageForces/交通.png',isChecked:false},
{id:6,name:'民政',imgUrl:'/assets/linkageForces/民政.png',isChecked:false},
{id:7,name:'气象局',imgUrl:'/assets/linkageForces/气象局.png',isChecked:false},
{id:8,name:'燃气局',imgUrl:'/assets/linkageForces/燃气局.png',isChecked:false},
{id:9,name:'市政',imgUrl:'/assets/linkageForces/市政.png',isChecked:false},
{id:10,name:'水利',imgUrl:'/assets/linkageForces/水利.png',isChecked:false},
{id:11,name:'通信',imgUrl:'/assets/linkageForces/通信.png',isChecked:false},
{id:12,name:'医疗',imgUrl:'/assets/linkageForces/医疗.png',isChecked:false},
{id:13,name:'应急管理',imgUrl:'/assets/linkageForces/应急管理.png',isChecked:false},
{id:14,name:'住建',imgUrl:'/assets/linkageForces/住建.png',isChecked:false}
{id:0,name:'安监',imgUrl:'/assets/linkageForces/anjian.png',isChecked:false},
{id:1,name:'电力局',imgUrl:'/assets/linkageForces/dianliju.png',isChecked:false},
{id:2,name:'公安',imgUrl:'/assets/linkageForces/gongan.png',isChecked:false},
{id:3,name:'海事',imgUrl:'/assets/linkageForces/haishi.png',isChecked:false},
{id:4,name:'环保局',imgUrl:'/assets/linkageForces/huanbaoju.png',isChecked:false},
{id:5,name:'交通',imgUrl:'/assets/linkageForces/jiaotong.png',isChecked:false},
{id:6,name:'民政',imgUrl:'/assets/linkageForces/minzheng.png',isChecked:false},
{id:7,name:'气象局',imgUrl:'/assets/linkageForces/qixiangju.png',isChecked:false},
{id:8,name:'燃气局',imgUrl:'/assets/linkageForces/ranqiju.png',isChecked:false},
{id:9,name:'市政',imgUrl:'/assets/linkageForces/shizheng.png',isChecked:false},
{id:10,name:'水利',imgUrl:'/assets/linkageForces/shuili.png',isChecked:false},
{id:11,name:'通信',imgUrl:'/assets/linkageForces/tongxin.png',isChecked:false},
{id:12,name:'医疗',imgUrl:'/assets/linkageForces/yiliao.png',isChecked:false},
{id:13,name:'应急管理',imgUrl:'/assets/linkageForces/yingjiguanli.png',isChecked:false},
{id:14,name:'住建',imgUrl:'/assets/linkageForces/zhujian.png',isChecked:false}
]
//勾选力量类型checkbox在地图上显示marker
checkBoxChange(){
@ -85,35 +85,35 @@ export class LinkageForcesComponent implements OnInit {
list.forEach((item) => {
let image
if(item.linkageForceType == 0){//消火栓
image = '/assets/linkageForcesMarkers/安监.png'
image = '/assets/linkageForcesMarkers/anjian.png'
}else if(item.linkageForceType == 1){//消防水池
image = '/assets/linkageForcesMarkers/电力局.png'
image = '/assets/linkageForcesMarkers/dianliju.png'
}else if(item.linkageForceType == 2){//天然联动力量
image = '/assets/linkageForcesMarkers/公安.png'
image = '/assets/linkageForcesMarkers/gongan.png'
}else if(item.linkageForceType == 3){//天然水源
image = '/assets/linkageForcesMarkers/海事.png'
image = '/assets/linkageForcesMarkers/haishi.png'
}else if(item.linkageForceType == 4){//天然水源
image = '/assets/linkageForcesMarkers/环保局.png'
image = '/assets/linkageForcesMarkers/huanbaoju.png'
}else if(item.linkageForceType == 5){//天然水源
image = '/assets/linkageForcesMarkers/交通.png'
image = '/assets/linkageForcesMarkers/jiaotong.png'
}else if(item.linkageForceType == 6){//天然水源
image = '/assets/linkageForcesMarkers/民政.png'
image = '/assets/linkageForcesMarkers/minzheng.png'
}else if(item.linkageForceType == 7){//天然水源
image = '/assets/linkageForcesMarkers/气象局.png'
image = '/assets/linkageForcesMarkers/qixiangju.png'
}else if(item.linkageForceType == 8){//天然水源
image = '/assets/linkageForcesMarkers/燃气局.png'
image = '/assets/linkageForcesMarkers/ranqiju.png'
}else if(item.linkageForceType == 9){//天然水源
image = '/assets/linkageForcesMarkers/市政.png'
image = '/assets/linkageForcesMarkers/shizheng.png'
}else if(item.linkageForceType == 10){//天然水源
image = '/assets/linkageForcesMarkers/水利.png'
image = '/assets/linkageForcesMarkers/shuili.png'
}else if(item.linkageForceType == 11){//天然水源
image = '/assets/linkageForcesMarkers/通信.png'
image = '/assets/linkageForcesMarkers/tongxin.png'
}else if(item.linkageForceType == 12){//天然水源
image = '/assets/linkageForcesMarkers/医疗.png'
image = '/assets/linkageForcesMarkers/yiliao.png'
}else if(item.linkageForceType == 13){//天然水源
image = '/assets/linkageForcesMarkers/应急管理.png'
image = '/assets/linkageForcesMarkers/yingjiguanli.png'
}else if(item.linkageForceType == 14){//天然水源
image = '/assets/linkageForcesMarkers/住建.png'
image = '/assets/linkageForcesMarkers/zhujian.png'
}
// 用于点集合的数组
if(item.location && item.location.x){
@ -517,11 +517,11 @@ export class LinkageForcesComponent implements OnInit {
isMapLabel:boolean = false //是否已经标记坐标
newPositionMarkerContent:any =
'<div class="custom-content-marker">' +
' <img src="/assets/images/定位.png">' +
' <img src="/assets/images/dingwei.png">' +
'</div>'
newPositionMarkerContentBtn:any =
'<div class="custom-content-marker">' +
' <img src="/assets/images/定位.png">' +
' <img src="/assets/images/dingwei.png">' +
' <div class="btnbox"><img id="setPositionOk" src="/assets/images/ok.png"><span>|</span><img id="setPositionClose" src="/assets/images/close.png"></div>' +
'</div>'
//创建地图
@ -919,21 +919,21 @@ export class AddLinkageForce {
addList:any = [
{id:0,name:'安监',imgUrl:'/assets/linkageForces/安监.png'},
{id:1,name:'电力局',imgUrl:'/assets/linkageForces/电力局.png'},
{id:2,name:'公安',imgUrl:'/assets/linkageForces/公安.png'},
{id:3,name:'海事',imgUrl:'/assets/linkageForces/海事.png'},
{id:4,name:'环保局',imgUrl:'/assets/linkageForces/环保局.png'},
{id:5,name:'交通',imgUrl:'/assets/linkageForces/交通.png'},
{id:6,name:'民政',imgUrl:'/assets/linkageForces/民政.png'},
{id:7,name:'气象局',imgUrl:'/assets/linkageForces/气象局.png'},
{id:8,name:'燃气局',imgUrl:'/assets/linkageForces/燃气局.png'},
{id:9,name:'市政',imgUrl:'/assets/linkageForces/市政.png'},
{id:10,name:'水利',imgUrl:'/assets/linkageForces/水利.png'},
{id:11,name:'通信',imgUrl:'/assets/linkageForces/通信.png'},
{id:12,name:'医疗',imgUrl:'/assets/linkageForces/医疗.png'},
{id:13,name:'应急管理',imgUrl:'/assets/linkageForces/应急管理.png'},
{id:14,name:'住建',imgUrl:'/assets/linkageForces/住建.png'}
{id:0,name:'安监',imgUrl:'/assets/linkageForces/anjian.png'},
{id:1,name:'电力局',imgUrl:'/assets/linkageForces/dianliju.png'},
{id:2,name:'公安',imgUrl:'/assets/linkageForces/gongan.png'},
{id:3,name:'海事',imgUrl:'/assets/linkageForces/haishi.png'},
{id:4,name:'环保局',imgUrl:'/assets/linkageForces/huanbaoju.png'},
{id:5,name:'交通',imgUrl:'/assets/linkageForces/jiaotong.png'},
{id:6,name:'民政',imgUrl:'/assets/linkageForces/minzheng.png'},
{id:7,name:'气象局',imgUrl:'/assets/linkageForces/qixiangju.png'},
{id:8,name:'燃气局',imgUrl:'/assets/linkageForces/ranqiju.png'},
{id:9,name:'市政',imgUrl:'/assets/linkageForces/shizheng.png'},
{id:10,name:'水利',imgUrl:'/assets/linkageForces/shuili.png'},
{id:11,name:'通信',imgUrl:'/assets/linkageForces/tongxin.png'},
{id:12,name:'医疗',imgUrl:'/assets/linkageForces/yiliao.png'},
{id:13,name:'应急管理',imgUrl:'/assets/linkageForces/yingjiguanli.png'},
{id:14,name:'住建',imgUrl:'/assets/linkageForces/zhujian.png'}
]
selectedFireForceTypeIndex:any = 0
selecteAddType(item,key){

2
src/app/data-collection/water-collection/water-collection.component.html

@ -72,7 +72,7 @@
</div>
<div class="detailsbox" *ngIf="selectedWaterTypeIndex != null" [ngClass]="{'noHeight': isPutDown}">
<div class="putDown" (click)="putDown()">
<img src="/assets/images/向下收起.png" alt="">
<img src="/assets/images/xxsq.png" alt="">
</div>
<div class="tabsbox">
<div class="tabs">

16
src/app/data-collection/water-collection/water-collection.component.ts

@ -65,11 +65,11 @@ export class WaterCollectionComponent implements OnInit {
list.forEach((item) => {
let image
if(item.waterSourceType == 0){//消火栓
image = '/assets/waterMarkers/市政消火栓.png'
image = '/assets/waterMarkers/szxhs.png'
}else if(item.waterSourceType == 1){//消防水池
image = '/assets/waterMarkers/方形储水池.png'
image = '/assets/waterMarkers/fxcsc.png'
}else if(item.waterSourceType == 2){//天然水源
image = '/assets/waterMarkers/天然水源.png'
image = '/assets/waterMarkers/trsy.png'
}
// 用于点集合的数组
if(item.location && item.location.x){
@ -523,11 +523,11 @@ export class WaterCollectionComponent implements OnInit {
isMapLabel:boolean = false //是否已经标记坐标
newPositionMarkerContent:any =
'<div class="custom-content-marker">' +
' <img src="/assets/images/定位.png">' +
' <img src="/assets/images/dingwei.png">' +
'</div>'
newPositionMarkerContentBtn:any =
'<div class="custom-content-marker">' +
' <img src="/assets/images/定位.png">' +
' <img src="/assets/images/dingwei.png">' +
' <div class="btnbox"><img id="setPositionOk" src="/assets/images/ok.png"><span>|</span><img id="setPositionClose" src="/assets/images/close.png"></div>' +
'</div>'
//创建地图
@ -671,9 +671,9 @@ export class AddWater {
addList:any = [
{name:'消火栓',src:'/assets/images/市政消火栓.png'},
{name:'消防水池',src:'/assets/images/方形储水池.png'},
{name:'天然水源',src:'/assets/images/天然水源.png'}
{name:'消火栓',src:'/assets/images/szxhs.png'},
{name:'消防水池',src:'/assets/images/fxcsc.png'},
{name:'天然水源',src:'/assets/images/trsy.png'}
]
selectedWaterTypeIndex:any = 0
selecteAddType(item,key){

80
src/app/gis-management/gis-labeling/gis-labeling.component.ts

@ -19,8 +19,8 @@ export class GisLabelingComponent implements OnInit {
selectedTitle:number
titleList = [ {name:'重点单位',iconImg:'/assets/images/uniticon.png'},
{name:'水源',iconImg:'/assets/images/watericon.png'},
{name:'消防力量',iconImg:'/assets/images/消防力量.png'},
{name:'联动力量',iconImg:'/assets/images/联动力量.png'},
{name:'消防力量',iconImg:'/assets/images/xfll.png'},
{name:'联动力量',iconImg:'/assets/images/ldll.png'},
{name:'测量工具',iconImg:'/assets/images/distanceicon.png'},
{name:'图层选择',iconImg:'/assets/images/coverageicon.png'}
]
@ -324,35 +324,35 @@ export class GisLabelingComponent implements OnInit {
}else if(item.buildingTypes[0].name.indexOf('化工') != -1){
image = '/assets/images/Chemicalindustry.png'
}else if(item.buildingTypes[0].name.indexOf('餐饮') != -1){
image = '/assets/images/餐饮.png'
image = '/assets/images/canyin.png'
}else if(item.buildingTypes[0].name.indexOf('厂房') != -1){
image = '/assets/images/厂房.png'
image = '/assets/images/changfang.png'
}else if(item.buildingTypes[0].name.indexOf('储罐') != -1){
image = '/assets/images/储罐类.png'
image = '/assets/images/chuguanlei.png'
}else if(item.buildingTypes[0].name.indexOf('地下') != -1){
image = '/assets/images/地下.png'
image = '/assets/images/dixia.png'
}else if(item.buildingTypes[0].name.indexOf('古建筑') != -1){
image = '/assets/images/古建筑.png'
image = '/assets/images/gujianzhu.png'
}else if(item.buildingTypes[0].name.indexOf('轨道' || '地铁' || '交通') != -1){
image = '/assets/images/轨道交通.png'
image = '/assets/images/guidaojiaotong.png'
}else if(item.buildingTypes[0].name.indexOf('商场' || '超市') != -1){
image = '/assets/images/商场超市.png'
image = '/assets/images/shangchangchaoshi.png'
}else if(item.buildingTypes[0].name.indexOf('隧道') != -1){
image = '/assets/images/隧道.png'
image = '/assets/images/suidao.png'
}else if(item.buildingTypes[0].name.indexOf('危化品') != -1){
image = '/assets/images/危化品.png'
image = '/assets/images/weihuapin.png'
}else if(item.buildingTypes[0].name.indexOf('学校' || '教育') != -1){
image = '/assets/images/学校.png'
image = '/assets/images/xuexiao.png'
}else if(item.buildingTypes[0].name.indexOf('医院' || '医疗') != -1){
image = '/assets/images/医院.png'
image = '/assets/images/yiyuan.png'
}else if(item.buildingTypes[0].name.indexOf('影' || '剧') != -1){
image = '/assets/images/影剧院.png'
image = '/assets/images/yingjuyuan.png'
}else if(item.buildingTypes[0].name.indexOf('娱乐') != -1){
image = '/assets/images/娱乐.png'
image = '/assets/images/yule.png'
}else if(item.buildingTypes[0].name.indexOf('展览' || '景点' || '景区') != -1){
image = '/assets/images/展览建筑.png'
image = '/assets/images/zhanlanjianzhu.png'
}else{
image = '/assets/images/其他.png'
image = '/assets/images/qita.png'
}
// 用于点集合的数组
unitMarkerArrcluster.push({
@ -514,15 +514,15 @@ export class GisLabelingComponent implements OnInit {
list.forEach((item) => {
let image
if(item.forceType == 2){
image = '/assets/fireForcesMarkers/其他.png'
image = '/assets/fireForcesMarkers/qita.png'
}else if(item.level == 0){
image = '/assets/fireForcesMarkers/总队.png'
image = '/assets/fireForcesMarkers/zongdui.png'
}else if(item.level == 1){
image = '/assets/fireForcesMarkers/支队.png'
image = '/assets/fireForcesMarkers/zhidui.png'
}else if(item.level == 2){
image = '/assets/fireForcesMarkers/大队.png'
image = '/assets/fireForcesMarkers/dadui.png'
}else if(item.level == 3){
image = '/assets/fireForcesMarkers/中队.png'
image = '/assets/fireForcesMarkers/zhongdui.png'
}
// 用于点集合的数组
item.fireForceDetailInfo.location ?
@ -635,35 +635,35 @@ export class GisLabelingComponent implements OnInit {
list.forEach((item) => {
let image
if(item.linkageForceType == 0){//消火栓
image = '/assets/linkageForcesMarkers/安监.png'
image = '/assets/linkageForcesMarkers/anjian.png'
}else if(item.linkageForceType == 1){//消防水池
image = '/assets/linkageForcesMarkers/电力局.png'
image = '/assets/linkageForcesMarkers/dianliju.png'
}else if(item.linkageForceType == 2){//天然联动力量
image = '/assets/linkageForcesMarkers/公安.png'
image = '/assets/linkageForcesMarkers/gongan.png'
}else if(item.linkageForceType == 3){//天然水源
image = '/assets/linkageForcesMarkers/海事.png'
image = '/assets/linkageForcesMarkers/haishi.png'
}else if(item.linkageForceType == 4){//天然水源
image = '/assets/linkageForcesMarkers/环保局.png'
image = '/assets/linkageForcesMarkers/huanbaoju.png'
}else if(item.linkageForceType == 5){//天然水源
image = '/assets/linkageForcesMarkers/交通.png'
image = '/assets/linkageForcesMarkers/jiaotong.png'
}else if(item.linkageForceType == 6){//天然水源
image = '/assets/linkageForcesMarkers/民政.png'
image = '/assets/linkageForcesMarkers/minzheng.png'
}else if(item.linkageForceType == 7){//天然水源
image = '/assets/linkageForcesMarkers/气象局.png'
image = '/assets/linkageForcesMarkers/qixiangju.png'
}else if(item.linkageForceType == 8){//天然水源
image = '/assets/linkageForcesMarkers/燃气局.png'
image = '/assets/linkageForcesMarkers/ranqiju.png'
}else if(item.linkageForceType == 9){//天然水源
image = '/assets/linkageForcesMarkers/市政.png'
image = '/assets/linkageForcesMarkers/shizheng.png'
}else if(item.linkageForceType == 10){//天然水源
image = '/assets/linkageForcesMarkers/水利.png'
image = '/assets/linkageForcesMarkers/shuili.png'
}else if(item.linkageForceType == 11){//天然水源
image = '/assets/linkageForcesMarkers/通信.png'
image = '/assets/linkageForcesMarkers/tongxin.png'
}else if(item.linkageForceType == 12){//天然水源
image = '/assets/linkageForcesMarkers/医疗.png'
image = '/assets/linkageForcesMarkers/yiliao.png'
}else if(item.linkageForceType == 13){//天然水源
image = '/assets/linkageForcesMarkers/应急管理.png'
image = '/assets/linkageForcesMarkers/yingjiguanli.png'
}else if(item.linkageForceType == 14){//天然水源
image = '/assets/linkageForcesMarkers/住建.png'
image = '/assets/linkageForcesMarkers/zhujian.png'
}
// 用于点集合的数组
if(item.location && item.location.x){
@ -802,11 +802,11 @@ export class GisLabelingComponent implements OnInit {
list.forEach((item) => {
let image
if(item.waterSourceType == 0){//消火栓
image = '/assets/waterMarkers/市政消火栓.png'
image = '/assets/waterMarkers/szxhs.png'
}else if(item.waterSourceType == 1){//消防水池
image = '/assets/waterMarkers/方形储水池.png'
image = '/assets/waterMarkers/fxcsc.png'
}else if(item.waterSourceType == 2){//天然水源
image = '/assets/waterMarkers/天然水源.png'
image = '/assets/waterMarkers/trsy.png'
}
// 用于点集合的数组
waterMarkerArrcluster.push({

5
src/app/key-unit/edit-plan-info/edit-plan-info.component.scss

@ -6,9 +6,12 @@
width: 100%;
height: 0px;
.scorePrompt {
width: 100%;
width: 300px;
height: 0px;
text-align: center;
position: absolute;
left: 50%;
margin-left: -150px;
top: 88px;
font-size: 15px;
z-index: 111;

226
src/app/key-unit/key-unit-management/key-unit-management.component.html

@ -5,21 +5,24 @@
<div class="queryField">
<label style="margin-right: 10px;">单位名称:</label>
<mat-form-field class="example-full-width">
<input matInput placeholder="请输入单位名称" name="companyName" [(ngModel)]="companyName" autocomplete="off">
<input matInput placeholder="请输入单位名称" name="companyName" [(ngModel)]="companyName"
autocomplete="off">
</mat-form-field>
</div>
<div class="queryField" >
<div class="queryField">
<label style="margin-right: 10px;">统一社会信用代码:</label>
<mat-form-field class="example-full-width">
<input matInput placeholder="请输入统一社会信用代码" name="shehui" [(ngModel)]="shehui" autocomplete="off">
</mat-form-field>
<span *ngIf="padMore" style="margin-left: 10px; color: #0080FF;" (click)='padInfo()'>更多筛选条件<img [src]='imgsrcopen'> </span>
<span *ngIf="padput" style="margin-left: 10px; color: #0080FF;" (click)='padInfo()'>收起<img [src]='imgsrcdown'> </span>
<span *ngIf="padMore" style="margin-left: 10px; color: #0080FF;" (click)='padInfo()'>更多筛选条件<img
[src]='imgsrcopen'> </span>
<span *ngIf="padput" style="margin-left: 10px; color: #0080FF;" (click)='padInfo()'>收起<img
[src]='imgsrcdown'> </span>
</div>
<div class="queryField" *ngIf="!pcfind">
<button mat-raised-button color="primary">查询</button>
<button mat-raised-button style="margin-left: 25px;" type="button" (click)="reset()">重置</button>
<button mat-raised-button style="margin-left: 25px;" type="button" (click)="reset()">重置</button>
</div>
<div class="queryField" *ngIf="!padMore">
<label style="margin-right: 10px;">关注单位:</label>
@ -29,54 +32,59 @@
<mat-option value="1">已关注</mat-option>
</mat-select>
</mat-form-field>
</div>
<div class="queryField" *ngIf="!padMore">
<label style="margin-right: 10px;">单位类型:</label>
<mat-form-field>
<mat-select placeholder='请选择单位类型' [(ngModel)]="unittype" name="unittype">
<mat-option *ngFor="let unit of allunittype" [value]="unit.id" >
<mat-option *ngFor="let unit of allunittype" [value]="unit.id">
{{unit.name}}
</mat-option>
</mat-select>
</mat-form-field>
<span *ngIf="pcMore" style="margin-left: 10px; color: #0080FF; cursor: pointer;" (click)='pcInfo()'>更多筛选条件<img [src]='imgsrcopen'> </span>
<span *ngIf="pcput" style="margin-left: 10px; color: #0080FF; cursor: pointer;" (click)='pcInfo()'>收起<img [src]='imgsrcdown'> </span>
<span *ngIf="pcMore" style="margin-left: 10px; color: #0080FF; cursor: pointer;"
(click)='pcInfo()'>更多筛选条件<img [src]='imgsrcopen'> </span>
<span *ngIf="pcput" style="margin-left: 10px; color: #0080FF; cursor: pointer;"
(click)='pcInfo()'>收起<img [src]='imgsrcdown'> </span>
</div>
<div class="queryField" *ngIf="pcfind" >
<div class="queryField" *ngIf="pcfind">
<button mat-raised-button color="primary">查询</button>
<button mat-raised-button style="margin-left: 25px;" type="button" (click)="reset()">重置</button>
<button mat-raised-button style="margin-left: 25px;" type="button" (click)="reset()">重置</button>
</div>
<div class="queryField ordiv" *ngIf="!padMore&&!pcMore">
<label style="margin-right: 10px;">消防救援站:</label>
<mat-form-field class="example-full-width">
<input (click)="stopclose($event)" readonly matInput placeholder="请选择消防救援站" autocomplete="off" [(ngModel)]="js" name="js" (focus)="openorganizationbox()">
<input (click)="stopclose($event)" readonly matInput placeholder="请选择消防救援站" autocomplete="off"
[(ngModel)]="js" name="js" (focus)="openorganizationbox()">
</mat-form-field>
<mat-checkbox color="primary" style="margin-left: 6px;" [(ngModel)]="jscheck" name="jscheck">包含下级</mat-checkbox>
<mat-checkbox color="primary" style="margin-left: 6px;" [(ngModel)]="jscheck" name="jscheck">包含下级
</mat-checkbox>
<div class="organizationbox" *ngIf="isorganizationbox">
<div (click)="closediv()" class="closediv"><mat-icon>clear</mat-icon></div>
<div (click)="closediv()" class="closediv">
<mat-icon>clear</mat-icon>
</div>
<mat-tree [dataSource]="dataSource" [treeControl]="treeControl">
<mat-tree-node *matTreeNodeDef="let node" matTreeNodePadding (click)='add(node)' class="organizationlist">
<button type="button" mat-icon-button disabled ></button>
<mat-tree-node *matTreeNodeDef="let node" matTreeNodePadding (click)='add(node)'
class="organizationlist">
<button type="button" mat-icon-button disabled></button>
<li>{{node.name}}</li>
</mat-tree-node>
<mat-tree-node *matTreeNodeDef="let node;when: hasChild" matTreeNodePadding (click)='add(node)' class="organizationlist">
<button
type="button"
mat-icon-button
matTreeNodeToggle
<mat-tree-node *matTreeNodeDef="let node;when: hasChild" matTreeNodePadding
(click)='add(node)' class="organizationlist">
<button type="button" mat-icon-button matTreeNodeToggle
[attr.aria-label]="'toggle ' + node.name">
<mat-icon class="mat-icon-rtl-mirror">
{{treeControl.isExpanded(node) ? 'expand_more' : 'chevron_right'}}
</mat-icon>
<mat-icon class="mat-icon-rtl-mirror">
{{treeControl.isExpanded(node) ? 'expand_more' : 'chevron_right'}}
</mat-icon>
</button>
<li>{{node.name}}</li>
</mat-tree-node>
</mat-tree>
</mat-tree>
</div>
</div>
<div class="queryField" *ngIf="!padMore&&!pcMore">
<label style="margin-right: 10px;">信息完整度排序:</label>
@ -87,20 +95,25 @@
</mat-select>
</mat-form-field>
</div>
<div class="queryField" *ngIf="!padMore&&!pcMore">
<div class="queryField" *ngIf="!padMore&&!pcMore">
<label style="margin-right: 10px;">完整度查询:</label>
<mat-form-field class="example-full-width">
<input type="number" oninput="if(value>100)value=100;if(value<0)value=0" matInput placeholder="请输入完整度最小值" name="integrityScoreMin" [(ngModel)]="integrityScoreMin" autocomplete="off">
<input type="number" oninput="if(value>100)value=100;if(value<0)value=0" matInput
placeholder="请输入完整度最小值" name="integrityScoreMin" [(ngModel)]="integrityScoreMin"
autocomplete="off">
</mat-form-field>
<mat-icon *ngIf="padjt" aria-hidden="false" style="position: relative;right: 120px;top: 5px;" id="padshow">arrow forward</mat-icon>
<span style="margin-left: 15px;" id="pcshow" *ngIf="!padMore&&!padjt">🠊</span>
<mat-icon *ngIf="padjt" aria-hidden="false" style="position: relative;right: 120px;top: 5px;"
id="padshow">arrow forward</mat-icon>
<span style="margin-left: 15px;" id="pcshow" *ngIf="!padMore&&!padjt">🠊</span>
<mat-form-field class="example-full-width" style="margin-left: 5px;">
<input type="number" oninput="if(value>100)value=100;if(value<0)value=0" matInput placeholder="请输入完整度最大值" name="integrityScoreMax" [(ngModel)]="integrityScoreMax" autocomplete="off">
<input type="number" oninput="if(value>100)value=100;if(value<0)value=0" matInput
placeholder="请输入完整度最大值" name="integrityScoreMax" [(ngModel)]="integrityScoreMax"
autocomplete="off">
</mat-form-field>
</div>
</div>
</form>
</div>
<mat-divider></mat-divider>
@ -111,22 +124,26 @@
<button type="button" mat-raised-button color="warn" (click)="deleteunit()">删除</button>
</div>
<div class="tablebox">
<table mat-table [dataSource]="tabledataSource" class="mat-elevation-z8">
<ng-container matColumnDef="checked">
<th mat-header-cell *matHeaderCellDef>
<th mat-header-cell *matHeaderCellDef>
</th>
<td mat-cell *matCellDef="let element">
<mat-checkbox color="primary" (change)="checkChange($event,element)" [disabled]="element.contentVerify!=null&&(element.contentVerify.verifyState==0||element.contentVerify.verifyState==3)" (click)='checkClick(element,$event)'></mat-checkbox>
<mat-checkbox color="primary" (change)="checkChange($event,element)"
[disabled]="element.contentVerify!=null&&(element.contentVerify.verifyState==0||element.contentVerify.verifyState==3)"
(click)='checkClick(element,$event)'></mat-checkbox>
</td>
</ng-container>
<ng-container matColumnDef="Follow">
<th mat-header-cell *matHeaderCellDef>
<th mat-header-cell *matHeaderCellDef>
</th>
<td mat-cell *matCellDef="let element">
<span title="已关注" *ngIf="element.isFollowed"><mat-icon style="margin-top: 6px;color: red;">star</mat-icon></span>
<span title="已关注" *ngIf="element.isFollowed">
<mat-icon style="margin-top: 6px;color: red;">star</mat-icon>
</span>
</td>
</ng-container>
<ng-container matColumnDef="unitname">
@ -137,112 +154,140 @@
</td>
</ng-container>
<ng-container matColumnDef="integrity" >
<th mat-header-cell *matHeaderCellDef style="text-align: center;">信息完整度得分</th>
<ng-container matColumnDef="integrity">
<th mat-header-cell *matHeaderCellDef style="text-align: center;">信息完整度</th>
<td mat-cell *matCellDef="let element;let i = index">
<div class="integrityDiv">
<span class="integrityNum">
{{(element.companyIntegrityScore.totalScore.toFixed(2) * 100).toFixed()}}
{{(element.companyIntegrityScore.totalScore.toFixed(2) * 100).toFixed()}}%
</span>
<div class="integrityColorDiv" [style]="integrity((element.companyIntegrityScore.totalScore.toFixed(2) * 100).toFixed())">
<div class="integrityColorDiv"
[style]="integrity((element.companyIntegrityScore.totalScore.toFixed(2) * 100).toFixed())">
</div>
<div class="integrityDetails" [ngClass]="{'bottomposition': i <= 5,'topposition': i > 5}">
<div class="integrityDetailsTop">
<span class="span1">分类名称</span>
<span class="span2">已得分</span>
<span class="span3"></span>
<span class="span2">占比</span>
<span class="span3">占比</span>
</div>
<div class="integrityDetailsBody">
<ul>
<ul>
<li>
<div class="name">单位信息</div>
<div class="colorDiv">
<div class="colorDivBac">
<div class="colorDivCon" [style]="integrityDetails((element.companyIntegrityScore.basicInfoScore * 5).toFixed(1),5)"></div>
<div class="colorDivCon"
[style]="integrityDetails((element.companyIntegrityScore.basicInfoScore * 5).toFixed(1),5)">
</div>
</div>
<span>{{(element.companyIntegrityScore.basicInfoScore * 5).toFixed(1)}}%</span>
<span>{{(element.companyIntegrityScore.basicInfoScore *
5).toFixed(1)}}%</span>
</div>
<div class="number">5%</div>
<div class="number">5%</div>
</li>
<li>
<div class="name">建筑信息</div>
<div class="colorDiv">
<div class="colorDivBac">
<div class="colorDivCon" [style]="integrityDetails((element.companyIntegrityScore.buildingInfoScore * 10).toFixed(1),10)"></div>
<div class="colorDivCon"
[style]="integrityDetails((element.companyIntegrityScore.buildingInfoScore * 10).toFixed(1),10)">
</div>
</div>
<span>{{(element.companyIntegrityScore.buildingInfoScore * 10).toFixed(1)}}%</span>
<span>{{(element.companyIntegrityScore.buildingInfoScore *
10).toFixed(1)}}%</span>
</div>
<div class="number">10%</div>
<div class="number">10%</div>
</li>
<li>
<div class="name">平面图</div>
<div class="colorDiv">
<div class="colorDivBac">
<div class="colorDivCon" [style]="integrityDetails((element.companyIntegrityScore.planImageScore * 10).toFixed(1),10)"></div>
<div class="colorDivCon"
[style]="integrityDetails((element.companyIntegrityScore.planImageScore * 10).toFixed(1),10)">
</div>
</div>
<span>{{(element.companyIntegrityScore.planImageScore * 10).toFixed(1)}}%</span>
<span>{{(element.companyIntegrityScore.planImageScore *
10).toFixed(1)}}%</span>
</div>
<div class="number">10%</div>
<div class="number">10%</div>
</li>
<li>
<div class="name">四周毗邻</div>
<div class="colorDiv">
<div class="colorDivBac">
<div class="colorDivCon" [style]="integrityDetails((element.companyIntegrityScore.adjoinScore * 10).toFixed(1),10)"></div>
<div class="colorDivCon"
[style]="integrityDetails((element.companyIntegrityScore.adjoinScore * 10).toFixed(1),10)">
</div>
</div>
<span>{{(element.companyIntegrityScore.adjoinScore * 10).toFixed(1)}}%</span>
<span>{{(element.companyIntegrityScore.adjoinScore *
10).toFixed(1)}}%</span>
</div>
<div class="number">10%</div>
<div class="number">10%</div>
</li>
<li>
<div class="name">消防设施</div>
<div class="colorDiv">
<div class="colorDivBac">
<div class="colorDivCon" [style]="integrityDetails((element.companyIntegrityScore.facilityScore * 25).toFixed(1),25)"></div>
<div class="colorDivCon"
[style]="integrityDetails((element.companyIntegrityScore.facilityScore * 25).toFixed(1),25)">
</div>
</div>
<span>{{(element.companyIntegrityScore.facilityScore * 25).toFixed(1)}}%</span>
<span>{{(element.companyIntegrityScore.facilityScore *
25).toFixed(1)}}%</span>
</div>
<div class="number">25%</div>
<div class="number">25%</div>
</li>
<li>
<div class="name">重点部位</div>
<div class="colorDiv">
<div class="colorDivBac">
<div class="colorDivCon" [style]="integrityDetails((element.companyIntegrityScore.importantLocationScore * 10).toFixed(1),10)"></div>
<div class="colorDivCon"
[style]="integrityDetails((element.companyIntegrityScore.importantLocationScore * 10).toFixed(1),10)">
</div>
</div>
<span>{{(element.companyIntegrityScore.importantLocationScore * 10).toFixed(1)}}%</span>
<span>{{(element.companyIntegrityScore.importantLocationScore *
10).toFixed(1)}}%</span>
</div>
<div class="number">10%</div>
<div class="number">10%</div>
</li>
<li>
<div class="name">功能分区</div>
<div class="colorDiv">
<div class="colorDivBac">
<div class="colorDivCon" [style]="integrityDetails((element.companyIntegrityScore.functionalDivisionScore * 10).toFixed(1),10)"></div>
<div class="colorDivCon"
[style]="integrityDetails((element.companyIntegrityScore.functionalDivisionScore * 10).toFixed(1),10)">
</div>
</div>
<span>{{(element.companyIntegrityScore.functionalDivisionScore * 10).toFixed(1)}}%</span>
<span>{{(element.companyIntegrityScore.functionalDivisionScore *
10).toFixed(1)}}%</span>
</div>
<div class="number">10%</div>
<div class="number">10%</div>
</li>
<li>
<div class="name">实景图</div>
<div class="colorDiv">
<div class="colorDivBac">
<div class="colorDivCon" [style]="integrityDetails((element.companyIntegrityScore.realityImageScore * 10).toFixed(1),10)"></div>
<div class="colorDivCon"
[style]="integrityDetails((element.companyIntegrityScore.realityImageScore * 10).toFixed(1),10)">
</div>
</div>
<span>{{(element.companyIntegrityScore.realityImageScore * 10).toFixed(1)}}%</span>
<span>{{(element.companyIntegrityScore.realityImageScore *
10).toFixed(1)}}%</span>
</div>
<div class="number">10%</div>
<div class="number">10%</div>
</li>
<li>
<div class="name">CAD上传</div>
<div class="colorDiv">
<div class="colorDivBac">
<div class="colorDivCon" [style]="integrityDetails((element.companyIntegrityScore.cadScore * 10).toFixed(1),10)"></div>
<div class="colorDivCon"
[style]="integrityDetails((element.companyIntegrityScore.cadScore * 10).toFixed(1),10)">
</div>
</div>
<span>{{(element.companyIntegrityScore.cadScore * 10).toFixed(1)}}%</span>
<span>{{(element.companyIntegrityScore.cadScore *
10).toFixed(1)}}%</span>
</div>
<div class="number">10%</div>
<div class="number">10%</div>
</li>
</ul>
</div>
@ -253,15 +298,16 @@
</div>
</td>
</ng-container>
<ng-container matColumnDef="jurisdictionsquadron">
<th mat-header-cell *matHeaderCellDef>消防救援站</th>
<td mat-cell *matCellDef="let element">{{element.organizationName}}</td>
</ng-container>
<ng-container matColumnDef="unittype">
<th mat-header-cell *matHeaderCellDef>单位类型</th>
<td mat-cell *matCellDef="let element">{{element.buildingTypes.length != 0 ? element.buildingTypes[0].name : ''}}</td>
<td mat-cell *matCellDef="let element">{{element.buildingTypes.length != 0 ?
element.buildingTypes[0].name : ''}}</td>
</ng-container>
<ng-container matColumnDef="scc">
<th mat-header-cell *matHeaderCellDef>统一社会信用代码</th>
@ -273,12 +319,16 @@
{{element.modifiedTime|date:'yyyy-MM-dd'}}
</td>
</ng-container>
<ng-container matColumnDef="operation">
<ng-container matColumnDef="operation">
<th mat-header-cell *matHeaderCellDef>操作</th>
<td mat-cell *matCellDef="let element" class="operation">
<span (click)="unitdetails(element)" >查看详情</span>
<span style="color: blue;margin-left: 4px;" *ngIf="element.contentVerify==null||element.contentVerify.verifyState==-1||element.contentVerify.verifyState==1||element.contentVerify.verifyState==2||element.contentVerify.verifyState==4||element.contentVerify.verifyState==5" (click)='submitAudit(element)'>提交审核</span>
<span style="color: blue;margin-left: 4px;" *ngIf="element.contentVerify!=null&&(element.contentVerify.verifyState==0||element.contentVerify.verifyState==3) " (click)="cancelAudit(element)">撤销审核</span>
<td mat-cell *matCellDef="let element" class="operation">
<span (click)="unitdetails(element)">查看详情</span>
<span style="color: blue;margin-left: 4px;"
*ngIf="element.contentVerify==null||element.contentVerify.verifyState==-1||element.contentVerify.verifyState==1||element.contentVerify.verifyState==2||element.contentVerify.verifyState==4||element.contentVerify.verifyState==5"
(click)='submitAudit(element)'>提交审核</span>
<span style="color: blue;margin-left: 4px;"
*ngIf="element.contentVerify!=null&&(element.contentVerify.verifyState==0||element.contentVerify.verifyState==3) "
(click)="cancelAudit(element)">撤销审核</span>
<span style="color: blue;margin-left: 4px;" (click)="auditResult(element)">审批结果</span>
<span (click)="Follow(element)" *ngIf="!element.isFollowed">关注单位</span>
<span (click)="unFollow(element)" *ngIf="element.isFollowed">取消关注</span>
@ -287,12 +337,10 @@
<tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
<tr mat-row *matRowDef="let row; columns: displayedColumns;"></tr>
</table>
<mat-paginator [length]="length"
[pageSize]="pageSize"
[pageSizeOptions]="pageSizeOptions"
<mat-paginator [length]="length" [pageSize]="pageSize" [pageSizeOptions]="pageSizeOptions"
(page)="chagePage($event)">
</mat-paginator>
</div>
</div>
</div>

5
src/app/key-unit/view-unit-details/view-unit-details.component.scss

@ -6,9 +6,12 @@
width: 100%;
height: 0px;
.scorePrompt {
width: 100%;
width: 300px;
height: 0px;
text-align: center;
position: absolute;
left: 50%;
margin-left: -150px;
top: 88px;
font-size: 15px;
z-index: 111;

18
src/app/key-unit/water-road/water-road.component.ts

@ -187,11 +187,11 @@ export class WaterRoadComponent implements OnInit {
let image
if(item.waterSourceType == 0 || item.waterSourceType == 1 || item.waterSourceType == 2){
if(item.waterSourceType == 0){//消火栓
image = '/assets/waterMarkers/市政消火栓.png'
image = '/assets/waterMarkers/szxhs.png'
}else if(item.waterSourceType == 1){//消防水池
image = '/assets/waterMarkers/方形储水池.png'
image = '/assets/waterMarkers/fxcsc.png'
}else if(item.waterSourceType == 2){//天然水源
image = '/assets/waterMarkers/天然水源.png'
image = '/assets/waterMarkers/trsy.png'
}
// 用于点集合的数组
item.location ? waterMarkerArrcluster.push({
@ -201,15 +201,15 @@ export class WaterRoadComponent implements OnInit {
}) : null
}else{
if(item.forceType == 2){
image = '/assets/fireForcesMarkers/其他.png'
image = '/assets/fireForcesMarkers/qita.png'
}else if(item.level == 0){
image = '/assets/fireForcesMarkers/总队.png'
image = '/assets/fireForcesMarkers/zongdui.png'
}else if(item.level == 1){
image = '/assets/fireForcesMarkers/支队.png'
image = '/assets/fireForcesMarkers/zhidui.png'
}else if(item.level == 2){
image = '/assets/fireForcesMarkers/大队.png'
image = '/assets/fireForcesMarkers/dadui.png'
}else if(item.level == 3){
image = '/assets/fireForcesMarkers/中队.png'
image = '/assets/fireForcesMarkers/zhongdui.png'
}
// 用于点集合的数组
item.fireForceDetailInfo.location ?
@ -295,7 +295,7 @@ export class WaterRoadComponent implements OnInit {
unitMarker:any//单位标点
newPositionMarkerContent:any =
'<div class="custom-content-marker">' +
' <img style="width:20px;height:26px" src="/assets/images/定位.png">' +
' <img style="width:20px;height:26px" src="/assets/images/dingwei.png">' +
'</div>'
creatMap(){
this.map = new AMap.Map('center',{

2
src/app/plan-audit/fireforce-audit/fireforce-audit.component.ts

@ -60,7 +60,7 @@ export class FireforceAuditComponent implements OnInit {
newPositionMarker:any
newPositionMarkerContent:any =
'<div class="custom-content-marker">' +
' <img style="width:20px;height:24px" src="/assets/images/定位.png">' +
' <img style="width:20px;height:24px" src="/assets/images/dingwei.png">' +
'</div>'
//当前点击tab页面第几个
tabIndex:any = 1

32
src/app/plan-audit/linkageforces-audit/linkageforces-audit.component.ts

@ -16,28 +16,28 @@ export class LinkageforcesAuditComponent implements OnInit {
constructor(public snackBar: MatSnackBar,private http:HttpClient,public dialog: MatDialog) { }
checkBoxList:any[] = [
{id:0,name:'安监',imgUrl:'/assets/linkageForces/安监.png',isChecked:false},
{id:1,name:'电力局',imgUrl:'/assets/linkageForces/电力局.png',isChecked:false},
{id:2,name:'公安',imgUrl:'/assets/linkageForces/公安.png',isChecked:false},
{id:3,name:'海事',imgUrl:'/assets/linkageForces/海事.png',isChecked:false},
{id:4,name:'环保局',imgUrl:'/assets/linkageForces/环保局.png',isChecked:false},
{id:5,name:'交通',imgUrl:'/assets/linkageForces/交通.png',isChecked:false},
{id:6,name:'民政',imgUrl:'/assets/linkageForces/民政.png',isChecked:false},
{id:7,name:'气象局',imgUrl:'/assets/linkageForces/气象局.png',isChecked:false},
{id:8,name:'燃气局',imgUrl:'/assets/linkageForces/燃气局.png',isChecked:false},
{id:9,name:'市政',imgUrl:'/assets/linkageForces/市政.png',isChecked:false},
{id:10,name:'水利',imgUrl:'/assets/linkageForces/水利.png',isChecked:false},
{id:11,name:'通信',imgUrl:'/assets/linkageForces/通信.png',isChecked:false},
{id:12,name:'医疗',imgUrl:'/assets/linkageForces/医疗.png',isChecked:false},
{id:13,name:'应急管理',imgUrl:'/assets/linkageForces/应急管理.png',isChecked:false},
{id:14,name:'住建',imgUrl:'/assets/linkageForces/住建.png',isChecked:false}
{id:0,name:'安监',imgUrl:'/assets/linkageForces/anjian.png',isChecked:false},
{id:1,name:'电力局',imgUrl:'/assets/linkageForces/dianliju.png',isChecked:false},
{id:2,name:'公安',imgUrl:'/assets/linkageForces/gongan.png',isChecked:false},
{id:3,name:'海事',imgUrl:'/assets/linkageForces/haishi.png',isChecked:false},
{id:4,name:'环保局',imgUrl:'/assets/linkageForces/huanbaoju.png',isChecked:false},
{id:5,name:'交通',imgUrl:'/assets/linkageForces/jiaotong.png',isChecked:false},
{id:6,name:'民政',imgUrl:'/assets/linkageForces/minzheng.png',isChecked:false},
{id:7,name:'气象局',imgUrl:'/assets/linkageForces/qixiangju.png',isChecked:false},
{id:8,name:'燃气局',imgUrl:'/assets/linkageForces/ranqiju.png',isChecked:false},
{id:9,name:'市政',imgUrl:'/assets/linkageForces/shizheng.png',isChecked:false},
{id:10,name:'水利',imgUrl:'/assets/linkageForces/shuili.png',isChecked:false},
{id:11,name:'通信',imgUrl:'/assets/linkageForces/tongxin.png',isChecked:false},
{id:12,name:'医疗',imgUrl:'/assets/linkageForces/yiliao.png',isChecked:false},
{id:13,name:'应急管理',imgUrl:'/assets/linkageForces/yingjiguanli.png',isChecked:false},
{id:14,name:'住建',imgUrl:'/assets/linkageForces/zhujian.png',isChecked:false}
]
AttachmentArr:any//附件
map:any
newPositionMarker:any
newPositionMarkerContent:any =
'<div class="custom-content-marker">' +
' <img style="width:20px;height:24px" src="/assets/images/定位.png">' +
' <img style="width:20px;height:24px" src="/assets/images/dingwei.png">' +
'</div>'
ngOnInit(): void {
this.AttachmentArr = JSON.parse(this.LinkageForceDetailInfo.relevantInfomationData)

2
src/app/plan-audit/water-audit/water-audit.component.ts

@ -12,7 +12,7 @@ export class WaterAuditComponent implements OnInit {
newPositionMarker:any
newPositionMarkerContent:any =
'<div class="custom-content-marker">' +
' <img style="width:20px;height:24px" src="/assets/images/定位.png">' +
' <img style="width:20px;height:24px" src="/assets/images/dingwei.png">' +
'</div>'
ngOnInit(): void {

4
src/app/plan-management/entry-plan/entry-plan.component.html

@ -149,8 +149,8 @@
<div class="integrityDetails" [ngClass]="{'bottomposition': i <= 5,'topposition': i > 5}">
<div class="integrityDetailsTop">
<span class="span1">分类名称</span>
<span class="span2">已得分</span>
<span class="span3"></span>
<span class="span2">占比</span>
<span class="span3">占比</span>
</div>
<div class="integrityDetailsBody">
<ul>

644
src/app/plan-management/maintain-up/maintain-up.component.html

@ -1,307 +1,351 @@
<div style="height: 100%;overflow-y: auto">
<div id="header" class="header" (click)="bigclosediv($event)">
<form (ngSubmit)="onSubmit(form.value)" #form="ngForm">
<div class="queryBox">
<div class="queryField">
<label style="margin-right: 10px;">单位名称:</label>
<mat-form-field class="example-full-width">
<input matInput placeholder="请输入单位名称" name="companyName" [(ngModel)]="companyName" autocomplete="off">
</mat-form-field>
</div>
<div class="queryField ordiv">
<label style="margin-right: 10px;">消防救援站:</label>
<mat-form-field class="example-full-width">
<input (click)="stopclose($event)" readonly matInput placeholder="请选择消防救援站" autocomplete="off" [(ngModel)]="js" name="js" (focus)="openorganizationbox()">
</mat-form-field>
<mat-checkbox color="primary" style="margin-left: 6px;" [(ngModel)]="jscheck" name="jscheck">包含下级</mat-checkbox>
<span *ngIf="padMore" style="margin-left: 10px; color: #0080FF;" (click)='padInfo()'>更多筛选条件<img [src]='imgsrcopen'> </span>
<span *ngIf="padput" style="margin-left: 10px; color: #0080FF;" (click)='padInfo()'>收起<img [src]='imgsrcdown'> </span>
<div class="organizationbox" *ngIf="isorganizationbox">
<div (click)="closediv()" class="closediv"><mat-icon>clear</mat-icon></div>
<mat-tree [dataSource]="dataSource" [treeControl]="treeControl">
<mat-tree-node *matTreeNodeDef="let node" matTreeNodePadding (click)='add(node)' class="organizationlist">
<button type="button" mat-icon-button disabled ></button>
<li>{{node.name}}</li>
</mat-tree-node>
<mat-tree-node *matTreeNodeDef="let node;when: hasChild" matTreeNodePadding (click)='add(node)' class="organizationlist">
<button
type="button"
mat-icon-button
matTreeNodeToggle
[attr.aria-label]="'toggle ' + node.name">
<mat-icon class="mat-icon-rtl-mirror">
{{treeControl.isExpanded(node) ? 'expand_more' : 'chevron_right'}}
</mat-icon>
</button>
<li>{{node.name}}</li>
</mat-tree-node>
</mat-tree>
</div>
</div>
<div *ngIf="!pcfind">
<button mat-raised-button color="primary">查询</button>
<button mat-raised-button style="margin-left: 25px;" type="button" (click)="reset()">重置</button>
</div>
<br>
<div class="queryField" *ngIf="!padMore">
<label style="margin-right: 10px;">统一社会信用代码:</label>
<mat-form-field class="example-full-width">
<input matInput placeholder="请输入统一社会信用代码" name="shehui" [(ngModel)]="shehui" autocomplete="off">
</mat-form-field>
</div>
<div class="queryField" *ngIf="!padMore">
<label style="margin-right: 10px;">单位类型:</label>
<mat-form-field>
<mat-select placeholder='请选择单位类型' [(ngModel)]="unittype" name="unittype">
<mat-option *ngFor="let unit of allunittype" [value]="unit.id" >
{{unit.name}}
</mat-option>
</mat-select>
</mat-form-field>
<span *ngIf="pcMore" style="margin-left: 20px; color: #0080FF; cursor: pointer;" (click)='pcInfo()'>更多筛选条件<img [src]='imgsrcopen'> </span>
<span *ngIf="pcput" style="margin-left: 10px; color: #0080FF; cursor: pointer;" (click)='pcInfo()'>收起<img [src]='imgsrcdown'> </span>
</div>
<div class="queryField" *ngIf="pcfind" >
<button mat-raised-button color="primary">查询</button>
<button mat-raised-button style="margin-left: 25px;" type="button" (click)="reset()">重置</button>
</div>
<div class="queryField" *ngIf="!padMore&&!pcMore">
<label style="margin-right: 10px;">关注单位:</label>
<mat-form-field>
<mat-select placeholder='请选择单位是否关注' [(ngModel)]="follow" name="follow">
<mat-option value="0">未关注</mat-option>
<mat-option value="1">已关注</mat-option>
</mat-select>
</mat-form-field>
</div>
<div class="queryField" *ngIf="!padMore&&!pcMore">
<label style="margin-right: 10px;">信息完整度排序:</label>
<mat-form-field>
<mat-select placeholder='请选择排序方式' [(ngModel)]="integritySort" name="integritySort">
<mat-option value="desc">从高到低</mat-option>
<mat-option value="asc">从低到高</mat-option>
</mat-select>
</mat-form-field>
</div>
<div class="queryField" *ngIf="!padMore&&!pcMore">
<label style="margin-right: 10px;">完整度查询:</label>
<mat-form-field class="example-full-width">
<input type="number" oninput="if(value>100)value=100;if(value<0)value=0" matInput placeholder="请输入完整度最小值" name="integrityScoreMin" [(ngModel)]="integrityScoreMin" autocomplete="off">
</mat-form-field>
<mat-icon *ngIf="padjt" aria-hidden="false" style="position: relative;right: 120px;top: 5px;" id="padshow">arrow forward</mat-icon>
<span style="margin-left: 15px;" id="pcshow" *ngIf="!padMore&&!padjt">🠊</span>
<mat-form-field class="example-full-width" style="margin-left: 5px;">
<input type="number" oninput="if(value>100)value=100;if(value<0)value=0" matInput placeholder="请输入完整度最大值" name="integrityScoreMax" [(ngModel)]="integrityScoreMax" autocomplete="off">
</mat-form-field>
</div>
</div>
</form>
</div>
<mat-divider></mat-divider>
<div class="body">
<div class="buttonbox">
<!-- <button type="button" mat-raised-button color="primary" (click)="editunit()">修改</button> -->
<button type="button" mat-raised-button color="warn" (click)="deleteunit()">删除</button>
</div>
<div class="tablebox">
<table mat-table [dataSource]="tabledataSource" class="mat-elevation-z8">
<ng-container matColumnDef="checked">
<th mat-header-cell *matHeaderCellDef>
</th>
<td mat-cell *matCellDef="let element">
<mat-checkbox color="primary" (change)="checkChange($event,element)" [disabled]="element.contentVerify!=null&&(element.contentVerify.verifyState==0||element.contentVerify.verifyState==3)" (click)='checkClick(element)'></mat-checkbox>
</td>
</ng-container>
<ng-container matColumnDef="Follow">
<th mat-header-cell *matHeaderCellDef>
</th>
<td mat-cell *matCellDef="let element">
<span title="已关注" *ngIf="element.isFollowed"><mat-icon style="margin-top: 6px;color: red;">star</mat-icon></span>
</td>
</ng-container>
<ng-container matColumnDef="unitname">
<th mat-header-cell *matHeaderCellDef>单位名称</th>
<td mat-cell *matCellDef="let element">
{{element.name}}
<!-- <mat-icon class="editUnitName" (click)="editUnitName(element)">create</mat-icon> -->
</td>
</ng-container>
<div id="header" class="header" (click)="bigclosediv($event)">
<form (ngSubmit)="onSubmit(form.value)" #form="ngForm">
<div class="queryBox">
<div class="queryField">
<label style="margin-right: 10px;">单位名称:</label>
<mat-form-field class="example-full-width">
<input matInput placeholder="请输入单位名称" name="companyName" [(ngModel)]="companyName"
autocomplete="off">
</mat-form-field>
</div>
<ng-container matColumnDef="integrity" >
<th mat-header-cell *matHeaderCellDef style="text-align: center;">信息完整度得分</th>
<td mat-cell *matCellDef="let element;let i = index">
<div class="integrityDiv">
<span class="integrityNum">
{{(element.companyIntegrityScore.totalScore.toFixed(2) * 100).toFixed()}}分
</span>
<div class="integrityColorDiv" [style]="integrity((element.companyIntegrityScore.totalScore.toFixed(2) * 100).toFixed())">
</div>
<div class="integrityDetails" [ngClass]="{'bottomposition': i <= 5,'topposition': i > 5}">
<div class="integrityDetailsTop">
<span class="span1">分类名称</span>
<span class="span2">已得分</span>
<span class="span3">总分</span>
</div>
<div class="integrityDetailsBody">
<ul>
<li>
<div class="name">单位信息</div>
<div class="colorDiv">
<div class="colorDivBac">
<div class="colorDivCon" [style]="integrityDetails((element.companyIntegrityScore.basicInfoScore * 5).toFixed(1),5)"></div>
</div>
<span>{{(element.companyIntegrityScore.basicInfoScore * 5).toFixed(1)}}%</span>
</div>
<div class="number">5%</div>
</li>
<li>
<div class="name">建筑信息</div>
<div class="colorDiv">
<div class="colorDivBac">
<div class="colorDivCon" [style]="integrityDetails((element.companyIntegrityScore.buildingInfoScore * 10).toFixed(1),10)"></div>
</div>
<span>{{(element.companyIntegrityScore.buildingInfoScore * 10).toFixed(1)}}%</span>
</div>
<div class="number">10%</div>
</li>
<li>
<div class="name">平面图</div>
<div class="colorDiv">
<div class="colorDivBac">
<div class="colorDivCon" [style]="integrityDetails((element.companyIntegrityScore.planImageScore * 10).toFixed(1),10)"></div>
</div>
<span>{{(element.companyIntegrityScore.planImageScore * 10).toFixed(1)}}%</span>
</div>
<div class="number">10%</div>
</li>
<li>
<div class="name">四周毗邻</div>
<div class="colorDiv">
<div class="colorDivBac">
<div class="colorDivCon" [style]="integrityDetails((element.companyIntegrityScore.adjoinScore * 10).toFixed(1),10)"></div>
</div>
<span>{{(element.companyIntegrityScore.adjoinScore * 10).toFixed(1)}}%</span>
</div>
<div class="number">10%</div>
</li>
<li>
<div class="name">消防设施</div>
<div class="colorDiv">
<div class="colorDivBac">
<div class="colorDivCon" [style]="integrityDetails((element.companyIntegrityScore.facilityScore * 25).toFixed(1),25)"></div>
</div>
<span>{{(element.companyIntegrityScore.facilityScore * 25).toFixed(1)}}%</span>
</div>
<div class="number">25%</div>
</li>
<li>
<div class="name">重点部位</div>
<div class="colorDiv">
<div class="colorDivBac">
<div class="colorDivCon" [style]="integrityDetails((element.companyIntegrityScore.importantLocationScore * 10).toFixed(1),10)"></div>
</div>
<span>{{(element.companyIntegrityScore.importantLocationScore * 10).toFixed(1)}}%</span>
</div>
<div class="number">10%</div>
</li>
<li>
<div class="name">功能分区</div>
<div class="colorDiv">
<div class="colorDivBac">
<div class="colorDivCon" [style]="integrityDetails((element.companyIntegrityScore.functionalDivisionScore * 10).toFixed(1),10)"></div>
</div>
<span>{{(element.companyIntegrityScore.functionalDivisionScore * 10).toFixed(1)}}%</span>
</div>
<div class="number">10%</div>
</li>
<li>
<div class="name">实景图</div>
<div class="colorDiv">
<div class="colorDivBac">
<div class="colorDivCon" [style]="integrityDetails((element.companyIntegrityScore.realityImageScore * 10).toFixed(1),10)"></div>
</div>
<span>{{(element.companyIntegrityScore.realityImageScore * 10).toFixed(1)}}%</span>
</div>
<div class="number">10%</div>
</li>
<li>
<div class="name">CAD上传</div>
<div class="colorDiv">
<div class="colorDivBac">
<div class="colorDivCon" [style]="integrityDetails((element.companyIntegrityScore.cadScore * 10).toFixed(1),10)"></div>
</div>
<span>{{(element.companyIntegrityScore.cadScore * 10).toFixed(1)}}%</span>
</div>
<div class="number">10%</div>
</li>
</ul>
</div>
<div style="width: 100%;text-align: center;font-size: 13px;">
仅供参考
</div>
</div>
</div>
</td>
</ng-container>
<ng-container matColumnDef="jurisdictionsquadron">
<th mat-header-cell *matHeaderCellDef>消防救援站</th>
<td mat-cell *matCellDef="let element">{{element.organizationName}}</td>
</ng-container>
<ng-container matColumnDef="unittype">
<th mat-header-cell *matHeaderCellDef>单位类型</th>
<td mat-cell *matCellDef="let element">{{element.buildingTypes.length != 0 ? element.buildingTypes[0].name : ''}}</td>
</ng-container>
<ng-container matColumnDef="scc">
<th mat-header-cell *matHeaderCellDef>统一社会信用代码</th>
<td mat-cell *matCellDef="let element">{{element.usci}}</td>
</ng-container>
<ng-container matColumnDef="time">
<th mat-header-cell *matHeaderCellDef>录入时间</th>
<td mat-cell *matCellDef="let element">
{{element.createTime|date:'yyyy-MM-dd'}}
</td>
</ng-container>
<ng-container matColumnDef="state">
<th mat-header-cell *matHeaderCellDef>状态</th>
<td mat-cell *matCellDef="let element">
<span *ngIf="element.contentVerify">
{{element.contentVerify.verifyState | state}}
</span>
<span *ngIf="!element.contentVerify">
未维护
</span>
</td>
</ng-container>
<ng-container matColumnDef="operation">
<th mat-header-cell *matHeaderCellDef>操作</th>
<td mat-cell *matCellDef="let element" class="operation">
<!-- <span (click)="unitdetails(element)" >查看详情</span> -->
<!-- <span style="color: blue;margin-left: 4px;" *ngIf="element.contentVerify==null||element.contentVerify.verifyState==-1||element.contentVerify.verifyState==1||element.contentVerify.verifyState==2||element.contentVerify.verifyState==4||element.contentVerify.verifyState==5" (click)='submitAudit(element)'>提交审核</span>
<div class="queryField ordiv">
<label style="margin-right: 10px;">消防救援站:</label>
<mat-form-field class="example-full-width">
<input (click)="stopclose($event)" readonly matInput placeholder="请选择消防救援站" autocomplete="off"
[(ngModel)]="js" name="js" (focus)="openorganizationbox()">
</mat-form-field>
<mat-checkbox color="primary" style="margin-left: 6px;" [(ngModel)]="jscheck" name="jscheck">包含下级
</mat-checkbox>
<span *ngIf="padMore" style="margin-left: 10px; color: #0080FF;" (click)='padInfo()'>更多筛选条件<img
[src]='imgsrcopen'> </span>
<span *ngIf="padput" style="margin-left: 10px; color: #0080FF;" (click)='padInfo()'>收起<img
[src]='imgsrcdown'> </span>
<div class="organizationbox" *ngIf="isorganizationbox">
<div (click)="closediv()" class="closediv">
<mat-icon>clear</mat-icon>
</div>
<mat-tree [dataSource]="dataSource" [treeControl]="treeControl">
<mat-tree-node *matTreeNodeDef="let node" matTreeNodePadding (click)='add(node)'
class="organizationlist">
<button type="button" mat-icon-button disabled></button>
<li>{{node.name}}</li>
</mat-tree-node>
<mat-tree-node *matTreeNodeDef="let node;when: hasChild" matTreeNodePadding
(click)='add(node)' class="organizationlist">
<button type="button" mat-icon-button matTreeNodeToggle
[attr.aria-label]="'toggle ' + node.name">
<mat-icon class="mat-icon-rtl-mirror">
{{treeControl.isExpanded(node) ? 'expand_more' : 'chevron_right'}}
</mat-icon>
</button>
<li>{{node.name}}</li>
</mat-tree-node>
</mat-tree>
</div>
</div>
<div *ngIf="!pcfind">
<button mat-raised-button color="primary">查询</button>
<button mat-raised-button style="margin-left: 25px;" type="button" (click)="reset()">重置</button>
</div>
<br>
<div class="queryField" *ngIf="!padMore">
<label style="margin-right: 10px;">统一社会信用代码:</label>
<mat-form-field class="example-full-width">
<input matInput placeholder="请输入统一社会信用代码" name="shehui" [(ngModel)]="shehui" autocomplete="off">
</mat-form-field>
</div>
<div class="queryField" *ngIf="!padMore">
<label style="margin-right: 10px;">单位类型:</label>
<mat-form-field>
<mat-select placeholder='请选择单位类型' [(ngModel)]="unittype" name="unittype">
<mat-option *ngFor="let unit of allunittype" [value]="unit.id">
{{unit.name}}
</mat-option>
</mat-select>
</mat-form-field>
<span *ngIf="pcMore" style="margin-left: 20px; color: #0080FF; cursor: pointer;"
(click)='pcInfo()'>更多筛选条件<img [src]='imgsrcopen'> </span>
<span *ngIf="pcput" style="margin-left: 10px; color: #0080FF; cursor: pointer;"
(click)='pcInfo()'>收起<img [src]='imgsrcdown'> </span>
</div>
<div class="queryField" *ngIf="pcfind">
<button mat-raised-button color="primary">查询</button>
<button mat-raised-button style="margin-left: 25px;" type="button" (click)="reset()">重置</button>
</div>
<div class="queryField" *ngIf="!padMore&&!pcMore">
<label style="margin-right: 10px;">关注单位:</label>
<mat-form-field>
<mat-select placeholder='请选择单位是否关注' [(ngModel)]="follow" name="follow">
<mat-option value="0">未关注</mat-option>
<mat-option value="1">已关注</mat-option>
</mat-select>
</mat-form-field>
</div>
<div class="queryField" *ngIf="!padMore&&!pcMore">
<label style="margin-right: 10px;">信息完整度排序:</label>
<mat-form-field>
<mat-select placeholder='请选择排序方式' [(ngModel)]="integritySort" name="integritySort">
<mat-option value="desc">从高到低</mat-option>
<mat-option value="asc">从低到高</mat-option>
</mat-select>
</mat-form-field>
</div>
<div class="queryField" *ngIf="!padMore&&!pcMore">
<label style="margin-right: 10px;">完整度查询:</label>
<mat-form-field class="example-full-width">
<input type="number" oninput="if(value>100)value=100;if(value<0)value=0" matInput
placeholder="请输入完整度最小值" name="integrityScoreMin" [(ngModel)]="integrityScoreMin"
autocomplete="off">
</mat-form-field>
<mat-icon *ngIf="padjt" aria-hidden="false" style="position: relative;right: 120px;top: 5px;"
id="padshow">arrow forward</mat-icon>
<span style="margin-left: 15px;" id="pcshow" *ngIf="!padMore&&!padjt">🠊</span>
<mat-form-field class="example-full-width" style="margin-left: 5px;">
<input type="number" oninput="if(value>100)value=100;if(value<0)value=0" matInput
placeholder="请输入完整度最大值" name="integrityScoreMax" [(ngModel)]="integrityScoreMax"
autocomplete="off">
</mat-form-field>
</div>
</div>
</form>
</div>
<mat-divider></mat-divider>
<div class="body">
<div class="buttonbox">
<!-- <button type="button" mat-raised-button color="primary" (click)="editunit()">修改</button> -->
<button type="button" mat-raised-button color="warn" (click)="deleteunit()">删除</button>
</div>
<div class="tablebox">
<table mat-table [dataSource]="tabledataSource" class="mat-elevation-z8">
<ng-container matColumnDef="checked">
<th mat-header-cell *matHeaderCellDef>
</th>
<td mat-cell *matCellDef="let element">
<mat-checkbox color="primary" (change)="checkChange($event,element)"
[disabled]="element.contentVerify!=null&&(element.contentVerify.verifyState==0||element.contentVerify.verifyState==3)"
(click)='checkClick(element)'></mat-checkbox>
</td>
</ng-container>
<ng-container matColumnDef="Follow">
<th mat-header-cell *matHeaderCellDef>
</th>
<td mat-cell *matCellDef="let element">
<span title="已关注" *ngIf="element.isFollowed">
<mat-icon style="margin-top: 6px;color: red;">star</mat-icon>
</span>
</td>
</ng-container>
<ng-container matColumnDef="unitname">
<th mat-header-cell *matHeaderCellDef>单位名称</th>
<td mat-cell *matCellDef="let element">
{{element.name}}
<!-- <mat-icon class="editUnitName" (click)="editUnitName(element)">create</mat-icon> -->
</td>
</ng-container>
<ng-container matColumnDef="integrity">
<th mat-header-cell *matHeaderCellDef style="text-align: center;">信息完整度得分</th>
<td mat-cell *matCellDef="let element;let i = index">
<div class="integrityDiv">
<span class="integrityNum">
{{(element.companyIntegrityScore.totalScore.toFixed(2) * 100).toFixed()}}分
</span>
<div class="integrityColorDiv"
[style]="integrity((element.companyIntegrityScore.totalScore.toFixed(2) * 100).toFixed())">
</div>
<div class="integrityDetails" [ngClass]="{'bottomposition': i <= 5,'topposition': i > 5}">
<div class="integrityDetailsTop">
<span class="span1">分类名称</span>
<span class="span2">占比</span>
<span class="span3">总占比</span>
</div>
<div class="integrityDetailsBody">
<ul>
<li>
<div class="name">单位信息</div>
<div class="colorDiv">
<div class="colorDivBac">
<div class="colorDivCon"
[style]="integrityDetails((element.companyIntegrityScore.basicInfoScore * 5).toFixed(1),5)">
</div>
</div>
<span>{{(element.companyIntegrityScore.basicInfoScore *
5).toFixed(1)}}%</span>
</div>
<div class="number">5%</div>
</li>
<li>
<div class="name">建筑信息</div>
<div class="colorDiv">
<div class="colorDivBac">
<div class="colorDivCon"
[style]="integrityDetails((element.companyIntegrityScore.buildingInfoScore * 10).toFixed(1),10)">
</div>
</div>
<span>{{(element.companyIntegrityScore.buildingInfoScore *
10).toFixed(1)}}%</span>
</div>
<div class="number">10%</div>
</li>
<li>
<div class="name">平面图</div>
<div class="colorDiv">
<div class="colorDivBac">
<div class="colorDivCon"
[style]="integrityDetails((element.companyIntegrityScore.planImageScore * 10).toFixed(1),10)">
</div>
</div>
<span>{{(element.companyIntegrityScore.planImageScore *
10).toFixed(1)}}%</span>
</div>
<div class="number">10%</div>
</li>
<li>
<div class="name">四周毗邻</div>
<div class="colorDiv">
<div class="colorDivBac">
<div class="colorDivCon"
[style]="integrityDetails((element.companyIntegrityScore.adjoinScore * 10).toFixed(1),10)">
</div>
</div>
<span>{{(element.companyIntegrityScore.adjoinScore *
10).toFixed(1)}}%</span>
</div>
<div class="number">10%</div>
</li>
<li>
<div class="name">消防设施</div>
<div class="colorDiv">
<div class="colorDivBac">
<div class="colorDivCon"
[style]="integrityDetails((element.companyIntegrityScore.facilityScore * 25).toFixed(1),25)">
</div>
</div>
<span>{{(element.companyIntegrityScore.facilityScore *
25).toFixed(1)}}%</span>
</div>
<div class="number">25%</div>
</li>
<li>
<div class="name">重点部位</div>
<div class="colorDiv">
<div class="colorDivBac">
<div class="colorDivCon"
[style]="integrityDetails((element.companyIntegrityScore.importantLocationScore * 10).toFixed(1),10)">
</div>
</div>
<span>{{(element.companyIntegrityScore.importantLocationScore *
10).toFixed(1)}}%</span>
</div>
<div class="number">10%</div>
</li>
<li>
<div class="name">功能分区</div>
<div class="colorDiv">
<div class="colorDivBac">
<div class="colorDivCon"
[style]="integrityDetails((element.companyIntegrityScore.functionalDivisionScore * 10).toFixed(1),10)">
</div>
</div>
<span>{{(element.companyIntegrityScore.functionalDivisionScore *
10).toFixed(1)}}%</span>
</div>
<div class="number">10%</div>
</li>
<li>
<div class="name">实景图</div>
<div class="colorDiv">
<div class="colorDivBac">
<div class="colorDivCon"
[style]="integrityDetails((element.companyIntegrityScore.realityImageScore * 10).toFixed(1),10)">
</div>
</div>
<span>{{(element.companyIntegrityScore.realityImageScore *
10).toFixed(1)}}%</span>
</div>
<div class="number">10%</div>
</li>
<li>
<div class="name">CAD上传</div>
<div class="colorDiv">
<div class="colorDivBac">
<div class="colorDivCon"
[style]="integrityDetails((element.companyIntegrityScore.cadScore * 10).toFixed(1),10)">
</div>
</div>
<span>{{(element.companyIntegrityScore.cadScore *
10).toFixed(1)}}%</span>
</div>
<div class="number">10%</div>
</li>
</ul>
</div>
<div style="width: 100%;text-align: center;font-size: 13px;">
仅供参考
</div>
</div>
</div>
</td>
</ng-container>
<ng-container matColumnDef="jurisdictionsquadron">
<th mat-header-cell *matHeaderCellDef>消防救援站</th>
<td mat-cell *matCellDef="let element">{{element.organizationName}}</td>
</ng-container>
<ng-container matColumnDef="unittype">
<th mat-header-cell *matHeaderCellDef>单位类型</th>
<td mat-cell *matCellDef="let element">{{element.buildingTypes.length != 0 ?
element.buildingTypes[0].name : ''}}</td>
</ng-container>
<ng-container matColumnDef="scc">
<th mat-header-cell *matHeaderCellDef>统一社会信用代码</th>
<td mat-cell *matCellDef="let element">{{element.usci}}</td>
</ng-container>
<ng-container matColumnDef="time">
<th mat-header-cell *matHeaderCellDef>录入时间</th>
<td mat-cell *matCellDef="let element">
{{element.createTime|date:'yyyy-MM-dd'}}
</td>
</ng-container>
<ng-container matColumnDef="state">
<th mat-header-cell *matHeaderCellDef>状态</th>
<td mat-cell *matCellDef="let element">
<span *ngIf="element.contentVerify">
{{element.contentVerify.verifyState | state}}
</span>
<span *ngIf="!element.contentVerify">
未维护
</span>
</td>
</ng-container>
<ng-container matColumnDef="operation">
<th mat-header-cell *matHeaderCellDef>操作</th>
<td mat-cell *matCellDef="let element" class="operation">
<!-- <span (click)="unitdetails(element)" >查看详情</span> -->
<!-- <span style="color: blue;margin-left: 4px;" *ngIf="element.contentVerify==null||element.contentVerify.verifyState==-1||element.contentVerify.verifyState==1||element.contentVerify.verifyState==2||element.contentVerify.verifyState==4||element.contentVerify.verifyState==5" (click)='submitAudit(element)'>提交审核</span>
<span style="color: blue;margin-left: 4px;" *ngIf="element.contentVerify!=null&&(element.contentVerify.verifyState==0||element.contentVerify.verifyState==3) " (click)="cancelAudit(element)">撤销审核</span>
<span style="color: blue;margin-left: 4px;" (click)="auditResult(element)">审批结果</span>
<span (click)="Follow(element)" *ngIf="!element.isFollowed">关注单位</span>
<span (click)="unFollow(element)" *ngIf="element.isFollowed">取消关注</span> -->
<span (click)="openBasicWeb(element)">基本信息维护</span>
<span (click)="openPlanWeb(element)">预案维护</span>
</td>
</ng-container>
<tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
<tr mat-row *matRowDef="let row; columns: displayedColumns;"></tr>
</table>
<mat-paginator [length]="length"
[pageSize]="pageSize"
[pageSizeOptions]="pageSizeOptions"
(page)="chagePage($event)">
</mat-paginator>
</div>
</div>
<span (click)="openBasicWeb(element)">基本信息维护</span>
<span (click)="openPlanWeb(element)">预案维护</span>
</td>
</ng-container>
<tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
<tr mat-row *matRowDef="let row; columns: displayedColumns;"></tr>
</table>
<mat-paginator [length]="length" [pageSize]="pageSize" [pageSizeOptions]="pageSizeOptions"
(page)="chagePage($event)">
</mat-paginator>
</div>
</div>
</div>

347
src/app/tabbar/tabbar.component.html

@ -1,124 +1,144 @@
<mat-toolbar [color]="theme?'primary':'accent'">
<!-- <mat-toolbar> -->
<h1 style="max-width: 240px;display: block;overflow: hidden;text-overflow: ellipsis;">{{title}} <span *ngIf="planName != null">: {{planName}}</span> </h1>
<h1 style="max-width: 240px;display: block;overflow: hidden;text-overflow: ellipsis;">{{title}} <span
*ngIf="planName != null">: {{planName}}</span> </h1>
<!--分数框-->
<div class="grade" *ngIf="companyIntegrityScore" onmouseover="xiangqing.style.display='block';" onmouseout="xiangqing.style.display='none';">
<a class="active"><span ><a></a>{{(companyIntegrityScore.totalScore.toFixed(2) * 100).toFixed()}} %</span></a>
<div class="grade" *ngIf="companyIntegrityScore" onmouseover="xiangqing.style.display='block';"
onmouseout="xiangqing.style.display='none';">
<a class="active"><span><a></a>{{(companyIntegrityScore.totalScore.toFixed(2) * 100).toFixed()}} %</span></a>
</div>
<div class="integrityDetails" id="xiangqing" *ngIf="companyIntegrityScore">
<div class="integrityDetailsTop">
<span class="span1">分类名称</span>
<span class="span2">已得分</span>
<span class="span3">百分比</span>
</div>
<div class="integrityDetailsBody">
<ul>
<li>
<div class="name">单位信息</div>
<div class="colorDiv">
<div class="colorDivBac">
<div class="colorDivCon" [style]="integrityDetails((companyIntegrityScore.basicInfoScore * 5).toFixed(1),5)"></div>
</div>
<span>{{(companyIntegrityScore.basicInfoScore * 5).toFixed(1)}}%</span>
</div>
<div class="number">5%</div>
</li>
<li>
<div class="name">建筑信息</div>
<div class="colorDiv">
<div class="colorDivBac">
<div class="colorDivCon" [style]="integrityDetails((companyIntegrityScore.buildingInfoScore * 10).toFixed(1),10)"></div>
</div>
<span>{{(companyIntegrityScore.buildingInfoScore * 10).toFixed(1)}}%</span>
</div>
<div class="number">10%</div>
</li>
<li>
<div class="name">平面图</div>
<div class="colorDiv">
<div class="colorDivBac">
<div class="colorDivCon" [style]="integrityDetails((companyIntegrityScore.planImageScore * 10).toFixed(1),10)"></div>
</div>
<span>{{(companyIntegrityScore.planImageScore * 10).toFixed(1)}}%</span>
</div>
<div class="number">10%</div>
</li>
<li>
<div class="name">四周毗邻</div>
<div class="colorDiv">
<div class="colorDivBac">
<div class="colorDivCon" [style]="integrityDetails((companyIntegrityScore.adjoinScore * 10).toFixed(1),10)"></div>
</div>
<span>{{(companyIntegrityScore.adjoinScore * 10).toFixed(1)}}%</span>
</div>
<div class="number">10%</div>
</li>
<li>
<div class="name">消防设施</div>
<div class="colorDiv">
<div class="colorDivBac">
<div class="colorDivCon" [style]="integrityDetails((companyIntegrityScore.facilityScore * 25).toFixed(1),25)"></div>
</div>
<span>{{(companyIntegrityScore.facilityScore * 25).toFixed(1)}}%</span>
</div>
<div class="number">25%</div>
</li>
<li>
<div class="name">重点部位</div>
<div class="colorDiv">
<div class="colorDivBac">
<div class="colorDivCon" [style]="integrityDetails((companyIntegrityScore.importantLocationScore * 10).toFixed(1),10)"></div>
</div>
<span>{{(companyIntegrityScore.importantLocationScore * 10).toFixed(1)}}%</span>
</div>
<div class="number">10%</div>
</li>
<li>
<div class="name">功能分区</div>
<div class="colorDiv">
<div class="colorDivBac">
<div class="colorDivCon" [style]="integrityDetails((companyIntegrityScore.functionalDivisionScore * 10).toFixed(1),10)"></div>
</div>
<span>{{(companyIntegrityScore.functionalDivisionScore * 10).toFixed(1)}}%</span>
</div>
<div class="number">10%</div>
</li>
<li>
<div class="name">实景图</div>
<div class="colorDiv">
<div class="colorDivBac">
<div class="colorDivCon" [style]="integrityDetails((companyIntegrityScore.realityImageScore * 10).toFixed(1),10)"></div>
</div>
<span>{{(companyIntegrityScore.realityImageScore * 10).toFixed(1)}}%</span>
</div>
<div class="number">10%</div>
</li>
<li>
<div class="name">CAD上传</div>
<div class="colorDiv">
<div class="colorDivBac">
<div class="colorDivCon" [style]="integrityDetails((companyIntegrityScore.cadScore * 10).toFixed(1),10)"></div>
</div>
<span>{{(companyIntegrityScore.cadScore * 10).toFixed(1)}}%</span>
</div>
<div class="number">10%</div>
</li>
</ul>
</div>
<div style="width: 100%;text-align: center;font-size: 13px;position: relative;">
仅供参考
<span class="closeScore" style="position: absolute;right: 12px;top: 0px;" onmouseover="xiangqing.style.display='none';">关闭</span>
</div>
<div class="integrityDetails" id="xiangqing" *ngIf="companyIntegrityScore">
<div class="integrityDetailsTop">
<span class="span1">分类名称</span>
<span class="span2">占比</span>
<span class="span3">总占比</span>
</div>
<div class="integrityDetailsBody">
<ul>
<li>
<div class="name">单位信息</div>
<div class="colorDiv">
<div class="colorDivBac">
<div class="colorDivCon"
[style]="integrityDetails((companyIntegrityScore.basicInfoScore * 5).toFixed(1),5)">
</div>
</div>
<span>{{(companyIntegrityScore.basicInfoScore * 5).toFixed(1)}}%</span>
</div>
<div class="number">5%</div>
</li>
<li>
<div class="name">建筑信息</div>
<div class="colorDiv">
<div class="colorDivBac">
<div class="colorDivCon"
[style]="integrityDetails((companyIntegrityScore.buildingInfoScore * 10).toFixed(1),10)">
</div>
</div>
<span>{{(companyIntegrityScore.buildingInfoScore * 10).toFixed(1)}}%</span>
</div>
<div class="number">10%</div>
</li>
<li>
<div class="name">平面图</div>
<div class="colorDiv">
<div class="colorDivBac">
<div class="colorDivCon"
[style]="integrityDetails((companyIntegrityScore.planImageScore * 10).toFixed(1),10)">
</div>
</div>
<span>{{(companyIntegrityScore.planImageScore * 10).toFixed(1)}}%</span>
</div>
<div class="number">10%</div>
</li>
<li>
<div class="name">四周毗邻</div>
<div class="colorDiv">
<div class="colorDivBac">
<div class="colorDivCon"
[style]="integrityDetails((companyIntegrityScore.adjoinScore * 10).toFixed(1),10)">
</div>
</div>
<span>{{(companyIntegrityScore.adjoinScore * 10).toFixed(1)}}%</span>
</div>
<div class="number">10%</div>
</li>
<li>
<div class="name">消防设施</div>
<div class="colorDiv">
<div class="colorDivBac">
<div class="colorDivCon"
[style]="integrityDetails((companyIntegrityScore.facilityScore * 25).toFixed(1),25)">
</div>
</div>
<span>{{(companyIntegrityScore.facilityScore * 25).toFixed(1)}}%</span>
</div>
<div class="number">25%</div>
</li>
<li>
<div class="name">重点部位</div>
<div class="colorDiv">
<div class="colorDivBac">
<div class="colorDivCon"
[style]="integrityDetails((companyIntegrityScore.importantLocationScore * 10).toFixed(1),10)">
</div>
</div>
<span>{{(companyIntegrityScore.importantLocationScore * 10).toFixed(1)}}%</span>
</div>
<div class="number">10%</div>
</li>
<li>
<div class="name">功能分区</div>
<div class="colorDiv">
<div class="colorDivBac">
<div class="colorDivCon"
[style]="integrityDetails((companyIntegrityScore.functionalDivisionScore * 10).toFixed(1),10)">
</div>
</div>
<span>{{(companyIntegrityScore.functionalDivisionScore * 10).toFixed(1)}}%</span>
</div>
<div class="number">10%</div>
</li>
<li>
<div class="name">实景图</div>
<div class="colorDiv">
<div class="colorDivBac">
<div class="colorDivCon"
[style]="integrityDetails((companyIntegrityScore.realityImageScore * 10).toFixed(1),10)">
</div>
</div>
<span>{{(companyIntegrityScore.realityImageScore * 10).toFixed(1)}}%</span>
</div>
<div class="number">10%</div>
</li>
<li>
<div class="name">CAD上传</div>
<div class="colorDiv">
<div class="colorDivBac">
<div class="colorDivCon"
[style]="integrityDetails((companyIntegrityScore.cadScore * 10).toFixed(1),10)"></div>
</div>
<span>{{(companyIntegrityScore.cadScore * 10).toFixed(1)}}%</span>
</div>
<div class="number">10%</div>
</li>
</ul>
</div>
<div style="width: 100%;text-align: center;font-size: 13px;position: relative;">
仅供参考
<span class="closeScore" style="position: absolute;right: 12px;top: 0px;"
onmouseover="xiangqing.style.display='none';">关闭</span>
</div>
</div>
<p *ngIf="!isUpdates" style="font-size: 16px;position: absolute; right: 233px;">欢迎您, {{realName}}</p>
<div class="scoringRule" *ngIf="companyIntegrityScore">
<span class="name" (click)="scoringRule()">
<div class="scoringRule" *ngIf="companyIntegrityScore">
<span class="name" (click)="scoringRule()">
信息完整度规则
</span>
</span>
<div class="scoringRuleImg" *ngIf="scoringRuleImg">
<div class="topbox">
<span style="font-size: 18px;margin-left: 20px;font-weight: 600;">信息完整度规则 &nbsp;</span>
@ -155,12 +175,16 @@
<tr>
<td>消防设施</td>
<td class="bulecolor">25%</td>
<td>消防水源占<span class="bulecolor">30%</span> &nbsp;&nbsp;&nbsp; 安全疏散占<span class="bulecolor">30%</span> <br> 消防水系统占<span class="bulecolor">30%</span> &nbsp;&nbsp;&nbsp; 内部消防力量占<span class="bulecolor">10%</span></td>
<td>消防水源占<span class="bulecolor">30%</span> &nbsp;&nbsp;&nbsp; 安全疏散占<span
class="bulecolor">30%</span> <br> 消防水系统占<span class="bulecolor">30%</span>
&nbsp;&nbsp;&nbsp; 内部消防力量占<span class="bulecolor">10%</span></td>
</tr>
<tr>
<td>重点部位</td>
<td class="bulecolor">10%</td>
<td><span>根据耐火等级做区分</span>:一级:添加<span class="bulecolor">3</span>个重点部位(1个50%,2个80%,3个满分)<span class="bulecolor">二级</span>:添加<span class="bulecolor">2</span>个重点部位(一个占50%)<span class="bulecolor">三级</span> 添加<span class="bulecolor">1</span>个重点部位 其它:填写重点提示自动满分</td>
<td><span>根据耐火等级做区分</span>:一级:添加<span class="bulecolor">3</span>个重点部位(1个50%,2个80%,3个满分)<span
class="bulecolor">二级</span>:添加<span class="bulecolor">2</span>个重点部位(一个占50%)<span
class="bulecolor">三级</span> 添加<span class="bulecolor">1</span>个重点部位 其它:填写重点提示自动满分</td>
</tr>
<tr>
<td>功能分区</td>
@ -170,7 +194,9 @@
<tr>
<td>实景图</td>
<td class="bulecolor">10%</td>
<td>外观,保证有<span class="bulecolor">2</span>张照片(占<span class="bulecolor">30%</span>); 室内,保证有<span class="bulecolor">2</span>张照片(占<span class="bulecolor">30%</span>);安全出口,保证有<span class="bulecolor">2</span>张照片(占<span class="bulecolor">40%</span></td>
<td>外观,保证有<span class="bulecolor">2</span>张照片(占<span class="bulecolor">30%</span>); 室内,保证有<span
class="bulecolor">2</span>张照片(占<span class="bulecolor">30%</span>);安全出口,保证有<span
class="bulecolor">2</span>张照片(占<span class="bulecolor">40%</span></td>
</tr>
<tr>
<td>CAD上传</td>
@ -187,19 +213,22 @@
</div>
</div>
<div class="isUpdates" *ngIf="isUpdates">
<span class="name" (click)="submitAudit()" *ngIf="!contentVerify || contentVerify.verifyState == 5 || contentVerify.verifyState == 4">提交审核</span>
<span class="name" (click)="submitAudit()"
*ngIf="!contentVerify || contentVerify.verifyState == 5 || contentVerify.verifyState == 4">提交审核</span>
<span class="name" (click)="cancelAudit()" *ngIf="contentVerify && contentVerify.verifyState == 3">撤销审核</span>
<span class="span" *ngIf="contentVerify && contentVerify.verifyState == 3">(
<span class="span" *ngIf="contentVerify && contentVerify.verifyState == 3">(
<span *ngIf="contentVerify.operation == 2" style="color: red;">删除</span>
<span *ngIf="contentVerify.operation == 0" >新增</span>
<span *ngIf="contentVerify.operation == 1" >更新</span>
<span *ngIf="contentVerify.operation == 0">新增</span>
<span *ngIf="contentVerify.operation == 1">更新</span>
待审核)</span>
<span [matTooltip]="contentVerify.remark" class="span" *ngIf="contentVerify && contentVerify.verifyState == 4">(审核通过)</span>
<span [matTooltip]="contentVerify.remark" class="span" *ngIf="contentVerify && contentVerify.verifyState == 5">(审核驳回)</span>
<span [matTooltip]="contentVerify.remark" class="span"
*ngIf="contentVerify && contentVerify.verifyState == 4">(审核通过)</span>
<span [matTooltip]="contentVerify.remark" class="span"
*ngIf="contentVerify && contentVerify.verifyState == 5">(审核驳回)</span>
</div>
<div class="spinner" *ngIf="isSpinner">
<mat-spinner [diameter]='26' color="warn"></mat-spinner>
<span style="font-size: 13px;margin-left: 6px;">帮助文档下载中,请等待...</span>
@ -209,19 +238,19 @@
<mat-icon>help</mat-icon>
</button>
<mat-menu #appSetHelp="matMenu" yPosition="below" xPosition="after">
<button mat-menu-item (click)='downloadHelpFile()'>
<mat-icon>save_alt</mat-icon>
<span>下载帮助文档</span>
<button mat-menu-item (click)='downloadHelpFile()'>
<mat-icon>save_alt</mat-icon>
<span>下载帮助文档</span>
</button>
</mat-menu>
<!-- 全屏 -->
<button mat-button (click)="!isfullscreen?fullscreenToggle():closefullscreen()" class="fullscreen">
<ng-container *ngIf="!isfullscreen; else elseTemplate">
<mat-icon *ngIf="!isfullscreen">fullscreen</mat-icon>
</ng-container>
<ng-template #elseTemplate>
<mat-icon else>fullscreen_exit</mat-icon>
</ng-template>
<ng-container *ngIf="!isfullscreen; else elseTemplate">
<mat-icon *ngIf="!isfullscreen">fullscreen</mat-icon>
</ng-container>
<ng-template #elseTemplate>
<mat-icon else>fullscreen_exit</mat-icon>
</ng-template>
</button>
<!-- 黑夜模式开关 -->
@ -237,18 +266,18 @@
<mat-icon>account_circle</mat-icon>
</button>
<mat-menu #appMenu="matMenu">
<button mat-menu-item [routerLink]="['/ui/userdata']" >
<mat-icon>pin_drop</mat-icon>
<span>个人资料</span>
</button>
<button mat-menu-item (click)='changpsw()'>
<mat-icon>verified_user</mat-icon>
<span>修改密码</span>
</button>
<button mat-menu-item (click)='signOut()'>
<mat-icon>power_settings_new</mat-icon>
<span>退出系统</span>
</button>
<button mat-menu-item [routerLink]="['/ui/userdata']">
<mat-icon>pin_drop</mat-icon>
<span>个人资料</span>
</button>
<button mat-menu-item (click)='changpsw()'>
<mat-icon>verified_user</mat-icon>
<span>修改密码</span>
</button>
<button mat-menu-item (click)='signOut()'>
<mat-icon>power_settings_new</mat-icon>
<span>退出系统</span>
</button>
</mat-menu>
<!-- 设置按钮 -->
@ -256,21 +285,21 @@
<mat-icon>settings</mat-icon>
</button>
<mat-menu #appSet="matMenu" yPosition="below" xPosition="after">
<button mat-menu-item (click)="defaulttheme.next()">
<mat-icon>palette</mat-icon>
<span>默认主题</span>
</button>
<button mat-menu-item (click)="redtheme.next()">
<mat-icon>whatshot</mat-icon>
<span>亮色主题</span>
</button>
<button mat-menu-item (click)="standard()">
<mat-icon>settings_overscan</mat-icon>
<span>标准模式</span>
</button>
<button mat-menu-item (click)="boxed('boxed')">
<mat-icon>laptop</mat-icon>
<span>盒子模式</span>
</button>
<button mat-menu-item (click)="defaulttheme.next()">
<mat-icon>palette</mat-icon>
<span>默认主题</span>
</button>
<button mat-menu-item (click)="redtheme.next()">
<mat-icon>whatshot</mat-icon>
<span>亮色主题</span>
</button>
<button mat-menu-item (click)="standard()">
<mat-icon>settings_overscan</mat-icon>
<span>标准模式</span>
</button>
<button mat-menu-item (click)="boxed('boxed')">
<mat-icon>laptop</mat-icon>
<span>盒子模式</span>
</button>
</mat-menu>
</mat-toolbar>

4
src/app/ui/collection-tools-building/collection-tools.component.html

@ -28,11 +28,11 @@
</button>
<span title="适应缩放" class="zoom" (click)="adaptZoom()">
<img src="/assets/images/适应缩放.png" alt="">
<img src="/assets/images/sysf.png" alt="">
适应缩放
</span>
<span title="重置缩放" class="zoom" (click)="resetZoom()">
<img src="/assets/images/重置缩放.png" alt="">
<img src="/assets/images/czsf.png" alt="">
重置缩放
</span>
<span title="导出图片" class="zoom" (click)="takeScreenshot()">

7
src/app/ui/collection-tools-building/collection-tools.component.ts

@ -2087,6 +2087,13 @@ export class CollectionToolsBuildingComponent implements OnInit {
let fileSize = file.size || null //上传文件的总大小
let maxSize = 5 * 1024 * 1024 //5MB一个分片
let tenSize = 10 * 1024 * 1024 //10MB限制
if (file && file.name.toLowerCase().indexOf('png') == -1 && file.name.toLowerCase().indexOf('jpg') == -1 && file.name.toLowerCase().indexOf('jpeg') == -1) {
const config = new MatSnackBarConfig();
config.verticalPosition = 'top';
config.duration = 3000
this.snackBar.open('请上传图片后缀为png,jpg,jpeg的文件', '确定', config);
return
}
if (file && fileSize <= maxSize) { //上传文件<=5MB时
let formData = new FormData()

12
src/app/ui/collection-tools-plan/collection-tools.component.html

@ -28,11 +28,11 @@
</button>
<span title="适应缩放" class="zoom" (click)="adaptZoom()">
<img src="/assets/images/适应缩放.png" alt="">
<img src="/assets/images/sysf.png" alt="">
适应缩放
</span>
<span title="重置缩放" class="zoom" (click)="resetZoom()">
<img src="/assets/images/重置缩放.png" alt="">
<img src="/assets/images/czsf.png" alt="">
重置缩放
</span>
<span title="导出图片" class="zoom" (click)="takeScreenshot()">
@ -187,7 +187,7 @@
*ngIf="isShowProperty && !isShowAttribute && !isMultipleAsset">
<h3 style="text-align: center;font-weight: 900;">{{assetName}}</h3>
<div *ngIf="canvasAssetObj.InteractiveMode == 0">
<div *ngIf="canvasAssetObj.InteractiveMode == 0 && !isGis">
<p>宽度(像素)</p>
<input type="number" class="biginput" [(ngModel)]="assetWidth" (input)="assetWidthIunput()"
[disabled]="!isEditPattern || (canvasAssetObj.GameMode == 0 && !pattern)">
@ -205,7 +205,7 @@
</div>
</div>
<!-- 如果是多点连线 -->
<div *ngIf="canvasAssetObj.InteractiveMode == 1 || canvasAssetObj.InteractiveMode == 3">
<div *ngIf="canvasAssetObj.InteractiveMode == 1 || canvasAssetObj.InteractiveMode == 3 && !isGis">
<p>厚度</p>
<div style="width: 100%;display: flex;vertical-align: top;height: 22px;">
<input type="number" class="smallinput" [(ngModel)]="sliderValueThickness"
@ -223,7 +223,7 @@
[disabled]="!isEditPattern || (canvasAssetObj.GameMode == 0 && !pattern)">
<span style="font-size: 14px;">选中高亮</span>
</div>
<div class="colorBigDiv" *ngIf="canvasAssetObj.FillMode == 0">
<div class="colorBigDiv" *ngIf="canvasAssetObj.FillMode == 0 && !isGis">
<div class="colorBigTemplateDiv">
<span>颜色</span>
<div class="colorTemplateDiv" [style]="{'background-color':selectedcolor}">
@ -496,7 +496,7 @@
</div>
</div> -->
<div class="rightTitle">消防要素</div>
<div class="firecategoriesTree">
<div class="firecategoriesTree" *ngIf="!isGis">
<div class="hideAllTreeNode" (click)='toggoleAllTreenode()' *ngIf="allFireElements.length">
<label>全部显示/隐藏</label>
<mat-icon [ngClass]="{'icongray': hideAllTreenode == false}">visibility</mat-icon>

113
src/app/ui/collection-tools-plan/collection-tools.component.ts

@ -231,17 +231,17 @@ export class CollectionToolsPlanComponent implements OnInit {
assetWidthIunput() {
this.canvasAssetObj.Width = this.assetWidth
this.canvasData.isChange = true
if(!this.isGis){
if (!this.isGis) {
this.canvas.refreshIcon(this.canvasAssetObj.Id)
}
}
//素材高度输入框改变
assetHeightIunput() {
this.canvasAssetObj.Height = this.assetHeight
this.canvasData.isChange = true
if(!this.isGis){
if (!this.isGis) {
this.canvas.refreshIcon(this.canvasAssetObj.Id)
}
}
@ -250,7 +250,7 @@ export class CollectionToolsPlanComponent implements OnInit {
assetAngleIunput() {
this.canvasAssetObj.Angle = this.sliderValue
this.canvasData.isChange = true
if(!this.isGis){
if (!this.isGis) {
this.canvas.refreshIcon(this.canvasAssetObj.Id)
}
}
@ -259,7 +259,7 @@ export class CollectionToolsPlanComponent implements OnInit {
assetThicknessIunput() {
this.canvasAssetObj.Thickness = this.sliderValueThickness
this.canvasData.isChange = true
if(!this.isGis){
if (!this.isGis) {
this.canvas.refreshIcon(this.canvasAssetObj.Id)
}
}
@ -286,7 +286,7 @@ export class CollectionToolsPlanComponent implements OnInit {
}
this.canvasAssetObj.PropertyInfos[index].PropertyValue = e.target.value
this.canvasData.isChange = true
if(!this.isGis){
if (!this.isGis) {
this.canvas.refreshIcon(this.canvasAssetObj.Id)
}
}
@ -308,7 +308,7 @@ export class CollectionToolsPlanComponent implements OnInit {
this.selectedcolor = item + this.selectedcolor.substring(this.selectedcolor.length - 2)
this.canvasAssetObj.Color = this.selectedcolor
this.canvasData.isChange = true
if(!this.isGis){
if (!this.isGis) {
this.canvas.refreshIcon(this.canvasAssetObj.Id)
}
}
@ -324,7 +324,7 @@ export class CollectionToolsPlanComponent implements OnInit {
this.selectedcolor = replacepos(this.selectedcolor, 7, 8, colorOpacity.toString(16))
this.canvasAssetObj.Color = this.selectedcolor
this.canvasData.isChange = true
if(!this.isGis){
if (!this.isGis) {
this.canvas.refreshIcon(this.canvasAssetObj.Id)
}
}
@ -789,7 +789,6 @@ export class CollectionToolsPlanComponent implements OnInit {
});
}
}
if ((new Set(adjoinArr)).size != adjoinArr.length) {
this.maskLayerService.sendMessage(false)
let config = new MatSnackBarConfig();
@ -800,6 +799,21 @@ export class CollectionToolsPlanComponent implements OnInit {
} else {
//如果是单位 总平面图
if (this.checkedBuildingIndex == -1) {
if(this.isGis){
let data = JSON.parse(JSON.stringify(this.selectingSitePlan))
data.zoomLevel = this.map.getZoom(),
data.defaultCenter = {x:this.map.getCenter().lng,y:this.map.getCenter().lat}
delete data.userId
delete data.userName
delete data.sitePlanDataInfo
console.log('gisselectingSitePlan',this.selectingSitePlan)
this.http.put(`/api/SitePlans/${this.selectingSitePlan.id}`,data).subscribe(data=>{
console.log('保存中心点成功')
})
}
//保存平面图数据
this.http.post("/api/SitePlanData", SitePlanData, {
params: {
@ -1391,24 +1405,42 @@ export class CollectionToolsPlanComponent implements OnInit {
}
map: any
toLoadGis() {
console.log(666666, this.selectingSitePlan)
this.map = new AMap.Map('planContainer', {
viewMode: '2D', // 默认使用 2D 模式,如果希望使用带有俯仰角的 3D 模式,请设置 viewMode: '3D',
zoom: 11, //初始化地图层级
});
this.map.setCity('上海市');
if(this.selectingSitePlan.defaultCenter){
console.log('设置了吗')
this.map.setZoom(this.selectingSitePlan.zoomLevel); //设置地图层级
this.map.setCenter([this.selectingSitePlan.defaultCenter.x, this.selectingSitePlan.defaultCenter.y])
}else{
this.map.setCity('上海市');
}
this.map.on('click', (e) => {
this.showInfoClick(e)
});
this.map.on("complete", () => {
for (const key in this.canvasData.originaleveryStoreyData.data) {
if (Object.prototype.hasOwnProperty.call(this.canvasData.originaleveryStoreyData.data, key)) {
const element = this.canvasData.originaleveryStoreyData.data[key];
let markerContent = '' +
'<div class="custom-content-marker" id="xxxx">' +
`<img src="${element.ImageUrl}">` +
`<div class="close-btn" onclick='deleteMarker()'>X</div>` +
'</div>';
let editable = sessionStorage.getItem('editable')
let markerContent
if (editable == '1') {
markerContent = '' +
'<div class="custom-content-marker" id="xxxx">' +
`<img src="${element.ImageUrl}">` +
`<div class="close-btn" onclick='deleteMarker()'>X</div>` +
'</div>';
} else {
markerContent = '' +
'<div class="custom-content-marker" id="xxxx">' +
`<img src="${element.ImageUrl}">` +
'</div>';
}
// 将 icon 传入 marker
let startMarker = new AMap.Marker({
position: new AMap.LngLat(element.Point.x, element.Point.y),
@ -1416,7 +1448,7 @@ export class CollectionToolsPlanComponent implements OnInit {
content: markerContent,
// 以 icon 的 [center bottom] 为原点
offset: new AMap.Pixel(-13, -30),
draggable: true,
draggable: editable == '1' ? true : false,
});
startMarker.id = element.Id
@ -1434,8 +1466,9 @@ export class CollectionToolsPlanComponent implements OnInit {
this.map.add(startMarker);
}
}
});
this.map.on('rightclick', (e) => {
this.selectImage.imageUrl = null
});
}
@ -1679,6 +1712,7 @@ export class CollectionToolsPlanComponent implements OnInit {
isBuilding: this.checkedBuildingIndex == -1 ? false : true,
Panel: this.beforeOneCheckedBuilding,
buildingData: e,
isGis: this.isGis
}
let dialogRef = this.dialog.open(editPlaneFigureComponentPlan, { disableClose: true, hasBackdrop: false, position: { left: '150px', top: '200px' }, data });
dialogRef.keydownEvents().subscribe(data => {
@ -1883,13 +1917,13 @@ export class CollectionToolsPlanComponent implements OnInit {
//保存建筑数据
let CompanyData = JSON.parse(JSON.stringify(this.canvasData.originalcompanyBuildingData));
CompanyData.data = JSON.stringify(CompanyData.data)
this.http.post("/api/CompanyData", CompanyData, {params: {companyId: this.params.companyId}}).subscribe(data => {
this.http.post("/api/CompanyData", CompanyData, { params: { companyId: this.params.companyId } }).subscribe(data => {
list.push(1)
if (list.length === 4) { this.updateCurrentFloor() }
})
//批量保存单位毗邻
let CompanyAdjoins = this.canvasData.getCompanyAdjoinInfo()
this.http.post("/api/CompanyAdjoins/Batch", CompanyAdjoins, {params:{companyId: this.params.companyId}}).subscribe(data => {
this.http.post("/api/CompanyAdjoins/Batch", CompanyAdjoins, { params: { companyId: this.params.companyId } }).subscribe(data => {
list.push(1)
if (list.length === 4) { this.updateCurrentFloor() }
}, err => {
@ -1904,13 +1938,13 @@ export class CollectionToolsPlanComponent implements OnInit {
})
//批量保存单位重点部位
let CompanyImportantLocations = this.canvasData.getCompanyImportantLocations()
this.http.post("/api/CompanyImportantLocations/Batch", CompanyImportantLocations, {params:{companyId: this.params.companyId}}).subscribe(data => {
this.http.post("/api/CompanyImportantLocations/Batch", CompanyImportantLocations, { params: { companyId: this.params.companyId } }).subscribe(data => {
list.push(1)
if (list.length === 4) { this.updateCurrentFloor() }
})
//批量保存单位消防设施素材
let CompanyFacilityAssets = this.canvasData.getAllCompanyFacilityAssetInfo()
this.http.post("/api/CompanyFacilityAssets/Batch", CompanyFacilityAssets, {params: {companyId: this.params.companyId}}).subscribe(data => {
this.http.post("/api/CompanyFacilityAssets/Batch", CompanyFacilityAssets, { params: { companyId: this.params.companyId } }).subscribe(data => {
list.push(1)
if (list.length === 4) { this.updateCurrentFloor() }
})
@ -1939,7 +1973,7 @@ export class CollectionToolsPlanComponent implements OnInit {
//建筑数据
let CompanyData = JSON.parse(JSON.stringify(this.canvasData.originalcompanyBuildingData));
CompanyData.data = JSON.stringify(CompanyData.data)
this.http.post("/api/BuildingData", CompanyData, {params: { companyId: this.params.companyId}}).subscribe(data => {
this.http.post("/api/BuildingData", CompanyData, { params: { companyId: this.params.companyId } }).subscribe(data => {
list.push(1)
if (list.length === 4) { this.updateCurrentFloor() }
})
@ -1983,15 +2017,15 @@ export class CollectionToolsPlanComponent implements OnInit {
let planData = this.getSitePlanCompanyData() //获取 单位 数据
this.http.get('/api/SitePlans', { params: this.params }).subscribe(data => {
this.sitePlanData = data
this.selectingSitePlan = this.sitePlanData[this.sitePlanData.length-1] || {}
this.canvasData.selectStorey = this.sitePlanData[this.sitePlanData.length-1] || {} //服务中 存一份数据
this.selectSitePlanIndex = this.sitePlanData.length-1
this.selectingSitePlan = this.sitePlanData[this.sitePlanData.length - 1] || {}
this.canvasData.selectStorey = this.sitePlanData[this.sitePlanData.length - 1] || {} //服务中 存一份数据
this.selectSitePlanIndex = this.sitePlanData.length - 1
Promise.all([fireData, planData]).then((res) => {
this.getSitePlanStorey(this.selectingSitePlan) //获取 平面图 楼层数据
this.maskLayerService.sendMessage(false)
})
}) //重新加载 新楼层
} else { //楼层/区域
let params = { buildingId: this.beforeOneCheckedBuilding.id }
@ -1999,10 +2033,10 @@ export class CollectionToolsPlanComponent implements OnInit {
let planData = this.getBuildingData(params) //获取 建筑 数据
this.http.get('/api/BuildingAreas', { params }).subscribe(data => {
this.sitePlanData = data
this.selectingSitePlan = this.sitePlanData[this.sitePlanData.length-1] || {}
this.canvasData.selectStorey = this.sitePlanData[this.sitePlanData.length-1] || {} //服务中 存一份数据
this.selectSitePlanIndex = this.sitePlanData.length-1
this.selectingSitePlan = this.sitePlanData[this.sitePlanData.length - 1] || {}
this.canvasData.selectStorey = this.sitePlanData[this.sitePlanData.length - 1] || {} //服务中 存一份数据
this.selectSitePlanIndex = this.sitePlanData.length - 1
Promise.all([fireData, planData]).then((res) => {
this.getBuildingStorey(this.selectingSitePlan) //获取 建筑 楼层数据
this.maskLayerService.sendMessage(false)
@ -2019,6 +2053,13 @@ export class CollectionToolsPlanComponent implements OnInit {
let fileSize = file.size || null //上传文件的总大小
let maxSize = 5 * 1024 * 1024 //5MB一个分片
let tenSize = 10 * 1024 * 1024 //10MB限制
if (file && file.name.toLowerCase().indexOf('png') == -1 && file.name.toLowerCase().indexOf('jpg') == -1 && file.name.toLowerCase().indexOf('jpeg') == -1) {
const config = new MatSnackBarConfig();
config.verticalPosition = 'top';
config.duration = 3000
this.snackBar.open('请上传图片后缀为png,jpg,jpeg的文件', '确定', config);
return
}
if (file && fileSize <= maxSize) { //上传文件<=5MB时
let formData = new FormData()
@ -2155,7 +2196,7 @@ export class CollectionToolsPlanComponent implements OnInit {
selectImg(item, items, index) {
//如果是gis
this.selectLibrary = item.name
this.selectImage = items
this.selectImage = JSON.parse(JSON.stringify(items))
// console.log('选中图片',this.selectImage)
this.selectImageIndex = index
if (this.isGis) {
@ -2175,7 +2216,7 @@ export class CollectionToolsPlanComponent implements OnInit {
//地图单击事件
clickId
showInfoClick(e) {
if (!this.selectImage.imageUrl) {
if (!this.selectImage || !this.selectImage.imageUrl) {
return
}
this.canvasData.isChange = true
@ -2225,7 +2266,7 @@ export class CollectionToolsPlanComponent implements OnInit {
//将marker点添加
this.planDataMarkers.push(startMarker)
this.map.add(startMarker);
}

11
src/app/ui/collection-tools-plan/leftFunctionalDomain.ts

@ -60,6 +60,13 @@ export class leftFunctionalDomainComponentPlan implements OnInit {
//提交表单创建平面图
onSubmit (e) {
if (this.file && this.selectedType == 'image') {
    if (this.file.name.toLowerCase().indexOf('png') == -1 && this.file.name.toLowerCase().indexOf('jpg') == -1 && this.file.name.toLowerCase().indexOf('jpeg') == -1) {
      const config = new MatSnackBarConfig();
      config.verticalPosition = 'top';
      config.duration = 3000
      this.snackBar.open('请上传图片后缀为png,jpg,jpeg的文件', '确定', config);
      return
  }
this.maskLayerService.sendMessage(true)
if (this.file.size<=5*1024*1024) { //小于5MB
let formData = new FormData()
@ -191,6 +198,7 @@ export class editPlaneFigureComponentPlan implements OnInit {
constructor(private http:HttpClient,public dialog: MatDialog,public snackBar: MatSnackBar,public dialogRef: MatDialogRef<any>,@Inject(MAT_DIALOG_DATA) public data,public canvasData: CanvasShareDataService,private eventManager: EventManager,) { }
ngOnInit(): void {
console.log(this.data.isGis)
this.name = this.data.buildingData.name || ''
this.checked = this.data.buildingData.isRefugeStorey || false
this.area = this.data.buildingData.area || 0
@ -284,6 +292,9 @@ export class editPlaneFigureComponentPlan implements OnInit {
details:e.details,
enabled: this.data.buildingData.enabled,
modifiedTime: new Date(),
isGis: this.data.isGis,
zoomLevel:this.data.buildingData.zoomLevel,
defaultCenter:this.data.buildingData.defaultCenter
}
this.http.put(`/api/SitePlans/${this.data.buildingData.id}`,data).subscribe(data=>{
this.dialogRef.close('总平面图');

4
src/app/ui/collection-tools/collection-tools.component.html

@ -30,11 +30,11 @@
</button>
<span title="适应缩放" class="zoom" (click)="adaptZoom()">
<img src="/assets/images/适应缩放.png" alt="">
<img src="/assets/images/sysf.png" alt="">
适应缩放
</span>
<span title="重置缩放" class="zoom" (click)="resetZoom()">
<img src="/assets/images/重置缩放.png" alt="">
<img src="/assets/images/czsf.png" alt="">
重置缩放
</span>
<span title="导出图片" class="zoom" (click)="takeScreenshot()">

9
src/app/ui/collection-tools/collection-tools.component.ts

@ -2156,6 +2156,13 @@ export class CollectionToolsComponent implements OnInit {
let fileSize = file.size || null //上传文件的总大小
let maxSize = 5 * 1024 * 1024 //5MB一个分片
let tenSize = 10 * 1024 * 1024 //10MB限制
if (file && file.name.toLowerCase().indexOf('png') == -1 && file.name.toLowerCase().indexOf('jpg') == -1 && file.name.toLowerCase().indexOf('jpeg') == -1) {
const config = new MatSnackBarConfig();
config.verticalPosition = 'top';
config.duration = 3000
this.snackBar.open('请上传图片后缀为png,jpg,jpeg的文件', '确定', config);
return
}
if (file && fileSize <= maxSize) { //上传文件<=5MB时
let formData = new FormData()
@ -2496,6 +2503,8 @@ export class CollectionToolsComponent implements OnInit {
let dialogRef = this.dialog.open(addBGCDisposalNodeComponent);
dialogRef.afterClosed().subscribe(data => {
if (data) {
this.canvasData.selectStorey.imageWidth = 0 //修正加载底图BUG
this.canvasData.customizeDisposalNode = data //自定义数据节点
let imgURL = window.URL.createObjectURL(data.file) //将图片生成 url地址
// this.canvasData.selectPanelPointBaseData = {description: '', notes: '', weather: '', airTemperature: '', windDirection: '', windScale: ''} //更新 当前数据节点对应父级节点

7
src/app/ui/collection-tools/leftFunctionalDomain.ts

@ -230,6 +230,13 @@ export class addBGCDisposalNodeComponent implements OnInit {
//提交表单
onSubmit (e) {
if (e.name && this.file) {
     if (this.file.name.toLowerCase().indexOf('png') == -1 && this.file.name.toLowerCase().indexOf('jpg') == -1 && this.file.name.toLowerCase().indexOf('jpeg') == -1) {
      const config = new MatSnackBarConfig();
      config.verticalPosition = 'top';
      config.duration = 3000
      this.snackBar.open('请上传图片后缀为png,jpg,jpeg的文件', '确定', config);
      return
    }
e.file = this.file
this.dialogRef.close(e);
} else {

5
src/app/working-area/working-area.component.ts

@ -641,8 +641,9 @@ export class WorkingAreaComponent extends EventEmitter implements OnInit, AfterV
*
*/
public resetCanvas() {
this.app.renderer.resize(this.content.nativeElement.clientWidth, this.content.nativeElement.clientHeight);
if(!this.init.isGis){
this.app.renderer.resize(this.content.nativeElement.clientWidth, this.content.nativeElement.clientHeight);
}
}
/**
*

0
src/assets/fireForcesMarkers/大队.png → src/assets/fireForcesMarkers/dadui.png

Before

Width:  |  Height:  |  Size: 748 B

After

Width:  |  Height:  |  Size: 748 B

0
src/assets/fireForcesMarkers/其他.png → src/assets/fireForcesMarkers/qita.png

Before

Width:  |  Height:  |  Size: 839 B

After

Width:  |  Height:  |  Size: 839 B

0
src/assets/fireForcesMarkers/支队.png → src/assets/fireForcesMarkers/zhidui.png

Before

Width:  |  Height:  |  Size: 687 B

After

Width:  |  Height:  |  Size: 687 B

0
src/assets/fireForcesMarkers/中队.png → src/assets/fireForcesMarkers/zhongdui.png

Before

Width:  |  Height:  |  Size: 707 B

After

Width:  |  Height:  |  Size: 707 B

0
src/assets/fireForcesMarkers/总队.png → src/assets/fireForcesMarkers/zongdui.png

Before

Width:  |  Height:  |  Size: 845 B

After

Width:  |  Height:  |  Size: 845 B

0
src/assets/images/餐饮.png → src/assets/images/canyin.png

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

0
src/assets/images/厂房.png → src/assets/images/changfang.png

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

0
src/assets/images/储罐类.png → src/assets/images/chuguanlei.png

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

0
src/assets/images/重置缩放.png → src/assets/images/czsf.png

Before

Width:  |  Height:  |  Size: 506 B

After

Width:  |  Height:  |  Size: 506 B

0
src/assets/images/定位.png → src/assets/images/dingwei.png

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

0
src/assets/images/地下.png → src/assets/images/dixia.png

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

0
src/assets/images/方形储水池.png → src/assets/images/fxcsc.png

Before

Width:  |  Height:  |  Size: 507 B

After

Width:  |  Height:  |  Size: 507 B

0
src/assets/images/轨道交通.png → src/assets/images/guidaojiaotong.png

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

0
src/assets/images/古建筑.png → src/assets/images/gujianzhu.png

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

0
src/assets/images/联动力量.png → src/assets/images/ldll.png

Before

Width:  |  Height:  |  Size: 407 B

After

Width:  |  Height:  |  Size: 407 B

0
src/assets/images/其他.png → src/assets/images/qita.png

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

0
src/assets/images/商场超市.png → src/assets/images/shangchangchaoshi.png

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

0
src/assets/images/隧道.png → src/assets/images/suidao.png

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

0
src/assets/images/适应缩放.png → src/assets/images/sysf.png

Before

Width:  |  Height:  |  Size: 268 B

After

Width:  |  Height:  |  Size: 268 B

0
src/assets/images/市政消火栓.png → src/assets/images/szxhs.png

Before

Width:  |  Height:  |  Size: 601 B

After

Width:  |  Height:  |  Size: 601 B

0
src/assets/images/天然水源.png → src/assets/images/trsy.png

Before

Width:  |  Height:  |  Size: 604 B

After

Width:  |  Height:  |  Size: 604 B

0
src/assets/images/危化品.png → src/assets/images/weihuapin.png

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

0
src/assets/images/消防力量.png → src/assets/images/xfll.png

Before

Width:  |  Height:  |  Size: 338 B

After

Width:  |  Height:  |  Size: 338 B

0
src/assets/images/学校.png → src/assets/images/xuexiao.png

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

0
src/assets/images/向下收起.png → src/assets/images/xxsq.png

Before

Width:  |  Height:  |  Size: 890 B

After

Width:  |  Height:  |  Size: 890 B

0
src/assets/images/影剧院.png → src/assets/images/yingjuyuan.png

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

0
src/assets/images/医院.png → src/assets/images/yiyuan.png

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

0
src/assets/images/娱乐.png → src/assets/images/yule.png

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

0
src/assets/images/展览建筑.png → src/assets/images/zhanlanjianzhu.png

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

0
src/assets/linkageForces/安监.png → src/assets/linkageForces/anjian.png

Before

Width:  |  Height:  |  Size: 916 B

After

Width:  |  Height:  |  Size: 916 B

0
src/assets/linkageForces/电力局.png → src/assets/linkageForces/dianliju.png

Before

Width:  |  Height:  |  Size: 920 B

After

Width:  |  Height:  |  Size: 920 B

0
src/assets/linkageForces/公安.png → src/assets/linkageForces/gongan.png

Before

Width:  |  Height:  |  Size: 943 B

After

Width:  |  Height:  |  Size: 943 B

0
src/assets/linkageForces/海事.png → src/assets/linkageForces/haishi.png

Before

Width:  |  Height:  |  Size: 960 B

After

Width:  |  Height:  |  Size: 960 B

0
src/assets/linkageForces/环保局.png → src/assets/linkageForces/huanbaoju.png

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

0
src/assets/linkageForces/交通.png → src/assets/linkageForces/jiaotong.png

Before

Width:  |  Height:  |  Size: 737 B

After

Width:  |  Height:  |  Size: 737 B

0
src/assets/linkageForces/民政.png → src/assets/linkageForces/minzheng.png

Before

Width:  |  Height:  |  Size: 827 B

After

Width:  |  Height:  |  Size: 827 B

0
src/assets/linkageForces/气象局.png → src/assets/linkageForces/qixiangju.png

Before

Width:  |  Height:  |  Size: 901 B

After

Width:  |  Height:  |  Size: 901 B

0
src/assets/linkageForces/燃气局.png → src/assets/linkageForces/ranqiju.png

Before

Width:  |  Height:  |  Size: 862 B

After

Width:  |  Height:  |  Size: 862 B

0
src/assets/linkageForces/市政.png → src/assets/linkageForces/shizheng.png

Before

Width:  |  Height:  |  Size: 789 B

After

Width:  |  Height:  |  Size: 789 B

0
src/assets/linkageForces/水利.png → src/assets/linkageForces/shuili.png

Before

Width:  |  Height:  |  Size: 788 B

After

Width:  |  Height:  |  Size: 788 B

0
src/assets/linkageForces/通信.png → src/assets/linkageForces/tongxin.png

Before

Width:  |  Height:  |  Size: 561 B

After

Width:  |  Height:  |  Size: 561 B

0
src/assets/linkageForces/医疗.png → src/assets/linkageForces/yiliao.png

Before

Width:  |  Height:  |  Size: 839 B

After

Width:  |  Height:  |  Size: 839 B

0
src/assets/linkageForces/应急管理.png → src/assets/linkageForces/yingjiguanli.png

Before

Width:  |  Height:  |  Size: 901 B

After

Width:  |  Height:  |  Size: 901 B

0
src/assets/linkageForces/住建.png → src/assets/linkageForces/zhujian.png

Before

Width:  |  Height:  |  Size: 786 B

After

Width:  |  Height:  |  Size: 786 B

0
src/assets/linkageForcesMarkers/安监.png → src/assets/linkageForcesMarkers/anjian.png

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

0
src/assets/linkageForcesMarkers/电力局.png → src/assets/linkageForcesMarkers/dianliju.png

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

0
src/assets/linkageForcesMarkers/公安.png → src/assets/linkageForcesMarkers/gongan.png

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 3.3 KiB

0
src/assets/linkageForcesMarkers/海事.png → src/assets/linkageForcesMarkers/haishi.png

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 3.3 KiB

0
src/assets/linkageForcesMarkers/环保局.png → src/assets/linkageForcesMarkers/huanbaoju.png

Before

Width:  |  Height:  |  Size: 3.7 KiB

After

Width:  |  Height:  |  Size: 3.7 KiB

0
src/assets/linkageForcesMarkers/交通.png → src/assets/linkageForcesMarkers/jiaotong.png

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

0
src/assets/linkageForcesMarkers/民政.png → src/assets/linkageForcesMarkers/minzheng.png

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 3.0 KiB

0
src/assets/linkageForcesMarkers/气象局.png → src/assets/linkageForcesMarkers/qixiangju.png

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

0
src/assets/linkageForcesMarkers/燃气局.png → src/assets/linkageForcesMarkers/ranqiju.png

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

0
src/assets/linkageForcesMarkers/市政.png → src/assets/linkageForcesMarkers/shizheng.png

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

0
src/assets/linkageForcesMarkers/水利.png → src/assets/linkageForcesMarkers/shuili.png

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 2.8 KiB

0
src/assets/linkageForcesMarkers/通信.png → src/assets/linkageForcesMarkers/tongxin.png

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

0
src/assets/linkageForcesMarkers/医疗.png → src/assets/linkageForcesMarkers/yiliao.png

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

0
src/assets/linkageForcesMarkers/应急管理.png → src/assets/linkageForcesMarkers/yingjiguanli.png

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

0
src/assets/linkageForcesMarkers/住建.png → src/assets/linkageForcesMarkers/zhujian.png

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

0
src/assets/waterMarkers/方形储水池.png → src/assets/waterMarkers/fxcsc.png

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

0
src/assets/waterMarkers/市政消火栓.png → src/assets/waterMarkers/szxhs.png

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

0
src/assets/waterMarkers/天然水源.png → src/assets/waterMarkers/trsy.png

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

Loading…
Cancel
Save