From 40e3b74c9b2b2fdb6d9db734e4f2456503d80b7c Mon Sep 17 00:00:00 2001 From: WXL <1785969728@qq.com> Date: 星期三, 22 十一月 2023 15:57:48 +0800 Subject: [PATCH] 提交信息 --- src/views/index.vue | 767 ++++++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 702 insertions(+), 65 deletions(-) diff --git a/src/views/index.vue b/src/views/index.vue index 26519f3..d44d565 100644 --- a/src/views/index.vue +++ b/src/views/index.vue @@ -1,87 +1,724 @@ <template> - <div class="app-container home"> - + <div id="home"> + <div class="home" style="margin-top: 40px; margin-left: 20px"> + <!-- 澶撮儴涓や釜 --> + <el-row :gutter="20"> + <el-col :span="10"> + <!-- 灏辫瘖缁熻鐩掑瓙 --> + <div class="grid-content bg-purple headerBox bgc1"> + <div class="title"> + 灏辫瘖缁熻 + <span>{{ endatd }} ~ {{ statd }}</span> + </div> + <el-row :gutter="20"> + <el-col :span="6"> + <div class="home-user-task-stats"> + <p>{{ 12322 }}</p> + </div> + <div class="text-color2"> + <p>灏辫瘖鎬绘暟锛堜釜锛�</p> + </div> + </el-col> + <el-col :span="6"> + <div class="home-user-task-stats"> + <p>{{ 1231 }}</p> + <div class="text-color2"> + <p>鍦ㄩ櫌鎬绘暟锛堜汉锛�</p> + </div> + </div> + </el-col> + <el-col :span="6"> + <div class="home-user-task-stats"> + <p>{{ ticketStatistics.progressTotal || "0" }}</p> + <div class="text-color2"> + <p>绂婚櫌鎬绘暟锛堜汉锛�</p> + </div> + </div> + </el-col> + <el-col :span="6"> + <div class="home-user-task-stats"> + <p>{{ 12 }}</p> + <div class="text-color2"> + <p>鎶曡瘔鎬绘暟</p> + </div> + </div> + </el-col> + </el-row> + </div> + </el-col> + <el-col :span="7"> + <div class="grid-content bg-purple headerBox bgc2"> + <div class="title"> + 鍖诲姟浜哄憳鏁伴噺 + <span>{{ endatd }} ~ {{ statd }}</span> + </div> + <el-row :gutter="20"> + <el-col :span="12"> + <div class="home-user-task-stats"> + <p style="color: red">{{ 3453 }}</p> + </div> + <div class="text-color2"> + <p>鍖诲笀</p> + </div> + </el-col> + <el-col :span="12"> + <div class="home-user-task-stats"> + <p style="color: red">{{ 4213 }}</p> + <div class="text-color2"> + <p>鎶ゅ+</p> + </div> + </div> + </el-col> + </el-row> + </div> + </el-col> + </el-row> + <!-- 涓棿鍜屽彸杈� --> + <el-row :gutter="20"> + <el-col :span="17"> + <!-- echars鏁版嵁鍙鍖� --> + <div class="grid-content bg-purple" style="min-height: 365px"> + <div class="title"> + 灏辫瘖缁熻 + <span>{{ endatd }} ~ {{ statd }}</span> + <el-radio-group + v-model="radio1" + size="mini" + style="margin-left: 390px" + @change="changes" + > + <el-radio-button label="鍛�" @click="dyat = 7"></el-radio-button> + <el-radio-button + label="鏈�" + @click="dyat = 30" + ></el-radio-button> + <el-radio-button + label="骞�" + @click="dyat = 360" + ></el-radio-button> + </el-radio-group> + </div> + <!-- 涓棿echars --> + <div class="boxEchars"> + <div class="echars1" id="echars"></div> + <div class="echars2" id="echars2"></div> + </div> + </div> + </el-col> + <!-- 涓棿鍜屽彸杈� --> + <el-col :span="6" class="aside"> + <div + class="grid-content bg-purple" + style="height: 560px; margin-top: -180px" + > + <div class="title"> + 鎺ヨ瘖鎺掕 + <span>{{ endatd }} ~ {{ statd }}</span> + </div> + <el-table style="width: 100%" :data="SkuTop"> + <template v-for="(item, index) in SkuTop"></template> + <el-table-column + prop="order" + width="30" + style="background: url(~@/assets/order/4.png)" + type="index" + + ></el-table-column> + <el-table-column + prop="skuName" + width="124" + class-name="name" + + ></el-table-column> + <el-table-column + prop="count" + class-name="count" + + ></el-table-column> + </el-table> + </div> + </el-col> + </el-row> + <!-- 搴曢儴涓�涓� --> + <el-row :gutter="20" style="margin-bottom: 20px"> + <el-col :span="13"> + <div class="grid-content bg-purple" style="min-height: 300px"> + <div class="title"> + 鍚堜綔鍟嗙偣浣嶆暟Top5 + <span class="el-icon-s-unfold moreIcon"></span> + </div> + <div class="cooperate"> + <!-- 鍚堜綔鍖哄煙 --> + <div class="pieChart" id="pieCharts"></div> + <div class="Points"> + <p>{{ 122 }}</p> + <span>鐐逛綅鏁�</span> + <p>{{ 18 }}</p> + <span>鍚堜綔鍟�</span> + </div> + </div> + </div> + </el-col> + <el-col :span="10"> + <div class="grid-content bg-purple" style="min-height: 300px"> + <div class="title"> + 寮傚父璁惧鐩戞帶 + <span class="el-icon-s-unfold moreIcon2"></span> + </div> + <div class="empenty"></div> + </div> + </el-col> + </el-row> + </div> </div> </template> <script> +// import { +// getUserWork, +// getregionCollect, +// getregionOrderCount, +// getregionAmountCollect, +// getNodeCount, +// getPrtnerCount, +// getnodeCollect, +// getSkuTop, +// getOrderAmount, +// } from "@/api/home"; +import dayjs from "dayjs"; + export default { - name: "Index", + name: "home", data() { return { - // 鐗堟湰鍙� - version: "3.8.5" + NodeCount: "", + PrtnerCount: "", + NodeCount: "", + radio1: "鍛�", + ticketStatistics: {}, + order: "", + Count: "", + datatni: [], + series: [], + tableData: [], + nodeCollect: [], + SkuTop: [], + cylinderSeries: [], + cylinderXAxis: [], + dyat: 30, }; }, + + computed: { + // 鏃堕棿鍖哄煙 + td() { + return dayjs().format("YYYY-MM-DD HH:mm:ss"); + }, + atd() { + return dayjs().subtract(this.dyat, "day").format("YYYY-MM-DD HH:mm:ss"); + }, + statd() { + return dayjs().format("YYYY-MM-DD"); + }, + endatd() { + return dayjs().subtract(this.dyat, "day").format("YYYY-MM-DD"); + }, + }, + created() { + this.$nextTick(function () { + this.getregionAmountCollect(); + this.getUserWorks(); + this.getregionCollect(); + this.getregionOrderCount(); + this.getNodeCount(); + this.getPrtnerCount(); + this.getnodeCollect(); + this.getSkuTop(); + this.getOrderAmount(); + }) + }, + mounted() {}, methods: { - goTarget(href) { - window.open(href, "_blank"); - } - } + // 鏀瑰彉鏃堕棿浜嬩欢 + changes() { + if (this.radio1 == "鍛�") { + this.dyat = 7; + } else if (this.radio1 == "鏈�") { + this.dyat = 30; + } else { + this.dyat = 360; + } + this.getregionAmountCollect(); + this.getUserWorks(); + this.getregionCollect(); + this.getregionOrderCount(); + this.getNodeCount(); + this.getPrtnerCount(); + this.getnodeCollect(); + this.getSkuTop(); + this.getOrderAmount(); + }, + // 鏌辩姸鍥� + async getOrderAmount() { + // const res = await getOrderAmount(this.endatd, this.statd); + // this.cylinderXAxis = res.data.xAxis; + // this.cylinderSeries = res.data.series; + this.cylinderXAxis = [ + "1鏈�", + "2鏈�", + "3鏈�", + "4鏈�", + "5鏈�", + "6鏈�", + "7鏈�", + "8鏈�", + ]; + this.cylinderSeries = [123, 123, 223, 212, 432, 123, 442, 234]; + this.myEcharts(); + }, + // 鑾峰彇鐐逛綅鎬绘暟 + async getNodeCount() { + // const res = await getNodeCount(); + // this.NodeCount = res.data; + }, + // 鑾峰彇鍚堜綔鍟嗘�绘暟 + async getPrtnerCount() { + // const res = await getPrtnerCount(); + // this.PrtnerCount = res.data; + }, + // 鍚堜綔鍟嗙偣浣嶆眹鎬荤粺璁¢ゼ鐘跺浘 + async getnodeCollect() { + // const res = await getnodeCollect(); + // this.nodeCollect = res.data; + this.nodeCollect = [ + { name: "娴欏ぇ涓�闄�", value: 12 }, + { name: "娴欏ぇ浜岄櫌", value: 8 }, + { name: "閲戝叞鍖婚櫌", value: 8 }, + { name: "閭甸�稿か鍖婚櫌", value: 6 }, + { name: "鐪佷汉姘戝尰闄�", value: 5 }, + { name: "鏈濇櫀闄㈠尯", value: 4 }, + ]; + this.myPieChart(); + }, + // top鎺掕 + async getSkuTop() { + // const res = await getSkuTop(10, this.endatd, this.statd); + // this.SkuTop = res.data; + this.SkuTop = [ + { amount: 0, count: 123, skuId: "0", skuName: "鐜嬪ぇ澶�" }, + { amount: 0, count: 122, skuId: "0", skuName: "鍚村ぇ澶�" }, + { amount: 0, count: 112, skuId: "0", skuName: "鏉庝富浠�" }, + { amount: 0, count: 111, skuId: "0", skuName: "寮犳姢澹�" }, + { amount: 0, count: 102, skuId: "0", skuName: "鏉庢姢澹�" }, + { amount: 0, count: 98, skuId: "0", skuName: "鍒樻姢澹�" }, + { amount: 0, count: 89, skuId: "0", skuName: "椹ぇ澶�" }, + { amount: 0, count: 88, skuId: "0", skuName: "椹ぇ澶�" }, + { amount: 0, count: 87, skuId: "0", skuName: "椹ぇ澶�" }, + { amount: 0, count: 67, skuId: "0", skuName: "椹ぇ澶�" }, + ]; + }, + // 鑾峰彇宸ュ崟鏁伴噺 + async getUserWorks() { + // const res = await getUserWork(this.atd, this.td); + // this.ticketStatistics = res.data[0]; + }, + // 鑾峰彇灏辫瘖鏁伴噺 + async getregionOrderCount() { + // const res = await getregionOrderCount({ + // start: this.atd, + // end: this.td, + // }); + + // this.order = res.data; + }, + // 鑾峰彇鎬婚噺鏁伴噺 + async getregionCollect() { + // const res = await getregionCollect({ + // start: this.atd, + // end: this.td, + // }); + // this.Count = (res.data / 1000000).toFixed(2); + }, + + // 鏌辩姸鍥� + myEcharts() { + // 鍩轰簬鍑嗗濂界殑dom锛屽垵濮嬪寲echarts瀹炰緥 + var echarts = require("echarts"); + var myChart = echarts.init(document.getElementById("echars2")); + + // 鎸囧畾鍥捐〃鐨勯厤缃」鍜屾暟鎹� + var option = { + title: { + text: "灏辫瘖鍒嗗竷", + left: "center", + }, + grid: { top: "18%", left: "19%", right: "0%", bottom: "24%" }, + xAxis: { + type: "category", + data: this.cylinderXAxis, + }, + yAxis: { + type: "value", + name: "鍗曚綅/鍏�", + }, + series: [ + { + data: this.cylinderSeries, + barWidth: "5%", + type: "bar", + }, + ], + }; + + // 浣跨敤鍒氭寚瀹氱殑閰嶇疆椤瑰拰鏁版嵁鏄剧ず鍥捐〃銆� + myChart.setOption(option); + }, + // 鑾峰彇绾跨姸鍥炬椂闂� + async getregionAmountCollect() { + // const res = await getregionAmountCollect(1, this.endatd, this.statd); + // this.xAxis = res.data.xAxis; + // this.series = res.data.series; + this.xAxis = [ + "1鏈�", + "2鏈�", + "3鏈�", + "4鏈�", + "5鏈�", + "6鏈�", + "7鏈�", + "8鏈�", + ]; + this.series = [123, 123, 223, 212, 432, 123, 442, 234]; + this.myEcharts2(); + }, + // 绾挎�у浘 + myEcharts2() { + var echarts = require("echarts"); + var myChart2 = echarts.init(document.getElementById("echars")); + var option2 = { + color: ["red"], + title: { + text: "灏辫瘖瓒嬪娍鍥�", + left: "center", + }, + grid: { top: "18%", left: "17%", right: "0%", bottom: "24%" }, + xAxis: { + type: "category", + data: this.xAxis, + boundaryGap: true, + }, + yAxis: { + name: "鍗曚綅/鍏�", + type: "value", + }, + series: [ + { + data: this.series, + type: "line", + }, + ], + }; + myChart2.setOption(option2); + }, + // 楗肩姸鍥� + myPieChart() { + // 鍩轰簬鍑嗗濂界殑dom锛屽垵濮嬪寲echarts瀹炰緥 + var echarts = require("echarts"); + var mypPieCharts = echarts.init(document.getElementById("pieCharts")); + + // 鎸囧畾鍥捐〃鐨勯厤缃」鍜屾暟鎹� + var optionPie = { + title: { + left: "left", + }, + + tooltip: { + trigger: "item", + formatter: "{b}<br/>鎬诲崰姣� : {d}% ", + }, + toolbox: { + show: true, + feature: { + mark: { show: true }, + }, + }, + series: [ + { + name: "鍚堜綔鍟嗙偣浣嶆暟Top5", + type: "pie", + radius: ["10%", "70%"], + center: ["50%", "50%"], + roseType: "radius", + data: this.nodeCollect, + }, + ], + }; + + // 浣跨敤鍒氭寚瀹氱殑閰嶇疆椤瑰拰鏁版嵁鏄剧ず鍥捐〃銆� + mypPieCharts.setOption(optionPie); + }, + }, }; </script> -<style scoped lang="scss"> -.home { - blockquote { - padding: 10px 20px; - margin: 0 0 20px; - font-size: 17.5px; - border-left: 5px solid #eee; +<style lang="scss" scoped> +* { + padding: 0; + margin: 0; +} +.boxEchars { + width: 100%; + height: 280px; + margin-top: 45px; + display: flex; + .echars1 { + flex: 1; } - hr { - margin-top: 20px; - margin-bottom: 20px; - border: 0; - border-top: 1px solid #eee; + .echars2 { + flex: 1; } - .col-item { - margin-bottom: 20px; - } - - ul { - padding: 0; - margin: 0; - } - - font-family: "open sans", "Helvetica Neue", Helvetica, Arial, sans-serif; - font-size: 13px; - color: #676a6c; - overflow-x: hidden; - - ul { - list-style-type: none; - } - - h4 { - margin-top: 0px; - } - - h2 { - margin-top: 10px; - font-size: 26px; - font-weight: 100; - } - - p { - margin-top: 10px; - - b { - font-weight: 700; +} +::v-deep .el-table { + td:first-child { + .cell { + display: inline-block; + text-align: center; + width: 22px; + height: 20px; + margin-left: 2px; + padding-left: 6px; + text-align: center; + white-space: nowrap; + font-size: 12px; + font-family: zihun143-zhengkuchaojihei, zihun143; + font-weight: 400; + line-height: 14px; + background: url(~@/assets/order/4.png) no-repeat; + color: #e9b499; } } - - .update-log { - ol { - display: block; - list-style-type: decimal; - margin-block-start: 1em; - margin-block-end: 1em; - margin-inline-start: 0; - margin-inline-end: 0; - padding-inline-start: 40px; + td:nth-child(2) { + .cell { + height: 20px; + font-size: 14px; + font-family: PingFangSC-Medium, PingFang SC; + font-weight: 500; + color: #333; + line-height: 20px; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + } + } + td:last-child { + height: 20px; + font-size: 14px; + font-family: PingFangSC-Regular, PingFang SC; + font-weight: 400; + color: #737589; + line-height: 20px; + text-align: right; + } +} +::v-deep .el-table { + tr:nth-child(1) { + td:nth-child(1) { + .cell { + background: url(~@/assets/order/1.png); + color: #8e5900; + } + } + } + tr:nth-child(2) { + td:nth-child(1) { + .cell { + background: url(~@/assets/order/2.png); + color: #494949; + } + } + } + tr:nth-child(3) { + td:nth-child(1) { + .cell { + background: url(~@/assets/order/3.png); + color: #cf6d3d; + } } } } -</style> +.moreIcon { + font-size: 22px !important; + margin-left: 400px !important; + color: #5f84ff !important; + cursor: pointer; +} +.moreIcon2 { + font-size: 22px !important; + margin-left: 250px !important; + color: #5f84ff !important; + cursor: pointer; +} +.empenty { + width: 100%; + height: 280px; +} +.cooperate { + width: 100%; + height: 280px; + margin-top: 25px; + display: flex; + .pieChart { + flex: 3; + } + .Points { + width: 154px; + height: 230px; + padding-top: 47px; + padding-left: 38px; + background: linear-gradient(135deg, transparent, #f8f8f9 0) 0 0, + linear-gradient(-135deg, transparent 12px, #f8f8f9 0) 100% 0, + linear-gradient(-45deg, transparent, #f8f8f9 0) 100% 100%, + linear-gradient(45deg, transparent 12px, #f8f8f9 0) 0 100%; + background-size: 50% 50%; + background-repeat: no-repeat; + p { + height: 33px; + margin-bottom: 10px; + font-size: 24px; + font-family: PingFangSC-Semibold, PingFang SC; + font-weight: 600; + color: #072074; + line-height: 33px; + } + span { + height: 17px; + margin-top: 6px; + font-size: 12px; + font-family: PingFangSC-Regular, PingFang SC; + font-weight: 400; + color: #000412; + line-height: 17px; + } + } +} +.title { + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; + font-size: 16px; + font-family: PingFangSC-Semibold, PingFang SC; + font-weight: 600; + color: #333; + padding-top: 17px; + padding-bottom: -4px; + span { + margin-left: 10px; + font-size: 12px; + font-family: PingFangSC-Regular, PingFang SC; + font-weight: 400; + color: #999; + } +} +.bgc2 { + background: #fbefe8 url(~@/assets/dashboard/bg33.png) no-repeat + calc(100% - 12px) 100% !important; + + .home-user-task-stats { + margin-top: 10px; + height: 50px; + font-size: 36px; + font-family: PingFangSC-Semibold, PingFang SC; + font-weight: 600; + line-height: 50px; + text-shadow: 2px 4px 7px rgb(255 99 85 / 50%); + } + .text-color2 { + height: 17px; + margin-top: 3px; + font-size: 12px; + font-family: PingFangSC-Regular, PingFang SC; + font-weight: 400; + color: #ff5757; + line-height: 17px; + } +} +.bgc1 { + background: #e9f3ff !important; + background-image: url(~@/assets/dashboard/bg11.png), + url(~@/assets/dashboard/bg22.png) !important; + background-repeat: no-repeat, no-repeat !important; + background-position: 0 0, calc(100% - 12px) 100% !important; + .title { + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; + font-size: 16px; + font-family: PingFangSC-Semibold, PingFang SC; + font-weight: 600; + color: #333; + span { + margin-left: 10px; + font-size: 12px; + font-family: PingFangSC-Regular, PingFang SC; + font-weight: 400; + color: #999; + } + } + .home-user-task-stats { + margin-top: 10px; + height: 50px; + font-size: 36px; + font-family: PingFangSC-Semibold, PingFang SC; + font-weight: 600; + line-height: 50px; + text-shadow: 2px 4px 7px rgb(85 132 255 / 50%); + } + .text-color2 { + height: 17px; + margin-top: 3px; + font-size: 12px; + font-family: PingFangSC-Regular, PingFang SC; + font-weight: 400; + color: #91a7dc; + line-height: 17px; + } +} +.headerBox { + height: 150px; + padding: 25px; +} +.el-row { + margin-bottom: 20px; + &:last-child { + margin-bottom: 0; + } +} +.el-col { + border-radius: 4px; +} +.bg-purple-dark { + background: #99a9bf; +} +.bg-purple { + background: #fff; +} +.bg-purple-light { + background: #e5e9f2; +} +.grid-content { + min-height: 36px; + border-radius: 20px; + padding: 0 20px; +} +.row-bg { + padding: 10px 0; + background-color: #f9fafc; +} +</style> -- Gitblit v1.9.3