Toggle navigation
Toggle navigation
This project
Loading...
Sign in
fe
/
yohobuy-portal-fe
·
Commits
Go to a project
GitLab
Go to group
Project
Activity
Files
Commits
Pipelines
0
Builds
0
Graphs
Milestones
Issues
0
Merge Requests
0
Members
Labels
Wiki
Forks
Network
Create a new issue
Download as
Email Patches
Plain Diff
Browse Files
Authored by
weiqingting
9 years ago
Commit
5c08673838dc784d1ab094c25bac489e7072b6af
1 parent
1927f2a0
上传
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
144 additions
and
39 deletions
client/js/common/edit.js
client/js/common/validate.js
client/js/index.js
client/js/product/add.js
public/css/index.css
server/stub/service/upload.js
client/js/common/edit.js
View file @
5c08673
...
...
@@ -141,9 +141,7 @@ edit.prototype={
Temp
+=
'</ul>'
;
$
(
this
).
after
(
Temp
);
});
$
(
'input[type="file"]'
,
that
.
el
).
ajaxfileupload
({
'action'
:
'/ajax/upload'
,
edit
.
ajaxfileupload
(
that
.
el
+
" input[type='file']"
,{
'params'
:{
"userId"
:
543883
,
"bucket"
:
'smart'
},
'onComplete'
:
function
(
response
)
{
var
_w
=
$
(
this
).
next
().
find
(
'.fileinput-button-icon'
);
...
...
@@ -153,15 +151,25 @@ edit.prototype={
_w
.
prepend
(
'<img width="76" height="80" src="'
+
response
.
data
+
'">'
);
}
$
(
this
).
attr
(
"value"
,
response
.
data
);
},
'onStart'
:
function
()
{
},
'onCancel'
:
function
()
{
// var _id=$(this).attr("id")||$(this).attr("name");
// $(".fileinput-button-icon","#img-"+_id).html("+");
// $(this).attr("value","");
}
});
// $('input[type="file"]',that.el).ajaxfileupload({
// 'action': '/ajax/upload',
// 'params':{"userId":543883,"bucket":'smart'},
// 'onComplete': function(response) {
// var _w=$(this).next().find('.fileinput-button-icon');
// if(_w.find('img').length>0){
// _w.find('img').attr("src",response.data);
// }else{
// _w.prepend('<img width="76" height="80" src="'+response.data+'">');
// }
// $(this).attr("value",response.data);
// },
// 'onStart': function() {
// },
// 'onCancel': function() {
// }
// });
}
that
.
__listen
(
"render"
);
...
...
@@ -321,6 +329,13 @@ edit.prototype={
});
}
};
edit
.
ajaxfileupload
=
function
(
el
,
option
){
$
(
el
).
ajaxfileupload
({
'action'
:
'/ajax/upload'
,
'params'
:
$
.
extend
({},{
type
:
"fileupload-upload"
},
option
.
params
),
onComplete
:
option
.
onComplete
})
}
edit
.
prototype
.
init
.
prototype
=
edit
.
prototype
;
module
.
exports
=
edit
;
...
...
client/js/common/validate.js
0 → 100644
View file @
5c08673
var
_isInput
=
function
(
element
)
{
if
(
!
element
||
!
element
.
tagName
)
{
return
false
;
}
var
tagName
=
element
.
tagName
.
toLowerCase
();
return
tagName
===
'input'
||
tagName
===
'textarea'
;
};
var
_extend
=
function
(
out
)
{
out
=
out
||
{};
for
(
var
i
=
1
;
i
<
arguments
.
length
;
i
++
)
{
var
obj
=
arguments
[
i
];
if
(
!
obj
)
continue
;
for
(
var
key
in
obj
)
{
if
(
obj
.
hasOwnProperty
(
key
))
{
if
(
typeof
obj
[
key
]
===
'object'
)
out
[
key
]
=
_extend
(
out
[
key
],
obj
[
key
]);
else
out
[
key
]
=
obj
[
key
];
}
}
}
return
out
;
};
var
regExps
=
{
email
:
/^
([\w
-
]
+
(?:\.[\w
-
]
+
)
*
)
@
((?:[\w
-
]
+
\.)
*
\w[\w
-
]{0,66})\.([
a-z
]{2,6}(?:\.[
a-z
]{2})?)
$/i
,
url
:
/^
((
https
?)
:
\/\/(\w
+:
{0,1}\w
*@
)?(\S
+
)
|
)(
:
[
0-9
]
+
)?(\/
|
\/([\w
#!:.?+=&%@!
\-\/]))?
$/
,
numbers
:
/^
\d
+
(\.\d{1,2})?
$/
,
digits
:
/
[
0-9
]
*$/
,
letters
:
/
[
a-z
][
A-Z
]
*$/
};
var
Validate
=
function
(
element
,
options
)
{
if
(
!
_isInput
(
element
))
{
throw
new
Error
(
'控件不存在'
);
}
if
(
!
options
.
rules
||
Object
.
keys
(
options
.
rules
).
length
===
0
)
{
throw
new
Error
(
'规则不存在'
);
}
var
defaults
=
{
regExps
:
regExps
,
messages
:
messages
};
this
.
options
=
_extend
({},
defaults
,
options
);
this
.
element
=
element
;
this
.
regExps
=
regExps
;
};
var
fn
=
Validate
.
prototype
;
fn
.
validate
=
function
()
{
var
isValid
=
true
;
this
.
value
=
this
.
element
.
value
;
for
(
var
rule
in
this
.
options
.
rules
)
{
var
test
=
this
[
rule
];
if
(
!
test
||
typeof
test
!==
'function'
)
{
throw
new
Error
(
rule
);
}
var
param
=
this
.
options
.
rules
[
rule
];
if
(
!
this
[
rule
](
param
))
{
isValid
=
false
;
this
.
message
=
"Error"
//_createMessage(this.options.messages[rule], {rule: param, data: this.value});
this
.
options
.
onError
.
call
(
this
);
break
;
}
}
if
(
isValid
)
{
this
.
options
.
onSuccess
.
call
(
this
);
}
};
fn
.
required
=
function
()
{
return
this
.
value
.
trim
().
length
>
0
;
};
fn
.
min
=
function
(
param
)
{
return
this
.
value
.
length
>=
param
;
};
fn
.
max
=
function
(
param
)
{
return
this
.
value
.
length
<=
param
;
};
fn
.
match
=
function
(
param
)
{
var
re
=
this
.
regExps
[
param
];
if
(
!
re
)
{
throw
new
Error
(
param
+
':'
+
Object
.
keys
(
this
.
options
.
regExps
).
join
(
', '
));
}
return
this
.
regExps
[
param
].
test
(
this
.
value
);
};
module
.
exports
=
{
init
:
Validate
,
fn
:
fn
};;
\ No newline at end of file
...
...
client/js/index.js
View file @
5c08673
...
...
@@ -31,22 +31,6 @@ $('.leftpanel .nav .parent>a').click(function() {
return
false
;
});
var
me
=
{
setUrl
:
function
(
value
){
var
Days
=
30
;
var
exp
=
new
Date
();
exp
.
setTime
(
exp
.
getTime
()
+
Days
*
24
*
60
*
60
*
1000
);
document
.
cookie
=
"url"
+
"="
+
escape
(
value
)
+
";expires="
+
exp
.
toGMTString
();
},
getUrl
:
function
(){
var
arr
,
reg
=
new
RegExp
(
"(^| )url=([^;]*)(;|$)"
);
if
(
arr
=
document
.
cookie
.
match
(
reg
))
return
unescape
(
arr
[
2
]);
else
return
null
;
}
};
window
.
me
=
me
;
$
(
".leftpanel .nav .children a"
).
each
(
function
(){
var
attr
=
$
(
this
).
attr
(
"href"
);
...
...
@@ -54,7 +38,6 @@ $(".leftpanel .nav .children a").each(function(){
$
(
this
).
parents
(
".children"
).
show
();
$
(
this
).
parent
(
"li"
).
addClass
(
"active"
);
$
(
this
).
parents
(
".parent"
).
addClass
(
"parent-focus"
);
window
.
me
.
setUrl
(
window
.
location
.
pathname
);
}
});
...
...
client/js/product/add.js
View file @
5c08673
...
...
@@ -269,6 +269,12 @@ e.on("bind",function(){
});
});
e
.
on
(
"validate"
,
function
(){
if
(
!
(
/^
\d
+$/g
.
test
(
$
(
"#orderBy"
).
val
()))){
return
"排序字段请输入0~100的正整数"
;
}
});
e
.
init
();
$
(
document
).
on
(
"click"
,
".btn-success"
,
function
(){
...
...
public/css/index.css
View file @
5c08673
<<<<<<<
HEAD
ul
{
margin-top
:
0
}
.admin-icon-yellow
{
color
:
#ffbe40
}
.admin-header
{
font-size
:
1.4rem
;
margin-bottom
:
0
}
.admin-header-list
a
:hover
:after
{
content
:
none
}
.admin-main
{
background
:
#f3f3f3
}
.admin-menu
{
position
:
fixed
;
z-index
:
10
;
bottom
:
30px
;
right
:
20px
}
.admin-sidebar
{
width
:
260px
;
min-height
:
100%
;
float
:
left
;
border-right
:
1px
solid
#cecece
}
.admin-sidebar-list
{
margin-bottom
:
0
}
.admin-sidebar-list
li
a
{
color
:
#5c5c5c
;
padding-left
:
24px
}
.admin-sidebar-list
li
:first-child
{
border-top
:
none
}
.admin-sidebar-sub
{
margin-top
:
0
;
margin-bottom
:
0
;
box-shadow
:
0
16px
8px
-15px
#e2e2e2
inset
;
background
:
#ececec
;
padding-left
:
24px
}
.admin-sidebar-sub
li
:first-child
{
border-top
:
1px
solid
#dedede
}
.admin-sidebar-panel
{
margin
:
10px
}
.admin-content
{
width
:
auto
;
overflow
:
hidden
;
height
:
100%
;
background
:
#fff
}
.admin-content-list
{
border
:
1px
solid
#e9ecf1
;
margin-top
:
0
}
.admin-content-list
li
{
border
:
1px
solid
#e9ecf1
;
border-width
:
0
1px
;
margin-left
:
-1px
}
.admin-content-list
li
:first-child
{
border-left
:
none
}
.admin-content-list
li
:last-child
{
border-right
:
none
}
.admin-content-table
a
{
color
:
#535353
}
.admin-content-file
{
margin-bottom
:
0
;
color
:
#666
}
.admin-content-file
p
{
margin
:
0
0
5px
0
;
font-size
:
1.4rem
}
.admin-content-file
li
{
padding
:
10px
0
}
.admin-content-file
li
:first-child
{
border-top
:
none
}
.admin-content-file
li
:last-child
{
border-bottom
:
none
}
.admin-content-file
li
.am-progress
{
margin-bottom
:
4px
}
.admin-content-file
li
.am-progress-bar
{
line-height
:
14px
}
.admin-content-task
{
margin-bottom
:
0
}
.admin-content-task
li
{
padding
:
5px
0
;
border-color
:
#eee
}
.admin-content-task
li
:first-child
{
border-top
:
none
}
.admin-content-task
li
:last-child
{
border-bottom
:
none
}
.admin-task-meta
{
font-size
:
1.2rem
;
color
:
#999
}
.admin-task-bd
{
font-size
:
1.4rem
;
margin-bottom
:
5px
}
.admin-content-comment
{
margin-bottom
:
0
}
.admin-content-comment
.am-comment-bd
{
font-size
:
1.4rem
}
.admin-content-pagination
{
margin-bottom
:
0
}
.admin-content-pagination
li
a
{
padding
:
4px
8px
}
@media
only
screen
and
(
min-width
:
641px
){
.admin-sidebar
{
display
:
block
;
position
:
static
;
background
:
none
}
.admin-offcanvas-bar
{
position
:
static
;
width
:
auto
;
background
:
none
;
-webkit-transform
:
translate3d
(
0
,
0
,
0
);
-ms-transform
:
translate3d
(
0
,
0
,
0
);
transform
:
translate3d
(
0
,
0
,
0
)}
.admin-offcanvas-bar
:after
{
content
:
none
}}
@media
only
screen
and
(
max-width
:
640px
){
.admin-sidebar
{
width
:
inherit
}
.admin-offcanvas-bar
{
background
:
#f3f3f3
}
.admin-offcanvas-bar
:after
{
background
:
#BABABA
}
.admin-sidebar-list
a
:hover
,
.admin-sidebar-list
a
:active
{
-webkit-transition
:
background-color
0.3s
ease
;
transition
:
background-color
0.3s
ease
;
background
:
#E4E4E4
}
.admin-content-list
li
{
padding
:
10px
;
border-width
:
1px
0
;
margin-top
:
-1px
}
.admin-content-list
li
:first-child
{
border-top
:
none
}
.admin-content-list
li
:last-child
{
border-bottom
:
none
}
.admin-form-text
{
text-align
:
left
!important
}}
.user-info
{
margin-bottom
:
15px
}
.user-info
.am-progress
{
margin-bottom
:
4px
}
.user-info
p
{
margin
:
5px
}
.user-info-order
{
font-size
:
1.4rem
}
.error-log
.am-pre-scrollable
{
max-height
:
40rem
}
.table-main
{
font-size
:
1.4rem
;
padding
:
.5rem
}
.table-main
button
{
background
:
#fff
}
.table-check
{
width
:
30px
}
.table-id
{
width
:
50px
}
@media
only
screen
and
(
max-width
:
640px
){
.table-select
{
margin-top
:
10px
;
margin-left
:
5px
}}
.gallery-list
li
{
padding
:
10px
}
.gallery-list
a
{
color
:
#666
}
.gallery-list
a
:hover
{
color
:
#3bb4f2
}
.gallery-title
{
margin-top
:
6px
;
font-size
:
1.4rem
}
.gallery-desc
{
font-size
:
1.2rem
;
margin-top
:
4px
}
.page-404
{
background
:
#fff
;
border
:
none
;
width
:
200px
;
margin
:
0
auto
}
.fixed-layout
,
.fixed-layout
body
{
height
:
100%
;
overflow
:
hidden
}
.fixed-layout
.admin-header
{
position
:
fixed
;
top
:
0
;
left
:
0
;
right
:
0
;
z-index
:
1500
}
.fixed-layout
.admin-main
{
position
:
relative
;
height
:
100%
;
padding-top
:
51px
}
.fixed-layout
.admin-content
,
.fixed-layout
.admin-sidebar
{
height
:
100%
;
overflow-x
:
hidden
;
overflow-y
:
scroll
}
.fixed-layout
.admin-sidebar.am-active
{
z-index
:
1600
}
input
[
type
=
file
]
{
display
:
block
;
opacity
:
0
;
height
:
60px
;
width
:
100px
;
position
:
absolute
;
z-index
:
99
}
.form-horizontal
.form-group
{
margin-left
:
0px
;
margin-right
:
0px
}
.datepicker
{
display
:
none
;
position
:
absolute
;
padding
:
4px
;
margin-top
:
1px
;
direction
:
ltr
}
.datepicker.dropdown-menu
{
position
:
absolute
;
top
:
100%
;
left
:
0
;
z-index
:
1000
;
float
:
left
;
display
:
none
;
min-width
:
160px
;
list-style
:
none
;
background-color
:
#fff
;
border
:
1px
solid
rgba
(
0
,
0
,
0
,
0.2
);
border-radius
:
5px
;
box-shadow
:
0
5px
10px
rgba
(
0
,
0
,
0
,
0.2
);
background-clip
:
padding-box
;
*
border-right-width
:
2px
;
*
border-bottom-width
:
2px
;
color
:
#333
;
font-size
:
13px
;
line-height
:
18px
}
.datepicker.dropdown-menu
th
{
padding
:
4px
5px
}
.datepicker.dropdown-menu
td
{
padding
:
4px
5px
}
.datepicker
table
{
border
:
0
;
margin
:
0
;
width
:
auto
}
.datepicker
table
tr
td
span
{
display
:
block
;
width
:
23%
;
height
:
54px
;
line-height
:
54px
;
float
:
left
;
margin
:
1%
;
cursor
:
pointer
}
.datepicker
td
{
text-align
:
center
;
width
:
20px
;
height
:
20px
;
border
:
0
;
font-size
:
12px
;
padding
:
4px
8px
;
background
:
#fff
;
cursor
:
pointer
}
.datepicker
td
.active.day
,
.datepicker
td
.active.year
{
background
:
#2ba6cb
}
.datepicker
td
.old
,
.datepicker
td
.new
{
color
:
#999
}
.datepicker
td
span
.active
{
background
:
#2ba6cb
}
.datepicker
td
.day.disabled
{
color
:
#ccc
}
.datepicker
th
{
text-align
:
center
;
width
:
20px
;
height
:
20px
;
border
:
0
;
font-size
:
12px
;
padding
:
4px
8px
;
background
:
#fff
;
cursor
:
pointer
}
.datepicker
th
.active.day
,
.datepicker
th
.active.year
{
background
:
#2ba6cb
}
.datepicker
th
.date-switch
{
width
:
145px
}
.datepicker
th
span
.active
{
background
:
#2ba6cb
}
.datepicker
.cw
{
font-size
:
10px
;
width
:
12px
;
padding
:
0
2px
0
5px
;
vertical-align
:
middle
}
.datepicker.days
div
.datepicker-days
{
display
:
block
}
.datepicker.months
div
.datepicker-months
{
display
:
block
}
.datepicker.years
div
.datepicker-years
{
display
:
block
}
.datepicker
thead
tr
:first-child
th
{
cursor
:
pointer
}
.datepicker
thead
tr
:first-child
th
.cw
{
cursor
:
default
;
background-color
:
transparent
}
.datepicker
tfoot
tr
:first-child
th
{
cursor
:
pointer
}
.datepicker-inline
{
width
:
220px
}
.datepicker-rtl
{
direction
:
rtl
}
.datepicker-rtl
table
tr
td
span
{
float
:
right
}
.datepicker-dropdown
{
top
:
0
;
left
:
0
}
.datepicker-dropdown
:before
{
content
:
''
;
display
:
inline-block
;
border-left
:
7px
solid
transparent
;
border-right
:
7px
solid
transparent
;
border-bottom
:
7px
solid
#ccc
;
border-bottom-color
:
1px
solid
rgba
(
0
,
0
,
0
,
0.2
);
position
:
absolute
;
top
:
-7px
;
left
:
6px
}
.datepicker-dropdown
:after
{
content
:
''
;
display
:
inline-block
;
border-left
:
6px
solid
transparent
;
border-right
:
6px
solid
transparent
;
border-bottom
:
6px
solid
#fff
;
position
:
absolute
;
top
:
-6px
;
left
:
7px
}
.datepicker
>
div
,
.datepicker-dropdown
::before
,
.datepicker-dropdown
::after
{
display
:
none
}
.datepicker-close
{
position
:
absolute
;
top
:
-30px
;
right
:
0
;
width
:
15px
;
height
:
30px
;
padding
:
0
;
display
:
none
}
.table-striped
.datepicker
table
tr
td
,
.table-striped
.datepicker
table
tr
th
{
background-color
:
transparent
}
.panel-default
.panel-heading
{
border-top
:
1px
solid
#e7e7e7
}
.red
{
color
:
red
;
font-family
:
bold
}
input
[
type
=
date
],
input
[
type
=
time
],
input
[
type
=
datetime-local
],
input
[
type
=
month
]
{
line-height
:
0
!important
}
.show-grid
{
padding
:
10px
}
.brandBtn-group
{
width
:
150px
;
float
:
left
;
margin-right
:
8px
}
.brandBtn-group-lg
{
width
:
280px
}
.contentpanel
td
a
{
margin
:
0
3px
}
.mainwrapper
.toggle-table
tr
{
cursor
:
pointer
}
.mainwrapper
.toggle-table
tr
.level1
td
:nth-of-type
(
1
)
{
text-indent
:
2px
}
.mainwrapper
.toggle-table
tr
.level2
td
:nth-of-type
(
1
)
{
text-indent
:
15px
}
.mainwrapper
.toggle-table
tr
.level3
td
:nth-of-type
(
1
)
{
text-indent
:
30px
}
.pattrscroll
{
background
:
#F7F7F7
}
.pattrscroll
ul
{
padding-left
:
0
}
.pattrscroll
li
{
cursor
:
pointer
}
.mainwrapper
.list-group-item.level1
{
text-indent
:
2px
}
.mainwrapper
.list-group-item.level2
{
text-indent
:
15px
}
.mainwrapper
.list-group-item.level3
{
text-indent
:
30px
}
.attr-item-active
{
background
:
#428bca
;
color
:
#fff
}
.pannel-scroll
{
height
:
500px
;
overflow-y
:
scroll
;
overflow-x
:
hidden
}
.attr-select
{
display
:
block
;
height
:
40px
;
line-height
:
40px
;
border
:
1px
solid
#ccc
;
border-radius
:
3px
}
#limit-table-box
table
{
vertical-align
:
middle
}
#limit-table-box
table
th
,
#limit-table-box
table
td
{
text-align
:
center
;
vertical-align
:
middle
}
#limit-table-box
table
div
.checkbox
label
{
height
:
13px
}
#limit-table-box
table
.cover-img
{
width
:
100px
}
#limit-table-box
table
.width50
{
width
:
50px
;
text-align
:
center
}
.height40
{
height
:
40px
;
line-height
:
40px
}
.edit-cover-img
{
width
:
100px
;
margin
:
0
15px
;
float
:
left
}
.quota-text
,
.quota-img
,
.quota-video
{
width
:
300px
;
margin-bottom
:
15px
}
.quota-text
img
,
.quota-img
img
,
.quota-video
img
{
width
:
100%
}
#text-editor
{
width
:
100%
;
max-width
:
100%
;
min-width
:
100%
;
height
:
300px
;
max-height
:
300px
;
min-height
:
300px
}
.product-detail
input
[
type
=
"
text
"
]
{
width
:
100px
}
.main-table
{
-display
:
none
}
.bulk-import
{
display
:
none
}
#upload-input
{
display
:
inline-block
;
position
:
static
;
opacity
:
1
;
width
:
auto
;
height
:
auto
}
.excel-model
{
display
:
inline-block
;
width
:
110px
;
height
:
48px
;
line-height
:
48px
;
padding
:
0
0
0
50px
;
margin
:
0
200px
;
background
:
url(../images/excel.png)
no-repeat
left
center
}
.panel-input
{
display
:
inline-block
;
width
:
100%
}
.panel-col
,
.panel-col2
{
float
:
left
;
width
:
150px
;
margin
:
0
10px
10px
}
.panel-col2
{
width
:
280px
}
=======
ul
{
margin-top
:
0
}
.admin-icon-yellow
{
color
:
#ffbe40
}
.admin-header
{
font-size
:
1.4rem
;
margin-bottom
:
0
}
.admin-header-list
a
:hover
:after
{
content
:
none
}
.admin-main
{
background
:
#f3f3f3
}
.admin-menu
{
position
:
fixed
;
z-index
:
10
;
bottom
:
30px
;
right
:
20px
}
.admin-sidebar
{
width
:
260px
;
min-height
:
100%
;
float
:
left
;
border-right
:
1px
solid
#cecece
}
.admin-sidebar-list
{
margin-bottom
:
0
}
.admin-sidebar-list
li
a
{
color
:
#5c5c5c
;
padding-left
:
24px
}
.admin-sidebar-list
li
:first-child
{
border-top
:
none
}
.admin-sidebar-sub
{
margin-top
:
0
;
margin-bottom
:
0
;
box-shadow
:
0
16px
8px
-15px
#e2e2e2
inset
;
background
:
#ececec
;
padding-left
:
24px
}
.admin-sidebar-sub
li
:first-child
{
border-top
:
1px
solid
#dedede
}
.admin-sidebar-panel
{
margin
:
10px
}
.admin-content
{
width
:
auto
;
overflow
:
hidden
;
height
:
100%
;
background
:
#fff
}
.admin-content-list
{
border
:
1px
solid
#e9ecf1
;
margin-top
:
0
}
.admin-content-list
li
{
border
:
1px
solid
#e9ecf1
;
border-width
:
0
1px
;
margin-left
:
-1px
}
.admin-content-list
li
:first-child
{
border-left
:
none
}
.admin-content-list
li
:last-child
{
border-right
:
none
}
.admin-content-table
a
{
color
:
#535353
}
.admin-content-file
{
margin-bottom
:
0
;
color
:
#666
}
.admin-content-file
p
{
margin
:
0
0
5px
0
;
font-size
:
1.4rem
}
.admin-content-file
li
{
padding
:
10px
0
}
.admin-content-file
li
:first-child
{
border-top
:
none
}
.admin-content-file
li
:last-child
{
border-bottom
:
none
}
.admin-content-file
li
.am-progress
{
margin-bottom
:
4px
}
.admin-content-file
li
.am-progress-bar
{
line-height
:
14px
}
.admin-content-task
{
margin-bottom
:
0
}
.admin-content-task
li
{
padding
:
5px
0
;
border-color
:
#eee
}
.admin-content-task
li
:first-child
{
border-top
:
none
}
.admin-content-task
li
:last-child
{
border-bottom
:
none
}
.admin-task-meta
{
font-size
:
1.2rem
;
color
:
#999
}
.admin-task-bd
{
font-size
:
1.4rem
;
margin-bottom
:
5px
}
.admin-content-comment
{
margin-bottom
:
0
}
.admin-content-comment
.am-comment-bd
{
font-size
:
1.4rem
}
.admin-content-pagination
{
margin-bottom
:
0
}
.admin-content-pagination
li
a
{
padding
:
4px
8px
}
@media
only
screen
and
(
min-width
:
641px
){
.admin-sidebar
{
display
:
block
;
position
:
static
;
background
:
none
}
.admin-offcanvas-bar
{
position
:
static
;
width
:
auto
;
background
:
none
;
-webkit-transform
:
translate3d
(
0
,
0
,
0
);
-ms-transform
:
translate3d
(
0
,
0
,
0
);
transform
:
translate3d
(
0
,
0
,
0
)}
.admin-offcanvas-bar
:after
{
content
:
none
}}
@media
only
screen
and
(
max-width
:
640px
){
.admin-sidebar
{
width
:
inherit
}
.admin-offcanvas-bar
{
background
:
#f3f3f3
}
.admin-offcanvas-bar
:after
{
background
:
#BABABA
}
.admin-sidebar-list
a
:hover
,
.admin-sidebar-list
a
:active
{
-webkit-transition
:
background-color
.3s
ease
;
transition
:
background-color
.3s
ease
;
background
:
#E4E4E4
}
.admin-content-list
li
{
padding
:
10px
;
border-width
:
1px
0
;
margin-top
:
-1px
}
.admin-content-list
li
:first-child
{
border-top
:
none
}
.admin-content-list
li
:last-child
{
border-bottom
:
none
}
.admin-form-text
{
text-align
:
left
!important
}}
.user-info
{
margin-bottom
:
15px
}
.user-info
.am-progress
{
margin-bottom
:
4px
}
.user-info
p
{
margin
:
5px
}
.user-info-order
{
font-size
:
1.4rem
}
.error-log
.am-pre-scrollable
{
max-height
:
40rem
}
.table-main
{
font-size
:
1.4rem
;
padding
:
.5rem
}
.table-main
button
{
background
:
#fff
}
.table-check
{
width
:
30px
}
.table-id
{
width
:
50px
}
@media
only
screen
and
(
max-width
:
640px
){
.table-select
{
margin-top
:
10px
;
margin-left
:
5px
}}
.gallery-list
li
{
padding
:
10px
}
.gallery-list
a
{
color
:
#666
}
.gallery-list
a
:hover
{
color
:
#3bb4f2
}
.gallery-title
{
margin-top
:
6px
;
font-size
:
1.4rem
}
.gallery-desc
{
font-size
:
1.2rem
;
margin-top
:
4px
}
.page-404
{
background
:
#fff
;
border
:
none
;
width
:
200px
;
margin
:
0
auto
}
.fixed-layout
,
.fixed-layout
body
{
height
:
100%
;
overflow
:
hidden
}
.fixed-layout
.admin-header
{
position
:
fixed
;
top
:
0
;
left
:
0
;
right
:
0
;
z-index
:
1500
}
.fixed-layout
.admin-main
{
position
:
relative
;
height
:
100%
;
padding-top
:
51px
}
.fixed-layout
.admin-content
,
.fixed-layout
.admin-sidebar
{
height
:
100%
;
overflow-x
:
hidden
;
overflow-y
:
scroll
}
.fixed-layout
.admin-sidebar.am-active
{
z-index
:
1600
}
input
[
type
=
file
]
{
display
:
block
;
opacity
:
0
;
height
:
60px
;
width
:
100px
;
position
:
absolute
;
z-index
:
99
}
.form-horizontal
.form-group
{
margin-left
:
0px
;
margin-right
:
0px
}
.datepicker
{
display
:
none
;
position
:
absolute
;
padding
:
4px
;
margin-top
:
1px
;
direction
:
ltr
}
.datepicker.dropdown-menu
{
position
:
absolute
;
top
:
100%
;
left
:
0
;
z-index
:
1000
;
float
:
left
;
display
:
none
;
min-width
:
160px
;
list-style
:
none
;
background-color
:
#fff
;
border
:
1px
solid
rgba
(
0
,
0
,
0
,
0.2
);
border-radius
:
5px
;
box-shadow
:
0
5px
10px
rgba
(
0
,
0
,
0
,
0.2
);
background-clip
:
padding-box
;
*
border-right-width
:
2px
;
*
border-bottom-width
:
2px
;
color
:
#333
;
font-size
:
13px
;
line-height
:
18px
}
.datepicker.dropdown-menu
th
{
padding
:
4px
5px
}
.datepicker.dropdown-menu
td
{
padding
:
4px
5px
}
.datepicker
table
{
border
:
0
;
margin
:
0
;
width
:
auto
}
.datepicker
table
tr
td
span
{
display
:
block
;
width
:
23%
;
height
:
54px
;
line-height
:
54px
;
float
:
left
;
margin
:
1%
;
cursor
:
pointer
}
.datepicker
td
{
text-align
:
center
;
width
:
20px
;
height
:
20px
;
border
:
0
;
font-size
:
12px
;
padding
:
4px
8px
;
background
:
#fff
;
cursor
:
pointer
}
.datepicker
td
.active.day
,
.datepicker
td
.active.year
{
background
:
#2ba6cb
}
.datepicker
td
.old
,
.datepicker
td
.new
{
color
:
#999
}
.datepicker
td
span
.active
{
background
:
#2ba6cb
}
.datepicker
td
.day.disabled
{
color
:
#ccc
}
.datepicker
th
{
text-align
:
center
;
width
:
20px
;
height
:
20px
;
border
:
0
;
font-size
:
12px
;
padding
:
4px
8px
;
background
:
#fff
;
cursor
:
pointer
}
.datepicker
th
.active.day
,
.datepicker
th
.active.year
{
background
:
#2ba6cb
}
.datepicker
th
.date-switch
{
width
:
145px
}
.datepicker
th
span
.active
{
background
:
#2ba6cb
}
.datepicker
.cw
{
font-size
:
10px
;
width
:
12px
;
padding
:
0
2px
0
5px
;
vertical-align
:
middle
}
.datepicker.days
div
.datepicker-days
{
display
:
block
}
.datepicker.months
div
.datepicker-months
{
display
:
block
}
.datepicker.years
div
.datepicker-years
{
display
:
block
}
.datepicker
thead
tr
:first-child
th
{
cursor
:
pointer
}
.datepicker
thead
tr
:first-child
th
.cw
{
cursor
:
default
;
background-color
:
transparent
}
.datepicker
tfoot
tr
:first-child
th
{
cursor
:
pointer
}
.datepicker-inline
{
width
:
220px
}
.datepicker-rtl
{
direction
:
rtl
}
.datepicker-rtl
table
tr
td
span
{
float
:
right
}
.datepicker-dropdown
{
top
:
0
;
left
:
0
}
.datepicker-dropdown
:before
{
content
:
''
;
display
:
inline-block
;
border-left
:
7px
solid
transparent
;
border-right
:
7px
solid
transparent
;
border-bottom
:
7px
solid
#ccc
;
border-bottom-color
:
1px
solid
rgba
(
0
,
0
,
0
,
0.2
);
position
:
absolute
;
top
:
-7px
;
left
:
6px
}
.datepicker-dropdown
:after
{
content
:
''
;
display
:
inline-block
;
border-left
:
6px
solid
transparent
;
border-right
:
6px
solid
transparent
;
border-bottom
:
6px
solid
#fff
;
position
:
absolute
;
top
:
-6px
;
left
:
7px
}
.datepicker
>
div
,
.datepicker-dropdown
::before
,
.datepicker-dropdown
::after
{
display
:
none
}
.datepicker-close
{
position
:
absolute
;
top
:
-30px
;
right
:
0
;
width
:
15px
;
height
:
30px
;
padding
:
0
;
display
:
none
}
.table-striped
.datepicker
table
tr
td
,
.table-striped
.datepicker
table
tr
th
{
background-color
:
transparent
}
.panel-default
.panel-heading
{
border-top
:
1px
solid
#e7e7e7
}
.red
{
color
:
red
;
font-family
:
bold
}
input
[
type
=
date
],
input
[
type
=
time
],
input
[
type
=
datetime-local
],
input
[
type
=
month
]
{
line-height
:
0
!important
}
.show-grid
{
padding
:
10px
}
.brandBtn-group
{
width
:
150px
;
float
:
left
;
margin-right
:
8px
}
.brandBtn-group-lg
{
width
:
280px
}
.contentpanel
td
a
{
margin
:
0
3px
}
.mainwrapper
.toggle-table
tr
{
cursor
:
pointer
}
.mainwrapper
.toggle-table
tr
.level1
td
:nth-of-type
(
1
)
{
text-indent
:
2px
}
.mainwrapper
.toggle-table
tr
.level2
td
:nth-of-type
(
1
)
{
text-indent
:
15px
}
.mainwrapper
.toggle-table
tr
.level3
td
:nth-of-type
(
1
)
{
text-indent
:
30px
}
.pattrscroll
{
background
:
#F7F7F7
}
.pattrscroll
ul
{
padding-left
:
0
}
.pattrscroll
li
{
cursor
:
pointer
}
.mainwrapper
.list-group-item.level1
{
text-indent
:
2px
}
.mainwrapper
.list-group-item.level2
{
text-indent
:
15px
}
.mainwrapper
.list-group-item.level3
{
text-indent
:
30px
}
.attr-item-active
{
background
:
#428bca
;
color
:
#fff
}
.pannel-scroll
{
height
:
500px
;
overflow-y
:
scroll
;
overflow-x
:
hidden
}
.attr-select
{
display
:
block
;
height
:
40px
;
line-height
:
40px
;
border
:
1px
solid
#ccc
;
border-radius
:
3px
}
#limit-table-box
table
{
vertical-align
:
middle
}
#limit-table-box
table
th
,
#limit-table-box
table
td
{
text-align
:
center
;
vertical-align
:
middle
}
#limit-table-box
table
div
.checkbox
label
{
height
:
13px
}
#limit-table-box
table
.cover-img
{
width
:
100px
}
#limit-table-box
table
.width50
{
width
:
50px
;
text-align
:
center
}
.height40
{
height
:
40px
;
line-height
:
40px
}
.edit-cover-img
{
width
:
100px
;
margin
:
0
15px
;
float
:
left
}
.quota-text
,
.quota-img
,
.quota-video
{
width
:
300px
;
margin-bottom
:
15px
}
.quota-text
img
,
.quota-img
img
,
.quota-video
img
{
width
:
100%
}
#text-editor
{
width
:
100%
;
max-width
:
100%
;
min-width
:
100%
;
height
:
300px
;
max-height
:
300px
;
min-height
:
300px
}
.product-detail
input
[
type
=
"
text
"
]
{
width
:
100px
}
.main-table
{
-display
:
none
}
.bulk-import
{
display
:
none
}
#upload-input
{
display
:
inline-block
;
position
:
static
;
opacity
:
1
;
width
:
auto
;
height
:
auto
}
.excel-model
{
display
:
inline-block
;
width
:
110px
;
height
:
48px
;
line-height
:
48px
;
padding
:
0
0
0
50px
;
margin
:
0
200px
;
background
:
url(../images/excel.png)
no-repeat
left
center
}
.panel-input
{
display
:
inline-block
;
width
:
100%
}
.panel-col
,
.panel-col2
{
float
:
left
;
width
:
150px
;
margin
:
0
10px
10px
}
.panel-col2
{
width
:
280px
}
>>>>>>>
876ed17c45712b90ce4cdf08cf54e12354f6c96c
...
...
server/stub/service/upload.js
View file @
5c08673
...
...
@@ -8,17 +8,24 @@ exports.uploadFile=function(req,res){
// 方法1
if
(
req
.
is
(
"multipart/form-data"
)){
req
.
body
.
file
=
fs
.
createReadStream
(
req
.
files
[
req
.
body
.
filename
].
path
);
request
.
post
({
url
:
domain
+
'/fileupload/upload'
,
formData
:
req
.
body
},
function
optionalCallback
(
err
,
httpResponse
,
body
){
res
.
json
(
JSON
.
parse
(
body
));
});
if
(
req
.
body
.
type
==
"batch-import"
){
request
.
post
({
url
:
domain
+
'/batch/import'
,
formData
:
req
.
body
},
function
optionalCallback
(
err
,
httpResponse
,
body
){
res
.
json
(
JSON
.
parse
(
body
));
});
}
else
{
request
.
post
({
url
:
domain
+
'/fileupload/upload'
,
formData
:
req
.
body
},
function
optionalCallback
(
err
,
httpResponse
,
body
){
res
.
json
(
JSON
.
parse
(
body
));
});
}
}
else
{
res
.
json
({
code
:
"500"
,
message
:
"请求类型错误"
});
}
/*res.json({
"code":200,
"data" : "https://ss1.baidu.com/6ONXsjip0QIZ8tyhnq/it/u=1444256491,538988776&fm=80",
"message":"success"
});*/
// res.json({
// "code":200,
// "data" : "https://ss1.baidu.com/6ONXsjip0QIZ8tyhnq/it/u=1444256491,538988776&fm=80",
// "message":"success"
// });
//方法2
// req.pipe(request.post(domain+'/fileupload/upload'))
...
...
Please
register
or
login
to post a comment