Tôi đã tạo một lưới tùy chỉnh trong quản trị viên cho "Hoa hồng người bán". Bây giờ, tôi muốn hiển thị tổng số tiền hoa hồng kiếm được, vì vậy cần thêm một hàng ở cuối lưới có ghi "Tổng số tiền". Xin vui lòng giúp đỡ.
Tôi đã tạo một lưới tùy chỉnh trong quản trị viên cho "Hoa hồng người bán". Bây giờ, tôi muốn hiển thị tổng số tiền hoa hồng kiếm được, vì vậy cần thêm một hàng ở cuối lưới có ghi "Tổng số tiền". Xin vui lòng giúp đỡ.
Câu trả lời:
Bạn có thể sử dụng trình kết xuất để hiển thị giá trị tùy chỉnh hoặc để tính toán và hiển thị giá trị hoa hồng.
Ví dụ trong xml lưới uicomponent của bạn
<column name="commission" class="Vender\Modulename\Ui\Component\Listing\Column\Commission">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="filter" xsi:type="string">text</item>
<item name="sorting" xsi:type="string">asc</item>
<item name="label" translate="true" xsi:type="string">Commission</item>
</item>
</argument>
</column>
Và tập tin kết xuất của bạn
<?php
namespace Vender\Modulename\Ui\Component\Listing\Column;
class Commission extends \Magento\Ui\Component\Listing\Columns\Column {
/**
* @var \Magento\Directory\Api\CountryInformationAcquirerInterface
*/
protected $countryInformation;
/**
* @param \Magento\Framework\View\Element\UiComponent\ContextInterface $context
* @param \Magento\Framework\View\Element\UiComponentFactory $uiComponentFactory
* @param array $components
* @param array $data
*/
public function __construct(
\Magento\Framework\View\Element\UiComponent\ContextInterface $context,
\Magento\Framework\View\Element\UiComponentFactory $uiComponentFactory,
array $components = [],
array $data = []
){
$this->countryInformation = $countryInformation;
parent::__construct($context, $uiComponentFactory, $components, $data);
}
/**
* Prepare Data Source
*
* @param array $dataSource
* @return array
*/
public function prepareDataSource(array $dataSource) {
if (isset($dataSource['data']['items'])) {
$fieldName = $this->getData('name');
foreach ($dataSource['data']['items'] as & $item) {
//do your stuff and set value of commission in here
}
}
return $dataSource;
}
}