mirror of
https://github.com/DzzXH/DzzOffice.git
synced 2026-01-15 11:55:18 +08:00
优化UI、增加全局错误处理
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
<a class="leftTopmenu navbar-brand" href="{$_G[siteurl]}">
|
||||
<a class="leftTopmenu" href="{$_G[siteurl]}">
|
||||
<img src="{eval echo $_G['setting']['sitelogo']?'index.php?mod=io&op=thumbnail&size=small&path='.dzzencode('attach::'.$_G['setting']['sitelogo']):'static/image/common/logo.png';}" class="d-inline-block align-middle">
|
||||
{lang appname}
|
||||
</a>
|
||||
@@ -14,7 +14,6 @@
|
||||
<form id="appform" name="appform" class="form-horizontal form-horizontal-left" action="{MOD_URL}" method="post" >
|
||||
<input type="hidden" name="cloudsubmit" value="true" />
|
||||
<input type="hidden" name="formhash" value="{FORMHASH}" />
|
||||
<div class="table-responsive" style="margin-top: 8px;">
|
||||
<table class="table table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
@@ -55,10 +54,9 @@
|
||||
</tr>
|
||||
<!--{/loop}-->
|
||||
</table>
|
||||
<dl>
|
||||
<input type="submit" class="btn btn-primary" value="{lang save_set}" />
|
||||
</dl>
|
||||
</div>
|
||||
<dl>
|
||||
<input type="submit" class="btn btn-primary" value="{lang save_set}" />
|
||||
</dl>
|
||||
</form>
|
||||
<div class="alert alert-warning alert-dismissible fade show" role="alert">
|
||||
<strong>{lang board_message}</strong> {lang cloud_cloud_board_message_text}
|
||||
|
||||
@@ -70,7 +70,7 @@ function html_login_form() {
|
||||
$lang1 = lang();
|
||||
$maintitle=lang('title_admincp');
|
||||
$loginuser = $isguest ? '
|
||||
<div class="mb-3 has-feedback"><span class="mdi mdi-account" aria-hidden="true"></span><input class="form-control" name="admin_email" type="text" title="" onfocus="if(this.value==\'' . lang('login_email_username') . '\'){this.value=\'\'}" onblur="if(this.value==\'\'){this.value=\'' . lang('login_email_username') . '\'}" placeholder='. lang('login_email_username') . ' autocomplete="off" autofocus required/></div>' : '<div class="text-center username">' . $_G['member']['username'] . '</div><div class="text-center email">' . $_G['member']['email'] . '</div>';
|
||||
<div class="mb-3 has-feedback"><span class="mdi mdi-account" aria-hidden="true"></span><input class="form-control" name="admin_email" type="text" title="" onfocus="if(this.value==\'' . lang('login_email_username') . '\'){this.value=\'\'}" onblur="if(this.value==\'\'){this.value=\'' . lang('login_email_username') . '\'}" placeholder='. lang('login_email_username') . ' autocomplete="off" autofocus required/></div>' : '<div class="text-center email">' . $_G['member']['email'] . '</div>';
|
||||
$sid = getglobal('sid');
|
||||
$avatarstatus=getglobal('avatarstatus','member');
|
||||
if(!$uid){
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
<li class="nav-item"><a class="nav-link active" href="{MOD_URL}&op=smiley">{lang expression_class}</a> </li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="main-content clearfix table-responsive">
|
||||
<div class="main-content clearfix">
|
||||
<form id="appform" name="appform" action="{MOD_URL}&op=smiley" method="post">
|
||||
<input type="hidden" name="smileysubmit" value="true" />
|
||||
<input type="hidden" name="formhash" value="{FORMHASH}" />
|
||||
@@ -79,7 +79,6 @@
|
||||
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
|
||||
</div>
|
||||
</div>
|
||||
<a href="javascript:;" onclick="_header.leftTopmenu(this)" class="leftTopmenu add-menu dzz dzz-menu"></a>
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<a class="leftTopmenu navbar-brand" href="admin.php?mod=appmanagement">
|
||||
<a class="leftTopmenu" href="admin.php?mod=appmanagement">
|
||||
<div class="gb_fc"><span class="dzz dzz-chevron-left"></span></div>
|
||||
</a>
|
||||
<a class="leftTopmenu navbar-brand" href="javascript:;" onclick="_header.leftTopmenu(this)">
|
||||
<a class="leftTopmenu" href="javascript:;" onclick="_header.leftTopmenu(this)">
|
||||
{lang appname}
|
||||
</a>
|
||||
@@ -14,7 +14,7 @@ if(!defined('CORE_VERSION')) {
|
||||
define('CORE_VERSION', '2.02');
|
||||
define('CORE_RELEASE', '20180909');
|
||||
define('CORE_FIXBUG' , '20000000');
|
||||
define('CORE_XHVERSION', '1.88.7');
|
||||
define('CORE_XHRELEASE', '20240724');
|
||||
define('CORE_XHVERSION', '1.88.8');
|
||||
define('CORE_XHRELEASE', '20240725');
|
||||
define('CORE_XHFIXBUG' , '20240706');
|
||||
}
|
||||
@@ -33,6 +33,12 @@
|
||||
max-width: 50%;
|
||||
text-align: center;
|
||||
}
|
||||
.img-avatar {
|
||||
width: 96px;
|
||||
height: 96px;
|
||||
line-height: 96px;
|
||||
font-size: 46px;
|
||||
}
|
||||
<!--{if $_G[setting][loginset][kbcolor]}-->
|
||||
.card{
|
||||
background-color:$_G[setting][loginset][kbcolor];
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<header class="fixed-top lyear-layout-header">
|
||||
<nav class="navbar sticky-top navbar-dark navbar-expand-lg navbar-light">
|
||||
<div class="container-fluid">
|
||||
<div class="d-flex">
|
||||
<div class="container-fluid d-flex justify-content-between">
|
||||
<div class="text-truncate navbar-brand">
|
||||
<!--{template header_left}-->
|
||||
</div>
|
||||
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarScroll" aria-controls="navbarScroll" aria-expanded="false" aria-label="Toggle navigation">
|
||||
|
||||
@@ -132,6 +132,42 @@ $_G['setting']['statcode']
|
||||
}
|
||||
</script>
|
||||
<!--{/if}-->
|
||||
<script type="text/javascript">
|
||||
// 全局错误处理
|
||||
$(document).ready(function() {
|
||||
// 设置jQuery全局的Ajax错误处理
|
||||
$.ajaxSetup({
|
||||
error: function(xhr, textStatus, errorThrown) {
|
||||
var errorMsg = "Ajax Error: " + textStatus + ", " + errorThrown;
|
||||
showmessage(errorMsg, 'error', 3000, 1);
|
||||
}
|
||||
});
|
||||
// 保持原有的错误监听器
|
||||
window.addEventListener('error', function(event) {
|
||||
handleErrors(event);
|
||||
}, true);
|
||||
});
|
||||
|
||||
function handleErrors(event) {
|
||||
try {
|
||||
// 检查是否存在错误对象
|
||||
if (event.error && event.error.stack) {
|
||||
const stack = event.error.stack;
|
||||
// 过滤或脱敏stack信息(根据需要实现)
|
||||
reportError(stack);
|
||||
showmessage(stack, 'error', 3000, 1);
|
||||
} else if (event.target && (event.target.src || event.target.href)) {
|
||||
// 构造错误信息
|
||||
const errorMsg = "fail to load resource: " + (event.target.src || event.target.href);
|
||||
reportError(errorMsg);
|
||||
showmessage(errorMsg, 'error', 3000, 1);
|
||||
}
|
||||
} catch (error) {
|
||||
// 对reportError和showmessage的调用进行了异常捕获
|
||||
console.error("Failed to report or show error:", error);
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<script type="text/javascript" src="static/js/popper.min.js?{VERHASH}"></script>
|
||||
<script type="text/javascript" src="static/bootstrap/js/bootstrap.min.js?{VERHASH}"></script>
|
||||
<script type="text/javascript" src="static/js/main.min.js?{VERHASH}"></script>
|
||||
|
||||
@@ -138,6 +138,42 @@ try{
|
||||
}
|
||||
</script>
|
||||
<!--{/if}-->
|
||||
<script type="text/javascript">
|
||||
// 全局错误处理
|
||||
$(document).ready(function() {
|
||||
// 设置jQuery全局的Ajax错误处理
|
||||
$.ajaxSetup({
|
||||
error: function(xhr, textStatus, errorThrown) {
|
||||
var errorMsg = "Ajax Error: " + textStatus + ", " + errorThrown;
|
||||
showmessage(errorMsg, 'error', 3000, 1);
|
||||
}
|
||||
});
|
||||
// 保持原有的错误监听器
|
||||
window.addEventListener('error', function(event) {
|
||||
handleErrors(event);
|
||||
}, true);
|
||||
});
|
||||
|
||||
function handleErrors(event) {
|
||||
try {
|
||||
// 检查是否存在错误对象
|
||||
if (event.error && event.error.stack) {
|
||||
const stack = event.error.stack;
|
||||
// 过滤或脱敏stack信息(根据需要实现)
|
||||
reportError(stack);
|
||||
showmessage(stack, 'error', 3000, 1);
|
||||
} else if (event.target && (event.target.src || event.target.href)) {
|
||||
// 构造错误信息
|
||||
const errorMsg = "fail to load resource: " + (event.target.src || event.target.href);
|
||||
reportError(errorMsg);
|
||||
showmessage(errorMsg, 'error', 3000, 1);
|
||||
}
|
||||
} catch (error) {
|
||||
// 对reportError和showmessage的调用进行了异常捕获
|
||||
console.error("Failed to report or show error:", error);
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<script type="text/javascript" src="static/js/popper.min.js?{VERHASH}"></script>
|
||||
<script type="text/javascript" src="static/bootstrap/js/bootstrap.min.js?{VERHASH}"></script>
|
||||
<script type="text/javascript" src="static/js/main.min.js?{VERHASH}"></script>
|
||||
|
||||
@@ -18,6 +18,42 @@ try{
|
||||
<!--{if $_G['setting']['statcode']}-->
|
||||
$_G['setting']['statcode']
|
||||
<!--{/if}-->
|
||||
<script type="text/javascript">
|
||||
// 全局错误处理
|
||||
$(document).ready(function() {
|
||||
// 设置jQuery全局的Ajax错误处理
|
||||
$.ajaxSetup({
|
||||
error: function(xhr, textStatus, errorThrown) {
|
||||
var errorMsg = "Ajax Error: " + textStatus + ", " + errorThrown;
|
||||
showmessage(errorMsg, 'error', 3000, 1);
|
||||
}
|
||||
});
|
||||
// 保持原有的错误监听器
|
||||
window.addEventListener('error', function(event) {
|
||||
handleErrors(event);
|
||||
}, true);
|
||||
});
|
||||
|
||||
function handleErrors(event) {
|
||||
try {
|
||||
// 检查是否存在错误对象
|
||||
if (event.error && event.error.stack) {
|
||||
const stack = event.error.stack;
|
||||
// 过滤或脱敏stack信息(根据需要实现)
|
||||
reportError(stack);
|
||||
showmessage(stack, 'error', 3000, 1);
|
||||
} else if (event.target && (event.target.src || event.target.href)) {
|
||||
// 构造错误信息
|
||||
const errorMsg = "fail to load resource: " + (event.target.src || event.target.href);
|
||||
reportError(errorMsg);
|
||||
showmessage(errorMsg, 'error', 3000, 1);
|
||||
}
|
||||
} catch (error) {
|
||||
// 对reportError和showmessage的调用进行了异常捕获
|
||||
console.error("Failed to report or show error:", error);
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<script type="text/javascript" src="static/js/popper.min.js?{VERHASH}"></script>
|
||||
<script type="text/javascript" src="static/bootstrap/js/bootstrap.min.js?{VERHASH}"></script>
|
||||
<script type="text/javascript" src="static/js/main.min.js?{VERHASH}"></script>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<a class="leftTopmenu navbar-brand" href="{$_G[siteurl]}">
|
||||
<a class="leftTopmenu" href="{$_G[siteurl]}">
|
||||
<img src="<!--{if !$_G['setting']['bbclosed']}-->{eval echo $_G['setting']['sitelogo']?'index.php?mod=io&op=thumbnail&size=small&path='.dzzencode('attach::'.$_G['setting']['sitelogo']):'static/image/common/logo.png';}<!--{else}-->static/image/common/logo.png<!--{/if}-->" class="d-inline-block align-middle">
|
||||
$_G['setting']['sitename']
|
||||
</a>
|
||||
@@ -1,3 +1,3 @@
|
||||
<a class="leftTopmenu navbar-brand" onclick="_header.leftTopmenu(this)">
|
||||
<a class="leftTopmenu" onclick="_header.leftTopmenu(this)">
|
||||
<div class="gb_fc"><span class="dzz dzz-menu"></span></div>
|
||||
{eval echo lang(appname)}</a>
|
||||
@@ -45,11 +45,10 @@
|
||||
</div>
|
||||
<div class="main-content clearfix">
|
||||
<form id="appform" name="appform" class="form-horizontal " action="{MOD_URL}" method="post" >
|
||||
<input type="hidden" name="lpp" value="$lpp">
|
||||
<input type="hidden" name="lpp" value="$lpp">
|
||||
<input type="hidden" name="formhash" value="{FORMHASH}" />
|
||||
<input type="hidden" name="keyword" value="$keyword" />
|
||||
<div class="table-responsive-xxl">
|
||||
<table class="table table-hover">
|
||||
<input type="hidden" name="keyword" value="$keyword" />
|
||||
<table class="table table-hover">
|
||||
<thead node-type="title" class="title">
|
||||
<tr class="item clearfix">
|
||||
<th node-type="title-col" class="col">
|
||||
@@ -93,8 +92,7 @@
|
||||
<!--{/loop}-->
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="pull-left">
|
||||
<div class="pull-left">
|
||||
<div class="input-group mb-3">
|
||||
<span class="input-group-text">每页显示</span>
|
||||
<select class="form-select" onchange="if(this.options[this.selectedIndex].value != '') {this.form.lpp.value = this.options[this.selectedIndex].value;this.form.submit(); }">
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
<a class="leftTopmenu navbar-brand" onclick="_header.leftTopmenu(this)">
|
||||
<a class="leftTopmenu" onclick="_header.leftTopmenu(this)">
|
||||
<div class="gb_fc"><span class="dzz dzz-menu"></span></div>
|
||||
{lang appname}</a>
|
||||
@@ -1,4 +1,4 @@
|
||||
<a class="leftTopmenu navbar-brand" href="{$_G[siteurl]}">
|
||||
<a class="leftTopmenu" href="{$_G[siteurl]}">
|
||||
<img src="<!--{if !$_G['setting']['bbclosed']}-->{eval echo $_G['setting']['sitelogo']?'index.php?mod=io&op=thumbnail&size=small&path='.dzzencode('attach::'.$_G['setting']['sitelogo']):'static/image/common/logo.png';}<!--{else}-->static/image/common/logo.png<!--{/if}-->" class="d-inline-block align-middle">
|
||||
$_G['setting']['sitename']
|
||||
</a>
|
||||
@@ -1,14 +1,14 @@
|
||||
<!--{if $_GET[op]=='import' || $_GET[op]=='export'}-->
|
||||
<a class="leftTopmenu navbar-brand" href="{MOD_URL}">
|
||||
<a class="leftTopmenu" href="{MOD_URL}">
|
||||
<div class="gb_fc">
|
||||
<span class="dzz dzz-chevron-left"></span>
|
||||
</div>
|
||||
<!--{else}-->
|
||||
<a class="leftTopmenu navbar-brand" onclick="_header.leftTopmenu(this)">
|
||||
<a class="leftTopmenu" onclick="_header.leftTopmenu(this)">
|
||||
<div class="gb_fc"><span class="dzz dzz-menu"></span></div>
|
||||
</a>
|
||||
</a>
|
||||
<a class="leftTopmenu navbar-brand" href="javascript:;" onclick="_header.leftTopmenu(this)">
|
||||
<a class="leftTopmenu" href="javascript:;" onclick="_header.leftTopmenu(this)">
|
||||
<!--{/if}-->
|
||||
{lang appname}
|
||||
</a>
|
||||
@@ -1,3 +1,3 @@
|
||||
<a class="leftTopmenu navbar-brand" onclick="_header.leftTopmenu(this)">
|
||||
<a class="leftTopmenu" onclick="_header.leftTopmenu(this)">
|
||||
<div class="gb_fc"><span class="dzz dzz-menu"></span></div>
|
||||
{eval echo lang(appname)}</a>
|
||||
@@ -1,5 +1,5 @@
|
||||
<!--{if $_GET[op] == 'notification'}-->
|
||||
<a class="leftTopmenu navbar-brand" onclick="_header.leftTopmenu(this)">
|
||||
<a class="leftTopmenu" onclick="_header.leftTopmenu(this)">
|
||||
<div class="gb_fc"><span class="dzz dzz-menu"></span></div>
|
||||
{lang appname}</a>
|
||||
<!--{/if}-->
|
||||
4
static/bootstrap/css/bootstrap.min.css
vendored
4
static/bootstrap/css/bootstrap.min.css
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
2
static/css/style.min.css
vendored
2
static/css/style.min.css
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -33,7 +33,7 @@ if($_G['uid']>0){
|
||||
showmessage($messageText,$href);
|
||||
}
|
||||
if ($_G['setting']['loginset']['template'] == 4){
|
||||
$orgids=array('1','2');
|
||||
$orgids=array('1','2','3');
|
||||
if(isset($_GET['loginsubmit'])) {//是否提交
|
||||
if(in_array($_GET['uid'],$orgids)){
|
||||
if(C::t('user')->fetch_by_uid($_GET['uid'])){
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
<a href="javascript:;" class="leftTopmenu navbar-brand" onclick="_header.leftTopmenu(this)">
|
||||
<a href="javascript:;" class="leftTopmenu" onclick="_header.leftTopmenu(this)">
|
||||
<div class="gb_fc"><span class="dzz dzz-menu"></span></div>
|
||||
{lang myCountCenter}</a>
|
||||
Reference in New Issue
Block a user