42
42
color : # a09595 ;
43
43
}
44
44
45
- .add-feature-info {
45
+ .add-feature-info ,
46
+ .delete-feature-info ,
47
+ .edit-feature-info {
46
48
padding : 10px ;
47
- max-height : 820px ;
48
- overflow-y : scroll;
49
- }
50
- .delete-feature-info {
51
- padding : 10px ;
52
- max-height : 820px ;
53
- overflow-y : scroll;
54
- }
55
- .edit-feature-info {
56
- padding : 10px ;
57
- max-height : 820px ;
49
+ max-height : 745px ;
58
50
overflow-y : scroll;
59
51
}
52
+
60
53
.btn-group-xs {
61
54
margin-right : 6px ;
62
55
}
182
175
.button-group , .info-panel , .edit-tips {
183
176
box-shadow : 0px 0px 5px 0 rgba (0 , 0 , 0 , 0.3 );
184
177
}
178
+ .add-tips {
179
+ display : none;
180
+ color : red;
181
+ margin-right : 16px ;
182
+ }
183
+ .message {
184
+ width : 300px ;
185
+ height : 50px ;
186
+ position : absolute;
187
+ top : 15px ;
188
+ font-size : 16px ;
189
+ left : 50% ;
190
+ padding-top : 15px ;
191
+ display : none;
192
+ margin-left : -150px ;
193
+ background : # fff ;
194
+ z-index : 9999 ;
195
+ }
185
196
</ style >
186
197
</ head >
187
198
< body style ="margin: 0; overflow: hidden; background: #fff; width: 100%; height: 100%; position: absolute; top: 0 ">
@@ -200,6 +211,10 @@ <h5>Y</h5>
200
211
< input class ="input-element coordY " type ="number " tabindex ="2 ">
201
212
</ div >
202
213
</ div >
214
+ < div class ="message ">
215
+ < span class ="glyphicon glyphicon-exclamation-sign " style ="color: #ec5812; "> </ span >
216
+ < span > < span data-i18n ="resources.msg_pleaseSaveFirst "> </ span > </ span >
217
+ </ div >
203
218
< div class ="edit-panel ">
204
219
< div class ="button-group ">
205
220
< button
@@ -244,6 +259,7 @@ <h6><span class="line-element"></span><span data-i18n="resources.text_attributeI
244
259
< div class ="add-attribute-info ">
245
260
</ div >
246
261
< div class ="info-bottom ">
262
+ < p class ="add-tips "> < span data-i18n ="resources.msg_pleaseSave "> </ span > </ p >
247
263
< button class ="btn btn-default btn-group-xs cancel-add " data-i18n ="resources.btn_cancel "> </ button >
248
264
< button class ="btn btn-primary btn-group-xs addSave " data-i18n ="resources.btn_save "> </ button >
249
265
</ div >
@@ -258,6 +274,7 @@ <h6><span data-i18n="resources.text_attributeInfo"></span></h6>
258
274
< div class ="edit-attribute-info ">
259
275
</ div >
260
276
< div class ="info-bottom ">
277
+ < p class ="add-tips "> < span data-i18n ="resources.msg_pleaseSave "> </ span > </ p >
261
278
< button class ="btn btn-default btn-group-xs cancel-edit " data-i18n ="resources.btn_cancel "> </ button >
262
279
< button disabled class ="btn btn-primary btn-group-xs editSave " data-i18n ="resources.btn_save "> </ button >
263
280
</ div >
@@ -323,6 +340,7 @@ <h5><span data-i18n="resources.text_featureToDelete"></span>:</h5>
323
340
var curEditOriginLayers = [ ] ;
324
341
var curEditOriginFeatures = [ ] ;
325
342
var currentEditingLayer = null ;
343
+ var isChanged = false ;
326
344
var typeMap = {
327
345
REGION : 'Polygon' ,
328
346
LINE : 'Line' ,
@@ -582,7 +600,7 @@ <h5><span data-i18n="resources.text_featureToDelete"></span>:</h5>
582
600
// 系统字段
583
601
inputEle . disabled = filterFields [ currentFeature . dataset ] [ key ] ;
584
602
item . appendChild ( inputEle ) ;
585
- if ( key === 'VIDEO' ) {
603
+ if ( key === 'VIDEO' && properties [ key ] ) {
586
604
var videoPlayIcon = document . createElement ( 'div' ) ;
587
605
videoPlayIcon . className = 'playIcon' ;
588
606
var video = document . createElement ( 'video' ) ;
@@ -630,9 +648,30 @@ <h5><span data-i18n="resources.text_featureToDelete"></span>:</h5>
630
648
} ) ;
631
649
632
650
// 切换状态
633
- document . querySelector ( '.button-group' ) . addEventListener ( 'click' , function ( e ) {
634
- var className = e . target . className ;
635
- switchPanel ( className ) ;
651
+ document . querySelector ( '#addFeature' ) . addEventListener ( 'click' , function ( ) {
652
+ console . log ( isChanged ) ;
653
+ if ( isChanged ) {
654
+ document . querySelector ( '.message' ) . style . display = 'block' ;
655
+ document . querySelector ( '.add-tips' ) . style . display = 'inline-block' ;
656
+ return ;
657
+ }
658
+ switchPanel ( 'add' ) ;
659
+ } ) ;
660
+ document . querySelector ( '#editFeature' ) . addEventListener ( 'click' , function ( ) {
661
+ if ( isChanged ) {
662
+ document . querySelector ( '.message' ) . style . display = 'block' ;
663
+ document . querySelector ( '.add-tips' ) . style . display = 'inline-block' ;
664
+ return ;
665
+ }
666
+ switchPanel ( 'edit' ) ;
667
+ } ) ;
668
+ document . querySelector ( '#deleteFeature' ) . addEventListener ( 'click' , function ( ) {
669
+ if ( isChanged ) {
670
+ document . querySelector ( '.message' ) . style . display = 'block' ;
671
+ document . querySelector ( '.add-tips' ) . style . display = 'inline-block' ;
672
+ return ;
673
+ }
674
+ switchPanel ( 'delete' ) ;
636
675
} ) ;
637
676
638
677
document . querySelector ( '.add-attribute-info' ) . addEventListener ( 'change' , checkInput ) ;
@@ -659,6 +698,9 @@ <h5><span data-i18n="resources.text_featureToDelete"></span>:</h5>
659
698
if ( currentShowPanel ) {
660
699
document . querySelector ( '.' + currentShowPanel ) . style . display = 'none' ;
661
700
}
701
+ document . querySelector ( '.message' ) . style . display = 'none' ;
702
+ document . querySelector ( '.add-tips' ) . style . display = 'none' ;
703
+ isChanged = false ;
662
704
}
663
705
} ) ;
664
706
@@ -673,6 +715,9 @@ <h5><span data-i18n="resources.text_featureToDelete"></span>:</h5>
673
715
} )
674
716
curEditOriginLayers = [ ] ;
675
717
curEditOriginFeatures = [ ] ;
718
+ document . querySelector ( '.message' ) . style . display = 'none' ;
719
+ document . querySelector ( '.add-tips' ) . style . display = 'none' ;
720
+ isChanged = false ;
676
721
if ( currentShowPanel ) {
677
722
document . querySelector ( '.' + currentShowPanel ) . style . display = 'none' ;
678
723
}
@@ -683,6 +728,7 @@ <h5><span data-i18n="resources.text_featureToDelete"></span>:</h5>
683
728
var deleteEle = document . querySelector ( '.delete-feature-list' ) ;
684
729
deleteEle . innerHTML = '' ;
685
730
deleteList = { } ;
731
+ isChanged = false ;
686
732
if ( currentShowPanel ) {
687
733
document . querySelector ( '.' + currentShowPanel ) . style . display = 'none' ;
688
734
}
@@ -698,7 +744,7 @@ <h5><span data-i18n="resources.text_featureToDelete"></span>:</h5>
698
744
}
699
745
map . pm . disableGlobalEditMode ( ) ;
700
746
currentEditingLayer = null ;
701
- if ( className . indexOf ( 'plus' ) > - 1 ) {
747
+ if ( className === 'add' ) {
702
748
curEditOriginLayers = [ ] ;
703
749
curEditOriginFeatures = [ ] ;
704
750
var type = datasetInfoList [ currentDataset ] . type ;
@@ -707,7 +753,7 @@ <h5><span data-i18n="resources.text_featureToDelete"></span>:</h5>
707
753
document . querySelector ( '.add-feature-info' ) . style . display = 'block' ;
708
754
currentShowPanel = 'add-feature-info' ;
709
755
status = 'ADD' ;
710
- } else if ( className . indexOf ( 'edit' ) > - 1 ) {
756
+ } else if ( className === 'edit' ) {
711
757
getDomains ( currentDataset ) ;
712
758
endDraw ( ) ;
713
759
if ( fromAdd ) {
@@ -719,7 +765,7 @@ <h5><span data-i18n="resources.text_featureToDelete"></span>:</h5>
719
765
currentShowPanel = 'edit-feature-info' ;
720
766
status = 'EDIT' ;
721
767
startSelect ( ) ;
722
- } else if ( className . indexOf ( 'trash' ) > - 1 ) {
768
+ } else if ( className === 'delete' ) {
723
769
curEditOriginLayers = [ ] ;
724
770
curEditOriginFeatures = [ ] ;
725
771
document . querySelector ( '.edit-tips' ) . style . display = 'none' ;
@@ -742,9 +788,15 @@ <h5><span data-i18n="resources.text_featureToDelete"></span>:</h5>
742
788
var saveBtn = document . querySelector ( '.addSave' ) ;
743
789
var editBtn = document . querySelector ( '.editSave' ) ;
744
790
saveBtn . addEventListener ( 'click' , function ( ) {
791
+ document . querySelector ( '.message' ) . style . display = 'none' ;
792
+ document . querySelector ( '.add-tips' ) . style . display = 'none' ;
793
+ isChanged = false ;
745
794
save ( 'add' ) ;
746
795
} ) ;
747
796
editBtn . addEventListener ( 'click' , function ( ) {
797
+ document . querySelector ( '.message' ) . style . display = 'none' ;
798
+ document . querySelector ( '.add-tips' ) . style . display = 'none' ;
799
+ isChanged = false ;
748
800
save ( 'edit' ) ;
749
801
} ) ;
750
802
var deleteBtn = document . querySelector ( '.delete' ) ;
@@ -857,6 +909,7 @@ <h5><span data-i18n="resources.text_featureToDelete"></span>:</h5>
857
909
deleteLayerList = [ ] ;
858
910
var deleteEle = document . querySelector ( '.delete-feature-list' ) ;
859
911
deleteEle . innerHTML = '' ;
912
+ isChanged = false ;
860
913
}
861
914
} ) ;
862
915
} ) ;
@@ -872,6 +925,7 @@ <h5><span data-i18n="resources.text_featureToDelete"></span>:</h5>
872
925
allAvailableLayers . forEach ( function ( layer ) {
873
926
layer . off ( 'click' ) ;
874
927
layer . on ( 'click' , function ( e ) {
928
+ isChanged = true ;
875
929
map . pm . disableGlobalEditMode ( ) ;
876
930
var feature = e . target . feature ;
877
931
if ( status === 'EDIT' ) {
@@ -964,6 +1018,7 @@ <h5><span data-i18n="resources.text_featureToDelete"></span>:</h5>
964
1018
currentFeature . data = feature ;
965
1019
// currentFeature.dataset = currentDataset;
966
1020
document . querySelector ( '.add-feature-info>.space-info>.input-element' ) . value = JSON . stringify ( { geometry : currentFeature . data . geometry } ) ;
1021
+ isChanged = true ;
967
1022
}
968
1023
} ) ;
969
1024
}
0 commit comments