controller->user->user_id; $cols = $this->app->setConf('view.'.$this->object_name.'.'.$finder_aliasname,implode(',',$_POST['col'])); if($_POST['allcol']){ $this->app->setConf('listorder.'.$this->object_name.'.'.$finder_aliasname,implode(',',$_POST['allcol'])); } header('Content-Type:text/jcmd; charset=utf-8'); echo '{success:"'.app::get('desktop')->_('设置成功').'"}'; }else{ $in_use = array_flip($this->getColumns()); $all_columns = $this->all_columns(); $listorder = explode(',',$this->app->getConf('listorder.'.$this->object_name.'.'.$finder_aliasname.'.'.$this->controller->user->user_id)); if($listorder){ $ordered_columns = array(); foreach($listorder as $col){ if(isset($all_columns[$col])){ $ordered_columns[$col] = $all_columns[$col]; unset($all_columns[$col]); } } $all_columns = array_merge((array)$ordered_columns,(array)$all_columns); $ordered_columns = null; } $domid = $this->ui->new_dom_id(); $html = '
'; $html .= '
'; $mv_handler = $this->ui->img(array('src'=>'bundle/grippy.gif', 'class'=>'move-handler')); $i=0; // 添加全选功能 $html .= '
'; $html .= ''; $html .= ''; $html .= '
'; // 直接生成row元素,使用CSS实现真正的四列布局 foreach($all_columns as $key=>$col){ $i++; $html .= '
'; $html .= '
'.$mv_handler.''.$i.'
'; $html .= '
'; } $finder_id=$_GET['_finder']['finder_id']; $html .= ''; $html .= ''; $html .= ''; $html .= '
'; $html .= '
'; $html.=<< (function(){ var scrollAuto = new Scroller($('{$domid}').getContainer()); var draggedElement = null; // 提交表单函数 window.submitForm = function() { var checkedBoxes = $('{$domid}').getElements('.column-checkbox').filter(function(checkbox) { return checkbox.checked; }); if (checkedBoxes.length === 0) { MessageBox.error('请至少选择一个列!'); return false; } // 验证通过,使用fireEvent提交表单 $('{$domid}').fireEvent('submit', {stop: function(){}}); }; // 全选功能 $('select-all').addEvent('change', function() { var isChecked = this.checked; $('{$domid}').getElements('.column-checkbox').each(function(checkbox) { checkbox.checked = isChecked; }); }); // 单个复选框变化时更新全选状态 $('{$domid}').addEvent('change', function(e) { if (e.target.hasClass('column-checkbox')) { var allCheckboxes = $('{$domid}').getElements('.column-checkbox'); var checkedCount = allCheckboxes.filter(function(checkbox) { return checkbox.checked; }).length; var selectAllCheckbox = $('select-all'); if (checkedCount === 0) { selectAllCheckbox.checked = false; selectAllCheckbox.indeterminate = false; } else if (checkedCount === allCheckboxes.length) { selectAllCheckbox.checked = true; selectAllCheckbox.indeterminate = false; } else { selectAllCheckbox.checked = false; selectAllCheckbox.indeterminate = true; } } }); new Sortables($('{$domid}'),{ clone: false, opacity: .5, handle: '.move-handler', onStart: function(element){ $('{$domid}').addClass('move-active'); scrollAuto.start(); draggedElement = element; }, onComplete: function(){ scrollAuto.stop(); $('{$domid}').removeClass('move-active'); // 只高亮被拖动的元素 if (draggedElement) { var span = draggedElement.getElement('span'); if (span) { span.setStyle('background', '#ff6b6b'); span.setStyle('color', 'white'); span.setStyle('font-weight', 'bold'); } draggedElement = null; } } }); $('{$domid}').store('target',{onComplete:function(){ $('{$domid}').getParent('.dialog').retrieve('instance').close(); window.finderGroup['{$finder_id}'].refresh(); }}); })(); EOF; echo $html; } } }