* [story#57435,0.2h] add dirll field.

This commit is contained in:
qixinzhi
2024-07-15 02:24:52 +00:00
parent a80868f602
commit 8e1701c2e2
+22 -10
View File
@@ -1344,7 +1344,11 @@ class biModel extends model
$columns[$field]['minWidth'] = 128;
$columns[$field]['align'] = 'center';
if(isset($column->isDrilling) && $column->isDrilling) $columns[$field]['link'] = '#';
if(isset($column->isDrilling) && $column->isDrilling)
{
$columns[$field]['link'] = '#';
$columns[$field]['drillField'] = $column->drillField;
}
$columnMaxLen[$field] = mb_strlen($column->label);
@@ -1370,7 +1374,11 @@ class biModel extends model
$columns[$field]['minWidth'] = 128;
$columns[$field]['align'] = 'center';
if(isset($column->isDrilling) && $column->isDrilling) $columns[$field]['link'] = '#';
if(isset($column->isDrilling) && $column->isDrilling)
{
$columns[$field]['link'] = '#';
$columns[$field]['drillField'] = $column->drillField;
}
$columnMaxLen[$field] = mb_strlen($column->label);
@@ -1388,7 +1396,7 @@ class biModel extends model
$drills = !empty($data->drills) ? array_values($data->drills) : array();
foreach($data->array as $rowKey => $rowData)
{
list($originRows, $drillFields) = $this->processDrills($rowKey, $rowData, $drills);
list($originRows, $drillFields, $originFields) = $this->processDrills($rowKey, $rowData, $drills, $columns);
$index = 0;
$rowDataKeys = array_keys($rowData);
@@ -1433,9 +1441,10 @@ class biModel extends model
$index++;
}
$rows[$rowKey]['originRows'] = $originRows;
$rows[$rowKey]['drillFields'] = $drillFields;
$rows[$rowKey]['ROW_ID'] = $rowKey;
$rows[$rowKey]['originRows'] = $originRows;
$rows[$rowKey]['originFields'] = $originFields;
$rows[$rowKey]['drillFields'] = $drillFields;
$rows[$rowKey]['ROW_ID'] = $rowKey;
}
foreach($columns as $field => $column) $columns[$field]['width'] = 16 * $columnMaxLen[$field];
@@ -1452,7 +1461,7 @@ class biModel extends model
* @access public
* @return array
*/
public function processDrills(int $rowIndex, array $rowData, array $drills): array
public function processDrills(int $rowIndex, array $rowData, array $drills, array $columns): array
{
if(empty($drills) || !isset($drills[$rowIndex])) return array(array(), array());
@@ -1461,18 +1470,21 @@ class biModel extends model
$index = 0;
$rebuildOriginRows = array();
$rebuildDrillFields = array();
$originFields = array();
list($originRows, $drillFields) = array_values($drills);
foreach($rowData as $column => $value)
{
$field = 'field' . $index;
if(isset($originRows[$column])) $rebuildOriginRows[$field] = $originRows[$column];
if(isset($drillFields[$column])) $rebuildDrillFields[$field] = $drillFields[$column];
if(isset($originRows[$column])) $rebuildOriginRows[$field] = $originRows[$column];
if(isset($drillFields[$column])) $rebuildDrillFields[$field] = $drillFields[$column];
if(isset($columns[$field]['drillField'])) $originFields[$field] = $columns[$field]['drillField'];
$index++;
}
return array($rebuildOriginRows, $rebuildDrillFields);
return array($rebuildOriginRows, $rebuildDrillFields, $originFields);
}
/**