切换导航条
此项目
正在载入...
登录
何书鹏
/
recruit
·
提交
转到一个项目
GitLab
转到仪表盘
项目
活动
文件
提交
管道
0
构建
0
图表
里程碑
问题
0
合并请求
0
成员
标记
维基
派生
网络
创建新的问题
下载为
邮件补丁
差异文件
浏览文件
作者
Karson
8 years ago
提交
368e95430eaee93497288f285e5c1190e6399f66
1 个父辈
41075e2d
新增安装脚本自动创建数据库
更新左侧菜单没按权限显示的BUG 更新后台语言包 更新JS中错误提示调用字段不正确的BUG 提示方法统一都采用Toastr来提示
隐藏空白字符变更
内嵌
并排对比
正在显示
16 个修改的文件
包含
282 行增加
和
157 行删除
application/admin/command/Install.php
application/admin/controller/Index.php
application/admin/lang/zh-cn.php
application/admin/lang/zh-cn/index.php
application/admin/library/Auth.php
application/extra/upload.php
public/assets/js/backend.js
public/assets/js/backend/auth/rule.js
public/assets/js/backend/general/configvalue.js
public/assets/js/backend/wechat/menu.js
public/assets/js/frontend.js
public/assets/js/require-backend.min.js
public/assets/js/require-form.js
public/assets/js/require-frontend.min.js
public/assets/js/require-table.js
public/assets/js/require-upload.js
application/admin/command/Install.php
查看文件 @
368e954
...
...
@@ -2,6 +2,8 @@
namespace
app\admin\command
;
use
PDO
;
use
think\Config
;
use
think\console\Command
;
use
think\console\Input
;
use
think\console\input\Option
;
...
...
@@ -36,6 +38,12 @@ class Install extends Command
$sql
=
file_get_contents
(
__DIR__
.
'/Install/fastadmin.sql'
);
// 先尝试能否自动创建数据
$config
=
Config
::
get
(
'database'
);
$pdo
=
new
PDO
(
"
{
$config
[
'type'
]}
:
host
=
{
$config
[
'hostname'
]}
",
$config['username']
,
$config['password']
);
$pdo->setAttribute
(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo->query
("
CREATE
DATABASE
IF
NOT
EXISTS
`{$config['database']}`
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
;
");
// 查询一次SQL,判断连接是否正常
Db::execute("
SELECT
1
");
...
...
application/admin/controller/Index.php
查看文件 @
368e954
...
...
@@ -101,7 +101,7 @@ class Index extends Backend
public
function
logout
()
{
$this
->
auth
->
logout
();
$this
->
success
(
__
(
'Logout success
!
'
),
'index/login'
);
$this
->
success
(
__
(
'Logout success
ful
'
),
'index/login'
);
return
;
}
...
...
application/admin/lang/zh-cn.php
查看文件 @
368e954
...
...
@@ -102,13 +102,6 @@ return [
'Please enter your username'
=>
'请输入你的用户名'
,
'Please enter your password'
=>
'请输入你的密码'
,
'Please login first'
=>
'请登录后操作'
,
'You\'ve logged in, do not login again'
=>
'你已经登录,无需重复登录'
,
'Username or password can not be empty'
=>
'用户名密码不能为空'
,
'Username or password is incorrect'
=>
'用户名或密码不正确'
,
'Username is incorrect'
=>
'用户名不正确'
,
'Password is incorrect'
=>
'密码不正确'
,
'Login successful'
=>
'登录成功!'
,
'Verification code is incorrect'
=>
'验证码不正确'
,
'An unexpected error occurred'
=>
'发生了一个意外错误,程序猿正在紧急处理中'
,
'This page will be re-directed in %s seconds'
=>
'页面将在 %s 秒后自动跳转'
,
];
...
...
application/admin/lang/zh-cn/index.php
查看文件 @
368e954
...
...
@@ -20,4 +20,12 @@ return [
'Disable top menu badge'
=>
'禁用顶部彩色小角标'
,
'Disable top menu badge without left menu'
=>
'左边菜单栏的彩色小角标不受影响'
,
'Skins'
=>
'皮肤'
,
'You\'ve logged in, do not login again'
=>
'你已经登录,无需重复登录'
,
'Username or password can not be empty'
=>
'用户名密码不能为空'
,
'Username or password is incorrect'
=>
'用户名或密码不正确'
,
'Username is incorrect'
=>
'用户名不正确'
,
'Password is incorrect'
=>
'密码不正确'
,
'Login successful'
=>
'登录成功!'
,
'Logout successful'
=>
'退出成功!'
,
'Verification code is incorrect'
=>
'验证码不正确'
,
];
...
...
application/admin/library/Auth.php
查看文件 @
368e954
...
...
@@ -248,7 +248,6 @@ class Auth extends \fast\Auth
// 读取管理员当前拥有的权限节点
$userRule
=
$this
->
getRuleList
();
$select_id
=
0
;
$dashboard
=
'/'
.
$module
.
'/dashboard'
;
// 必须将结果集转换为数组
...
...
@@ -256,7 +255,10 @@ class Auth extends \fast\Auth
foreach
(
$ruleList
as
$k
=>
&
$v
)
{
if
(
!
in_array
(
$v
[
'name'
],
$userRule
))
{
unset
(
$ruleList
[
$k
]);
continue
;
}
$select_id
=
$v
[
'name'
]
==
$dashboard
?
$v
[
'id'
]
:
$select_id
;
$v
[
'url'
]
=
$v
[
'name'
];
$v
[
'badge'
]
=
isset
(
$badgeList
[
$v
[
'name'
]])
?
$badgeList
[
$v
[
'name'
]]
:
''
;
...
...
application/extra/upload.php
查看文件 @
368e954
...
...
@@ -39,6 +39,10 @@ return [
*/
'mimetype'
=>
'*'
,
/**
* 是否支持批量上传
*/
'multiple'
=>
true
,
/**
* 又拍云操作员用户名
*/
'username'
=>
''
,
...
...
public/assets/js/backend.js
查看文件 @
368e954
...
...
@@ -26,20 +26,21 @@ define(['jquery', 'bootstrap', 'toastr', 'layer', 'lang', 'config'], function ($
options
=
$
.
extend
({
type
:
"POST"
,
dataType
:
'json'
,
success
:
function
(
data
)
{
success
:
function
(
ret
)
{
Backend
.
api
.
layer
.
close
(
index
);
if
(
data
.
hasOwnProperty
(
"code"
))
{
var
content
=
data
.
hasOwnProperty
(
"content"
)
&&
data
.
content
!=
""
?
data
.
content
:
""
;
if
(
data
.
code
===
1
)
{
if
(
ret
.
hasOwnProperty
(
"code"
))
{
var
data
=
ret
.
hasOwnProperty
(
"data"
)
&&
ret
.
data
!=
""
?
ret
.
data
:
null
;
var
msg
=
ret
.
hasOwnProperty
(
"msg"
)
&&
ret
.
msg
!=
""
?
ret
.
msg
:
""
;
if
(
ret
.
code
===
1
)
{
if
(
typeof
success
==
'function'
)
{
var
onAfterResult
=
success
.
call
(
undefined
,
content
);
var
onAfterResult
=
success
.
call
(
undefined
,
data
);
if
(
!
onAfterResult
)
{
return
false
;
}
}
Toastr
.
success
(
content
?
content
:
__
(
'Operation completed'
));
Toastr
.
success
(
msg
?
msg
:
__
(
'Operation completed'
));
}
else
{
Toastr
.
error
(
content
?
content
:
__
(
'Operation failed'
));
Toastr
.
error
(
msg
?
msg
:
__
(
'Operation failed'
));
}
}
else
{
Toastr
.
error
(
__
(
'Unknown data format'
));
...
...
@@ -87,14 +88,23 @@ define(['jquery', 'bootstrap', 'toastr', 'layer', 'lang', 'config'], function ($
processData
:
false
,
type
:
'POST'
,
dataType
:
'json'
,
success
:
function
(
data
)
{
if
(
data
.
hasOwnProperty
(
"code"
))
{
var
content
=
data
.
hasOwnProperty
(
"content"
)
&&
data
.
content
!=
""
?
data
.
content
:
""
;
if
(
data
.
code
===
1
)
{
$
(
'.summernote'
).
summernote
(
"insertImage"
,
data
.
content
,
'filename'
);
success
:
function
(
ret
)
{
if
(
ret
.
hasOwnProperty
(
"code"
))
{
var
data
=
ret
.
hasOwnProperty
(
"data"
)
&&
ret
.
data
!=
""
?
ret
.
data
:
null
;
var
msg
=
ret
.
hasOwnProperty
(
"msg"
)
&&
ret
.
msg
!=
""
?
ret
.
msg
:
""
;
if
(
ret
.
code
===
1
)
{
if
(
typeof
callback
==
'function'
)
{
var
onAfterResult
=
success
.
call
(
undefined
,
data
);
if
(
!
onAfterResult
)
{
return
false
;
}
}
if
(
$
(
'.summernote'
).
size
()
>
0
&&
data
&&
typeof
data
.
url
!==
'undefined'
)
{
$
(
'.summernote'
).
summernote
(
"insertImage"
,
data
.
url
,
'filename'
);
}
Toastr
.
success
(
__
(
'Operation completed'
));
}
else
{
Toastr
.
error
(
content
?
content
:
__
(
'Operation failed'
));
Toastr
.
error
(
msg
?
msg
:
__
(
'Operation failed'
));
}
}
else
{
Toastr
.
error
(
__
(
'Unknown data format'
));
...
...
public/assets/js/backend/auth/rule.js
查看文件 @
368e954
...
...
@@ -95,10 +95,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form', 'template'], function
var
data
=
get_children
(
$
(
"#treeview"
).
jstree
(
'get_json'
));
Backend
.
api
.
ajax
({
url
:
"auth/rule/rebuild"
,
data
:
{
step
:
2
,
data
:
data
}},
function
(
content
)
{
Backend
.
api
.
layer
.
close
(
index
);
Backend
.
api
.
success
(
function
()
{
//刷新页面
top
.
location
.
reload
();
});
top
.
location
.
reload
();
});
}
});
...
...
public/assets/js/backend/general/configvalue.js
查看文件 @
368e954
...
...
@@ -42,7 +42,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
url
:
'ajax/clearcache'
},
function
(
ret
)
{
Layer
.
closeAll
();
Backend
.
api
.
success
(
);
Toastr
.
success
(
__
(
'Operation completed'
)
);
});
});
});
...
...
public/assets/js/backend/wechat/menu.js
查看文件 @
368e954
...
...
@@ -133,7 +133,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form', 'sortable'], function
$
.
post
(
"wechat/menu/edit"
,
{
menu
:
JSON
.
stringify
(
getMenuList
())},
function
(
data
)
{
if
(
data
[
'code'
]
==
1
)
{
}
else
{
Backend
.
api
.
error
(
);
Toastr
.
error
(
__
(
'Operation failed'
)
);
}
},
'json'
);
};
...
...
@@ -253,11 +253,13 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form', 'sortable'], function
updateChangeMenu
();
});
$
(
document
).
on
(
'click'
,
"#menuSyn"
,
function
()
{
$
.
post
(
"wechat/menu/sync"
,
{},
function
(
data
)
{
if
(
data
[
'code'
]
==
1
)
{
$
.
post
(
"wechat/menu/sync"
,
{},
function
(
ret
)
{
var
msg
=
ret
.
hasOwnProperty
(
"msg"
)
&&
ret
.
msg
!=
""
?
ret
.
msg
:
""
;
if
(
ret
.
code
==
1
)
{
Backend
.
api
.
toastr
.
success
(
'菜单同步更新成功,生效时间看微信官网说明,或者你重新关注微信号!'
);
}
else
{
Backend
.
api
.
toastr
.
error
(
data
[
'content'
]
);
Backend
.
api
.
toastr
.
error
(
msg
?
msg
:
__
(
'Operation failed'
)
);
}
},
'json'
);
});
...
...
public/assets/js/frontend.js
查看文件 @
368e954
define
([
'jquery'
,
'bootstrap'
,
'toastr'
,
'layer'
,
'
config'
],
function
(
$
,
undefined
,
Toastr
,
Layer
,
Config
)
{
define
([
'jquery'
,
'bootstrap'
,
'toastr'
,
'layer'
,
'
lang'
,
'config'
],
function
(
$
,
undefined
,
Toastr
,
Layer
,
Lang
,
Config
)
{
var
Frontend
=
{
config
:
{
//toastr默认配置
...
...
@@ -26,20 +26,21 @@ define(['jquery', 'bootstrap', 'toastr', 'layer', 'config'], function ($, undefi
options
=
$
.
extend
({
type
:
"POST"
,
dataType
:
'json'
,
success
:
function
(
data
)
{
success
:
function
(
ret
)
{
Frontend
.
api
.
layer
.
close
(
index
);
if
(
data
.
hasOwnProperty
(
"code"
))
{
var
content
=
data
.
hasOwnProperty
(
"content"
)
&&
data
.
content
!=
""
?
data
.
content
:
""
;
if
(
data
.
code
==
0
)
{
if
(
ret
.
hasOwnProperty
(
"code"
))
{
var
data
=
ret
.
hasOwnProperty
(
"data"
)
&&
ret
.
data
!=
""
?
ret
.
data
:
null
;
var
msg
=
ret
.
hasOwnProperty
(
"msg"
)
&&
ret
.
msg
!=
""
?
ret
.
msg
:
""
;
if
(
ret
.
code
===
1
)
{
if
(
typeof
success
==
'function'
)
{
var
onAfterResult
=
success
.
call
(
undefined
,
content
);
var
onAfterResult
=
success
.
call
(
undefined
,
data
);
if
(
!
onAfterResult
)
{
return
false
;
}
}
Toastr
.
success
(
content
?
content
:
__
(
'Operation completed'
));
Toastr
.
success
(
msg
?
msg
:
__
(
'Operation completed'
));
}
else
{
Toastr
.
error
(
content
?
content
:
__
(
'Operation failed'
));
Toastr
.
error
(
msg
?
msg
:
__
(
'Operation failed'
));
}
}
else
{
Toastr
.
error
(
__
(
'Unknown data format'
));
...
...
@@ -56,11 +57,25 @@ define(['jquery', 'bootstrap', 'toastr', 'layer', 'config'], function ($, undefi
if
(
url
.
substr
(
0
,
1
)
!==
"/"
)
{
var
r
=
new
RegExp
(
'^(?:[a-z]+:)?//'
,
'i'
);
if
(
!
r
.
test
(
url
))
{
url
=
(
Config
.
moduleurl
)
+
"/"
+
url
;
url
=
Config
.
moduleurl
+
"/"
+
url
;
}
}
return
url
;
},
//查询Url参数
query
:
function
(
name
,
url
)
{
if
(
!
url
)
{
url
=
window
.
location
.
href
;
}
name
=
name
.
replace
(
/
[\[\]]
/g
,
"\\$&"
);
var
regex
=
new
RegExp
(
"[?&]"
+
name
+
"(=([^&#]*)|&|#|$)"
),
results
=
regex
.
exec
(
url
);
if
(
!
results
)
return
null
;
if
(
!
results
[
2
])
return
''
;
return
decodeURIComponent
(
results
[
2
].
replace
(
/
\+
/g
,
" "
));
},
//上传文件
upload
:
function
(
file
,
callback
)
{
var
data
=
new
FormData
();
...
...
@@ -73,14 +88,23 @@ define(['jquery', 'bootstrap', 'toastr', 'layer', 'config'], function ($, undefi
processData
:
false
,
type
:
'POST'
,
dataType
:
'json'
,
success
:
function
(
data
)
{
if
(
data
.
hasOwnProperty
(
"code"
))
{
var
content
=
data
.
hasOwnProperty
(
"content"
)
&&
data
.
content
!=
""
?
data
.
content
:
""
;
if
(
data
.
code
==
0
)
{
$
(
'.summernote'
).
summernote
(
"insertImage"
,
data
.
content
,
'filename'
);
success
:
function
(
ret
)
{
if
(
ret
.
hasOwnProperty
(
"code"
))
{
var
data
=
ret
.
hasOwnProperty
(
"data"
)
&&
ret
.
data
!=
""
?
ret
.
data
:
null
;
var
msg
=
ret
.
hasOwnProperty
(
"msg"
)
&&
ret
.
msg
!=
""
?
ret
.
msg
:
""
;
if
(
ret
.
code
===
1
)
{
if
(
typeof
callback
==
'function'
)
{
var
onAfterResult
=
success
.
call
(
undefined
,
data
);
if
(
!
onAfterResult
)
{
return
false
;
}
}
if
(
$
(
'.summernote'
).
size
()
>
0
&&
data
&&
typeof
data
.
url
!==
'undefined'
)
{
$
(
'.summernote'
).
summernote
(
"insertImage"
,
data
.
url
,
'filename'
);
}
Toastr
.
success
(
__
(
'Operation completed'
));
}
else
{
Toastr
.
error
(
content
?
content
:
__
(
'Operation failed'
));
Toastr
.
error
(
msg
?
msg
:
__
(
'Operation failed'
));
}
}
else
{
Toastr
.
error
(
__
(
'Unknown data format'
));
...
...
@@ -152,7 +176,7 @@ define(['jquery', 'bootstrap', 'toastr', 'layer', 'config'], function ($, undefi
}
return
Frontend
.
api
.
layer
.
msg
(
__
(
'Operation completed'
),
$
.
extend
({
offset
:
0
,
icon
:
1
},
type
?
{}
:
options
));
},
type
?
{}
:
options
)
,
callback
);
},
error
:
function
(
options
,
callback
)
{
var
type
=
typeof
options
===
'function'
;
...
...
@@ -161,7 +185,7 @@ define(['jquery', 'bootstrap', 'toastr', 'layer', 'config'], function ($, undefi
}
return
Frontend
.
api
.
layer
.
msg
(
__
(
'Operation failed'
),
$
.
extend
({
offset
:
0
,
icon
:
2
},
type
?
{}
:
options
));
},
type
?
{}
:
options
)
,
callback
);
},
toastr
:
Toastr
,
layer
:
Layer
...
...
@@ -170,7 +194,26 @@ define(['jquery', 'bootstrap', 'toastr', 'layer', 'config'], function ($, undefi
var
args
=
arguments
,
string
=
args
[
0
],
i
=
1
;
string
=
Lang
[
string
]
!=
undefined
?
Lang
[
string
]
:
string
;
string
=
string
.
toLowerCase
();
//string = typeof Lang[string] != 'undefined' ? Lang[string] : string;
if
(
typeof
Lang
[
string
]
!=
'undefined'
)
{
if
(
typeof
Lang
[
string
]
==
'object'
)
return
Lang
[
string
];
string
=
Lang
[
string
];
}
else
if
(
string
.
indexOf
(
'.'
)
!==
-
1
)
{
var
arr
=
string
.
split
(
'.'
);
var
current
=
Lang
[
arr
[
0
]];
for
(
var
i
=
1
;
i
<
arr
.
length
;
i
++
)
{
current
=
typeof
current
[
arr
[
i
]]
!=
'undefined'
?
current
[
arr
[
i
]]
:
''
;
if
(
typeof
current
!=
'object'
)
break
;
}
if
(
typeof
current
==
'object'
)
return
current
;
string
=
current
;
}
else
{
string
=
args
[
0
];
}
return
string
.
replace
(
/%
((
%
)
|s|d
)
/g
,
function
(
m
)
{
// m is the matched format, e.g. %s, %d
var
val
=
null
;
...
...
@@ -199,7 +242,9 @@ define(['jquery', 'bootstrap', 'toastr', 'layer', 'config'], function ($, undefi
window
.
Toastr
=
Toastr
;
//将语言方法暴露到全局中去
window
.
__
=
Frontend
.
lang
;
//将Frontend渲染至全局,以便于在子框架中调用
window
.
Frontend
=
Frontend
;
//Toastr定义
Toastr
.
options
=
Frontend
.
config
.
toastr
;
return
Frontend
;
});
\ No newline at end of file
});
...
...
public/assets/js/require-backend.min.js
查看文件 @
368e954
...
...
@@ -1939,20 +1939,21 @@ define('backend',['jquery', 'bootstrap', 'toastr', 'layer', 'lang', 'config'], f
options
=
$
.
extend
({
type
:
"POST"
,
dataType
:
'json'
,
success
:
function
(
data
)
{
success
:
function
(
ret
)
{
Backend
.
api
.
layer
.
close
(
index
);
if
(
data
.
hasOwnProperty
(
"code"
))
{
var
content
=
data
.
hasOwnProperty
(
"content"
)
&&
data
.
content
!=
""
?
data
.
content
:
""
;
if
(
data
.
code
===
1
)
{
if
(
ret
.
hasOwnProperty
(
"code"
))
{
var
data
=
ret
.
hasOwnProperty
(
"data"
)
&&
ret
.
data
!=
""
?
ret
.
data
:
null
;
var
msg
=
ret
.
hasOwnProperty
(
"msg"
)
&&
ret
.
msg
!=
""
?
ret
.
msg
:
""
;
if
(
ret
.
code
===
1
)
{
if
(
typeof
success
==
'function'
)
{
var
onAfterResult
=
success
.
call
(
undefined
,
content
);
var
onAfterResult
=
success
.
call
(
undefined
,
data
);
if
(
!
onAfterResult
)
{
return
false
;
}
}
Toastr
.
success
(
content
?
content
:
__
(
'Operation completed'
));
Toastr
.
success
(
msg
?
msg
:
__
(
'Operation completed'
));
}
else
{
Toastr
.
error
(
content
?
content
:
__
(
'Operation failed'
));
Toastr
.
error
(
msg
?
msg
:
__
(
'Operation failed'
));
}
}
else
{
Toastr
.
error
(
__
(
'Unknown data format'
));
...
...
@@ -2000,14 +2001,23 @@ define('backend',['jquery', 'bootstrap', 'toastr', 'layer', 'lang', 'config'], f
processData
:
false
,
type
:
'POST'
,
dataType
:
'json'
,
success
:
function
(
data
)
{
if
(
data
.
hasOwnProperty
(
"code"
))
{
var
content
=
data
.
hasOwnProperty
(
"content"
)
&&
data
.
content
!=
""
?
data
.
content
:
""
;
if
(
data
.
code
===
1
)
{
$
(
'.summernote'
).
summernote
(
"insertImage"
,
data
.
content
,
'filename'
);
success
:
function
(
ret
)
{
if
(
ret
.
hasOwnProperty
(
"code"
))
{
var
data
=
ret
.
hasOwnProperty
(
"data"
)
&&
ret
.
data
!=
""
?
ret
.
data
:
null
;
var
msg
=
ret
.
hasOwnProperty
(
"msg"
)
&&
ret
.
msg
!=
""
?
ret
.
msg
:
""
;
if
(
ret
.
code
===
1
)
{
if
(
typeof
callback
==
'function'
)
{
var
onAfterResult
=
success
.
call
(
undefined
,
data
);
if
(
!
onAfterResult
)
{
return
false
;
}
}
if
(
$
(
'.summernote'
).
size
()
>
0
&&
data
&&
typeof
data
.
url
!==
'undefined'
)
{
$
(
'.summernote'
).
summernote
(
"insertImage"
,
data
.
url
,
'filename'
);
}
Toastr
.
success
(
__
(
'Operation completed'
));
}
else
{
Toastr
.
error
(
content
?
content
:
__
(
'Operation failed'
));
Toastr
.
error
(
msg
?
msg
:
__
(
'Operation failed'
));
}
}
else
{
Toastr
.
error
(
__
(
'Unknown data format'
));
...
...
@@ -7381,7 +7391,7 @@ define('table',['jquery', 'bootstrap', 'backend', 'config', 'toastr', 'moment',
table
:
table
.
bootstrapTable
(
'getOptions'
).
extend
.
table
}
};
Backend
.
api
.
ajax
(
options
,
function
(
content
)
{
Backend
.
api
.
ajax
(
options
,
function
(
data
)
{
Toastr
.
success
(
__
(
'Operation completed'
));
table
.
bootstrapTable
(
'refresh'
);
});
...
...
@@ -7400,7 +7410,7 @@ define('table',['jquery', 'bootstrap', 'backend', 'config', 'toastr', 'moment',
var
url
=
action
==
"del"
?
options
.
extend
.
del_url
:
options
.
extend
.
multi_url
;
url
=
url
+
"/ids/"
+
(
$
.
isArray
(
ids
)
?
ids
.
join
(
","
)
:
ids
);
var
options
=
{
url
:
url
,
data
:
{
action
:
action
,
ids
:
ids
,
params
:
element
?
$
(
element
).
data
(
"params"
)
:
''
}};
Backend
.
api
.
ajax
(
options
,
function
(
content
)
{
Backend
.
api
.
ajax
(
options
,
function
(
data
)
{
Toastr
.
success
(
__
(
'Operation completed'
));
table
.
bootstrapTable
(
'refresh'
);
});
...
...
@@ -7438,6 +7448,8 @@ define('table',['jquery', 'bootstrap', 'backend', 'config', 'toastr', 'moment',
// 单元格数据格式化
formatter
:
{
icon
:
function
(
value
,
row
,
index
)
{
if
(
!
value
)
return
''
;
value
=
value
.
indexOf
(
" "
)
>
-
1
?
value
:
"fa fa-"
+
value
;
//渲染fontawesome图标
return
'<i class="'
+
value
+
'"></i> '
+
value
;
...
...
@@ -7564,6 +7576,7 @@ define('upload',['jquery', 'bootstrap', 'backend', 'config', 'plupload'], functi
var
maxsize
=
$
(
this
).
data
(
"maxsize"
);
var
mimetype
=
$
(
this
).
data
(
"mimetype"
);
var
multipart
=
$
(
this
).
data
(
"multipart"
);
var
multiple
=
$
(
this
).
data
(
"multiple"
);
//上传URL
url
=
url
?
url
:
Config
.
upload
.
uploadurl
;
//最大可上传
...
...
@@ -7572,10 +7585,13 @@ define('upload',['jquery', 'bootstrap', 'backend', 'config', 'plupload'], functi
mimetype
=
mimetype
?
mimetype
:
Config
.
upload
.
mimetype
;
//请求的表单参数
multipart
=
multipart
?
multipart
:
Config
.
upload
.
multipart
;
//是否支持批量上传
multiple
=
multiple
?
multiple
:
Config
.
upload
.
multiple
;
//生成Plupload实例
Upload
.
list
[
id
]
=
new
Plupload
.
Uploader
({
runtimes
:
'html5,flash,silverlight,html4'
,
multi_selection
:
false
,
//是否允许多选批量上传
browse_button
:
id
,
// you can pass an id...
multi_selection
:
multiple
,
//是否允许多选批量上传
browse_button
:
id
,
// 浏览按钮的ID
container
:
$
(
this
).
parent
().
get
(
0
),
//取按钮的上级元素
flash_swf_url
:
'/assets/libs/plupload/js/Moxie.swf'
,
silverlight_xap_url
:
'/assets/libs/plupload/js/Moxie.xap'
,
...
...
@@ -7612,13 +7628,13 @@ define('upload',['jquery', 'bootstrap', 'backend', 'config', 'plupload'], functi
//document.getElementById(file.id).getElementsByTagName('b')[0].innerHTML += (' [Url]: ' + '<a href="' + url + '" target="_blank">' + url + '</a>');
//这里建议不修改
try
{
var
data
=
JSON
.
parse
(
info
.
response
);
if
(
data
.
hasOwnProperty
(
'code'
))
{
data
.
code
=
data
.
code
==
200
?
0
:
data
.
code
;
if
(
data
.
hasOwnProperty
(
"url"
))
{
data
.
content
=
data
.
url
;
}
$
(
"input[data-plupload-id='"
+
id
+
"-text']"
).
val
(
data
.
content
);
var
ret
=
JSON
.
parse
(
info
.
response
);
if
(
ret
.
hasOwnProperty
(
'code'
))
{
ret
.
data
=
ret
.
code
==
200
?
ret
:
ret
.
data
;
ret
.
code
=
ret
.
code
==
200
?
1
:
ret
.
code
;
var
data
=
ret
.
hasOwnProperty
(
"data"
)
&&
ret
.
data
!=
""
?
ret
.
data
:
null
;
var
msg
=
ret
.
hasOwnProperty
(
"msg"
)
&&
ret
.
msg
!=
""
?
ret
.
msg
:
""
;
$
(
"input[data-plupload-id='"
+
id
+
"-text']"
).
val
(
data
.
url
);
var
afterUpload
=
$
(
"#"
+
id
).
data
(
"after-upload"
);
if
(
afterUpload
&&
typeof
Upload
.
api
.
custom
[
afterUpload
]
==
'function'
)
{
Upload
.
api
.
custom
[
afterUpload
].
call
(
info
,
id
,
data
);
...
...
@@ -7656,22 +7672,21 @@ define('upload',['jquery', 'bootstrap', 'backend', 'config', 'plupload'], functi
processData
:
false
,
type
:
'POST'
,
dataType
:
'json'
,
success
:
function
(
data
)
{
if
(
data
.
hasOwnProperty
(
"code"
))
{
data
.
code
=
data
.
code
==
200
?
1
:
data
.
code
;
if
(
data
.
hasOwnProperty
(
"url"
))
{
data
.
content
=
data
.
url
;
}
var
content
=
data
.
hasOwnProperty
(
"content"
)
&&
data
.
content
!=
""
?
data
.
content
:
""
;
if
(
data
.
code
===
1
)
{
success
:
function
(
ret
)
{
if
(
ret
.
hasOwnProperty
(
"code"
))
{
ret
.
data
=
ret
.
code
==
200
?
ret
:
ret
.
data
;
ret
.
code
=
ret
.
code
==
200
?
1
:
ret
.
code
;
var
data
=
ret
.
hasOwnProperty
(
"data"
)
&&
ret
.
data
!=
""
?
ret
.
data
:
null
;
var
msg
=
ret
.
hasOwnProperty
(
"msg"
)
&&
ret
.
msg
!=
""
?
ret
.
msg
:
""
;
if
(
ret
.
code
===
1
)
{
// 如果回调存在,则直接调用回调
if
(
typeof
callback
==
'function'
)
{
callback
.
call
(
this
,
data
);
}
else
{
Toastr
.
success
(
content
?
content
:
__
(
'Operation completed'
));
Toastr
.
success
(
msg
?
msg
:
__
(
'Operation completed'
));
}
}
else
{
Toastr
.
error
(
content
?
content
:
__
(
'Operation failed'
));
Toastr
.
error
(
msg
?
msg
:
__
(
'Operation failed'
));
}
}
else
{
Toastr
.
error
(
__
(
'Unknown data format'
));
...
...
@@ -8251,28 +8266,29 @@ define('form',['jquery', 'bootstrap', 'backend', 'config', 'toastr', 'upload', '
url
:
url
,
data
:
form
.
serialize
(),
dataType
:
'json'
,
success
:
function
(
data
)
{
if
(
data
.
hasOwnProperty
(
"code"
))
{
var
content
=
data
.
hasOwnProperty
(
"content"
)
&&
data
.
content
!=
""
?
data
.
content
:
""
;
if
(
data
.
code
===
1
)
{
success
:
function
(
ret
)
{
if
(
ret
.
hasOwnProperty
(
"code"
))
{
var
data
=
ret
.
hasOwnProperty
(
"data"
)
&&
ret
.
data
!=
""
?
ret
.
data
:
null
;
var
msg
=
ret
.
hasOwnProperty
(
"msg"
)
&&
ret
.
msg
!=
""
?
ret
.
msg
:
""
;
if
(
ret
.
code
===
1
)
{
$
(
'.form-group'
,
form
).
removeClass
(
'has-feedback has-success has-error'
);
//成功提交后事件
var
afterSubmit
=
form
.
data
(
"after-submit"
);
//元素绑定函数
if
(
afterSubmit
&&
typeof
Form
.
api
.
custom
[
afterSubmit
]
==
'function'
)
{
if
(
!
Form
.
api
.
custom
[
afterSubmit
].
call
(
form
,
content
))
{
if
(
!
Form
.
api
.
custom
[
afterSubmit
].
call
(
form
,
data
))
{
return
false
;
}
}
//自定义函数
if
(
typeof
onAfterSubmit
==
'function'
)
{
if
(
!
onAfterSubmit
.
call
(
form
,
content
))
{
if
(
!
onAfterSubmit
.
call
(
form
,
data
))
{
return
false
;
}
}
Toastr
.
success
(
content
?
content
:
__
(
'Operation completed'
));
Toastr
.
success
(
msg
?
msg
:
__
(
'Operation completed'
));
}
else
{
Toastr
.
error
(
content
?
content
:
__
(
'Operation failed'
));
Toastr
.
error
(
msg
?
msg
:
__
(
'Operation failed'
));
}
}
else
{
Toastr
.
error
(
__
(
'Unknown data format'
));
...
...
@@ -8289,19 +8305,16 @@ define('form',['jquery', 'bootstrap', 'backend', 'config', 'toastr', 'upload', '
if
(
e
.
isDefaultPrevented
())
{
//验证不通过
Toastr
.
error
(
"验证失败,请检查表单输入是否正确"
);
//Backend.api.error();
}
else
{
//验证通过提交表单
Form
.
api
.
submit
(
form
,
onBeforeSubmit
,
function
(
content
)
{
Form
.
api
.
submit
(
form
,
onBeforeSubmit
,
function
(
data
)
{
if
(
typeof
onAfterSubmit
==
'function'
)
{
if
(
!
onAfterSubmit
.
call
(
form
,
content
))
{
if
(
!
onAfterSubmit
.
call
(
form
,
data
))
{
return
false
;
}
}
//提示及关闭当前窗口
parent
.
Layer
.
msg
(
__
(
'Operation completed'
),
{
offset
:
0
,
icon
:
1
});
parent
.
Toastr
.
success
(
__
(
'Operation completed'
));
parent
.
$
(
".btn-refresh"
).
trigger
(
"click"
);
var
index
=
parent
.
Layer
.
getFrameIndex
(
window
.
name
);
parent
.
Layer
.
close
(
index
);
...
...
@@ -8336,8 +8349,8 @@ define('form',['jquery', 'bootstrap', 'backend', 'config', 'toastr', 'upload', '
remote
:
{
url
:
'/ajax/typeahead?search=%QUERY&field='
+
$
(
input
).
attr
(
"name"
),
wildcard
:
'%QUERY'
,
transform
:
function
(
data
)
{
return
data
.
content
.
searchlist
;
transform
:
function
(
ret
)
{
return
ret
.
data
.
searchlist
;
}
}
});
...
...
@@ -8437,7 +8450,7 @@ define('form',['jquery', 'bootstrap', 'backend', 'config', 'toastr', 'upload', '
//依次上传图片
for
(
var
i
=
0
;
i
<
files
.
length
;
i
++
)
{
Upload
.
api
.
send
(
files
[
i
],
function
(
data
)
{
var
url
=
Config
.
upload
.
cdnurl
+
data
.
content
;
var
url
=
Config
.
upload
.
cdnurl
+
data
.
url
;
$
(
that
).
summernote
(
"insertImage"
,
url
,
'filename'
);
});
}
...
...
public/assets/js/require-form.js
查看文件 @
368e954
...
...
@@ -29,28 +29,29 @@ define(['jquery', 'bootstrap', 'backend', 'config', 'toastr', 'upload', 'bootstr
url
:
url
,
data
:
form
.
serialize
(),
dataType
:
'json'
,
success
:
function
(
data
)
{
if
(
data
.
hasOwnProperty
(
"code"
))
{
var
content
=
data
.
hasOwnProperty
(
"content"
)
&&
data
.
content
!=
""
?
data
.
content
:
""
;
if
(
data
.
code
===
1
)
{
success
:
function
(
ret
)
{
if
(
ret
.
hasOwnProperty
(
"code"
))
{
var
data
=
ret
.
hasOwnProperty
(
"data"
)
&&
ret
.
data
!=
""
?
ret
.
data
:
null
;
var
msg
=
ret
.
hasOwnProperty
(
"msg"
)
&&
ret
.
msg
!=
""
?
ret
.
msg
:
""
;
if
(
ret
.
code
===
1
)
{
$
(
'.form-group'
,
form
).
removeClass
(
'has-feedback has-success has-error'
);
//成功提交后事件
var
afterSubmit
=
form
.
data
(
"after-submit"
);
//元素绑定函数
if
(
afterSubmit
&&
typeof
Form
.
api
.
custom
[
afterSubmit
]
==
'function'
)
{
if
(
!
Form
.
api
.
custom
[
afterSubmit
].
call
(
form
,
content
))
{
if
(
!
Form
.
api
.
custom
[
afterSubmit
].
call
(
form
,
data
))
{
return
false
;
}
}
//自定义函数
if
(
typeof
onAfterSubmit
==
'function'
)
{
if
(
!
onAfterSubmit
.
call
(
form
,
content
))
{
if
(
!
onAfterSubmit
.
call
(
form
,
data
))
{
return
false
;
}
}
Toastr
.
success
(
content
?
content
:
__
(
'Operation completed'
));
Toastr
.
success
(
msg
?
msg
:
__
(
'Operation completed'
));
}
else
{
Toastr
.
error
(
content
?
content
:
__
(
'Operation failed'
));
Toastr
.
error
(
msg
?
msg
:
__
(
'Operation failed'
));
}
}
else
{
Toastr
.
error
(
__
(
'Unknown data format'
));
...
...
@@ -67,19 +68,16 @@ define(['jquery', 'bootstrap', 'backend', 'config', 'toastr', 'upload', 'bootstr
if
(
e
.
isDefaultPrevented
())
{
//验证不通过
Toastr
.
error
(
"验证失败,请检查表单输入是否正确"
);
//Backend.api.error();
}
else
{
//验证通过提交表单
Form
.
api
.
submit
(
form
,
onBeforeSubmit
,
function
(
content
)
{
Form
.
api
.
submit
(
form
,
onBeforeSubmit
,
function
(
data
)
{
if
(
typeof
onAfterSubmit
==
'function'
)
{
if
(
!
onAfterSubmit
.
call
(
form
,
content
))
{
if
(
!
onAfterSubmit
.
call
(
form
,
data
))
{
return
false
;
}
}
//提示及关闭当前窗口
parent
.
Layer
.
msg
(
__
(
'Operation completed'
),
{
offset
:
0
,
icon
:
1
});
parent
.
Toastr
.
success
(
__
(
'Operation completed'
));
parent
.
$
(
".btn-refresh"
).
trigger
(
"click"
);
var
index
=
parent
.
Layer
.
getFrameIndex
(
window
.
name
);
parent
.
Layer
.
close
(
index
);
...
...
@@ -114,8 +112,8 @@ define(['jquery', 'bootstrap', 'backend', 'config', 'toastr', 'upload', 'bootstr
remote
:
{
url
:
'/ajax/typeahead?search=%QUERY&field='
+
$
(
input
).
attr
(
"name"
),
wildcard
:
'%QUERY'
,
transform
:
function
(
data
)
{
return
data
.
content
.
searchlist
;
transform
:
function
(
ret
)
{
return
ret
.
data
.
searchlist
;
}
}
});
...
...
@@ -215,7 +213,7 @@ define(['jquery', 'bootstrap', 'backend', 'config', 'toastr', 'upload', 'bootstr
//依次上传图片
for
(
var
i
=
0
;
i
<
files
.
length
;
i
++
)
{
Upload
.
api
.
send
(
files
[
i
],
function
(
data
)
{
var
url
=
Config
.
upload
.
cdnurl
+
data
.
content
;
var
url
=
Config
.
upload
.
cdnurl
+
data
.
url
;
$
(
that
).
summernote
(
"insertImage"
,
url
,
'filename'
);
});
}
...
...
public/assets/js/require-frontend.min.js
查看文件 @
368e954
...
...
@@ -1912,7 +1912,7 @@ window.layui && layui.define ? (
}
}));
define
(
'frontend'
,[
'jquery'
,
'bootstrap'
,
'toastr'
,
'layer'
,
'
config'
],
function
(
$
,
undefined
,
Toastr
,
Layer
,
Config
)
{
define
(
'frontend'
,[
'jquery'
,
'bootstrap'
,
'toastr'
,
'layer'
,
'
lang'
,
'config'
],
function
(
$
,
undefined
,
Toastr
,
Layer
,
Lang
,
Config
)
{
var
Frontend
=
{
config
:
{
//toastr默认配置
...
...
@@ -1940,20 +1940,21 @@ define('frontend',['jquery', 'bootstrap', 'toastr', 'layer', 'config'], function
options
=
$
.
extend
({
type
:
"POST"
,
dataType
:
'json'
,
success
:
function
(
data
)
{
success
:
function
(
ret
)
{
Frontend
.
api
.
layer
.
close
(
index
);
if
(
data
.
hasOwnProperty
(
"code"
))
{
var
content
=
data
.
hasOwnProperty
(
"content"
)
&&
data
.
content
!=
""
?
data
.
content
:
""
;
if
(
data
.
code
==
0
)
{
if
(
ret
.
hasOwnProperty
(
"code"
))
{
var
data
=
ret
.
hasOwnProperty
(
"data"
)
&&
ret
.
data
!=
""
?
ret
.
data
:
null
;
var
msg
=
ret
.
hasOwnProperty
(
"msg"
)
&&
ret
.
msg
!=
""
?
ret
.
msg
:
""
;
if
(
ret
.
code
===
1
)
{
if
(
typeof
success
==
'function'
)
{
var
onAfterResult
=
success
.
call
(
undefined
,
content
);
var
onAfterResult
=
success
.
call
(
undefined
,
data
);
if
(
!
onAfterResult
)
{
return
false
;
}
}
Toastr
.
success
(
content
?
content
:
__
(
'Operation completed'
));
Toastr
.
success
(
msg
?
msg
:
__
(
'Operation completed'
));
}
else
{
Toastr
.
error
(
content
?
content
:
__
(
'Operation failed'
));
Toastr
.
error
(
msg
?
msg
:
__
(
'Operation failed'
));
}
}
else
{
Toastr
.
error
(
__
(
'Unknown data format'
));
...
...
@@ -1970,11 +1971,25 @@ define('frontend',['jquery', 'bootstrap', 'toastr', 'layer', 'config'], function
if
(
url
.
substr
(
0
,
1
)
!==
"/"
)
{
var
r
=
new
RegExp
(
'^(?:[a-z]+:)?//'
,
'i'
);
if
(
!
r
.
test
(
url
))
{
url
=
(
Config
.
moduleurl
)
+
"/"
+
url
;
url
=
Config
.
moduleurl
+
"/"
+
url
;
}
}
return
url
;
},
//查询Url参数
query
:
function
(
name
,
url
)
{
if
(
!
url
)
{
url
=
window
.
location
.
href
;
}
name
=
name
.
replace
(
/
[\[\]]
/g
,
"\\$&"
);
var
regex
=
new
RegExp
(
"[?&]"
+
name
+
"(=([^&#]*)|&|#|$)"
),
results
=
regex
.
exec
(
url
);
if
(
!
results
)
return
null
;
if
(
!
results
[
2
])
return
''
;
return
decodeURIComponent
(
results
[
2
].
replace
(
/
\+
/g
,
" "
));
},
//上传文件
upload
:
function
(
file
,
callback
)
{
var
data
=
new
FormData
();
...
...
@@ -1987,14 +2002,23 @@ define('frontend',['jquery', 'bootstrap', 'toastr', 'layer', 'config'], function
processData
:
false
,
type
:
'POST'
,
dataType
:
'json'
,
success
:
function
(
data
)
{
if
(
data
.
hasOwnProperty
(
"code"
))
{
var
content
=
data
.
hasOwnProperty
(
"content"
)
&&
data
.
content
!=
""
?
data
.
content
:
""
;
if
(
data
.
code
==
0
)
{
$
(
'.summernote'
).
summernote
(
"insertImage"
,
data
.
content
,
'filename'
);
success
:
function
(
ret
)
{
if
(
ret
.
hasOwnProperty
(
"code"
))
{
var
data
=
ret
.
hasOwnProperty
(
"data"
)
&&
ret
.
data
!=
""
?
ret
.
data
:
null
;
var
msg
=
ret
.
hasOwnProperty
(
"msg"
)
&&
ret
.
msg
!=
""
?
ret
.
msg
:
""
;
if
(
ret
.
code
===
1
)
{
if
(
typeof
callback
==
'function'
)
{
var
onAfterResult
=
success
.
call
(
undefined
,
data
);
if
(
!
onAfterResult
)
{
return
false
;
}
}
if
(
$
(
'.summernote'
).
size
()
>
0
&&
data
&&
typeof
data
.
url
!==
'undefined'
)
{
$
(
'.summernote'
).
summernote
(
"insertImage"
,
data
.
url
,
'filename'
);
}
Toastr
.
success
(
__
(
'Operation completed'
));
}
else
{
Toastr
.
error
(
content
?
content
:
__
(
'Operation failed'
));
Toastr
.
error
(
msg
?
msg
:
__
(
'Operation failed'
));
}
}
else
{
Toastr
.
error
(
__
(
'Unknown data format'
));
...
...
@@ -2066,7 +2090,7 @@ define('frontend',['jquery', 'bootstrap', 'toastr', 'layer', 'config'], function
}
return
Frontend
.
api
.
layer
.
msg
(
__
(
'Operation completed'
),
$
.
extend
({
offset
:
0
,
icon
:
1
},
type
?
{}
:
options
));
},
type
?
{}
:
options
)
,
callback
);
},
error
:
function
(
options
,
callback
)
{
var
type
=
typeof
options
===
'function'
;
...
...
@@ -2075,7 +2099,7 @@ define('frontend',['jquery', 'bootstrap', 'toastr', 'layer', 'config'], function
}
return
Frontend
.
api
.
layer
.
msg
(
__
(
'Operation failed'
),
$
.
extend
({
offset
:
0
,
icon
:
2
},
type
?
{}
:
options
));
},
type
?
{}
:
options
)
,
callback
);
},
toastr
:
Toastr
,
layer
:
Layer
...
...
@@ -2084,7 +2108,26 @@ define('frontend',['jquery', 'bootstrap', 'toastr', 'layer', 'config'], function
var
args
=
arguments
,
string
=
args
[
0
],
i
=
1
;
string
=
Lang
[
string
]
!=
undefined
?
Lang
[
string
]
:
string
;
string
=
string
.
toLowerCase
();
//string = typeof Lang[string] != 'undefined' ? Lang[string] : string;
if
(
typeof
Lang
[
string
]
!=
'undefined'
)
{
if
(
typeof
Lang
[
string
]
==
'object'
)
return
Lang
[
string
];
string
=
Lang
[
string
];
}
else
if
(
string
.
indexOf
(
'.'
)
!==
-
1
)
{
var
arr
=
string
.
split
(
'.'
);
var
current
=
Lang
[
arr
[
0
]];
for
(
var
i
=
1
;
i
<
arr
.
length
;
i
++
)
{
current
=
typeof
current
[
arr
[
i
]]
!=
'undefined'
?
current
[
arr
[
i
]]
:
''
;
if
(
typeof
current
!=
'object'
)
break
;
}
if
(
typeof
current
==
'object'
)
return
current
;
string
=
current
;
}
else
{
string
=
args
[
0
];
}
return
string
.
replace
(
/%
((
%
)
|s|d
)
/g
,
function
(
m
)
{
// m is the matched format, e.g. %s, %d
var
val
=
null
;
...
...
@@ -2113,7 +2156,10 @@ define('frontend',['jquery', 'bootstrap', 'toastr', 'layer', 'config'], function
window
.
Toastr
=
Toastr
;
//将语言方法暴露到全局中去
window
.
__
=
Frontend
.
lang
;
//将Frontend渲染至全局,以便于在子框架中调用
window
.
Frontend
=
Frontend
;
//Toastr定义
Toastr
.
options
=
Frontend
.
config
.
toastr
;
return
Frontend
;
});
...
...
public/assets/js/require-table.js
查看文件 @
368e954
...
...
@@ -196,7 +196,7 @@ define(['jquery', 'bootstrap', 'backend', 'config', 'toastr', 'moment', 'bootstr
table
:
table
.
bootstrapTable
(
'getOptions'
).
extend
.
table
}
};
Backend
.
api
.
ajax
(
options
,
function
(
content
)
{
Backend
.
api
.
ajax
(
options
,
function
(
data
)
{
Toastr
.
success
(
__
(
'Operation completed'
));
table
.
bootstrapTable
(
'refresh'
);
});
...
...
@@ -215,7 +215,7 @@ define(['jquery', 'bootstrap', 'backend', 'config', 'toastr', 'moment', 'bootstr
var
url
=
action
==
"del"
?
options
.
extend
.
del_url
:
options
.
extend
.
multi_url
;
url
=
url
+
"/ids/"
+
(
$
.
isArray
(
ids
)
?
ids
.
join
(
","
)
:
ids
);
var
options
=
{
url
:
url
,
data
:
{
action
:
action
,
ids
:
ids
,
params
:
element
?
$
(
element
).
data
(
"params"
)
:
''
}};
Backend
.
api
.
ajax
(
options
,
function
(
content
)
{
Backend
.
api
.
ajax
(
options
,
function
(
data
)
{
Toastr
.
success
(
__
(
'Operation completed'
));
table
.
bootstrapTable
(
'refresh'
);
});
...
...
public/assets/js/require-upload.js
查看文件 @
368e954
...
...
@@ -67,19 +67,19 @@ define(['jquery', 'bootstrap', 'backend', 'config', 'plupload'], function ($, un
//document.getElementById(file.id).getElementsByTagName('b')[0].innerHTML += (' [Url]: ' + '<a href="' + url + '" target="_blank">' + url + '</a>');
//这里建议不修改
try
{
var
response
=
JSON
.
parse
(
info
.
response
);
if
(
response
.
hasOwnProperty
(
'code'
))
{
response
.
code
=
response
.
code
==
200
?
1
:
response
.
code
;
if
(
response
.
hasOwnProperty
(
"url"
))
{
response
.
data
=
response
.
url
;
}
$
(
"input[data-plupload-id='"
+
id
+
"-text']"
).
val
(
response
.
data
);
var
ret
=
JSON
.
parse
(
info
.
response
);
if
(
ret
.
hasOwnProperty
(
'code'
))
{
ret
.
data
=
ret
.
code
==
200
?
ret
:
ret
.
data
;
ret
.
code
=
ret
.
code
==
200
?
1
:
ret
.
code
;
var
data
=
ret
.
hasOwnProperty
(
"data"
)
&&
ret
.
data
!=
""
?
ret
.
data
:
null
;
var
msg
=
ret
.
hasOwnProperty
(
"msg"
)
&&
ret
.
msg
!=
""
?
ret
.
msg
:
""
;
$
(
"input[data-plupload-id='"
+
id
+
"-text']"
).
val
(
data
.
url
);
var
afterUpload
=
$
(
"#"
+
id
).
data
(
"after-upload"
);
if
(
afterUpload
&&
typeof
Upload
.
api
.
custom
[
afterUpload
]
==
'function'
)
{
Upload
.
api
.
custom
[
afterUpload
].
call
(
info
,
id
,
response
);
Upload
.
api
.
custom
[
afterUpload
].
call
(
info
,
id
,
data
);
}
if
(
typeof
onAfterUpload
==
'function'
)
{
onAfterUpload
.
call
(
info
,
id
,
response
);
onAfterUpload
.
call
(
info
,
id
,
data
);
}
}
else
{
Toastr
.
error
(
e
.
message
+
"(code:-2)"
);
...
...
@@ -111,22 +111,21 @@ define(['jquery', 'bootstrap', 'backend', 'config', 'plupload'], function ($, un
processData
:
false
,
type
:
'POST'
,
dataType
:
'json'
,
success
:
function
(
data
)
{
if
(
data
.
hasOwnProperty
(
"code"
))
{
data
.
code
=
data
.
code
==
200
?
1
:
data
.
code
;
if
(
data
.
hasOwnProperty
(
"url"
))
{
data
.
content
=
data
.
url
;
}
var
content
=
data
.
hasOwnProperty
(
"content"
)
&&
data
.
content
!=
""
?
data
.
content
:
""
;
if
(
data
.
code
===
1
)
{
success
:
function
(
ret
)
{
if
(
ret
.
hasOwnProperty
(
"code"
))
{
ret
.
data
=
ret
.
code
==
200
?
ret
:
ret
.
data
;
ret
.
code
=
ret
.
code
==
200
?
1
:
ret
.
code
;
var
data
=
ret
.
hasOwnProperty
(
"data"
)
&&
ret
.
data
!=
""
?
ret
.
data
:
null
;
var
msg
=
ret
.
hasOwnProperty
(
"msg"
)
&&
ret
.
msg
!=
""
?
ret
.
msg
:
""
;
if
(
ret
.
code
===
1
)
{
// 如果回调存在,则直接调用回调
if
(
typeof
callback
==
'function'
)
{
callback
.
call
(
this
,
data
);
}
else
{
Toastr
.
success
(
content
?
content
:
__
(
'Operation completed'
));
Toastr
.
success
(
msg
?
msg
:
__
(
'Operation completed'
));
}
}
else
{
Toastr
.
error
(
content
?
content
:
__
(
'Operation failed'
));
Toastr
.
error
(
msg
?
msg
:
__
(
'Operation failed'
));
}
}
else
{
Toastr
.
error
(
__
(
'Unknown data format'
));
...
...
请
注册
或
登录
后发表评论