1010			 * 由于IE不支持<template>标签,所以template标签中的内容在IE下会直接显示出来。 
1111			 * 将模板设为隐藏即可解决这个问题,template标签各浏览器支持请参考:http://caniuse.com/#feat=template 
1212			 */ 
13- 			# grid-template ,  # dialog-template {
13+ 			
14+ 			# grid-template , 
15+ 			# dialog-template  {
1416				display :  none;
1517			}
1618		</ style > 
5052							< span  v-else > {{entry[col.name]}}</ span > 
5153						</ td > 
5254						< td  class ="text-center "> 
53- 							< button  class ="btn-danger " @click ="deleteItem(index ) "> delete</ button > 
55+ 							< button  class ="btn-danger " @click ="deleteItem(entry ) "> delete</ button > 
5456						</ td > 
5557					</ tr > 
5658				</ tbody > 
@@ -77,7 +79,7 @@ <h1 class="dialog-title">{{ title }}</h1>
7779								< label > {{ field.name }}</ label > 
7880								< select  v-if ="field.dataSource " v-model ="item[field.name] " :disabled ="mode === 2 && field.isKey "> 
7981									< option  v-for ="opt in field.dataSource " :value ="opt "> {{ opt }}</ option > 
80- 							</ select > 
82+ 								 </ select > 
8183								< input  v-else  type ="text " v-model ="item[field.name] " :disabled ="mode === 2 && field.isKey "> 
8284							</ div > 
8385						</ div > 
@@ -108,9 +110,9 @@ <h1 class="dialog-title">{{ title }}</h1>
108110						item : { } 
109111					} 
110112				} , 
111- 				ready : function ( ) { 
112- 					for   ( var  i  =  0 ;  i  <  this . columns . length ;  i ++ )  { 
113- 						if   ( this . columns [ i ] . isKey )  { 
113+ 				ready : function ( )   { 
114+ 					for ( var  i  =  0 ;  i  <  this . columns . length ;  i ++ )  { 
115+ 						if ( this . columns [ i ] . isKey )  { 
114116							this . keyColumn  =  this . columns [ i ] [ 'name' ] 
115117							break ; 
116118						} 
@@ -120,35 +122,35 @@ <h1 class="dialog-title">{{ title }}</h1>
120122					openNewItemDialog : function ( title )  { 
121123						// 对话框的标题 
122124						this . title  =  title 
123- 						// mode = 1表示新建模式 
125+ 							 // mode = 1表示新建模式 
124126						this . mode  =  1 
125- 						// 初始化this.item 
127+ 							 // 初始化this.item 
126128						this . item  =  { } 
127- 						// 广播事件,showDialog是modal-dialog组件的一个方法,传入参数true表示显示对话框 
129+ 							 // 广播事件,showDialog是modal-dialog组件的一个方法,传入参数true表示显示对话框 
128130						this . $broadcast ( 'showDialog' ,  true ) 
129131					} , 
130132					openEditItemDialog : function ( key )  { 
131- 						 
133+ 
132134						// 根据主键查找当前修改的数据 
133135						var  currentItem  =  this . findItemByKey ( key ) 
134- 						// 对话框的标题 
136+ 							 // 对话框的标题 
135137						this . title  =  'Edit Item - '  +  key 
136- 						// mode = 2表示修改模式 
138+ 							 // mode = 2表示修改模式 
137139						this . mode  =  2 
138- 						// 初始化this.item 
140+ 							 // 初始化this.item 
139141						this . item  =  { } 
140- 						// 将选中的数据拷贝到this.item 
142+ 							 // 将选中的数据拷贝到this.item 
141143						this . item  =  this . initItemForUpdate ( currentItem ) 
142- 						// 广播事件,传入参数true表示显示对话框 
144+ 							 // 广播事件,传入参数true表示显示对话框 
143145						this . $broadcast ( 'showDialog' ,  true ) 
144146					} , 
145147					// 弹出修改数据的对话框时,使用对象的深拷贝 
146148					initItemForUpdate : function ( p )  { 
147149						var  c  =  c  ||  { } ; 
148- 						for   ( var  i  in  p )  { 
150+ 						for ( var  i  in  p )  { 
149151							// 属性i是否为p对象的自有属性 
150- 							if   ( p . hasOwnProperty ( i ) )  { 
151- 								if   ( typeof  p [ i ]  ===  'object' )  { 
152+ 							if ( p . hasOwnProperty ( i ) )  { 
153+ 								if ( typeof  p [ i ]  ===  'object' )  { 
152154									c [ i ]  =  Array . isArray ( p [ i ] )  ? [ ]  : { } 
153155									deepCopy ( p [ i ] ,  c [ i ] ) 
154156								}  else  { 
@@ -159,43 +161,49 @@ <h1 class="dialog-title">{{ title }}</h1>
159161						} 
160162						return  c ; 
161163					} , 
162- 					findItemByKey : function ( key ) { 
164+ 					findItemByKey : function ( key )   { 
163165						var  keyColumn  =  this . keyColumn 
164- 						for ( var  i  =  0 ;  i  <  this . dataList . length ;  i ++ ) { 
165- 							if ( this . dataList [ i ] [ keyColumn ]  ===  key ) { 
166+ 						for ( var  i  =  0 ;  i  <  this . dataList . length ;  i ++ )   { 
167+ 							if ( this . dataList [ i ] [ keyColumn ]  ===  key )   { 
166168								return  this . dataList [ i ] 
167169							} 
168170						} 
169171					} , 
170172					createItem : function ( )  { 
171173						// 将item追加到dataList 
172174						this . dataList . push ( this . item ) 
173- 						// 广播事件,传入参数false表示隐藏对话框 
175+ 							 // 广播事件,传入参数false表示隐藏对话框 
174176						this . $broadcast ( 'showDialog' ,  false ) 
175- 						// 新建完数据后,重置item对象 
177+ 							 // 新建完数据后,重置item对象 
176178						this . item  =  { } 
177179					} , 
178180					updateItem : function ( )  { 
179181						// 获取主键列 
180182						var  keyColumn  =  this . keyColumn 
181183
182- 						for   ( var  i  =  0 ;  i  <  this . dataList . length ;  i ++ )  { 
184+ 						for ( var  i  =  0 ;  i  <  this . dataList . length ;  i ++ )  { 
183185							// 根据主键查找要修改的数据,然后将this.item数据更新到this.dataList[i] 
184- 							if   ( this . dataList [ i ] [ keyColumn ]  ===  this . item [ keyColumn ] )  { 
185- 								for   ( var  j  in  this . item )  { 
186+ 							if ( this . dataList [ i ] [ keyColumn ]  ===  this . item [ keyColumn ] )  { 
187+ 								for ( var  j  in  this . item )  { 
186188									this . dataList [ i ] [ j ]  =  this . item [ j ] 
187189								} 
188190								break ; 
189191							} 
190192						} 
191193						// 广播事件,传入参数false表示隐藏对话框 
192194						this . $broadcast ( 'showDialog' ,  false ) 
193- 						// 修改完数据后,重置item对象 
195+ 							 // 修改完数据后,重置item对象 
194196						this . item  =  { } 
195197					} , 
196- 					deleteItem : function ( index )  { 
197- 						this . dataList . splice ( index ,  1 ) ; 
198- 					} , 
198+ 					deleteItem : function ( entry )  { 
199+ 						var  data  =  this . dataList 
200+ 						data . forEach ( function ( item ,  i )  { 
201+ 							if ( item  ===  entry )  { 
202+ 								data . splice ( i ,  1 ) 
203+ 								return 
204+ 							} 
205+ 						} ) 
206+ 					} 
199207				} , 
200208				components : { 
201209					'modal-dialog' : { 
@@ -219,10 +227,10 @@ <h1 class="dialog-title">{{ title }}</h1>
219227							} , 
220228							save : function ( )  { 
221229								//新建模式 
222- 								if   ( this . mode  ===  1 )  { 
230+ 								if ( this . mode  ===  1 )  { 
223231									// 使用$dispatch调用simple-grid的create-item事件 
224232									this . $dispatch ( 'create-item' ) 
225- 								}  else  if   ( this . mode  ===  2 )  { 
233+ 								}  else  if ( this . mode  ===  2 )  { 
226234									// 使用$dispatch调用simple-grid的update-item事件 
227235									this . $dispatch ( 'update-item' ) 
228236								} 
0 commit comments