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
Expand all
Hide 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 @@
</div>
<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>
<!-- 输入框 -->
...
...
@@ -71,6 +71,7 @@ export default {
methods
:
{
onContentChange
(
val
)
{
console
.
log
(
val
)
this
.
getForm
.
formVal
.
content
=
val
;
},
afterChange
()
{
...
...
@@ -88,7 +89,12 @@ export default {
//获取自定义组件值
getCustomInput
(
val
)
{
let
formVal
=
this
.
getForm
.
formVal
formVal
.
url
=
val
if
(
val
.
jumpType
==
1
)
{
formVal
.
url
=
val
.
value
}
else
{
formVal
.
jumpId
=
val
.
value
}
},
submitForm
()
{
let
_this
=
this
;
...
...
@@ -114,7 +120,7 @@ export default {
this
.
$refs
.
customInput
[
0
].
showErr
(
'请选择'
)
return
false
}
this
.
$refs
.
customInput
[
0
].
showErr
(
''
)
this
.
$refs
.
customInput
&&
this
.
$refs
.
customInput
[
0
].
showErr
(
''
)
return
true
},
resetForm
()
{
...
...
src/components/CustomInput/index.vue
View file @
28728079
This diff is collapsed.
Click to expand it.
src/components/Upload/singleImageX.vue
View file @
28728079
...
...
@@ -57,6 +57,12 @@ export default {
onUploadRequest
(
data
)
{
this
.
uploading
=
true
;
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 对象
let
form
=
new
FormData
();
// 文件对象
...
...
src/utils/formDatas.js
View file @
28728079
...
...
@@ -62,7 +62,6 @@ export const satelliteIntroduction = {
resolution
:
""
,
//分辨率
coverImg
:
""
,
//封面图
iconImg
:
""
,
//图标
// intro: "",//介绍
content
:
""
,
//详细内容
rank
:
''
,
//排序
status
:
1
//是否启用
...
...
@@ -85,10 +84,55 @@ export const satelliteIntroduction = {
],
content
:
[
{
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: [
// { required: true, message: '请输入介绍', trigger: 'blur' }
// ]
coverImg
:
[
{
required
:
true
,
message
:
'请输入封面图链接'
,
trigger
:
'blur'
}
],
iconImg
:
[
{
required
:
true
,
message
:
'请输入图标链接'
,
trigger
:
'blur'
}
],
content
:
[
{
required
:
true
,
message
:
'请输入详细内容'
,
trigger
:
'blur'
}
]
},
formInfo
:
{
name
:
{
label
:
"卫星名称"
},
...
...
@@ -96,7 +140,6 @@ export const satelliteIntroduction = {
coverImg
:
{
label
:
"封面图"
,
type
:
'file'
},
iconImg
:
{
label
:
"图标"
,
type
:
'file'
},
rank
:
{
label
:
"排序"
},
// intro: { label: "介绍"},
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 @@
<el-input
v-model=
"searchForm.title"
placeholder=
"请输入banner标题"
></el-input>
</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-form-item>
</el-form>
...
...
@@ -66,40 +66,6 @@
: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 == '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
:formData=
"formObject"
@
submitFunc=
"updateFunc"
...
...
@@ -116,8 +82,6 @@
import
{
banner
}
from
"@/utils/formDatas.js"
//表单数据
import
{
page
,
update
}
from
"@/api/website/banner"
//接口
// import myUpload from "@/components/Upload/singleImageX"//上传组件
// import customInput from "@/components/CustomInput"//自定义组件
import
CustomForm
from
"@/components/CustomForm"
export
default
{
...
...
@@ -141,10 +105,6 @@ export default {
status
:
0
,
title
:
""
},
// //添加banner与修改banner的form对象
// editForm: banner.init(),//提交的表单参数
// editFormInfo: banner.formInfo,//表单项。
// editFormRules: banner.rules,//表单规则
formObject
:
{
formVal
:
banner
.
init
(),
//提交的表单参数
rules
:
banner
.
rules
,
//表单规则
...
...
@@ -172,18 +132,14 @@ export default {
getCustomInput
(
val
)
{
this
.
editForm
.
url
=
val
},
//清除搜索
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
))
search
()
{
this
.
listQuery
=
{
status
:
this
.
searchForm
.
status
||
null
,
title
:
this
.
searchForm
.
title
,
page
:
1
,
limit
:
20
}
this
.
list
=
temp
this
.
getList
();
},
//清除搜索
clearFilterData
()
{
...
...
@@ -191,8 +147,36 @@ export default {
status
:
0
,
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
)
{
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
>
<div
id=
'Container'
>
影像图库
<div
class=
"container"
>
<component
:is=
"componentVal"
@
change=
"changePage"
></component>
</div>
</
template
>
<
script
>
import
{
satelliteIntroduction
}
from
"@/utils/formDatas.js"
import
{
page
,
update
}
from
"@/api/website/imageLibrary"
import
List
from
"./list"
import
Edit
from
"./edit"
export
default
{
name
:
'Container'
,
name
:
"imageLibrary"
,
components
:
{
List
,
Edit
},
data
(){
data
()
{
return
{
componentVal
:
'List'
,
datas
:
null
}
},
mounted
()
{
},
methods
:
{
changePage
(
name
,
val
)
{
},
this
.
componentVal
=
name
this
.
$nextTick
(()
=>
{
if
(
!!
val
)
{
this
.
$bus
.
$emit
(
'satelliteIntroduction-edit-renderData'
,
val
)
}
})
}
}
}
</
script
>
<
style
rel=
"stylesheet/scss"
lang=
"scss"
scoped
>
<
style
lang=
"scss"
scoped
>
</
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 {
},
}
},
mounted
()
{
this
.
$bus
.
$on
(
'satelliteIntroduction-edit-renderData'
,
this
.
renderData
)
},
methods
:
{
renderData
(
val
)
{
this
.
formObject
.
formVal
=
val
console
.
log
(
'bus end'
,
this
.
formObject
.
formVal
)
},
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
)
{
params
.
rank
=
~~
params
.
rank
;
update
(
params
).
then
(
res
=>
{
let
datas
=
this
.
filterParams
(
params
);
update
(
datas
).
then
(
res
=>
{
if
(
res
.
status
==
200
)
{
//返回上一页,更新列表
this
.
goBack
();
...
...
src/views/webSiteManagement/satelliteIntroduction/index.vue
View file @
28728079
<
template
>
<div
class=
"container"
>
<component
:is=
"componentVal"
:params=
"datas"
@
change=
"changePage"
></component>
<component
:is=
"componentVal"
@
change=
"changePage"
></component>
</div>
</
template
>
...
...
@@ -8,11 +8,18 @@
import
{
satelliteIntroduction
}
from
"@/utils/formDatas.js"
import
{
page
,
update
}
from
"@/api/website/satelliteIntroduction"
import
List
from
"./list"
import
Edit
from
"./edit"
export
default
{
name
:
"satelliteIntroduction"
,
components
:
{
List
,
Edit
},
data
()
{
return
{
componentVal
:
()
=>
import
(
"./list"
)
,
componentVal
:
'List'
,
datas
:
null
}
},
...
...
@@ -21,11 +28,18 @@ export default {
},
methods
:
{
changePage
(
name
,
val
)
{
this
.
componentVal
=
()
=>
import
(
`./
${
name
}
`
)
if
(
!!
val
)
{
this
.
datas
=
val
}
this
.
componentVal
=
name
this
.
$nextTick
(()
=>
{
if
(
!!
val
)
{
this
.
$bus
.
$emit
(
'satelliteIntroduction-edit-renderData'
,
val
)
}
})
}
}
}
...
...
src/views/webSiteManagement/satelliteIntroduction/list.vue
View file @
28728079
...
...
@@ -13,10 +13,10 @@
</el-select>
</el-form-item>
<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-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-form-item>
</el-form>
...
...
@@ -53,38 +53,6 @@
:total=
"total"
@
current-change=
"currentChange"
>
</el-pagination>
</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>
...
...
@@ -110,7 +78,7 @@ export default {
//搜索表单
searchForm
:
{
status
:
0
,
titl
e
:
""
nam
e
:
""
},
//添加banner与修改banner的form对象
editForm
:
satelliteIntroduction
.
init
(),
//提交的表单参数
...
...
@@ -130,26 +98,29 @@ export default {
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
.
title
.
includes
(
this
.
searchForm
.
title
))
search
()
{
this
.
listQuery
=
{
status
:
this
.
searchForm
.
status
||
null
,
name
:
this
.
searchForm
.
name
,
page
:
1
,
limit
:
20
}
this
.
list
=
temp
this
.
getList
();
},
//清除搜索
clearFilterData
()
{
this
.
searchForm
=
{
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
)
{
...
...
@@ -158,9 +129,7 @@ export default {
},
//编辑
edit
(
row
)
{
this
.
dialogTitle
=
"编辑卫星"
;
this
.
dialogVisible
=
true
;
this
.
editForm
=
row
this
.
$emit
(
'change'
,
'Edit'
,
row
)
},
//校验表单
submitForm
()
{
...
...
@@ -192,9 +161,6 @@ export default {
},
//新增banner
addItem
()
{
// this.dialogTitle = "新增卫星";
// this.dialogVisible = true;
// this.editForm = satelliteIntroduction.init();
this
.
$emit
(
'change'
,
'edit'
)
},
//获取状态
...
...
@@ -203,15 +169,21 @@ export default {
},
//上下架、删除更新
changeParams
(
row
,
key
)
{
this
.
editForm
=
row
;
if
(
key
==
'isDel'
)
{
this
.
editForm
[
key
]
=
row
[
key
]
==
0
?
1
:
0
;
}
else
{
this
.
editForm
[
key
]
=
row
[
key
]
==
1
?
2
:
1
;
}
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
();
//更新专题
this
.
updateFunc
();
})
},
//获取banner列表
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