Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Alderaan
pan-light
提交
36c7f910
P
pan-light
项目概览
Alderaan
/
pan-light
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
pan-light
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
36c7f910
编写于
6月 22, 2019
作者:
P
peterq
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add: 问题反馈页面
上级
bb54ee5c
变更
8
隐藏空白更改
内联
并排
Showing
8 changed file
with
204 addition
and
22 deletion
+204
-22
pc/functions/base.go
pc/functions/base.go
+17
-1
pc/gui/qml/js/util.js
pc/gui/qml/js/util.js
+15
-0
pc/gui/qml/pages/feedback-window.qml
pc/gui/qml/pages/feedback-window.qml
+78
-0
pc/gui/qml/qml.qrc
pc/gui/qml/qml.qrc
+2
-0
pc/gui/qml/widget/TopIndicator.qml
pc/gui/qml/widget/TopIndicator.qml
+66
-0
pc/gui/qml/widget/VirtualFrame.qml
pc/gui/qml/widget/VirtualFrame.qml
+20
-19
pc/server-api/server-api.go
pc/server-api/server-api.go
+4
-1
server/artisan/web.go
server/artisan/web.go
+2
-1
未找到文件。
pc/functions/base.go
浏览文件 @
36c7f910
...
...
@@ -104,12 +104,28 @@ var baseAsyncRoutes = map[string]asyncHandler{
"secret"
:
secret
,
"token"
:
token
,
})
storage
.
UserState
.
Token
=
jwt
.
(
string
)
if
err
!=
nil
{
reject
(
err
)
return
}
storage
.
UserState
.
Token
=
jwt
.
(
string
)
log
.
Println
(
jwt
)
resolve
(
jwt
)
},
"api.call"
:
func
(
p
map
[
string
]
interface
{},
resolve
func
(
interface
{}),
reject
func
(
interface
{}),
progress
func
(
interface
{}),
qmlMsg
chan
interface
{})
{
data
,
err
:=
server_api
.
Call
(
p
[
"name"
]
.
(
string
),
p
[
"param"
]
.
(
gson
))
if
err
!=
nil
{
if
data
==
nil
{
data
=
gson
{
"success"
:
false
,
"message"
:
err
.
Error
(),
"code"
:
-
1
,
}
}
reject
(
data
)
return
}
resolve
(
data
)
},
}
pc/gui/qml/js/util.js
浏览文件 @
36c7f910
...
...
@@ -433,3 +433,18 @@ var openAbout = (function () {
return
ins
}
})()
var
openFeedback
=
(
function
()
{
var
comp
=
loadComponent
(
function
(){},
'
../pages/feedback-window.qml
'
)
var
ins
return
function
(){
if
(
!
ins
||
!
ins
.
visible
)
{
ins
=
comp
.
createObject
(
G
.
root
)
}
return
ins
}
})()
function
api
(
name
,
param
)
{
return
callGoAsync
(
'
api.call
'
,
{
name
:
name
,
param
:
param
})
}
pc/gui/qml/pages/feedback-window.qml
0 → 100644
浏览文件 @
36c7f910
import
QtQuick
2.0
import
QtQuick
.
Window
2.2
import
QtQuick
.
Controls
2.2
import
QtQuick
.
Layouts
1.3
import
"
../js/app.js
"
as
App
import
"
../js/util.js
"
as
Util
import
"
../widget
"
Window
{
id
:
window
flags
:
Qt
.
Dialog
|
Qt
.
WindowModal
|
Qt
.
WindowCloseButtonHint
modality
:
Qt
.
ApplicationModal
title
:
'
反馈
'
minimumHeight
:
height
minimumWidth
:
width
maximumHeight
:
height
maximumWidth
:
width
visible
:
true
width
:
550
height
:
300
Component.onCompleted
:
{
visible
=
true
requestActivate
()
}
onVisibleChanged
:
{
if
(
!
visible
)
{
window
.
destroy
()
}
}
TopIndicator
{
id
:
topIndicator
z
:
2
}
Column
{
y
:
10
width
:
parent
.
width
*
0.8
anchors.horizontalCenter
:
parent
.
horizontalCenter
spacing
:
10
TextArea
{
id
:
input
width
:
parent
.
width
height
:
200
placeholderText
:
'
请输入反馈内容
'
focus
:
true
background
:
Rectangle
{
color
:
'
#eee
'
}
}
Button
{
text
:
'
提交
'
onClicked
:
{
var
content
=
input
.
text
.
trim
()
if
(
!
content
)
return
enabled
=
false
text
=
'
提交中
'
Util
.
api
(
'
feedback
'
,
{
content
:
content
})
.
then
(
function
()
{
topIndicator
.
success
(
'
提交成功
'
)
return
Util
.
sleep
(
1000
)
})
.
then
(
function
()
{
window
.
visible
=
false
})
.
catch
(
function
(
error
)
{
topIndicator
.
fail
(
error
.
message
)
text
=
'
提交
'
enabled
=
true
})
}
}
}
}
pc/gui/qml/qml.qrc
浏览文件 @
36c7f910
...
...
@@ -166,5 +166,7 @@
<file>assets/images/icons/baidu-cloud.svg</file>
<file>pages/setting-window.qml</file>
<file>pages/about-window.qml</file>
<file>pages/feedback-window.qml</file>
<file>widget/TopIndicator.qml</file>
</qresource>
</RCC>
pc/gui/qml/widget/TopIndicator.qml
0 → 100644
浏览文件 @
36c7f910
import
QtQuick
2.0
Rectangle
{
id
:
root
property
color
successColor
:
'
green
'
property
color
failColor
:
'
red
'
property
color
warningColor
:
'
orange
'
property
alias
duration
:
hideTimer
.
interval
width
:
parent
.
width
height
:
40
y
:
-
height
Text
{
id
:
msgText
text
:
''
color
:
'
white
'
anchors.centerIn
:
parent
}
MouseArea
{
id
:
ma
anchors.fill
:
parent
hoverEnabled
:
true
}
Timer
{
id
:
hideTimer
interval
:
2500
running
:
false
onTriggered
:
{
if
(
ma
.
containsMouse
)
{
restart
()
return
}
y
=
-
height
}
}
Behavior
on
y
{
PropertyAnimation
{
duration
:
200
}
}
function
success
(
msg
)
{
color
=
successColor
show
(
msg
)
}
function
fail
(
msg
)
{
color
=
failColor
show
(
msg
)
}
function
warn
(
msg
)
{
color
=
warningColor
show
(
msg
)
}
function
show
(
msg
)
{
y
=
0
msgText
.
text
=
msg
hideTimer
.
restart
()
}
}
pc/gui/qml/widget/VirtualFrame.qml
浏览文件 @
36c7f910
...
...
@@ -63,6 +63,25 @@ Item {
App
.
appState
.
floatWindow
.
visible
=
!
App
.
appState
.
floatWindow
.
visible
}
}
MenuItem
{
text
:
'
设置
'
onTriggered
:
{
Util
.
openSetting
()
}
}
MenuItem
{
text
:
'
关于
'
onTriggered
:
{
Util
.
openAbout
()
}
}
MenuItem
{
text
:
'
问题反馈
'
onTriggered
:
{
Util
.
openFeedback
()
}
}
MenuItem
{
text
:
'
登出账号
'
onTriggered
:
{
...
...
@@ -101,25 +120,7 @@ Item {
}
}
MenuItem
{
text
:
'
设置
'
onTriggered
:
{
Util
.
openSetting
()
}
}
MenuItem
{
text
:
'
关于
'
onTriggered
:
{
Util
.
openAbout
()
}
}
MenuItem
{
text
:
'
问题反馈
'
onTriggered
:
{
}
}
MenuItem
{
text
:
'
重启
'
text
:
'
重启程序
'
onTriggered
:
Util
.
callGoSync
(
"
reboot
"
)
}
MenuItem
{
...
...
pc/server-api/server-api.go
浏览文件 @
36c7f910
...
...
@@ -3,10 +3,10 @@ package server_api
import
(
"bytes"
"encoding/json"
"errors"
"fmt"
"github.com/peterq/pan-light/pc/dep"
"github.com/peterq/pan-light/pc/storage"
"github.com/pkg/errors"
"io/ioutil"
"net/http"
)
...
...
@@ -16,6 +16,7 @@ type gson = map[string]interface{}
var
urlMap
=
map
[
string
]
string
{
"login-token"
:
"/api/pc/login-token"
,
"login"
:
"/api/pc/login"
,
"feedback"
:
"/api/pc/feedback"
,
}
var
httpClient
=
http
.
Client
{
//Timeout: 15 * time.Second,
...
...
@@ -46,6 +47,8 @@ func Call(name string, param map[string]interface{}) (result interface{}, err er
return
ret
,
errors
.
New
(
fmt
.
Sprint
(
"api error("
,
ret
[
"code"
],
"): "
,
ret
[
"message"
]))
}
result
=
ret
[
"result"
]
}
else
{
err
=
errors
.
Wrap
(
err
,
"json resp invalid"
)
}
return
}
server/artisan/web.go
浏览文件 @
36c7f910
...
...
@@ -51,9 +51,10 @@ func ApiRecover(ctx context.Context) {
}
// 转换为 app error
if
appErr
,
ok
=
e
.
(
AppError
);
!
ok
{
if
appErr
,
ok
=
e
rr
.
(
AppError
);
!
ok
{
ctx
.
StatusCode
(
iris
.
StatusInternalServerError
)
appErr
=
NewError
(
"internal server error"
,
500
,
err
)
ctx
.
Application
()
.
Logger
()
.
Error
(
err
)
}
ctx
.
JSON
(
map
[
string
]
interface
{}{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录