链街Dcat后台
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.

107 lines
3.1 KiB

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