16 changed files with 1824 additions and 221 deletions
@ -0,0 +1,147 @@ |
|||||
|
<template> |
||||
|
<div class="gd-container"> |
||||
|
<div class="top"> |
||||
|
<div |
||||
|
class="tab-item" |
||||
|
:class="{ 'select-tab': index == selectTab }" |
||||
|
v-for="(item, index) in tabList" |
||||
|
:key="index" |
||||
|
@click="changeTab(item, index)" |
||||
|
> |
||||
|
{{ item.tabName }} |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="gd-main"> |
||||
|
<newsTemplate v-if="selectTab == 0" @openCultural="openCultural" :typeCode="typeCode"></newsTemplate> |
||||
|
<gdPerson v-if="selectTab == 1"></gdPerson> |
||||
|
</div> |
||||
|
<commonModal v-model="detaillModal" width="1000" :title="currCultural.title"> |
||||
|
<div class="detail-container"> |
||||
|
<!-- 富文本 --> |
||||
|
<div class="richText" v-html="currCultural.content" v-if="currCultural.contentType == '0'"></div> |
||||
|
<!-- 图片列表 --> |
||||
|
<!-- <carousel-3d |
||||
|
:autoplay="true" |
||||
|
:autoplayTimeout="3000" |
||||
|
:perspective="35" |
||||
|
:display="3" |
||||
|
:animationSpeed="1000" |
||||
|
:width="300" |
||||
|
:height="270" |
||||
|
controlsVisible |
||||
|
:controlsHeight="60" |
||||
|
v-if="currCultural.contentType == '1'" |
||||
|
> |
||||
|
<slide v-for="(item, i) in currCultural.imageList" :index="i" :key="i"> |
||||
|
<template slot-scope="obj"> |
||||
|
<img style="width: 100%; height: 280px" :src="item" /> |
||||
|
</template> |
||||
|
</slide> |
||||
|
</carousel-3d> --> |
||||
|
<div style="width: 100%; display: flex; flex-direction: column;align-items: center;"> |
||||
|
<img :src="item" v-for="(item, index) in currCultural.imageList" :key="index" style="width: 100%;margin-bottom: 10px;"/> |
||||
|
</div> |
||||
|
<!-- 视频 --> |
||||
|
<LivePlayer |
||||
|
v-if="detaillModal && currCultural.contentType == '2'" |
||||
|
:videoUrl="currCultural.mediaUrl" |
||||
|
:live="false" |
||||
|
fluent |
||||
|
autoplay |
||||
|
stretch |
||||
|
:hide-big-play-button="true" |
||||
|
:muted="false" |
||||
|
alt="正在加载中..." |
||||
|
></LivePlayer> |
||||
|
</div> |
||||
|
</commonModal> |
||||
|
</div> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
import gdPerson from './gdPerson.vue' |
||||
|
import newsTemplate from './news-template.vue' |
||||
|
import commonModal from '@/views/common-components/common-modal.vue' |
||||
|
|
||||
|
|
||||
|
export default { |
||||
|
name: "", |
||||
|
components: {gdPerson, newsTemplate, commonModal}, |
||||
|
data() { |
||||
|
return { |
||||
|
tabList: [ |
||||
|
{ |
||||
|
tabName: "规章制度" |
||||
|
}, |
||||
|
{ |
||||
|
tabName: "公服人员" |
||||
|
} |
||||
|
], |
||||
|
selectTab: 0, |
||||
|
typeCode: "RULES", |
||||
|
detaillModal: false, |
||||
|
currCultural: {} |
||||
|
}; |
||||
|
}, |
||||
|
watch: {}, |
||||
|
created() {}, |
||||
|
computed: {}, |
||||
|
mounted () { |
||||
|
}, |
||||
|
beforeDestroy() {}, |
||||
|
computed: {}, |
||||
|
watch: {}, |
||||
|
methods: { |
||||
|
changeTab (item, index) { |
||||
|
if (this.selectTab == index) return |
||||
|
this.selectTab = index |
||||
|
}, |
||||
|
openCultural (data) { |
||||
|
this.detaillModal = true |
||||
|
this.currCultural = data |
||||
|
} |
||||
|
} |
||||
|
}; |
||||
|
</script> |
||||
|
|
||||
|
<style lang="less" scoped> |
||||
|
.gd-container { |
||||
|
width: 100%; |
||||
|
// height: 100%; |
||||
|
|
||||
|
.top { |
||||
|
width: 100%; |
||||
|
height: 100px; |
||||
|
display: flex; |
||||
|
justify-content: center; |
||||
|
align-items: center; |
||||
|
|
||||
|
.tab-item { |
||||
|
width: 200px; |
||||
|
height: 50px; |
||||
|
background: url("../../../assets/pbImage/tab-bg.png") no-repeat; |
||||
|
background-size: 100% 100%; |
||||
|
display: flex; |
||||
|
justify-content: center; |
||||
|
align-items: center; |
||||
|
font-family: PingFang SC; |
||||
|
font-size: 20px; |
||||
|
font-weight: 400; |
||||
|
color: #ffffff; |
||||
|
margin-bottom: 20px; |
||||
|
margin-right: 10px; |
||||
|
} |
||||
|
|
||||
|
.select-tab { |
||||
|
background: url("../../../assets/pbImage/tab-select.png") no-repeat; |
||||
|
background-size: 100% 100%; |
||||
|
color: #a59e68; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
.gd-main { |
||||
|
width: 100%; |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
</style> |
@ -0,0 +1,80 @@ |
|||||
|
<template> |
||||
|
<div class="gd-container"> |
||||
|
<div class="item" v-for="(item,index) in personList" :key="index"> |
||||
|
<img :src="item.image" /> |
||||
|
<span>{{ item.name }}</span> |
||||
|
<span>{{ item.post }}</span> |
||||
|
<span>{{ item.phone }}</span> |
||||
|
</div> |
||||
|
</div> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
export default { |
||||
|
name: "", |
||||
|
components: {}, |
||||
|
data() { |
||||
|
return { |
||||
|
areaCode: this.$route.query.areaCode, |
||||
|
personList: [] |
||||
|
}; |
||||
|
}, |
||||
|
watch: {}, |
||||
|
created() {}, |
||||
|
computed: {}, |
||||
|
mounted () { |
||||
|
this.initData() |
||||
|
}, |
||||
|
beforeDestroy() {}, |
||||
|
computed: {}, |
||||
|
watch: {}, |
||||
|
methods: { |
||||
|
initData() { |
||||
|
let params = { |
||||
|
areaCode: this.areaCode, |
||||
|
pageNum: 1, |
||||
|
pageSize: 10 |
||||
|
}; |
||||
|
this.$http.post("/server/queryServerPeopleInfoPage", this.common.request(params)).then(res => { |
||||
|
if (res.data.code == 200) { |
||||
|
this.personList = res.data.data.records |
||||
|
} else { |
||||
|
this.$Message.error("查询失败"); |
||||
|
} |
||||
|
}); |
||||
|
} |
||||
|
} |
||||
|
}; |
||||
|
</script> |
||||
|
|
||||
|
<style lang="less" scoped> |
||||
|
.gd-container { |
||||
|
width: 100%; |
||||
|
// height: 100%; |
||||
|
padding: 20px; |
||||
|
display: grid; |
||||
|
grid-template-columns: repeat(6, 1fr); |
||||
|
grid-template-rows: repeat(auto-fill, 333px); |
||||
|
grid-gap: 30px 50px; |
||||
|
|
||||
|
.item { |
||||
|
background: url("../../../assets/pbImage/page-item-bg.png") no-repeat; |
||||
|
background-size: 100% 100%; |
||||
|
padding: 10px 0; |
||||
|
display: flex; |
||||
|
flex-direction: column; |
||||
|
align-items: center; |
||||
|
|
||||
|
img { |
||||
|
width: 140px; |
||||
|
height: 196px; |
||||
|
} |
||||
|
|
||||
|
span { |
||||
|
margin-top: 10px; |
||||
|
font-size: 16px; |
||||
|
color: #ffffff; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
</style> |
@ -0,0 +1,45 @@ |
|||||
|
<template> |
||||
|
<div class="gov-container"> |
||||
|
<img :src="require('@/assets/pbImage/gov.png')" /> |
||||
|
</div> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
|
||||
|
export default { |
||||
|
name: "", |
||||
|
components: { |
||||
|
}, |
||||
|
data() { |
||||
|
return { |
||||
|
}; |
||||
|
}, |
||||
|
watch: {}, |
||||
|
created() {}, |
||||
|
computed: {}, |
||||
|
mounted () { |
||||
|
}, |
||||
|
beforeDestroy() {}, |
||||
|
computed: {}, |
||||
|
watch: {}, |
||||
|
methods: { |
||||
|
|
||||
|
} |
||||
|
}; |
||||
|
</script> |
||||
|
|
||||
|
<style lang="less" scoped> |
||||
|
.gov-container { |
||||
|
width: 100%; |
||||
|
height: 100%; |
||||
|
display: flex; |
||||
|
justify-content: center; |
||||
|
align-items: center; |
||||
|
|
||||
|
img { |
||||
|
width: 500px; |
||||
|
height: 500px; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
</style> |
@ -0,0 +1,72 @@ |
|||||
|
<template> |
||||
|
<div class="life-container"> |
||||
|
<div class="life-item"> |
||||
|
<img :src="require('@/assets/pbImage/sf.png')" /> |
||||
|
<span>收费易水费缴纳</span> |
||||
|
</div> |
||||
|
<div class="life-item"> |
||||
|
<img :src="require('@/assets/pbImage/df.png')" /> |
||||
|
<span>国网四川电力电费缴纳</span> |
||||
|
</div> |
||||
|
<div class="life-item"> |
||||
|
<img :src="require('@/assets/pbImage/qf.png')" /> |
||||
|
<span>天康燃气气费缴纳</span> |
||||
|
</div> |
||||
|
</div> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
|
||||
|
export default { |
||||
|
name: "", |
||||
|
components: { |
||||
|
}, |
||||
|
data() { |
||||
|
return { |
||||
|
|
||||
|
}; |
||||
|
}, |
||||
|
watch: {}, |
||||
|
created() {}, |
||||
|
computed: {}, |
||||
|
mounted() {}, |
||||
|
beforeDestroy() {}, |
||||
|
computed: {}, |
||||
|
watch: {}, |
||||
|
methods: { |
||||
|
} |
||||
|
}; |
||||
|
</script> |
||||
|
|
||||
|
<style lang="less" scoped> |
||||
|
.life-container { |
||||
|
width: 100%; |
||||
|
height: 100%; |
||||
|
display: flex; |
||||
|
justify-content: space-around; |
||||
|
align-items: center; |
||||
|
|
||||
|
.life-item { |
||||
|
width: 400px; |
||||
|
height: 450px; |
||||
|
background: url("../../../assets/pbImage/page-item-bg.png") no-repeat; |
||||
|
background-size: 100% 100%; |
||||
|
padding: 20px; |
||||
|
display: flex; |
||||
|
flex-direction: column; |
||||
|
align-items: center; |
||||
|
|
||||
|
img { |
||||
|
width: 350px; |
||||
|
height: 350px; |
||||
|
} |
||||
|
|
||||
|
span { |
||||
|
margin-top: 20px; |
||||
|
font-size: 18px; |
||||
|
color: #ffffff; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
</style> |
@ -0,0 +1,169 @@ |
|||||
|
<template> |
||||
|
<div class="cultural-container"> |
||||
|
<div |
||||
|
class="item" |
||||
|
v-for="(item, i) in contentList" |
||||
|
:key="i" |
||||
|
@click="openModal(item)" |
||||
|
> |
||||
|
<img :src="item.coverImage" @error="imgError($event)"/> |
||||
|
<span>{{ item.title }}</span> |
||||
|
</div> |
||||
|
</div> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
import LivePlayer from "@liveqing/liveplayer"; |
||||
|
import commonModal from '@/views/common-components/common-modal.vue' |
||||
|
|
||||
|
export default { |
||||
|
name: "", |
||||
|
components: { |
||||
|
commonModal, |
||||
|
LivePlayer |
||||
|
}, |
||||
|
data() { |
||||
|
return { |
||||
|
contentList: [], |
||||
|
areaCode: this.$route.query.areaCode |
||||
|
}; |
||||
|
}, |
||||
|
props: { |
||||
|
typeCode: { |
||||
|
type: [String, Array], |
||||
|
default: "" |
||||
|
} |
||||
|
}, |
||||
|
created() {}, |
||||
|
computed: {}, |
||||
|
mounted () { |
||||
|
// this.initData() |
||||
|
}, |
||||
|
beforeDestroy() {}, |
||||
|
computed: {}, |
||||
|
watch: { |
||||
|
typeCode: { |
||||
|
handler (n, o) { |
||||
|
if (n) { |
||||
|
this.contentList = [] |
||||
|
if (n instanceof Array) { |
||||
|
for (let index = 0; index < n.length; index++) { |
||||
|
this.initData(n[index]) |
||||
|
} |
||||
|
} else { |
||||
|
this.initData(n) |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
immediate: true |
||||
|
} |
||||
|
}, |
||||
|
methods: { |
||||
|
openModal (item) { |
||||
|
if (item.contentType == "3") { |
||||
|
this.jumpWindow(item.webLink, item.title) |
||||
|
return |
||||
|
} |
||||
|
this.$emit("openCultural", item); |
||||
|
}, |
||||
|
initData(typeCode) { |
||||
|
let params = { |
||||
|
page: 1, |
||||
|
pageSize: 1000, |
||||
|
typeCode: typeCode, |
||||
|
areaCode: this.areaCode, |
||||
|
hasParent: "0", |
||||
|
published: "1" |
||||
|
}; |
||||
|
|
||||
|
this.$http |
||||
|
.post("/content/queryContentInfo", this.common.request(params)) |
||||
|
.then(res => { |
||||
|
if (res.data.code == 200) { |
||||
|
this.contentList = this.contentList.concat(res.data.data.records) |
||||
|
this.contentList.forEach(item => { |
||||
|
if (item.imageList) { |
||||
|
item.imageList = JSON.parse(item.imageList); |
||||
|
} |
||||
|
}); |
||||
|
} else { |
||||
|
that.$Message.error("请求异常"); |
||||
|
} |
||||
|
}); |
||||
|
}, |
||||
|
imgError (e) { |
||||
|
console.log(e) |
||||
|
e.target.src = "https://ts1.cn.mm.bing.net/th/id/R-C.28204f240ef56dd586dbf63a6f93d194?rik=Iksn500RUnMMww&riu=http%3a%2f%2fwww.job5156.com%2fpublic%2fimages%2ferror_404.jpg&ehk=53lHWiMWDHpkD0lX71vxLYkSGkqpBnBwz8Ly5VhrgyU%3d&risl=&pid=ImgRaw&r=0" |
||||
|
}, |
||||
|
// 跳转窗口 |
||||
|
jumpWindow (url, title) { |
||||
|
let iWidth = 800; // 出窗口的宽度: |
||||
|
let iHeight = 500; // 弹出窗口的高度; |
||||
|
// window.screen.height获得屏幕的高,window.screen.width获得屏幕的宽 |
||||
|
let iTop = (window.screen.height - 30 - iHeight) / 2; |
||||
|
// 获得窗口的垂直位置 |
||||
|
let iLeft = (window.screen.width - 10 - iWidth) / 2; |
||||
|
// 获得窗口的水平位置; |
||||
|
let windowProperty = `height=${iHeight},innerHeight=${iHeight},width=${iWidth},innerWidth=${iWidth},top=${iTop},left=${iLeft},toolbar=no,menubar=no,scrollbars=auto,resizeable=no ,location=no, status=no`; |
||||
|
window.open(url, title, windowProperty); |
||||
|
}, |
||||
|
} |
||||
|
}; |
||||
|
</script> |
||||
|
|
||||
|
<style lang="less" scoped> |
||||
|
.cultural-container { |
||||
|
width: 100%; |
||||
|
// height: 100%; |
||||
|
padding: 20px; |
||||
|
display: grid; |
||||
|
grid-template-columns: repeat(4, 1fr); |
||||
|
grid-template-rows: repeat(auto-fill, 235px); |
||||
|
grid-gap: 30px 50px; |
||||
|
|
||||
|
.item { |
||||
|
background: url("../../../assets/pbImage/page-item-bg.png") no-repeat; |
||||
|
background-size: 100% 100%; |
||||
|
padding: 10px 0; |
||||
|
display: flex; |
||||
|
flex-direction: column; |
||||
|
align-items: center; |
||||
|
|
||||
|
img { |
||||
|
width: 280px; |
||||
|
height: 157px; |
||||
|
} |
||||
|
|
||||
|
span { |
||||
|
display: inline-block; |
||||
|
width: 90%; |
||||
|
margin-top: 10px; |
||||
|
font-size: 16px; |
||||
|
color: #ffffff; |
||||
|
display: -webkit-box; |
||||
|
-webkit-box-orient: vertical; |
||||
|
-webkit-line-clamp: 2; |
||||
|
overflow: hidden; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
// .cultural-container .item:nth-child(-n + 4) { |
||||
|
// height: 93%; |
||||
|
// } |
||||
|
|
||||
|
.detail-container { |
||||
|
width: 100%; |
||||
|
height: 100px; |
||||
|
|
||||
|
.richText { |
||||
|
color: #ffffff; |
||||
|
font-size: 16px; |
||||
|
} |
||||
|
|
||||
|
.imgs { |
||||
|
width: 100%; |
||||
|
height: 600px; |
||||
|
} |
||||
|
} |
||||
|
</style> |
@ -0,0 +1,88 @@ |
|||||
|
<template> |
||||
|
<div class="organ-container"> |
||||
|
|
||||
|
<div class="item" v-for="(item,index) in leaderList" :key="index"> |
||||
|
<img :src="item.image" /> |
||||
|
<span>{{ item.name }}</span> |
||||
|
<span>{{ item.job }}</span> |
||||
|
</div> |
||||
|
|
||||
|
</div> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
export default { |
||||
|
name: "", |
||||
|
components: {}, |
||||
|
data() { |
||||
|
return { |
||||
|
areaCode: this.$route.query.areaCode, |
||||
|
leaderList: [] |
||||
|
}; |
||||
|
}, |
||||
|
watch: {}, |
||||
|
created() {}, |
||||
|
computed: {}, |
||||
|
mounted() { |
||||
|
this.initData() |
||||
|
}, |
||||
|
beforeDestroy() {}, |
||||
|
computed: {}, |
||||
|
watch: {}, |
||||
|
methods: { |
||||
|
initData() { |
||||
|
let params = { |
||||
|
areaCode: this.areaCode, |
||||
|
page:1, |
||||
|
pageSize: 20 |
||||
|
}; |
||||
|
this.$http.post("/screen/queryLeaderInfoPage", this.common.request(params)).then(res => { |
||||
|
if (res.data.code == 200) { |
||||
|
this.leaderList = res.data.data.records |
||||
|
} else { |
||||
|
this.$Message.error("查询失败"); |
||||
|
} |
||||
|
}); |
||||
|
} |
||||
|
} |
||||
|
}; |
||||
|
</script> |
||||
|
|
||||
|
<style lang="less" scoped> |
||||
|
.organ-container { |
||||
|
width: 100%; |
||||
|
// height: 100%; |
||||
|
padding: 20px; |
||||
|
display: grid; |
||||
|
grid-template-columns: repeat(6, 1fr); |
||||
|
grid-template-rows: repeat(auto-fill, 333px); |
||||
|
grid-gap: 30px 50px; |
||||
|
|
||||
|
.item { |
||||
|
background: url("../../../assets/pbImage/page-item-bg.png") no-repeat; |
||||
|
background-size: 100% 100%; |
||||
|
padding: 20px 0; |
||||
|
display: flex; |
||||
|
flex-direction: column; |
||||
|
align-items: center; |
||||
|
|
||||
|
img { |
||||
|
width: 140px; |
||||
|
height: 196px; |
||||
|
} |
||||
|
|
||||
|
span { |
||||
|
display: inline-block; |
||||
|
text-align: center; |
||||
|
width: 90%; |
||||
|
margin-top: 10px; |
||||
|
font-size: 16px; |
||||
|
color: #ffffff; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
.organ-container .item:nth-child(-n + 6) { |
||||
|
height: 98%; |
||||
|
} |
||||
|
</style> |
@ -0,0 +1,216 @@ |
|||||
|
<template> |
||||
|
<div class="eb-container" ref="appRef"> |
||||
|
<!-- 背景框 --> |
||||
|
<MainTitle class="title" :title="title" :show-menu="false" :show-go-back="true" :show-logout="false"></MainTitle> |
||||
|
<div class="main-content"> |
||||
|
<div class="left-content"> |
||||
|
<div |
||||
|
class="tab-item" |
||||
|
:class="{ 'select-tab': index == selectTab }" |
||||
|
v-for="(item, index) in tabList" |
||||
|
:key="index" |
||||
|
@click="changeTab(item, index)" |
||||
|
> |
||||
|
{{ item.tabName }} |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="right-content"> |
||||
|
<newsTemplate :typeCode="typeCode" @openCultural="openCultural"></newsTemplate> |
||||
|
</div> |
||||
|
</div> |
||||
|
<commonModal v-model="detaillModal" width="1000" :title="currCultural.title"> |
||||
|
<div class="detail-container"> |
||||
|
<!-- 富文本 --> |
||||
|
<div class="richText" v-html="currCultural.content" v-if="currCultural.contentType == '0'"></div> |
||||
|
<!-- 图片列表 --> |
||||
|
<div style="width: 100%; display: flex; flex-direction: column;align-items: center;"> |
||||
|
<img :src="item" v-for="(item, index) in currCultural.imageList" :key="index" style="width: 100%;margin-bottom: 10px;"/> |
||||
|
</div> |
||||
|
<!-- 视频 --> |
||||
|
<LivePlayer |
||||
|
v-if="detaillModal && currCultural.contentType == '2'" |
||||
|
:videoUrl="currCultural.mediaUrl" |
||||
|
:live="false" |
||||
|
fluent |
||||
|
autoplay |
||||
|
stretch |
||||
|
:hide-big-play-button="true" |
||||
|
:muted="false" |
||||
|
alt="正在加载中..." |
||||
|
></LivePlayer> |
||||
|
</div> |
||||
|
</commonModal> |
||||
|
</div> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
import { useIndex } from "../../utils/utilsDramAdmin.js"; |
||||
|
import MainTitle from "./components/MainTitle.vue"; |
||||
|
import CommonModal from "@/views/common-components/common-modal.vue"; |
||||
|
import LivePlayer from "@liveqing/liveplayer"; |
||||
|
import organization from './components/organization.vue' |
||||
|
import newsTemplate from "./components/news-template.vue"; |
||||
|
|
||||
|
export default { |
||||
|
name: "publicService", |
||||
|
components: { |
||||
|
MainTitle, |
||||
|
CommonModal, |
||||
|
LivePlayer, |
||||
|
organization, |
||||
|
newsTemplate |
||||
|
}, |
||||
|
data() { |
||||
|
return { |
||||
|
title: "产业发展", |
||||
|
typeCode: "", |
||||
|
selectTab: 0, |
||||
|
currCultural: {}, |
||||
|
tabList: [ |
||||
|
{ |
||||
|
tabName: "现代种养业", |
||||
|
typeCode: "PLANTING" |
||||
|
}, |
||||
|
{ |
||||
|
tabName: "乡土特色产业", |
||||
|
typeCode: "SPECIAL" |
||||
|
}, |
||||
|
], |
||||
|
detaillModal: false, |
||||
|
richText: |
||||
|
"五粮液旅游景区是由五粮液集团建设,由四川五粮液文化旅游开发有限公司运营管理的特大型工业旅游景区。<br>景区于2006年被原国家旅游局评定为全国工业旅游示范点,2017年被评定为国家AAAA级旅游景区,2019年被四川省命名为首批省级工业旅游示范基地。 景区由501明清古窖池群、503明代古窖泥活态保护群落和江北总部基地三大片区构成,占地面积12平方公里,规划面积18平方公里。拥有五粮液酒文化博览馆、安乐神泉等景点。", |
||||
|
slides: [ |
||||
|
{ |
||||
|
src: require("@/assets/pbImage/lz.png") |
||||
|
}, |
||||
|
{ |
||||
|
src: require("@/assets/pbImage/lz.png") |
||||
|
}, |
||||
|
{ |
||||
|
src: require("@/assets/pbImage/lz.png") |
||||
|
} |
||||
|
], |
||||
|
value3: 0, |
||||
|
setting: { |
||||
|
autoplay: false, |
||||
|
autoplaySpeed: 2000, |
||||
|
dots: "inside", |
||||
|
radiusDot: false, |
||||
|
trigger: "click", |
||||
|
arrow: "hover", |
||||
|
height: "600px" |
||||
|
} |
||||
|
}; |
||||
|
}, |
||||
|
watch: {}, |
||||
|
created() {}, |
||||
|
computed: {}, |
||||
|
mounted() { |
||||
|
const { calcRate, windowDraw } = useIndex(this.$refs.appRef); |
||||
|
calcRate(); |
||||
|
windowDraw(); |
||||
|
this.changeTab(this.tabList[0], 0) |
||||
|
|
||||
|
}, |
||||
|
beforeDestroy() { |
||||
|
}, |
||||
|
computed: {}, |
||||
|
watch: {}, |
||||
|
methods: { |
||||
|
changeTab(item, index) { |
||||
|
this.typeCode = item.typeCode |
||||
|
if (this.selectTab == index) return; |
||||
|
this.selectTab = index; |
||||
|
}, |
||||
|
openCultural (data) { |
||||
|
this.detaillModal = true |
||||
|
this.currCultural = data |
||||
|
}, |
||||
|
|
||||
|
} |
||||
|
}; |
||||
|
</script> |
||||
|
|
||||
|
<style lang="less" scoped> |
||||
|
@import "../../styles/fonts/font.less"; |
||||
|
.eb-container { |
||||
|
width: 1920px; |
||||
|
height: 1080px; |
||||
|
transform: scale(var(--scale)) translate(-50%, -50%); |
||||
|
transform-origin: 0 0; |
||||
|
position: absolute; |
||||
|
left: 50%; |
||||
|
top: 50%; |
||||
|
background: url("../../assets/pbImage/bg.png") no-repeat; |
||||
|
background-size: 100% 100%; |
||||
|
|
||||
|
.main-content { |
||||
|
position: absolute; |
||||
|
top: 120px; |
||||
|
left: 50%; |
||||
|
transform: translateX(-50%); |
||||
|
width: 1800px; |
||||
|
height: 880px; |
||||
|
display: flex; |
||||
|
justify-content: space-between; |
||||
|
|
||||
|
.left-content { |
||||
|
width: 310px; |
||||
|
height: 100%; |
||||
|
background: url("../../assets/pbImage/left-content.png") no-repeat; |
||||
|
background-size: 100% 100%; |
||||
|
display: flex; |
||||
|
flex-direction: column; |
||||
|
align-items: center; |
||||
|
padding: 10px 0; |
||||
|
|
||||
|
.tab-item { |
||||
|
width: 278px; |
||||
|
height: 62px; |
||||
|
background: url("../../assets/pbImage/tab-bg.png") no-repeat; |
||||
|
background-size: 100% 100%; |
||||
|
display: flex; |
||||
|
justify-content: center; |
||||
|
align-items: center; |
||||
|
font-family: PingFang SC; |
||||
|
font-size: 20px; |
||||
|
font-weight: 400; |
||||
|
color: #ffffff; |
||||
|
margin-bottom: 20px; |
||||
|
} |
||||
|
|
||||
|
.select-tab { |
||||
|
background: url("../../assets/pbImage/tab-select.png") no-repeat; |
||||
|
color: #a59e68; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
.right-content { |
||||
|
width: 1450px; |
||||
|
height: 100%; |
||||
|
background: url("../../assets/pbImage/right-content.png") no-repeat; |
||||
|
background-size: 100% 100%; |
||||
|
overflow-y: auto; |
||||
|
} |
||||
|
.right-content::-webkit-scrollbar { |
||||
|
width: 10px; |
||||
|
// height: 10px; // 高度写不写,都不影响,因为会根据内容的长度自动计算 |
||||
|
} |
||||
|
|
||||
|
.right-content::-webkit-scrollbar-thumb { |
||||
|
background: #ccc; // 滑块颜色 |
||||
|
border-radius: 5px; // 滑块圆角 |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
.bottom { |
||||
|
width: 1920px; |
||||
|
height: 30px; |
||||
|
position: fixed; |
||||
|
left: 0; |
||||
|
bottom: 0; |
||||
|
background: url("../../assets/pbImage/bottom.png") no-repeat; |
||||
|
background-size: 100% 100%; |
||||
|
} |
||||
|
</style> |
@ -0,0 +1,237 @@ |
|||||
|
<template> |
||||
|
<div class="eb-container" ref="appRef"> |
||||
|
<!-- 背景框 --> |
||||
|
<MainTitle class="title" :title="title" :show-menu="false" :show-go-back="true" :show-logout="false"></MainTitle> |
||||
|
<div class="main-content"> |
||||
|
<div class="left-content"> |
||||
|
<div |
||||
|
class="tab-item" |
||||
|
:class="{ 'select-tab': index == selectTab }" |
||||
|
v-for="(item, index) in tabList" |
||||
|
:key="index" |
||||
|
@click="changeTab(item, index)" |
||||
|
> |
||||
|
{{ item.tabName }} |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="right-content"> |
||||
|
<organization v-if="selectTab == 0"></organization> |
||||
|
<newsTemplate v-if="selectTab == 1 || selectTab == 2" :typeCode="typeCode" @openCultural="openCultural"></newsTemplate> |
||||
|
</div> |
||||
|
</div> |
||||
|
<commonModal v-model="detaillModal" width="1000" :title="currCultural.title"> |
||||
|
<div class="detail-container"> |
||||
|
<!-- 富文本 --> |
||||
|
<div class="richText" v-html="currCultural.content" v-if="currCultural.contentType == '0'"></div> |
||||
|
<!-- 图片列表 --> |
||||
|
<!-- <carousel-3d |
||||
|
:autoplay="true" |
||||
|
:autoplayTimeout="3000" |
||||
|
:perspective="35" |
||||
|
:display="3" |
||||
|
:animationSpeed="1000" |
||||
|
:width="300" |
||||
|
:height="270" |
||||
|
controlsVisible |
||||
|
:controlsHeight="60" |
||||
|
v-if="currCultural.contentType == '1'" |
||||
|
> |
||||
|
<slide v-for="(item, i) in currCultural.imageList" :index="i" :key="i"> |
||||
|
<template slot-scope="obj"> |
||||
|
<img style="width: 100%; height: 280px" :src="item" /> |
||||
|
</template> |
||||
|
</slide> |
||||
|
</carousel-3d> --> |
||||
|
<div style="width: 100%; display: flex; flex-direction: column;align-items: center;"> |
||||
|
<img :src="item" v-for="(item, index) in currCultural.imageList" :key="index" style="width: 100%;margin-bottom: 10px;"/> |
||||
|
</div> |
||||
|
<!-- 视频 --> |
||||
|
<LivePlayer |
||||
|
v-if="detaillModal && currCultural.contentType == '2'" |
||||
|
:videoUrl="currCultural.mediaUrl" |
||||
|
:live="false" |
||||
|
fluent |
||||
|
autoplay |
||||
|
stretch |
||||
|
:hide-big-play-button="true" |
||||
|
:muted="false" |
||||
|
alt="正在加载中..." |
||||
|
></LivePlayer> |
||||
|
</div> |
||||
|
</commonModal> |
||||
|
</div> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
import { useIndex } from "../../utils/utilsDramAdmin.js"; |
||||
|
import MainTitle from "./components/MainTitle.vue"; |
||||
|
import CommonModal from "@/views/common-components/common-modal.vue"; |
||||
|
import LivePlayer from "@liveqing/liveplayer"; |
||||
|
import organization from './components/organization.vue' |
||||
|
import newsTemplate from "./components/news-template.vue"; |
||||
|
|
||||
|
export default { |
||||
|
name: "publicService", |
||||
|
components: { |
||||
|
MainTitle, |
||||
|
CommonModal, |
||||
|
LivePlayer, |
||||
|
organization, |
||||
|
newsTemplate |
||||
|
}, |
||||
|
data() { |
||||
|
return { |
||||
|
title: "组织振兴", |
||||
|
typeCode: "", |
||||
|
selectTab: 0, |
||||
|
currCultural: {}, |
||||
|
tabList: [ |
||||
|
{ |
||||
|
tabName: "组织概况", |
||||
|
typeCode: "" |
||||
|
}, |
||||
|
{ |
||||
|
tabName: "三务公开", |
||||
|
typeCode: ["party", "wealth", "outdoor"] |
||||
|
}, |
||||
|
{ |
||||
|
tabName: "基层党建", |
||||
|
typeCode: "BUILDING" |
||||
|
}, |
||||
|
], |
||||
|
detaillModal: false, |
||||
|
richText: |
||||
|
"五粮液旅游景区是由五粮液集团建设,由四川五粮液文化旅游开发有限公司运营管理的特大型工业旅游景区。<br>景区于2006年被原国家旅游局评定为全国工业旅游示范点,2017年被评定为国家AAAA级旅游景区,2019年被四川省命名为首批省级工业旅游示范基地。 景区由501明清古窖池群、503明代古窖泥活态保护群落和江北总部基地三大片区构成,占地面积12平方公里,规划面积18平方公里。拥有五粮液酒文化博览馆、安乐神泉等景点。", |
||||
|
slides: [ |
||||
|
{ |
||||
|
src: require("@/assets/pbImage/lz.png") |
||||
|
}, |
||||
|
{ |
||||
|
src: require("@/assets/pbImage/lz.png") |
||||
|
}, |
||||
|
{ |
||||
|
src: require("@/assets/pbImage/lz.png") |
||||
|
} |
||||
|
], |
||||
|
value3: 0, |
||||
|
setting: { |
||||
|
autoplay: false, |
||||
|
autoplaySpeed: 2000, |
||||
|
dots: "inside", |
||||
|
radiusDot: false, |
||||
|
trigger: "click", |
||||
|
arrow: "hover", |
||||
|
height: "600px" |
||||
|
} |
||||
|
}; |
||||
|
}, |
||||
|
watch: {}, |
||||
|
created() {}, |
||||
|
computed: {}, |
||||
|
mounted() { |
||||
|
const { calcRate, windowDraw } = useIndex(this.$refs.appRef); |
||||
|
calcRate(); |
||||
|
windowDraw(); |
||||
|
this.changeTab(this.selectTab[0], 0) |
||||
|
}, |
||||
|
beforeDestroy() { |
||||
|
}, |
||||
|
computed: {}, |
||||
|
watch: {}, |
||||
|
methods: { |
||||
|
changeTab(item, index) { |
||||
|
if (this.selectTab == index) return; |
||||
|
this.selectTab = index; |
||||
|
this.typeCode = item.typeCode |
||||
|
}, |
||||
|
openCultural (data) { |
||||
|
this.detaillModal = true |
||||
|
this.currCultural = data |
||||
|
} |
||||
|
} |
||||
|
}; |
||||
|
</script> |
||||
|
|
||||
|
<style lang="less" scoped> |
||||
|
@import "../../styles/fonts/font.less"; |
||||
|
.eb-container { |
||||
|
width: 1920px; |
||||
|
height: 1080px; |
||||
|
transform: scale(var(--scale)) translate(-50%, -50%); |
||||
|
transform-origin: 0 0; |
||||
|
position: absolute; |
||||
|
left: 50%; |
||||
|
top: 50%; |
||||
|
background: url("../../assets/pbImage/bg.png") no-repeat; |
||||
|
background-size: 100% 100%; |
||||
|
|
||||
|
.main-content { |
||||
|
position: absolute; |
||||
|
top: 120px; |
||||
|
left: 50%; |
||||
|
transform: translateX(-50%); |
||||
|
width: 1800px; |
||||
|
height: 880px; |
||||
|
display: flex; |
||||
|
justify-content: space-between; |
||||
|
|
||||
|
.left-content { |
||||
|
width: 310px; |
||||
|
height: 100%; |
||||
|
background: url("../../assets/pbImage/left-content.png") no-repeat; |
||||
|
background-size: 100% 100%; |
||||
|
display: flex; |
||||
|
flex-direction: column; |
||||
|
align-items: center; |
||||
|
padding: 10px 0; |
||||
|
|
||||
|
.tab-item { |
||||
|
width: 278px; |
||||
|
height: 62px; |
||||
|
background: url("../../assets/pbImage/tab-bg.png") no-repeat; |
||||
|
background-size: 100% 100%; |
||||
|
display: flex; |
||||
|
justify-content: center; |
||||
|
align-items: center; |
||||
|
font-family: PingFang SC; |
||||
|
font-size: 20px; |
||||
|
font-weight: 400; |
||||
|
color: #ffffff; |
||||
|
margin-bottom: 20px; |
||||
|
} |
||||
|
|
||||
|
.select-tab { |
||||
|
background: url("../../assets/pbImage/tab-select.png") no-repeat; |
||||
|
color: #a59e68; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
.right-content { |
||||
|
width: 1450px; |
||||
|
height: 100%; |
||||
|
background: url("../../assets/pbImage/right-content.png") no-repeat; |
||||
|
background-size: 100% 100%; |
||||
|
overflow-y: auto; |
||||
|
} |
||||
|
.right-content::-webkit-scrollbar { |
||||
|
width: 10px; |
||||
|
// height: 10px; // 高度写不写,都不影响,因为会根据内容的长度自动计算 |
||||
|
} |
||||
|
|
||||
|
.right-content::-webkit-scrollbar-thumb { |
||||
|
background: #ccc; // 滑块颜色 |
||||
|
border-radius: 5px; // 滑块圆角 |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
.bottom { |
||||
|
width: 1920px; |
||||
|
height: 30px; |
||||
|
position: fixed; |
||||
|
left: 0; |
||||
|
bottom: 0; |
||||
|
background: url("../../assets/pbImage/bottom.png") no-repeat; |
||||
|
background-size: 100% 100%; |
||||
|
} |
||||
|
</style> |
@ -0,0 +1,233 @@ |
|||||
|
<template> |
||||
|
<div class="eb-container" ref="appRef"> |
||||
|
<!-- 背景框 --> |
||||
|
<MainTitle class="title" :title="title" :show-menu="false" :show-go-back="true" :show-logout="false"></MainTitle> |
||||
|
<div class="main-content"> |
||||
|
<div class="left-content"> |
||||
|
<div |
||||
|
class="tab-item" |
||||
|
:class="{ 'select-tab': index == selectTab }" |
||||
|
v-for="(item, index) in tabList" |
||||
|
:key="index" |
||||
|
@click="changeTab(item, index)" |
||||
|
> |
||||
|
{{ item.tabName }} |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="right-content"> |
||||
|
<gdPbService v-if="selectTab == 0"></gdPbService> |
||||
|
<newsTemplate v-if="selectTab == 1" @openCultural="openCultural" :typeCode="typeCode"></newsTemplate> |
||||
|
<govService v-if="selectTab == 2"></govService> |
||||
|
<lifeService v-if="selectTab == 3"></lifeService> |
||||
|
</div> |
||||
|
</div> |
||||
|
<commonModal v-model="detaillModal" width="1000" :title="currCultural.title"> |
||||
|
<div class="detail-container"> |
||||
|
<!-- 富文本 --> |
||||
|
<div class="richText" v-html="currCultural.content" v-if="currCultural.contentType == '0'"></div> |
||||
|
<!-- 图片列表 --> |
||||
|
<div style="width: 100%; display: flex; flex-direction: column;align-items: center;"> |
||||
|
<img :src="item" v-for="(item, index) in currCultural.imageList" :key="index" style="width: 100%;margin-bottom: 10px;"/> |
||||
|
</div> |
||||
|
<!-- 视频 --> |
||||
|
<LivePlayer |
||||
|
v-if="detaillModal && currCultural.contentType == '2'" |
||||
|
:videoUrl="currCultural.mediaUrl" |
||||
|
:live="false" |
||||
|
fluent |
||||
|
autoplay |
||||
|
stretch |
||||
|
:hide-big-play-button="true" |
||||
|
:muted="false" |
||||
|
alt="正在加载中..." |
||||
|
></LivePlayer> |
||||
|
</div> |
||||
|
</commonModal> |
||||
|
</div> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
import { useIndex } from "../../utils/utilsDramAdmin.js"; |
||||
|
import MainTitle from "./components/MainTitle.vue"; |
||||
|
import gisMap from "./components/gisMapOfCounty.vue"; |
||||
|
import vueSeamlessScroll from "vue-seamless-scroll"; |
||||
|
import CommonModal from "@/views/common-components/common-modal.vue"; |
||||
|
import LivePlayer from "@liveqing/liveplayer"; |
||||
|
import gdPbService from "./components/gd-pbService.vue"; |
||||
|
import newsTemplate from "./components/news-template.vue"; |
||||
|
import govService from "./components/gov-service.vue"; |
||||
|
import lifeService from "./components/life-service.vue"; |
||||
|
|
||||
|
export default { |
||||
|
name: "publicService", |
||||
|
components: { |
||||
|
MainTitle, |
||||
|
gisMap, |
||||
|
vueSeamlessScroll, |
||||
|
CommonModal, |
||||
|
LivePlayer, |
||||
|
gdPbService, |
||||
|
newsTemplate, |
||||
|
govService, |
||||
|
lifeService |
||||
|
}, |
||||
|
data() { |
||||
|
return { |
||||
|
title: "公共服务", |
||||
|
selectTab: 0, |
||||
|
currCultural: {}, |
||||
|
tabList: [ |
||||
|
{ |
||||
|
tabName: "广电公服", |
||||
|
typeCode: "" |
||||
|
}, |
||||
|
{ |
||||
|
tabName: "文化服务", |
||||
|
typeCode: "WHSERVICE" |
||||
|
}, |
||||
|
{ |
||||
|
tabName: "政务服务", |
||||
|
typeCode: "" |
||||
|
}, |
||||
|
{ |
||||
|
tabName: "生活服务", |
||||
|
typeCode: "" |
||||
|
} |
||||
|
], |
||||
|
detaillModal: false, |
||||
|
richText: |
||||
|
"五粮液旅游景区是由五粮液集团建设,由四川五粮液文化旅游开发有限公司运营管理的特大型工业旅游景区。<br>景区于2006年被原国家旅游局评定为全国工业旅游示范点,2017年被评定为国家AAAA级旅游景区,2019年被四川省命名为首批省级工业旅游示范基地。 景区由501明清古窖池群、503明代古窖泥活态保护群落和江北总部基地三大片区构成,占地面积12平方公里,规划面积18平方公里。拥有五粮液酒文化博览馆、安乐神泉等景点。", |
||||
|
slides: [ |
||||
|
{ |
||||
|
src: require("@/assets/pbImage/lz.png") |
||||
|
}, |
||||
|
{ |
||||
|
src: require("@/assets/pbImage/lz.png") |
||||
|
}, |
||||
|
{ |
||||
|
src: require("@/assets/pbImage/lz.png") |
||||
|
} |
||||
|
], |
||||
|
value3: 0, |
||||
|
setting: { |
||||
|
autoplay: false, |
||||
|
autoplaySpeed: 2000, |
||||
|
dots: "inside", |
||||
|
radiusDot: false, |
||||
|
trigger: "click", |
||||
|
arrow: "hover", |
||||
|
height: "600px" |
||||
|
} |
||||
|
}; |
||||
|
}, |
||||
|
watch: {}, |
||||
|
created() {}, |
||||
|
computed: {}, |
||||
|
mounted() { |
||||
|
const { calcRate, windowDraw } = useIndex(this.$refs.appRef); |
||||
|
calcRate(); |
||||
|
windowDraw(); |
||||
|
this.changeTab(this.selectTab[0], 0) |
||||
|
|
||||
|
}, |
||||
|
beforeDestroy() { |
||||
|
}, |
||||
|
computed: {}, |
||||
|
watch: {}, |
||||
|
methods: { |
||||
|
changeTab(item, index) { |
||||
|
if (this.selectTab == index) return; |
||||
|
this.selectTab = index; |
||||
|
this.typeCode = item.typeCode; |
||||
|
}, |
||||
|
openCultural (data) { |
||||
|
this.detaillModal = true |
||||
|
this.currCultural = data |
||||
|
} |
||||
|
} |
||||
|
}; |
||||
|
</script> |
||||
|
|
||||
|
<style lang="less" scoped> |
||||
|
@import "../../styles/fonts/font.less"; |
||||
|
.eb-container { |
||||
|
width: 1920px; |
||||
|
height: 1080px; |
||||
|
transform: scale(var(--scale)) translate(-50%, -50%); |
||||
|
transform-origin: 0 0; |
||||
|
position: absolute; |
||||
|
left: 50%; |
||||
|
top: 50%; |
||||
|
background: url("../../assets/pbImage/bg.png") no-repeat; |
||||
|
background-size: 100% 100%; |
||||
|
|
||||
|
.main-content { |
||||
|
position: absolute; |
||||
|
top: 120px; |
||||
|
left: 50%; |
||||
|
transform: translateX(-50%); |
||||
|
width: 1800px; |
||||
|
height: 880px; |
||||
|
display: flex; |
||||
|
justify-content: space-between; |
||||
|
|
||||
|
.left-content { |
||||
|
width: 310px; |
||||
|
height: 100%; |
||||
|
background: url("../../assets/pbImage/left-content.png") no-repeat; |
||||
|
background-size: 100% 100%; |
||||
|
display: flex; |
||||
|
flex-direction: column; |
||||
|
align-items: center; |
||||
|
padding: 10px 0; |
||||
|
|
||||
|
.tab-item { |
||||
|
width: 278px; |
||||
|
height: 62px; |
||||
|
background: url("../../assets/pbImage/tab-bg.png") no-repeat; |
||||
|
background-size: 100% 100%; |
||||
|
display: flex; |
||||
|
justify-content: center; |
||||
|
align-items: center; |
||||
|
font-family: PingFang SC; |
||||
|
font-size: 20px; |
||||
|
font-weight: 400; |
||||
|
color: #ffffff; |
||||
|
margin-bottom: 20px; |
||||
|
} |
||||
|
|
||||
|
.select-tab { |
||||
|
background: url("../../assets/pbImage/tab-select.png") no-repeat; |
||||
|
color: #a59e68; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
.right-content { |
||||
|
width: 1450px; |
||||
|
height: 100%; |
||||
|
background: url("../../assets/pbImage/right-content.png") no-repeat; |
||||
|
background-size: 100% 100%; |
||||
|
overflow-y: auto; |
||||
|
} |
||||
|
.right-content::-webkit-scrollbar { |
||||
|
width: 10px; |
||||
|
// height: 10px; // 高度写不写,都不影响,因为会根据内容的长度自动计算 |
||||
|
} |
||||
|
|
||||
|
.right-content::-webkit-scrollbar-thumb { |
||||
|
background: #ccc; // 滑块颜色 |
||||
|
border-radius: 5px; // 滑块圆角 |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
.bottom { |
||||
|
width: 1920px; |
||||
|
height: 30px; |
||||
|
position: fixed; |
||||
|
left: 0; |
||||
|
bottom: 0; |
||||
|
background: url("../../assets/pbImage/bottom.png") no-repeat; |
||||
|
background-size: 100% 100%; |
||||
|
} |
||||
|
</style> |
@ -1,205 +0,0 @@ |
|||||
<template> |
|
||||
<div class="container" ref="appRef"> |
|
||||
<common-live-player |
|
||||
:videoUrl="currentVideo.playUrl" |
|
||||
:muted="false" |
|
||||
@ended="ended" |
|
||||
></common-live-player> |
|
||||
</div> |
|
||||
</template> |
|
||||
|
|
||||
<script> |
|
||||
import { useIndex } from "@/utils/utilsDramAdmin"; |
|
||||
import CommonLivePlayer from "@/views/common-components/common-live-player.vue"; |
|
||||
export default { |
|
||||
name: "OutSide", |
|
||||
components: { |
|
||||
CommonLivePlayer, |
|
||||
}, |
|
||||
data() { |
|
||||
return { |
|
||||
title: "智慧广电示范区", |
|
||||
videoList: [], |
|
||||
index: 0, |
|
||||
currentVideo: {}, |
|
||||
}; |
|
||||
}, |
|
||||
created() {}, |
|
||||
mounted() { |
|
||||
const { calcRate, windowDraw } = useIndex(this.$refs.appRef); |
|
||||
calcRate(); |
|
||||
windowDraw(); |
|
||||
this.queryTvList(); |
|
||||
}, |
|
||||
beforeDestroy() {}, |
|
||||
methods: { |
|
||||
ended() { |
|
||||
this.index += 1; |
|
||||
if (this.index > this.videoList.length - 1) { |
|
||||
this.index = 0; |
|
||||
} |
|
||||
this.onClick(this.index); |
|
||||
}, |
|
||||
// 自动播放点击 |
|
||||
onClick(index) { |
|
||||
this.currentVideo = this.videoList[index]; |
|
||||
}, |
|
||||
// 查询电视新闻列表 |
|
||||
queryTvList() { |
|
||||
let url = "/links/getTVInfoPage"; |
|
||||
let params = { |
|
||||
page: 0, |
|
||||
}; |
|
||||
|
|
||||
this.$http.post(url, this.common.request(params)).then((res) => { |
|
||||
if (res && res.data.code >= 200 && res.data.code < 400) { |
|
||||
this.videoList = res.data.data.contentList.splice(0, 10); |
|
||||
this.videoList = this.videoList.map((item) => ({ |
|
||||
...item, |
|
||||
playUrl: item.playInfo.playUrl, |
|
||||
})); |
|
||||
this.onClick(0); |
|
||||
} else { |
|
||||
this.$Message.error("获取数据失败"); |
|
||||
} |
|
||||
}); |
|
||||
}, |
|
||||
}, |
|
||||
}; |
|
||||
</script> |
|
||||
|
|
||||
<style lang="less" scoped> |
|
||||
.box-title { |
|
||||
display: block; |
|
||||
width: 100%; |
|
||||
font-family: "ShiShangZhongHeiJianTi"; |
|
||||
font-size: 30px; |
|
||||
background: linear-gradient(180deg, #ffffff 27.08%, #bcddff 100%); |
|
||||
margin: 5px 0; |
|
||||
background-clip: text; |
|
||||
-webkit-background-clip: text; |
|
||||
-webkit-text-fill-color: transparent; |
|
||||
writing-mode: unset; |
|
||||
} |
|
||||
.container { |
|
||||
width: 1920px; |
|
||||
height: 1080px; |
|
||||
transform: scale(var(--scale)) translate(-50%, -50%); |
|
||||
transform-origin: 0 0; |
|
||||
position: absolute; |
|
||||
left: 50%; |
|
||||
top: 50%; |
|
||||
background-image: url("./../../assets/largeScreen/page-bg.png"); |
|
||||
background-size: 100% 100%; |
|
||||
display: flex; |
|
||||
flex-direction: column; |
|
||||
align-items: center; |
|
||||
|
|
||||
.main { |
|
||||
width: 100%; |
|
||||
height: 920px; |
|
||||
padding: 0 30px; |
|
||||
display: flex; |
|
||||
justify-content: space-between; |
|
||||
.video-box { |
|
||||
width: 1350px; |
|
||||
height: 100%; |
|
||||
display: flex; |
|
||||
flex-direction: column; |
|
||||
justify-content: space-between; |
|
||||
} |
|
||||
.right-box { |
|
||||
width: 480px; |
|
||||
height: 100%; |
|
||||
display: flex; |
|
||||
flex-direction: column; |
|
||||
justify-content: space-between; |
|
||||
.contetn-box { |
|
||||
width: 100%; |
|
||||
height: 680px; |
|
||||
display: flex; |
|
||||
flex-direction: column; |
|
||||
justify-content: space-between; |
|
||||
|
|
||||
.list { |
|
||||
width: 100%; |
|
||||
height: 625px; |
|
||||
.list-item { |
|
||||
width: 100%; |
|
||||
height: 130px; |
|
||||
margin-bottom: 10px; |
|
||||
display: flex; |
|
||||
justify-content: space-between; |
|
||||
.content { |
|
||||
width: 255px; |
|
||||
height: 100%; |
|
||||
display: flex; |
|
||||
flex-direction: column; |
|
||||
justify-content: space-between; |
|
||||
|
|
||||
.content-title { |
|
||||
width: 100%; |
|
||||
color: #ffffff; |
|
||||
font-size: 18px; |
|
||||
display: -webkit-box; /* 必须结合的属性 ,将对象作为弹性伸缩盒子模型显示 。*/ |
|
||||
-webkit-box-orient: vertical; /* 必须结合的属性 ,设置或检索伸缩盒对象的子元素的排列方式 。*/ |
|
||||
text-overflow: ellipsis; /* 可以用来多行文本的情况下,用省略号“…”隐藏超出范围的文本 。*/ |
|
||||
-webkit-line-clamp: 3; |
|
||||
overflow: hidden; |
|
||||
} |
|
||||
.tag { |
|
||||
display: flex; |
|
||||
justify-content: space-between; |
|
||||
align-items: center; |
|
||||
color: #d8d4d4; |
|
||||
font-size: 15px; |
|
||||
} |
|
||||
} |
|
||||
img { |
|
||||
width: 200px; |
|
||||
height: 122px; |
|
||||
border-radius: 4px; |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
.item-box { |
|
||||
width: 100%; |
|
||||
display: flex; |
|
||||
flex-direction: column; |
|
||||
margin-bottom: 30px; |
|
||||
|
|
||||
img { |
|
||||
width: 100%; |
|
||||
height: 270px; |
|
||||
border-radius: 4px; |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
.qrcode-box { |
|
||||
width: 100%; |
|
||||
height: 220px; |
|
||||
display: flex; |
|
||||
justify-content: space-between; |
|
||||
img { |
|
||||
width: 200px; |
|
||||
height: 200px; |
|
||||
} |
|
||||
span { |
|
||||
font-family: "ShiShangZhongHeiJianTi"; |
|
||||
font-size: 18px; |
|
||||
background: linear-gradient( |
|
||||
180deg, |
|
||||
#ffffff 27.08%, |
|
||||
#bcddff 100% |
|
||||
); |
|
||||
margin: 5px 0; |
|
||||
background-clip: text; |
|
||||
-webkit-background-clip: text; |
|
||||
-webkit-text-fill-color: transparent; |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
</style> |
|
@ -0,0 +1,216 @@ |
|||||
|
<template> |
||||
|
<div class="eb-container" ref="appRef"> |
||||
|
<!-- 背景框 --> |
||||
|
<MainTitle class="title" :title="title" :show-menu="false" :show-go-back="true" :show-logout="false"></MainTitle> |
||||
|
<div class="main-content"> |
||||
|
<div class="left-content"> |
||||
|
<div |
||||
|
class="tab-item" |
||||
|
:class="{ 'select-tab': index == selectTab }" |
||||
|
v-for="(item, index) in tabList" |
||||
|
:key="index" |
||||
|
@click="changeTab(item, index)" |
||||
|
> |
||||
|
{{ item.tabName }} |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="right-content"> |
||||
|
<newsTemplate :typeCode="typeCode" @openCultural="openCultural"></newsTemplate> |
||||
|
</div> |
||||
|
</div> |
||||
|
<commonModal v-model="detaillModal" width="1000" :title="currCultural.title"> |
||||
|
<div class="detail-container"> |
||||
|
<!-- 富文本 --> |
||||
|
<div class="richText" v-html="currCultural.content" v-if="currCultural.contentType == '0'"></div> |
||||
|
<!-- 图片列表 --> |
||||
|
<div style="width: 100%; display: flex; flex-direction: column;align-items: center;"> |
||||
|
<img :src="item" v-for="(item, index) in currCultural.imageList" :key="index" style="width: 100%;margin-bottom: 10px;"/> |
||||
|
</div> |
||||
|
<!-- 视频 --> |
||||
|
<LivePlayer |
||||
|
v-if="detaillModal && currCultural.contentType == '2'" |
||||
|
:videoUrl="currCultural.mediaUrl" |
||||
|
:live="false" |
||||
|
fluent |
||||
|
autoplay |
||||
|
stretch |
||||
|
:hide-big-play-button="true" |
||||
|
:muted="false" |
||||
|
alt="正在加载中..." |
||||
|
></LivePlayer> |
||||
|
</div> |
||||
|
</commonModal> |
||||
|
</div> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
import { useIndex } from "../../utils/utilsDramAdmin.js"; |
||||
|
import MainTitle from "./components/MainTitle.vue"; |
||||
|
import CommonModal from "@/views/common-components/common-modal.vue"; |
||||
|
import LivePlayer from "@liveqing/liveplayer"; |
||||
|
import organization from './components/organization.vue' |
||||
|
import newsTemplate from "./components/news-template.vue"; |
||||
|
|
||||
|
export default { |
||||
|
name: "publicService", |
||||
|
components: { |
||||
|
MainTitle, |
||||
|
CommonModal, |
||||
|
LivePlayer, |
||||
|
organization, |
||||
|
newsTemplate |
||||
|
}, |
||||
|
data() { |
||||
|
return { |
||||
|
title: "文化旅游", |
||||
|
typeCode: "", |
||||
|
selectTab: 0, |
||||
|
currCultural: {}, |
||||
|
tabList: [ |
||||
|
{ |
||||
|
tabName: "景区景点", |
||||
|
typeCode: "SCENE" |
||||
|
}, |
||||
|
{ |
||||
|
tabName: "乡村非物质文化", |
||||
|
typeCode: "CULTURE" |
||||
|
}, |
||||
|
], |
||||
|
detaillModal: false, |
||||
|
richText: |
||||
|
"五粮液旅游景区是由五粮液集团建设,由四川五粮液文化旅游开发有限公司运营管理的特大型工业旅游景区。<br>景区于2006年被原国家旅游局评定为全国工业旅游示范点,2017年被评定为国家AAAA级旅游景区,2019年被四川省命名为首批省级工业旅游示范基地。 景区由501明清古窖池群、503明代古窖泥活态保护群落和江北总部基地三大片区构成,占地面积12平方公里,规划面积18平方公里。拥有五粮液酒文化博览馆、安乐神泉等景点。", |
||||
|
slides: [ |
||||
|
{ |
||||
|
src: require("@/assets/pbImage/lz.png") |
||||
|
}, |
||||
|
{ |
||||
|
src: require("@/assets/pbImage/lz.png") |
||||
|
}, |
||||
|
{ |
||||
|
src: require("@/assets/pbImage/lz.png") |
||||
|
} |
||||
|
], |
||||
|
value3: 0, |
||||
|
setting: { |
||||
|
autoplay: false, |
||||
|
autoplaySpeed: 2000, |
||||
|
dots: "inside", |
||||
|
radiusDot: false, |
||||
|
trigger: "click", |
||||
|
arrow: "hover", |
||||
|
height: "600px" |
||||
|
} |
||||
|
}; |
||||
|
}, |
||||
|
watch: {}, |
||||
|
created() {}, |
||||
|
computed: {}, |
||||
|
mounted() { |
||||
|
const { calcRate, windowDraw } = useIndex(this.$refs.appRef); |
||||
|
calcRate(); |
||||
|
windowDraw(); |
||||
|
this.changeTab(this.tabList[0], 0) |
||||
|
|
||||
|
}, |
||||
|
beforeDestroy() { |
||||
|
}, |
||||
|
computed: {}, |
||||
|
watch: {}, |
||||
|
methods: { |
||||
|
changeTab(item, index) { |
||||
|
this.typeCode = item.typeCode |
||||
|
if (this.selectTab == index) return; |
||||
|
this.selectTab = index; |
||||
|
|
||||
|
}, |
||||
|
openCultural (data) { |
||||
|
this.detaillModal = true |
||||
|
this.currCultural = data |
||||
|
} |
||||
|
} |
||||
|
}; |
||||
|
</script> |
||||
|
|
||||
|
<style lang="less" scoped> |
||||
|
@import "../../styles/fonts/font.less"; |
||||
|
.eb-container { |
||||
|
width: 1920px; |
||||
|
height: 1080px; |
||||
|
transform: scale(var(--scale)) translate(-50%, -50%); |
||||
|
transform-origin: 0 0; |
||||
|
position: absolute; |
||||
|
left: 50%; |
||||
|
top: 50%; |
||||
|
background: url("../../assets/pbImage/bg.png") no-repeat; |
||||
|
background-size: 100% 100%; |
||||
|
|
||||
|
.main-content { |
||||
|
position: absolute; |
||||
|
top: 120px; |
||||
|
left: 50%; |
||||
|
transform: translateX(-50%); |
||||
|
width: 1800px; |
||||
|
height: 880px; |
||||
|
display: flex; |
||||
|
justify-content: space-between; |
||||
|
|
||||
|
.left-content { |
||||
|
width: 310px; |
||||
|
height: 100%; |
||||
|
background: url("../../assets/pbImage/left-content.png") no-repeat; |
||||
|
background-size: 100% 100%; |
||||
|
display: flex; |
||||
|
flex-direction: column; |
||||
|
align-items: center; |
||||
|
padding: 10px 0; |
||||
|
|
||||
|
.tab-item { |
||||
|
width: 278px; |
||||
|
height: 62px; |
||||
|
background: url("../../assets/pbImage/tab-bg.png") no-repeat; |
||||
|
background-size: 100% 100%; |
||||
|
display: flex; |
||||
|
justify-content: center; |
||||
|
align-items: center; |
||||
|
font-family: PingFang SC; |
||||
|
font-size: 20px; |
||||
|
font-weight: 400; |
||||
|
color: #ffffff; |
||||
|
margin-bottom: 20px; |
||||
|
} |
||||
|
|
||||
|
.select-tab { |
||||
|
background: url("../../assets/pbImage/tab-select.png") no-repeat; |
||||
|
color: #a59e68; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
.right-content { |
||||
|
width: 1450px; |
||||
|
height: 100%; |
||||
|
background: url("../../assets/pbImage/right-content.png") no-repeat; |
||||
|
background-size: 100% 100%; |
||||
|
overflow-y: auto; |
||||
|
} |
||||
|
.right-content::-webkit-scrollbar { |
||||
|
width: 10px; |
||||
|
// height: 10px; // 高度写不写,都不影响,因为会根据内容的长度自动计算 |
||||
|
} |
||||
|
|
||||
|
.right-content::-webkit-scrollbar-thumb { |
||||
|
background: #ccc; // 滑块颜色 |
||||
|
border-radius: 5px; // 滑块圆角 |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
.bottom { |
||||
|
width: 1920px; |
||||
|
height: 30px; |
||||
|
position: fixed; |
||||
|
left: 0; |
||||
|
bottom: 0; |
||||
|
background: url("../../assets/pbImage/bottom.png") no-repeat; |
||||
|
background-size: 100% 100%; |
||||
|
} |
||||
|
</style> |
@ -0,0 +1,233 @@ |
|||||
|
<template> |
||||
|
<div class="container" ref="appRef" :class="{ red: name == '一曼村' }"> |
||||
|
<div class="main-title"> |
||||
|
<outsideTitle :title="title"></outsideTitle> |
||||
|
</div> |
||||
|
<div class="main"> |
||||
|
<div class="main-left"> |
||||
|
<div class="video"> |
||||
|
<LivePlayer |
||||
|
fluent |
||||
|
autoplay |
||||
|
:loop="true" |
||||
|
:videoUrl="videoUrl" |
||||
|
stretch |
||||
|
:hide-big-play-button="true" |
||||
|
:muted="false" |
||||
|
aspect="513:292" |
||||
|
alt="正在加载中..." |
||||
|
></LivePlayer> |
||||
|
</div> |
||||
|
<div class="card" @click="toPage('/out-pbService')"> |
||||
|
<img :src="require('@/assets/pbImage/card-icon1.png')" /> |
||||
|
<span>公共服务</span> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="main-right"> |
||||
|
<div |
||||
|
class="card card2" |
||||
|
@click="toPage('/out-organization')" |
||||
|
> |
||||
|
<img :src="require('@/assets/pbImage/card-icon2.png')" /> |
||||
|
<span>组织振兴</span> |
||||
|
</div> |
||||
|
<div class="card card3" @click="toPage('/out-travel')"> |
||||
|
<img :src="require('@/assets/pbImage/card-icon3.png')" /> |
||||
|
<span>文化旅游</span> |
||||
|
</div> |
||||
|
<div class="card card4" @click="toPage('/out-industry')"> |
||||
|
<img :src="require('@/assets/pbImage/card-icon4.png')" /> |
||||
|
<span>产业发展</span> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
import outsideTitle from "./components/outsideTitle.vue"; |
||||
|
import { useIndex } from "../../utils/utilsDramAdmin.js"; |
||||
|
import LivePlayer from "@liveqing/liveplayer"; |
||||
|
|
||||
|
export default { |
||||
|
name: "", |
||||
|
components: { |
||||
|
outsideTitle, |
||||
|
LivePlayer |
||||
|
}, |
||||
|
data() { |
||||
|
return { |
||||
|
title: "·" + this.$route.query.areaName + "公服代办点", |
||||
|
name: this.$route.query.areaName, |
||||
|
areaCode: this.$route.query.areaCode, |
||||
|
videoUrl: "" |
||||
|
}; |
||||
|
}, |
||||
|
created() {}, |
||||
|
mounted() { |
||||
|
const { calcRate, windowDraw } = useIndex(this.$refs.appRef); |
||||
|
calcRate(); |
||||
|
windowDraw(); |
||||
|
this.initData(); |
||||
|
}, |
||||
|
beforeDestroy() {}, |
||||
|
methods: { |
||||
|
initData() { |
||||
|
let params = { |
||||
|
areaCode: this.areaCode |
||||
|
}; |
||||
|
this.$http |
||||
|
.post("/area/info/getById", this.common.request(params)) |
||||
|
.then(res => { |
||||
|
if (res.data.code == 200) { |
||||
|
this.videoUrl = res.data.data.map4; |
||||
|
} else { |
||||
|
this.$Message.error("操作失败"); |
||||
|
} |
||||
|
}); |
||||
|
}, |
||||
|
toPage (path) { |
||||
|
this.$router.push( |
||||
|
{ |
||||
|
path: path, |
||||
|
query: { |
||||
|
areaName: this.name, |
||||
|
areaCode: this.areaCode |
||||
|
} |
||||
|
} |
||||
|
) |
||||
|
} |
||||
|
} |
||||
|
}; |
||||
|
</script> |
||||
|
|
||||
|
<style lang="less" scoped> |
||||
|
/deep/ .video-wrapper { |
||||
|
border-radius: 12px; |
||||
|
} |
||||
|
|
||||
|
/deep/ .ivu-page { |
||||
|
color: #fff; |
||||
|
background-color: transparent; |
||||
|
} |
||||
|
|
||||
|
/deep/ .ivu-page-next, |
||||
|
/deep/ .ivu-page-prev, |
||||
|
/deep/ .ivu-page-item, |
||||
|
/deep/ .ivu-page-options-elevator input { |
||||
|
background-color: transparent; |
||||
|
color: #fff; |
||||
|
text-align: center; |
||||
|
} |
||||
|
|
||||
|
/deep/ .ivu-page-next a, |
||||
|
/deep/ .ivu-page-prev a, |
||||
|
/deep/ .ivu-page-item a { |
||||
|
color: #fff; |
||||
|
} |
||||
|
|
||||
|
.red { |
||||
|
background-image: url("../../assets/pbImage/red-bg.png") !important; |
||||
|
} |
||||
|
.container { |
||||
|
width: 1920px; |
||||
|
height: 1080px; |
||||
|
transform: scale(var(--scale)) translate(-50%, -50%); |
||||
|
transform-origin: 0 0; |
||||
|
position: absolute; |
||||
|
left: 50%; |
||||
|
top: 50%; |
||||
|
background-image: url("../../assets/pbImage/out-bg.png"); |
||||
|
background-size: 100% 100%; |
||||
|
display: flex; |
||||
|
flex-direction: column; |
||||
|
align-items: center; |
||||
|
|
||||
|
.main-title { |
||||
|
width: 1788px; |
||||
|
height: 100px; |
||||
|
position: absolute; |
||||
|
top: 30px; |
||||
|
} |
||||
|
|
||||
|
.main { |
||||
|
position: absolute; |
||||
|
top: 152px; |
||||
|
width: 1790px; |
||||
|
height: 890px; |
||||
|
display: flex; |
||||
|
justify-content: space-between; |
||||
|
|
||||
|
.main-left { |
||||
|
width: 1026px; |
||||
|
height: 100%; |
||||
|
display: flex; |
||||
|
flex-direction: column; |
||||
|
justify-content: space-between; |
||||
|
|
||||
|
.video { |
||||
|
width: 100%; |
||||
|
height: 584px; |
||||
|
} |
||||
|
.card { |
||||
|
width: 100%; |
||||
|
height: 280px; |
||||
|
background: url("../../assets/pbImage/card1.png") no-repeat; |
||||
|
background-size: 100% 100%; |
||||
|
display: flex; |
||||
|
justify-content: center; |
||||
|
align-items: center; |
||||
|
img { |
||||
|
width: 158px; |
||||
|
height: 158px; |
||||
|
} |
||||
|
span { |
||||
|
font-family: ShiShangZhongHeiJianTi; |
||||
|
font-size: 84px; |
||||
|
font-weight: 400; |
||||
|
text-align: center; |
||||
|
color: #ffffff; |
||||
|
margin-left: 45px; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
.main-right { |
||||
|
width: 742px; |
||||
|
height: 100%; |
||||
|
display: flex; |
||||
|
flex-direction: column; |
||||
|
justify-content: space-between; |
||||
|
.card { |
||||
|
width: 100%; |
||||
|
height: 280px; |
||||
|
background-color: #fff; |
||||
|
background-size: 100% 100%; |
||||
|
display: flex; |
||||
|
justify-content: center; |
||||
|
align-items: center; |
||||
|
img { |
||||
|
width: 158px; |
||||
|
height: 158px; |
||||
|
} |
||||
|
span { |
||||
|
font-family: ShiShangZhongHeiJianTi; |
||||
|
font-size: 84px; |
||||
|
font-weight: 400; |
||||
|
text-align: center; |
||||
|
color: #ffffff; |
||||
|
margin-left: 45px; |
||||
|
} |
||||
|
} |
||||
|
.card2 { |
||||
|
background: url("../../assets/pbImage/card2.png") no-repeat; |
||||
|
} |
||||
|
.card3 { |
||||
|
background: url("../../assets/pbImage/card3.png") no-repeat; |
||||
|
} |
||||
|
.card4 { |
||||
|
background: url("../../assets/pbImage/card4.png") no-repeat; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
</style> |
Loading…
Reference in new issue