| | |
| | | <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> |
| | |
| | | <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" title="点击刷新"> {{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> |
| | | <span @click="detail(item)">查看</span> |
| | | </div> |
| | | </div> |
| | | </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> |
| | | <span @click="detail(item)">查看</span> |
| | | </div> |
| | | </div> |
| | | </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> |
| | | <span @click="detail(item)">查看</span> |
| | | </div> |
| | | </div> |
| | | </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> |
| | | </div> |
| | | </div> |
| | | <OperaInsuranceApplyWindow ref="operaInsuranceApplyWindow" @success="handleCurrentChange0()"/> |
| | | <dispatchUnitDetailsPlat ref="dispatchUnitDetailsPlat" @success="handleCurrentChange0()"/> |
| | | <OperaSettleClaimsWindow ref="operaSettleClaimsWindow" @success="handleCurrentChange2()"/> |
| | | <OperaApplyChangeUnitDetailWindow ref="operaApplyChangeUnitDetailWindow" @success="handleCurrentChange0()"/> |
| | | <OperaApplyChangeDetailWindow ref="operaApplyChangeDetailWindow" @success="handleCurrentChange0()"/> |
| | | <OperaTaxesWindow ref="OperaTaxesWindow" @success="handleCurrentChange1()"/> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import * as echarts from 'echarts'; |
| | | import {mapState} from "vuex"; |
| | | import * as echarts from 'echarts' |
| | | import { mapState } from 'vuex' |
| | | import OperaInsuranceApplyWindow from '@/components/business/OperaInsuranceApplyWindow' |
| | | import dispatchUnitDetailsPlat from '@/components/business/dispatchUnitDetailsPlat' |
| | | import OperaApplyChangeUnitDetailWindow from '@/components/business/OperaApplyChangeUnitDetailWindow' |
| | | import OperaSettleClaimsWindow from '@/components/business/OperaSettleClaimsWindow' |
| | | import OperaApplyChangeDetailWindow from '@/components/business/OperaApplyChangeDetailWindow' |
| | | import OperaTaxesWindow from '@/components/business/OperaTaxesWindow' |
| | | import { fetchList as noticeList, deleById } from '@/api/business/notices' |
| | | export default { |
| | | components: { |
| | | OperaInsuranceApplyWindow, |
| | | dispatchUnitDetailsPlat, |
| | | OperaTaxesWindow, |
| | | OperaSettleClaimsWindow, |
| | | OperaApplyChangeDetailWindow, |
| | | OperaApplyChangeUnitDetailWindow |
| | | }, |
| | | name: 'Index', |
| | | data () { |
| | | return { |
| | | activeName: '0', |
| | | tabs:[], |
| | | page: 1, |
| | | table:null, |
| | | tabs: [], |
| | | 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: '/business/member', |
| | | icon: require('../assets/icons/company/image.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') |
| | | } |
| | | ] |
| | | } |
| | |
| | | computed: { |
| | | ...mapState(['userInfo']) |
| | | }, |
| | | mounted() { |
| | | mounted () { |
| | | this.setPicture1() |
| | | this.setPicture2() |
| | | this.setPicture3() |
| | | this.initPanel() |
| | | this.setLoadTimer() |
| | | }, |
| | | methods: { |
| | | initPanel(){ |
| | | var pemissons = this.userInfo.permissions; |
| | | if(pemissons.includes("business:notice:insurance")){ |
| | | this.tabs.push( {name:"0",label:"投保代办"}) |
| | | } |
| | | if(pemissons.includes("business:notice:tax")){ |
| | | this.tabs.push( {name:"1",label:"发票代办"}) |
| | | } |
| | | if(pemissons.includes("business:notice:settle")){ |
| | | this.tabs.push( {name:"2",label:"理赔代办"}) |
| | | detail (obj) { |
| | | if (obj.objType === 0) { |
| | | this.$refs.operaInsuranceApplyWindow.open('投保申请详情', { id: obj.objId }) |
| | | } else if (obj.objType === 1) { |
| | | this.$refs.operaApplyChangeDetailWindow.open('加减保详情', { id: obj.objId, applyId: obj.param1 }) |
| | | } else if (obj.objType === 2) { |
| | | this.$refs.operaApplyChangeUnitDetailWindow.open('更换派遣单位申请详情', { id: obj.objId, applyId: obj.param1 }) |
| | | } else if (obj.objType === 3) { |
| | | this.$refs.dispatchUnitDetailsPlat.open('派遣单详情', { id: obj.objId }) |
| | | } else if (obj.objType === 4) { |
| | | this.$refs.OperaTaxesWindow.open('开票申请详情', { id: obj.objId }) |
| | | } else if (obj.objType === 5) { |
| | | deleById(obj.id) |
| | | .then(res => { |
| | | this.tableData2.forEach((item, index) => { |
| | | if (item.id === obj.id) { |
| | | this.tableData2.splice(index, 1) |
| | | this.totalPage2 = this.totalPage2 - 1 |
| | | } |
| | | }) |
| | | this.$refs.operaSettleClaimsWindow.open('理赔详情', { id: obj.objId }) |
| | | }) |
| | | } |
| | | }, |
| | | handleClick(e) { |
| | | setLoadTimer () { |
| | | var that = this |
| | | this.initLoadData() |
| | | if (window.timer) { |
| | | clearInterval(window.timer) |
| | | } |
| | | window.timer = setInterval(() => { |
| | | that.initLoadData() |
| | | }, 60000) |
| | | }, |
| | | initLoadData(){ |
| | | var pemissons = this.userInfo.permissions |
| | | if (pemissons.includes('business:notice:insurance')) { |
| | | this.handleCurrentChange0(0) |
| | | } |
| | | if (pemissons.includes('business:notice:tax')) { |
| | | this.handleCurrentChange1(0) |
| | | } |
| | | if (pemissons.includes('business:notice:settle')) { |
| | | this.handleCurrentChange2(0) |
| | | } |
| | | }, |
| | | 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 |
| | | |
| | | if (pemissons.includes('business:notice:insurance')) { |
| | | this.tabs.push({ name: '0', label: '投保代办' }) |
| | | // this.handleCurrentChange0(0); |
| | | } |
| | | if (pemissons.includes('business:notice:tax') && this.userInfo.type !== 1) { |
| | | this.tabs.push({ name: '1', label: '发票代办' }) |
| | | // this.handleCurrentChange1(0); |
| | | } |
| | | if (pemissons.includes('business:notice:settle')) { |
| | | this.tabs.push({ name: '2', label: '理赔提醒' }) |
| | | // this.handleCurrentChange2(0); |
| | | } |
| | | /* 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 |
| | | if (this.activeName === '0') { |
| | | this.handleCurrentChange0(0) |
| | | } else if (this.activeName === '1') { |
| | | this.handleCurrentChange1(0) |
| | | } else if (this.activeName === '2') { |
| | | this.handleCurrentChange2(0) |
| | | } |
| | | }, |
| | | handleCurrentChange(page) { |
| | | this.page = page |
| | | handleCurrentChange0 (page) { |
| | | this.page0 = page |
| | | this.getNoticeList(0, this.page0) |
| | | }, |
| | | jump(url) { |
| | | if (!url) return; |
| | | this.$router.push({ path: url }); |
| | | 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 |
| | | this.$router.push({ path: url }) |
| | | }, |
| | | setPicture1 () { |
| | | let chartDom = this.$refs.picture1; |
| | | let myChart = echarts.init(chartDom); |
| | | const chartDom = this.$refs.picture1 |
| | | const myChart = echarts.init(chartDom) |
| | | let option |
| | | option = { |
| | | title: { |
| | |
| | | radius: '50%', |
| | | data: [ |
| | | { value: 1048, name: '保障中' }, |
| | | { value: 735, name: '不在保' }, |
| | | { value: 735, name: '不在保' } |
| | | ], |
| | | emphasis: { |
| | | itemStyle: { |
| | |
| | | } |
| | | } |
| | | ] |
| | | }; |
| | | } |
| | | |
| | | option && myChart.setOption(option); |
| | | option && myChart.setOption(option) |
| | | }, |
| | | setPicture2 () { |
| | | let chartDom = this.$refs.picture2; |
| | | let myChart = echarts.init(chartDom); |
| | | const chartDom = this.$refs.picture2 |
| | | const myChart = echarts.init(chartDom) |
| | | let option |
| | | option = { |
| | | title: { |
| | |
| | | type: 'line' |
| | | } |
| | | ] |
| | | }; |
| | | } |
| | | |
| | | option && myChart.setOption(option); |
| | | option && myChart.setOption(option) |
| | | }, |
| | | setPicture3 () { |
| | | let chartDom = this.$refs.picture3; |
| | | let myChart = echarts.init(chartDom); |
| | | const chartDom = this.$refs.picture3 |
| | | const myChart = echarts.init(chartDom) |
| | | let option |
| | | option = { |
| | | title: { |
| | |
| | | containLabel: true |
| | | }, |
| | | xAxis: { |
| | | type: 'value', |
| | | type: 'value' |
| | | // boundaryGap: [0, 0.01] |
| | | }, |
| | | yAxis: { |
| | |
| | | data: [15, 16, 24] |
| | | } |
| | | ] |
| | | }; |
| | | } |
| | | |
| | | option && myChart.setOption(option); |
| | | option && myChart.setOption(option) |
| | | } |
| | | } |
| | | } |
| | |
| | | } |
| | | .list_item_left { |
| | | display: flex; |
| | | width: 60%; |
| | | flex-direction: column; |
| | | span { |
| | | &:nth-child(1) { |
| | |
| | | } |
| | | .home_content_right_page { |
| | | margin-top: 20px; |
| | | position: absolute; |
| | | position: relative; |
| | | bottom: 20px; |
| | | left: 20px; |
| | | box-sizing: border-box; |