liyinglin 3 years ago
parent 855f095cf5
commit 3379e8b3d4

@ -28,13 +28,40 @@ class ChartController extends CommonController
* )
* )
*/
public function home(){
public function home()
{
$list = [
'common_visit' => [
'total' => Visit::where('type', 1)->count(),
'enter_visit' => Visit::where('type', 1)->whereNotNull('accept_admin_sign')->count(),
'today_total' => Visit::where('type', 1)->whereDate('created_at', date('Y-m-d'))->count(),
'today_enter_visit' => Visit::where('type', 1)->whereDate('created_at', date('Y-m-d'))->whereNotNull('accept_admin_sign')->count(),
],
'work_visit' => [
'total' => Visit::where('type', 2)->count(),
'enter_visit' => Visit::where('type', 2)->whereNotNull('accept_admin_sign')->count(),
'today_total' => Visit::where('type', 2)->whereDate('created_at', date('Y-m-d'))->count(),
'today_enter_visit' => Visit::where('type', 2)->whereDate('created_at', date('Y-m-d'))->whereNotNull('accept_admin_sign')->count(),
],
'car_visit' => [
'total' => Visit::where('type', 3)->count(),
'enter_visit' => Visit::where('type', 3)->whereNotNull('accept_admin_sign')->count(),
'today_total' => Visit::where('type', 3)->whereDate('created_at', date('Y-m-d'))->count(),
'today_enter_visit' => Visit::where('type', 3)->whereDate('created_at', date('Y-m-d'))->whereNotNull('accept_admin_sign')->count(),
],
];
return $this->success(compact('list'));
$startDate = date('Y-m-d', strtotime('-30 day', time()));
$dateList = getDateFromRange($startDate, date('Y-m-d'));
$all_date_list = [];
foreach ($dateList as &$item) {
$allDateList[] = [
'date' => $item,
'common_visit' => Visit::where('type', 1)->whereDate('created_at', $item)->count(),
'work_visit' => Visit::where('type', 2)->whereDate('created_at', $item)->count(),
'car_visit' => Visit::where('type', 3)->whereDate('created_at', $item)->count(),
];
}
return $this->success(compact('list', 'all_date_list'));
}

@ -137,6 +137,11 @@ class VisitAuditController extends CommonController
}
$model->fill($all);
$model->save();
// 获取必要数据
$visit = Visit::find($all['visit_id']);
$user = User::find($visit->user_id);
$visitTime = VisitTime::find($visit->visit_time_id);
$acceptAdmin = Admin::find($visit->accept_admin_id);
// 如果全部审核通过则拜访通过
$waitCount = VisitAudit::where('visit_id', $all['visit_id'])->whereIn('status', [0])->count();
$noPassCount = VisitAudit::where('visit_id', $all['visit_id'])->whereIn('status', [2])->count();
@ -152,12 +157,14 @@ class VisitAuditController extends CommonController
// 通过
$auditResult = '通过';
Visit::where('id', $all['visit_id'])->update(['audit_status' => 2]);
// 发短信
if (!empty($acceptAdmin->mobile)) {
$vars = ['date' => $visit->date, 'name' => $visit->name, 'phone_number' => $visit->mobile];
$template_id = '5wReg1';
sms($acceptAdmin->mobile, $vars, $template_id);
}
}
// 发通知
$visit = Visit::find($all['visit_id']);
$user = User::find($visit->user_id);
$visitTime = VisitTime::find($visit->visit_time_id);
$acceptAdmin = Admin::find($visit->accept_admin_id);
$templateData = [
'date1' => [
'value' => $visit->date . '-' . $visitTime->start_time . '-' . $visitTime->end_time

@ -519,3 +519,19 @@ function randStr($num = 6, $numc = false)
}
return $encrypt;
}
/**
* 获取指定日期段内的每一天日期
*/
function getDateFromRange($start, $end)
{
$dt_start = strtotime($start);
$dt_end = strtotime($end);
$temp = [];
while ($dt_start <= $dt_end) {
$re = date('Y-m-d', $dt_start);
$temp[] = $re;
$dt_start = strtotime('+1 day', $dt_start);
}
return $temp;
}

@ -0,0 +1,11 @@
<?php
namespace App\Models;
class Sms extends CommonModel
{
protected $guarded = ['id'];
}

@ -1,3 +1,3 @@
<!DOCTYPE html><html><head><meta charset=utf-8><meta http-equiv=X-UA-Compatible content="IE=edge,chrome=1"><meta name=viewport content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no"><link rel=icon href=/admin/favicon.ico><title>BD访客管理系统</title><script>window._AMapSecurityConfig = {
securityJsCode: '68787c7a64e7240670e6a538b326d64b',
}</script><script src="https://webapi.amap.com/maps?v=1.4.11&key=1a9ee0079fcb3c6c64c96dc903989994&plugin=AMap.PlaceSearch"></script><script src="https://webapi.amap.com/ui/1.0/main.js?v=1.0.11"></script><link href=/admin/static/css/app.153c52c5.css rel=preload as=style><link href=/admin/static/css/chunk-libs.58852448.css rel=preload as=style><link href=/admin/static/js/app.8db1eb18.js rel=preload as=script><link href=/admin/static/js/chunk-elementUI.3ab53a91.js rel=preload as=script><link href=/admin/static/js/chunk-libs.88456c74.js rel=preload as=script><link href=/admin/static/css/chunk-libs.58852448.css rel=stylesheet><link href=/admin/static/css/app.153c52c5.css rel=stylesheet></head><body><noscript><strong>We're sorry but BD访客管理系统 doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id=app></div><script>(function(e){function t(t){for(var r,c,o=t[0],d=t[1],i=t[2],f=0,l=[];f<o.length;f++)c=o[f],Object.prototype.hasOwnProperty.call(a,c)&&a[c]&&l.push(a[c][0]),a[c]=0;for(r in d)Object.prototype.hasOwnProperty.call(d,r)&&(e[r]=d[r]);h&&h(t);while(l.length)l.shift()();return u.push.apply(u,i||[]),n()}function n(){for(var e,t=0;t<u.length;t++){for(var n=u[t],r=!0,c=1;c<n.length;c++){var o=n[c];0!==a[o]&&(r=!1)}r&&(u.splice(t--,1),e=d(d.s=n[0]))}return e}var r={},c={runtime:0},a={runtime:0},u=[];function o(e){return d.p+"static/js/"+({}[e]||e)+"."+{"chunk-0a2267aa":"692f4b25","chunk-2d21065a":"2e2efb94","chunk-0ed2edc5":"0dce0be4","chunk-16b9b6dc":"52c2d615","chunk-026f3296":"5dcce591","chunk-0e956594":"7075d5dd","chunk-248dfb3a":"77a87d9c","chunk-2d0ac22e":"ce146d98","chunk-5a0e907d":"ca553ccf","chunk-94d3c3c4":"59521fd4"}[e]+".js"}function d(t){if(r[t])return r[t].exports;var n=r[t]={i:t,l:!1,exports:{}};return e[t].call(n.exports,n,n.exports,d),n.l=!0,n.exports}d.e=function(e){var t=[],n={"chunk-0a2267aa":1,"chunk-0ed2edc5":1,"chunk-026f3296":1,"chunk-0e956594":1,"chunk-248dfb3a":1,"chunk-5a0e907d":1,"chunk-94d3c3c4":1};c[e]?t.push(c[e]):0!==c[e]&&n[e]&&t.push(c[e]=new Promise((function(t,n){for(var r="static/css/"+({}[e]||e)+"."+{"chunk-0a2267aa":"9bb15a2d","chunk-2d21065a":"31d6cfe0","chunk-0ed2edc5":"f03cc9f5","chunk-16b9b6dc":"31d6cfe0","chunk-026f3296":"227b3bb2","chunk-0e956594":"ae241f74","chunk-248dfb3a":"ded5c43b","chunk-2d0ac22e":"31d6cfe0","chunk-5a0e907d":"d6659b52","chunk-94d3c3c4":"3c7f5ad9"}[e]+".css",a=d.p+r,u=document.getElementsByTagName("link"),o=0;o<u.length;o++){var i=u[o],f=i.getAttribute("data-href")||i.getAttribute("href");if("stylesheet"===i.rel&&(f===r||f===a))return t()}var l=document.getElementsByTagName("style");for(o=0;o<l.length;o++){i=l[o],f=i.getAttribute("data-href");if(f===r||f===a)return t()}var h=document.createElement("link");h.rel="stylesheet",h.type="text/css",h.onload=t,h.onerror=function(t){var r=t&&t.target&&t.target.src||a,u=new Error("Loading CSS chunk "+e+" failed.\n("+r+")");u.code="CSS_CHUNK_LOAD_FAILED",u.request=r,delete c[e],h.parentNode.removeChild(h),n(u)},h.href=a;var s=document.getElementsByTagName("head")[0];s.appendChild(h)})).then((function(){c[e]=0})));var r=a[e];if(0!==r)if(r)t.push(r[2]);else{var u=new Promise((function(t,n){r=a[e]=[t,n]}));t.push(r[2]=u);var i,f=document.createElement("script");f.charset="utf-8",f.timeout=120,d.nc&&f.setAttribute("nonce",d.nc),f.src=o(e);var l=new Error;i=function(t){f.onerror=f.onload=null,clearTimeout(h);var n=a[e];if(0!==n){if(n){var r=t&&("load"===t.type?"missing":t.type),c=t&&t.target&&t.target.src;l.message="Loading chunk "+e+" failed.\n("+r+": "+c+")",l.name="ChunkLoadError",l.type=r,l.request=c,n[1](l)}a[e]=void 0}};var h=setTimeout((function(){i({type:"timeout",target:f})}),12e4);f.onerror=f.onload=i,document.head.appendChild(f)}return Promise.all(t)},d.m=e,d.c=r,d.d=function(e,t,n){d.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},d.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},d.t=function(e,t){if(1&t&&(e=d(e)),8&t)return e;if(4&t&&"object"===typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(d.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)d.d(n,r,function(t){return e[t]}.bind(null,r));return n},d.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return d.d(t,"a",t),t},d.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},d.p="/admin/",d.oe=function(e){throw console.error(e),e};var i=window["webpackJsonp"]=window["webpackJsonp"]||[],f=i.push.bind(i);i.push=t,i=i.slice();for(var l=0;l<i.length;l++)t(i[l]);var h=f;n()})([]);</script><script src=/admin/static/js/chunk-elementUI.3ab53a91.js></script><script src=/admin/static/js/chunk-libs.88456c74.js></script><script src=/admin/static/js/app.8db1eb18.js></script></body></html>
}</script><script src="https://webapi.amap.com/maps?v=1.4.11&key=1a9ee0079fcb3c6c64c96dc903989994&plugin=AMap.PlaceSearch"></script><script src="https://webapi.amap.com/ui/1.0/main.js?v=1.0.11"></script><link href=/admin/static/css/app.153c52c5.css rel=preload as=style><link href=/admin/static/css/chunk-libs.197fd73a.css rel=preload as=style><link href=/admin/static/js/app.0fe0875a.js rel=preload as=script><link href=/admin/static/js/chunk-elementUI.96655e6f.js rel=preload as=script><link href=/admin/static/js/chunk-libs.901bc96d.js rel=preload as=script><link href=/admin/static/css/chunk-libs.197fd73a.css rel=stylesheet><link href=/admin/static/css/app.153c52c5.css rel=stylesheet></head><body><noscript><strong>We're sorry but BD访客管理系统 doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id=app></div><script>(function(e){function t(t){for(var r,c,a=t[0],d=t[1],f=t[2],i=0,l=[];i<a.length;i++)c=a[i],Object.prototype.hasOwnProperty.call(u,c)&&u[c]&&l.push(u[c][0]),u[c]=0;for(r in d)Object.prototype.hasOwnProperty.call(d,r)&&(e[r]=d[r]);h&&h(t);while(l.length)l.shift()();return o.push.apply(o,f||[]),n()}function n(){for(var e,t=0;t<o.length;t++){for(var n=o[t],r=!0,c=1;c<n.length;c++){var a=n[c];0!==u[a]&&(r=!1)}r&&(o.splice(t--,1),e=d(d.s=n[0]))}return e}var r={},c={runtime:0},u={runtime:0},o=[];function a(e){return d.p+"static/js/"+({}[e]||e)+"."+{"chunk-0ed2edc5":"aface30b","chunk-16b9b6dc":"52c2d615","chunk-026f3296":"b52b8c3c","chunk-0e956594":"7075d5dd","chunk-2fc4f294":"d4f1f2c3","chunk-6693da20":"497e0433","chunk-2d0ac22e":"c2f68894","chunk-2d21065a":"2e2efb94","chunk-5a0e907d":"1015a82f","chunk-94d3c3c4":"ab6fb2e3"}[e]+".js"}function d(t){if(r[t])return r[t].exports;var n=r[t]={i:t,l:!1,exports:{}};return e[t].call(n.exports,n,n.exports,d),n.l=!0,n.exports}d.e=function(e){var t=[],n={"chunk-0ed2edc5":1,"chunk-026f3296":1,"chunk-0e956594":1,"chunk-2fc4f294":1,"chunk-6693da20":1,"chunk-5a0e907d":1,"chunk-94d3c3c4":1};c[e]?t.push(c[e]):0!==c[e]&&n[e]&&t.push(c[e]=new Promise((function(t,n){for(var r="static/css/"+({}[e]||e)+"."+{"chunk-0ed2edc5":"f03cc9f5","chunk-16b9b6dc":"31d6cfe0","chunk-026f3296":"227b3bb2","chunk-0e956594":"ae241f74","chunk-2fc4f294":"c09dda7d","chunk-6693da20":"c0699864","chunk-2d0ac22e":"31d6cfe0","chunk-2d21065a":"31d6cfe0","chunk-5a0e907d":"d6659b52","chunk-94d3c3c4":"3c7f5ad9"}[e]+".css",u=d.p+r,o=document.getElementsByTagName("link"),a=0;a<o.length;a++){var f=o[a],i=f.getAttribute("data-href")||f.getAttribute("href");if("stylesheet"===f.rel&&(i===r||i===u))return t()}var l=document.getElementsByTagName("style");for(a=0;a<l.length;a++){f=l[a],i=f.getAttribute("data-href");if(i===r||i===u)return t()}var h=document.createElement("link");h.rel="stylesheet",h.type="text/css",h.onload=t,h.onerror=function(t){var r=t&&t.target&&t.target.src||u,o=new Error("Loading CSS chunk "+e+" failed.\n("+r+")");o.code="CSS_CHUNK_LOAD_FAILED",o.request=r,delete c[e],h.parentNode.removeChild(h),n(o)},h.href=u;var s=document.getElementsByTagName("head")[0];s.appendChild(h)})).then((function(){c[e]=0})));var r=u[e];if(0!==r)if(r)t.push(r[2]);else{var o=new Promise((function(t,n){r=u[e]=[t,n]}));t.push(r[2]=o);var f,i=document.createElement("script");i.charset="utf-8",i.timeout=120,d.nc&&i.setAttribute("nonce",d.nc),i.src=a(e);var l=new Error;f=function(t){i.onerror=i.onload=null,clearTimeout(h);var n=u[e];if(0!==n){if(n){var r=t&&("load"===t.type?"missing":t.type),c=t&&t.target&&t.target.src;l.message="Loading chunk "+e+" failed.\n("+r+": "+c+")",l.name="ChunkLoadError",l.type=r,l.request=c,n[1](l)}u[e]=void 0}};var h=setTimeout((function(){f({type:"timeout",target:i})}),12e4);i.onerror=i.onload=f,document.head.appendChild(i)}return Promise.all(t)},d.m=e,d.c=r,d.d=function(e,t,n){d.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},d.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},d.t=function(e,t){if(1&t&&(e=d(e)),8&t)return e;if(4&t&&"object"===typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(d.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)d.d(n,r,function(t){return e[t]}.bind(null,r));return n},d.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return d.d(t,"a",t),t},d.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},d.p="/admin/",d.oe=function(e){throw console.error(e),e};var f=window["webpackJsonp"]=window["webpackJsonp"]||[],i=f.push.bind(f);f.push=t,f=f.slice();for(var l=0;l<f.length;l++)t(f[l]);var h=i;n()})([]);</script><script src=/admin/static/js/chunk-elementUI.96655e6f.js></script><script src=/admin/static/js/chunk-libs.901bc96d.js></script><script src=/admin/static/js/app.0fe0875a.js></script></body></html>

@ -1 +0,0 @@
.xy-table-item-label[data-v-b5381608]{width:180px!important}.xy-table-item-content[data-v-b5381608]{width:100%}.img__delete[data-v-b5381608]{-webkit-transform:scale(.8);transform:scale(.8);position:absolute;top:4px;right:4px}[data-v-4561ff3d] .el-button{padding:5px 8px!important}.selector[data-v-4561ff3d] .el-input--suffix .el-input__inner{height:28px}.selector[data-v-4561ff3d] .el-select .el-input .el-select__caret{line-height:28px}.selector[data-v-4561ff3d] .el-range-editor.el-input__inner{height:28px;width:250px}.selector[data-v-4561ff3d] .el-date-editor .el-range-separator,.selector[data-v-4561ff3d] .el-date-editor .el-range__close-icon,.selector[data-v-4561ff3d] .el-date-editor .el-range__icon{line-height:21px}

File diff suppressed because one or more lines are too long

@ -0,0 +1 @@
.xy-table-item-label[data-v-f42b0fbe]{width:180px!important}.xy-table-item-content[data-v-f42b0fbe]{width:100%}.img__delete[data-v-f42b0fbe]{-webkit-transform:scale(.8);transform:scale(.8);position:absolute;top:4px;right:4px}[data-v-f42b0fbe] .el-radio__input{vertical-align:super}[data-v-f42b0fbe] .el-radio__label{font-size:32px}.gatewrap[data-v-f09d91ae]{background-color:#fff;position:relative}.gatecode[data-v-f09d91ae]{font-size:32px;position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);width:100%;text-align:center}[data-v-f09d91ae] .el-input{width:350px!important}[data-v-f09d91ae] .el-input__inner{font-size:32px;height:45px;width:350px}[data-v-f09d91ae] .el-button{vertical-align:top;height:45px;width:90px;border:none}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -30,6 +30,8 @@ Route::group(["namespace" => "Admin", "prefix" => "admin", "middleware" => "sanc
Route::get("chart/month", [\App\Http\Controllers\Admin\ChartController::class, "month"]);
Route::get("chart/time", [\App\Http\Controllers\Admin\ChartController::class, "time"]);
Route::get("chart/car", [\App\Http\Controllers\Admin\ChartController::class, "car"]);
Route::get("chart/home", [\App\Http\Controllers\Admin\ChartController::class, "home"]);
// 配置管理
Route::get("config/index", [\App\Http\Controllers\Admin\ConfigController::class, "index"]);

Loading…
Cancel
Save