添加【单页栏目】长页

master
yujialong 4 months ago
parent 88160da033
commit 4b534cd6bc
  1. BIN
      src/assets/images/page/singlePage.png
  2. BIN
      src/assets/images/page/team.png
  3. 277
      src/const/modules.js
  4. 1
      src/mixins/page/index.js
  5. 3
      src/pages/column/page/iasf.vue
  6. 73
      src/pages/column/page/singlePage.vue
  7. 5
      src/router/modules/column.js

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 78 KiB

After

Width:  |  Height:  |  Size: 84 KiB

@ -11926,9 +11926,9 @@ export default {
}, },
list: [ list: [
{ {
pic: 'https://huorantech.com/images/member/1.jpg', pic: 'https://huorantech.com/images/member/4.jpg',
title: '张奕只', title: '谢道韫',
subTitle: '总经理', subTitle: '东晋才女',
link: { link: {
linkName: '无', linkName: '无',
connectionType: 1, connectionType: 1,
@ -11940,13 +11940,13 @@ export default {
otherArticleId: '', otherArticleId: '',
isOpen: 1 isOpen: 1
}, },
des: `职责内容`, des: `谢道韫自幼才智过人,聪明伶俐,深受叔父谢安赏识,长大后嫁给王羲之次子王凝之。有一次王献之和宾客辩论,将要理屈调穷,谢道韫坐青绫布帐后,就王献之的议论加以发挥,宾客为之倾服。后孙恩率农民起义军攻克会稽,杀害谢道韫丈夫、儿子。谢道韫率领侍女抽刀抵抗,手杀数人后被俘。孙恩敬佩其勇敢,释放回家,从此寡居会稽郡。`,
isEnable: 1 isEnable: 1
}, },
{ {
pic: 'https://huorantech.com/images/member/2.jpg', pic: 'https://huorantech.com/images/member/5.jpg',
title: '刘', title: '刘',
subTitle: '副院长', subTitle: '元末明初政治家、文学家、军事家',
link: { link: {
linkName: '无', linkName: '无',
connectionType: 1, connectionType: 1,
@ -11958,13 +11958,13 @@ export default {
otherArticleId: '', otherArticleId: '',
isOpen: 1 isOpen: 1
}, },
des: `职责内容`, des: `自幼博览经史及天文、历法、兵法、性理诸书,尤精象纬之学。至顺四年(1333年)举进士。授江西高安县丞。后任江西行省职官掾史、江浙行省儒学副提举、浙东元帅府都事、江浙行省都事、郎中等职。因遭排挤愤而辞官,回乡隐居著述。 [16]至正二十年(1360年),应朱元璋之请,至应天(今南京),任谋臣,参与机要决策。针对当时形势,提出时务十八策,被采纳,后又陆续陈策。`,
isEnable: 1 isEnable: 1
}, },
{ {
pic: 'https://huorantech.com/images/member/3.jpg', pic: 'https://huorantech.com/images/member/6.jpg',
title: '马琦', title: '刘锦棠',
subTitle: '副经理', subTitle: '晚清湘军重要将领',
link: { link: {
linkName: '无', linkName: '无',
connectionType: 1, connectionType: 1,
@ -11976,7 +11976,7 @@ export default {
otherArticleId: '', otherArticleId: '',
isOpen: 1 isOpen: 1
}, },
des: `职责内容`, des: `刘锦棠作为左宗棠西征军的主将,相继平定了同治回民起义和新疆乱局中阿古柏的继承人伯克·胡里势力,有“飞将军”“刘大闯”之称,清廷赐号“法福灵阿巴图鲁” [37]。他在新疆时,改革军府制,规划新疆边防,对新疆的建设做出重大贡献。翁同龢赞其为“齐名曾左无前绩,开府疏勒第一人” [64]。外人亦认为其收复新疆的成绩,“可与西方国家统帅们最光辉灿烂的功绩相比拟” [30]。`,
isEnable: 1 isEnable: 1
} }
], ],
@ -12946,7 +12946,7 @@ export default {
] ]
], ],
matchIndex: [ singlePage: [
{ {
type: 'introduce', type: 'introduce',
forms: [ forms: [
@ -13010,14 +13010,35 @@ export default {
isOpen: 1 isOpen: 1
}, },
pic: '', pic: '',
title: ``,
weixinPic1: '', weixinPic1: '',
weixinText1: ``, weixinText1: ``,
weixinPic2: '', weixinPic2: '',
weixinText2: ``, weixinText2: ``,
isEnable: 1, isEnable: 1
}, },
list: [], list: [
{
pic: 'https://huorantech.com/iasf/sysFiles/preview/1815313349789986818',
mediaType: 'png',
link: {
linkName: '无',
connectionType: 1,
columnId: [],
articleId: '',
linkAddress: '',
site: '',
otherColumnId: [],
otherArticleId: '',
isOpen: 1
},
des: '<h6 style="margin-bottom: 25px;font-size: 2.2rem;color: #fff;">全国大学生金融投资创新大赛</h6><p style="font-size: 1.5rem;color: #fff;">承办单位:全国大学生金融投资创新大赛组织委员会</p>',
weixinPic1: '',
weixinText1: ``,
weixinPic2: '',
weixinText2: ``,
isEnable: 1,
}
],
dialogWidth: '1200px', dialogWidth: '1200px',
labelWidth: '110px' labelWidth: '110px'
}, },
@ -13084,46 +13105,7 @@ export default {
}, },
{ {
type: 'form', type: 'introduce',
forms: [
{
type: 'upload',
prop: 'pic',
label: '图标',
required: true,
width: 98,
height: 98
},
{
type: 'input',
prop: 'title',
label: '标题',
required: true
},
{
type: 'link',
prop: 'link',
label: '链接'
},
],
form: {
pic: 'https://huorantech.com/images/iasf/3.png',
title: '世界光源',
link: {
linkName: '无',
connectionType: 1,
columnId: [],
articleId: '',
linkAddress: '',
site: '',
otherColumnId: [],
otherArticleId: '',
isOpen: 1
}
}
},
{
type: 'form',
forms: [ forms: [
{ {
type: 'upload', type: 'upload',
@ -13146,8 +13128,7 @@ export default {
}, },
], ],
form: { form: {
pic: 'https://huorantech.com/images/iasf/4.png', title: '',
title: '图片库',
link: { link: {
linkName: '无', linkName: '无',
connectionType: 1, connectionType: 1,
@ -13158,125 +13139,91 @@ export default {
otherColumnId: [], otherColumnId: [],
otherArticleId: '', otherArticleId: '',
isOpen: 1 isOpen: 1
}
}
},
{
type: 'form',
forms: [
{
type: 'upload',
prop: 'pic',
label: '图标',
required: true,
width: 98,
height: 98
},
{
type: 'input',
prop: 'title',
label: '标题',
required: true
},
{
type: 'link',
prop: 'link',
label: '链接'
},
],
form: {
pic: 'https://huorantech.com/images/iasf/5.png',
title: '视频库',
link: {
linkName: '无',
connectionType: 1,
columnId: [],
articleId: '',
linkAddress: '',
site: '',
otherColumnId: [],
otherArticleId: '',
isOpen: 1
}
}
},
{
type: 'form',
forms: [
{
type: 'upload',
prop: 'pic',
label: '图标',
required: true,
width: 98,
height: 98
}, },
isEnable: 1
},
list: [
{ {
type: 'input', pic: 'https://huorantech.com/iasf/sysFiles/preview/1815282922115149825',
prop: 'title', title: '报名入口',
label: '标题', link: {
required: true linkName: '无',
connectionType: 1,
columnId: [],
articleId: '',
linkAddress: '',
site: '',
otherColumnId: [],
otherArticleId: '',
isOpen: 1
},
isEnable: 1
}, },
{ {
type: 'link', pic: 'https://huorantech.com/iasf/sysFiles/preview/1815283233902931970',
prop: 'link', title: '院校入口',
label: '链接' link: {
linkName: '无',
connectionType: 1,
columnId: [],
articleId: '',
linkAddress: '',
site: '',
otherColumnId: [],
otherArticleId: '',
isOpen: 1
},
isEnable: 1
}, },
],
form: {
pic: 'https://huorantech.com/images/iasf/6.png',
title: '大事记',
link: {
linkName: '无',
connectionType: 1,
columnId: [],
articleId: '',
linkAddress: '',
site: '',
otherColumnId: [],
otherArticleId: '',
isOpen: 1
}
}
},
{
type: 'form',
forms: [
{ {
type: 'upload', pic: 'https://huorantech.com/iasf/sysFiles/preview/1815283686409613313',
prop: 'pic', title: '专家入口',
label: '图标', link: {
required: true, linkName: '无',
width: 98, connectionType: 1,
height: 98 columnId: [],
articleId: '',
linkAddress: '',
site: '',
otherColumnId: [],
otherArticleId: '',
isOpen: 1
},
isEnable: 1
}, },
{ {
type: 'input', pic: 'https://huorantech.com/iasf/sysFiles/preview/1815283581262606338',
prop: 'title', title: '作品提交',
label: '标题', link: {
required: true linkName: '无',
connectionType: 1,
columnId: [],
articleId: '',
linkAddress: '',
site: '',
otherColumnId: [],
otherArticleId: '',
isOpen: 1
},
isEnable: 1
}, },
{ {
type: 'link', pic: 'https://huorantech.com/iasf/sysFiles/preview/1815283987573223425',
prop: 'link', title: '股票仿真交易',
label: '链接' link: {
linkName: '无',
connectionType: 1,
columnId: [],
articleId: '',
linkAddress: '',
site: '',
otherColumnId: [],
otherArticleId: '',
isOpen: 1
},
isEnable: 1
}, },
], ],
form: {
pic: 'https://huorantech.com/images/iasf/7.png',
title: '联系我们',
link: {
linkName: '无',
connectionType: 1,
columnId: [],
articleId: '',
linkAddress: '',
site: '',
otherColumnId: [],
otherArticleId: '',
isOpen: 1
}
}
}, },
{ {

@ -136,6 +136,7 @@ export default {
} else { } else {
this.modules[this.curModule] = this.curData this.modules[this.curModule] = this.curData
} }
this.getArticles && this.getArticles()
}, },
// 模块设置提交验证 // 模块设置提交验证
moduleSubmit () { moduleSubmit () {

@ -280,9 +280,6 @@ export default {
this.articles4 = Util.removeTag(data.slice(0, articleNum || 3)) this.articles4 = Util.removeTag(data.slice(0, articleNum || 3))
} }
}, },
moduleSubmit () {
this.getArticles()
}
} }
}; };
</script> </script>

@ -13,11 +13,11 @@
<div class="modules"> <div class="modules">
<div class="relative"> <div class="relative">
<el-carousel v-if="modules[0].list.length && modules[0].list.filter(e => e.isEnable).length" class="carousel" <el-carousel v-if="modules[0].list.length && modules[0].list.filter(e => e.isEnable).length" class="carousel"
:interval="6000" height="480px" :interval="6000" height="230px"
:arrow="(modules[0].list.filter(e => e.isEnable).length > 1) ? 'hover' : 'never'" :arrow="(modules[0].list.filter(e => e.isEnable).length > 1) ? 'hover' : 'never'"
:indicator-position="modules[0].list.filter(e => e.isEnable).length > 1 ? '' : 'none'"> :indicator-position="modules[0].list.filter(e => e.isEnable).length > 1 ? '' : 'none'">
<template v-for="(item, i) in modules[0].list"> <template v-for="(item, i) in modules[0].list">
<el-carousel-item v-if="item.pic && item.isEnable" :key="i"> <el-carousel-item v-if="item.isEnable" :key="i">
<div v-if="isImg(item.mediaType)" class="pic" :style="{ backgroundImage: 'url(' + item.pic + ')' }"></div> <div v-if="isImg(item.mediaType)" class="pic" :style="{ backgroundImage: 'url(' + item.pic + ')' }"></div>
<video v-else class="pic" width="100%" height="100%" autoplay muted loop> <video v-else class="pic" width="100%" height="100%" autoplay muted loop>
<source :src="item.pic" type="video/mp4"> <source :src="item.pic" type="video/mp4">
@ -25,7 +25,7 @@
</video> </video>
<div class="text-wrap"> <div class="text-wrap">
<div class="text" v-html="item.des"></div> <div class="text" v-html="item.des"></div>
<div v-if="!GTA" class="qrcodes"> <div class="qrcodes">
<div v-if="item.weixinPic1" class="qrcode"> <div v-if="item.weixinPic1" class="qrcode">
<img width="103" :src="item.weixinPic1" alt=""> <img width="103" :src="item.weixinPic1" alt="">
<p v-if="item.weixinText1" class="text">{{ item.weixinText1 }}</p> <p v-if="item.weixinText1" class="text">{{ item.weixinText1 }}</p>
@ -52,17 +52,14 @@
{{ modules[1].form.title }} {{ modules[1].form.title }}
<span class="sub">{{ modules[1].form.subTitle }}</span> <span class="sub">{{ modules[1].form.subTitle }}</span>
</h5> </h5>
<span class="more" @click="toAll(modules[2].form)">MORE</span> <div class="cover" @click="toSet(1)">点击更换标题与描述</div>
</div> </div>
<ul class="columns"> <ul class="columns">
<li v-for="(item, i) in articles" :key="i"> <li v-for="(item, i) in articles" :key="i">
<p class="column-name">{{ item.title }}</p> <p class="column-name">{{ item.title }}</p>
<span class="meta">{{ item.releaseTime }}</span> <span class="meta">{{ item.releaseTime }}</span>
</li> </li>
<li v-for="(item, i) in articles" :key="i"> <div class="cover" style="min-height: 60px;" @click="toSet(2)">关联栏目</div>
<p class="column-name">{{ item.title }}</p>
<span class="meta">{{ item.releaseTime }}</span>
</li>
</ul> </ul>
</div> </div>
<div class="item"> <div class="item">
@ -71,41 +68,29 @@
{{ modules[3].form.title }} {{ modules[3].form.title }}
<span class="sub">{{ modules[3].form.subTitle }}</span> <span class="sub">{{ modules[3].form.subTitle }}</span>
</h5> </h5>
<span class="more" @click="toAll(modules[4].form)">MORE</span> <div class="cover" @click="toSet(3)">点击更换标题与描述</div>
</div> </div>
<ul class="columns"> <ul class="columns">
<li v-for="(item, i) in articles1" :key="i"> <li v-for="(item, i) in articles1" :key="i">
<p class="column-name">{{ item.title }}</p> <p class="column-name">{{ item.title }}</p>
<span class="meta">{{ item.releaseTime }}</span> <span class="meta">{{ item.releaseTime }}</span>
</li> </li>
<div class="cover" style="min-height: 60px;" @click="toSet(4)">关联栏目</div>
</ul> </ul>
</div> </div>
</div> </div>
</div> </div>
<div class="block m-t-10 m-b-10"> <div class="block m-t-60 m-b-10">
<div class="inner"> <div class="inner">
<ul class="entry"> <ul class="entry c-wrap">
<li> <template v-for="(item, i) in modules[5].list">
<img class="icon" :src="modules[5].form.pic" alt=""> <li v-if="item.isEnable" :key="i">
<p class="text">{{ modules[5].form.title }}</p> <img class="icon" :src="item.pic" alt="">
</li> <p class="text">{{ item.title }}</p>
<li> </li>
<img class="icon" :src="modules[6].form.pic" alt=""> </template>
<p class="text">{{ modules[6].form.title }}</p> <div class="cover" @click="toSet(5)">点击更换图标标题与链接</div>
</li>
<li>
<img class="icon" :src="modules[7].form.pic" alt="">
<p class="text">{{ modules[7].form.title }}</p>
</li>
<li>
<img class="icon" :src="modules[8].form.pic" alt="">
<p class="text">{{ modules[8].form.title }}</p>
</li>
<li>
<img class="icon" :src="modules[9].form.pic" alt="">
<p class="text">{{ modules[9].form.title }}</p>
</li>
</ul> </ul>
</div> </div>
</div> </div>
@ -113,10 +98,13 @@
<div class="block"> <div class="block">
<div class="inner links-inner"> <div class="inner links-inner">
<h6 class="link-title">友情链接</h6> <h6 class="link-title">友情链接</h6>
<ul class="links"> <ul class="links c-wrap" style="min-height: 60px;">
<li v-for="(item, i) in modules[10].list" :key="i"> <template v-for="(item, i) in modules[6].list">
<el-link class="link" type="primary">{{ item.title }}</el-link> <li v-if="item.isEnable" :key="i">
</li> <el-link class="link" type="primary">{{ item.title }}</el-link>
</li>
</template>
<div class="cover" @click="toSet(6)">点击更换友情链接</div>
</ul> </ul>
</div> </div>
</div> </div>
@ -136,7 +124,8 @@ export default {
mixins: [mixins], mixins: [mixins],
data () { data () {
return { return {
modules: Modules.matchIndex, isImg: Util.isImg,
modules: Modules.singlePage,
articles: [], articles: [],
articles1: [], articles1: [],
} }
@ -146,7 +135,6 @@ export default {
// //
async getArticles () { async getArticles () {
const json = this.modules const json = this.modules
if (json[2].form.column.length) { if (json[2].form.column.length) {
const { column, articleNum } = json[2].form const { column, articleNum } = json[2].form
const { data } = await this.$post(`${this.api.queryArticlesByColumnType}?columnId=${column[column.length - 1]}`) const { data } = await this.$post(`${this.api.queryArticlesByColumnType}?columnId=${column[column.length - 1]}`)
@ -159,9 +147,6 @@ export default {
this.articles1 = data.slice(0, articleNum || 8) this.articles1 = data.slice(0, articleNum || 8)
} }
}, },
moduleSubmit () {
this.getArticles()
}
} }
}; };
</script> </script>
@ -173,7 +158,7 @@ export default {
.pic { .pic {
height: 100%; height: 100%;
background-position: center center; background-position: center center;
background-size: 100% auto; background-size: 100% 100%;
background-repeat: no-repeat; background-repeat: no-repeat;
} }
@ -203,7 +188,6 @@ export default {
margin-top: 10px; margin-top: 10px;
font-size: 12px; font-size: 12px;
color: #fff; color: #fff;
white-space: nowrap;
} }
} }
} }
@ -213,6 +197,7 @@ export default {
padding: 10px 0; padding: 10px 0;
.title { .title {
position: relative;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: flex-end; align-items: flex-end;
@ -260,6 +245,10 @@ export default {
box-shadow: 0 0 7px rgba(239, 239, 239, .8); box-shadow: 0 0 7px rgba(239, 239, 239, .8);
} }
.columns {
position: relative;
}
li { li {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;

@ -272,5 +272,10 @@ export default {
component: () => import('@/pages/column/page/shop'), component: () => import('@/pages/column/page/shop'),
meta: { title: '产品中心' } meta: { title: '产品中心' }
}, },
{
path: `singlePage`,
component: () => import('@/pages/column/page/singlePage'),
meta: { title: '单页栏目' }
},
] ]
} }

Loading…
Cancel
Save