From d2bc6e096f0806b78ea92d4b90a21d3627d406c7 Mon Sep 17 00:00:00 2001 From: MrShi <1878285526@qq.com> Date: 星期五, 08 三月 2024 18:28:42 +0800 Subject: [PATCH] mrshi --- company/src/views/index.vue | 341 ++++++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 256 insertions(+), 85 deletions(-) diff --git a/company/src/views/index.vue b/company/src/views/index.vue index 8ba76e3..e00d8da 100644 --- a/company/src/views/index.vue +++ b/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,127 +24,191 @@ <div class="home_content_right"> <div class="home_content_right_label" v-if="tabs && tabs.length>0" >浠e姙浜嬮」</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') } ] } @@ -146,38 +216,138 @@ 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:"鎶曚繚浠e姙"}) - } - if(pemissons.includes("business:notice:tax")){ - this.tabs.push( {name:"1",label:"鍙戠エ浠e姙"}) - } - if(pemissons.includes("business:notice:settle")){ - this.tabs.push( {name:"2",label:"鐞嗚禂浠e姙"}) + 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: '鎶曚繚浠e姙' }) + // this.handleCurrentChange0(0); + } + if (pemissons.includes('business:notice:tax') && this.userInfo.type !== 1) { + this.tabs.push({ name: '1', label: '鍙戠エ浠e姙' }) + // 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: { @@ -194,7 +364,7 @@ radius: '50%', data: [ { value: 1048, name: '淇濋殰涓�' }, - { value: 735, name: '涓嶅湪淇�' }, + { value: 735, name: '涓嶅湪淇�' } ], emphasis: { itemStyle: { @@ -205,13 +375,13 @@ } } ] - }; + } - 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: { @@ -241,13 +411,13 @@ 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: { @@ -268,7 +438,7 @@ containLabel: true }, xAxis: { - type: 'value', + type: 'value' // boundaryGap: [0, 0.01] }, yAxis: { @@ -289,9 +459,9 @@ data: [15, 16, 24] } ] - }; + } - option && myChart.setOption(option); + option && myChart.setOption(option) } } } @@ -390,6 +560,7 @@ } .list_item_left { display: flex; + width: 60%; flex-direction: column; span { &:nth-child(1) { @@ -431,7 +602,7 @@ } .home_content_right_page { margin-top: 20px; - position: absolute; + position: relative; bottom: 20px; left: 20px; box-sizing: border-box; -- Gitblit v1.9.3