6666 }
6767 .add-attribute-info ,
6868 .edit-attribute-info {
69- margin-bottom : 50px ;
69+ /* margin-bottom: 50px; */
7070 }
7171
7272 .info-panel {
140140 margin-bottom : 10px ;
141141 }
142142 .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;
147146 }
148147 .edit-tips {
149148 width : 300px ;
@@ -257,7 +256,7 @@ <h5><span data-i18n="resources.text_targetDataset"></span></h5>
257256 </ div >
258257 < h6 > < span class ="line-element "> </ span > < span data-i18n ="resources.text_spacialInfo "> </ span > </ h6 >
259258 < div class ="space-info ">
260- < input class ="input-element " type ="text ">
259+ < input class ="input-element " type ="text " disabled >
261260 < p class ="desc-element "> < span data-i18n ="resources.msg_moveToMapDraw "> </ span > </ p >
262261 </ div >
263262 < 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
273272 < 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 >
274273 < h6 > < span data-i18n ="resources.text_spacialInfo "> </ span > </ h6 >
275274 < div class ="space-info ">
276- < input class ="input-element " type ="text ">
275+ < input class ="input-element " type ="text " disabled >
277276 </ div >
278277 < h6 > < span data-i18n ="resources.text_attributeInfo "> </ span > </ h6 >
279278 < div class ="edit-attribute-info ">
@@ -308,7 +307,6 @@ <h5><span data-i18n="resources.text_featureToDelete"></span>:</h5>
308307 </ div >
309308 < div class ="edit-tips "> < span data-i18n ="resources.msg_clickToSelect "> </ span > </ div >
310309 </ div >
311- </ div >
312310 < script type ="text/javascript " include ="jquery,bootstrap,widgets.alert,viewer " src ="../js/include-web.js "> </ script >
313311 < script type ="text/javascript ">
314312 var status = 'ADD' ;
@@ -348,6 +346,7 @@ <h5><span data-i18n="resources.text_featureToDelete"></span>:</h5>
348346 var container = document . getElementById ( 'popup' ) ;
349347 var content = document . getElementById ( 'popup-content' ) ;
350348 var isChanged = false ;
349+ var preSelectId = null ;
351350 map = new mapboxgl . Map ( {
352351 container : 'map' ,
353352 style : {
@@ -735,23 +734,35 @@ <h5><span data-i18n="resources.text_featureToDelete"></span>:</h5>
735734 // 切换状态
736735 document . querySelector ( '#addFeature' ) . addEventListener ( 'click' , function ( ) {
737736 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 ) ;
739742 document . querySelector ( '.add-tips' ) . style . display = 'inline-block' ;
740743 return ;
741744 }
742745 switchPanel ( 'add' ) ;
743746 } ) ;
744747 document . querySelector ( '#editFeature' ) . addEventListener ( 'click' , function ( ) {
745748 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 ) ;
747754 document . querySelector ( '.add-tips' ) . style . display = 'inline-block' ;
748755 return ;
749756 }
750757 switchPanel ( 'edit' ) ;
751758 } ) ;
752759 document . querySelector ( '#deleteFeature' ) . addEventListener ( 'click' , function ( ) {
753760 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 ) ;
755766 document . querySelector ( '.add-tips' ) . style . display = 'inline-block' ;
756767 return ;
757768 }
@@ -896,9 +907,10 @@ <h5><span data-i18n="resources.text_featureToDelete"></span>:</h5>
896907 if ( ! currentFeature . data . id ) {
897908 datasetInfoList [ currentDataset ] . uniqueId ++ ;
898909 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 ;
902914 }
903915 if ( type === 'edit' ) {
904916 var allFeature = draw . getAll ( ) ;
@@ -911,10 +923,10 @@ <h5><span data-i18n="resources.text_featureToDelete"></span>:</h5>
911923 } ) ;
912924 } ) ;
913925 } ;
926+
927+
914928
915929 commit ( isUpdate ) ;
916-
917- // 切换到编辑
918930 switchPanel ( 'edit' , true ) ;
919931 }
920932
@@ -964,7 +976,13 @@ <h5><span data-i18n="resources.text_featureToDelete"></span>:</h5>
964976 } ) ;
965977 editFeaturesService . editFeatures ( addFeatureParams , function ( serviceResult ) {
966978 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 ) ;
968986 }
969987 } ) ;
970988 }
@@ -989,6 +1007,9 @@ <h5><span data-i18n="resources.text_featureToDelete"></span>:</h5>
9891007 data . features . splice ( idx , 1 ) ;
9901008 } ) ;
9911009 source . setData ( data ) ;
1010+ var deleteEle = document . querySelector ( '.delete-feature-list' ) ;
1011+ deleteEle . innerHTML = '' ;
1012+ deleteList = [ ] ;
9921013 widgets . alert . showAlert ( resources . text_deleteSuccess , true ) ;
9931014 }
9941015 } ) ;
@@ -998,9 +1019,20 @@ <h5><span data-i18n="resources.text_featureToDelete"></span>:</h5>
9981019 clearInteraction ( ) ;
9991020 map . on ( 'click' , function ( e ) {
10001021 var res = map . queryRenderedFeatures ( e . point ) ;
1022+ if ( ! res [ 0 ] ) {
1023+ return ;
1024+ }
10011025 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+ }
10021035 isChanged = true ;
1003- if ( res [ 0 ] && ! [ 'mapbox-gl-draw-cold' , 'mapbox-gl-draw-hot' ] . indexOf ( res [ 0 ] . source ) > - 1 ) {
10041036 var source = map . getSource ( res [ 0 ] . source ) ;
10051037 var type = res [ 0 ] . type ;
10061038 var targetFeature = source . _data . features . find ( function ( feature ) {
@@ -1015,7 +1047,7 @@ <h5><span data-i18n="resources.text_featureToDelete"></span>:</h5>
10151047 id : id ,
10161048 properties : properties
10171049 } ;
1018- var layer = map . getLayer ( properties . datasetName ) ;
1050+ var layer = map . getLayer ( properties . datasetName || properties [ 'user_datasetName' ] ) ;
10191051 if ( ! layer ) {
10201052 return ;
10211053 }
@@ -1033,7 +1065,7 @@ <h5><span data-i18n="resources.text_featureToDelete"></span>:</h5>
10331065 allIds = allIds . map ( function ( id ) {
10341066 return id + '' ;
10351067 } ) ;
1036- draw . add ( editFeature ) ;
1068+ preSelectId = draw . add ( editFeature ) [ 0 ] ;
10371069 var filters = [ 'match' , [ 'get' , 'SMID' ] , allIds , true , false ] ;
10381070 map . setFilter ( properties . datasetName , filters ) ;
10391071 draw . changeMode ( geometry . type === 'Point' ? 'simple_select' : 'direct_select' , { featureId : id } ) ;
@@ -1050,15 +1082,21 @@ <h5><span data-i18n="resources.text_featureToDelete"></span>:</h5>
10501082 } else if ( status == 'DELETE' ) {
10511083 var feature = res [ 0 ] ;
10521084 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 ] = [ ]
10551093 }
1056- if ( deleteList [ feature . properties . datasetName ] . indexOf ( feature . id ) > - 1 ) {
1094+ if ( deleteList [ datasetName ] . indexOf ( id ) > - 1 ) {
10571095 return ;
10581096 }
1059- deleteList [ feature . properties . datasetName ] . push ( feature . id ) ;
1097+ deleteList [ datasetName ] . push ( id ) ;
10601098 var deleteItem = document . createElement ( 'div' ) ;
1061- deleteItem . innerText = 'SMID: ' + feature . id + ' (' + feature . properties . datasetName + ')' ;
1099+ deleteItem . innerText = 'SMID: ' + id + ' (' + datasetName + ')' ;
10621100 var deleteEle = document . querySelector ( '.delete-feature-list' ) ;
10631101 deleteEle . appendChild ( deleteItem ) ;
10641102 }
@@ -1073,6 +1111,8 @@ <h5><span data-i18n="resources.text_featureToDelete"></span>:</h5>
10731111 document . querySelector ( '.edit-feature-info' ) . style . display = 'block' ;
10741112 document . querySelector ( '.edit-feature-info>.space-info>.input-element' ) . value = JSON . stringify ( { geometry : currentFeature . data . geometry } ) ;
10751113 renderEditAttribute ( 'edit' , currentFeature . data . properties ) ;
1114+ updateChanged = true ;
1115+ document . querySelector ( '.editSave' ) . disabled = false ;
10761116 }
10771117 } ) ;
10781118 map . on ( 'draw.selectionchange' , function ( ) {
0 commit comments