Commit 84909063 authored by zhanglw's avatar zhanglw

底部文件

parent f356297a
...@@ -437,10 +437,10 @@ export const HttpReq = { ...@@ -437,10 +437,10 @@ export const HttpReq = {
method: 'get' method: 'get'
}) })
}, },
// 首页-友情链接 // 首页-底部导航
homePageGetFriendshipUrl: function(params) { homePageGetBottomNavigation: function(params) {
return request({ return request({
url: '/api/bsw/bigScreen/index/friendshipUrl?' + qs.stringify(params, { indices: false }), url: '/api/bsw/bigScreen/index/bottomNavigationBar?' + qs.stringify(params, { indices: false }),
method: 'get' method: 'get'
}) })
}, },
......
...@@ -9,7 +9,7 @@ import { filterAsyncRouter } from '@/store/modules/permission' ...@@ -9,7 +9,7 @@ import { filterAsyncRouter } from '@/store/modules/permission'
NProgress.configure({ showSpinner: false })// NProgress Configuration NProgress.configure({ showSpinner: false })// NProgress Configuration
const whiteList = ['/login', '/backlogin', '/home', '/product', '/supplier', '/project', '/software', '/course', '/information']// 免登录路由白名单 const whiteList = ['/login', '/backlogin', '/home', '/product', '/supplier', '/project', '/software', '/course', '/information', '/footer']// 免登录路由白名单
const backUrlList = ['/dashboard', '/system', '/monitor', '/sys-tools', '/backstage']// 后台路由 const backUrlList = ['/dashboard', '/system', '/monitor', '/sys-tools', '/backstage']// 后台路由
router.beforeEach((to, from, next) => { router.beforeEach((to, from, next) => {
......
...@@ -158,6 +158,30 @@ export const constantRouterMap = [ ...@@ -158,6 +158,30 @@ export const constantRouterMap = [
}, },
hidden: true hidden: true
}, },
{
path: '/footer/about/:id',
meta: { title: '', noCache: true },
component: (resolve) => {
return require(['@/views/homepage/footer/index'], resolve)
},
hidden: true
},
{
path: '/footer/opinion',
meta: { title: '提供建议', noCache: true },
component: (resolve) => {
return require(['@/views/homepage/footer/opinion'], resolve)
},
hidden: true
},
{
path: '/footer/cooperate',
meta: { title: '我要合作', noCache: true },
component: (resolve) => {
return require(['@/views/homepage/footer/cooperate'], resolve)
},
hidden: true
},
{ {
path: '/console', path: '/console',
meta: { title: '个人中心', noCache: true }, meta: { title: '个人中心', noCache: true },
......
<template> <template>
<!-- 表单渲染 --> <!-- 表单渲染 -->
<el-dialog append-to-body :close-on-click-modal="false" :before-close="cancelView" :visible="visible" :title="title" width="860px"> <el-dialog append-to-body :close-on-click-modal="false" :before-close="cancelView" :visible="visible" :title="title" width="860px">
<el-form ref="formViewRef" :model="formData" :rules="rules" :status-icon="true" label-width="240px"> <el-form ref="formViewRef" :model="formData" :rules="rules" :status-icon="true" label-width="220px">
<el-form-item label="位置:" class="form-cell" prop="type"> <el-form-item label="位置:" class="form-cell" prop="type">
<div class="cell-box"> <div class="cell-box">
<el-select v-model="formData.type" placeholder="无" class="cell-select"> <el-select v-model="formData.type" placeholder="无" class="cell-select" @change="typeChang">
<el-option v-for="item in dict.home_setting" :key="item.value" :label="item.label" :value="item.value" /> <el-option v-for="item in dict.home_setting" :key="item.value" :label="item.label" :value="item.value" />
</el-select> </el-select>
</div> </div>
...@@ -83,6 +83,44 @@ ...@@ -83,6 +83,44 @@
/> />
</div> </div>
</el-form-item> </el-form-item>
<el-form-item label="封面与LOGO:" class="form-cell" prop="partnerLogo">
<div class="cell-box">
<ul class="el-upload-list el-upload-list--picture-card" style="float: left">
<li v-for="(item, index) in imgList" :key="index" tabindex="0" class="el-upload-list__item is-success">
<img :src="imgSrcStart+item" class="el-upload-list__item-thumbnail">
<label class="el-upload-list__item-status-label"><i class="el-icon-upload-success el-icon-check" /></label>
<span class="el-upload-list__item-actions">
<span class="el-upload-list__item-preview" @click="dialogImgUrl=item;dialogImgVisible=true"><i class="el-icon-zoom-in" /></span>
<span class="el-upload-list__item-delete" @click="handleRemoveImg(item)"><i class="el-icon-delete" /></span>
</span>
</li>
</ul>
<el-dialog append-to-body :visible.sync="dialogImgVisible">
<img width="100%" :src="imgSrcStart+dialogImgUrl">
</el-dialog>
<el-upload
ref="uploadCom"
action="/api/bsw/common/uploadPicture"
name="multipartFile"
:data="{mark:'logo'}"
list-type="picture-card"
:headers="uploadHeaders"
:limit="1"
:on-exceed="handleExceed"
:on-success="handleImported"
:on-preview="handlePictureCardPreview"
:on-remove="handleRemove"
>
<div slot="trigger" @click="handlePushClick($event)">
<i class="el-icon-plus" />
</div>
</el-upload>
<el-dialog append-to-body :visible.sync="dialogImageVisible">
<img width="100%" :src="dialogImageUrl">
</el-dialog>
</div>
<div style="display: none;clear: both">{{ formData.partnerLogo }}</div>
</el-form-item>
<el-form-item label="是否设置为钻石供应商:" class="form-cell" prop="diamondSupplier"> <el-form-item label="是否设置为钻石供应商:" class="form-cell" prop="diamondSupplier">
<div class="cell-box"> <div class="cell-box">
<el-radio-group v-model="formData.diamondSupplier" size="mini"> <el-radio-group v-model="formData.diamondSupplier" size="mini">
...@@ -271,6 +309,28 @@ ...@@ -271,6 +309,28 @@
</div> </div>
</el-form-item> </el-form-item>
</div> </div>
<div v-if="formData.type>=8">
<el-form-item label="操作名称:" class="form-cell" prop="operationName">
<div class="cell-box">
<el-input v-model="formData.operationName" placeholder="单行输入" class="cell-input" />
</div>
</el-form-item>
<el-form-item label="频道名称:" class="form-cell" prop="channelName">
<div class="cell-box">
<el-input v-model="formData.channelName" placeholder="单行输入" class="cell-input" />
</div>
</el-form-item>
<el-form-item label="富文本内容:" class="form-cell" prop="content">
<div class="cell-box">
<div ref="editor" class="editor" />
</div>
</el-form-item>
<el-form-item label="顺序:" class="form-cell" prop="operatingPeriod">
<div class="cell-box">
<el-input v-model.number="formData.sort" type="number" placeholder="请输入数字" class="cell-input" />
</div>
</el-form-item>
</div>
</el-form> </el-form>
<div slot="footer" class="dialog-footer" style="text-align: center"> <div slot="footer" class="dialog-footer" style="text-align: center">
<el-button @click="cancelView">关闭</el-button> <el-button @click="cancelView">关闭</el-button>
...@@ -283,6 +343,9 @@ ...@@ -283,6 +343,9 @@
<script> <script>
import { getToken } from '@/utils/auth' import { getToken } from '@/utils/auth'
import { HttpReq } from '@/api/common' import { HttpReq } from '@/api/common'
import { mapGetters } from 'vuex'
import { upload } from '@/utils/upload'
import E from 'wangeditor'
export default { export default {
dicts: ['home_setting', 'home_setting_2', 'home_setting_5', 'product_type'], dicts: ['home_setting', 'home_setting_2', 'home_setting_5', 'product_type'],
...@@ -324,12 +387,45 @@ export default { ...@@ -324,12 +387,45 @@ export default {
rules: {} rules: {}
} }
}, },
mounted() { computed: {
this.$nextTick(() => { ...mapGetters([
'imagesUploadApi',
}) 'baseApi'
])
}, },
mounted() {},
methods: { methods: {
typeChang() {
if (this.formData.type >= 8) {
this.$nextTick(() => {
if (!this.editor) {
const _this = this
const editor = new E(this.$refs.editor)
editor.config.zIndex = 5
editor.config.customUploadImg = function(files, insert) {
files.forEach(image => {
upload(_this.imagesUploadApi, image).then(res => {
const data = res.data
const url = _this.baseApi + '/file/' + data.type + '/' + data.realName
insert(url)
})
})
}
editor.config.onchange = (html) => {
this.formData.content = html
}
editor.create()
this.editor = editor
}
this.editor.txt.html(this.formData.content)
})
} else {
if (this.editor) {
this.editor.txt.clear()
this.editor = null
}
}
},
checkEnterpriseName(rule, value, callback) { checkEnterpriseName(rule, value, callback) {
this.$nextTick(_ => { this.$nextTick(_ => {
HttpReq.backstageApi.checkEnterpriseName({ HttpReq.backstageApi.checkEnterpriseName({
...@@ -360,6 +456,10 @@ export default { ...@@ -360,6 +456,10 @@ export default {
if (this.$refs.uploadCom) { if (this.$refs.uploadCom) {
this.$refs.uploadCom.clearFiles() this.$refs.uploadCom.clearFiles()
} }
if (this.editor) {
this.editor.txt.clear()
this.editor = null
}
this.$refs.formViewRef.resetFields() this.$refs.formViewRef.resetFields()
this.imgList = [] this.imgList = []
this.formData = { this.formData = {
...@@ -454,6 +554,9 @@ export default { ...@@ -454,6 +554,9 @@ export default {
if (this.formData.partnerLogo) { if (this.formData.partnerLogo) {
this.imgList = this.formData.partnerLogo.split(';') this.imgList = this.formData.partnerLogo.split(';')
} }
if (this.formData.type >= 8) {
this.typeChang()
}
} else { } else {
this.$message({ this.$message({
message: res.msg, message: res.msg,
...@@ -524,6 +627,10 @@ export default { ...@@ -524,6 +627,10 @@ export default {
</script> </script>
<style rel="stylesheet/scss" lang="scss" scoped> <style rel="stylesheet/scss" lang="scss" scoped>
.editor{
text-align:left;
width: 580px;
}
.cell-box { .cell-box {
min-width: 120px; min-width: 120px;
.cell-input { .cell-input {
......
...@@ -84,6 +84,23 @@ ...@@ -84,6 +84,23 @@
/> />
</div> </div>
</el-form-item> </el-form-item>
<el-form-item label="封面与LOGO:" class="form-cell" prop="partnerLogo">
<div class="cell-box">
<ul class="el-upload-list el-upload-list--picture-card" style="float: left">
<li v-for="(item, index) in imgList" :key="index" tabindex="0" class="el-upload-list__item is-success">
<img :src="imgSrcStart+item" class="el-upload-list__item-thumbnail">
<label class="el-upload-list__item-status-label"><i class="el-icon-upload-success el-icon-check" /></label>
<span class="el-upload-list__item-actions">
<span class="el-upload-list__item-preview" @click="dialogImgUrl=item;dialogImgVisible=true"><i class="el-icon-zoom-in" /></span>
</span>
</li>
</ul>
<el-dialog append-to-body :visible.sync="dialogImgVisible">
<img width="100%" :src="imgSrcStart+dialogImgUrl">
</el-dialog>
</div>
<div style="display: none;clear: both">{{ formData.partnerLogo }}</div>
</el-form-item>
<el-form-item label="是否设置为钻石供应商:" class="form-cell" prop="diamondSupplier"> <el-form-item label="是否设置为钻石供应商:" class="form-cell" prop="diamondSupplier">
<div class="cell-box"> <div class="cell-box">
<el-radio-group v-model="formData.diamondSupplier" disabled size="mini"> <el-radio-group v-model="formData.diamondSupplier" disabled size="mini">
...@@ -251,6 +268,28 @@ ...@@ -251,6 +268,28 @@
</div> </div>
</el-form-item> </el-form-item>
</div> </div>
<div v-if="formData.type>=8">
<el-form-item label="操作名称:" class="form-cell" prop="operationName">
<div class="cell-box">
<el-input v-model="formData.operationName" disabled placeholder="单行输入" class="cell-input" />
</div>
</el-form-item>
<el-form-item label="频道名称:" class="form-cell" prop="channelName">
<div class="cell-box">
<el-input v-model="formData.channelName" disabled placeholder="单行输入" class="cell-input" />
</div>
</el-form-item>
<el-form-item label="富文本内容:" class="form-cell" prop="content">
<div class="cell-box">
<div style="width: 580px" v-html="formData.content" />
</div>
</el-form-item>
<el-form-item label="顺序:" class="form-cell" prop="operatingPeriod">
<div class="cell-box">
<el-input v-model.number="formData.sort" disabled type="number" placeholder="请输入数字" class="cell-input" />
</div>
</el-form-item>
</div>
</el-form> </el-form>
<div slot="footer" class="dialog-footer" style="text-align: center"> <div slot="footer" class="dialog-footer" style="text-align: center">
<el-button @click="cancelView">关闭</el-button> <el-button @click="cancelView">关闭</el-button>
......
...@@ -5,9 +5,10 @@ ...@@ -5,9 +5,10 @@
<el-col v-for="(item,index) in dataList" :key="index" :span="4"> <el-col v-for="(item,index) in dataList" :key="index" :span="4">
<div class="title-s">{{ item.name }}</div> <div class="title-s">{{ item.name }}</div>
<div v-for="(t,i) in item.list" :key="'lb_'+i" class="label" :title="t.name"> <div v-for="(t,i) in item.list" :key="'lb_'+i" class="label" :title="t.name">
<a :href="t.url||'http://www.minestar.cn'" target="_blank"> <a v-if="t.url" :href="t.url||'http://www.minestar.cn'" target="_blank">
{{ t.name }} {{ t.name }}
</a> </a>
<div v-else class="touch" @click="linkClick(t)">{{ t.name }}</div>
</div> </div>
</el-col> </el-col>
</el-row> </el-row>
...@@ -41,9 +42,9 @@ export default { ...@@ -41,9 +42,9 @@ export default {
{ {
name: '联系我们', name: '联系我们',
list: [ list: [
{ name: '提供建议', url: '' }, { name: '提供建议', leaveWordUrl: '/footer/opinion' },
{ name: '我要合作', url: '' }, { name: '我要合作', leaveWordUrl: '/footer/cooperate' },
{ name: '联系方式', url: '' } { name: '联系方式' }
] ]
}, },
{ {
...@@ -58,22 +59,54 @@ export default { ...@@ -58,22 +59,54 @@ export default {
}, },
mounted() { mounted() {
this.$nextTick(() => { this.$nextTick(() => {
HttpReq.webClientApi.homePageGetFriendshipUrl({ HttpReq.webClientApi.homePageGetBottomNavigation({
preview: false preview: false
}).then((res) => { }).then((res) => {
this.dataList.push({ this.dataList = [
name: '友情链接', {
list: res.data.friendshipUrl name: '用户指南',
}) list: res.data.userGuide
},
{
name: '关于我们',
list: res.data.aboutUs
},
{
name: '联系我们',
list: [
{ name: '提供建议', leaveWordUrl: '/footer/opinion' },
{ name: '我要合作', leaveWordUrl: '/footer/cooperate' },
...res.data.commonQuestions
]
},
{
name: '常见问题',
list: res.data.contactUs
},
{
name: '友情链接',
list: res.data.friendshipUrl
}
]
}) })
}) })
}, },
methods: { methods: {
click() {} linkClick(item) {
if (item.leaveWordUrl) {
this.$router.push({ path: item.leaveWordUrl })
} else {
this.$router.push({ path: `/footer/about/${item.id}` })
}
}
} }
} }
</script> </script>
<style rel="stylesheet/scss" lang="scss" scoped> <style rel="stylesheet/scss" lang="scss" scoped>
.touch {
cursor:pointer;
}
.footer-content { .footer-content {
width: 100%; width: 100%;
height: 267px; height: 267px;
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
...@@ -40,9 +40,10 @@ ...@@ -40,9 +40,10 @@
<img v-if="item.isGood" src="@/assets/home_images/recommend.png" class="stamp" title="推荐" style="top: 10px;right: 8px"> <img v-if="item.isGood" src="@/assets/home_images/recommend.png" class="stamp" title="推荐" style="top: 10px;right: 8px">
<img v-if="item.isHot" src="@/assets/home_images/hot.png" class="stamp" title="热门" style="top: 0;left: 0"> <img v-if="item.isHot" src="@/assets/home_images/hot.png" class="stamp" title="热门" style="top: 0;left: 0">
<el-image <el-image
class="touch"
:src="item.imgSrc?imgSrcStart+'/img'+item.imgSrc:defaultImgProduct" :src="item.imgSrc?imgSrcStart+'/img'+item.imgSrc:defaultImgProduct"
:preview-src-list="item.imgSrcList.length?item.imgSrcList:[defaultImgProduct]"
style="width:284px;height: 284px;margin: 0 32px 4px" style="width:284px;height: 284px;margin: 0 32px 4px"
@click="goToDetails(item, '/product/details')"
> >
<div slot="placeholder" class="image-slot">加载中<span class="dot">...</span></div> <div slot="placeholder" class="image-slot">加载中<span class="dot">...</span></div>
</el-image> </el-image>
......
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