66
66
}
67
67
.add-attribute-info ,
68
68
.edit-attribute-info {
69
- margin-bottom : 50px ;
69
+ /* margin-bottom: 50px; */
70
70
}
71
71
72
72
.info-panel {
140
140
margin-bottom : 10px ;
141
141
}
142
142
.info-bottom {
143
- position : absolute;
144
- right : 20px ;
145
- margin-top : 40px ;
146
- bottom : 10px ;
143
+ margin-top : 20px ;
144
+ height : 55px ;
145
+ float : right;
147
146
}
148
147
.edit-tips {
149
148
width : 300px ;
@@ -257,7 +256,7 @@ <h5><span data-i18n="resources.text_targetDataset"></span></h5>
257
256
</ div >
258
257
< h6 > < span class ="line-element "> </ span > < span data-i18n ="resources.text_spacialInfo "> </ span > </ h6 >
259
258
< div class ="space-info ">
260
- < input class ="input-element " type ="text ">
259
+ < input class ="input-element " type ="text " disabled >
261
260
< p class ="desc-element "> < span data-i18n ="resources.msg_moveToMapDraw "> </ span > </ p >
262
261
</ div >
263
262
< h6 > < span class ="line-element "> </ span > < span data-i18n ="resources.text_attributeInfo "> </ span > </ h6 >
@@ -273,7 +272,7 @@ <h6><span class="line-element"></span><span data-i18n="resources.text_attributeI
273
272
< h4 class ="into-title "> < span data-i18n ="resources.text_editFeature "> </ span > < span class ="dataset-info "> < span data-i18n ="resources.text_dataset "> </ span > :< span class ="edit-dataset "> </ span > </ span > </ h4 >
274
273
< h6 > < span data-i18n ="resources.text_spacialInfo "> </ span > </ h6 >
275
274
< div class ="space-info ">
276
- < input class ="input-element " type ="text ">
275
+ < input class ="input-element " type ="text " disabled >
277
276
</ div >
278
277
< h6 > < span data-i18n ="resources.text_attributeInfo "> </ span > </ h6 >
279
278
< div class ="edit-attribute-info ">
@@ -308,7 +307,6 @@ <h5><span data-i18n="resources.text_featureToDelete"></span>:</h5>
308
307
</ div >
309
308
< div class ="edit-tips "> < span data-i18n ="resources.msg_clickToSelect "> </ span > </ div >
310
309
</ div >
311
- </ div >
312
310
< script type ="text/javascript " include ="jquery,bootstrap,widgets.alert,viewer " src ="../js/include-web.js "> </ script >
313
311
< script type ="text/javascript ">
314
312
var status = 'ADD' ;
@@ -348,6 +346,7 @@ <h5><span data-i18n="resources.text_featureToDelete"></span>:</h5>
348
346
var container = document . getElementById ( 'popup' ) ;
349
347
var content = document . getElementById ( 'popup-content' ) ;
350
348
var isChanged = false ;
349
+ var preSelectId = null ;
351
350
map = new mapboxgl . Map ( {
352
351
container : 'map' ,
353
352
style : {
@@ -735,23 +734,35 @@ <h5><span data-i18n="resources.text_featureToDelete"></span>:</h5>
735
734
// 切换状态
736
735
document . querySelector ( '#addFeature' ) . addEventListener ( 'click' , function ( ) {
737
736
if ( isChanged ) {
738
- document . querySelector ( '.message' ) . style . display = 'block' ;
737
+ var message = document . querySelector ( '.message' ) ;
738
+ message . style . display = 'block' ;
739
+ setTimeout ( ( ) => {
740
+ message . style . display = 'none' ;
741
+ } , 3000 ) ;
739
742
document . querySelector ( '.add-tips' ) . style . display = 'inline-block' ;
740
743
return ;
741
744
}
742
745
switchPanel ( 'add' ) ;
743
746
} ) ;
744
747
document . querySelector ( '#editFeature' ) . addEventListener ( 'click' , function ( ) {
745
748
if ( isChanged ) {
746
- document . querySelector ( '.message' ) . style . display = 'block' ;
749
+ var message = document . querySelector ( '.message' ) ;
750
+ message . style . display = 'block' ;
751
+ setTimeout ( ( ) => {
752
+ message . style . display = 'none' ;
753
+ } , 3000 ) ;
747
754
document . querySelector ( '.add-tips' ) . style . display = 'inline-block' ;
748
755
return ;
749
756
}
750
757
switchPanel ( 'edit' ) ;
751
758
} ) ;
752
759
document . querySelector ( '#deleteFeature' ) . addEventListener ( 'click' , function ( ) {
753
760
if ( isChanged ) {
754
- document . querySelector ( '.message' ) . style . display = 'block' ;
761
+ var message = document . querySelector ( '.message' ) ;
762
+ message . style . display = 'block' ;
763
+ setTimeout ( ( ) => {
764
+ message . style . display = 'none' ;
765
+ } , 3000 ) ;
755
766
document . querySelector ( '.add-tips' ) . style . display = 'inline-block' ;
756
767
return ;
757
768
}
@@ -896,9 +907,10 @@ <h5><span data-i18n="resources.text_featureToDelete"></span>:</h5>
896
907
if ( ! currentFeature . data . id ) {
897
908
datasetInfoList [ currentDataset ] . uniqueId ++ ;
898
909
currentFeature . data . id = datasetInfoList [ currentDataset ] . uniqueId ;
899
- isUpdate = false ;
900
- } else {
901
- isUpdate = true ;
910
+ } ;
911
+ isUpadate = type !== 'add' ;
912
+ if ( ! currentFeature . data . properties [ 'SMUSERID' ] ) {
913
+ currentFeature . data . properties [ 'SMUSERID' ] = currentFeature . data . id ;
902
914
}
903
915
if ( type === 'edit' ) {
904
916
var allFeature = draw . getAll ( ) ;
@@ -911,10 +923,10 @@ <h5><span data-i18n="resources.text_featureToDelete"></span>:</h5>
911
923
} ) ;
912
924
} ) ;
913
925
} ;
926
+
927
+
914
928
915
929
commit ( isUpdate ) ;
916
-
917
- // 切换到编辑
918
930
switchPanel ( 'edit' , true ) ;
919
931
}
920
932
@@ -964,7 +976,13 @@ <h5><span data-i18n="resources.text_featureToDelete"></span>:</h5>
964
976
} ) ;
965
977
editFeaturesService . editFeatures ( addFeatureParams , function ( serviceResult ) {
966
978
if ( serviceResult . result . succeed ) {
967
- widgets . alert . showAlert ( isUpdate ? '更新要素成功' : '新增要素成功' , true ) ;
979
+ var addFeature = draw . getAll ( ) . features [ 0 ] ;
980
+ if ( addFeature ) {
981
+ addFeature . properties . datasetName = currentDataset ;
982
+ addFeature . properties . id = currentFeature . data . id ;
983
+ draw . add ( addFeature ) ;
984
+ }
985
+ widgets . alert . showAlert ( isUpdate ? '更新要素成功' : '新增要素成功' , true , 240 ) ;
968
986
}
969
987
} ) ;
970
988
}
@@ -989,6 +1007,9 @@ <h5><span data-i18n="resources.text_featureToDelete"></span>:</h5>
989
1007
data . features . splice ( idx , 1 ) ;
990
1008
} ) ;
991
1009
source . setData ( data ) ;
1010
+ var deleteEle = document . querySelector ( '.delete-feature-list' ) ;
1011
+ deleteEle . innerHTML = '' ;
1012
+ deleteList = [ ] ;
992
1013
widgets . alert . showAlert ( resources . text_deleteSuccess , true ) ;
993
1014
}
994
1015
} ) ;
@@ -998,9 +1019,20 @@ <h5><span data-i18n="resources.text_featureToDelete"></span>:</h5>
998
1019
clearInteraction ( ) ;
999
1020
map . on ( 'click' , function ( e ) {
1000
1021
var res = map . queryRenderedFeatures ( e . point ) ;
1022
+ if ( ! res [ 0 ] ) {
1023
+ return ;
1024
+ }
1001
1025
if ( status === 'EDIT' ) {
1026
+ if ( res [ 0 ] && [ 'mapbox-gl-draw-cold' , 'mapbox-gl-draw-hot' ] . indexOf ( res [ 0 ] . source ) === - 1 ) {
1027
+ if ( preSelectId ) {
1028
+ draw . delete ( preSelectId ) ;
1029
+ curEditOriginFeatures . forEach ( ( feature , idx ) => {
1030
+ if ( preSelectId === feature . id ) {
1031
+ curEditOriginFeatures . splice ( idx , 1 ) ;
1032
+ }
1033
+ } ) ;
1034
+ }
1002
1035
isChanged = true ;
1003
- if ( res [ 0 ] && ! [ 'mapbox-gl-draw-cold' , 'mapbox-gl-draw-hot' ] . indexOf ( res [ 0 ] . source ) > - 1 ) {
1004
1036
var source = map . getSource ( res [ 0 ] . source ) ;
1005
1037
var type = res [ 0 ] . type ;
1006
1038
var targetFeature = source . _data . features . find ( function ( feature ) {
@@ -1015,7 +1047,7 @@ <h5><span data-i18n="resources.text_featureToDelete"></span>:</h5>
1015
1047
id : id ,
1016
1048
properties : properties
1017
1049
} ;
1018
- var layer = map . getLayer ( properties . datasetName ) ;
1050
+ var layer = map . getLayer ( properties . datasetName || properties [ 'user_datasetName' ] ) ;
1019
1051
if ( ! layer ) {
1020
1052
return ;
1021
1053
}
@@ -1033,7 +1065,7 @@ <h5><span data-i18n="resources.text_featureToDelete"></span>:</h5>
1033
1065
allIds = allIds . map ( function ( id ) {
1034
1066
return id + '' ;
1035
1067
} ) ;
1036
- draw . add ( editFeature ) ;
1068
+ preSelectId = draw . add ( editFeature ) [ 0 ] ;
1037
1069
var filters = [ 'match' , [ 'get' , 'SMID' ] , allIds , true , false ] ;
1038
1070
map . setFilter ( properties . datasetName , filters ) ;
1039
1071
draw . changeMode ( geometry . type === 'Point' ? 'simple_select' : 'direct_select' , { featureId : id } ) ;
@@ -1050,15 +1082,21 @@ <h5><span data-i18n="resources.text_featureToDelete"></span>:</h5>
1050
1082
} else if ( status == 'DELETE' ) {
1051
1083
var feature = res [ 0 ] ;
1052
1084
if ( feature ) {
1053
- if ( ! deleteList [ feature . properties . datasetName ] ) {
1054
- deleteList [ feature . properties . datasetName ] = [ ]
1085
+ var datasetName = feature . properties . datasetName ;
1086
+ var id = feature . id ;
1087
+ if ( [ 'mapbox-gl-draw-cold' , 'mapbox-gl-draw-hot' ] . indexOf ( feature . source ) > - 1 ) {
1088
+ datasetName = feature . properties [ 'user_datasetName' ] ;
1089
+ id = feature . properties [ 'user_id' ] ;
1090
+ }
1091
+ if ( ! deleteList [ datasetName ] ) {
1092
+ deleteList [ datasetName ] = [ ]
1055
1093
}
1056
- if ( deleteList [ feature . properties . datasetName ] . indexOf ( feature . id ) > - 1 ) {
1094
+ if ( deleteList [ datasetName ] . indexOf ( id ) > - 1 ) {
1057
1095
return ;
1058
1096
}
1059
- deleteList [ feature . properties . datasetName ] . push ( feature . id ) ;
1097
+ deleteList [ datasetName ] . push ( id ) ;
1060
1098
var deleteItem = document . createElement ( 'div' ) ;
1061
- deleteItem . innerText = 'SMID: ' + feature . id + ' (' + feature . properties . datasetName + ')' ;
1099
+ deleteItem . innerText = 'SMID: ' + id + ' (' + datasetName + ')' ;
1062
1100
var deleteEle = document . querySelector ( '.delete-feature-list' ) ;
1063
1101
deleteEle . appendChild ( deleteItem ) ;
1064
1102
}
@@ -1073,6 +1111,8 @@ <h5><span data-i18n="resources.text_featureToDelete"></span>:</h5>
1073
1111
document . querySelector ( '.edit-feature-info' ) . style . display = 'block' ;
1074
1112
document . querySelector ( '.edit-feature-info>.space-info>.input-element' ) . value = JSON . stringify ( { geometry : currentFeature . data . geometry } ) ;
1075
1113
renderEditAttribute ( 'edit' , currentFeature . data . properties ) ;
1114
+ updateChanged = true ;
1115
+ document . querySelector ( '.editSave' ) . disabled = false ;
1076
1116
}
1077
1117
} ) ;
1078
1118
map . on ( 'draw.selectionchange' , function ( ) {
0 commit comments