通知公告弹出详情功能开发

init
gongdi 4 years ago
parent 39a9d20e55
commit 9eecd003f7

@ -5,6 +5,7 @@
<a-list-item slot="renderItem" slot-scope="item"> <a-list-item slot="renderItem" slot-scope="item">
<span :class="'title-span ' + getTitleFlagStyle(item)">{{getTitleText(item)}}</span> <span :class="'title-span ' + getTitleFlagStyle(item)">{{getTitleText(item)}}</span>
<span class="title-span tz-title" <span class="title-span tz-title"
v-on:click="showNoticeDetail(item)"
:title="item.create_time + ' ' + item.notice_title">{{item.create_time + " " + item.notice_title}}</span> :title="item.create_time + ' ' + item.notice_title">{{item.create_time + " " + item.notice_title}}</span>
</a-list-item> </a-list-item>
</a-list> </a-list>
@ -21,11 +22,16 @@
<div v-else class="show-loading-div"> <div v-else class="show-loading-div">
<a-spin/> <a-spin/>
</div> </div>
<FusionModalPanel key="noticePanel" v-bind="modalObject" @callback="modalCallback" :style="{display:'block'}">
<component v-if="modalObject.show" :is="childDom" v-bind="modalObject.params"></component>
</FusionModalPanel>
</div> </div>
</template> </template>
<script> <script>
import interConfig from './interConfig'; import interConfig from './interConfig';
import {List, Icon, Spin} from 'ant-design-vue'; import {List, Icon, Spin} from 'ant-design-vue';
import FusionModalPanel from '../../../../../../../components/common/fusionModal/FusionModalPanel';
export default{ export default{
data(){ data(){
return { return {
@ -35,11 +41,26 @@
totalPage: 0, totalPage: 0,
totolNum: 0, totolNum: 0,
showLoading: true, showLoading: true,
modalObject:{
show:false,
modalTitle:'',
destroyOnClose:true,
OKButton:true,
CancelButton:true,
modalWidth:'50%',
modalClassName:'',
zIndex:100
},
} }
}, },
mounted(){ mounted(){
this.getNoticeList(); this.getNoticeList();
}, },
computed:{
childDom:function () {
return this.modalObject && this.modalObject.url !== ""?() => import(`@/${this.modalObject.url}`):null;
},
},
methods: { methods: {
getNoticeList: function () { getNoticeList: function () {
let param = { let param = {
@ -119,13 +140,26 @@
this.pageNumber++; this.pageNumber++;
} }
this.getNoticeList(); this.getNoticeList();
} },
showNoticeDetail:function (notice) {
notice.appId = "view_notice";
this.modalObject.url = "views/superFusionPlatform/application/PopupOfficeApp.vue";
this.modalObject.params = notice;
this.modalObject.modalTitle = "查看通知";
this.modalObject.OKButton = false;
this.modalObject.show = true;
},
modalCallback:function(){
this.modalObject.show = false;
this.getNoticeList();
},
}, },
components: { components: {
AList: List, AList: List,
AListItem: List.Item, AListItem: List.Item,
AIcon: Icon, AIcon: Icon,
ASpin: Spin ASpin: Spin,
FusionModalPanel
}, },
} }
</script> </script>

@ -14,7 +14,9 @@
<div class="notice-tz-l-title"> <div class="notice-tz-l-title">
<div class="notice-tz-1-title-div"> <div class="notice-tz-1-title-div">
<span :class="'notice-type-flag ' + (getLevelStyle(item))">{{ item.level_name }}</span> <span :class="'notice-type-flag ' + (getLevelStyle(item))">{{ item.level_name }}</span>
<span :title="item.notice_title"> {{ item.notice_title }}</span> <span :title="item.notice_title"
v-on:click="showNoticeDetail(item)"
> {{ item.notice_title }}</span>
</div> </div>
<div class="notice-tz-1-flag-div"> <div class="notice-tz-1-flag-div">
<span :class="parseInt(item.is_read) == 0?'no-readed':''">{{getReadTitleText(item)}}</span> <span :class="parseInt(item.is_read) == 0?'no-readed':''">{{getReadTitleText(item)}}</span>
@ -37,6 +39,9 @@
<div v-else class="show-loading-div"> <div v-else class="show-loading-div">
<a-spin/> <a-spin/>
</div> </div>
<FusionModalPanel key="noticeLargePanel" v-bind="modalObject" @callback="modalCallback" :style="{display:'block'}">
<component v-if="modalObject.show" :is="childDom" v-bind="modalObject.params"></component>
</FusionModalPanel>
</div> </div>
</template> </template>
<script> <script>
@ -44,6 +49,7 @@
import {List, Icon, Spin} from 'ant-design-vue'; import {List, Icon, Spin} from 'ant-design-vue';
import Portrait from '../common/portrait'; import Portrait from '../common/portrait';
import TabComp from '../common/tabComp.vue'; import TabComp from '../common/tabComp.vue';
import FusionModalPanel from '../../../../../../../components/common/fusionModal/FusionModalPanel';
export default{ export default{
data(){ data(){
return { return {
@ -60,11 +66,26 @@
totolNum: 0, totolNum: 0,
showLoading: true, showLoading: true,
tabIndex: 0, tabIndex: 0,
modalObject:{
show:false,
modalTitle:'',
destroyOnClose:true,
OKButton:true,
CancelButton:true,
modalWidth:'50%',
modalClassName:'',
zIndex:100
},
} }
}, },
mounted(){ mounted(){
this.getNoticeList(); this.getNoticeList();
}, },
computed:{
childDom:function () {
return this.modalObject && this.modalObject.url !== ""?() => import(`@/${this.modalObject.url}`):null;
},
},
methods: { methods: {
changeTab: function (param) { changeTab: function (param) {
if (this.tabIndex != param.index) { if (this.tabIndex != param.index) {
@ -229,7 +250,19 @@
break; break;
} }
return levelStyle; return levelStyle;
} },
showNoticeDetail:function (notice) {
notice.appId = "view_notice";
this.modalObject.url = "views/superFusionPlatform/application/PopupOfficeApp.vue";
this.modalObject.params = notice;
this.modalObject.modalTitle = "查看通知";
this.modalObject.OKButton = false;
this.modalObject.show = true;
},
modalCallback:function(){
this.modalObject.show = false;
this.getNoticeList();
},
}, },
components: { components: {
AList: List, AList: List,
@ -237,7 +270,8 @@
AIcon: Icon, AIcon: Icon,
ASpin: Spin, ASpin: Spin,
Portrait, Portrait,
TabComp TabComp,
FusionModalPanel
}, },
} }
</script> </script>

@ -3,7 +3,9 @@
<div v-if="!showLoading"> <div v-if="!showLoading">
<a-list item-layout="horizontal" :data-source="noticeList"> <a-list item-layout="horizontal" :data-source="noticeList">
<a-list-item slot="renderItem" slot-scope="item"> <a-list-item slot="renderItem" slot-scope="item">
<div class="gg-title-span" :title="item.create_time + ' ' + item.notice_title"> <div class="gg-title-span" :title="item.create_time + ' ' + item.notice_title"
v-on:click="showNoticeDetail(item)"
>
{{item.create_time + " " + item.notice_title}} {{item.create_time + " " + item.notice_title}}
</div> </div>
<span v-if="item.view_flag == 0" class="gg-no-readed">NEW</span> <span v-if="item.view_flag == 0" class="gg-no-readed">NEW</span>
@ -22,12 +24,16 @@
<div v-else class="show-loading-div"> <div v-else class="show-loading-div">
<a-spin/> <a-spin/>
</div> </div>
<FusionModalPanel key="publicNoticePanel" v-bind="modalObject" @callback="modalCallback" :style="{display:'block'}">
<component v-if="modalObject.show" :is="childDom" v-bind="modalObject.params"></component>
</FusionModalPanel>
</div> </div>
</template> </template>
<script> <script>
/*公告小号页面*/ /*公告小号页面*/
import interConfig from './interConfig'; import interConfig from './interConfig';
import {List, Icon, Spin} from 'ant-design-vue'; import {List, Icon, Spin} from 'ant-design-vue';
import FusionModalPanel from '../../../../../../../components/common/fusionModal/FusionModalPanel';
export default{ export default{
data(){ data(){
return { return {
@ -37,11 +43,26 @@
totalPage: 0, totalPage: 0,
totolNum: 0, totolNum: 0,
showLoading: true, showLoading: true,
modalObject:{
show:false,
modalTitle:'',
destroyOnClose:true,
OKButton:true,
CancelButton:true,
modalWidth:'50%',
modalClassName:'',
zIndex:100
},
} }
}, },
mounted(){ mounted(){
this.getNoticeList(); this.getNoticeList();
}, },
computed:{
childDom:function () {
return this.modalObject && this.modalObject.url !== ""?() => import(`@/${this.modalObject.url}`):null;
},
},
methods: { methods: {
getNoticeList: function () { getNoticeList: function () {
let param = { let param = {
@ -92,13 +113,26 @@
this.pageNumber++; this.pageNumber++;
} }
this.getNoticeList(); this.getNoticeList();
} },
showNoticeDetail:function (notice) {
notice.appId = "view_public_notice";
this.modalObject.url = "views/superFusionPlatform/application/PopupOfficeApp.vue";
this.modalObject.params = notice;
this.modalObject.modalTitle = "查看公告";
this.modalObject.OKButton = false;
this.modalObject.show = true;
},
modalCallback:function(){
this.modalObject.show = false;
this.getNoticeList();
},
}, },
components: { components: {
AList: List, AList: List,
AListItem: List.Item, AListItem: List.Item,
AIcon: Icon, AIcon: Icon,
ASpin: Spin ASpin: Spin,
FusionModalPanel
}, },
} }
</script> </script>

@ -11,7 +11,9 @@
<span class="org-dep-span create-time">{{item.create_time}}</span> <span class="org-dep-span create-time">{{item.create_time}}</span>
</div> </div>
<div class="notice-gg-l-title"> <div class="notice-gg-l-title">
<div class="notice-gg-1-title-div" :title="item.notice_title">{{ item.notice_title }}</div> <div class="notice-gg-1-title-div" :title="item.notice_title"
v-on:click="showNoticeDetail(item)"
>{{ item.notice_title }}</div>
<div v-if="item.view_flag == 0" class="notice-gg-1-no-readed-flag"><span>NEW</span></div> <div v-if="item.view_flag == 0" class="notice-gg-1-no-readed-flag"><span>NEW</span></div>
</div> </div>
</div> </div>
@ -30,6 +32,9 @@
<div v-else class="show-loading-div"> <div v-else class="show-loading-div">
<a-spin/> <a-spin/>
</div> </div>
<FusionModalPanel key="publicNoticeLargePanel" v-bind="modalObject" @callback="modalCallback" :style="{display:'block'}">
<component v-if="modalObject.show" :is="childDom" v-bind="modalObject.params"></component>
</FusionModalPanel>
</div> </div>
</template> </template>
<script> <script>
@ -37,6 +42,7 @@
import interConfig from './interConfig'; import interConfig from './interConfig';
import {List, Icon, Spin} from 'ant-design-vue'; import {List, Icon, Spin} from 'ant-design-vue';
import Portrait from '../common/portrait'; import Portrait from '../common/portrait';
import FusionModalPanel from '../../../../../../../components/common/fusionModal/FusionModalPanel';
export default{ export default{
data(){ data(){
return { return {
@ -46,11 +52,26 @@
totalPage: 0, totalPage: 0,
totolNum: 0, totolNum: 0,
showLoading: true, showLoading: true,
modalObject:{
show:false,
modalTitle:'',
destroyOnClose:true,
OKButton:true,
CancelButton:true,
modalWidth:'50%',
modalClassName:'',
zIndex:100
},
} }
}, },
mounted(){ mounted(){
this.getNoticeList(); this.getNoticeList();
}, },
computed:{
childDom:function () {
return this.modalObject && this.modalObject.url !== ""?() => import(`@/${this.modalObject.url}`):null;
},
},
methods: { methods: {
getNoticeList: function () { getNoticeList: function () {
let param = { let param = {
@ -102,6 +123,18 @@
} }
this.getNoticeList(); this.getNoticeList();
}, },
showNoticeDetail:function (notice) {
notice.appId = "view_public_notice";
this.modalObject.url = "views/superFusionPlatform/application/PopupOfficeApp.vue";
this.modalObject.params = notice;
this.modalObject.modalTitle = "查看公告";
this.modalObject.OKButton = false;
this.modalObject.show = true;
},
modalCallback:function(){
this.modalObject.show = false;
this.getNoticeList();
},
}, },
components: { components: {
AList: List, AList: List,
@ -109,6 +142,7 @@
AIcon: Icon, AIcon: Icon,
ASpin: Spin, ASpin: Spin,
Portrait, Portrait,
FusionModalPanel
}, },
} }
</script> </script>

Loading…
Cancel
Save