productsummary.html.php 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. <?php
  2. /**
  3. * The product summary view file of pivot module of ZenTaoPMS.
  4. * @copyright Copyright 2009-2023 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd. www.zentao.net)
  5. * @license ZPL(https://zpl.pub/page/zplv12.html) or AGPL(https://www.gnu.org/licenses/agpl-3.0.en.html)
  6. * @author Gang Liu <liugang@easycorp.ltd>
  7. * @package pivot
  8. * @link https://www.zentao.net
  9. */
  10. namespace zin;
  11. $cols = $config->pivot->dtable->productSummary->fieldList;
  12. $cols['PO']['map'] = $users;
  13. $data = new stdclass();
  14. $data->cols = $this->pivot->processDTableCols($cols);
  15. $data->array = $this->pivot->processDTableData(array_keys($cols), $products);
  16. $generateData = function() use ($lang, $title, $cols, $data, $products, $filters)
  17. {
  18. $this->loadModel('bi');
  19. $this->app->loadLang('product');
  20. return array
  21. (
  22. div
  23. (
  24. setID('conditions'),
  25. setClass('flex bg-canvas p-2'),
  26. checkList
  27. (
  28. on::change('loadProductSummary'),
  29. set::inline(true),
  30. set::items(array(array('text' => $lang->pivot->overduePlan, 'value' => 'overduePlan')))
  31. ),
  32. div(setStyle('width', '70%'), setClass('ml-4 flex gap-4'), inputGroup
  33. (
  34. setID('product'),
  35. setClass('filter w-1/3'),
  36. $lang->pivot->otherLang->product,
  37. picker
  38. (
  39. setClass('flex-auto'),
  40. set::name('product'),
  41. set::value($filters['productID']),
  42. set::items($this->bi->getScopeOptions('product')),
  43. on::change('loadProductSummary')
  44. )
  45. ), inputGroup
  46. (
  47. setID('productStatus'),
  48. setClass('filter w-1/3'),
  49. $lang->pivot->otherLang->productStatus,
  50. picker
  51. (
  52. setClass('flex-auto'),
  53. set::name('productStatus'),
  54. set::value($filters['productStatus']),
  55. set::required(true),
  56. set::items($lang->product->statusList),
  57. on::change('loadProductSummary')
  58. )
  59. ), inputGroup
  60. (
  61. setID('productType'),
  62. setClass('filter w-1/3'),
  63. $lang->pivot->otherLang->productType,
  64. picker
  65. (
  66. setClass('flex-auto'),
  67. set::name('productType'),
  68. set::value($filters['productType']),
  69. set::required(true),
  70. set::items($lang->product->typeList),
  71. on::change('loadProductSummary')
  72. )
  73. ))
  74. ),
  75. panel
  76. (
  77. setID('pivotPanel'),
  78. set::title($title),
  79. set::shadow(false),
  80. set::headingClass('h-14'),
  81. set::bodyClass('pt-0'),
  82. dtable
  83. (
  84. set::striped(true),
  85. set::bordered(true),
  86. set::cols($cols),
  87. set::data($products),
  88. set::emptyTip($lang->error->noData),
  89. set::height(jsRaw('getHeight')),
  90. set::plugins(array('cellspan')),
  91. set::getCellSpan(jsRaw('getCellSpan')),
  92. set::cellSpanOptions(array('name' => array(), 'PO' => array()))
  93. ),
  94. div
  95. (
  96. setID('exportData'),
  97. setClass('hidden'),
  98. rawContent(),
  99. html($this->pivot->buildPivotTable($data, array()))
  100. )
  101. )
  102. );
  103. };