更新完成全部ajax获取数据

pull/30/head
taoshihan1991 5 years ago
parent 42500db064
commit a450c67b96

@ -5,7 +5,6 @@ import (
"fmt"
"github.com/taoshihan1991/imaptool/tmpl"
"github.com/taoshihan1991/imaptool/tools"
"html/template"
"log"
"net/http"
"strconv"
@ -55,7 +54,25 @@ func index(w http.ResponseWriter, r *http.Request) {
//输出列表
func list(w http.ResponseWriter, r *http.Request) {
tmpl.RenderList(w, nil)
values := r.URL.Query()
fid := ""
currentPage := 0
if len(values["fid"]) != 0 {
fid = values["fid"][0]
}
if len(values["page"]) != 0 {
currentPage, _ = strconv.Atoi(values["page"][0])
}
if fid == "" {
fid = "INBOX"
}
if currentPage == 0 {
currentPage = 1
}
render := new(tools.IndexData)
render.CurrentPage = currentPage
render.Fid = fid
tmpl.RenderList(w, render)
}
//详情界面
@ -74,28 +91,30 @@ func view(w http.ResponseWriter, r *http.Request) {
} else {
id = 0
}
mailServer:=tools.GetMailServerFromCookie(r)
var wg sync.WaitGroup
//
//mailServer:=tools.GetMailServerFromCookie(r)
//var wg sync.WaitGroup
var render = new(tools.ViewData)
wg.Add(1)
go func() {
defer wg.Done()
folders := tools.GetFolders(mailServer.Server, mailServer.Email, mailServer.Password, fid)
render.Folders = folders
render.Fid = fid
}()
wg.Add(1)
go func() {
defer wg.Done()
mail := tools.GetMessage(mailServer.Server, mailServer.Email, mailServer.Password, fid, id)
render.From = mail.From
render.To = mail.To
render.Subject = mail.Subject
render.Date = mail.Date
render.HtmlBody = template.HTML(mail.Body)
}()
wg.Wait()
render.Id = id
//wg.Add(1)
//go func() {
// defer wg.Done()
// folders := tools.GetFolders(mailServer.Server, mailServer.Email, mailServer.Password, fid)
// render.Folders = folders
// render.Fid = fid
//}()
//wg.Add(1)
//go func() {
// defer wg.Done()
// mail := tools.GetMessage(mailServer.Server, mailServer.Email, mailServer.Password, fid, id)
// render.From = mail.From
// render.To = mail.To
// render.Subject = mail.Subject
// render.Date = mail.Date
// render.HtmlBody = template.HTML(mail.Body)
//}()
//wg.Wait()
tmpl.RenderView(w, render)
}
@ -146,6 +165,7 @@ func check(w http.ResponseWriter, r *http.Request) {
w.Write(msg)
}
}
//邮件夹接口
func folders(w http.ResponseWriter, r *http.Request) {
values := r.URL.Query()
@ -196,6 +216,7 @@ func folders(w http.ResponseWriter, r *http.Request) {
})
w.Write(msg)
}
//邮件接口
func mail(w http.ResponseWriter, r *http.Request) {
values := r.URL.Query()
@ -247,4 +268,3 @@ func mail(w http.ResponseWriter, r *http.Request) {
})
w.Write(msg)
}

@ -7,7 +7,6 @@
<title>GO-IMAP网页版邮箱imap工具</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/element-ui@2.13.1/lib/theme-chalk/index.css">
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script src="https://cdn.jsdelivr.net/npm/vue-router/dist/vue-router.js"></script>
<script src="https://cdn.jsdelivr.net/npm/element-ui@2.13.1/lib/index.js"></script>
<script src="https://cdn.jsdelivr.net/npm/jquery/dist/jquery.min.js"></script>
<style>
@ -42,6 +41,9 @@
margin-left: 10px;
margin-bottom: 60px;
}
.el-card__body{
cursor: pointer;
}
</style>
</head>
@ -90,27 +92,14 @@
:total="mailTotal">
</el-pagination>
</el-main>
<router-view></router-view>
</el-container>
</template>
<template id="mailList">
<div>aaa</div>
</template>
</div>
</body>
<script>
const list = { template: mailList };
const view = { template: '<div>bbb</div>' };
const routes = [
{ path: '/', component: list },
{ path: '/view', component: view }
];
const router = new VueRouter({
routes // (缩写) 相当于 routes: routes
})
new Vue({
router,
el: '#app',
delimiters:["<{","}>"],
data: {
@ -151,7 +140,7 @@
},
},
created: function () {
this.getFolders();
this.getFolders({{.CurrentPage}},{{.Fid}});
}
})

@ -9,5 +9,5 @@ import (
func RenderList(w http.ResponseWriter, render interface{}) {
html := tools.FileGetContent("html/list.html")
t, _ := template.New("list").Parse(html)
t.Execute(w,nil)
t.Execute(w, render)
}

@ -4,6 +4,7 @@ import (
"net/http"
"strings"
)
func SetCookie(name string, value string, w *http.ResponseWriter) {
cookie := http.Cookie{
Name: name,
@ -33,4 +34,3 @@ func GetMailServerFromCookie(r *http.Request)*MailServer{
}
return mailServer
}

@ -4,6 +4,7 @@ import (
"fmt"
"mime"
)
func main() {
dec := new(mime.WordDecoder)
header, err := dec.DecodeHeader("=?utf-8?q?=C3=89ric?= <eric@example.org>, =?utf-8?q?Ana=C3=AFs?= <anais@example.org>")

@ -1,6 +1,7 @@
package tools
import "html/template"
type MailServer struct {
Server, Email, Password string
}

Loading…
Cancel
Save