Commit 28728079 authored by Xiaxuxia's avatar Xiaxuxia

添加影像图库

parent 67985215
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
});
}
...@@ -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() {
......
...@@ -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>
<template slot-scope="scope"> </el-table-column>
<el-button type="primary" @click="selectFunc(scope.row)">选择</el-button> <el-table-column label="资讯标题" width="200" align="center">
</template> <template slot-scope="scope">
</el-table-column> <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">
<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>
</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>
<template slot-scope="scope"> </el-table-column>
<el-button type="primary" @click="selectFunc(scope.row)">选择</el-button> <el-table-column label="应用类别" width="200" align="center">
</template> <template slot-scope="scope">
</el-table-column> <span>{{ scope.row.type }}</span>
</el-table> </template>
</el-table-column>
<el-table-column label="应用名称" align="center">
<template slot-scope="scope">
<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>
</el-table-column>
</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
}
}, },
visible: { //应用详情
news: false, details: {
details: false datas: [{
id: "1",
type: "类别",
name: "名称",
icon: {
url: "https://onemap.obtdata.com/wx/download/world.png",
showPreview: false,
},
date: "发布时间",
status: "状态",
}],
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>
...@@ -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();
// 文件对象 // 文件对象
......
...@@ -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'},
} }
} }
<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>
...@@ -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;
......
<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>
<!--
* @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>
<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>
...@@ -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();
......
<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}`)
if (!!val) { this.componentVal = name
this.datas = val
} this.$nextTick(() => {
if (!!val) {
this.$bus.$emit('satelliteIntroduction-edit-renderData', val)
}
})
} }
} }
} }
......
...@@ -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.title" placeholder="请输入卫星名称"></el-input> <el-input v-model="searchForm.name" 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,
title: "" name: ""
}, },
//添加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,15 +169,21 @@ export default { ...@@ -203,15 +169,21 @@ export default {
}, },
//上下架、删除更新 //上下架、删除更新
changeParams(row, key) { changeParams(row, key) {
this.editForm = row; this.$confirm('确定继续执行该操作吗?', '提示', {
if (key == 'isDel') { confirmButtonText: '确定',
this.editForm[key] = row[key] == 0 ? 1 : 0; cancelButtonText: '取消',
} else { type: 'warning'
this.editForm[key] = row[key] == 1 ? 2 : 1; }).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列表 //获取banner列表
getList() { getList() {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment