beego跳转(仿Thinkphp的跳转)

今天写了个beego仿thinkphp的跳转,上代码先

base.go

/*
* 成功跳转
 */
func (this *BaseController) Success(msg string, url string, wait int) {
	data := make(map[string]interface{})
	data["type"] = true
	data["title"] = "提示信息"
	data["msg"] = msg
	data["wait"] = wait
	if url == "-1" {
		url = this.Ctx.Request.Referer()
	} else if url == "-2" {
		url = this.Ctx.Request.Referer()
	}
	data["url"] = url
	this.Data["mess"] = data
	this.TplNames = "message.html"

}

/*
* 失败跳转
 */
func (this *BaseController) Error(msg string, url string, wait int) {
	data := make(map[string]interface{})
	data["type"] = false
	data["title"] = "错误提示"
	data["msg"] = msg
	data["wait"] = wait
	if url == "-1" {
		url = this.Ctx.Request.Referer()
	} else if url == "-2" {
		url = this.Ctx.Request.Referer()
	}

	data["url"] = url
	this.Data["mess"] = data
	this.TplNames = "message.html"

}

/*
* Ajax返回
*
 */
func (this *BaseController) AjaxReturn(status int, msg string, data interface{}) {
	json := make(map[string]interface{})
	json["status"] = status
	json["msg"] = msg
	json["data"] = data
	this.Data["json"] = json
	this.ServeJson()
	return
}



message.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>跳转提示</title>
<style type="text/css">
*{ padding: 0; margin: 0; }
body{ background: #fff; font-family: '微软雅黑'; color: #333; font-size: 16px; }
.system-message{ width:500px;height:100px; margin:auto;border:6px solid #999;text-align:center; position:relative;top:50px;}
.system-message legend{font-size:24px;font-weight:bold;color:#999;margin:auto;width:100px;}
.system-message h1{ font-size: 100px; font-weight: normal; line-height: 120px; margin-bottom: 12px; }
.system-message .jump{ padding-right:10px;height:25px;line-height:25px;font-size:14px;position:absolute;bottom:0px;left:0px;background-color:#e6e6e1 ; display:block;width:490px;text-align:right;}
.system-message .jump a{ color: #333;}
.system-message .success,.system-message .error{ line-height: 1.8em; font-size: 15px }
.system-message .detail{ font-size: 12px; line-height: 20px; margin-top: 12px; display:none}
</style>
</head>
<body>
<fieldset class="system-message">
    <legend>{{.mess.title}}</legend>
    <div style="text-align:left;padding-left:10px;height:75px;width:490px;  ">
        
        {{if .mess.type}}
        <p class="success">恭喜^_^!~{{.mess.msg}}</p>
        {{else}}
        <p class="error">Sorry!~{{.mess.msg}}</p>
        {{end}}
        <p class="detail"></p>
        
    </div>
    <p class="jump">
        页面自动 <a id="href" href="{{.mess.url}}">跳转</a> 等待时间: <b id="wait">{{.mess.wait}}</b>
    </p>
</fieldset>
<div id="myurl" style="display:none;">{{.mess.url}}</div>
<script type="text/javascript">
    
(function(){
    document.getElementById('href').href = document.getElementById('myurl').innerHTML;
var wait = document.getElementById('wait'),href = document.getElementById('href').href;
totaltime=parseInt(wait.innerHTML);
var interval = setInterval(function(){
	var time = --totaltime;
        wait.innerHTML=""+time;
	if(time === 0) {
		location.href = href;
        //location.reload();
		clearInterval(interval);
	};
}, 1000);
})();

</script>
</body>
</html>



你可能感兴趣的:(beego跳转(仿Thinkphp的跳转))