ThreadsExport.php 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. <?php
  2. namespace App\Exports;
  3. use Maatwebsite\Excel\Concerns\FromCollection;
  4. use Maatwebsite\Excel\Concerns\WithHeadings;
  5. class ThreadsExport implements FromCollection,WithHeadings
  6. {
  7. protected $data;
  8. public function __construct($data,$field)
  9. {
  10. $this->data = $data;
  11. $this->field = $field;
  12. }
  13. /**
  14. * @return \Illuminate\Support\Collection
  15. */
  16. public function collection()
  17. {
  18. $collection = [];
  19. foreach ($this->data as $item){
  20. $contact = $item->contact?$item->contact->phone:'暂无联系人信息';
  21. $qq = $item->contact?$item->contact->qq:'';
  22. $email = $item->contact?$item->contact->email:'';
  23. $companyName = $item->company->companyName;
  24. $ower_name = $item->ower->real_name;
  25. $companyWebsite = $item->company->website;
  26. $legalPerson = $item->company->legalPerson;
  27. $regCapital = $item->company->regCapital;
  28. $regAddr = $item->company->regAddr;
  29. $lastest = $item->latestProgress();
  30. $created_at = $item->created_at;
  31. $base_coll = [$companyName,$contact];
  32. if(substr_count($this->field,'qq')) array_push($base_coll,$qq);
  33. if(substr_count($this->field,'email')) array_push($base_coll,$email);
  34. if(substr_count($this->field,'ower_name')) array_push($base_coll,$ower_name);
  35. if(substr_count($this->field,'website')) array_push($base_coll,$companyWebsite);
  36. if(substr_count($this->field,'legalPerson')) array_push($base_coll,$legalPerson);
  37. if(substr_count($this->field,'regCapital')) array_push($base_coll, $regCapital);
  38. if(substr_count($this->field,'regAddr')) array_push($base_coll,$regAddr);
  39. if(substr_count($this->field,'lastest')) array_push($base_coll, $lastest);
  40. if(substr_count($this->field,'created_at')) array_push($base_coll,$created_at);
  41. $collection[] = $base_coll;
  42. }
  43. return collect($collection);
  44. }
  45. public function headings(): array
  46. {
  47. $head = ['企业名称','联系方式'];
  48. if(substr_count($this->field,'qq')) array_push($head,'QQ');
  49. if(substr_count($this->field,'email')) array_push($head,'Email');
  50. if(substr_count($this->field,'ower_name')) array_push($head,'线索拥有者');
  51. if(substr_count($this->field,'website')) array_push($head,'企业网站');
  52. if(substr_count($this->field,'legalPerson')) array_push($head,'法人');
  53. if(substr_count($this->field,'regCapital')) array_push($head,'注册资本(万)');
  54. if(substr_count($this->field,'regAddr')) array_push($head,'注册地址');
  55. if(substr_count($this->field,'lastest')) array_push($head,'最新跟进');
  56. if(substr_count($this->field,'created_at')) array_push($head,'领取时间');
  57. return $head;
  58. }
  59. }