Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
jinli gu
Litemall
Commits
32ea87b0
Commit
32ea87b0
authored
Jul 05, 2018
by
Junling Bu
Browse files
[litemall-admin, litemall-admin-api]: 管理后台调整
parent
a86ec8b6
Changes
24
Show whitespace changes
Inline
Side-by-side
litemall-admin/src/views/mall/brand.vue
View file @
32ea87b0
...
...
@@ -15,36 +15,25 @@
<!-- 查询结果 -->
<el-table
size=
"small"
:data=
"list"
v-loading=
"listLoading"
element-loading-text=
"正在查询中。。。"
border
fit
highlight-current-row
>
<el-table-column
type=
"expand"
>
<template
slot-scope=
"props"
>
</
template
>
</el-table-column>
<el-table-column
align=
"center"
width=
"150px"
label=
"品牌商ID"
prop=
"id"
sortable
>
</el-table-column>
<el-table-column
align=
"center"
min-width=
"100px"
label=
"品牌商名称"
prop=
"name"
>
</el-table-column>
<el-table-column
align=
"center"
min-width=
"300px"
label=
"介绍"
prop=
"simpleDesc"
>
<el-table-column
align=
"center"
label=
"品牌商ID"
prop=
"id"
>
</el-table-column>
<el-table-column
align=
"center"
min-width=
"50px"
label=
"
底价
"
prop=
"
floorPric
e"
>
<el-table-column
align=
"center"
label=
"
品牌商名称
"
prop=
"
nam
e"
>
</el-table-column>
<el-table-column
align=
"center"
min-width=
"100px"
label=
"是否显示"
prop=
"isShow
"
>
<el-table-column
align=
"center"
property=
"picUrl"
label=
"品牌商图片
"
>
<template
slot-scope=
"scope"
>
<
el-tag
:type=
"scope.row.isShow ? 'success' : 'error' "
>
{{
scope
.
row
.
isShow
?
'
可显示
'
:
'
不显示
'
}}
</el-tag
>
<
img
:src=
"scope.row.picUrl"
width=
"80"
v-if=
"scope.row.picUrl"
/
>
</
template
>
</el-table-column>
<el-table-column
align=
"center"
min-width=
"
1
00px"
label=
"
是否新上
"
prop=
"
isNew
"
>
<
template
slot-scope=
"scope"
>
<el-tag
:type=
"scope.row.isNew ? 'success' : 'error' "
>
{{
scope
.
row
.
isShow
?
'
是
'
:
'
否
'
}}
</el-tag>
</
template
>
<el-table-column
align=
"center"
min-width=
"
4
00px"
label=
"
介绍
"
prop=
"
desc
"
>
</el-table-column
>
<el-table-column
align=
"center"
label=
"底价"
prop=
"floorPrice"
>
</el-table-column>
<el-table-column
align=
"center"
label=
"操作"
width=
"2
5
0"
class-name=
"small-padding fixed-width"
>
<el-table-column
align=
"center"
label=
"操作"
width=
"2
0
0"
class-name=
"small-padding fixed-width"
>
<
template
slot-scope=
"scope"
>
<el-button
type=
"primary"
size=
"mini"
@
click=
"handleUpdate(scope.row)"
>
编辑
</el-button>
<el-button
type=
"danger"
size=
"mini"
@
click=
"handleDelete(scope.row)"
>
删除
</el-button>
...
...
@@ -66,51 +55,17 @@
<el-input
v-model=
"dataForm.name"
></el-input>
</el-form-item>
<el-form-item
label=
"介绍"
prop=
"simpleDesc"
>
<el-input
v-model=
"dataForm.
simpleD
esc"
></el-input>
<el-input
v-model=
"dataForm.
d
esc"
></el-input>
</el-form-item>
<el-form-item
label=
"品牌商图片"
prop=
"picUrl"
>
<el-input
v-model=
"dataForm.picUrl"
></el-input>
<el-upload
action=
"#"
list-type=
"picture"
:show-file-list=
"false"
:limit=
"1"
:http-request=
"uploadPicUrl"
>
<el-button
size=
"small"
type=
"primary"
>
点击上传
</el-button>
</el-upload>
</el-form-item>
<el-form-item
label=
"宣传图片"
prop=
"listPicUrl"
>
<el-input
v-model=
"dataForm.listPicUrl"
></el-input>
<el-upload
action=
"#"
list-type=
"picture"
:show-file-list=
"false"
:limit=
"1"
:http-request=
"uploadListPicUrl"
>
<el-button
size=
"small"
type=
"primary"
>
点击上传
</el-button>
</el-upload>
</el-form-item>
<el-form-item
label=
"APP宣传图片"
prop=
"appListPicUrl"
>
<el-input
v-model=
"dataForm.appListPicUrl"
></el-input>
<el-upload
action=
"#"
list-type=
"picture"
:show-file-list=
"false"
:limit=
"1"
:http-request=
"uploadAppListPicUrl"
>
<el-button
size=
"small"
type=
"primary"
>
点击上传
</el-button>
<el-upload
class=
"avatar-uploader"
:action=
'uploadPath'
list-type=
"picture-card"
:show-file-list=
"false"
accept=
".jpg,.jpeg,.png,.gif"
:on-success=
"uploadPicUrl"
>
<img
v-if=
"dataForm.picUrl"
:src=
"dataForm.picUrl"
class=
"avatar"
>
<i
v-else
class=
"el-icon-plus avatar-uploader-icon"
></i>
</el-upload>
</el-form-item>
<el-form-item
label=
"底价"
prop=
"floorPrice"
>
<el-input
v-model=
"dataForm.floorPrice"
></el-input>
</el-form-item>
<el-form-item
label=
"是否显示"
prop=
"isShow"
>
<el-select
v-model=
"dataForm.isShow"
placeholder=
"请选择"
>
<el-option
label=
"显示"
:value=
"true"
>
</el-option>
<el-option
label=
"不显示"
:value=
"false"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"是否新上"
prop=
"isNew"
>
<el-select
v-model=
"dataForm.isNew"
placeholder=
"请选择"
>
<el-option
label=
"新上"
:value=
"true"
>
</el-option>
<el-option
label=
"不是新上"
:value=
"false"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"新上宣传图片"
prop=
"newPicUrl"
v-if=
"dataForm.isNew === 'true'"
>
<el-input
v-model=
"dataForm.newPicUrl"
></el-input>
<el-upload
action=
"#"
list-type=
"picture"
:show-file-list=
"false"
:limit=
"1"
:http-request=
"uploadNewPicUrl"
>
<el-button
size=
"small"
type=
"primary"
>
点击上传
</el-button>
</el-upload>
</el-form-item>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"dialogFormVisible = false"
>
取消
</el-button>
...
...
@@ -123,27 +78,40 @@
</template>
<
style
>
.demo-table-expand
{
font-size
:
0
;
.avatar-uploader
.el-upload
{
border
:
1px
dashed
#d9d9d9
;
border-radius
:
6px
;
cursor
:
pointer
;
position
:
relative
;
overflow
:
hidden
;
}
.avatar-uploader
.el-upload
:hover
{
border-color
:
#20a0ff
;
}
.demo-table-expand
label
{
width
:
200px
;
color
:
#99a9bf
;
.avatar-uploader-icon
{
font-size
:
28px
;
color
:
#8c939d
;
width
:
120px
;
height
:
120px
;
line-height
:
120px
;
text-align
:
center
;
}
.demo-table-expand
.el-form-item
{
margin-right
:
0
;
margin-bottom
:
0
;
.avatar
{
width
:
120px
;
height
:
120px
;
display
:
block
;
}
</
style
>
<
script
>
import
{
listBrand
,
createBrand
,
updateBrand
,
deleteBrand
}
from
'
@/api/brand
'
import
{
createStorage
}
from
'
@/api/storage
'
import
{
uploadPath
}
from
'
@/api/storage
'
export
default
{
name
:
'
Brand
'
,
data
()
{
return
{
uploadPath
,
list
:
undefined
,
total
:
undefined
,
listLoading
:
true
,
...
...
@@ -157,14 +125,9 @@ export default {
dataForm
:
{
id
:
undefined
,
name
:
''
,
simpleD
esc
:
''
,
d
esc
:
''
,
floorPrice
:
undefined
,
picUrl
:
undefined
,
listPicUrl
:
undefined
,
appListPicUrl
:
undefined
,
isShow
:
undefined
,
isNew
:
undefined
,
newPicUrl
:
undefined
picUrl
:
undefined
},
dialogFormVisible
:
false
,
dialogStatus
:
''
,
...
...
@@ -173,7 +136,7 @@ export default {
create
:
'
创建
'
},
rules
:
{
name
:
[{
required
:
true
,
message
:
'
类目
名称不能为空
'
,
trigger
:
'
blur
'
}]
name
:
[{
required
:
true
,
message
:
'
品牌商
名称不能为空
'
,
trigger
:
'
blur
'
}]
},
downloadLoading
:
false
}
...
...
@@ -210,14 +173,9 @@ export default {
this
.
dataForm
=
{
id
:
undefined
,
name
:
''
,
simpleD
esc
:
''
,
d
esc
:
''
,
floorPrice
:
undefined
,
picUrl
:
undefined
,
listPicUrl
:
undefined
,
appListPicUrl
:
undefined
,
isShow
:
undefined
,
isNew
:
undefined
,
newPicUrl
:
undefined
picUrl
:
undefined
}
},
handleCreate
()
{
...
...
@@ -228,41 +186,8 @@ export default {
this
.
$refs
[
'
dataForm
'
].
clearValidate
()
})
},
uploadPicUrl
(
item
)
{
const
formData
=
new
FormData
()
formData
.
append
(
'
file
'
,
item
.
file
)
createStorage
(
formData
).
then
(
res
=>
{
this
.
dataForm
.
picUrl
=
res
.
data
.
data
.
url
}).
catch
(()
=>
{
this
.
$message
.
error
(
'
上传失败,请重新上传
'
)
})
},
uploadListPicUrl
(
item
)
{
const
formData
=
new
FormData
()
formData
.
append
(
'
file
'
,
item
.
file
)
createStorage
(
formData
).
then
(
res
=>
{
this
.
dataForm
.
listPicUrl
=
res
.
data
.
data
.
url
}).
catch
(()
=>
{
this
.
$message
.
error
(
'
上传失败,请重新上传
'
)
})
},
uploadAppListPicUrl
(
item
)
{
const
formData
=
new
FormData
()
formData
.
append
(
'
file
'
,
item
.
file
)
createStorage
(
formData
).
then
(
res
=>
{
this
.
dataForm
.
appListPicUrl
=
res
.
data
.
data
.
url
}).
catch
(()
=>
{
this
.
$message
.
error
(
'
上传失败,请重新上传
'
)
})
},
uploadNewPicUrl
(
item
)
{
const
formData
=
new
FormData
()
formData
.
append
(
'
file
'
,
item
.
file
)
createStorage
(
formData
).
then
(
res
=>
{
this
.
dataForm
.
newPicUrl
=
res
.
data
.
data
.
url
}).
catch
(()
=>
{
this
.
$message
.
error
(
'
上传失败,请重新上传
'
)
})
uploadPicUrl
:
function
(
response
)
{
this
.
dataForm
.
picUrl
=
response
.
data
.
data
.
url
},
createData
()
{
this
.
$refs
[
'
dataForm
'
].
validate
((
valid
)
=>
{
...
...
@@ -325,8 +250,8 @@ export default {
handleDownload
()
{
this
.
downloadLoading
=
true
import
(
'
@/vendor/Export2Excel
'
).
then
(
excel
=>
{
const
tHeader
=
[
'
品牌商ID
'
,
'
品牌商名称
'
,
'
介绍
'
,
'
低价
'
,
'
是否显示
'
,
'
品牌商图片
'
,
'
宣传图片
'
,
'
APP宣传图片
'
,
'
是否新上
'
,
'
新上宣传
图片
'
]
const
filterVal
=
[
'
id
'
,
'
name
'
,
'
simpleD
esc
'
,
'
floorPrice
'
,
'
isShow
'
,
'
picUrl
'
,
'
listPicUrl
'
,
'
appListPicUrl
'
,
'
isNew
'
,
'
newP
icUrl
'
]
const
tHeader
=
[
'
品牌商ID
'
,
'
品牌商名称
'
,
'
介绍
'
,
'
低价
'
,
'
品牌商
图片
'
]
const
filterVal
=
[
'
id
'
,
'
name
'
,
'
d
esc
'
,
'
floorPrice
'
,
'
p
icUrl
'
]
excel
.
export_json_to_excel2
(
tHeader
,
this
.
list
,
filterVal
,
'
品牌商信息
'
)
this
.
downloadLoading
=
false
})
...
...
litemall-admin/src/views/mall/category.vue
View file @
32ea87b0
...
...
@@ -15,54 +15,41 @@
<!-- 查询结果 -->
<el-table
size=
"small"
:data=
"list"
v-loading=
"listLoading"
element-loading-text=
"正在查询中。。。"
border
fit
highlight-current-row
>
<el-table-column
type=
"expand"
>
<template
slot-scope=
"props"
>
<el-form
label-position=
"left"
class=
"demo-table-expand"
>
<el-form-item
label=
"首页页面类目图标"
>
<img
:src=
"props.row.iconUrl"
>
</el-form-item>
<el-form-item
label=
"首页页面类目横幅图片"
>
<img
:src=
"props.row.bannerUrl"
>
</el-form-item>
<el-form-item
label=
"类目页标题"
>
<span>
{{
props
.
row
.
frontName
}}
</span>
</el-form-item>
<el-form-item
label=
"类目页介绍"
>
<span>
{{
props
.
row
.
frontDesc
}}
</span>
</el-form-item>
<el-form-item
label=
"类目页横幅"
>
<img
:src=
"props.row.wapBannerUrl"
>
</el-form-item>
</el-form>
<el-table-column
align=
"center"
label=
"类目ID"
prop=
"id"
>
</el-table-column>
<el-table-column
align=
"center"
label=
"类目名"
prop=
"name"
>
</el-table-column>
<el-table-column
align=
"center"
property=
"iconUrl"
label=
"类目图标"
>
<template
slot-scope=
"scope"
>
<img
:src=
"scope.row.iconUrl"
width=
"40"
v-if=
"scope.row.iconUrl"
/>
</
template
>
</el-table-column>
<el-table-column
align=
"center"
width=
"100px"
label=
"类目ID"
prop=
"id"
sortable
>
<el-table-column
align=
"center"
property=
"picUrl"
label=
"类目图片"
>
<
template
slot-scope=
"scope"
>
<img
:src=
"scope.row.picUrl"
width=
"80"
v-if=
"scope.row.picUrl"
/>
</
template
>
</el-table-column>
<el-table-column
align=
"center"
min-width=
"100px"
label=
"
名称
"
prop=
"
name
"
>
<el-table-column
align=
"center"
label=
"
关键字
"
prop=
"
keyword
"
>
</el-table-column>
<el-table-column
align=
"center"
min-width=
"100
px
"
label=
"
关键字
"
prop=
"
keyword
"
>
<el-table-column
align=
"center"
min-width=
"100"
label=
"
简介
"
prop=
"
desc
"
>
</el-table-column>
<el-table-column
align=
"center"
min-width=
"100px"
label=
"级别"
prop=
"level"
<el-table-column
align=
"center"
label=
"级别"
prop=
"level"
:filters=
"[{ text: '一级类目', value: 'L1' }, { text: '二级类目', value: 'L2' }]"
:filter-method=
"filterLevel"
>
<
template
slot-scope=
"scope"
>
<el-tag
:type=
"scope.row.level === 'L1' ? 'primary' : 'info' "
>
{{
scope
.
row
.
level
===
'
L1
'
?
'
一级类目
'
:
'
二级类目
'
}}
</el-tag>
</
template
>
</el-table-column>
<el-table-column
align=
"center"
min-width=
"100px"
label=
"父类目ID"
prop=
"parentId"
>
</el-table-column>
<el-table-column
align=
"center"
min-width=
"100px"
label=
"是否显示"
prop=
"isShow"
>
<
template
slot-scope=
"scope"
>
<el-tag
:type=
"scope.row.isShow ? 'success' : 'error' "
>
{{
scope
.
row
.
isShow
?
'
可显示
'
:
'
不显示
'
}}
</el-tag>
</
template
>
<el-table-column
align=
"center"
label=
"父类目ID"
prop=
"pid"
>
</el-table-column>
<el-table-column
align=
"center"
label=
"操作"
width=
"2
5
0"
class-name=
"small-padding fixed-width"
>
<el-table-column
align=
"center"
label=
"操作"
width=
"2
0
0"
class-name=
"small-padding fixed-width"
>
<
template
slot-scope=
"scope"
>
<el-button
type=
"primary"
size=
"mini"
@
click=
"handleUpdate(scope.row)"
>
编辑
</el-button>
<el-button
type=
"danger"
size=
"mini"
@
click=
"handleDelete(scope.row)"
>
删除
</el-button>
...
...
@@ -83,10 +70,10 @@
<el-form-item
label=
"类目名称"
prop=
"name"
>
<el-input
v-model=
"dataForm.name"
></el-input>
</el-form-item>
<el-form-item
label=
"
类目
关键字"
prop=
"keyword"
>
<el-form-item
label=
"关键字"
prop=
"keyword"
>
<el-input
v-model=
"dataForm.keyword"
></el-input>
</el-form-item>
<el-form-item
label=
"
类目
级别"
prop=
"level"
>
<el-form-item
label=
"级别"
prop=
"level"
>
<el-select
v-model=
"dataForm.level"
placeholder=
"请选择"
>
<el-option
label=
"一级类目"
value=
"L1"
>
</el-option>
...
...
@@ -94,35 +81,26 @@
</el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"父类目"
prop=
"p
arentI
d"
v-if=
"dataForm.level === 'L2'"
>
<el-select
v-model=
"dataForm.p
arentId"
placeholder=
"请选择
"
>
<el-option
v-for=
"
(key, val)
in catL1"
:key=
"
key"
:label=
"key
"
:value=
"val"
>
<el-form-item
label=
"父类目"
prop=
"p
i
d"
v-if=
"dataForm.level === 'L2'"
>
<el-select
v-model=
"dataForm.p
id
"
>
<el-option
v-for=
"
item
in catL1"
:key=
"
item.value"
:label=
"item.label
"
:value=
"
item.
val
ue
"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"图标"
prop=
"iconUrl"
>
<el-
input
v-model=
"dataForm.iconUrl"
></el-input
>
<
el-upload
action=
"#"
list-type=
"picture"
:show-file-list=
"false"
:limit=
"1"
:http-request=
"handleIconUrl
"
>
<el-button
size=
"small"
type=
"primary"
>
点击上传
</el-button
>
<el-form-item
label=
"
类目
图标"
prop=
"iconUrl"
>
<el-
upload
class=
"avatar-uploader"
:action=
'uploadPath'
list-type=
"picture-card"
:show-file-list=
"false"
accept=
".jpg,.jpeg,.png,.gif"
:on-success=
"uploadIconUrl"
>
<
img
v-if=
"dataForm.iconUrl"
:src=
"dataForm.iconUrl"
class=
"avatar
"
>
<i
v-else
class=
"el-icon-plus avatar-uploader-icon"
></i
>
</el-upload>
</el-form-item>
<el-form-item
label=
"
首页横幅
"
prop=
"
banner
Url"
>
<el-
input
v-model=
"dataForm.bannerUrl"
></el-input
>
<
el-upload
action=
"#"
list-type=
"picture"
:show-file-list=
"false"
:limit=
"1"
:http-request=
"handleBannerUrl
"
>
<el-button
size=
"small"
type=
"primary"
>
点击上传
</el-button
>
<el-form-item
label=
"
类目图片
"
prop=
"
pic
Url"
>
<el-
upload
class=
"avatar-uploader"
:action=
'uploadPath'
list-type=
"picture-card"
:show-file-list=
"false"
accept=
".jpg,.jpeg,.png,.gif"
:on-success=
"uploadPicUrl"
>
<
img
v-if=
"dataForm.picUrl"
:src=
"dataForm.picUrl"
class=
"avatar
"
>
<i
v-else
class=
"el-icon-plus avatar-uploader-icon"
></i
>
</el-upload>
</el-form-item>
<el-form-item
label=
"类目页标题"
prop=
"frontName"
>
<el-input
v-model=
"dataForm.frontName"
></el-input>
</el-form-item>
<el-form-item
label=
"类目页介绍"
prop=
"frontDesc"
>
<el-input
v-model=
"dataForm.frontDesc"
></el-input>
</el-form-item>
<el-form-item
label=
"类目页横幅"
prop=
"wapBannerUrl"
>
<el-input
v-model=
"dataForm.wapBannerUrl"
></el-input>
<el-upload
action=
"#"
list-type=
"picture"
:show-file-list=
"false"
:limit=
"1"
:http-request=
"handleWapBannerUrl"
>
<el-button
size=
"small"
type=
"primary"
>
点击上传
</el-button>
</el-upload>
<el-form-item
label=
"类目简介"
prop=
"desc"
>
<el-input
v-model=
"dataForm.desc"
></el-input>
</el-form-item>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
...
...
@@ -136,27 +114,40 @@
</template>
<
style
>
.demo-table-expand
{
font-size
:
0
;
.avatar-uploader
.el-upload
{
border
:
1px
dashed
#d9d9d9
;
border-radius
:
6px
;
cursor
:
pointer
;
position
:
relative
;
overflow
:
hidden
;
}
.avatar-uploader
.el-upload
:hover
{
border-color
:
#20a0ff
;
}
.demo-table-expand
label
{
width
:
200px
;
color
:
#99a9bf
;
.avatar-uploader-icon
{
font-size
:
28px
;
color
:
#8c939d
;
width
:
120px
;
height
:
120px
;
line-height
:
120px
;
text-align
:
center
;
}
.demo-table-expand
.el-form-item
{
margin-right
:
0
;
margin-bottom
:
0
;
.avatar
{
width
:
120px
;
height
:
120px
;
display
:
block
;
}
</
style
>
<
script
>
import
{
listCategory
,
listCatL1
,
createCategory
,
updateCategory
,
deleteCategory
}
from
'
@/api/category
'
import
{
createStorage
}
from
'
@/api/storage
'
import
{
uploadPath
}
from
'
@/api/storage
'
export
default
{
name
:
'
Category
'
,
data
()
{
return
{
uploadPath
,
list
:
undefined
,
total
:
undefined
,
listLoading
:
true
,
...
...
@@ -172,14 +163,11 @@ export default {
id
:
undefined
,
name
:
''
,
keyword
:
''
,
level
:
'
L1
'
,
parentId
:
''
,
isShow
:
'
true
'
,
frontName
:
''
,
frontDesc
:
''
,
level
:
'
L2
'
,
pid
:
1005000
,
desc
:
''
,
iconUrl
:
undefined
,
bannerUrl
:
undefined
,
wapBannerUrl
:
undefined
picUrl
:
undefined
},
dialogFormVisible
:
false
,
dialogStatus
:
''
,
...
...
@@ -188,8 +176,7 @@ export default {
create
:
'
创建
'
},
rules
:
{
name
:
[{
required
:
true
,
message
:
'
类目名称不能为空
'
,
trigger
:
'
blur
'
}],
keyword
:
[{
required
:
true
,
message
:
'
类目关键字不能为空
'
,
trigger
:
'
blur
'
}]
name
:
[{
required
:
true
,
message
:
'
类目名不能为空
'
,
trigger
:
'
blur
'
}]
},
downloadLoading
:
false
}
...
...
@@ -233,14 +220,11 @@ export default {
id
:
undefined
,
name
:
''
,
keyword
:
''
,
level
:
'
L1
'
,
parentId
:
''
,
isShow
:
'
true
'
,
frontName
:
''
,
frontDesc
:
''
,
level
:
'
L2
'
,
pid
:
1005000
,
desc
:
''
,
iconUrl
:
undefined
,
bannerUrl
:
undefined
,
wapBannerUrl
:
undefined
picUrl
:
undefined
}
},
filterLevel
(
value
,
row
)
{
...
...
@@ -254,32 +238,11 @@ export default {
this
.
$refs
[
'
dataForm
'
].
clearValidate
()
})
},
handleIconUrl
(
item
)
{
const
formData
=
new
FormData
()
formData
.
append
(
'
file
'
,
item
.
file
)
createStorage
(
formData
).
then
(
res
=>
{
this
.
dataForm
.
iconUrl
=
res
.
data
.
data
.
url
}).
catch
(()
=>
{
this
.
$message
.
error
(
'
上传失败,请重新上传
'
)
})
uploadIconUrl
:
function
(
response
)
{
this
.
dataForm
.
iconUrl
=
response
.
data
.
data
.
url
},
handleBannerUrl
(
item
)
{
const
formData
=
new
FormData
()
formData
.
append
(
'
file
'
,
item
.
file
)
createStorage
(
formData
).
then
(
res
=>
{
this
.
dataForm
.
bannerUrl
=
res
.
data
.
data
.
url
}).
catch
(()
=>
{
this
.
$message
.
error
(
'
上传失败,请重新上传
'
)
})
},
handleWapBannerUrl
(
item
)
{
const
formData
=
new
FormData
()
formData
.
append
(
'
file
'
,
item
.
file
)
createStorage
(
formData
).
then
(
res
=>
{
this
.
dataForm
.
wapBannerUrl
=
res
.
data
.
data
.
url
}).
catch
(()
=>
{
this
.
$message
.
error
(
'
上传失败,请重新上传
'
)
})
uploadPicUrl
:
function
(
response
)
{
this
.
dataForm
.
picUrl
=
response
.
data
.
data
.
url
},
createData
()
{
this
.
$refs
[
'
dataForm
'
].
validate
((
valid
)
=>
{
...
...
@@ -342,8 +305,8 @@ export default {
handleDownload
()
{
this
.
downloadLoading
=
true
import
(
'
@/vendor/Export2Excel
'
).
then
(
excel
=>
{
const
tHeader
=
[
'
类目ID
'
,
'
名称
'
,
'
关键字
'
,
'
级别
'
,
'
父类目ID
'
,
'
是否显示
'
,
'
图标
'
,
'
首页横幅
'
,
'
类目页标题
'
,
'
类目页介绍
'
,
'
类目页横幅
'
]
const
filterVal
=
[
'
id
'
,
'
name
'
,
'
keyword
'
,
'
level
'
,
'
p
arentId
'
,
'
isShow
'
,
'
iconUrl
'
,
'
banner
Url
'
,
'
frontName
'
,
'
frontDesc
'
,
'
wapBannerUrl
'
]
const
tHeader
=
[
'
类目ID
'
,
'
名称
'
,
'
关键字
'
,
'
级别
'
,
'
父类目ID
'
,
'
类目图标
'
,
'
类目图片
'
,
'
简介
'
]
const
filterVal
=
[
'
id
'
,
'
name
'
,
'
keyword
'
,
'
level
'
,
'
p
id
'
,
'
iconUrl
'
,
'
pic
Url
'
,
'
desc
'
]
excel
.
export_json_to_excel2
(
tHeader
,
this
.
list
,
filterVal
,
'
商品类目信息
'
)
this
.
downloadLoading
=
false
})
...
...
litemall-admin/src/views/mall/keyword.vue
View file @
32ea87b0
...
...
@@ -24,7 +24,7 @@
<el-table-column
align=
"center"
min-width=
"300px"
label=
"跳转链接"
prop=
"url"
>
</el-table-column>
<el-table-column
align=
"center"
min-width=
"100px"
label=
"是否
热门
"
prop=
"isHot"
>
<el-table-column
align=
"center"
min-width=
"100px"
label=
"是否
推荐
"
prop=
"isHot"
>
<template
slot-scope=
"scope"
>
<el-tag
:type=
"scope.row.isHot ? 'success' : 'error' "
>
{{
scope
.
row
.
isHot
?
'
是
'
:
'
否
'
}}
</el-tag>
</
template
>
...
...
@@ -36,12 +36,6 @@
</
template
>
</el-table-column>
<el-table-column
align=
"center"
min-width=
"100px"
label=
"是否显示"
prop=
"isShow"
>
<
template
slot-scope=
"scope"
>
<el-tag
:type=
"scope.row.isShow ? 'success' : 'error' "
>
{{
scope
.
row
.
isShow
?
'
可显示
'
:
'
不显示
'
}}
</el-tag>
</
template
>
</el-table-column>
<el-table-column
align=
"center"
label=
"操作"
width=
"250"
class-name=
"small-padding fixed-width"
>
<
template
slot-scope=
"scope"
>
<el-button
type=
"primary"
size=
"mini"
@
click=
"handleUpdate(scope.row)"
>
编辑
</el-button>
...
...
@@ -66,11 +60,11 @@
<el-form-item
label=
"跳转链接"
prop=
"url"
>
<el-input
v-model=
"dataForm.url"
></el-input>
</el-form-item>
<el-form-item
label=
"是否
热门
"
prop=
"isHot"
>
<el-form-item
label=
"是否
推荐
"
prop=
"isHot"
>
<el-select
v-model=
"dataForm.isHot"
placeholder=
"请选择"
>
<el-option
label=
"
热门
"
:value=
"true"
>
<el-option
label=
"
推荐
"
:value=
"true"
>
</el-option>
<el-option
label=
"
非热门
"
:value=
"false"
>
<el-option
label=
"
普通
"
:value=
"false"
>
</el-option>
</el-select>
</el-form-item>
...
...
@@ -82,14 +76,6 @@
</el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"是否显示"
prop=
"isShow"
>
<el-select
v-model=
"dataForm.isShow"
placeholder=
"请选择"
>
<el-option
label=
"显示"
:value=
"true"
>
</el-option>
<el-option
label=
"不显示"
:value=
"false"
>
</el-option>
</el-select>
</el-form-item>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"dialogFormVisible = false"
>
取消
</el-button>
...
...
@@ -101,20 +87,6 @@
</div>
</template>
<
style
>
.demo-table-expand
{
font-size
:
0
;
}
.demo-table-expand
label
{
width
:
200px
;
color
:
#99a9bf
;
}
.demo-table-expand
.el-form-item
{
margin-right
:
0
;
margin-bottom
:
0
;
}
</
style
>
<
script
>
import
{
listKeyword
,
createKeyword
,
updateKeyword
,
deleteKeyword
}
from
'
@/api/keyword
'
...
...
@@ -136,9 +108,8 @@ export default {
id
:
undefined
,
keyword
:
undefined
,
url
:
undefined
,
isNew
:
undefined
,
isDefault
:
undefined
,
isShow
:
undefined
isHot
:
undefined
,
isDefault
:
undefined
},
dialogFormVisible
:
false
,
dialogStatus
:
''
,
...
...
@@ -147,8 +118,7 @@ export default {
create
:
'
创建
'
},
rules
:
{
keyword
:
[{
required
:
true
,
message
:
'
关键词不能为空
'
,
trigger
:
'
blur
'
}],
url
:
[{
required
:
true
,
message
:
'
跳转链接称不能为空
'
,
trigger
:
'
blur
'
}]
keyword
:
[{
required
:
true
,
message
:
'
关键词不能为空
'
,
trigger
:
'
blur
'
}]
},
downloadLoading
:
false
}
...
...
@@ -186,9 +156,8 @@ export default {
id
:
undefined
,
keyword
:
undefined
,
url
:
undefined
,
isNew
:
undefined
,
isDefault
:
undefined
,
isShow
:
undefined
isHot
:
undefined
,
isDefault
:
undefined
}
},
handleCreate
()
{
...
...
@@ -260,9 +229,9 @@ export default {
handleDownload
()
{
this
.
downloadLoading
=
true
import
(
'
@/vendor/Export2Excel
'
).
then
(
excel
=>
{
const
tHeader
=
[
'
关键词ID
'
,
'
关键词
'
,
'
跳转链接
'
,
'
是否
新上
'
,
'
是否默认
'
,
'
是否显示
'
]
const
filterVal
=
[
'
id
'
,
'
keyword
'
,
'
url
'
,
'
is
New
'
,
'
isDefault
'
,
'
isShow
'
]
excel
.
export_json_to_excel2
(
tHeader
,
this
.
list
,
filterVal
,
'
关键词
信息
'
)
const
tHeader
=
[
'
关键词ID
'
,
'
关键词
'
,
'
跳转链接
'
,
'
是否
推荐
'
,
'
是否默认
'
]
const
filterVal
=
[
'
id
'
,
'
keyword
'
,
'
url
'
,
'
is
Hot
'
,
'
isDefault
'
]
excel
.
export_json_to_excel2
(
tHeader
,
this
.
list
,
filterVal
,
'
关键词
设置
'
)
this
.
downloadLoading
=
false
})
}
...
...
litemall-core/src/main/java/org/linlinjava/litemall/core/util/JacksonUtil.java
View file @
32ea87b0
...
...
@@ -85,6 +85,22 @@ public class JacksonUtil {
return
null
;
}
public
static
Byte
parseByte
(
String
body
,
String
field
)
{
ObjectMapper
mapper
=
new
ObjectMapper
();
JsonNode
node
=
null
;
try
{
node
=
mapper
.
readTree
(
body
);
JsonNode
leaf
=
node
.
get
(
field
);
if
(
leaf
!=
null
)
{
Integer
value
=
leaf
.
asInt
();
return
value
.
byteValue
();
}
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
return
null
;
}
public
static
<
T
>
T
parseObject
(
String
body
,
String
field
,
Class
<
T
>
clazz
)
{
ObjectMapper
mapper
=
new
ObjectMapper
();
JsonNode
node
=
null
;
...
...
@@ -112,4 +128,5 @@ public class JacksonUtil {
return
null
;
}
}
Prev
1
2
Next
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment