海南旅游SAAS
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

111 lines
3.2 KiB

4 years ago
  1. <?php
  2. namespace App\AdminSupplier\Tools;
  3. use App\Common\LinkUrl;
  4. use Dcat\Admin\Admin;
  5. use Dcat\Admin\Grid\Tools\AbstractTool;
  6. class DataReportDate extends AbstractTool
  7. {
  8. protected $route;
  9. public function __construct($route)
  10. {
  11. $this->route = $route;
  12. parent::__construct();
  13. }
  14. protected function script()
  15. {
  16. $url = $path = request()->url();
  17. $fullUrl = request()->fullUrl();
  18. $date = request()->input('created_at');
  19. $start = $date?$date['start']:'';
  20. $end = $date?$date['end']:'';
  21. return <<<JS
  22. var app= new Vue({
  23. el:"#date_time",
  24. data:{
  25. start: "$start",
  26. end: "$end",
  27. url:"$url",
  28. full_url:"$fullUrl",
  29. path:"$path",
  30. pickerOptions: {
  31. disabledDate(time) {
  32. return time.getTime() > Date.now();
  33. },
  34. shortcuts: [{
  35. text: '今天',
  36. onClick(picker) {
  37. picker.\$emit('pick', new Date());
  38. }
  39. }, {
  40. text: '昨天',
  41. onClick(picker) {
  42. const date = new Date();
  43. date.setTime(date.getTime() - 3600 * 1000 * 24);
  44. picker.\$emit('pick', date);
  45. }
  46. }, {
  47. text: '一周前',
  48. onClick(picker) {
  49. const date = new Date();
  50. date.setTime(date.getTime() - 3600 * 1000 * 24 * 7);
  51. picker.\$emit('pick', date);
  52. }
  53. }]
  54. },
  55. },
  56. methods:{
  57. doSearch(){
  58. var url = this.url;
  59. if (this.start){
  60. url = url+"?type=date&option=0&created_at[start]="+this.start;
  61. }
  62. if (this.end){
  63. if (!this.start){
  64. this.\$message({message:'请选择起始时间',type:"error"})
  65. return false;
  66. }
  67. url = url+"&created_at[end]="+this.end;
  68. }else {
  69. if (this.start){
  70. this.\$message({message:'请选择截止时间',type:"error"})
  71. return false;
  72. }
  73. }
  74. if (this.start&&this.end&&(this.start>this.end)){
  75. this.\$message({message:'截止时间不能小于起始时间',type:"error"})
  76. return false;
  77. }
  78. window.location.href=url;
  79. },
  80. reset(){
  81. window.location.href=this.path;
  82. }
  83. }
  84. });
  85. JS;
  86. }
  87. public function render()
  88. {
  89. Admin::js(LinkUrl::VUE_JS);
  90. Admin::js(LinkUrl::ELEMENT_UI_JS);
  91. Admin::css(LinkUrl::ELEMENT_UI_CSS);
  92. Admin::css('css/data_report.css');
  93. Admin::script($this->script());
  94. return view('admin.tools.data_report_date');
  95. }
  96. }