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>
 |