114 lines
4 KiB
PHP
114 lines
4 KiB
PHP
<?php
|
|
declare(strict_types = 1);
|
|
/**
|
|
* The product summary view file of pivot module of ZenTaoPMS.
|
|
* @copyright Copyright 2009-2023 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd. www.zentao.net)
|
|
* @license ZPL(https://zpl.pub/page/zplv12.html) or AGPL(https://www.gnu.org/licenses/agpl-3.0.en.html)
|
|
* @author Gang Liu <liugang@easycorp.ltd>
|
|
* @package pivot
|
|
* @link https://www.zentao.net
|
|
*/
|
|
namespace zin;
|
|
|
|
$cols = $config->pivot->dtable->productSummary->fieldList;
|
|
$cols['PO']['map'] = $users;
|
|
$data = new stdclass();
|
|
$data->cols = $this->pivot->processDTableCols($cols);
|
|
$data->array = $this->pivot->processDTableData(array_keys($cols), $products);
|
|
|
|
$generateData = function() use ($lang, $title, $cols, $data, $products, $filters)
|
|
{
|
|
$this->loadModel('bi');
|
|
$this->app->loadLang('product');
|
|
return array
|
|
(
|
|
div
|
|
(
|
|
setID('conditions'),
|
|
setClass('flex bg-canvas p-2'),
|
|
checkList
|
|
(
|
|
on::change('loadProductSummary'),
|
|
set::inline(true),
|
|
set::items(array(array('text' => $lang->pivot->overduePlan, 'value' => 'overduePlan')))
|
|
),
|
|
div
|
|
(
|
|
setStyle('width', '70%'),
|
|
setClass('ml-4 flex gap-4'),
|
|
inputGroup
|
|
(
|
|
setID('product'),
|
|
setClass('filter w-1/3'),
|
|
$lang->pivot->otherLang->product,
|
|
picker
|
|
(
|
|
setClass('flex-auto'),
|
|
set::name('product'),
|
|
set::value($filters['productID']),
|
|
set::items($this->bi->getScopeOptions('product')),
|
|
on::change('loadProductSummary')
|
|
)
|
|
),
|
|
inputGroup
|
|
(
|
|
setID('productStatus'),
|
|
setClass('filter w-1/3'),
|
|
$lang->pivot->otherLang->productStatus,
|
|
picker
|
|
(
|
|
setClass('flex-auto'),
|
|
set::name('productStatus'),
|
|
set::value($filters['productStatus']),
|
|
set::required(true),
|
|
set::items($lang->product->statusList),
|
|
on::change('loadProductSummary')
|
|
)
|
|
),
|
|
inputGroup
|
|
(
|
|
setID('productType'),
|
|
setClass('filter w-1/3'),
|
|
$lang->pivot->otherLang->productType,
|
|
picker
|
|
(
|
|
setClass('flex-auto'),
|
|
set::name('productType'),
|
|
set::value($filters['productType']),
|
|
set::required(true),
|
|
set::items($lang->product->typeList),
|
|
on::change('loadProductSummary')
|
|
)
|
|
),
|
|
)
|
|
),
|
|
panel
|
|
(
|
|
setID('pivotPanel'),
|
|
set::title($title),
|
|
set::shadow(false),
|
|
set::headingClass('h-14'),
|
|
set::bodyClass('pt-0'),
|
|
dtable
|
|
(
|
|
set::striped(true),
|
|
set::bordered(true),
|
|
set::cols($cols),
|
|
set::data($products),
|
|
set::emptyTip($lang->error->noData),
|
|
set::height(jsRaw('getHeight')),
|
|
set::plugins(array('cellspan')),
|
|
set::getCellSpan(jsRaw('getCellSpan')),
|
|
set::cellSpanOptions(array('name' => array(), 'PO' => array()))
|
|
),
|
|
div
|
|
(
|
|
setID('exportData'),
|
|
setClass('hidden'),
|
|
rawContent(),
|
|
html($this->pivot->buildPivotTable($data, array()))
|
|
)
|
|
)
|
|
);
|
|
};
|