| | |
| | | </div> |
| | | <div v-if="urlList && urlList.length > 0" class="w-full"> |
| | | <HTMLCom |
| | | data="http://127.0.0.1:5500/src/views/project/ch/demo/MonthlyPay.html" |
| | | data="http://127.0.0.1:5500/src/views/project/ch/demo/MonthlyLeaderBoard.html" |
| | | v-for="(item, index) in urlList" |
| | | :key="index" |
| | | ></HTMLCom> |
| | |
| | | import type { TableInstance } from 'element-plus'; |
| | | import _ from 'lodash'; |
| | | import { computed, onMounted, ref } from 'vue'; |
| | | import { ChartTypeEnum, chartTypeMapEchart, chartTypeMapName } from '../types'; |
| | | import { axisLabelFormatter } from '/@/utils/chart'; |
| | | import { PATH_ICON, SCATTER_SYMBOL_SIZE, timeDataOptionToContent } from '../common'; |
| | | import { AnswerType } from '../../model/types'; |
| | | import { PATH_ICON, SCATTER_SYMBOL_SIZE, timeDataOptionToContent } from '../common'; |
| | | import HTMLCom from '../htmlCom/HTMLCom.vue'; |
| | | import { ChartTypeEnum, chartTypeMapEchart } from '../types'; |
| | | import { axisLabelFormatter } from '/@/utils/chart'; |
| | | const props = defineProps(['data', 'error']); |
| | | |
| | | const selectChartType = ref<ChartTypeEnum>(ChartTypeEnum.Line); |
| | |
| | | <script src="/customer_list/ch/ai_html/views/demo/js/tailwind.js"></script> |
| | | <script src="/customer_list/ch/ai_html/views/demo/js/vue.global.js"></script> |
| | | <script src="/customer_list/ch/ai_html/views/demo/js/iframe-resizer/child-5.1.5.js" async></script> |
| | | <!-- <script src="/customer_list/ch/ai_html/views/demo/js/index.full.js"></script> --> |
| | | <link href="/customer_list/ch/static/fonts/iconfont/iconfont.css" rel="stylesheet" type="text/css"> |
| | | </link> |
| | | <script src="/customer_list/ch/static/js/echarts.min.js"></script> |
| | | <!-- <link href="/customer_list/ch/ai_html/views/demo/css/ele-index.css" rel="stylesheet" type="text/css"> |
| | | </link> --> |
| | | <link rel="stylesheet" href="//unpkg.com/element-plus/dist/index.css" /> |
| | | <script src="//unpkg.com/element-plus"></script> |
| | | <script src="/customer_list/ch/ai_html/views/demo/js/echarts.min.js"></script> |
| | | <style type="text/css"> |
| | | .item_title { |
| | | height: 38px; |
| | |
| | | background-image: url('/customer_list//ch/static/images/demo/leader_right.png'); |
| | | transform: rotate(180deg); |
| | | } |
| | | .title-inner{ |
| | | |
| | | .title-inner { |
| | | font-weight: 900; |
| | | letter-spacing: 2px; |
| | | background-color :#31abe3; |
| | | /* background: linear-gradient(92deg, #fff9 0%, #fff9 48.8525390625%, #fff9 100%); */ |
| | | -webkit-background-clip: text; |
| | | -webkit-text-fill-color: transparent; |
| | | letter-spacing: 2px; |
| | | background-color: #31abe3; |
| | | /* background: linear-gradient(92deg, #fff9 0%, #fff9 48.8525390625%, #fff9 100%); */ |
| | | -webkit-background-clip: text; |
| | | -webkit-text-fill-color: transparent; |
| | | } |
| | | </style> |
| | | </head> |
| | | |
| | | <body> |
| | | <div class="w-full h-full bg-[#fff] px-10 py-0" id="leaderBoard"> |
| | | <div class="w-full h-full"> |
| | | <div class="item_title"> |
| | | <div class="leader_left"></div> |
| | | <span>月度缴费金额排行</span> |
| | | <div class="leader_right"></div> |
| | | <div class="w-full h-full bg-[#f2f4f8] " id="leaderBoard"> |
| | | <div class=" mx-[5px] my-[5px] space-y-1 bg-[rgb(242,244,248)]"> |
| | | <div class="bg-white"> |
| | | <div class="item_title "> |
| | | <div class="leader_left"></div> |
| | | <span>月度缴费金额排行</span> |
| | | <div class="leader_right"></div> |
| | | </div> |
| | | <!-- <div class="w-full h-full justify-center" v-for="(item, index) in state.leaderBoardList" :key="index"> |
| | | <div class="w-[300px] h-10 flex justify-between items-center mx-[auto] my-[10px]"> |
| | | <span class="title-inner">{{item.Name}}</span> |
| | | <span>{{item.Amount}}</span> |
| | | <span>{{item.CompanyName}}</span> |
| | | <span>{{item.NewRecord}}</span> |
| | | </div> --> |
| | | <!-- </div> --> |
| | | |
| | | <el-table :data="state.leaderBoardList"> |
| | | <el-table-column prop="Name" label="营业所" width="180"></el-table-column> |
| | | <el-table-column prop="Amount" label="测薄号" width="180"></el-table-column> |
| | | <el-table-column prop="NewRecord" label="时间"></el-table-column> |
| | | <el-table-column prop="CompanyName" label="网格员"></el-table-column> |
| | | </el-table> |
| | | </div> |
| | | <div class="w-full h-full justify-center" v-for="(item, index) in state.leaderBoardList" :key="index"> |
| | | <div class="w-[300px] h-10 flex justify-between items-center mx-[auto] my-0"> |
| | | <span class="title-inner">{{item.Name}}</span> |
| | | <span>{{item.Amount}}</span> |
| | | </div> |
| | | |
| | | <div class="w-full bg-white h-[270px] mt-[10px]" id="leaderChart"></div> |
| | | <div class="w-full bg-white h-[320px] " id="leaderBarChart"></div> |
| | | </div> |
| | | </div> |
| | | |
| | | |
| | | |
| | | </div> |
| | | </body> |
| | | <script> |
| | | const { createApp, onMounted, ref, reactive } = Vue; |
| | | createApp({ |
| | | const App = createApp({ |
| | | setup() { |
| | | let state = reactive({ |
| | | leaderBoardList: [ |
| | | { |
| | | Name: '厦门营业所', |
| | | Amount: '10000' |
| | | }, |
| | | { |
| | | Name: '二供营业所', |
| | | Amount: '4354363' |
| | | }, |
| | | { |
| | | Name: '同安营业所', |
| | | Amount: '435233' |
| | | }, |
| | | { |
| | | Name: '集美营业所', |
| | | Amount: '54545' |
| | | }, |
| | | { |
| | | Name: '翔美营业所', |
| | | Amount: '577887' |
| | | }, |
| | | { |
| | | Name: '海沧营业所', |
| | | Amount: '5478786' |
| | | }, |
| | | |
| | | ] |
| | | }); |
| | | const initLeaderBoard = () => { |
| | | console.log("🚀 ~ leaderBoardList:", state.leaderBoardList) |
| | | let state = reactive({ |
| | | leaderBoardList: [ |
| | | { |
| | | Name: '厦门营业所', |
| | | Amount: '10000', |
| | | NewRecord: '2022-01-01', |
| | | CompanyName: '张三' |
| | | }, |
| | | { |
| | | Name: '二供营业所', |
| | | Amount: '4354363', |
| | | NewRecord: '2022-01-01', |
| | | CompanyName: '张三' |
| | | }, |
| | | { |
| | | Name: '同安营业所', |
| | | Amount: '435233', |
| | | NewRecord: '2022-01-01', |
| | | CompanyName: '李四' |
| | | }, |
| | | { |
| | | Name: '集美营业所', |
| | | Amount: '54545', |
| | | NewRecord: '2023-01-01', |
| | | CompanyName: '王二' |
| | | }, |
| | | { |
| | | Name: '翔美营业所', |
| | | Amount: '577887', |
| | | NewRecord: '2024-01-01', |
| | | CompanyName: '张三' |
| | | }, |
| | | { |
| | | Name: '海沧营业所', |
| | | Amount: '5478786', |
| | | NewRecord: '2022-01-01', |
| | | CompanyName: '张三' |
| | | }, |
| | | |
| | | ] |
| | | }); |
| | | const initLeaderBoardChart = () => { |
| | | var chartDom = document.getElementById('leaderChart'); |
| | | var leaderChartDom = echarts.init(chartDom); |
| | | var option = { |
| | | title: { |
| | | text: '近12月缴费金额', |
| | | textStyle: { |
| | | fontSize: 13 |
| | | } |
| | | }, |
| | | xAxis: { |
| | | type: 'category', |
| | | data: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'] |
| | | }, |
| | | yAxis: { |
| | | type: 'value' |
| | | }, |
| | | series: [ |
| | | { |
| | | data: [150, 230, 224, 218, 135, 147, 260, 150, 230, 224, 218, 135, 147], |
| | | type: 'line' |
| | | } |
| | | ] |
| | | }; |
| | | |
| | | option && leaderChartDom.setOption(option); |
| | | } |
| | | const initLeaderBoardBarChart = () => { |
| | | const barXData = state.leaderBoardList.map(item => item.Name) |
| | | var chartDom = document.getElementById('leaderBarChart'); |
| | | var leaderBarChartDom = echarts.init(chartDom); |
| | | var option = { |
| | | |
| | | xAxis: { |
| | | type: 'category', |
| | | data: barXData |
| | | }, |
| | | yAxis: { |
| | | name: '评分', |
| | | type: 'value' |
| | | }, |
| | | series: [ |
| | | { |
| | | data: [120, 200, 150, 80, 70, 110], |
| | | type: 'bar', |
| | | showBackground: true, |
| | | backgroundStyle: { |
| | | color: 'rgba(180, 180, 180, 0.2)' |
| | | } |
| | | } |
| | | ] |
| | | } |
| | | |
| | | option && leaderBarChartDom.setOption(option); |
| | | } |
| | | onMounted(() => { |
| | | initLeaderBoard(); |
| | | initLeaderBoardChart(); |
| | | initLeaderBoardBarChart() |
| | | }); |
| | | |
| | | return { state }; |
| | | }, |
| | | }).mount('#leaderBoard'); |
| | | }) |
| | | App.use(ElementPlus) |
| | | App.mount('#leaderBoard'); |
| | | </script> |
| | | |
| | | </html> |
| | |
| | | </head> |
| | | |
| | | <body> |
| | | <div class="w-[50%] h-full bg-[#f2f4f8] " id="overview"> |
| | | <div class="w-full h-full bg-[#f2f4f8] " id="overview"> |
| | | <!-- <div class="w-full h-[40px] flex items-center">年度缴费情况</div> |
| | | <div class="h-full"> |
| | | <div class="w-[310px] flex flex-wrap justify-between h-[220px]"> |