刘翔宇-旅管家 3 years ago
commit 68e0af68c8

@ -30,6 +30,7 @@ class AdminController extends CommonController
*/
public function index()
{
$all = \request()->all();
$data = (new Admin())->with(["roles", "department"])->orderBy("sortnumber");
if (request()->keyword) {
$data = $data->where(function ($query) {

@ -15,6 +15,56 @@ use Rap2hpoutre\FastExcel\FastExcel;
class ChartController extends CommonController
{
/**
* @OA\Get(
* path="/api/admin/chart/home",
* tags={"图表"},
* summary="首页统计",
* description="",
* @OA\Parameter(name="token", in="query", @OA\Schema(type="string"), required=true, description="token"),
* @OA\Response(
* response="200",
* description="暂无"
* )
* )
*/
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)->where('date', date('Y-m-d'))->count(),
'today_enter_visit' => Visit::where('type', 1)->where('date', 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)->where('date', date('Y-m-d'))->count(),
'today_enter_visit' => Visit::where('type', 2)->where('date', 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)->where('date', date('Y-m-d'))->count(),
'today_enter_visit' => Visit::where('type', 3)->where('date', date('Y-m-d'))->whereNotNull('accept_admin_sign')->count(),
],
];
$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)->where('date', $item)->count(),
'work_visit' => Visit::where('type', 2)->where('date', $item)->count(),
'car_visit' => Visit::where('type', 3)->where('date', $item)->count(),
];
}
return $this->success(compact('list', 'all_date_list'));
}
/**
* @OA\Get(
* path="/api/admin/chart/month",

@ -52,6 +52,10 @@ class GateController extends CommonController
* @OA\Parameter(name="page", in="query", @OA\Schema(type="string"), required=false, description="页码"),
* @OA\Parameter(name="sort_name", in="query", @OA\Schema(type="string"), required=false, description="排序字段名字"),
* @OA\Parameter(name="sort_type", in="query", @OA\Schema(type="string"), required=false, description="排序类型"),
* @OA\Parameter(name="code", in="query", @OA\Schema(type="string"), required=false, description="编码"),
* @OA\Parameter(name="idcard", in="query", @OA\Schema(type="string"), required=false, description="身份证号码"),
* @OA\Parameter(name="car_no", in="query", @OA\Schema(type="string"), required=false, description="停车牌"),
* @OA\Parameter(name="person_no", in="query", @OA\Schema(type="string"), required=false, description="人牌"),
* @OA\Parameter(name="is_export", in="query", @OA\Schema(type="string"), required=false, description="是否导出0否1是默认0"),
* @OA\Parameter(name="token", in="query", @OA\Schema(type="string"), required=true, description="token"),
* @OA\Response(
@ -63,13 +67,19 @@ class GateController extends CommonController
public function visitList()
{
$all = request()->all();
$list = Visit::with('visitTime', 'admin', 'visitArea', 'acceptAdmin.department', 'acceptAdminSignFile', 'acceptGoodsAdmin.department')->where(function ($query) use ($all) {
$list = Visit::with('logs.admin', 'logs.user', 'visitTime', 'admin', 'visitArea', 'acceptAdmin.department', 'acceptAdminSignFile', 'acceptGoodsAdmin.department')->where(function ($query) use ($all) {
if (isset($all['keyword'])) {
$query->where('name', 'like', '%' . $all['keyword'] . '%');
}
if (isset($all['audit_status'])) {
$query->where('audit_status', $all['audit_status']);
}
if (isset($all['code'])) {
$query->where('code', $all['code']);
}
if (isset($all['idcard'])) {
$query->where('idcard', $all['idcard']);
}
if (isset($all['start_date']) && isset($all['end_date'])) {
$query->whereBetween('date', [$all['start_date'], $all['end_date']]);
}
@ -85,6 +95,8 @@ class GateController extends CommonController
* description="",
* @OA\Parameter(name="admin_id", in="query", @OA\Schema(type="string"), required=false, description="管理员id"),
* @OA\Parameter(name="code", in="query", @OA\Schema(type="string"), required=false, description="编码"),
* @OA\Parameter(name="car_no", in="query", @OA\Schema(type="string"), required=false, description="停车牌"),
* @OA\Parameter(name="person_no", in="query", @OA\Schema(type="string"), required=false, description="人牌"),
* @OA\Parameter(name="type", in="query", @OA\Schema(type="string"), required=false, description="1进厂2离厂"),
* @OA\Response(
* response="200",
@ -125,5 +137,4 @@ class GateController extends CommonController
}
return $this->success($gateLog);
}
}

@ -2,9 +2,15 @@
namespace App\Http\Controllers\Admin;
use App\Models\Admin;
use App\Models\Department;
use App\Models\User;
use App\Models\Visit;
use App\Models\VisitAudit;
use App\Models\VisitLog;
use App\Models\VisitTime;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Validator;
use App\Helpers\ResponseCode;
@ -132,9 +138,56 @@ 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);
// 如果全部审核通过则拜访通过
$noPass = VisitAudit::where('visit_id', $all['visit_id'])->whereIn('status', [0, 2])->count();
if (empty($noPass)) Visit::where('id', $all['visit_id'])->update(['audit_status' => 1]);
$waitCount = VisitAudit::where('visit_id', $all['visit_id'])->whereIn('status', [0])->count();
$noPassCount = VisitAudit::where('visit_id', $all['visit_id'])->whereIn('status', [2])->count();
if ($noPassCount || (empty($noPassCount) && empty($waitCount))) {
$auditResult = '';
if ($noPassCount) {
// 不通过
$auditResult = '驳回';
// 修改状态
Visit::where('id', $all['visit_id'])->update(['audit_status' => 2]);
}
if (empty($noPassCount) && empty($waitCount)) {
// 通过
$auditResult = '通过';
Visit::where('id', $all['visit_id'])->update(['audit_status' => 1]);
// 发短信
if (!empty($acceptAdmin->mobile)) {
$vars = ['date' => $visit->date, 'name' => $visit->name, 'phone_number' => $visit->mobile];
$template_id = '5wReg1';
sms($acceptAdmin->mobile, $vars, $template_id);
}
}
// 发通知
$templateData = [
'date1' => [
'value' => $visit->date
],
'name3' => [
'value' => $acceptAdmin->name,
],
'thing4' => [
'value' => $visit->name
],
'thing13' => [
'value' => $auditResult,
],
'thing9' => [
'value' => $visit->company_name
],
];
Visit::subMsg('IczaKkCmwf55tAAzCcxb_fbbf5L25SWrSKvaBrkIyk4', $user->openid, $templateData);
}
// 审核记录
$auditAdmin = Admin::find($model->audit_admin_id);
VisitLog::add($this->getUser(), '', $all['visit_id'], $auditAdmin->name . '审核' . ($all['status'] == 1 ? '通过' : '驳回'));
DB::commit();
return $this->success('更新成功');
} catch (\Exception $exception) {

@ -2,6 +2,7 @@
namespace App\Http\Controllers\Admin;
use App\Models\Admin;
use App\Models\Visit;
use App\Models\VisitLog;
use Illuminate\Support\Facades\DB;
@ -68,6 +69,14 @@ class VisitController extends CommonController
$q->where('audit_admin_id', $this->getUserId());
});
}
// 权限设置
$user = $this->getUser();
$adminIds = Admin::roleAllowAdminIds($user, $departmentIds);
$query->where(function ($qry) use ($adminIds, $departmentIds, $user) {
$qry->whereIn('accpet_department_id', $departmentIds)->orWhere(function ($qry) use ($adminIds) {
$qry->whereIn('accept_admin_id', $adminIds);
});
});
})->orderBy($all['sort_name'] ?? 'id', $all['sort_type'] ?? 'desc');
if (isset($all['is_export']) && !empty($all['is_export'])) {
return (new FastExcel($list->limit(5000)->get()->toArray()))->download('访问记录' . date('YmdHis') . '.csv', function ($info) {
@ -119,7 +128,7 @@ class VisitController extends CommonController
if ($validator->fails()) {
return $this->fail([ResponseCode::ERROR_PARAMETER, implode(',', $validator->errors()->all())]);
}
$detail = Visit::with('logs', 'audit.auditAdmin', 'visitTime', 'acceptAdmin.department', 'acceptAdminSignFile', 'acceptGoodsAdmin.department', 'visitArea', 'audit.auditAdmin')->find($all['id']);
$detail = Visit::with('logs.admin', 'logs.user', 'audit.auditAdmin', 'visitTime', 'acceptAdmin.department', 'acceptAdminSignFile', 'acceptGoodsAdmin.department', 'visitArea', 'audit.auditAdmin')->find($all['id']);
return $this->success($detail);
}

@ -161,7 +161,7 @@ class UserController extends CommonController
public function myVisit()
{
$all = request()->all();
$list = Visit::with('logs', 'visitTime', 'admin', 'visitArea', 'acceptAdmin.department', 'acceptAdminSignFile', 'acceptGoodsAdmin.department')->where('user_id', $this->getUserId())
$list = Visit::with('logs.admin','logs.user', 'visitTime', 'admin', 'visitArea', 'acceptAdmin.department', 'acceptAdminSignFile', 'acceptGoodsAdmin.department')->where('user_id', $this->getUserId())
->where(function ($query) use ($all) {
if (isset($all['type'])) {
$query->where('type', $all['type']);
@ -197,7 +197,7 @@ class UserController extends CommonController
if ($validator->fails()) {
return $this->fail([ResponseCode::ERROR_PARAMETER, implode(',', $validator->errors()->all())]);
}
$detail = Visit::with('visitTime', 'admin', 'visitArea', 'acceptAdmin.department', 'acceptAdminSignFile', 'acceptGoodsAdmin.department')->find($all['id']);
$detail = Visit::with('logs.admin','logs.user','visitTime', 'admin', 'visitArea', 'acceptAdmin.department', 'acceptAdminSignFile', 'acceptGoodsAdmin.department')->find($all['id']);
return $this->success($detail);
}

@ -12,6 +12,7 @@ use App\Models\VisitAudit;
use App\Models\VisitLog;
use App\Models\VisitTime;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Validator;
class VisitController extends CommonController
@ -108,6 +109,28 @@ class VisitController extends CommonController
}
}
VisitLog::add('', $this->getUser(), $model->id, isset($all['id']) ? '更新拜访记录' : '新增拜访记录');
// 通知
$visitTime = VisitTime::find($all['visit_time_id']);
$acceptAdmin = Admin::find($all['accept_admin_id']);
$accpetDepartment = Department::find($all['accpet_department_id']);
$templateData = [
'date1' => [
'value' => $all['date']
],
'name2' => [
'value' => $all['name']
],
'phone_number3' => [
'value' => $all['mobile']
],
'name4' => [
'value' => $acceptAdmin->name ?? '',
],
'thing6' => [
'value' => $accpetDepartment->name ?? ''
],
];
$res = Visit::subMsg('DmzNRREPFdZrMWconNDdbj_ebtVPRWufq27kRQ25eNg', $this->getUser()->openid, $templateData);
DB::commit();
return $this->success('更新成功');
} catch (\Exception $exception) {

@ -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'];
}

@ -2,6 +2,8 @@
namespace App\Models;
use EasyWeChat\Factory;
class Visit extends SoftDeletesModel
{
protected $guarded = ['id'];
@ -74,4 +76,21 @@ class Visit extends SoftDeletesModel
return $this->hasMany(VisitLog::class, 'visit_id', 'id');
}
// 小程序订阅消息
public static function subMsg($template_id, $openid, $data)
{
$config = [
'app_id' => \config('app.wechat_appid'),
'secret' => \config('app.wechat_appsecret')
];
$app = Factory::miniProgram($config);
$data = [
'template_id' => $template_id,
'touser' => $openid,
'page' => '',
'data' => $data
];
return $app->subscribe_message->send($data);
}
}

@ -17,4 +17,12 @@ class VisitLog extends CommonModel
]);
}
public function admin(){
return $this->hasOne(Admin::class,'id','admin_id');
}
public function user(){
return $this->hasOne(User::class,'id','user_id');
}
}

@ -0,0 +1,33 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('visits', function (Blueprint $table) {
$table->string('car_no')->nullable()->comment('停车牌');
$table->string('person_no')->nullable()->comment('人牌');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('visits', function (Blueprint $table) {
//
});
}
};

@ -1,3 +1,7 @@
<!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.47044ad0.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,a=t[0],d=t[1],i=t[2],f=0,l=[];f<a.length;f++)c=a[f],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,i||[]),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-0e3e59d4":"c1c3911c","chunk-2d21065a":"2e2efb94","chunk-0ed2edc5":"0dce0be4","chunk-16b9b6dc":"52c2d615","chunk-026f3296":"5dcce591","chunk-0e956594":"7075d5dd","chunk-0882bf88":"9c1cec11","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-0e3e59d4":1,"chunk-0ed2edc5":1,"chunk-026f3296":1,"chunk-0e956594":1,"chunk-0882bf88":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-0e3e59d4":"5e4ce595","chunk-2d21065a":"31d6cfe0","chunk-0ed2edc5":"f03cc9f5","chunk-16b9b6dc":"31d6cfe0","chunk-026f3296":"227b3bb2","chunk-0e956594":"ae241f74","chunk-0882bf88":"312e5bd0","chunk-2d0ac22e":"31d6cfe0","chunk-5a0e907d":"d6659b52","chunk-94d3c3c4":"3c7f5ad9"}[e]+".css",u=d.p+r,o=document.getElementsByTagName("link"),a=0;a<o.length;a++){var i=o[a],f=i.getAttribute("data-href")||i.getAttribute("href");if("stylesheet"===i.rel&&(f===r||f===u))return t()}var l=document.getElementsByTagName("style");for(a=0;a<l.length;a++){i=l[a],f=i.getAttribute("data-href");if(f===r||f===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 i,f=document.createElement("script");f.charset="utf-8",f.timeout=120,d.nc&&f.setAttribute("nonce",d.nc),f.src=a(e);var l=new Error;i=function(t){f.onerror=f.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(){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.47044ad0.js></script></body></html>
<<<<<<< HEAD
}</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.47044ad0.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,a=t[0],d=t[1],i=t[2],f=0,l=[];f<a.length;f++)c=a[f],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,i||[]),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-0e3e59d4":"c1c3911c","chunk-2d21065a":"2e2efb94","chunk-0ed2edc5":"0dce0be4","chunk-16b9b6dc":"52c2d615","chunk-026f3296":"5dcce591","chunk-0e956594":"7075d5dd","chunk-0882bf88":"9c1cec11","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-0e3e59d4":1,"chunk-0ed2edc5":1,"chunk-026f3296":1,"chunk-0e956594":1,"chunk-0882bf88":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-0e3e59d4":"5e4ce595","chunk-2d21065a":"31d6cfe0","chunk-0ed2edc5":"f03cc9f5","chunk-16b9b6dc":"31d6cfe0","chunk-026f3296":"227b3bb2","chunk-0e956594":"ae241f74","chunk-0882bf88":"312e5bd0","chunk-2d0ac22e":"31d6cfe0","chunk-5a0e907d":"d6659b52","chunk-94d3c3c4":"3c7f5ad9"}[e]+".css",u=d.p+r,o=document.getElementsByTagName("link"),a=0;a<o.length;a++){var i=o[a],f=i.getAttribute("data-href")||i.getAttribute("href");if("stylesheet"===i.rel&&(f===r||f===u))return t()}var l=document.getElementsByTagName("style");for(a=0;a<l.length;a++){i=l[a],f=i.getAttribute("data-href");if(f===r||f===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 i,f=document.createElement("script");f.charset="utf-8",f.timeout=120,d.nc&&f.setAttribute("nonce",d.nc),f.src=a(e);var l=new Error;i=function(t){f.onerror=f.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(){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.47044ad0.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>
>>>>>>> 3484f9be7470312624760e96ca7caa0f483d155e

@ -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

@ -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