Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
R
rs-cloud-platform-ui
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
2
Merge Requests
2
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
周健威
rs-cloud-platform-ui
Commits
28728079
Commit
28728079
authored
Dec 06, 2020
by
Xiaxuxia
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
添加影像图库
parent
67985215
Changes
13
Show whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
1168 additions
and
197 deletions
+1168
-197
index.js
src/api/website/imageLibrary/index.js
+17
-0
index.vue
src/components/CustomForm/index.vue
+9
-3
index.vue
src/components/CustomInput/index.vue
+221
-50
singleImageX.vue
src/components/Upload/singleImageX.vue
+6
-0
formDatas.js
src/utils/formDatas.js
+48
-5
bannerSetting.vue
src/views/webSiteManagement/bannerSetting.vue
+267
-0
index.vue
src/views/webSiteManagement/bannerSetting/index.vue
+37
-53
edit.vue
src/views/webSiteManagement/imageLibrary/edit.vue
+243
-0
index.vue
src/views/webSiteManagement/imageLibrary/index.vue
+29
-16
list.vue
src/views/webSiteManagement/imageLibrary/list.vue
+216
-0
edit.vue
src/views/webSiteManagement/satelliteIntroduction/edit.vue
+21
-2
index.vue
src/views/webSiteManagement/satelliteIntroduction/index.vue
+20
-6
list.vue
src/views/webSiteManagement/satelliteIntroduction/list.vue
+34
-62
No files found.
src/api/website/imageLibrary/index.js
0 → 100644
View file @
28728079
import
fetch
from
'utils/fetch'
;
export
function
page
(
query
)
{
return
fetch
({
url
:
'/api/website/imageImgStorage/getList'
,
method
:
'get'
,
params
:
query
});
}
export
function
update
(
query
)
{
return
fetch
({
url
:
'/api/website/imageImgStorage/addUpdate'
,
method
:
'post'
,
data
:
query
});
}
src/components/CustomForm/index.vue
View file @
28728079
...
@@ -24,7 +24,7 @@
...
@@ -24,7 +24,7 @@
</div>
</div>
<div
v-else-if=
"item.type && item.type == 'kindEditor'"
>
<div
v-else-if=
"item.type && item.type == 'kindEditor'"
>
<kind-editor
id=
"editor_id"
:content
.
sync=
"
content"
:afterChange=
"afterChange()"
:loadStyleMode=
"false"
@
on-content-change=
"onContentChange"
></kind-editor>
<kind-editor
id=
"editor_id"
:content
.
sync=
"
getForm.formVal.content"
:afterChange=
"afterChange()"
:loadStyleMode=
"false"
@
on-content-change=
"onContentChange"
></kind-editor>
</div>
</div>
<!-- 输入框 -->
<!-- 输入框 -->
...
@@ -71,6 +71,7 @@ export default {
...
@@ -71,6 +71,7 @@ export default {
methods
:
{
methods
:
{
onContentChange
(
val
)
{
onContentChange
(
val
)
{
console
.
log
(
val
)
console
.
log
(
val
)
this
.
getForm
.
formVal
.
content
=
val
;
},
},
afterChange
()
{
afterChange
()
{
...
@@ -88,7 +89,12 @@ export default {
...
@@ -88,7 +89,12 @@ export default {
//获取自定义组件值
//获取自定义组件值
getCustomInput
(
val
)
{
getCustomInput
(
val
)
{
let
formVal
=
this
.
getForm
.
formVal
let
formVal
=
this
.
getForm
.
formVal
formVal
.
url
=
val
if
(
val
.
jumpType
==
1
)
{
formVal
.
url
=
val
.
value
}
else
{
formVal
.
jumpId
=
val
.
value
}
},
},
submitForm
()
{
submitForm
()
{
let
_this
=
this
;
let
_this
=
this
;
...
@@ -114,7 +120,7 @@ export default {
...
@@ -114,7 +120,7 @@ export default {
this
.
$refs
.
customInput
[
0
].
showErr
(
'请选择'
)
this
.
$refs
.
customInput
[
0
].
showErr
(
'请选择'
)
return
false
return
false
}
}
this
.
$refs
.
customInput
[
0
].
showErr
(
''
)
this
.
$refs
.
customInput
&&
this
.
$refs
.
customInput
[
0
].
showErr
(
''
)
return
true
return
true
},
},
resetForm
()
{
resetForm
()
{
...
...
src/components/CustomInput/index.vue
View file @
28728079
...
@@ -9,11 +9,14 @@
...
@@ -9,11 +9,14 @@
</el-option>
</el-option>
</el-select>
</el-select>
<!-- 外部链接 -->
<div
class=
"link-type-input"
v-if=
"select.jumpType === 1"
>
<div
class=
"link-type-input"
v-if=
"select.jumpType === 1"
>
<el-input
v-model=
"select.
url
"
placeholder=
"请输入外部链接"
@
input=
"blurFunc"
></el-input>
<el-input
v-model=
"select.
value
"
placeholder=
"请输入外部链接"
@
input=
"blurFunc"
></el-input>
</div>
</div>
<!-- 卫星影像 -->
<div
class=
"link-type-input"
v-if=
"select.jumpType === 2"
>
<div
class=
"link-type-input"
v-if=
"select.jumpType === 2"
>
<el-select
v-model=
"select.
jumpId
"
placeholder=
"请选择"
>
<el-select
v-model=
"select.
value
"
placeholder=
"请选择"
>
<el-option
<el-option
v-for=
"item in satelliteList"
v-for=
"item in satelliteList"
:key=
"item.value"
:key=
"item.value"
...
@@ -22,12 +25,17 @@
...
@@ -22,12 +25,17 @@
</el-option>
</el-option>
</el-select>
</el-select>
</div>
</div>
<!-- 星云动态 -->
<div
class=
"link-type-input"
v-if=
"select.jumpType === 3"
>
<div
class=
"link-type-input"
v-if=
"select.jumpType === 3"
>
<el-button
type=
"primary"
icon=
"el-icon-plus"
v-if=
"!select.jumpId"
@
click=
"visible.news = true"
>
选择动态
</el-button>
<el-button
type=
"primary"
icon=
"el-icon-plus"
v-if=
"!select.value"
@
click=
"news.visible = true"
>
选择动态
</el-button>
<el-tag
type=
"success"
v-if=
"select.jumpId"
>
已选择
</el-tag>
<!-- 点击为更换的意思 -->
<el-tag
type=
"success"
v-if=
"select.value"
@
click=
"news.visible = true"
>
{{
getName
(
'news'
,
select
.
value
,
'title'
)
}}
</el-tag>
</div>
</div>
<!-- 行业应用类别 -->
<div
class=
"link-type-input"
v-if=
"select.jumpType === 4"
>
<div
class=
"link-type-input"
v-if=
"select.jumpType === 4"
>
<el-select
v-model=
"select.
jumpId
"
placeholder=
"请选择"
>
<el-select
v-model=
"select.
value
"
placeholder=
"请选择"
>
<el-option
<el-option
v-for=
"item in applicationList"
v-for=
"item in applicationList"
:key=
"item.value"
:key=
"item.value"
...
@@ -36,41 +44,126 @@
...
@@ -36,41 +44,126 @@
</el-option>
</el-option>
</el-select>
</el-select>
</div>
</div>
<!-- 行业应用详情 -->
<div
class=
"link-type-input"
v-if=
"select.jumpType === 5"
>
<div
class=
"link-type-input"
v-if=
"select.jumpType === 5"
>
<el-button
type=
"primary"
icon=
"el-icon-plus"
v-if=
"!select.
jumpId"
@
click=
"visible.details
= true"
>
选择应用详情
</el-button>
<el-button
type=
"primary"
icon=
"el-icon-plus"
v-if=
"!select.
value"
@
click=
"details.visible
= true"
>
选择应用详情
</el-button>
<el-tag
type=
"success"
v-if=
"select.
jumpId"
>
已选择
</el-tag>
<el-tag
type=
"success"
v-if=
"select.
value"
@
click=
"details.visible = true"
>
{{
getName
(
'details'
,
select
.
value
)
}}
</el-tag>
</div>
</div>
<div
class=
"el-form-item__error"
v-if=
"select.jumpType !== 0 && !!hasErr"
>
{{
hasErr
}}
</div>
<div
class=
"el-form-item__error"
v-if=
"select.jumpType !== 0 && !!hasErr"
>
{{
hasErr
}}
</div>
<!-- 动态弹窗 -->
<!-- 动态弹窗 news-->
<el-dialog
title=
"星云动态"
:visible
.
sync=
"visible.news"
append-to-body
>
<el-dialog
title=
"星云动态"
:visible
.
sync=
"news.visible"
append-to-body
width=
"80%"
style=
"height: 100%"
>
<el-table
:data=
"newsList"
>
<el-table
size=
"mini"
:data=
"news.datas"
border
fit
highlight-current-row
current-row-key=
"id"
<el-table-column
type=
"index"
label=
"序号"
width=
"50"
></el-table-column>
@
current-change=
"(val) => handleCurrentChange('news', val)"
style=
"width: 100%"
height=
"500px"
>
<el-table-column
property=
"title"
label=
"标题"
width=
"200"
></el-table-column>
<el-table-column
label=
"序号"
width=
"50"
align=
"center"
>
<el-table-column
property=
"address"
label=
"简介"
></el-table-column>
<template
slot-scope=
"scope"
>
<el-table-column
property=
"address"
label=
"类型"
></el-table-column>
<span>
{{
scope
.
row
.
id
}}
</span>
<el-table-column
label=
"操作"
>
</
template
>
</el-table-column>
<el-table-column
label=
"资讯标题"
width=
"200"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
title
}}
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"缩略图"
width=
"150"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<span>
<img
class=
"icon"
:src=
"scope.row.icon.url"
/>
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"简介"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<span
class=
"introduce"
>
{{
scope
.
row
.
introduce
}}
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"类型"
width=
"150"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
type
}}
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"状态"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<el-button
type=
"primary"
@
click=
"selectFunc(scope.row)"
>
选择
</el-button>
<span>
{{
scope
.
row
.
status
}}
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"操作"
width=
"80"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<el-button
type=
"primary"
@
click=
"selectFunc('news', scope.row)"
>
选择
</el-button>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
</el-table>
</el-table>
<div
style=
"display: flex; align-item: center; justify-content: center; margin-top: 20px"
>
<el-pagination
:page-size=
"news.pageParams.limit"
background
layout=
"prev, pager, next"
:total=
"news.total"
>
</el-pagination>
</div>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"news.visible = false"
>
取 消
</el-button>
</div>
</el-dialog>
</el-dialog>
<!-- 应用详情弹窗 -->
<!-- 应用详情弹窗 -->
<el-dialog
title=
"选择资讯"
:visible
.
sync=
"visible.details"
append-to-body
>
<el-dialog
title=
"选择资讯"
:visible
.
sync=
"details.visible"
append-to-body
width=
"80%"
style=
"height: 100%"
>
<el-table
:data=
"detailsList"
>
<el-table
size=
"mini"
:data=
"news.datas"
border
fit
highlight-current-row
current-row-key=
"id"
<el-table-column
type=
"index"
label=
"序号"
width=
"50"
></el-table-column>
@
current-change=
"(val) => handleCurrentChange('news', val)"
style=
"width: 100%"
height=
"500px"
>
<el-table-column
property=
"name"
label=
"应用类别"
width=
"200"
></el-table-column>
<el-table-column
label=
"序号"
width=
"100"
align=
"center"
>
<el-table-column
property=
"address"
label=
"应用名称"
></el-table-column>
<
template
slot-scope=
"scope"
>
<el-table-column
property=
"address"
label=
"发布时间"
></el-table-column>
<span>
{{
scope
.
row
.
id
}}
</span>
<el-table-column
label=
"操作"
>
</
template
>
</el-table-column>
<el-table-column
label=
"应用类别"
width=
"200"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
type
}}
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"应用名称"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<el-button
type=
"primary"
@
click=
"selectFunc(scope.row)"
>
选择
</el-button>
<span
class=
"introduce"
>
{{
scope
.
row
.
name
}}
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"详情图"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<span>
<img
class=
"icon"
:src=
"scope.row.icon.url"
/>
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"发布时间"
width=
"150"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
date
}}
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"状态"
width=
"150"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
status
}}
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"操作"
width=
"150"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<el-button
type=
"primary"
@
click=
"selectFunc('details', scope.row)"
>
选择
</el-button>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
</el-table>
</el-table>
<div
style=
"display: flex; align-item: center; justify-content: center; margin-top: 20px"
>
<el-pagination
:page-size=
"details.pageParams.limit"
background
layout=
"prev, pager, next"
:total=
"details.total"
>
</el-pagination>
</div>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"details.visible = false"
>
取 消
</el-button>
</div>
</el-dialog>
</el-dialog>
</div>
</div>
...
@@ -89,43 +182,117 @@ export default {
...
@@ -89,43 +182,117 @@ export default {
watch
:
{
watch
:
{
value
:
{
value
:
{
handler
(
newVal
)
{
handler
(
newVal
)
{
this
.
select
.
jumpType
=
newVal
.
jumpType
console
.
log
(
newVal
)
this
.
select
.
url
=
newVal
.
url
this
.
select
.
jumpType
=
newVal
.
jumpType
;
this
.
select
.
jumpId
=
newVal
.
jumpId
this
.
select
.
value
=
newVal
.
jumpType
===
1
?
newVal
.
url
:
newVal
.
jumpId
;
if
(
newVal
.
jumpType
===
3
)
{
this
.
news
.
currRow
=
newVal
.
jumpId
}
else
if
(
newVal
.
jumpType
===
5
)
{
this
.
details
.
currRow
=
newVal
.
jumpId
}
},
deep
:
true
}
},
},
deep
:
true
computed
:
{
getName
(
key
,
id
,
name
=
'name'
)
{
return
(
key
,
id
)
=>
{
let
target
=
this
[
key
].
datas
.
find
(
v
=>
v
.
id
==
id
);
return
target
?
target
[
name
]
:
null
}
}
}
},
},
data
()
{
data
()
{
return
{
return
{
//跳转类型
//跳转类型
其他还未完善先隐藏
linkTypes
:
{
linkTypes
:
{
0
:
"不跳转"
,
0
:
"不跳转"
,
1
:
'外部链接'
,
1
:
'外部链接'
,
2
:
'卫星影像'
,
//
2: '卫星影像',
3
:
'星云动态'
,
//
3: '星云动态',
4
:
'行业应用类别'
,
//
4: '行业应用类别',
5
:
'行业应用详情'
,
//
5: '行业应用详情',
},
},
satelliteList
:
[],
//卫星影像
satelliteList
:
[],
//卫星影像
applicationList
:
[],
//行业应用
applicationList
:
[],
//行业应用
//选择的类型与对应的值
//选择的类型与对应的值
select
:
{
select
:
{
jumpType
:
0
,
jumpType
:
0
,
url
:
''
,
value
:
''
jumpId
:
null
,
},
jumpObj
:
{}
//星云动态
news
:
{
datas
:
[{
id
:
'1'
,
title
:
'王小虎'
,
icon
:
{
url
:
'https://onemap.obtdata.com/wx/download/world.png'
,
showPreview
:
false
},
introduce
:
'介绍介绍介绍介绍介绍介绍介绍介绍介绍介绍介绍'
,
type
:
'类型'
,
sort
:
'排序'
,
status
:
'状态'
,
operator
:
'操作'
,
},{
id
:
'2'
,
title
:
'王小虎2'
,
icon
:
{
url
:
'https://onemap.obtdata.com/wx/download/world.png'
,
showPreview
:
false
},
introduce
:
'2介绍介绍介绍介绍介绍介绍介绍介绍介绍介绍介绍'
,
type
:
'类型'
,
sort
:
'排序'
,
status
:
'状态'
,
operator
:
'操作'
,
}],
visible
:
false
,
currRow
:
null
,
total
:
100
,
pageParams
:
{
page
:
1
,
limit
:
20
}
},
//应用详情
details
:
{
datas
:
[{
id
:
"1"
,
type
:
"类别"
,
name
:
"名称"
,
icon
:
{
url
:
"https://onemap.obtdata.com/wx/download/world.png"
,
showPreview
:
false
,
},
},
visible
:
{
date
:
"发布时间"
,
news
:
false
,
status
:
"状态"
,
details
:
false
}],
visible
:
false
,
currRow
:
null
,
total
:
100
,
pageParams
:
{
page
:
1
,
limit
:
20
}
},
},
newsList
:
[],
detailsList
:
[],
detailsList
:
[],
hasErr
:
''
hasErr
:
''
,
};
};
},
},
methods
:
{
methods
:
{
handleCurrentChange
(
key
,
val
)
{
this
[
key
].
currRow
=
val
;
},
selectFunc
(
key
,
val
)
{
this
[
key
].
visible
=
false
;
this
.
select
.
value
=
val
.
id
;
this
[
key
].
currRow
=
val
.
id
;
//高亮选中项
console
.
log
(
this
.
select
)
this
.
emitInput
(
this
.
select
.
value
)
},
showErr
(
err
)
{
showErr
(
err
)
{
this
.
hasErr
=
err
this
.
hasErr
=
err
},
},
...
@@ -133,8 +300,9 @@ export default {
...
@@ -133,8 +300,9 @@ export default {
this
.
$emit
(
'reset'
,
this
.
select
.
jumpType
)
this
.
$emit
(
'reset'
,
this
.
select
.
jumpType
)
this
.
showErr
(
''
)
this
.
showErr
(
''
)
},
},
blurFunc
()
{
blurFunc
(
val
)
{
this
.
emitInput
(
this
.
select
.
url
)
console
.
log
(
val
)
this
.
emitInput
(
this
.
select
)
},
},
emitInput
(
val
)
{
emitInput
(
val
)
{
this
.
$emit
(
'input'
,
val
)
this
.
$emit
(
'input'
,
val
)
...
@@ -147,4 +315,7 @@ export default {
...
@@ -147,4 +315,7 @@ export default {
.link-type-input
{
.link-type-input
{
display
:
inline-block
;
display
:
inline-block
;
}
}
.icon
{
height
:
80px
;
}
</
style
>
</
style
>
src/components/Upload/singleImageX.vue
View file @
28728079
...
@@ -57,6 +57,12 @@ export default {
...
@@ -57,6 +57,12 @@ export default {
onUploadRequest
(
data
)
{
onUploadRequest
(
data
)
{
this
.
uploading
=
true
;
this
.
uploading
=
true
;
let
fileObj
=
data
.
file
;
let
fileObj
=
data
.
file
;
console
.
log
(
data
)
let
temp
=
URL
.
createObjectURL
(
fileObj
)
let
img
=
new
Image
();
img
.
src
=
temp
;
console
.
log
(
img
.
width
,
img
.
height
)
// FormData 对象
// FormData 对象
let
form
=
new
FormData
();
let
form
=
new
FormData
();
// 文件对象
// 文件对象
...
...
src/utils/formDatas.js
View file @
28728079
...
@@ -62,7 +62,6 @@ export const satelliteIntroduction = {
...
@@ -62,7 +62,6 @@ export const satelliteIntroduction = {
resolution
:
""
,
//分辨率
resolution
:
""
,
//分辨率
coverImg
:
""
,
//封面图
coverImg
:
""
,
//封面图
iconImg
:
""
,
//图标
iconImg
:
""
,
//图标
// intro: "",//介绍
content
:
""
,
//详细内容
content
:
""
,
//详细内容
rank
:
''
,
//排序
rank
:
''
,
//排序
status
:
1
//是否启用
status
:
1
//是否启用
...
@@ -85,10 +84,55 @@ export const satelliteIntroduction = {
...
@@ -85,10 +84,55 @@ export const satelliteIntroduction = {
],
],
content
:
[
content
:
[
{
required
:
true
,
message
:
'请输入详细内容'
,
trigger
:
'blur'
}
{
required
:
true
,
message
:
'请输入详细内容'
,
trigger
:
'blur'
}
]
},
formInfo
:
{
name
:
{
label
:
"卫星名称"
},
resolution
:
{
label
:
"分辨率"
},
coverImg
:
{
label
:
"封面图"
,
type
:
'file'
},
iconImg
:
{
label
:
"图标"
,
type
:
'file'
},
rank
:
{
label
:
"排序"
},
content
:
{
label
:
"详细内容"
,
type
:
'kindEditor'
},
}
}
//影像图库
export
const
imageLibrary
=
{
init
:
()
=>
({
name
:
""
,
//标题名称
coverImg
:
""
,
//封面图
detailImg
:
""
,
//详情图
//产品分类
//影像分类
//文件格式
//分辨率
//拍摄地点
//拍摄时间
//可否商用
//是否水印
}),
rules
:
{
name
:
[
{
required
:
true
,
message
:
'请输入卫星名称'
,
trigger
:
'blur'
}
],
resolution
:
[
{
required
:
true
,
message
:
'请输入分辨率'
,
trigger
:
'blur'
}
],
rank
:
[
{
required
:
true
,
message
:
'请设置0-10000,数值越大排序越靠前'
,
trigger
:
'blur'
}
],
],
// intro: [
coverImg
:
[
// { required: true, message: '请输入介绍', trigger: 'blur' }
{
required
:
true
,
message
:
'请输入封面图链接'
,
trigger
:
'blur'
}
// ]
],
iconImg
:
[
{
required
:
true
,
message
:
'请输入图标链接'
,
trigger
:
'blur'
}
],
content
:
[
{
required
:
true
,
message
:
'请输入详细内容'
,
trigger
:
'blur'
}
]
},
},
formInfo
:
{
formInfo
:
{
name
:
{
label
:
"卫星名称"
},
name
:
{
label
:
"卫星名称"
},
...
@@ -96,7 +140,6 @@ export const satelliteIntroduction = {
...
@@ -96,7 +140,6 @@ export const satelliteIntroduction = {
coverImg
:
{
label
:
"封面图"
,
type
:
'file'
},
coverImg
:
{
label
:
"封面图"
,
type
:
'file'
},
iconImg
:
{
label
:
"图标"
,
type
:
'file'
},
iconImg
:
{
label
:
"图标"
,
type
:
'file'
},
rank
:
{
label
:
"排序"
},
rank
:
{
label
:
"排序"
},
// intro: { label: "介绍"},
content
:
{
label
:
"详细内容"
,
type
:
'kindEditor'
},
content
:
{
label
:
"详细内容"
,
type
:
'kindEditor'
},
}
}
}
}
src/views/webSiteManagement/bannerSetting.vue
0 → 100644
View file @
28728079
<
template
>
<div
class=
"container"
>
<!-- 头部 -->
<div
class=
"head"
>
<div>
banner列表
</div>
<el-button
type=
"primary"
@
click=
"addItem"
>
添加banner
</el-button>
</div>
<!-- 主体 -->
<div
class=
"app-container calendar-list-container"
>
<!-- 条件搜索 -->
<div
class=
"filter-container"
>
<el-form
:inline=
"true"
:model=
"listQuery"
class=
"demo-form-inline"
>
<el-form-item
label=
"所有状态"
>
<el-select
v-model=
"listQuery.status"
>
<el-option
v-for=
"(item, index) in bannerStatus"
:key=
"index"
:label=
"item"
:value=
"~~index"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"banner标题"
>
<el-input
v-model=
"listQuery.title"
placeholder=
"请输入banner标题"
></el-input>
</el-form-item>
<el-form-item>
<el-button
type=
"primary"
plain
@
click=
"search"
>
搜索
</el-button>
<el-button
type=
"primary"
plain
@
click=
"clearFilterData"
>
清除搜索
</el-button>
</el-form-item>
</el-form>
</div>
<!-- 数据列表 -->
<el-table
:data=
"list"
v-loading
.
body=
"listLoading"
border
fit
highlight-current-row
style=
"width: 100%"
>
<el-table-column
align=
"center"
type=
"index"
label=
"序号"
width=
"65"
></el-table-column>
<el-table-column
align=
"center"
label=
"banner标题"
prop=
"title"
></el-table-column>
<el-table-column
align=
"center"
label=
"banner图"
>
<template
slot-scope=
"scope"
>
<img
class=
"cover"
:src=
"scope.row.cover"
/>
</
template
>
</el-table-column>
<el-table-column
align=
"center"
label=
"状态"
>
<
template
slot-scope=
"scope"
>
<!-- 根据状态获取对应中文 -->
{{
getStatus
(
scope
.
row
.
status
)
}}
</
template
>
</el-table-column>
<el-table-column
align=
"center"
label=
"操作"
width=
"250"
>
<
template
slot-scope=
"scope"
>
<el-button
type=
"primary"
size=
"mini"
@
click=
"edit(scope.row)"
>
编辑
</el-button>
<el-button
:type=
"scope.row.status === 1 ? 'info': 'warning'"
size=
"mini"
@
click=
"changeParams(scope.row, 'status')"
>
{{
scope
.
row
.
status
===
1
?
'下架'
:
'上架'
}}
</el-button>
<el-button
type=
"danger"
size=
"mini"
@
click=
"changeParams(scope.row, 'isDel')"
>
删除
</el-button>
</
template
>
</el-table-column>
</el-table>
<!-- 分页 -->
<div
class=
"page-foot"
>
<el-pagination
background
layout=
"prev, pager, next"
:page-size=
"listQuery.limit"
:total=
"total"
@
current-change=
"currentChange"
>
</el-pagination>
</div>
<!-- 添加、编辑弹窗 -->
<el-dialog
top=
"10%"
:close-on-click-modal=
"false"
:title=
"dialogTitle"
:visible
.
sync=
"dialogVisible"
>
<custom-form
:formData=
"formObject"
@
submitFunc=
"updateFunc"
@
reset=
"resetForm"
></custom-form>
</el-dialog>
</div>
</div>
</template>
<
script
>
import
{
banner
}
from
"@/utils/formDatas.js"
//表单数据
import
{
page
,
update
}
from
"@/api/website/banner"
//接口
import
CustomForm
from
"@/components/CustomForm"
export
default
{
name
:
"bannerSetting"
,
components
:
{
CustomForm
},
data
()
{
return
{
data
:
null
,
//原数据
list
:
null
,
//赋值数据 | 过滤数据
total
:
null
,
//总个数
listLoading
:
true
,
//请求加载状态
//请求参数。页码页数等
listQuery
:
{
status
:
0
,
title
:
""
,
page
:
1
,
limit
:
20
},
//搜索表单
searchForm
:
{
status
:
0
,
title
:
""
},
formObject
:
{
formVal
:
banner
.
init
(),
//提交的表单参数
rules
:
banner
.
rules
,
//表单规则
formItem
:
banner
.
formInfo
,
//表单项。
},
//是否启用,1、启用,2、禁用
bannerStatus
:
{
0
:
'全部'
,
1
:
'启用'
,
2
:
'禁用'
,
},
dialogVisible
:
false
,
//弹窗显示控制
dialogTitle
:
"新增banner"
//弹窗标题
}
},
mounted
()
{
this
.
getList
()
//获取数据
},
methods
:
{
//获取图片链接
getSrc
(
val
)
{
this
.
editForm
.
cover
=
val
},
//获取自定义组件值
getCustomInput
(
val
)
{
this
.
editForm
.
url
=
val
},
search
()
{
this
.
listQuery
.
page
=
1
;
this
.
getList
()
},
//清除搜索
filterData
()
{
if
(
this
.
searchForm
.
status
===
0
&&
this
.
searchForm
.
title
===
''
)
{
this
.
list
=
this
.
data
;
return
;
}
let
temp
=
this
.
data
.
filter
(
v
=>
this
.
searchForm
.
status
===
0
?
true
:
!!
(
this
.
searchForm
.
status
===
v
.
status
))
if
(
!!
this
.
searchForm
.
title
)
{
temp
=
temp
.
filter
(
v
=>
v
.
title
.
includes
(
this
.
searchForm
.
title
))
}
this
.
list
=
temp
},
//清除搜索
clearFilterData
()
{
this
.
searchForm
=
{
status
:
0
,
title
:
""
}
this
.
list
=
this
.
data
;
},
//切换页码
currentChange
(
val
)
{
this
.
listQuery
.
page
=
val
;
this
.
getList
();
},
//编辑
edit
(
row
)
{
this
.
dialogTitle
=
"编辑banner"
;
this
.
formObject
.
formVal
=
this
.
filterParams
(
row
)
this
.
dialogVisible
=
true
;
console
.
log
(
this
.
formObject
.
formVal
)
},
//更新方法
updateFunc
(
params
)
{
params
.
rank
=
~~
params
.
rank
;
update
(
params
).
then
(
res
=>
{
if
(
res
.
status
==
200
)
{
this
.
dialogVisible
=
false
;
this
.
getList
();
}
else
{
this
.
$message
.
error
(
res
.
message
);
}
})
},
//取消表单
resetForm
()
{
this
.
dialogVisible
=
false
;
},
//新增banner
addItem
()
{
this
.
dialogTitle
=
"新增banner"
;
this
.
dialogVisible
=
true
;
this
.
formObject
.
formVal
=
banner
.
init
();
},
filterParams
(
obj
)
{
let
p
=
{}
let
b
=
[
'isDel'
,
'updTime'
,
'crtTime'
]
for
(
let
key
in
obj
)
{
if
(
!
b
.
includes
(
key
))
{
p
[
key
]
=
obj
[
key
]
}
}
return
p
;
},
//获取状态
getStatus
(
val
)
{
return
this
.
bannerStatus
[
val
]
},
//上下架、删除更新
changeParams
(
row
,
key
)
{
this
.
$confirm
(
'确定继续执行该操作吗?'
,
'提示'
,
{
confirmButtonText
:
'确定'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
}).
then
(()
=>
{
this
.
formObject
.
formVal
=
this
.
filterParams
(
row
)
console
.
log
(
'过滤参数'
,
this
.
formObject
.
formVal
)
if
(
key
==
'isDel'
)
{
this
.
formObject
.
formVal
[
key
]
=
row
[
key
]
==
0
?
1
:
0
;
}
else
{
this
.
formObject
.
formVal
[
key
]
=
row
[
key
]
==
1
?
2
:
1
;
}
//更新专题
this
.
updateFunc
(
this
.
formObject
.
formVal
);
})
},
//获取banner列表
getList
()
{
this
.
listLoading
=
true
;
page
(
this
.
listQuery
).
then
(
res
=>
{
this
.
list
=
res
.
data
.
data
this
.
data
=
res
.
data
.
data
this
.
total
=
res
.
data
.
totalCount
;
this
.
listLoading
=
false
;
}).
catch
(
err
=>
{
this
.
listLoading
=
false
;
})
}
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
.head
{
display
:
flex
;
align-items
:
center
;
justify-content
:
space-between
;
padding
:
8px
20px
;
width
:
100%
;
border-bottom
:
1px
solid
#e6e6e6
;
}
.cover
{
max-width
:
200px
;
height
:
auto
;
}
.page-foot
{
display
:
flex
;
justify-content
:
center
;
margin-top
:
20px
;
}
</
style
>
src/views/webSiteManagement/bannerSetting/index.vue
View file @
28728079
...
@@ -19,7 +19,7 @@
...
@@ -19,7 +19,7 @@
<el-input
v-model=
"searchForm.title"
placeholder=
"请输入banner标题"
></el-input>
<el-input
v-model=
"searchForm.title"
placeholder=
"请输入banner标题"
></el-input>
</el-form-item>
</el-form-item>
<el-form-item>
<el-form-item>
<el-button
type=
"primary"
plain
@
click=
"
filterData
"
>
搜索
</el-button>
<el-button
type=
"primary"
plain
@
click=
"
search
"
>
搜索
</el-button>
<el-button
type=
"primary"
plain
@
click=
"clearFilterData"
>
清除搜索
</el-button>
<el-button
type=
"primary"
plain
@
click=
"clearFilterData"
>
清除搜索
</el-button>
</el-form-item>
</el-form-item>
</el-form>
</el-form>
...
@@ -66,40 +66,6 @@
...
@@ -66,40 +66,6 @@
:close-on-click-modal=
"false"
:close-on-click-modal=
"false"
:title=
"dialogTitle"
:title=
"dialogTitle"
:visible
.
sync=
"dialogVisible"
>
:visible
.
sync=
"dialogVisible"
>
<!--<el-form
ref="ruleForm"
size="small"
label-position="right"
:model="editForm"
:rules="editFormRules"
label-width="100px"
class="demo-ruleForm">
<el-form-item v-for="(item, index) in editFormInfo" :key="index" :label="item.label" :prop="index">
<div v-if="item.type && item.type == 'file'">
<my-upload :value="editForm.cover" @input="getSrc"></my-upload>
</div>
<div v-else-if="item.type && item.type == 'radio'">
<el-radio-group v-model="editForm[index]">
<el-radio v-for="(item, index) in item.radioArr" :key="~~index" :label="~~index">{{item}}</el-radio>
</el-radio-group>
</div>
<div v-else-if="item.type && item.type == 'custom'">
<custom-input @input="getCustomInput"></custom-input>
</div>
<div v-else>
<el-input v-model="editForm[index]" :placeholder="item.placeholder || `请输入banner${item.label}`"></el-input>
</div>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="submitForm()">确定</el-button>
<el-button type="info" @click="resetForm()">取消</el-button>
</el-form-item>
</el-form> -->
<custom-form
<custom-form
:formData=
"formObject"
:formData=
"formObject"
@
submitFunc=
"updateFunc"
@
submitFunc=
"updateFunc"
...
@@ -116,8 +82,6 @@
...
@@ -116,8 +82,6 @@
import
{
banner
}
from
"@/utils/formDatas.js"
//表单数据
import
{
banner
}
from
"@/utils/formDatas.js"
//表单数据
import
{
page
,
update
}
from
"@/api/website/banner"
//接口
import
{
page
,
update
}
from
"@/api/website/banner"
//接口
// import myUpload from "@/components/Upload/singleImageX"//上传组件
// import customInput from "@/components/CustomInput"//自定义组件
import
CustomForm
from
"@/components/CustomForm"
import
CustomForm
from
"@/components/CustomForm"
export
default
{
export
default
{
...
@@ -141,10 +105,6 @@ export default {
...
@@ -141,10 +105,6 @@ export default {
status
:
0
,
status
:
0
,
title
:
""
title
:
""
},
},
// //添加banner与修改banner的form对象
// editForm: banner.init(),//提交的表单参数
// editFormInfo: banner.formInfo,//表单项。
// editFormRules: banner.rules,//表单规则
formObject
:
{
formObject
:
{
formVal
:
banner
.
init
(),
//提交的表单参数
formVal
:
banner
.
init
(),
//提交的表单参数
rules
:
banner
.
rules
,
//表单规则
rules
:
banner
.
rules
,
//表单规则
...
@@ -172,18 +132,14 @@ export default {
...
@@ -172,18 +132,14 @@ export default {
getCustomInput
(
val
)
{
getCustomInput
(
val
)
{
this
.
editForm
.
url
=
val
this
.
editForm
.
url
=
val
},
},
//清除搜索
search
()
{
filterData
()
{
this
.
listQuery
=
{
if
(
this
.
searchForm
.
status
===
0
&&
this
.
searchForm
.
title
===
''
)
{
status
:
this
.
searchForm
.
status
||
null
,
this
.
list
=
this
.
data
;
title
:
this
.
searchForm
.
title
,
return
;
page
:
1
,
}
limit
:
20
let
temp
=
this
.
data
.
filter
(
v
=>
this
.
searchForm
.
status
===
0
?
true
:
!!
(
this
.
searchForm
.
status
===
v
.
status
))
if
(
!!
this
.
searchForm
.
title
)
{
temp
=
temp
.
filter
(
v
=>
v
.
title
.
includes
(
this
.
searchForm
.
title
))
}
}
this
.
getList
();
this
.
list
=
temp
},
},
//清除搜索
//清除搜索
clearFilterData
()
{
clearFilterData
()
{
...
@@ -191,8 +147,36 @@ export default {
...
@@ -191,8 +147,36 @@ export default {
status
:
0
,
status
:
0
,
title
:
""
title
:
""
}
}
this
.
list
=
this
.
data
;
this
.
listQuery
=
{
status
:
this
.
searchForm
.
status
||
null
,
title
:
this
.
searchForm
.
title
,
page
:
1
,
limit
:
20
}
this
.
getList
()
},
},
// //清除搜索
// filterData() {
// if (this.searchForm.status === 0 && this.searchForm.title === '') {
// this.list = this.data;
// return ;
// }
// let temp = this.data.filter(v => this.searchForm.status === 0 ? true: !!(this.searchForm.status === v.status))
// if (!!this.searchForm.title) {
// temp = temp.filter(v => v.title.includes(this.searchForm.title))
// }
// this.list = temp
// },
// //清除搜索
// clearFilterData() {
// this.searchForm = {
// status: 0,
// title: ""
// }
// this.list = this.data;
// },
//切换页码
//切换页码
currentChange
(
val
)
{
currentChange
(
val
)
{
this
.
listQuery
.
page
=
val
;
this
.
listQuery
.
page
=
val
;
...
...
src/views/webSiteManagement/imageLibrary/edit.vue
0 → 100644
View file @
28728079
<
template
>
<div
class=
"block"
>
<div
class=
"head"
>
<div
class=
"go-back"
@
click=
"goBack"
><i
class=
"el-icon-back"
></i>
返回上一页
</div>
</div>
<div
class=
"body"
>
<el-form
:model=
"ruleForm"
:rules=
"rules"
ref=
"ruleForm"
label-width=
"100px"
class=
"demo-ruleForm"
>
<el-alert
title=
"基础信息"
type=
"info"
:closable=
"false"
></el-alert>
<el-form-item
label=
"产品名称"
prop=
"name"
>
<el-input
v-model=
"ruleForm.name"
placeholder=
"请输入产品名称"
></el-input>
</el-form-item>
<el-form-item
label=
"产品缩略图"
prop=
"coverImage"
>
<!-- 上传 -->
<my-upload
:value=
"ruleForm.coverImage"
@
input=
"(val) => getSrc('coverImage', val)"
></my-upload>
</el-form-item>
<el-form-item
label=
"上传源文件"
:prop=
"'imageInfoRelationList.url' && 'imageInfoRelationList.price'"
>
<!-- 上传 -->
<my-upload
:value=
"ruleForm.imageInfoRelationList.url"
@
input=
"(val) => getSrc('imageInfoRelationList', val)"
></my-upload>
<div
v-if=
"ruleForm.imageInfoRelationList.fileWidth"
>
尺寸大小:
{{
ruleForm
.
imageInfoRelationList
.
fileWidth
}}
</div>
<el-input
size=
"mini"
v-model=
"ruleForm.imageInfoRelationList.price"
placeholder=
"请输入价格"
></el-input>
</el-form-item>
<el-alert
title=
"产品参数"
type=
"info"
:closable=
"false"
></el-alert>
<el-form-item
label=
"影像分类"
prop=
"type"
>
<el-select
v-model=
"ruleForm.type"
placeholder=
"请选择"
>
<el-option
v-for=
"(item, index) in imageTypes"
:key=
"~~index"
:label=
"item"
:value=
"~~index"
>
</el-option>
</el-select>
</el-form-item>
<!--
<el-form-item
label=
"产品类型"
prop=
""
>
<el-input
v-model=
"ruleForm.type"
placeholder=
"请输入产品类型"
></el-input>
</el-form-item>
-->
<el-form-item
label=
"文件格式"
prop=
"paramJson.fileType"
>
<el-input
v-model=
"ruleForm.paramJson.fileType"
placeholder=
"请输入文件格式"
></el-input>
</el-form-item>
<el-form-item
label=
"卫星"
prop=
"paramJson.satellite"
>
<el-input
v-model=
"ruleForm.paramJson.satellite"
placeholder=
"请输入卫星型号"
></el-input>
</el-form-item>
<el-form-item
label=
"分辨率"
prop=
"paramJson.resolution"
>
<el-input
v-model=
"ruleForm.paramJson.resolution"
placeholder=
"请输入产品分辨率"
></el-input>
</el-form-item>
<el-form-item
label=
"拍摄地点"
prop=
"paramJson.address"
>
<el-input
v-model=
"ruleForm.paramJson.address"
placeholder=
"请输入拍摄地点"
></el-input>
</el-form-item>
<el-form-item
label=
"拍摄时间"
prop=
"paramJson.shotTime"
>
<el-date-picker
v-model=
"ruleForm.paramJson.shotTime"
type=
"datetime"
placeholder=
"选择日期时间"
>
</el-date-picker>
</el-form-item>
<el-form-item
label=
"可否商用"
prop=
"paramJson.commercial"
>
<el-radio-group
v-model=
"ruleForm.paramJson.commercial"
>
<el-radio
:label=
"1"
>
是
</el-radio>
<el-radio
:label=
"2"
>
否
</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item
label=
"是否水印"
prop=
"paramJson.watermark"
>
<el-radio-group
v-model=
"ruleForm.paramJson.watermark"
>
<el-radio
:label=
"1"
>
是
</el-radio>
<el-radio
:label=
"2"
>
否
</el-radio>
</el-radio-group>
</el-form-item>
<!--
<el-form-item
label=
"相似图片"
prop=
"type"
>
<el-input
v-model=
"ruleForm.type"
></el-input>
</el-form-item>
-->
<el-form-item>
<el-button
type=
"primary"
@
click=
"onSubmit"
>
确定
</el-button>
<el-button>
取消
</el-button>
</el-form-item>
</el-form>
</div>
</div>
</
template
>
<
script
>
import
MyUpload
from
"@/components/Upload/singleImageX"
//上传组件
// import { satelliteIntroduction } from "@/utils/formDatas.js"//表单数据
import
{
update
}
from
"@/api/website/imageLibrary"
export
default
{
components
:
{
MyUpload
},
data
()
{
return
{
//1--影像美图 2--专题图 3--遥感成果图
imageTypes
:
{
1
:
'影像美图'
,
2
:
'专题图'
,
3
:
'遥感成果图'
,
},
ruleForm
:
{
name
:
''
,
coverImage
:
''
,
imageInfoRelationList
:
{
url
:
''
,
price
:
''
},
type
:
''
,
paramJson
:
{
fileType
:
''
,
fileWidth
:
''
,
satellite
:
''
,
resolution
:
''
,
address
:
''
,
shotTime
:
''
,
commercial
:
''
,
watermark
:
''
,
}
},
rules
:
{
name
:
[
{
required
:
true
,
message
:
'请输入产品名称'
,
trigger
:
'blur'
}
],
coverImage
:
[
{
required
:
true
,
message
:
'请上传缩略图'
,
trigger
:
'change'
}
],
'imageInfoRelationList.url'
:
[
{
required
:
true
,
message
:
'请上传源文件'
,
trigger
:
'change'
}
],
'imageInfoRelationList.price'
:
[
{
required
:
true
,
message
:
'请输入价格'
,
trigger
:
'blur'
}
],
type
:
[
{
required
:
true
,
message
:
'请选择影像类型'
,
trigger
:
'change'
}
],
'paramJson.fileType'
:
[
{
required
:
true
,
message
:
'请输入文件类型'
,
trigger
:
'blur'
}
],
'paramJson.satellite'
:
[
{
required
:
true
,
message
:
'请输入卫星型号'
,
trigger
:
'blur'
}
],
'paramJson.resolution'
:
[
{
required
:
true
,
message
:
'请输入分辨率'
,
trigger
:
'blur'
}
],
'paramJson.address'
:
[
{
required
:
true
,
message
:
'请输入拍摄地点'
,
trigger
:
'blur'
}
],
'paramJson.shotTime'
:
[
{
type
:
'date'
,
required
:
true
,
message
:
'请选择拍摄时间'
,
trigger
:
'change'
}
],
'paramJson.commercial'
:
[
{
required
:
true
,
message
:
'请选择'
,
trigger
:
'change'
}
],
'paramJson.watermark'
:
[
{
required
:
true
,
message
:
'请选择'
,
trigger
:
'change'
}
]
}
}
},
mounted
()
{
this
.
$bus
.
$on
(
'satelliteIntroduction-edit-renderData'
,
this
.
renderData
)
},
methods
:
{
getSrc
(
key
,
val
)
{
let
rule
=
[
'imageInfoRelationList'
];
if
(
rule
.
includes
(
key
))
{
this
.
ruleForm
[
key
].
url
=
val
;
}
else
{
this
.
ruleForm
[
key
]
=
val
;
}
},
renderData
(
val
)
{
this
.
ruleForm
=
val
console
.
log
(
'bus end'
,
this
.
ruleForm
)
},
goBack
()
{
this
.
$emit
(
'change'
,
'list'
)
},
onSubmit
()
{
console
.
log
(
this
.
ruleForm
)
this
.
$refs
.
ruleForm
.
validate
((
valid
)
=>
{
if
(
valid
)
{
alert
(
'submit!'
);
}
else
{
console
.
log
(
'error submit!!'
);
return
false
;
}
});
},
// filterParams(obj) {
// let p = {}
// let b = ['isDel', 'status', 'updTime', 'crtTime']
// for (let key in obj) {
// if (!b.includes(key)) {
// p[key] = obj[key]
// }
// }
// return p;
// },
// //更新方法
// updateFunc(params) {
// params.rank = ~~params.rank;
// let datas = this.filterParams(params);
// update(datas).then(res => {
// if (res.status == 200) {
// //返回上一页,更新列表
// this.goBack();
// } else {
// this.$message.error(res.message);
// }
// })
// }
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
.head
{
display
:
flex
;
align-items
:
center
;
justify-content
:
space-between
;
padding
:
8px
20px
;
width
:
100%
;
border-bottom
:
1px
solid
#e6e6e6
;
.go-back
{
height
:
30px
;
line-height
:
30px
;
font-size
:
16px
;
color
:
#1989fa
;
cursor
:
pointer
;
i
{
margin-right
:
10px
;
}
}
}
.body
{
padding
:
20px
50px
40px
}
</
style
>
src/views/webSiteManagement/imageLibrary/index.vue
View file @
28728079
<!--
* @Author: your name
* @Date: 2020-12-01 09:06:33
* @LastEditTime: 2020-12-01 09:06:53
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: \rs-cloud\src\views\webSiteManagement\imageLibrary.vue
-->
<
template
>
<
template
>
<div
id=
'Container'
>
<div
class=
"container"
>
影像图库
<component
:is=
"componentVal"
@
change=
"changePage"
></component>
</div>
</div>
</
template
>
</
template
>
<
script
>
<
script
>
import
{
satelliteIntroduction
}
from
"@/utils/formDatas.js"
import
{
page
,
update
}
from
"@/api/website/imageLibrary"
import
List
from
"./list"
import
Edit
from
"./edit"
export
default
{
export
default
{
name
:
'Container'
,
name
:
"imageLibrary"
,
components
:
{
components
:
{
List
,
Edit
},
},
data
(){
data
()
{
return
{
return
{
componentVal
:
'List'
,
datas
:
null
}
}
},
},
mounted
()
{
mounted
()
{
},
},
methods
:
{
methods
:
{
changePage
(
name
,
val
)
{
},
this
.
componentVal
=
name
this
.
$nextTick
(()
=>
{
if
(
!!
val
)
{
this
.
$bus
.
$emit
(
'satelliteIntroduction-edit-renderData'
,
val
)
}
})
}
}
}
}
</
script
>
</
script
>
<
style
rel=
"stylesheet/scss"
lang=
"scss"
scoped
>
<
style
lang=
"scss"
scoped
>
</
style
>
</
style
>
src/views/webSiteManagement/imageLibrary/list.vue
0 → 100644
View file @
28728079
<
template
>
<div
class=
"container"
>
<div
class=
"head"
>
<div>
卫星介绍
</div>
<el-button
type=
"primary"
@
click=
"addItem"
>
添加产品
</el-button>
</div>
<div
class=
"app-container calendar-list-container"
>
<div
class=
"filter-container"
>
<el-form
:inline=
"true"
:model=
"searchForm"
class=
"demo-form-inline"
>
<el-form-item
label=
"所有状态"
>
<el-select
v-model=
"searchForm.status"
>
<el-option
v-for=
"(item, index) in bannerStatus"
:key=
"index"
:label=
"item"
:value=
"~~index"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"卫星名称"
>
<el-input
v-model=
"searchForm.title"
placeholder=
"请输入卫星名称"
></el-input>
</el-form-item>
<el-form-item>
<el-button
type=
"primary"
plain
@
click=
"filterData"
>
搜索
</el-button>
<el-button
type=
"primary"
plain
@
click=
"clearFilterData"
>
清除搜索
</el-button>
</el-form-item>
</el-form>
</div>
<el-table
:data=
"list"
v-loading
.
body=
"listLoading"
border
fit
highlight-current-row
style=
"width: 100%"
>
<el-table-column
align=
"center"
type=
"index"
label=
"序号"
width=
"65"
></el-table-column>
<el-table-column
align=
"center"
label=
"产品名称"
prop=
"name"
></el-table-column>
<el-table-column
align=
"center"
label=
"产品类型"
prop=
"type"
></el-table-column>
<el-table-column
align=
"center"
label=
"尺寸"
prop=
"imageInfoRelationList.ileWidth"
></el-table-column>
<el-table-column
align=
"center"
label=
"价格"
prop=
"name"
></el-table-column>
<el-table-column
align=
"center"
label=
"状态"
>
<template
slot-scope=
"scope"
>
{{
getStatus
(
scope
.
row
.
status
)
}}
</
template
>
</el-table-column>
<el-table-column
align=
"center"
label=
"操作"
width=
"250"
>
<
template
slot-scope=
"scope"
>
<el-button
type=
"primary"
size=
"mini"
@
click=
"edit(scope.row)"
>
编辑
</el-button>
<el-button
:type=
"scope.row.status === 1 ? 'info': 'warning'"
size=
"mini"
@
click=
"changeParams(scope.row, 'status')"
>
{{
scope
.
row
.
status
===
1
?
'下架'
:
'上架'
}}
</el-button>
<el-button
type=
"danger"
size=
"mini"
@
click=
"changeParams(scope.row, 'isDel')"
>
删除
</el-button>
</
template
>
</el-table-column>
</el-table>
<div
class=
"page-foot"
>
<el-pagination
background
layout=
"prev, pager, next"
:page-size=
"listQuery.limit"
:total=
"total"
@
current-change=
"currentChange"
>
</el-pagination>
</div>
</div>
</div>
</template>
<
script
>
import
{
satelliteIntroduction
}
from
"@/utils/formDatas.js"
import
{
page
,
update
}
from
"@/api/website/imageLibrary"
export
default
{
name
:
"satelliteIntroduction"
,
data
()
{
return
{
data
:
null
,
//原数据
list
:
null
,
//赋值数据 | 过滤数据
total
:
null
,
listLoading
:
true
,
//请求加载状态
//请求参数。页码页数等
listQuery
:
{
page
:
1
,
limit
:
20
},
//搜索表单
searchForm
:
{
status
:
0
,
title
:
""
},
//添加banner与修改banner的form对象
editForm
:
satelliteIntroduction
.
init
(),
//提交的表单参数
editFormInfo
:
satelliteIntroduction
.
formInfo
,
//表单项。
editFormRules
:
satelliteIntroduction
.
rules
,
//表单规则
//是否启用,1、启用,2、禁用
bannerStatus
:
{
0
:
'全部'
,
1
:
'启用'
,
2
:
'禁用'
,
},
dialogVisible
:
false
,
dialogTitle
:
"新增卫星"
}
},
mounted
()
{
this
.
getList
()
},
methods
:
{
//清除搜索
filterData
()
{
if
(
this
.
searchForm
.
status
===
0
&&
this
.
searchForm
.
title
===
''
)
{
this
.
list
=
this
.
data
;
return
;
}
let
temp
=
this
.
data
.
filter
(
v
=>
this
.
searchForm
.
status
===
0
?
true
:
!!
(
this
.
searchForm
.
status
===
v
.
status
))
if
(
!!
this
.
searchForm
.
title
)
{
temp
=
temp
.
filter
(
v
=>
v
.
name
.
includes
(
this
.
searchForm
.
title
))
}
this
.
list
=
temp
},
//清除搜索
clearFilterData
()
{
this
.
searchForm
=
{
status
:
0
,
title
:
""
}
this
.
list
=
this
.
data
;
},
//切换页码
currentChange
(
val
)
{
this
.
listQuery
.
page
=
val
;
this
.
getList
();
},
//编辑
edit
(
row
)
{
this
.
$emit
(
'change'
,
'Edit'
,
row
)
},
//校验表单
submitForm
()
{
let
_this
=
this
;
this
.
$refs
.
ruleForm
.
validate
((
valid
)
=>
{
if
(
valid
)
{
_this
.
updateFunc
();
}
else
{
console
.
log
(
'error submit!!'
);
return
false
;
}
});
},
//更新方法
updateFunc
()
{
update
(
this
.
editForm
).
then
(
res
=>
{
if
(
res
.
status
==
200
)
{
this
.
dialogVisible
=
false
;
this
.
getList
();
}
else
{
this
.
$message
.
error
(
res
.
message
);
}
})
},
//取消表单
resetForm
()
{
this
.
$refs
.
ruleForm
.
resetFields
();
this
.
dialogVisible
=
false
;
},
//新增banner
addItem
()
{
this
.
$emit
(
'change'
,
'edit'
)
},
//获取状态
getStatus
(
val
)
{
return
this
.
bannerStatus
[
val
]
},
//上下架、删除更新
changeParams
(
row
,
key
)
{
this
.
$confirm
(
'确定继续执行该操作吗?'
,
'提示'
,
{
confirmButtonText
:
'确定'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
}).
then
(()
=>
{
this
.
editForm
=
row
;
if
(
key
==
'isDel'
)
{
this
.
editForm
[
key
]
=
row
[
key
]
==
0
?
1
:
0
;
}
else
{
this
.
editForm
[
key
]
=
row
[
key
]
==
1
?
2
:
1
;
}
//更新专题
this
.
updateFunc
();
})
},
//获取banner列表
getList
()
{
this
.
listLoading
=
true
;
page
(
this
.
listQuery
).
then
(
res
=>
{
this
.
list
=
res
.
data
.
data
this
.
data
=
res
.
data
.
data
this
.
total
=
res
.
data
.
totalCount
;
this
.
listLoading
=
false
;
}).
catch
(
err
=>
{
this
.
listLoading
=
false
;
})
}
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
.head
{
display
:
flex
;
align-items
:
center
;
justify-content
:
space-between
;
padding
:
8px
20px
;
width
:
100%
;
border-bottom
:
1px
solid
#e6e6e6
;
}
.cover
{
max-width
:
200px
;
height
:
auto
;
}
.page-foot
{
display
:
flex
;
justify-content
:
center
;
margin-top
:
20px
;
}
</
style
>
src/views/webSiteManagement/satelliteIntroduction/edit.vue
View file @
28728079
...
@@ -33,14 +33,33 @@ export default {
...
@@ -33,14 +33,33 @@ export default {
},
},
}
}
},
},
mounted
()
{
this
.
$bus
.
$on
(
'satelliteIntroduction-edit-renderData'
,
this
.
renderData
)
},
methods
:
{
methods
:
{
renderData
(
val
)
{
this
.
formObject
.
formVal
=
val
console
.
log
(
'bus end'
,
this
.
formObject
.
formVal
)
},
goBack
()
{
goBack
()
{
this
.
$emit
(
'change'
,
'list'
)
this
.
$emit
(
'change'
,
'List'
)
},
filterParams
(
obj
)
{
let
p
=
{}
let
b
=
[
'isDel'
,
'status'
,
'updTime'
,
'crtTime'
]
for
(
let
key
in
obj
)
{
if
(
!
b
.
includes
(
key
))
{
p
[
key
]
=
obj
[
key
]
}
}
return
p
;
},
},
//更新方法
//更新方法
updateFunc
(
params
)
{
updateFunc
(
params
)
{
params
.
rank
=
~~
params
.
rank
;
params
.
rank
=
~~
params
.
rank
;
update
(
params
).
then
(
res
=>
{
let
datas
=
this
.
filterParams
(
params
);
update
(
datas
).
then
(
res
=>
{
if
(
res
.
status
==
200
)
{
if
(
res
.
status
==
200
)
{
//返回上一页,更新列表
//返回上一页,更新列表
this
.
goBack
();
this
.
goBack
();
...
...
src/views/webSiteManagement/satelliteIntroduction/index.vue
View file @
28728079
<
template
>
<
template
>
<div
class=
"container"
>
<div
class=
"container"
>
<component
:is=
"componentVal"
:params=
"datas"
@
change=
"changePage"
></component>
<component
:is=
"componentVal"
@
change=
"changePage"
></component>
</div>
</div>
</
template
>
</
template
>
...
@@ -8,11 +8,18 @@
...
@@ -8,11 +8,18 @@
import
{
satelliteIntroduction
}
from
"@/utils/formDatas.js"
import
{
satelliteIntroduction
}
from
"@/utils/formDatas.js"
import
{
page
,
update
}
from
"@/api/website/satelliteIntroduction"
import
{
page
,
update
}
from
"@/api/website/satelliteIntroduction"
import
List
from
"./list"
import
Edit
from
"./edit"
export
default
{
export
default
{
name
:
"satelliteIntroduction"
,
name
:
"satelliteIntroduction"
,
components
:
{
List
,
Edit
},
data
()
{
data
()
{
return
{
return
{
componentVal
:
()
=>
import
(
"./list"
)
,
componentVal
:
'List'
,
datas
:
null
datas
:
null
}
}
},
},
...
@@ -21,11 +28,18 @@ export default {
...
@@ -21,11 +28,18 @@ export default {
},
},
methods
:
{
methods
:
{
changePage
(
name
,
val
)
{
changePage
(
name
,
val
)
{
this
.
componentVal
=
()
=>
import
(
`./
${
name
}
`
)
this
.
componentVal
=
name
this
.
$nextTick
(()
=>
{
if
(
!!
val
)
{
if
(
!!
val
)
{
this
.
datas
=
val
this
.
$bus
.
$emit
(
'satelliteIntroduction-edit-renderData'
,
val
)
}
}
})
}
}
}
}
}
}
...
...
src/views/webSiteManagement/satelliteIntroduction/list.vue
View file @
28728079
...
@@ -13,10 +13,10 @@
...
@@ -13,10 +13,10 @@
</el-select>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item
label=
"卫星名称"
>
<el-form-item
label=
"卫星名称"
>
<el-input
v-model=
"searchForm.
titl
e"
placeholder=
"请输入卫星名称"
></el-input>
<el-input
v-model=
"searchForm.
nam
e"
placeholder=
"请输入卫星名称"
></el-input>
</el-form-item>
</el-form-item>
<el-form-item>
<el-form-item>
<el-button
type=
"primary"
plain
@
click=
"
filterData
"
>
搜索
</el-button>
<el-button
type=
"primary"
plain
@
click=
"
search
"
>
搜索
</el-button>
<el-button
type=
"primary"
plain
@
click=
"clearFilterData"
>
清除搜索
</el-button>
<el-button
type=
"primary"
plain
@
click=
"clearFilterData"
>
清除搜索
</el-button>
</el-form-item>
</el-form-item>
</el-form>
</el-form>
...
@@ -53,38 +53,6 @@
...
@@ -53,38 +53,6 @@
:total=
"total"
@
current-change=
"currentChange"
>
:total=
"total"
@
current-change=
"currentChange"
>
</el-pagination>
</el-pagination>
</div>
</div>
<el-dialog
top=
"10%"
:close-on-click-modal=
"false"
:title=
"dialogTitle"
:visible
.
sync=
"dialogVisible"
>
<el-form
ref=
"ruleForm"
size=
"small"
label-position=
"right"
:model=
"editForm"
:rules=
"editFormRules"
label-width=
"100px"
class=
"demo-ruleForm"
>
<el-form-item
v-for=
"(item, index) in editFormInfo"
:key=
"index"
:label=
"item.label"
:prop=
"index"
>
<div
v-if=
"item.type && item.type == 'radio'"
>
<el-radio-group
v-model=
"editForm[index]"
>
<el-radio
v-for=
"(item, index) in item.radioArr"
:key=
"~~index"
:label=
"~~index"
>
{{item}}
</el-radio>
</el-radio-group>
</div>
<div
v-else
>
<el-input
v-model=
"editForm[index]"
:placeholder=
"`请输入${item.label}`"
></el-input>
</div>
</el-form-item>
<el-form-item>
<el-button
type=
"primary"
@
click=
"submitForm()"
>
确定
</el-button>
<el-button
type=
"info"
@
click=
"resetForm()"
>
取消
</el-button>
</el-form-item>
</el-form>
</el-dialog>
</div>
</div>
</div>
</div>
...
@@ -110,7 +78,7 @@ export default {
...
@@ -110,7 +78,7 @@ export default {
//搜索表单
//搜索表单
searchForm
:
{
searchForm
:
{
status
:
0
,
status
:
0
,
titl
e
:
""
nam
e
:
""
},
},
//添加banner与修改banner的form对象
//添加banner与修改banner的form对象
editForm
:
satelliteIntroduction
.
init
(),
//提交的表单参数
editForm
:
satelliteIntroduction
.
init
(),
//提交的表单参数
...
@@ -130,26 +98,29 @@ export default {
...
@@ -130,26 +98,29 @@ export default {
this
.
getList
()
this
.
getList
()
},
},
methods
:
{
methods
:
{
//清除搜索
search
()
{
filterData
()
{
this
.
listQuery
=
{
if
(
this
.
searchForm
.
status
===
0
&&
this
.
searchForm
.
title
===
''
)
{
status
:
this
.
searchForm
.
status
||
null
,
this
.
list
=
this
.
data
;
name
:
this
.
searchForm
.
name
,
return
;
page
:
1
,
}
limit
:
20
let
temp
=
this
.
data
.
filter
(
v
=>
this
.
searchForm
.
status
===
0
?
true
:
!!
(
this
.
searchForm
.
status
===
v
.
status
))
if
(
!!
this
.
searchForm
.
title
)
{
temp
=
temp
.
filter
(
v
=>
v
.
title
.
includes
(
this
.
searchForm
.
title
))
}
}
this
.
getList
();
this
.
list
=
temp
},
},
//清除搜索
//清除搜索
clearFilterData
()
{
clearFilterData
()
{
this
.
searchForm
=
{
this
.
searchForm
=
{
status
:
0
,
status
:
0
,
title
:
""
name
:
""
}
this
.
listQuery
=
{
status
:
this
.
searchForm
.
status
||
null
,
name
:
this
.
searchForm
.
name
,
page
:
1
,
limit
:
20
}
}
this
.
list
=
this
.
data
;
this
.
getList
()
},
},
//切换页码
//切换页码
currentChange
(
val
)
{
currentChange
(
val
)
{
...
@@ -158,9 +129,7 @@ export default {
...
@@ -158,9 +129,7 @@ export default {
},
},
//编辑
//编辑
edit
(
row
)
{
edit
(
row
)
{
this
.
dialogTitle
=
"编辑卫星"
;
this
.
$emit
(
'change'
,
'Edit'
,
row
)
this
.
dialogVisible
=
true
;
this
.
editForm
=
row
},
},
//校验表单
//校验表单
submitForm
()
{
submitForm
()
{
...
@@ -192,9 +161,6 @@ export default {
...
@@ -192,9 +161,6 @@ export default {
},
},
//新增banner
//新增banner
addItem
()
{
addItem
()
{
// this.dialogTitle = "新增卫星";
// this.dialogVisible = true;
// this.editForm = satelliteIntroduction.init();
this
.
$emit
(
'change'
,
'edit'
)
this
.
$emit
(
'change'
,
'edit'
)
},
},
//获取状态
//获取状态
...
@@ -203,6 +169,11 @@ export default {
...
@@ -203,6 +169,11 @@ export default {
},
},
//上下架、删除更新
//上下架、删除更新
changeParams
(
row
,
key
)
{
changeParams
(
row
,
key
)
{
this
.
$confirm
(
'确定继续执行该操作吗?'
,
'提示'
,
{
confirmButtonText
:
'确定'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
}).
then
(()
=>
{
this
.
editForm
=
row
;
this
.
editForm
=
row
;
if
(
key
==
'isDel'
)
{
if
(
key
==
'isDel'
)
{
this
.
editForm
[
key
]
=
row
[
key
]
==
0
?
1
:
0
;
this
.
editForm
[
key
]
=
row
[
key
]
==
0
?
1
:
0
;
...
@@ -212,6 +183,7 @@ export default {
...
@@ -212,6 +183,7 @@ export default {
//更新专题
//更新专题
this
.
updateFunc
();
this
.
updateFunc
();
})
},
},
//获取banner列表
//获取banner列表
getList
()
{
getList
()
{
...
...
Write
Preview
Markdown
is supported
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