102 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
			
		
		
	
	
			102 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
| <template>
 | |
|   <section class="AppLeavingMessage">
 | |
|     <ai-list v-if="!showDetail">
 | |
|       <template slot="title">
 | |
|         <ai-title title="群众留言" :isShowBottomBorder="false" :instance="instance" :isShowArea="true" v-model="areaId" @change="changeArea"></ai-title>
 | |
|       </template>
 | |
|       <template slot="tabs">
 | |
|         <el-tabs v-model="activeName" @tab-click="handleClick" class="tabs-page">
 | |
|           <el-tab-pane v-for="(item, index) in paneList" :key="index" :label="item.label" :name="item.name">
 | |
|             <component :is="comp" ref="list" :instance="instance" :dict="dict" :activeName="activeName" @toDetail="toDetail"
 | |
|                        :areaId="areaId"></component>
 | |
|           </el-tab-pane>
 | |
|         </el-tabs>
 | |
|       </template>
 | |
|     </ai-list>
 | |
|     <template v-if="showDetail">
 | |
|       <message-detail :instance="instance" :dict="dict" :detailId="detailId" @back="showDetail=false"></message-detail>
 | |
|     </template>
 | |
|   </section>
 | |
| </template>
 | |
| 
 | |
| <script>
 | |
|   import {mapState} from "vuex";
 | |
|   import AlreadyList from "./components/alreadyList";
 | |
|   import MessageDetail from "./components/messageDetail";
 | |
| 
 | |
|   export default {
 | |
|     name: 'AppMassesMessage',
 | |
|     label: "群众留言",
 | |
|     props: {
 | |
|       instance: Function,
 | |
|       dict: Object,
 | |
|       permissions: Function,
 | |
|       openim: Function
 | |
|     },
 | |
|     components: {AlreadyList, MessageDetail},
 | |
|     data() {
 | |
|       return {
 | |
|         activeName: '0',
 | |
|         comp:"AlreadyList",
 | |
|         paneList: [
 | |
|           {
 | |
|             label: '待我回复',
 | |
|             name: '0'
 | |
|           },
 | |
|           {
 | |
|             label: '我已回复',
 | |
|             name: '1'
 | |
|           },
 | |
|           {
 | |
|             label: '处理完成',
 | |
|             name: '2'
 | |
|           }
 | |
|         ],
 | |
|         showDetail: false,
 | |
|         detailId: '',
 | |
|         oldActiveName: '',
 | |
|         areaId: '',
 | |
|         hideLevel: ''
 | |
|       }
 | |
|     },
 | |
|     computed: {
 | |
|       ...mapState(['user'])
 | |
|     },
 | |
|     created() {
 | |
|       this.areaId = this.user.info.areaId
 | |
|       this.hideLevel = this.user.info.areaList.length
 | |
|     },
 | |
|     methods: {
 | |
|       changeArea() {
 | |
|         this.$nextTick(() => {
 | |
|           this.$refs.list.getAppLeaveMessage()
 | |
|         })
 | |
|       },
 | |
|       openIM() {
 | |
|         if (this.openim) this.openim()
 | |
|       },
 | |
|       handleClick(tab) {
 | |
|         if (this.oldActiveName == this.activeName) {
 | |
|           return
 | |
|         }
 | |
|         this.activeName = tab.name
 | |
|         this.$nextTick(() => {
 | |
|           this.$refs.list[0].getAppLeaveMessage()
 | |
|           this.$refs.list.search = {}
 | |
|           this.oldActiveName = tab.name
 | |
|         })
 | |
|       },
 | |
|       toDetail(id) {
 | |
|         this.detailId = id
 | |
|         this.showDetail = true
 | |
|       }
 | |
|     }
 | |
|   }
 | |
| </script>
 | |
| <style lang="scss" scoped>
 | |
|   .AppLeavingMessage {
 | |
|     height: 100%;
 | |
|     background-color: #f3f6f9;
 | |
|   }
 | |
| </style>
 |