| | |
| | | # æ¥å£åç¼ |
| | | VUE_APP_API_PREFIX = '/yyb_admin_api' |
| | | VUE_APP_SYSTEM_TITLE = 'äºæä¿å®¢æ·æå¡ç³»ç»-å¹³å°ç«¯' |
| | | VUE_APP_CONTEXT_PATH = '/yyb_admin' |
| | | VUE_APP_CONTEXT_PATH = '/' |
| | | |
| | | VUE_APP_COOKIE_NAME='dmplat-auth-token' |
| | | |
| | | # æµè¯æ |
| | | # VUE_APP_API = 'https://test.doumee.cn:8088/yyb_admin_api/' |
| | | VUE_APP_API = 'https://www.yyb.red/yyb_admin_api/' |
| | | #VUE_APP_API = 'https://www.yyb.red/yyb_admin_api/' |
| | | |
| | | # 任康 |
| | | # VUE_APP_API = 'http://192.168.0.129:10030/' |
| | | VUE_APP_API = 'http://192.168.0.132:10030/' |
| | | |
| | | # VUE_APP_API = 'http://192.168.0.131:10031/' |
| | |
| | | |
| | | # VUE_APP_API = 'http://192.168.0.138:10031/' |
| | | |
| | | VUE_APP_API = 'http://192.168.0.129:10031/' |
| | | VUE_APP_API = 'http://192.168.0.132:10031/' |
| | | |
| | | # VUE_APP_API = 'https://www.yyb.red/yyb_web_api/' |
| | |
| | | export function getDetail (id) { |
| | | return request.get(`business/insuranceApply/${id}`) |
| | | } |
| | | export function getAddReduceData () { |
| | | return request.get('business/insuranceApply/getAddReduceData') |
| | | } |
| | | export function getInsuranceNum () { |
| | | return request.get('business/insuranceApply/getInsuranceNum') |
| | | } |
| | | export function getSettleClaimsMoney () { |
| | | return request.get('business/insuranceApply/getSettleClaimsMoney') |
| | | } |
| | | export function getInsuranceMemberData () { |
| | | return request.get('business/insuranceApply/getInsuranceMemberData') |
| | | } |
| | | export function getInsuranceApplyStatusData () { |
| | | return request.get('business/insuranceApply/getInsuranceApplyStatusData') |
| | | } |
| | | export function getInsuranceApplyDataVO () { |
| | | return request.get('business/insuranceApply/getInsuranceApplyDataVO') |
| | | } |
| | | export function getInsuranceApplyReportDataVO () { |
| | | return request.get('business/insuranceApply/getInsuranceApplyReportDataVO') |
| | | } |
| | | export function getChangeDetail (id) { |
| | | return request.get(`business/applyChange/${id}`) |
| | | } |
| | |
| | | return request.get(`business/insuranceApply/getSignLink/${id}`) |
| | | } |
| | | export function getSignWTBTBDLink (data) { |
| | | return request.post(`business/insuranceApply/getSignWTBTBDLink`,data) |
| | | return request.post('business/insuranceApply/getSignWTBTBDLink', data) |
| | | } |
| | | export function getSignTBQRSLink (data) { |
| | | // return request.get('/business/insuranceApply/signTBQRSLink') |
| | |
| | | <i class="el-icon-plus"></i> |
| | | </div> |
| | | </div> |
| | | <div style="display: block;"> |
| | | <input type="file" ref="file" :accept="accept" @change="getFile" /> |
| | | <progress id="progressBar" value="0" max="100"></progress> |
| | | <span id="status">0%</span> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | }, |
| | | getFile (e) { |
| | | if (e.target && e.target.files.length > 0) { |
| | | const loading = this.$loading({ |
| | | lock: true, |
| | | text: 'ä¸ä¼ ä¸ï¼è¯·çå¾
', |
| | | spinner: 'el-icon-loading', |
| | | background: 'rgba(0, 0, 0, 0.7)' |
| | | }); |
| | | this.$emit('loading') |
| | | const config = { |
| | | onUploadProgress: function(progressEvent) { |
| | | console.log(progressEvent) |
| | | const percentCompleted = Math.round((progressEvent.loaded * 100) / progressEvent.total); |
| | | document.getElementById('progressBar').value = percentCompleted; |
| | | document.getElementById('status').textContent = percentCompleted + '%'; |
| | | }, |
| | | headers: { |
| | | 'Content-Type': 'multipart/form-data' |
| | | } |
| | | } |
| | | |
| | | // const loading = this.$loading({ |
| | | // lock: true, |
| | | // text: 'ä¸ä¼ ä¸ï¼è¯·çå¾
', |
| | | // spinner: 'el-icon-loading', |
| | | // background: 'rgba(0, 0, 0, 0.7)' |
| | | // }); |
| | | // this.$emit('loading') |
| | | const formdate = new FormData() |
| | | formdate.append('file', e.target.files[0]) |
| | | formdate.append('folder', this.folder) |
| | | axios.post(this.uploadImgUrl, formdate) |
| | | axios.post(this.uploadImgUrl, formdate,config) |
| | | .then(res => { |
| | | this.$emit('success', res.data.data) |
| | | }) |
| | |
| | | this.$message.error(e) |
| | | }) |
| | | .finally(() => { |
| | | loading.close(); |
| | | // loading.close(); |
| | | this.$refs.file.value = null |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="box"> |
| | | <div class="box_shua"> |
| | | <el-button icon="el-icon-refresh" type="primary" @click="getChatData(),getData()">å·æ°æ°æ®</el-button> |
| | | </div> |
| | | <div class="box_head"> |
| | | <div class="box_head_info"> |
| | | <i class="el-icon-info"></i> |
| | | <span>å±ç¤ºå½åç³»ç»åè®¡æ»æ°ï¼æ¯å¤©æ´æ°æ°æ®</span> |
| | | </div> |
| | | <div class="box_head_list" > |
| | | <div class="box_head_list_item"> |
| | | <div class="box_head_list_item_top"> |
| | | <span>累计æä¿ä¼ä¸</span> |
| | | <span>æ¬æ +{{info.monthAddInsuranceCompanyNum || 0}}</span> |
| | | </div> |
| | | <div class="box_head_list_item_bottom">{{info.insuranceCompanyNum || 0}}</div> |
| | | </div> |
| | | <div class="box_head_list_item"> |
| | | <div class="box_head_list_item_top"> |
| | | <span>累计ææä¿å</span> |
| | | <span>æ¬æ +{{info.monthAddInsuranceNum || 0 }}</span> |
| | | </div> |
| | | <div class="box_head_list_item_bottom">{{info.insuranceNum || 0}}</div> |
| | | </div> |
| | | <div class="box_head_list_item"> |
| | | <div class="box_head_list_item_top"> |
| | | <span>累计ä¿é人å</span> |
| | | <span>æ¬æ +{{info.monthAddMemberNum || 0}}</span> |
| | | </div> |
| | | <div class="box_head_list_item_bottom">{{info.memberNum || 0}}</div> |
| | | </div> |
| | | <div class="box_head_list_item"> |
| | | <div class="box_head_list_item_top"> |
| | | <span>å计æ»è´¹ç¨(å
)</span> |
| | | <span>æ¬æ +Â¥{{info.monthAddTotalFee || 0}}</span> |
| | | </div> |
| | | <div class="box_head_list_item_bottom">Â¥{{info.totalFee || 0}}</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="box_content"> |
| | | <div class="box_content_left"> |
| | | <div class="box_content_left_title">å½åå¨ä¿æ°æ®</div> |
| | | <div class="box_content_left_list"> |
| | | <div class="box_content_left_list_item" :style="{ backgroundColor: item.title!= ''? item.backgroundColor :'#fff'}" v-for="(item, index) in list" :key="index"> |
| | | <div class="box_content_left_list_item_top" v-if="item.title != ''" > |
| | | <span>{{item.title}}</span> |
| | | </div> |
| | | <div class="box_content_left_list_item_bottom" v-if="item.title!= ''"> |
| | | <span>{{item.num}}</span> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="box_chart" > |
| | | <div class="box_chart_item" style="height: 400px"> |
| | | <div class="box_content_right_title"> |
| | | <span>ç´ä¿åå§æä¿å æ¯</span> |
| | | </div> |
| | | <div class="box_chart_item_tu" id="tu1" ></div> |
| | | </div> |
| | | <div class="box_chart_item" style="height: 400px"> |
| | | <div class="box_content_right_title"> |
| | | <span>æ¯æå åä¿äººæ°</span> |
| | | </div> |
| | | <div class="box_chart_item_tu" id="tu2"></div> |
| | | </div> |
| | | </div> |
| | | <div class="box_chart"> |
| | | <div class="box_chart_item" style=" width: 49.5%;height: 600px;"> |
| | | <div class="box_content_right_title" > |
| | | <span>累计ä¼ä¸æä¿éé¢top10</span> |
| | | </div> |
| | | <div class="box_chart_item_tu" id="tu3"></div> |
| | | </div> |
| | | <div class="box_chart_item" style=" width: 49.5%;height: 600px;"> |
| | | <div class="box_content_right_title"> |
| | | <span>çé¨ä¿é©æ¹æ¡</span> |
| | | </div> |
| | | <div class="box_chart_item_tu" > |
| | | <el-table |
| | | v-loading="isWorking" |
| | | :data="dataList" |
| | | stripe |
| | | > |
| | | <el-table-column label="æå" width="80px"> |
| | | <template slot-scope="scope"> |
| | | <span>{{scope.$index + 1}}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="name" label="åæ¹æ¡åç§°" min-width="100px"> |
| | | <template slot-scope="{row}" >{{row.solutions.name||''}}</template> |
| | | </el-table-column> |
| | | <el-table-column prop="solutionBaseName" label="æå±ä¸»æ¹æ¡" min-width="100px"> |
| | | <template slot-scope="{row}">{{row.solutions.solutionBaseName}}</template> |
| | | </el-table-column> |
| | | <el-table-column prop="price" label="æ¹æ¡è´¹ç¨" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <span v-if="row.solutions.timeUnit == 3"> {{row.solutions.price ||0}}/人/年</span> |
| | | <span v-else-if="row.solutions.timeUnit == 2"> {{row.solutions.price ||0}}/人/æ</span> |
| | | <span v-else-if="row.solutions.timeUnit == 1"> {{row.solutions.price ||0}}/人/åæ</span> |
| | | <span v-else> {{row.solutions.fee ||0}}/人/天</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="dataSecond" label="ä½¿ç¨æ°é" min-width="100px"></el-table-column> |
| | | </el-table> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import * as echarts from 'echarts' |
| | | import 'echarts-wordcloud' |
| | | import { getInsuranceApplyDataVO, getInsuranceApplyReportDataVO } from '@/api/business/insuranceApply' |
| | | export default { |
| | | name: 'dataBoard', |
| | | data () { |
| | | return { |
| | | isWorking: false, |
| | | dataList: [], |
| | | dateType: 0, |
| | | list: [ |
| | | { |
| | | title: 'å¨ä¿ä¼ä¸æ°', |
| | | num: 0, |
| | | percentage: 0, |
| | | color: '#EF4444', |
| | | backgroundColor: '#fdf6ec' |
| | | }, |
| | | { |
| | | title: 'å¨ä¿ä¿åæ°', |
| | | num: 0, |
| | | percentage: 0, |
| | | color: '#368157', |
| | | backgroundColor: '#fcfbe7' |
| | | }, |
| | | { |
| | | title: 'å¨ä¿äººæ°', |
| | | num: 0, |
| | | percentage: 0, |
| | | color: '#CA8A04', |
| | | backgroundColor: '#d6f7e5' |
| | | }, |
| | | { |
| | | title: '', |
| | | num: 0, |
| | | color: '#9333EA', |
| | | backgroundColor: '#FAF5FF' |
| | | } |
| | | ], |
| | | info: {}, |
| | | tu1Data: [{ name: 'ç´ä¿', value: 0 }, { name: 'å§æä¿', value: 0 }], |
| | | chatData: null |
| | | } |
| | | }, |
| | | created () { |
| | | this.$nextTick(() => { |
| | | this.setChartTu1(this.tu1Data) |
| | | this.setChartTu2(['1æ', '2æ', '3æ', '4æ', '5æ', '6æ', '7æ', '8æ', '9æ', '10æ', '11æ', '12æ'] |
| | | , [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] |
| | | , [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]) |
| | | this.setChartTu3([] |
| | | , []) |
| | | // this.setChartTu4([],[]) |
| | | }) |
| | | this.getInsuranceApplyReportDataVO() |
| | | this.getInsuranceApplyDataVO() |
| | | }, |
| | | methods: { |
| | | getInsuranceApplyDataVO () { |
| | | getInsuranceApplyDataVO() |
| | | .then(res => { |
| | | this.info = res |
| | | this.info.monthAddTotalFee = (res.monthAddTotalFee || 0).toFixed(2) |
| | | this.info.totalFee = (res.totalFee || 0).toFixed(2) |
| | | this.list[0].num = this.info.useCompanyNum || 0 |
| | | this.list[1].num = this.info.useInsuranceNum || 0 |
| | | this.list[2].num = this.info.useMemberNum || 0 |
| | | this.tu1Data[0].value = this.info.zbInsuranceNum || 0 |
| | | this.tu1Data[1].value = this.info.wtbInsuranceNum || 0 |
| | | this.setChartTu1(this.tu1Data) |
| | | console.log(res) |
| | | }) |
| | | }, |
| | | getInsuranceApplyReportDataVO () { |
| | | getInsuranceApplyReportDataVO() |
| | | .then(res => { |
| | | this.initChartData2(res) |
| | | this.initChartData3(res) |
| | | this.initChartData4(res) |
| | | }) |
| | | }, |
| | | initChartData4(res){ |
| | | this.dataList = res.hotSolutionList || [] |
| | | }, |
| | | initChartData2 (res) { |
| | | var monthAddReduceList = res.monthAddReduceList || [] |
| | | if (monthAddReduceList.length > 0) { |
| | | var data1 = [] |
| | | var data2 = [] |
| | | var data3 = [] |
| | | monthAddReduceList.forEach(item => { |
| | | data1.push(item.dataFirst) |
| | | data2.push(item.dataSecond) |
| | | data3.push(item.dataThird) |
| | | }) |
| | | this.setChartTu2(data1, data2, data3) |
| | | } |
| | | }, |
| | | initChartData3 (res) { |
| | | var companyTopFeeList = res.companyTopFeeList || [] |
| | | if (companyTopFeeList.length > 0) { |
| | | var data1 = [] |
| | | var data2 = [] |
| | | companyTopFeeList.forEach(item => { |
| | | data1.push(item.dataFirst) |
| | | data2.push(item.dataSecond) |
| | | }) |
| | | this.setChartTu3(data1, data2) |
| | | } |
| | | }, |
| | | changeDataType (type) { |
| | | this.dateType = type |
| | | }, |
| | | setChartTu1 (data) { |
| | | const chartDom = document.getElementById('tu1') |
| | | const myChart = echarts.init(chartDom) |
| | | const option = { |
| | | tooltip: { |
| | | trigger: 'item' |
| | | }, |
| | | label: { |
| | | alignTo: 'edge', |
| | | formatter: '{b}: ({d}%)', |
| | | minMargin: 5, |
| | | edgeDistance: 10, |
| | | lineHeight: 15, |
| | | rich: { |
| | | time: { |
| | | fontSize: 10, |
| | | color: '#999' |
| | | } |
| | | } |
| | | }, |
| | | labelLine: { |
| | | length: 15, |
| | | length2: 0, |
| | | maxSurfaceAngle: 80 |
| | | }, |
| | | legend: { |
| | | top: '5%', |
| | | left: 'center' |
| | | }, |
| | | series: [ |
| | | { |
| | | name: 'ç´ä¿åå§æä¿å æ¯', |
| | | type: 'pie', |
| | | radius: ['40%', '70%'], |
| | | avoidLabelOverlap: false, |
| | | // label: { |
| | | // show: false, |
| | | // position: 'center' |
| | | // }, |
| | | // emphasis: { |
| | | // label: { |
| | | // show: true, |
| | | // fontSize: 40, |
| | | // fontWeight: 'bold' |
| | | // } |
| | | // }, |
| | | // labelLine: { |
| | | // show: true |
| | | // }, |
| | | data: data |
| | | } |
| | | ] |
| | | } |
| | | option && myChart.setOption(option) |
| | | window.addEventListener('resize', function () { // æ§è¡ |
| | | myChart.resize() |
| | | }) |
| | | }, |
| | | setChartTu2 (xData, yData, yData2) { |
| | | const chartDom = document.getElementById('tu2') |
| | | const myChart = echarts.init(chartDom) |
| | | const option = this.getBarOption2(xData, yData, yData2, 'rgba(207,58,24,0.83)') |
| | | option && myChart.setOption(option) |
| | | window.addEventListener('resize', function () { // æ§è¡ |
| | | myChart.resize() |
| | | }) |
| | | }, |
| | | setChartTu3 (dataX, dataY) { |
| | | var chartDom = document.getElementById('tu3') |
| | | var myChart = echarts.init(chartDom) |
| | | var option = { |
| | | grid: { |
| | | left: '3%', |
| | | right: '4%', |
| | | bottom: '3%', |
| | | containLabel: true |
| | | }, |
| | | tooltip: { |
| | | trigger: 'axis', |
| | | axisPointer: { |
| | | type: 'shadow' |
| | | } |
| | | }, |
| | | xAxis: { |
| | | // position: 'top', |
| | | type: 'value' |
| | | // boundaryGap: [0, 0.01] |
| | | }, |
| | | yAxis: { |
| | | type: 'category', |
| | | data: dataX, |
| | | inverse: true |
| | | }, |
| | | series: [ |
| | | { |
| | | name: 'éé¢(å
)', |
| | | type: 'bar', |
| | | itemStyle: { |
| | | color: '#f6d68d' |
| | | }, |
| | | data: dataY |
| | | } |
| | | ] |
| | | } |
| | | option && myChart.setOption(option) |
| | | window.addEventListener('resize', function () { // æ§è¡ |
| | | myChart.resize() |
| | | }) |
| | | }, |
| | | getBarOption2 (xd, yd, yd1, color) { |
| | | const option = { |
| | | grid: { |
| | | left: '3%', |
| | | right: '3%', |
| | | top: '10%', |
| | | bottom: '0%', |
| | | containLabel: true |
| | | }, |
| | | tooltip: { |
| | | trigger: 'axis', |
| | | axisPointer: { |
| | | type: 'shadow' |
| | | } |
| | | }, |
| | | legend: {}, |
| | | xAxis: { |
| | | type: 'category', |
| | | // boundaryGap: false, |
| | | data: xd |
| | | }, |
| | | yAxis: { |
| | | type: 'value' |
| | | }, |
| | | series: [ |
| | | { |
| | | data: yd, |
| | | type: 'bar', |
| | | areaStyle: { |
| | | opacity: 0.5, |
| | | color: color || '#f07e6f' |
| | | }, |
| | | lineStyle: { |
| | | color: color || '#f07e6f' |
| | | } |
| | | }, |
| | | { |
| | | data: yd1, |
| | | type: 'bar', |
| | | areaStyle: { |
| | | opacity: 0.5, |
| | | color: color || '#f07e6f' |
| | | }, |
| | | lineStyle: { |
| | | color: color || '#f07e6f' |
| | | } |
| | | } |
| | | ] |
| | | } |
| | | return option |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .box { |
| | | width: 100%; |
| | | padding: 0 10px 30px 10px; |
| | | |
| | | box-sizing: border-box; |
| | | .box_shua { |
| | | width: 100%; |
| | | display: flex; |
| | | justify-content: end; |
| | | margin-bottom: 10px; |
| | | } |
| | | .box_head { |
| | | width: 100%; |
| | | padding: 0 15px 15px 15px; |
| | | box-sizing: border-box; |
| | | background-color: #ffffff; |
| | | border-radius: 20px; |
| | | display: flex; |
| | | flex-direction: column; |
| | | box-shadow: 0 2px 6px 0 rgba(206,206,206,0.21); |
| | | .box_head_info { |
| | | width: 100%; |
| | | display: flex; |
| | | align-items: center; |
| | | margin: 8px 0; |
| | | span { |
| | | color: rgba(16,16,16,1); |
| | | font-size: 14px; |
| | | margin-left: 5px; |
| | | } |
| | | } |
| | | .box_head_list { |
| | | width: 100%; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: space-between; |
| | | .box_head_list_item { |
| | | width: 24%; |
| | | height: 100px; |
| | | padding: 15px; |
| | | box-sizing: border-box; |
| | | background-color: rgba(239,246,255,1); |
| | | border-radius: 20px; |
| | | display: flex; |
| | | flex-direction: column; |
| | | justify-content: space-between; |
| | | .box_head_list_item_top { |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: space-between; |
| | | span { |
| | | &:nth-child(1) { |
| | | color: rgba(154,154,154,1); |
| | | font-size: 14px; |
| | | } |
| | | &:nth-child(2) { |
| | | color: rgba(255,58,48,1); |
| | | font-size: 14px; |
| | | } |
| | | } |
| | | } |
| | | .box_head_list_item_bottom { |
| | | color: rgba(16,16,16,1); |
| | | font-size: 22px; |
| | | font-weight: bold; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | .box_chart { |
| | | width: 100%; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: space-between; |
| | | margin-top: 15px; |
| | | .datetype{ |
| | | cursor: pointer; |
| | | color: #8c939d; |
| | | margin-right: 10px; |
| | | padding: 2px 10px; |
| | | font-size: 14px; |
| | | border: solid 1px #8c939d; |
| | | } |
| | | .seldatetype{ |
| | | cursor: pointer; |
| | | color: #3170fe; |
| | | margin-right: 10px; |
| | | padding: 2px 10px; |
| | | font-size: 14px; |
| | | border: solid 1px #3170fe; |
| | | } |
| | | .box_chart_item { |
| | | &:nth-child(1) { |
| | | width: 32.5%; |
| | | } |
| | | &:nth-child(2) { |
| | | width: 67%; |
| | | } |
| | | height: 225px; |
| | | padding: 15px; |
| | | box-sizing: border-box; |
| | | background-color: #ffffff; |
| | | border-radius: 20px; |
| | | box-shadow: 0 2px 6px 0 rgba(206,206,206,0.21); |
| | | .box_chart_item_info { |
| | | display: flex; |
| | | align-items: center; |
| | | span { |
| | | color: rgba(154,154,154,1); |
| | | font-size: 14px; |
| | | margin-right: 5px; |
| | | } |
| | | } |
| | | .box_content_right_title { |
| | | font-weight: bold; |
| | | font-size: 16px; |
| | | color: #101010; |
| | | margin-bottom: 15px; |
| | | } |
| | | .box_chart_item_price { |
| | | color: rgba(16,16,16,1); |
| | | font-size: 22px; |
| | | margin-top: 4px; |
| | | font-weight: bold; |
| | | } |
| | | .box_chart_item_tu { |
| | | width: 100%; |
| | | height: 90%; |
| | | } |
| | | } |
| | | } |
| | | .box_shuju { |
| | | width: 32.5%; |
| | | height: 93px; |
| | | border-radius: 20px; |
| | | margin-top: 15px; |
| | | margin-bottom: 15px; |
| | | padding: 15px; |
| | | box-sizing: border-box; |
| | | background-color: #ffffff; |
| | | box-shadow: 0 2px 6px 0 rgba(206,206,206,0.21); |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: space-between; |
| | | .box_shuju_item { |
| | | width: 33%; |
| | | height: 100%; |
| | | display: flex; |
| | | flex-direction: column; |
| | | justify-content: space-between; |
| | | align-items: center; |
| | | .box_shuju_item_top { |
| | | display: flex; |
| | | align-items: center; |
| | | span { |
| | | color: rgba(154,154,154,1); |
| | | font-size: 14px; |
| | | margin-right: 4px; |
| | | } |
| | | } |
| | | .box_shuju_item_bottom { |
| | | color: rgba(16,16,16,1); |
| | | font-size: 22px; |
| | | font-weight: bold; |
| | | } |
| | | } |
| | | } |
| | | .box_content { |
| | | width: 100%; |
| | | height: 32s0px; |
| | | margin-top: 15px; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: space-between; |
| | | .box_content_left { |
| | | width: 100%; |
| | | height: 100%; |
| | | background-color: #fff; |
| | | padding: 15px; |
| | | box-sizing: border-box; |
| | | .box_content_left_title { |
| | | font-weight: bold; |
| | | font-size: 22px; |
| | | color: #101010; |
| | | margin-top: 50px; |
| | | margin-bottom: 30px; |
| | | } |
| | | .box_content_left_list { |
| | | width: 100%; |
| | | display: flex; |
| | | flex-wrap: wrap; |
| | | align-items: center; |
| | | justify-content: space-between; |
| | | .box_content_left_list_item { |
| | | width: 24%; |
| | | height: 150px; |
| | | padding: 16px 20px; |
| | | box-sizing: border-box; |
| | | border-radius: 15px; |
| | | background-color: #FEF2F2; |
| | | display: flex; |
| | | flex-direction: column; |
| | | justify-content: space-between; |
| | | margin-bottom: 15px; |
| | | .box_content_left_list_item_top { |
| | | width: 100%; |
| | | flex: 1; |
| | | display: flex; |
| | | align-items: center; |
| | | text-align: center; |
| | | span { |
| | | width: 100%; |
| | | &:nth-child(1) { |
| | | color: rgba(75,85,99,1); |
| | | font-size: 18px; |
| | | } |
| | | } |
| | | } |
| | | .box_content_left_list_item_bottom { |
| | | width: 100%; |
| | | flex: 2; |
| | | display: flex; |
| | | align-items: center; |
| | | text-align: center; |
| | | font-weight: bold; |
| | | span { |
| | | width: 100%; |
| | | color: rgba(16,16,16,1); |
| | | font-size: 22px; |
| | | margin-right: 6px; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | .box_content_right { |
| | | width: 0%; |
| | | height: 100%; |
| | | padding: 15px; |
| | | box-sizing: border-box; |
| | | background-color: #fff; |
| | | .box_content_right_title { |
| | | font-weight: bold; |
| | | font-size: 16px; |
| | | color: #101010; |
| | | margin-bottom: 15px; |
| | | } |
| | | .box_chart_item_tu { |
| | | width: 100%; |
| | | height: 130px; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </style> |
| | |
| | | </div> |
| | | <div class="home_content"> |
| | | <div class="home_content_left"> |
| | | <div class="home_content_left_item" ref="picture1"></div> |
| | | <div class="home_content_left_item" v-if="userInfo.type == 0" ref="picture1"></div> |
| | | <div class="home_content_left_item" v-if="userInfo.type == 1" ref="picture4"></div> |
| | | <div class="home_content_left_item" ref="picture2"></div> |
| | | <div class="home_content_left_item" ref="picture3"></div> |
| | | <div class="home_content_left_item" v-if="userInfo.type == 0" ref="picture3"></div> |
| | | <div class="home_content_left_item" v-if="userInfo.type == 1" ref="picture6"></div> |
| | | </div> |
| | | <div class="home_content_right"> |
| | | <div class="home_content_right_label" v-if="tabs && tabs.length>0" >å¾
åäºé¡¹</div> |
| | |
| | | </el-pagination> |
| | | </div> |
| | | </div> |
| | | |
| | | <div v-if="activeName === '6'"> |
| | | <div class="home_content_right_list" v-if="tableData6 && tableData6.length"> |
| | | <div class="list_item" v-for="(item, index) in tableData6" :key="index"> |
| | |
| | | import OperaApplyChangeDetailWindow from '@/components/business/OperaApplyChangeDetailWindow' |
| | | import OperaTaxesWindow from '@/components/business/OperaTaxesWindow' |
| | | import { fetchList as noticeList, deleById } from '@/api/business/notices' |
| | | import { getChangeDetail, getDetail } from '@/api/business/insuranceApply' |
| | | import { getAddReduceData, getSettleClaimsMoney, getInsuranceNum, getInsuranceApplyStatusData, getInsuranceMemberData, getInsuranceApplyDataVO, getInsuranceApplyReportDataVO } from '@/api/business/insuranceApply' |
| | | import OperaWtbApplyShopWindow from '@/components/business/OperaWtbApplyShopWindow' |
| | | |
| | | export default { |
| | | components: { |
| | | OperaWtbApplyShopWindow, |
| | |
| | | ...mapState(['userInfo']) |
| | | }, |
| | | mounted () { |
| | | if (this.userInfo.type == 0) { |
| | | this.setPicture1() |
| | | this.setPicture2() |
| | | this.setPicture3() |
| | | } else if (this.userInfo.type == 1) { |
| | | this.setPicture4() |
| | | this.setPicture6() |
| | | } |
| | | this.setPicture2() |
| | | this.initPanel() |
| | | this.setLoadTimer() |
| | | }, |
| | |
| | | this.$router.push({ path: url }) |
| | | }, |
| | | setPicture1 () { |
| | | getInsuranceNum() |
| | | .then(res => { |
| | | const chartDom = this.$refs.picture1 |
| | | const myChart = echarts.init(chartDom) |
| | | let option |
| | | option = { |
| | | const option = { |
| | | title: { |
| | | text: '彿ä¿é©éé¢', |
| | | text: 'å·²æä¿å', |
| | | left: '5%', |
| | | top: '5%' |
| | | }, |
| | | legend: { |
| | | orient: 'vertical', |
| | | left: 'right', |
| | | top: '30%' |
| | | }, |
| | | tooltip: { |
| | | trigger: 'item' |
| | | }, |
| | | label: { |
| | | alignTo: 'edge', |
| | | formatter: '{b}: ({d}%)', |
| | | minMargin: 5, |
| | | edgeDistance: 10, |
| | | lineHeight: 15, |
| | | rich: { |
| | | time: { |
| | | fontSize: 10, |
| | | color: '#999' |
| | | } |
| | | } |
| | | }, |
| | | series: [ |
| | | { |
| | | type: 'pie', |
| | | radius: '50%', |
| | | data: [ |
| | | { value: 1048, name: 'ä¿éä¸' }, |
| | | { value: 735, name: 'ä¸å¨ä¿' } |
| | | { value: res.zbInsuranceNum || 0, name: 'ç´ä¿' }, |
| | | { value: res.wtbInsuranceNum || 0, name: 'å§ææä¿' } |
| | | ], |
| | | radius: ['30%', '50%'], |
| | | avoidLabelOverlap: false, |
| | | emphasis: { |
| | | itemStyle: { |
| | | shadowBlur: 10, |
| | |
| | | } |
| | | |
| | | option && myChart.setOption(option) |
| | | }) |
| | | }, |
| | | setPicture2 () { |
| | | const chartDom = this.$refs.picture2 |
| | | setPicture4 () { |
| | | getInsuranceApplyStatusData() |
| | | .then(res => { |
| | | const chartDom = this.$refs.picture4 |
| | | const myChart = echarts.init(chartDom) |
| | | let option |
| | | option = { |
| | | var yd = [] |
| | | if (res && res.length > 0) { |
| | | res.forEach(item => { |
| | | yd.push({ name: item.dataFirst, value: item.dataSecond || 0 }) |
| | | }) |
| | | } |
| | | const option = { |
| | | title: { |
| | | text: '彿å¨ä¿äººæ°', |
| | | text: 'å·²æä¿ååç¶æå æ¯', |
| | | left: '5%', |
| | | top: '5%' |
| | | }, |
| | | grid: { |
| | | left: '3%', |
| | | right: '4%', |
| | | bottom: '13%', |
| | | containLabel: true |
| | | legend: { |
| | | orient: 'vertical', |
| | | left: 'right', |
| | | top: '30%' |
| | | }, |
| | | tooltip: { |
| | | trigger: 'axis' |
| | | trigger: 'item' |
| | | }, |
| | | xAxis: { |
| | | type: 'category', |
| | | data: ['䏿', 'äºæ', '䏿', 'åæ', 'äºæ', 'å
æ', '䏿', 'å
«æ', '乿', 'åæ', 'å䏿', 'åäºæ'] |
| | | }, |
| | | yAxis: { |
| | | type: 'value' |
| | | label: { |
| | | alignTo: 'edge', |
| | | formatter: '{b}: ({c}个)', |
| | | minMargin: 5, |
| | | edgeDistance: 10, |
| | | lineHeight: 15, |
| | | rich: { |
| | | time: { |
| | | fontSize: 10, |
| | | color: '#999' |
| | | } |
| | | } |
| | | }, |
| | | series: [ |
| | | { |
| | | data: [10, 30, 25, 16, 21, 18, 5, 30, 30, 30, 30, 30], |
| | | type: 'line' |
| | | type: 'pie', |
| | | data: yd, |
| | | radius: ['30%', '50%'], |
| | | avoidLabelOverlap: false, |
| | | emphasis: { |
| | | itemStyle: { |
| | | shadowBlur: 10, |
| | | shadowOffsetX: 0, |
| | | shadowColor: 'rgba(0, 0, 0, 0.5)' |
| | | } |
| | | } |
| | | } |
| | | ] |
| | | } |
| | | |
| | | option && myChart.setOption(option) |
| | | }) |
| | | }, |
| | | setPicture3 () { |
| | | const chartDom = this.$refs.picture3 |
| | | setPicture6 () { |
| | | getInsuranceMemberData() |
| | | .then(res => { |
| | | const chartDom = this.$refs.picture6 |
| | | const myChart = echarts.init(chartDom) |
| | | let option |
| | | option = { |
| | | var yd = [] |
| | | if (res && res.length > 0) { |
| | | res.forEach(item => { |
| | | yd.push({ name: item.dataFirst, value: item.dataSecond || 0 }) |
| | | }) |
| | | } |
| | | const option = { |
| | | title: { |
| | | text: 'æ»èµä»ç 78%', |
| | | text: 'å¨ä¿åå·¥', |
| | | left: '5%', |
| | | top: '5%' |
| | | }, |
| | | grid: { |
| | | left: '3%', |
| | | right: '3%', |
| | | top: '25%', |
| | | bottom: '0%', |
| | | containLabel: true |
| | | }, |
| | | legend: { |
| | | orient: 'vertical', |
| | | left: 'right', |
| | | top: '30%' |
| | | }, |
| | | tooltip: { |
| | | trigger: 'item' |
| | | }, |
| | | label: { |
| | | alignTo: 'edge', |
| | | formatter: '{b}: ({c}人)', |
| | | minMargin: 5, |
| | | edgeDistance: 10, |
| | | lineHeight: 15, |
| | | rich: { |
| | | time: { |
| | | fontSize: 10, |
| | | color: '#999' |
| | | } |
| | | } |
| | | }, |
| | | series: [ |
| | | { |
| | | type: 'pie', |
| | | data: yd, |
| | | radius: ['30%', '50%'], |
| | | avoidLabelOverlap: false, |
| | | emphasis: { |
| | | itemStyle: { |
| | | shadowBlur: 10, |
| | | shadowOffsetX: 0, |
| | | shadowColor: 'rgba(0, 0, 0, 0.5)' |
| | | } |
| | | } |
| | | } |
| | | ] |
| | | } |
| | | |
| | | option && myChart.setOption(option) |
| | | }) |
| | | }, |
| | | setPicture2 () { |
| | | getAddReduceData() |
| | | .then(res => { |
| | | var xd = ['1æ', '2æ', '3æ', '4æ', '5æ', '6æ', '7æ', '8æ', '9æ', '10æ', '11æ', '12æ'] |
| | | var yd = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] |
| | | var yd1 = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] |
| | | if (res && res.length > 0) { |
| | | xd = [] |
| | | yd = [] |
| | | yd1 = [] |
| | | res.forEach(item => { |
| | | xd.push(item.dataFirst) |
| | | yd.push(item.dataSecond) |
| | | yd1.push(item.dataThird) |
| | | }) |
| | | } |
| | | const chartDom = this.$refs.picture2 |
| | | const myChart = echarts.init(chartDom) |
| | | const option = { |
| | | title: { |
| | | text: 'æ¯æå åä¿äººæ°', |
| | | left: '5%', |
| | | top: '1%' |
| | | }, |
| | | grid: { |
| | | left: '3%', |
| | | right: '3%', |
| | | top: '25%', |
| | | bottom: '0%', |
| | | containLabel: true |
| | | }, |
| | | tooltip: { |
| | | trigger: 'axis', |
| | |
| | | type: 'shadow' |
| | | } |
| | | }, |
| | | grid: { |
| | | left: '3%', |
| | | right: '4%', |
| | | bottom: '25%', |
| | | containLabel: true |
| | | legend: { |
| | | top: '5%', |
| | | left: 'right' |
| | | }, |
| | | xAxis: { |
| | | type: 'value' |
| | | // boundaryGap: [0, 0.01] |
| | | type: 'category', |
| | | // boundaryGap: false, |
| | | data: xd |
| | | }, |
| | | yAxis: { |
| | | type: 'category', |
| | | data: ['ä¿é©Aèµä»ç', 'ä¿é©Bèµä»ç', 'æ»èµä»ç'] |
| | | type: 'value' |
| | | }, |
| | | series: [ |
| | | { |
| | | name: 'å ä¿', |
| | | data: yd, |
| | | type: 'bar', |
| | | stack: 'total', |
| | | barWidth: '60%', |
| | | data: [10, 20, 30] |
| | | areaStyle: { |
| | | opacity: 0.5, |
| | | color: '#f07e6f' |
| | | }, |
| | | lineStyle: { |
| | | color: '#f07e6f' |
| | | } |
| | | }, |
| | | { |
| | | name: 'åä¿', |
| | | data: yd1, |
| | | type: 'bar', |
| | | stack: 'total', |
| | | barWidth: '60%', |
| | | data: [15, 16, 24] |
| | | areaStyle: { |
| | | opacity: 0.5, |
| | | color: '#f07e6f' |
| | | }, |
| | | lineStyle: { |
| | | color: '#f07e6f' |
| | | } |
| | | } |
| | | ] |
| | | } |
| | | |
| | | option && myChart.setOption(option) |
| | | |
| | | console.log(res) |
| | | }) |
| | | }, |
| | | setPicture3 () { |
| | | getSettleClaimsMoney() |
| | | .then(res => { |
| | | var xd = ['1æ', '2æ', '3æ', '4æ', '5æ', '6æ', '7æ', '8æ', '9æ', '10æ', '11æ', '12æ'] |
| | | var yd = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] |
| | | if (res && res.length > 0) { |
| | | xd = [] |
| | | yd = [] |
| | | res.forEach(item => { |
| | | xd.push(item.dataFirst) |
| | | yd.push(item.dataSecond) |
| | | }) |
| | | } |
| | | const chartDom = this.$refs.picture3 |
| | | const myChart = echarts.init(chartDom) |
| | | const option = { |
| | | title: { |
| | | text: 'æ¯æèµä»éé¢', |
| | | left: '5%', |
| | | top: '5%' |
| | | }, |
| | | grid: { |
| | | left: '3%', |
| | | right: '3%', |
| | | top: '25%', |
| | | bottom: '0%', |
| | | containLabel: true |
| | | }, |
| | | tooltip: { |
| | | trigger: 'axis', |
| | | axisPointer: { |
| | | type: 'shadow' |
| | | } |
| | | }, |
| | | legend: { |
| | | top: '5%', |
| | | left: 'right' |
| | | }, |
| | | xAxis: { |
| | | type: 'category', |
| | | // boundaryGap: false, |
| | | data: xd |
| | | }, |
| | | yAxis: { |
| | | type: 'value' |
| | | }, |
| | | series: [ |
| | | { |
| | | data: yd, |
| | | type: 'line', |
| | | smooth: true, |
| | | areaStyle: { |
| | | opacity: 0.5, |
| | | color: '#f07e6f' |
| | | }, |
| | | lineStyle: { |
| | | color: '#f07e6f' |
| | | } |
| | | } |
| | | ] |
| | | } |
| | | option && myChart.setOption(option) |
| | | |
| | | console.log(res) |
| | | }) |
| | | } |
| | | } |
| | | } |
| | |
| | | /*justify-content: space-between;*/ |
| | | .home_content_left { |
| | | width: 350px; |
| | | |
| | | /*height: 100%;*/ |
| | | height: auto; |
| | | flex-shrink: 0; |