From 4a00bec72962cc6213f114cea68d532df9cbb0f5 Mon Sep 17 00:00:00 2001 From: lemon <15040771@qq.com> Date: Mon, 6 Sep 2021 18:28:24 +0800 Subject: [PATCH] =?UTF-8?q?=E6=97=B6=E9=97=B4=E7=AD=9B=E9=80=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ProductStatisticsController.php | 37 +- app/AdminAgent/Tools/DataReportDate.php | 111 + app/Common/LinkUrl.php | 26 + public/css/data_report.css | 3 + public/css/detail.css | 70 + public/js/element.js | 1 + public/js/moment-with-locales.js | 14765 ++++++++++++++++ .../admin/tools/data_report_date.blade.php | 22 + 8 files changed, 15028 insertions(+), 7 deletions(-) create mode 100644 app/AdminAgent/Tools/DataReportDate.php create mode 100644 app/Common/LinkUrl.php create mode 100644 public/css/data_report.css create mode 100644 public/css/detail.css create mode 100644 public/js/element.js create mode 100644 public/js/moment-with-locales.js create mode 100644 resources/views/admin/tools/data_report_date.blade.php diff --git a/app/AdminAgent/Controllers/ProductStatisticsController.php b/app/AdminAgent/Controllers/ProductStatisticsController.php index 412df87..df35f2f 100755 --- a/app/AdminAgent/Controllers/ProductStatisticsController.php +++ b/app/AdminAgent/Controllers/ProductStatisticsController.php @@ -2,6 +2,8 @@ namespace App\AdminAgent\Controllers; +use App\Admin\Actions\Tools\DataReportOption; +use App\AdminAgent\Tools\DataReportDate; use App\AdminAgent\Metrics\Examples\FinanceStatistics; use App\AdminAgent\Metrics\Examples\OrderStatistics; use App\AdminAgent\Metrics\Examples\ProductStatistics; @@ -9,6 +11,7 @@ use App\AdminAgent\Metrics\Examples\UserStatistics; use App\Common\OrderStatus; use App\Common\ProductStatus; use App\Models\AgentProduct; +use App\Models\ImsCjdcMarket; use App\Models\Order; use App\Models\OrderProductItem; use Dcat\Admin\Admin; @@ -54,10 +57,21 @@ class ProductStatisticsController extends AdminController ) ->body(function (Row $row){ + $row->column(6,function (Column $column){ + $column->row(new \App\AdminAgent\Tools\DataReportDate('data_report')); + }); + + }) + ->body(function (Row $row){ $row->column(4, function (Column $column) { $column->row(Card::make('总数', function () { - $count = AgentProduct::query()->where('agent_id',Admin::user()->id)->count(); + $dateTime = request()->get('created_at')??null; + $count = AgentProduct::query()->where('agent_id',Admin::user()->id); + if (!empty($dateTime)) { + $count->whereBetween('created_at',$dateTime); + } + $count = $count->count(); return <<

$count

@@ -68,7 +82,12 @@ HTML; $row->column(4, function (Column $column) { $column->row(Card::make('上架', function () { - $profit = AgentProduct::query()->where('agent_id',Admin::user()->id)->where('status',ProductStatus::ON_SALE)->count(); + $dateTime = request()->get('created_at')??null; + $profit = AgentProduct::query()->where('agent_id',Admin::user()->id)->where('status',ProductStatus::ON_SALE); + if (!empty($dateTime)) { + $profit->whereBetween('created_at',$dateTime); + } + $profit = $profit->count(); return <<

$profit

@@ -82,8 +101,12 @@ HTML; $column->row(Card::make('下架', function () { $unSale = AgentProduct::query() ->where('agent_id',Admin::user()->id) - ->where('status',ProductStatus::SOLD_OUT) - ->count(); + ->where('status',ProductStatus::SOLD_OUT); + $dateTime = request()->get('created_at')??null; + if (!empty($dateTime)) { + $unSale->whereBetween('created_at',$dateTime); + } + $unSale = $unSale->count(); return <<

$unSale

@@ -95,8 +118,8 @@ HTML; }) ->body(function (Row $row){ - $row->column(12,new ProductStatistics() - ); - }); + $row->column(12,new ProductStatistics() + ); + }); } } diff --git a/app/AdminAgent/Tools/DataReportDate.php b/app/AdminAgent/Tools/DataReportDate.php new file mode 100644 index 0000000..52edceb --- /dev/null +++ b/app/AdminAgent/Tools/DataReportDate.php @@ -0,0 +1,111 @@ +route = $route; + parent::__construct(); + } + + protected function script() + { + $url = $path = request()->url(); + $fullUrl = request()->fullUrl(); + $date = request()->input('created_at'); + $start = $date?$date['start']:''; + $end = $date?$date['end']:''; + return << Date.now(); + }, + shortcuts: [{ + text: '今天', + onClick(picker) { + picker.\$emit('pick', new Date()); + } + }, { + text: '昨天', + onClick(picker) { + const date = new Date(); + date.setTime(date.getTime() - 3600 * 1000 * 24); + picker.\$emit('pick', date); + } + }, { + text: '一周前', + onClick(picker) { + const date = new Date(); + date.setTime(date.getTime() - 3600 * 1000 * 24 * 7); + picker.\$emit('pick', date); + } + }] + }, + }, + methods:{ + doSearch(){ + + var url = this.url; + if (this.start){ + url = url+"?type=date&option=0&created_at[start]="+this.start; + } + if (this.end){ + if (!this.start){ + this.\$message({message:'请选择起始时间',type:"error"}) + return false; + } + url = url+"&created_at[end]="+this.end; + }else { + if (this.start){ + this.\$message({message:'请选择截止时间',type:"error"}) + return false; + } + } + + if (this.start&&this.end&&(this.start>this.end)){ + this.\$message({message:'截止时间不能小于起始时间',type:"error"}) + return false; + } + + window.location.href=url; + }, + reset(){ + window.location.href=this.path; + } + } + + }); + +JS; + + } + + public function render() + { + Admin::js(LinkUrl::VUE_JS); + Admin::js(LinkUrl::ELEMENT_UI_JS); + Admin::css(LinkUrl::ELEMENT_UI_CSS); + Admin::css('css/data_report.css'); + Admin::script($this->script()); + return view('admin.tools.data_report_date'); + } +} diff --git a/app/Common/LinkUrl.php b/app/Common/LinkUrl.php new file mode 100644 index 0000000..00e51d7 --- /dev/null +++ b/app/Common/LinkUrl.php @@ -0,0 +1,26 @@ +3?0:(e-e%10!=10)*e%10]}};var g={D:function(e){return e.getDay()},DD:function(e){return d(e.getDay())},Do:function(e,t){return t.DoFn(e.getDate())},d:function(e){return e.getDate()},dd:function(e){return d(e.getDate())},ddd:function(e,t){return t.dayNamesShort[e.getDay()]},dddd:function(e,t){return t.dayNames[e.getDay()]},M:function(e){return e.getMonth()+1},MM:function(e){return d(e.getMonth()+1)},MMM:function(e,t){return t.monthNamesShort[e.getMonth()]},MMMM:function(e,t){return t.monthNames[e.getMonth()]},yy:function(e){return d(String(e.getFullYear()),4).substr(2)},yyyy:function(e){return d(e.getFullYear(),4)},h:function(e){return e.getHours()%12||12},hh:function(e){return d(e.getHours()%12||12)},H:function(e){return e.getHours()},HH:function(e){return d(e.getHours())},m:function(e){return e.getMinutes()},mm:function(e){return d(e.getMinutes())},s:function(e){return e.getSeconds()},ss:function(e){return d(e.getSeconds())},S:function(e){return Math.round(e.getMilliseconds()/100)},SS:function(e){return d(Math.round(e.getMilliseconds()/10),2)},SSS:function(e){return d(e.getMilliseconds(),3)},a:function(e,t){return e.getHours()<12?t.amPm[0]:t.amPm[1]},A:function(e,t){return e.getHours()<12?t.amPm[0].toUpperCase():t.amPm[1].toUpperCase()},ZZ:function(e){var t=e.getTimezoneOffset();return(t>0?"-":"+")+d(100*Math.floor(Math.abs(t)/60)+Math.abs(t)%60,4)}},b={d:["\\d\\d?",function(e,t){e.day=t}],Do:["\\d\\d?"+o,function(e,t){e.day=parseInt(t,10)}],M:["\\d\\d?",function(e,t){e.month=t-1}],yy:["\\d\\d?",function(e,t){var i=+(""+(new Date).getFullYear()).substr(0,2);e.year=""+(t>68?i-1:i)+t}],h:["\\d\\d?",function(e,t){e.hour=t}],m:["\\d\\d?",function(e,t){e.minute=t}],s:["\\d\\d?",function(e,t){e.second=t}],yyyy:["\\d{4}",function(e,t){e.year=t}],S:["\\d",function(e,t){e.millisecond=100*t}],SS:["\\d{2}",function(e,t){e.millisecond=10*t}],SSS:["\\d{3}",function(e,t){e.millisecond=t}],D:["\\d\\d?",u],ddd:[o,u],MMM:[o,h("monthNamesShort")],MMMM:[o,h("monthNames")],a:[o,function(e,t,i){var n=t.toLowerCase();n===i.amPm[0]?e.isPm=!1:n===i.amPm[1]&&(e.isPm=!0)}],ZZ:["[^\\s]*?[\\+\\-]\\d\\d:?\\d\\d|[^\\s]*?Z",function(e,t){var i,n=(t+"").match(/([+-]|\d\d)/gi);n&&(i=60*n[1]+parseInt(n[2],10),e.timezoneOffset="+"===n[0]?i:-i)}]};b.dd=b.d,b.dddd=b.ddd,b.DD=b.D,b.mm=b.m,b.hh=b.H=b.HH=b.h,b.MM=b.M,b.ss=b.s,b.A=b.a,s.masks={default:"ddd MMM dd yyyy HH:mm:ss",shortDate:"M/D/yy",mediumDate:"MMM d, yyyy",longDate:"MMMM d, yyyy",fullDate:"dddd, MMMM d, yyyy",shortTime:"HH:mm",mediumTime:"HH:mm:ss",longTime:"HH:mm:ss.SSS"},s.format=function(e,t,i){var n=i||s.i18n;if("number"==typeof e&&(e=new Date(e)),"[object Date]"!==Object.prototype.toString.call(e)||isNaN(e.getTime()))throw new Error("Invalid Date in fecha.format");t=s.masks[t]||t||s.masks.default;var r=[];return(t=(t=t.replace(l,function(e,t){return r.push(t),"@@@"})).replace(a,function(t){return t in g?g[t](e,n):t.slice(1,t.length-1)})).replace(/@@@/g,function(){return r.shift()})},s.parse=function(e,t,i){var n=i||s.i18n;if("string"!=typeof t)throw new Error("Invalid format in fecha.parse");if(t=s.masks[t]||t,e.length>1e3)return null;var r={},o=[],u=[];t=t.replace(l,function(e,t){return u.push(t),"@@@"});var c,h=(c=t,c.replace(/[|\\{()[^$+*?.-]/g,"\\$&")).replace(a,function(e){if(b[e]){var t=b[e];return o.push(t[1]),"("+t[0]+")"}return e});h=h.replace(/@@@/g,function(){return u.shift()});var d=e.match(new RegExp(h,"i"));if(!d)return null;for(var p=1;pe?u():!0!==t&&(r=setTimeout(n?function(){r=void 0}:u,void 0===n?e-o:e))}}},function(e,t){var i=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=i)},function(e,t){var i=/^(attrs|props|on|nativeOn|class|style|hook)$/;function n(e,t){return function(){e&&e.apply(this,arguments),t&&t.apply(this,arguments)}}e.exports=function(e){return e.reduce(function(e,t){var r,s,a,o,l;for(a in t)if(r=e[a],s=t[a],r&&i.test(a))if("class"===a&&("string"==typeof r&&(l=r,e[a]=r={},r[l]=!0),"string"==typeof s&&(l=s,t[a]=s={},s[l]=!0)),"on"===a||"nativeOn"===a||"hook"===a)for(o in s)r[o]=n(r[o],s[o]);else if(Array.isArray(r))e[a]=r.concat(s);else if(Array.isArray(s))e[a]=[r].concat(s);else for(o in s)r[o]=s[o];else e[a]=t[a];return e},{})}},function(e,t){var i={}.hasOwnProperty;e.exports=function(e,t){return i.call(e,t)}},function(e,t,i){"use strict";t.__esModule=!0;var n,r=i(56),s=(n=r)&&n.__esModule?n:{default:n};t.default=s.default||function(e){for(var t=1;t0?n:i)(e)}},function(e,t,i){var n=i(28)("keys"),r=i(21);e.exports=function(e){return n[e]||(n[e]=r(e))}},function(e,t,i){var n=i(14),r=i(5),s=r["__core-js_shared__"]||(r["__core-js_shared__"]={});(e.exports=function(e,t){return s[e]||(s[e]=void 0!==t?t:{})})("versions",[]).push({version:n.version,mode:i(20)?"pure":"global",copyright:"© 2019 Denis Pushkarev (zloirock.ru)"})},function(e,t){e.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(e,t){t.f=Object.getOwnPropertySymbols},function(e,t){e.exports={}},function(e,t,i){var n=i(10).f,r=i(7),s=i(13)("toStringTag");e.exports=function(e,t,i){e&&!r(e=i?e:e.prototype,s)&&n(e,s,{configurable:!0,value:t})}},function(e,t,i){t.f=i(13)},function(e,t,i){var n=i(5),r=i(14),s=i(20),a=i(33),o=i(10).f;e.exports=function(e){var t=r.Symbol||(r.Symbol=s?{}:n.Symbol||{});"_"==e.charAt(0)||e in t||o(t,e,{value:a.f(e)})}},function(e,t,i){var n=i(4),r=i(1);e.exports={throttle:n,debounce:r}},function(e,t,i){e.exports=!i(11)&&!i(16)(function(){return 7!=Object.defineProperty(i(37)("div"),"a",{get:function(){return 7}}).a})},function(e,t,i){var n=i(15),r=i(5).document,s=n(r)&&n(r.createElement);e.exports=function(e){return s?r.createElement(e):{}}},function(e,t,i){var n=i(7),r=i(12),s=i(62)(!1),a=i(27)("IE_PROTO");e.exports=function(e,t){var i,o=r(e),l=0,u=[];for(i in o)i!=a&&n(o,i)&&u.push(i);for(;t.length>l;)n(o,i=t[l++])&&(~s(u,i)||u.push(i));return u}},function(e,t,i){var n=i(40);e.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==n(e)?e.split(""):Object(e)}},function(e,t){var i={}.toString;e.exports=function(e){return i.call(e).slice(8,-1)}},function(e,t,i){var n=i(25);e.exports=function(e){return Object(n(e))}},function(e,t,i){"use strict";var n=i(20),r=i(23),s=i(43),a=i(9),o=i(31),l=i(69),u=i(32),c=i(72),h=i(13)("iterator"),d=!([].keys&&"next"in[].keys()),p=function(){return this};e.exports=function(e,t,i,f,m,v,g){l(i,t,f);var b,y,w,_=function(e){if(!d&&e in S)return S[e];switch(e){case"keys":case"values":return function(){return new i(this,e)}}return function(){return new i(this,e)}},x=t+" Iterator",C="values"==m,k=!1,S=e.prototype,D=S[h]||S["@@iterator"]||m&&S[m],$=D||_(m),E=m?C?_("entries"):$:void 0,T="Array"==t&&S.entries||D;if(T&&(w=c(T.call(new e)))!==Object.prototype&&w.next&&(u(w,x,!0),n||"function"==typeof w[h]||a(w,h,p)),C&&D&&"values"!==D.name&&(k=!0,$=function(){return D.call(this)}),n&&!g||!d&&!k&&S[h]||a(S,h,$),o[t]=$,o[x]=p,m)if(b={values:C?$:_("values"),keys:v?$:_("keys"),entries:E},g)for(y in b)y in S||s(S,y,b[y]);else r(r.P+r.F*(d||k),t,b);return b}},function(e,t,i){e.exports=i(9)},function(e,t,i){var n=i(17),r=i(70),s=i(29),a=i(27)("IE_PROTO"),o=function(){},l=function(){var e,t=i(37)("iframe"),n=s.length;for(t.style.display="none",i(71).appendChild(t),t.src="javascript:",(e=t.contentWindow.document).open(),e.write("