jiangping
2024-02-04 6e41324f84f0cf70871ca05292c5420bdcaaa98c
company/src/views/index.vue
@@ -2,8 +2,14 @@
  <div class="home">
    <div class="home_inlet">
      <div class="home_inlet_label">快捷入口</div>
      <div class="home_inlet_list">
      <div class="home_inlet_list" v-if="userInfo.type==1" >
        <div class="home_inlet_item" v-for="(item, index) in cate" :key="index" @click="jump(item.url)">
          <img :src="item.icon" />
          <span>{{item.name}}</span>
        </div>
      </div>
      <div class="home_inlet_list" v-else >
        <div class="home_inlet_item" v-for="(item, index) in catePlat" :key="index" @click="jump(item.url)">
          <img :src="item.icon" />
          <span>{{item.name}}</span>
        </div>
@@ -18,18 +24,22 @@
      <div class="home_content_right">
        <div class="home_content_right_label" v-if="tabs && tabs.length>0" >代办事项</div>
        <el-tabs v-model="activeName" @tab-click="handleClick" >
          <el-tab-pane v-for="a in tabs" :key="a.path" :label="a.label" :name="a.name"></el-tab-pane>
          <el-tab-pane v-for="a in tabs" :key="a.path" :name="a.name" >
             <span slot="label"> {{a.label }}
                        <el-badge v-if="(a.name==0?totalPage0:(a.name==1?totalPage1:totalPage2))  >0" :value="(a.name==0?totalPage0:(a.name==1?totalPage1:totalPage2)) " class="item"></el-badge>
                    </span>
          </el-tab-pane>
        </el-tabs>
        <div v-if="activeName === '0'"  v-permissions="['business:notice:insurance']" >
          <div class="home_content_right_list">
            <div class="list_item" v-for="(item, index) in 1" :key="index">
            <div class="list_item" v-for="(item, index) in tableData0" :key="index">
              <div class="list_item_left">
                <span>投保申请(待签署)</span>
                <span>保险方案(雇主责任险A)</span>
                <span>{{item.title}}({{ item.typeDetail }})</span>
                <span>{{item.info}}({{item.content}})</span>
              </div>
              <div class="list_item_center">
                <span>安徽平安人力资源有限公司</span>
                <span>提交时间  2023-09-11 00:00:00</span>
                <span>{{item.companyName}}</span>
                <span>提交时间  {{item.createDate}}</span>
              </div>
              <div class="list_item_right">
                <span>查看详情</span>
@@ -38,24 +48,24 @@
          </div>
          <div class="home_content_right_page">
            <el-pagination
                @current-change="handleCurrentChange"
                :current-page="page"
                @current-change="handleCurrentChange0"
                :current-page="page0"
                :page-size="5"
                layout="total, prev, pager, next, jumper"
                :total="0">
                :total="totalPage0">
            </el-pagination>
          </div>
        </div>
        <div v-if="activeName === '1'"  v-permissions="['business:notice:tax']">
          <div class="home_content_right_list">
            <div class="list_item" v-for="(item, index) in 1" :key="index">
            <div class="list_item" v-for="(item, index) in tableData1" :key="index">
              <div class="list_item_left">
                <span>投保申请(待签署1)</span>
                <span>保险方案(雇主责任险A)</span>
                <span>{{item.title}}({{ item.typeDetail }})</span>
                <span>{{item.info}}({{item.content}})</span>
              </div>
              <div class="list_item_center">
                <span>安徽平安人力资源有限公司</span>
                <span>提交时间  2023-09-11 00:00:00</span>
                <span>{{item.companyName}}</span>
                <span>提交时间  {{item.createDate}}</span>
              </div>
              <div class="list_item_right">
                <span>查看详情</span>
@@ -64,24 +74,24 @@
          </div>
          <div class="home_content_right_page">
            <el-pagination
                @current-change="handleCurrentChange"
                :current-page="page"
                @current-change="handleCurrentChange1"
                :current-page="page1"
                :page-size="5"
                layout="total, prev, pager, next, jumper"
                :total="0">
                :total="totalPage1">
            </el-pagination>
          </div>
        </div>
        <div v-if="activeName === '2'"  v-permissions="['business:notice:settle']">
          <div class="home_content_right_list">
            <div class="list_item" v-for="(item, index) in 1" :key="index">
            <div class="list_item" v-for="(item, index) in tableData2" :key="index">
              <div class="list_item_left">
                <span>投保申请(待签署2)</span>
                <span>保险方案(雇主责任险A)</span>
                <span>{{item.title}}({{ item.typeDetail }})</span>
                <span>{{item.info}}({{item.content}})</span>
              </div>
              <div class="list_item_center">
                <span>安徽平安人力资源有限公司</span>
                <span>提交时间  2023-09-11 00:00:00</span>
                <span>{{item.companyName}}</span>
                <span>提交时间  {{item.createDate}}</span>
              </div>
              <div class="list_item_right">
                <span>查看详情</span>
@@ -90,11 +100,11 @@
          </div>
          <div class="home_content_right_page">
            <el-pagination
                @current-change="handleCurrentChange"
                :current-page="page"
                @current-change="handleCurrentChange2"
                :current-page="page2"
                :page-size="5"
                layout="total, prev, pager, next, jumper"
                :total="0">
                :total="totalPage2">
            </el-pagination>
          </div>
        </div>
@@ -106,39 +116,74 @@
<script>
import * as echarts from 'echarts';
import {mapState} from "vuex";
import { fetchList as noticeList } from '@/api/business/notices'
export default {
  name: 'Index',
  data () {
    return {
      activeName: '0',
      tabs:[],
      page: 1,
      table:null,
      page0: 1,
      page1: 1,
      page2: 1,
      totalPage2: 0,
      totalPage1: 0,
      totalPage0: 0,
      tableData0:[],
      tableData1:[],
      tableData2:[],
      cate: [
        {
          name: '投保申请',
          url: '',
          icon: require('../assets/logo.png')
        },
        {
          name: '加保申请',
          url: '',
          icon: require('../assets/logo.png')
        },
        {
          name: '减保申请',
          url: '',
          icon: require('../assets/logo.png')
        },
        {
          name: '合同管理',
          url: '',
          icon: require('../assets/logo.png')
          url: '/enterprise/insuranceApply',
          icon: require('../assets/icons/company/apply.png')
        },
        {
          name: '提交报案',
          url: '',
          icon: require('../assets/logo.png')
          url: '/business/settleClaims',
          icon: require('../assets/icons/company/settle.png')
        },
        {
          name: '添加派遣单位',
          url: '/enterprise/dispatchUnit',
          icon: require('../assets/icons/company/dipatch_unit.png')
        },
        {
          name: '直保开票',
          url: '/enterprise/directInvoicing',
          icon: require('../assets/icons/company/tax.png')
        },
        {
          name: '委托保开票',
          url: '/enterprise/entrustedInvoicing',
          icon: require('../assets/icons/company/tax.png')
        }
      ],
      catePlat: [
        {
          name: '投保审核',
          url: '/business/insuranceApply',
          icon: require('../assets/icons/plat/apply_check.png')
        },
        {
          name: '加/减保审核',
          url: '/business/applyChange',
          icon: require('../assets/icons/plat/change_apply_check.png')
        },
        {
          name: '理赔服务',
          url: '/business/settleClaims',
          icon: require('../assets/icons/plat/settle_check.png')
        },
        {
          name: '发票管理',
          url: '/business/taxes',
          icon: require('../assets/icons/plat/tax_check.png')
        },
        {
          name: '新增企业',
          url: '/business/company',
          icon: require('../assets/icons/plat/company_add.png')
        }
      ]
    }
@@ -153,23 +198,66 @@
    this.initPanel()
  },
  methods: {
    getNoticeList(type,page){
      noticeList({
            page: page,
            capacity: 5,
            model: { queryType:type},
            sorts: []
          })
          .then(response => {
            if(type ===0){
              this.tableData0 = response.records
              this.totalPage0 = response.total
            }
            if(type ===1){
              this.tableData1 = response.records
              this.totalPage1 = response.total
            } if(type ===2){
              this.tableData2 = response.records
              this.totalPage2 = response.total
            }
          })
          .catch(e => {
            this.$tip.apiFailed(e)
          })
    },
    initPanel(){
      var pemissons = this.userInfo.permissions;
      var pemissons = this.userInfo.permissions
      if(pemissons.includes("business:notice:insurance")){
        this.tabs.push( {name:"0",label:"投保代办"})
        this.tabs.push( {name:"0",label:"投保代办" })
      }
      if(pemissons.includes("business:notice:tax")){
        this.tabs.push( {name:"1",label:"发票代办"})
        this.tabs.push( {name:"1",label:"发票代办" })
      }
      if(pemissons.includes("business:notice:settle")){
        this.tabs.push( {name:"2",label:"理赔代办"})
        this.tabs.push( {name:"2",label:"理赔代办" })
      }
      if(pemissons.includes("business:notice:insurance")){
        this.getNoticeList(0,this.page0 )
      }
      if(pemissons.includes("business:notice:tax")){
        this.getNoticeList(1,this.page1 )
      }
      if(pemissons.includes("business:notice:settle")){
        this.getNoticeList(2,this.page2 )
      }
    },
    handleClick(e) {
      this.activeName = e.name
    },
    handleCurrentChange(page) {
      this.page = page
    handleCurrentChange0(page) {
      this.page0 = page
      this.getNoticeList(0,this.page0 )
    },
    handleCurrentChange1(page) {
      this.page1 = page
      this.getNoticeList(1,this.page1 )
    },
    handleCurrentChange2(page) {
      this.page2 = page
      this.getNoticeList(2,this.page2)
    },
    jump(url) {
      if (!url) return;
@@ -390,6 +478,7 @@
          }
          .list_item_left {
            display: flex;
            width: 60%;
            flex-direction: column;
            span {
              &:nth-child(1) {