EditingScheduleExport.php 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: Administrator
  5. * Date: 2019/9/24 0024
  6. * Time: 13:38
  7. */
  8. namespace App\Exports;
  9. use Maatwebsite\Excel\Concerns\FromArray;
  10. use Maatwebsite\Excel\Concerns\Exportable;
  11. use Maatwebsite\Excel\Concerns\ShouldAutoSize;//自动宽度
  12. use Maatwebsite\Excel\Events\AfterSheet;
  13. use Maatwebsite\Excel\Concerns\WithEvents;
  14. class EditingScheduleExport extends CommonExport implements FromArray, WithEvents//,ShouldAutoSize
  15. {
  16. use Exportable;
  17. public $dataList;
  18. public $list;
  19. public function __construct(array $dataList)
  20. {
  21. $this->list = [];
  22. foreach ($dataList as $key => $value) {
  23. if ($key >= 3) {
  24. if (isset($value['is_backstage']) && $value['is_backstage'] == 1) {
  25. $this->list[] = 'F' . ($key + 1);
  26. }
  27. if (isset($value['is_first_mail']) && $value['is_first_mail'] == 1) {
  28. $this->list[] = 'G' . ($key + 1);
  29. }
  30. if (isset($value['is_data']) && $value['is_data'] == 1) {
  31. $this->list[] = 'H' . ($key + 1);
  32. }
  33. if (isset($value['is_folder']) && $value['is_folder'] == 1) {
  34. $this->list[] = 'I' . ($key + 1);
  35. }
  36. if (isset($value['is_order_index']) && $value['is_order_index'] == 1) {
  37. $this->list[] = 'J' . ($key + 1);
  38. }
  39. if (isset($value['is_product_index']) && $value['is_product_index'] == 1) {
  40. $this->list[] = 'K' . ($key + 1);
  41. }
  42. if (isset($value['is_test_station']) && $value['is_test_station'] == 1) {
  43. $this->list[] = 'L' . ($key + 1);
  44. }
  45. if (isset($value['is_opinion']) && $value['is_opinion'] == 1) {
  46. $this->list[] = 'M' . ($key + 1);
  47. }
  48. if (isset($value['is_project_group']) && $value['is_project_group'] == 1) {
  49. $this->list[] = 'N' . ($key + 1);
  50. }
  51. if (isset($value['is_client_feedback']) && $value['is_client_feedback'] == 1) {
  52. $this->list[] = 'O' . ($key + 1);
  53. }
  54. if (isset($value['is_online_inspection_form']) && $value['is_online_inspection_form'] == 1) {
  55. $this->list[] = 'P' . ($key + 1);
  56. }
  57. if (isset($value['is_in_group_inspection']) && $value['is_in_group_inspection'] == 1) {
  58. $this->list[] = 'Q' . ($key + 1);
  59. }
  60. if (isset($value['is_quality_inspection_departments']) && $value['is_quality_inspection_departments'] == 1) {
  61. $this->list[] = 'R' . ($key + 1);
  62. }
  63. if (isset($value['is_optimization']) && $value['is_optimization'] == 1) {
  64. $this->list[] = 'S' . ($key + 1);
  65. }
  66. $dataList[$key]['is_backstage'] = '后台搭建';
  67. $dataList[$key]['is_first_mail'] = '第一封邮件';
  68. $dataList[$key]['is_data'] = '资料进度表';
  69. $dataList[$key]['is_folder'] = '共享盘文件夹整理';
  70. $dataList[$key]['is_order_index'] = '单页面提供完整';
  71. $dataList[$key]['is_product_index'] = '产品页面提供完整';
  72. $dataList[$key]['is_test_station'] = '测试站检查表';
  73. $dataList[$key]['is_opinion'] = '组内意见';
  74. $dataList[$key]['is_project_group'] = '项目部群';
  75. $dataList[$key]['is_client_feedback'] = '客户反馈';
  76. $dataList[$key]['is_online_inspection_form'] = '上线检查表格';
  77. $dataList[$key]['is_in_group_inspection'] = '组内检查';
  78. $dataList[$key]['is_quality_inspection_departments'] = '质检部';
  79. $dataList[$key]['is_optimization'] = 'Hina&优化师检查';
  80. }
  81. }
  82. $this->dataList = $dataList;
  83. }
  84. public function array(): array
  85. {
  86. return $this->dataList;
  87. }
  88. public function registerEvents(): array
  89. {
  90. return [
  91. AfterSheet::class => function (AfterSheet $event) {
  92. $cells = ['A1:S1', 'A2:E2', 'F2:G2', 'H2:K2', 'L2:O2', 'P2:S2'];
  93. $this->setCellWidth($event, $cells);
  94. $cells[] = 'A3:S3';
  95. $this->setCellColor($cells, $event);//表头
  96. $this->setCellColorBorders($cells, $event);
  97. $this->setCellColor($this->list, $event, '87CEFA');
  98. }
  99. ];
  100. }
  101. }