parent
ccc30e06ad
commit
831b4a1cd8
22 changed files with 833 additions and 384 deletions
After Width: | Height: | Size: 460 KiB |
@ -0,0 +1,131 @@ |
|||||||
|
<template> |
||||||
|
<div class="wrap"> |
||||||
|
<div class="actions"> |
||||||
|
<p class="page-name">页面设置/首页</p> |
||||||
|
<div> |
||||||
|
<el-button type="primary" @click="preview">预览</el-button> |
||||||
|
<el-button @click="save(0)">保存为草稿</el-button> |
||||||
|
<el-button type="primary" @click="save(1)">发布</el-button> |
||||||
|
<el-button @click="back">放弃编辑</el-button> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
|
||||||
|
<div class="modules"> |
||||||
|
<div class="relative"> |
||||||
|
<el-carousel height="500px" |
||||||
|
:indicator-position="modules[0].list.filter(e => e.isEnable).length > 1 ? '' : 'none'"> |
||||||
|
<template v-for="(item, i) in modules[0].list"> |
||||||
|
<el-carousel-item v-if="item.pic && item.isEnable" :key="i"> |
||||||
|
<img width="100%" height="100%" :src="item.pic" alt=""> |
||||||
|
</el-carousel-item> |
||||||
|
</template> |
||||||
|
</el-carousel> |
||||||
|
<div class="cover" @click="toSet(0)">点击更换banner与链接</div> |
||||||
|
</div> |
||||||
|
|
||||||
|
<ul class="intro c-wrap m-t-20"> |
||||||
|
<template v-for="(item, i) in modules[1].list"> |
||||||
|
<li v-if="item.isEnable" :key="i"> |
||||||
|
<img :src="item.pic" alt=""> |
||||||
|
<div class="text"> |
||||||
|
<h6>{{ item.title }}</h6> |
||||||
|
<p class="desc">{{ item.des }}</p> |
||||||
|
</div> |
||||||
|
</li> |
||||||
|
</template> |
||||||
|
<div class="cover" @click="toSet(1)">点击更改图片、标题、链接与描述</div> |
||||||
|
</ul> |
||||||
|
</div> |
||||||
|
|
||||||
|
<Module ref="module" :data.sync="curData" :visible.sync="diaVisible" @moduleSubmit="moduleSubmit" /> |
||||||
|
</div> |
||||||
|
</template> |
||||||
|
|
||||||
|
<script> |
||||||
|
import mixins from '@/mixins/page' |
||||||
|
import Modules from '@/const/modules' |
||||||
|
export default { |
||||||
|
mixins: [mixins], |
||||||
|
data () { |
||||||
|
return { |
||||||
|
modules: Modules.shop |
||||||
|
} |
||||||
|
}, |
||||||
|
mounted () { |
||||||
|
this.$store.commit('user/setCrumbs', [ |
||||||
|
{ |
||||||
|
name: '站点管理', |
||||||
|
route: '/site' |
||||||
|
}, |
||||||
|
{ |
||||||
|
name: '内容管理', |
||||||
|
route: '/column' |
||||||
|
}, |
||||||
|
{ |
||||||
|
name: '栏目管理', |
||||||
|
route: '/column' |
||||||
|
}, |
||||||
|
{ |
||||||
|
name: '产品中心' |
||||||
|
} |
||||||
|
]) |
||||||
|
}, |
||||||
|
methods: { |
||||||
|
|
||||||
|
} |
||||||
|
}; |
||||||
|
</script> |
||||||
|
|
||||||
|
<style lang="scss" scoped> |
||||||
|
@import '../../../styles/page/page.scss'; |
||||||
|
|
||||||
|
.intro { |
||||||
|
display: flex; |
||||||
|
justify-content: space-between; |
||||||
|
align-items: center; |
||||||
|
padding: 43px 0; |
||||||
|
background-color: #fff; |
||||||
|
|
||||||
|
li { |
||||||
|
display: inline-flex; |
||||||
|
align-items: center; |
||||||
|
cursor: pointer; |
||||||
|
transition: 0.3s; |
||||||
|
|
||||||
|
&.active { |
||||||
|
|
||||||
|
h6, |
||||||
|
.desc { |
||||||
|
color: #006eff; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
&:hover { |
||||||
|
margin-top: -15px; |
||||||
|
|
||||||
|
h6, |
||||||
|
.desc { |
||||||
|
color: #006eff; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
img { |
||||||
|
width: 50px; |
||||||
|
margin-right: 15px; |
||||||
|
} |
||||||
|
|
||||||
|
h6 { |
||||||
|
margin-bottom: 5px; |
||||||
|
font-size: 16px; |
||||||
|
color: #0b1d30; |
||||||
|
transition: 0.5s; |
||||||
|
} |
||||||
|
|
||||||
|
.desc { |
||||||
|
font-size: 13px; |
||||||
|
color: #757f92; |
||||||
|
transition: 0.5s; |
||||||
|
} |
||||||
|
} |
||||||
|
</style> |
@ -0,0 +1,105 @@ |
|||||||
|
<template> |
||||||
|
<div class="page"> |
||||||
|
<el-form ref="form" label-width="100px"> |
||||||
|
<el-form-item label="标题"> |
||||||
|
<el-input v-model="form.title" ref="account" placeholder="请输入标题" style="width: 400px"></el-input> |
||||||
|
</el-form-item> |
||||||
|
<el-form-item label="图标"> |
||||||
|
<el-upload accept=".jpg,.png,.jpeg" :action="this.api.upload" :on-remove="handleRemove" :on-error="uploadError" |
||||||
|
:before-remove="beforeRemove" :headers="headers" :show-file-list="false" :on-success="uploadSuccess"> |
||||||
|
<div style="text-align: left;"> |
||||||
|
<el-button size="small" type="primary">上传logo</el-button> |
||||||
|
<div class="m-t-10"> |
||||||
|
<img v-if="form.logoUrl" :src="form.logoUrl" class="logo"> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
|
||||||
|
<div slot="tip" class="el-upload__tip"> |
||||||
|
<p>只能上传jpg/png文件,请上传120*40左右的logo</p> |
||||||
|
</div> |
||||||
|
</el-upload> |
||||||
|
</el-form-item> |
||||||
|
<el-form-item> |
||||||
|
<el-button type="primary" @click="save">{{ form.id ? "更新" : "创建" }}</el-button> |
||||||
|
</el-form-item> |
||||||
|
</el-form> |
||||||
|
</div> |
||||||
|
</template> |
||||||
|
|
||||||
|
<script> |
||||||
|
import Util from "@/libs/util" |
||||||
|
import Setting from "@/setting" |
||||||
|
export default { |
||||||
|
data () { |
||||||
|
return { |
||||||
|
siteId: this.$store.state.content.site.id, |
||||||
|
headers: { |
||||||
|
token: Util.local.get(Setting.tokenKey) |
||||||
|
}, |
||||||
|
coverUrl: '', |
||||||
|
uploadList: [], |
||||||
|
form: { |
||||||
|
id: '', |
||||||
|
title: '', |
||||||
|
logoUrl: '', |
||||||
|
siteId: this.$store.state.content.site.id, |
||||||
|
} |
||||||
|
} |
||||||
|
}, |
||||||
|
mounted () { |
||||||
|
this.getData() |
||||||
|
}, |
||||||
|
methods: { |
||||||
|
async getData () { |
||||||
|
const res = await this.$post(`${this.api.findLogo}?siteId=${this.siteId}`) |
||||||
|
if (res.data) { |
||||||
|
this.form = res.data |
||||||
|
this.uploadList.push({ |
||||||
|
name: 'logo.jpg', |
||||||
|
url: res.data.logoUrl |
||||||
|
}) |
||||||
|
} |
||||||
|
}, |
||||||
|
handleExceed () { // 上传文件 |
||||||
|
Util.warningMsg("当前限制选择 1 个文件,如需更换,请删除上一个文件再重新选择!") |
||||||
|
}, |
||||||
|
// 附件上传成功 |
||||||
|
uploadSuccess (data) { |
||||||
|
if (data.code === 401) { |
||||||
|
Util.errorMsg("登录过期,请重新登录") |
||||||
|
setTimeout(() => { |
||||||
|
this.$store.dispatch('user/logout') |
||||||
|
}, 1000) |
||||||
|
return false |
||||||
|
} |
||||||
|
this.form.logoUrl = data.url |
||||||
|
}, |
||||||
|
uploadError (err, file, fileList) { |
||||||
|
this.$message({ |
||||||
|
message: "上传出错,请重试!", |
||||||
|
type: "error", |
||||||
|
center: true |
||||||
|
}); |
||||||
|
}, |
||||||
|
beforeRemove (file, fileList) { |
||||||
|
return this.$confirm(`确定移除 ${file.name}?`); |
||||||
|
}, |
||||||
|
handleRemove () { |
||||||
|
this.coverUrl = '' |
||||||
|
}, |
||||||
|
async save () { |
||||||
|
const { form } = this |
||||||
|
if (!form.logoUrl) return Util.errorMsg('请上传logo!') |
||||||
|
await this.$post(this.api.saveLogo, this.form) |
||||||
|
Util.successMsg('更新成功') |
||||||
|
this.getData() |
||||||
|
} |
||||||
|
} |
||||||
|
}; |
||||||
|
</script> |
||||||
|
|
||||||
|
<style lang="scss" scoped> |
||||||
|
.logo { |
||||||
|
max-height: 50px; |
||||||
|
} |
||||||
|
</style> |
@ -0,0 +1,16 @@ |
|||||||
|
import BasicLayout from '@/layouts/home' |
||||||
|
|
||||||
|
const meta = {} |
||||||
|
|
||||||
|
export default { |
||||||
|
path: '/logo', |
||||||
|
meta, |
||||||
|
component: BasicLayout, |
||||||
|
children: [ |
||||||
|
{ |
||||||
|
path: `/logo`, |
||||||
|
component: () => import('@/pages/logo'), |
||||||
|
meta: { title: '网站logo设置' } |
||||||
|
}, |
||||||
|
] |
||||||
|
} |
Loading…
Reference in new issue