Compare commits

..

10 Commits

@ -2,7 +2,7 @@ APP_NAME=Laravel
APP_ENV=local
APP_KEY=
APP_DEBUG=true
APP_URL=http://localhost
APP_URL=https://ss-visitor.ali251.langye.net
LOG_CHANNEL=stack
LOG_DEPRECATIONS_CHANNEL=null

@ -50,27 +50,29 @@ class AuditEmailNotify extends Notification
if ($this->isFirstAudit) {
// 第一个审核人的邮件
return (new MailMessage)
->from('no-reply@tinge.com', 'tinge Suzhou HR')
->from(config('mail.from.address'), '赛思 HR')
->subject('新的拜访审核通知 - ' . $visitData['name'])
->greeting('您好 ' . $notifiable->name . '')
->line('您有一个新的拜访申请需要审核,访客 ' . $visitData['name'] . ' 预约于 ' . $visitData['date'] . ' 到访。')
->line('访客联系电话:' . $visitData['mobile'])
->line('拜访事由:' . ($visitData['reason'] ?? '无'))
->line('请及时审核此拜访申请。')
->line('')
->line('Regards');
->salutation('')
->line('Regards')
->line('赛思 HR');
} else {
// 后续审核人的邮件
return (new MailMessage)
->from('no-reply@tinge.com', 'tinge Suzhou HR')
->from(config('mail.from.address'), '赛思 HR')
->subject('拜访审核流转通知 - ' . $visitData['name'])
->greeting('您好 ' . $notifiable->name . '')
->line('拜访申请 ' . $visitData['name'] . ' 预约于 ' . $visitData['date'] . ' 的审核已流转到您这里,上一级审核人:' . ($visitData['previous_admin'] ?? '') . '。')
->line('访客联系电话:' . $visitData['mobile'])
->line('拜访事由:' . ($visitData['reason'] ?? '无'))
->line('请及时处理此审核流转。')
->line('')
->line('Regards');
->salutation('')
->line('Regards')
->line('赛思 HR');
}
}
}

@ -51,19 +51,20 @@ class AuditResultEmailNotify extends Notification
if ($auditResult === '通过') {
// 审核通过的邮件
return (new MailMessage)
->from('no-reply@tinge.com', 'tinge Suzhou HR')
->from(config('mail.from.address'), '赛思 HR')
->subject('拜访申请审核通过通知 - ' . $visitData['name'])
->greeting('您好 ' . $visitData['visitor_name'] . '')
->line('您的拜访申请已审核通过,预约于 ' . $visitData['date'] . ' 到访。')
->line('被访人:' . $visitData['accept_admin_name'])
->line('公司名称:' . $visitData['company_name'])
->line('请按时到访,如有疑问请联系被访人。')
->line('')
->line('Regards');
->salutation('')
->line('Regards')
->line('赛思 HR');
} else {
// 审核驳回的邮件
return (new MailMessage)
->from('no-reply@tinge.com', 'tinge Suzhou HR')
->from(config('mail.from.address'), '赛思 HR')
->subject('拜访申请审核驳回通知 - ' . $visitData['name'])
->greeting('您好 ' . $visitData['visitor_name'] . '')
->line('很抱歉,您的拜访申请未通过审核。')
@ -71,8 +72,9 @@ class AuditResultEmailNotify extends Notification
->line('被访人:' . $visitData['accept_admin_name'])
->line('公司名称:' . $visitData['company_name'])
->line('如有疑问,请联系被访人或重新提交申请。')
->line('')
->line('Regards');
->salutation('')
->line('Regards')
->line('赛思 HR');
}
}
}

@ -45,15 +45,16 @@ class CancelEmailNotify extends Notification
$visitData = $this->visitData;
return (new MailMessage)
->from('no-reply@tinge.com', 'tinge Suzhou HR')
->from(config('mail.from.address'), '赛思 HR')
->subject('拜访预约取消通知 - ' . $visitData['name'])
->greeting('您好 ' . $notifiable->name . '')
->line('访客 ' . $visitData['name'] . ' 原预约于 ' . $visitData['date'] . ' 的拜访已取消。')
->line('访客联系电话:' . $visitData['mobile'])
->line('拜访事由:' . ($visitData['reason'] ?? '无'))
->line('如有疑问,请联系访客确认。')
->line('')
->line('Regards');
->salutation('')
->line('Regards')
->line('赛思 HR');
}
}

@ -44,11 +44,12 @@ class EmailNotify extends Notification
public function toMail($notifiable)
{
return (new MailMessage)
->from('no-reply@tinge.com', 'tinge Suzhou HR')
->from(config('mail.from.address'), '赛思 HR')
->subject($notifiable->title)
->line($notifiable->content)
->line('')
->line('Regards');
->salutation('')
->line('Regards')
->line('赛思 HR');
}
/**

@ -45,14 +45,15 @@ class VisitEmailNotify extends Notification
$visitData = $this->visitData;
return (new MailMessage)
->from('no-reply@tinge.com', 'tinge Suzhou HR')
->from(config('mail.from.address'), '赛思 HR')
->subject('新的拜访预约通知 - ' . $visitData['name'])
->greeting('您好 ' . $notifiable->name . '')
->line('您有一个新的拜访预约,访客 ' . $visitData['name'] . ' 预约于 ' . $visitData['date'] . ' 到访。')
->line('访客联系电话:' . $visitData['mobile'])
->line('拜访事由:' . ($visitData['reason'] ?? '无'))
->line('请及时处理此拜访预约。')
->line('')
->line('Regards');
->salutation('')
->line('Regards')
->line('赛思 HR');
}
}

@ -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>迈柯唯访客管理系统</title><script>window._AMapSecurityConfig = {
<!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>赛思访客管理系统</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.27f910e8.css rel=preload as=style><link href=/admin/static/css/chunk-libs.cb37023e.css rel=preload as=style><link href=/admin/static/js/app.6485b205.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.a3235d53.js rel=preload as=script><link href=/admin/static/css/chunk-libs.cb37023e.css rel=stylesheet><link href=/admin/static/css/app.27f910e8.css rel=stylesheet></head><body><noscript><strong>We're sorry but 迈柯唯访客管理系统 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],i=t[1],f=t[2],l=0,d=[];l<o.length;l++)c=o[l],Object.prototype.hasOwnProperty.call(a,c)&&a[c]&&d.push(a[c][0]),a[c]=0;for(r in i)Object.prototype.hasOwnProperty.call(i,r)&&(e[r]=i[r]);h&&h(t);while(d.length)d.shift()();return u.push.apply(u,f||[]),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=i(i.s=n[0]))}return e}var r={},c={runtime:0},a={runtime:0},u=[];function o(e){return i.p+"static/js/"+({}[e]||e)+"."+{"chunk-16b9b6dc":"52c2d615","chunk-11c68ae5":"c49be909","chunk-b7ab62b8":"ec493ad0","chunk-2b0109ce":"b3cf71ec","chunk-45a50337":"b2cb6345","chunk-187b2ae4":"13acf0b3","chunk-22cea610":"ea1d353a","chunk-2d21065a":"62cc4063","chunk-2d0ac22e":"4ff09374","chunk-6bd5056c":"7535afba"}[e]+".js"}function i(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,i),n.l=!0,n.exports}i.e=function(e){var t=[],n={"chunk-11c68ae5":1,"chunk-b7ab62b8":1,"chunk-2b0109ce":1,"chunk-45a50337":1,"chunk-187b2ae4":1,"chunk-22cea610":1,"chunk-6bd5056c":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-16b9b6dc":"31d6cfe0","chunk-11c68ae5":"69da8374","chunk-b7ab62b8":"ae241f74","chunk-2b0109ce":"58c5a6f1","chunk-45a50337":"ffe4e6a3","chunk-187b2ae4":"4849ae05","chunk-22cea610":"3c7f5ad9","chunk-2d21065a":"31d6cfe0","chunk-2d0ac22e":"31d6cfe0","chunk-6bd5056c":"f03cc9f5"}[e]+".css",a=i.p+r,u=document.getElementsByTagName("link"),o=0;o<u.length;o++){var f=u[o],l=f.getAttribute("data-href")||f.getAttribute("href");if("stylesheet"===f.rel&&(l===r||l===a))return t()}var d=document.getElementsByTagName("style");for(o=0;o<d.length;o++){f=d[o],l=f.getAttribute("data-href");if(l===r||l===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 f,l=document.createElement("script");l.charset="utf-8",l.timeout=120,i.nc&&l.setAttribute("nonce",i.nc),l.src=o(e);var d=new Error;f=function(t){l.onerror=l.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;d.message="Loading chunk "+e+" failed.\n("+r+": "+c+")",d.name="ChunkLoadError",d.type=r,d.request=c,n[1](d)}a[e]=void 0}};var h=setTimeout((function(){f({type:"timeout",target:l})}),12e4);l.onerror=l.onload=f,document.head.appendChild(l)}return Promise.all(t)},i.m=e,i.c=r,i.d=function(e,t,n){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},i.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,t){if(1&t&&(e=i(e)),8&t)return e;if(4&t&&"object"===typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(i.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)i.d(n,r,function(t){return e[t]}.bind(null,r));return n},i.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="/admin/",i.oe=function(e){throw console.error(e),e};var f=window["webpackJsonp"]=window["webpackJsonp"]||[],l=f.push.bind(f);f.push=t,f=f.slice();for(var d=0;d<f.length;d++)t(f[d]);var h=l;n()})([]);</script><script src=/admin/static/js/chunk-elementUI.3ab53a91.js></script><script src=/admin/static/js/chunk-libs.a3235d53.js></script><script src=/admin/static/js/app.6485b205.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.27f910e8.css rel=preload as=style><link href=/admin/static/css/chunk-libs.cb37023e.css rel=preload as=style><link href=/admin/static/js/app.7bbff0b1.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.a3235d53.js rel=preload as=script><link href=/admin/static/css/chunk-libs.cb37023e.css rel=stylesheet><link href=/admin/static/css/app.27f910e8.css rel=stylesheet></head><body><noscript><strong>We're sorry but 赛思访客管理系统 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],i=t[1],f=t[2],d=0,l=[];d<o.length;d++)c=o[d],Object.prototype.hasOwnProperty.call(a,c)&&a[c]&&l.push(a[c][0]),a[c]=0;for(r in i)Object.prototype.hasOwnProperty.call(i,r)&&(e[r]=i[r]);h&&h(t);while(l.length)l.shift()();return u.push.apply(u,f||[]),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=i(i.s=n[0]))}return e}var r={},c={runtime:0},a={runtime:0},u=[];function o(e){return i.p+"static/js/"+({}[e]||e)+"."+{"chunk-16b9b6dc":"52c2d615","chunk-11c68ae5":"c49be909","chunk-b7ab62b8":"ec493ad0","chunk-2b0109ce":"b3cf71ec","chunk-0bd599c3":"13e3557a","chunk-187b2ae4":"13acf0b3","chunk-22cea610":"ea1d353a","chunk-2d21065a":"62cc4063","chunk-2d0ac22e":"4ff09374","chunk-6bd5056c":"7535afba"}[e]+".js"}function i(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,i),n.l=!0,n.exports}i.e=function(e){var t=[],n={"chunk-11c68ae5":1,"chunk-b7ab62b8":1,"chunk-2b0109ce":1,"chunk-0bd599c3":1,"chunk-187b2ae4":1,"chunk-22cea610":1,"chunk-6bd5056c":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-16b9b6dc":"31d6cfe0","chunk-11c68ae5":"69da8374","chunk-b7ab62b8":"ae241f74","chunk-2b0109ce":"58c5a6f1","chunk-0bd599c3":"a3c8f34f","chunk-187b2ae4":"4849ae05","chunk-22cea610":"3c7f5ad9","chunk-2d21065a":"31d6cfe0","chunk-2d0ac22e":"31d6cfe0","chunk-6bd5056c":"f03cc9f5"}[e]+".css",a=i.p+r,u=document.getElementsByTagName("link"),o=0;o<u.length;o++){var f=u[o],d=f.getAttribute("data-href")||f.getAttribute("href");if("stylesheet"===f.rel&&(d===r||d===a))return t()}var l=document.getElementsByTagName("style");for(o=0;o<l.length;o++){f=l[o],d=f.getAttribute("data-href");if(d===r||d===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 f,d=document.createElement("script");d.charset="utf-8",d.timeout=120,i.nc&&d.setAttribute("nonce",i.nc),d.src=o(e);var l=new Error;f=function(t){d.onerror=d.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(){f({type:"timeout",target:d})}),12e4);d.onerror=d.onload=f,document.head.appendChild(d)}return Promise.all(t)},i.m=e,i.c=r,i.d=function(e,t,n){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},i.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,t){if(1&t&&(e=i(e)),8&t)return e;if(4&t&&"object"===typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(i.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)i.d(n,r,function(t){return e[t]}.bind(null,r));return n},i.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="/admin/",i.oe=function(e){throw console.error(e),e};var f=window["webpackJsonp"]=window["webpackJsonp"]||[],d=f.push.bind(f);f.push=t,f=f.slice();for(var l=0;l<f.length;l++)t(f[l]);var h=d;n()})([]);</script><script src=/admin/static/js/chunk-elementUI.3ab53a91.js></script><script src=/admin/static/js/chunk-libs.a3235d53.js></script><script src=/admin/static/js/app.7bbff0b1.js></script></body></html>

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

@ -1,2 +1,2 @@
<!DOCTYPE html><html lang=zh-CN><head><meta charset=utf-8><meta http-equiv=X-UA-Compatible content="IE=edge"><title>迈柯唯访客在线核销</title><script>var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') || CSS.supports('top: constant(a)'))
document.write('<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' + (coverSupport ? ', viewport-fit=cover' : '') + '" />')</script><link rel=stylesheet href=/cancel/static/index.883130ca.css></head><body><noscript><strong>Please enable JavaScript to continue.</strong></noscript><div id=app></div><script src=/cancel/static/js/chunk-vendors.198b5f21.js></script><script src=/cancel/static/js/index.460d6b0b.js></script></body></html>
<!DOCTYPE html><html lang=zh-CN><head><meta charset=utf-8><meta http-equiv=X-UA-Compatible content="IE=edge"><title>赛思访客在线核销</title><script>var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') || CSS.supports('top: constant(a)'))
document.write('<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' + (coverSupport ? ', viewport-fit=cover' : '') + '" />')</script><link rel=stylesheet href=/cancel/static/index.ed4a2d2b.css></head><body><noscript><strong>Please enable JavaScript to continue.</strong></noscript><div id=app></div><script src=/cancel/static/js/chunk-vendors.4b5abbbf.js></script><script src=/cancel/static/js/index.61aece7b.js></script></body></html>

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

@ -0,0 +1,55 @@
<x-mail::message>
{{-- Greeting --}}
@if (! empty($greeting))
# {{ $greeting }}
@else
@if ($level === 'error')
# @lang('Whoops!')
@else
# @lang('Hello!')
@endif
@endif
{{-- Intro Lines --}}
@foreach ($introLines as $line)
{{ $line }}
@endforeach
{{-- Action Button --}}
@isset($actionText)
<?php
$color = match ($level) {
'success', 'error' => $level,
default => 'primary',
};
?>
<x-mail::button :url="$actionUrl" :color="$color">
{{ $actionText }}
</x-mail::button>
@endisset
{{-- Outro Lines --}}
@foreach ($outroLines as $line)
{{ $line }}
@endforeach
{{-- Salutation --}}
@if (! empty($salutation))
{{ $salutation }}
@endif
{{-- Subcopy --}}
@isset($actionText)
<x-slot:subcopy>
@lang(
"If you're having trouble clicking the \":actionText\" button, copy and paste the URL below\n".
'into your web browser:',
[
'actionText' => $actionText,
]
) <span class="break-all">[{{ $displayableActionUrl }}]({{ $actionUrl }})</span>
</x-slot:subcopy>
@endisset
</x-mail::message>
Loading…
Cancel
Save