修改八大中心详情页

init
zhusiyu 3 years ago
parent 2d39c4ac65
commit 10e80c6c76

@ -0,0 +1,237 @@
<template>
<a-modal :centered="true" :footer="null" :mask="mask" :title="title" :destroyOnClose="destroyOnClose"
:closable="showCancel"
:visible="show_modal" :dialogClass="(className!==''?className:'')+ ' dialog-style'" :maskClosable="false"
:width="width !== ''?width:'30%'" @cancel.stop="optionClick($event,'cancel')" :zIndex="modalZIndex"
:bodyStyle="{maxHeight:'calc(95vh - 33px)',overflow:'auto'}"
:class="{'party-dialog-style':isPartyCenter}"
>
<a-icon slot="closeIcon" type="close-circle" style="color: #999999;font-size: 1rem" title="关闭"/>
<component v-if="addChildType === 'event' && show_modal" :is="childDom" v-bind="propsData" ref="dom"/>
<slot v-else-if="addChildType === 'slot'"></slot>
</a-modal>
</template>
<script>
import {Icon, Modal} from 'ant-design-vue'
import {EventConfig} from "../../../utils/eventConfig"
export default {
name: "ModalPanel",
props: {
addChildType: {
type: String,
default: "event" // "event": "slot":
},
modalTitle: {//
type: String,
default: ""
},
show: {//
type: Boolean,
default: false,
},
destroyOnClose: {
type: Boolean,
default: true,
},
url: {//
type: String,
default: "",
},
OKButton: {//
type: Boolean,
default: true,
},
CancelButton: {//
type: Boolean,
default: true,
},
modalWidth: {//
type: String,
default: "",
},
modalClassName: {//
type: String,
default: "",
},
zIndex: {
type: Number,
default: 100000
},
mask: {
type: Boolean,
default: false
}
},
components: {
AIcon: Icon,
AModal: Modal
},
data: function () {
return {
title: this.modalTitle,
show_modal: this.show,
dom_url: this.url,
propsData: {},
showOK: this.OKButton,
showCancel: this.CancelButton,
callback: null,
width: this.modalWidth,
className: this.modalClassName,
modalZIndex: this.zIndex,
isPartyCenter: false,
}
},
watch: {
$route: {
handler(val, oldval){
if (val.path === '/partyCenter/party') {
this.isPartyCenter = true
} else {
this.isPartyCenter = false
}
},
},
},
computed: {
childDom: function () {
return this.dom_url === "" ? null : () => import(`@/${this.dom_url}`);
}
},
mounted() {
this.getHref()
if (this.addChildType === 'event') {
this.$bus.on(EventConfig.MODAL_SHOW, this.showModal);
this.$bus.on(EventConfig.MODAL_CLOSE, this.closeModal);
}
},
beforeDestroy(){
if (this.addChildType === 'event') {
this.$bus.off(EventConfig.MODAL_SHOW, this.showModal);
this.$bus.off(EventConfig.MODAL_CLOSE, this.closeModal);
}
},
methods: {
getHref(){
this.href = window.location.hash
if (this.href === '#/partyCenter/party') {
this.isPartyCenter = true
} else {
this.isPartyCenter = false
}
},
showModal: function (arys) {
this.title = arys[0].title;
this.dom_url = arys[0].dom_url;
this.propsData = arys[0].propsData;
this.showOK = arys[0].showOK;
this.showCancel = arys[0].showCancel;
this.callback = arys[0].callback;
this.width = arys[0].width;
this.className = arys[0].className;
this.show_modal = true;
},
closeModal: function () {
this.show_modal = false;
},
optionClick: function (evt, type) {
if (this.addChildType === "event") {
if (this.callback) {
this.show_modal = !this.callback(type, this.$refs.dom) !== false
} else {
this.show_modal = false;
}
} else {
this.$emit("callback", [type]);
}
}
},
watch: {
modalTitle: function (newData) {
this.title = newData;
},
show: function (newData) {
this.show_modal = newData
},
OKButton: function (newData) {
this.showOK = newData;
},
CancelButton: function (newData) {
this.showCancel = newData;
},
modalWidth: function (newData) {
this.width = newData;
},
modalClassName: function (newData) {
this.className = newData;
},
$route(val, oldval){
if (val.path === '/partyCenter/party') {
}
}
}
}
</script>
<style scoped lang="scss">
/deep/ .dialog-style {
min-width: 200px;
width: 30%;
max-width: 95% !important;
color: #fff;
.ant-modal-content {
border: 1px solid #31a8fa;
box-shadow: 0 4px 12px rgba(49, 168, 250, 0.5);
background: #01123E;
}
.ant-modal-header {
padding: 36px 24px !important;
background: #01123E;
color: #fff;
border-bottom: 1px solid #1067B0;
.ant-modal-title {
line-height: 2rem !important;
font-size: 1.6rem !important;
color: #fff;
}
}
.ant-modal-close-x {
height: 2rem !important;
width: 2rem !important;
line-height: 2rem !important;
.anticon {
color: #fff !important;
font-size: 2.5rem !important;
position: absolute !important;
top: 13px !important;
right: 20px !important;
}
}
.ok-style {
position: absolute;
font-size: 1rem;
color: #31a8fa;
top: 0.5rem;
right: 2rem;
cursor: pointer;
}
}
.party-dialog-style {
/deep/ .dialog-style {
.ant-modal-content {
border: 1px solid #FFFE00 !important;
box-shadow: 0 4px 12px rgba(178, 34, 34, 0.5) !important;
background: #961E03 !important;
.ant-modal-header {
background: #961E03 !important;
border-bottom: 1px solid #FFFE00 !important;
}
.info-content-style {
background: none !important;
}
}
}
}
</style>

@ -0,0 +1,250 @@
<template>
<modal-panel
addChildType="slot"
:modalTitle="title"
:OKButton="false"
:show="showPanel"
:mask="true"
modalWidth="50%"
modalClassName="common-info-content-style"
@callback="modalCallback"
>
<div class="common-info-style">
<div class="title-content-style">
<h1>{{infoTitle}}</h1>
</div>
<div class="info-content-style">
<span v-for="item in infoArr">
<span style="margin-right: 20px">{{item.title}}{{item.value}}</span>
</span>
</div>
<div class="content-info-style">
<vue-scroll :ops="listScroll" style="height: 400px" class="content-scroll-style">
<div v-html="contentHtml"></div>
</vue-scroll>
</div>
<img v-if="!isPartyCenter" src="../assets/images/modalLogo.png" alt="" class="title-logo-png">
<img v-if="isPartyCenter" src="../assets/images/partyModalLogo.png" alt="" class="title-logo-png">
</div>
</modal-panel>
</template>
<script>
/*
* 图文详情弹出页面
*
* infoObj:{
* infoTitle:"",
* infoArr:[{'title':'发布人','value':'费利明'},{'title':'发布时间','value':'2022-06-30 1600'}]
* content:""
* }
*
*
* */
import {Modal} from 'ant-design-vue';
import ModalPanel from "../../../components/common/modal/centerModalPanel.vue";
export default{
props: {
show: {
type: Boolean,
default: false,
},
modalTitle: {
type: String,
default: "查看详情",
},
commonId: {
type: String,
default: ""
},
infoObj: {
type: Object,
default: () => {
}
},
commonQueryId: {
type: String,
default: ""
},
},
data(){
return {
infoId: this.$props.commonId,
title: this.modalTitle, //
showPanel: this.show, //
listScroll: this.StaticParams.scrollOption,
//
infoTitle: this.$props.infoObj && this.$props.infoObj.title ? this.$props.infoObj.title : "",
infoArr: this.$props.infoObj && this.$props.infoObj.infoArr ? this.$props.infoObj.infoArr : [],
contentHtml: this.$props.infoObj && this.$props.infoObj.content ? this.$props.infoObj.content : "",
// uploadPerson:"",
// contentHtml:"",
isPartyCenter: false,
}
},
watch: {
commonId: function (newVal) {
this.infoId = newVal;
this.getDataInfo();
},
modalTitle: function (newData) {
this.title = newData;
},
show: function (newData) {
this.showPanel = newData;
},
infoObj: function (newData) {
console.log("infoObj变化:", newData)
this.infoTitle = newData.title;
this.infoArr = newData.infoArr;
this.contentHtml = newData.content;
},
$route: {
handler(val, oldval){
if (val.path === '/partyCenter/party') {
this.isPartyCenter = true
} else {
this.isPartyCenter = false
}
},
},
},
mounted(){
this.getHref()
// if (this.infoId && this.infoId !== "") {
// this.getDataInfo();
// }
},
methods: {
getHref(){
this.href = window.location.hash
if (this.href === '#/partyCenter/party') {
this.isPartyCenter = true
} else {
this.isPartyCenter = false
}
},
//
getDataInfo: function () {
if (!this.infoId || this.infoId === "") {
return;
}
let param = {
"access_token": "system_01##20200102030405##a6ce11eab94df48a6ce11eab",
"query": {
"query_id": this.$props.commonQueryId,
"query_param": [
this.infoId + ""
]
},
"query_cache": 0,
"query_count": [],
"query_format": "json",
"query_group": []
}
this.DataexReportInterface.callInterface([{
params: param,
method: "post",
}], (result) => {
//this.spinning = false;
if (result[0].data.success) {
let dataInfo = JSON.parse(result[0].data.result);
if (dataInfo && dataInfo.length > 0) {
let info = dataInfo[0];
this.infoTitle = info.info_title;
this.uploadTime = info.create_time.replace('T', ' ').replace('Z', '');
this.uploadPerson = info.person_name;
this.contentHtml = info.info_content;
}
}
})
},
modalCallback: function (ary) {
if (ary[0] === "ok") {
//this.$emit("selectComplete", this.selectedDept);
} else {
this.infoTitle = "";
this.$emit("cancel", null);
}
},
},
components: {
AModal: Modal,
ModalPanel
}
}
</script>
<style scoped lang="scss">
/deep/ .dialog-style {
.ant-modal-content {
padding-left: 100px;
padding-right: 10px;
background: #01123E !important;
.ant-modal-header {
height: 50px;
display: flex;
align-items: center;
margin-left: 100px;
background: #01123E;
border-bottom: 1px solid #1067B0;
}
.ant-modal-body {
.common-info-style {
width: 100%;
height: 500px;
padding-right: 50px;
display: flex;
flex-direction: column;
.title-content-style {
width: 100%;
min-height: 90px;
display: flex;
justify-content: center;
align-items: center;
h1 {
color: #fff;
}
}
.info-content-style {
width: 87%;
height: 30px;
display: flex;
align-items: center;
justify-content: center;
background: #525E7B;
padding: 25px 0;
margin: 0 auto;
font-size: 18px;
}
.content-info-style {
width: 100%;
height: 350px;
font-size: 18px;
line-height: 26px;
margin-top: 10px;
overflow: hidden;
.content-scroll-style {
display: flex;
flex-wrap: wrap;
height: 100% !important;
p {
line-height: 30px !important;
}
span {
line-height: 30px !important;
}
}
}
.title-logo-png {
vertical-align: middle;
border-style: none;
width: 240px;
height: 150px;
position: absolute;
top: -10px;
left: -10px;
}
}
}
}
}
</style>

@ -69,6 +69,9 @@
</vue-scroll>
</div>
</a-spin>
<div class="logo-content-style">
<img src="../assets/images/modalLogo.png" alt="" class="title-logo-png">
</div>
</modal-panel>
</template>
<script>
@ -84,7 +87,7 @@
*
* */
import {Modal, Table, Row, Col, Empty, Spin} from 'ant-design-vue';
import ModalPanel from "../../../components/common/modal/ModalPanel";
import ModalPanel from "../../../components/common/modal/centerModalPanel.vue";
import {swiper, swiperSlide} from "vue-awesome-swiper";
import "swiper/dist/css/swiper.css";
import ImgPreview from '../common/imgPreview.vue';
@ -318,10 +321,17 @@
.ant-modal-content {
padding-left: 100px;
padding-right: 10px;
background: #01123E;
.ant-modal-header {
height: 50px;
display: flex;
align-items: center;
background: #01123E;
border-bottom: 1px solid #1067B0;
margin-left: 100px;
.ant-modal-title {
color: #fff !important;
}
}
.ant-modal-body {
.common-info-style {
@ -336,6 +346,9 @@
display: flex;
justify-content: center;
align-items: center;
h1 {
color: #fff !important;
}
}
.content-style {
width: 100%;
@ -522,6 +535,18 @@
}
}
}
.logo-content-style {
.title-logo-png {
vertical-align: middle;
border-style: none;
width: 240px;
height: 150px;
position: absolute;
top: -10px;
left: -10px;
}
}
}
}
}

@ -166,7 +166,6 @@
/deep/ .ant-modal-body {
width: 680px !important;
height: 410px !important;
color: #000 !important;
.common-info-style {
width: 100%;
height: 500px;
@ -189,10 +188,12 @@
display: flex;
align-items: center;
justify-content: flex-end;
color: #000 !important;
}
.content-info-style {
width: 100%;
height: 400px;
color: #000 !important;
.content-scroll-style {
display: flex;
flex-wrap: wrap;

@ -34,7 +34,7 @@
<script>
import CommonBox from '../../secondPages/commonBox.vue';
import {List, Avatar, Spin, Empty} from 'ant-design-vue';
import CommonInfo from '../../../common/commonInfo.vue';
import CommonInfo from '../../../common/centerCommonInfo.vue';
export default{
data(){
return {

@ -34,7 +34,7 @@
import CommonBox from '../../secondPages/commonBox.vue';
import {Carousel, Icon, List, Spin, Empty} from "ant-design-vue";
import ImgPreview from '../../../common/imgPreview.vue';
import CommonInfo from '../../../common/commonInfo.vue';
import CommonInfo from '../../../common/centerCommonInfo.vue';
export default{
data(){
return {

@ -345,7 +345,7 @@
}
</script>
<style lang="scss">
<style scoped lang="scss">
.summary-evaluation-div {
width: 100%;
height: 100%;

@ -143,7 +143,7 @@
import CommonBox from '../../secondPages/commonBox.vue';
import {Carousel, Table, Row, Col, Empty, Spin} from 'ant-design-vue';
import {Carousel3d, Slide} from 'vue-carousel-3d'
import CommonInfo from '../../../common/commonInfo.vue'
import CommonInfo from '../../../common/centerCommonInfo.vue'
export default {
data() {
return {

@ -132,7 +132,7 @@
</template>
<script>
import CommonBox from '../../secondPages/commonBox.vue';
import CommonInfo from '../../../common/commonInfo.vue'
import CommonInfo from '../../../common/centerCommonInfo.vue'
import {Carousel, Timeline, Table, Spin, Row, Col, Collapse, Empty} from 'ant-design-vue';
import {swiper, swiperSlide} from 'vue-awesome-swiper'
import 'swiper/dist/css/swiper.css'

@ -204,7 +204,7 @@
<script>
import CommonBox from '../../secondPages/commonBox.vue';
// import CommonModal from './commomModal.vue'
import CommonInfo from '../../../common/commonInfo.vue'
import CommonInfo from '../../../common/centerCommonInfo.vue'
import {Carousel, Table, Row, Col, Collapse, Spin, Empty} from 'ant-design-vue';
import {swiper, swiperSlide} from 'vue-awesome-swiper'
import 'swiper/dist/css/swiper.css'

@ -26,7 +26,7 @@
* */
import {Spin, Empty} from 'ant-design-vue';
import ImgPreview from '../../../../common/imgPreview.vue';
import CommonInfo from '../../../../common/commonInfo.vue';
import CommonInfo from '../../../../common/centerCommonInfo.vue';
export default{
props: {
infoId: {

@ -98,7 +98,7 @@
import {swiper, swiperSlide} from "vue-awesome-swiper";
import "swiper/dist/css/swiper.css";
import ImgPreview from '../../../common/imgPreview.vue';
import CommonInfo from '../../../common/commonInfo.vue';
import CommonInfo from '../../../common/centerCommonInfo.vue';
import CommonClubInfo from '../../../common/commonClubInfo.vue';
export default{
data(){

@ -61,7 +61,7 @@
import CommonBox from '../secondPages/commonBox.vue';
import Upload from '../../../../components/common/uploader/Upload.vue';
import ImgPreview from '../../common/imgPreview.vue';
import CommonInfo from '../../common/commonInfo.vue';
import CommonInfo from '../../common/centerCommonInfo.vue';
export default{
data(){
return {

@ -36,7 +36,7 @@
import CommonBox from '../secondPages/commonBox.vue';
import {List, Icon, Avatar, Row, Col,Spin} from 'ant-design-vue';
import ImgPreview from '../../common/imgPreview.vue';
import CommonInfo from '../../common/commonInfo.vue';
import CommonInfo from '../../common/centerCommonInfo.vue';
export default{
data(){
return {

@ -33,7 +33,7 @@
import {Carousel, List, Icon, Avatar, Row, Col,Spin} from 'ant-design-vue';
import CommonBox from '../secondPages/commonBox.vue';
import ImgPreview from '../../common/imgPreview.vue';
import CommonInfo from '../../common/commonInfo.vue';
import CommonInfo from '../../common/centerCommonInfo.vue';
export default{
data(){
return {

@ -106,6 +106,8 @@
if (val.path === '/partyCenter/party') {
this.topImgUrl = topImgPartyBuild
this.isPartyCenter = true
} else {
this.isPartyCenter = false
}
},
//
@ -352,7 +354,7 @@
height: 126px;
line-height: 126px;
text-align: center;
color: white;
color: #fff;
.text {
display: inline-block;
font-family: "Microsoft YaHei";
@ -360,8 +362,8 @@
}
}
.party-page-title-style {
font-weight: 550;
color: #FFF799 !important;
font-weight: 500;
}
.page-menu-style {
font-size: 18px;

Loading…
Cancel
Save