|
@@ -0,0 +1,553 @@
|
|
|
+<template>
|
|
|
+ <div>
|
|
|
+ <!-- 标题 -->
|
|
|
+
|
|
|
+ <div class="title" style="margin-top: 10px">
|
|
|
+ <div style="display: flex; justify-content: space-between">
|
|
|
+ <h1 style="color: azure">漯河亿通集团数据看板</h1>
|
|
|
+
|
|
|
+ <div class="time">
|
|
|
+ <span class="iconfont icon-riqi"></span> {{ currentTime }}
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <img src="../../assets/bargound/图层 6.png" width="100%" />
|
|
|
+ </div>
|
|
|
+ <div class="content">
|
|
|
+ <el-tabs type="border-card" class="theme">
|
|
|
+ <div style="display: flex; justify-content: space-between">
|
|
|
+ <!-- 图标 -->
|
|
|
+ <div>
|
|
|
+ <p>
|
|
|
+ <img src="../../assets/bargound/data.png" alt="" /><span
|
|
|
+ class="kccl"
|
|
|
+ >交车排行</span
|
|
|
+ >
|
|
|
+ </p>
|
|
|
+ </div>
|
|
|
+ <div style="display: flex">
|
|
|
+ <!-- 下拉框 -->
|
|
|
+ <div style="margin-right: 20px">
|
|
|
+ <el-select
|
|
|
+ class="select"
|
|
|
+ v-model="company_ids"
|
|
|
+ multiple
|
|
|
+ placeholder="请选择"
|
|
|
+ style="width: 200px"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in options"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.text"
|
|
|
+ :value="item.value"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </div>
|
|
|
+ <!-- 日期表 -->
|
|
|
+ <div class="dataForm" style="margin-right: 20px">
|
|
|
+ <el-date-picker
|
|
|
+ v-model="value1"
|
|
|
+ type="month"
|
|
|
+ placeholder="2023-08"
|
|
|
+ >
|
|
|
+ </el-date-picker>
|
|
|
+ </div>
|
|
|
+ <!-- 按钮 -->
|
|
|
+ <el-button
|
|
|
+ @click="searchBtn"
|
|
|
+ style="background-color: rgb(40, 155, 209); color: black"
|
|
|
+ >查询</el-button
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <!-- 表格 -->
|
|
|
+ <el-tabs type="border-card" class="theme">
|
|
|
+ <el-tab-pane label="销售顾问业绩排名" >
|
|
|
+ <el-table
|
|
|
+ class="exporttable"
|
|
|
+ :data="tableDataOne"
|
|
|
+ border
|
|
|
+ stripe
|
|
|
+ :header-cell-style="{
|
|
|
+ 'text-align': 'center',
|
|
|
+ background: '#03111c',
|
|
|
+ }"
|
|
|
+ :cell-style="{ 'text-align': 'center' }"
|
|
|
+ style="width: 100%; margin: 1px"
|
|
|
+ >
|
|
|
+ <el-table-column prop="pm" label="排名"> </el-table-column>
|
|
|
+ <el-table-column prop="company" label="店面"> </el-table-column>
|
|
|
+ <el-table-column prop="xsgw" label="销售顾问"> </el-table-column>
|
|
|
+
|
|
|
+ <el-table-column prop="xzjk" label="新增集客"> </el-table-column>
|
|
|
+ <el-table-column prop="xzdd" label="新增订单"> </el-table-column>
|
|
|
+ <el-table-column prop="cjl" label="成交率"> </el-table-column>
|
|
|
+ </el-table>
|
|
|
+ </el-tab-pane>
|
|
|
+ <el-tab-pane label="各品牌销售统计" >
|
|
|
+ <!-- 表格 -->
|
|
|
+ <el-table
|
|
|
+ class="exporttable"
|
|
|
+ :data="tableDataTwo"
|
|
|
+ border
|
|
|
+ stripe
|
|
|
+ :header-cell-style="{
|
|
|
+ 'text-align': 'center',
|
|
|
+ background: '#03111c',
|
|
|
+ }"
|
|
|
+ :cell-style="{ 'text-align': 'center' }"
|
|
|
+ style="width: 100%; margin: 1px"
|
|
|
+ >
|
|
|
+ <el-table-column prop="company" label="店名"> </el-table-column>
|
|
|
+ <el-table-column prop="name" label="">
|
|
|
+ <el-table-column prop="pp" label="品牌"> </el-table-column>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="amount1" label="周度销量">
|
|
|
+ <el-table-column prop="week1" label="1"> </el-table-column>
|
|
|
+ <el-table-column prop="week2" label="2"> </el-table-column>
|
|
|
+ <el-table-column prop="week3" label="3"> </el-table-column>
|
|
|
+ <el-table-column prop="week4" label="4"> </el-table-column>
|
|
|
+ <el-table-column prop="week5" label="5"> </el-table-column>
|
|
|
+ <el-table-column prop="week6" label="6"> </el-table-column>
|
|
|
+ <el-table-column prop="week7" label="7"> </el-table-column>
|
|
|
+ <el-table-column label="环比">
|
|
|
+ <el-table-column prop="week_hb_1" label=""> </el-table-column>
|
|
|
+ <el-table-column prop="week_hb_2" label=""> </el-table-column>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table-column>
|
|
|
+
|
|
|
+ <el-table-column prop="amount6" label="月销量">
|
|
|
+ <el-table-column prop="dylj" label="当月累计">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="sysj" label="上月数据">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="amount7" label="环比">
|
|
|
+ <el-table-column prop="month_hb_1" label="">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="month_hb_2" label="">
|
|
|
+ </el-table-column>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="month_tb" label="同比">
|
|
|
+ </el-table-column>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="amount7" label="">
|
|
|
+ <el-table-column prop="bymb" label="本月目标">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="wcl" label="完成率"> </el-table-column>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+ </el-tab-pane>
|
|
|
+ <!-- <el-tab-pane label="销售数据对标">
|
|
|
+
|
|
|
+
|
|
|
+ 表格
|
|
|
+ <el-table
|
|
|
+ class="exporttable"
|
|
|
+ :data="tableData"
|
|
|
+ border
|
|
|
+ show-summary
|
|
|
+ stripe
|
|
|
+ :header-cell-style="{
|
|
|
+ 'text-align': 'center',
|
|
|
+ background: '#03111c'
|
|
|
+ }"
|
|
|
+ :cell-style="{ 'text-align': 'center' }"
|
|
|
+
|
|
|
+ style="width: 100%; margin: 1px">
|
|
|
+ <el-table-column
|
|
|
+ prop="id"
|
|
|
+ label="店名">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="name"
|
|
|
+ label="新增客流量">
|
|
|
+ <el-table-column
|
|
|
+ prop="amount1"
|
|
|
+ label="首次进店">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="amount1"
|
|
|
+ label="首次来店">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="amount1"
|
|
|
+ label="再次来店">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="amount1"
|
|
|
+ label="接待合计">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="amount1"
|
|
|
+ label="新增合计">
|
|
|
+ </el-table-column>
|
|
|
+
|
|
|
+
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="amount1"
|
|
|
+ label="新增建档量">
|
|
|
+ <el-table-column
|
|
|
+ prop="amount2"
|
|
|
+ label="进店">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="amount3"
|
|
|
+ label="来店">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="amount4"
|
|
|
+ label="合计">
|
|
|
+ </el-table-column>
|
|
|
+
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="amount4"
|
|
|
+ label="建档率">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="amount6"
|
|
|
+ label="试乘驾驶">
|
|
|
+ <el-table-column
|
|
|
+ prop="amount7"
|
|
|
+ label="数量">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="amount7"
|
|
|
+ label="试乘试驾率">
|
|
|
+ </el-table-column>
|
|
|
+
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="amount7"
|
|
|
+ label="再次进店率">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="amount7"
|
|
|
+ label="交强险">
|
|
|
+ <el-table-column
|
|
|
+ prop="amount7"
|
|
|
+ label="数量">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="amount7"
|
|
|
+ label="渗透率">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="amount7"
|
|
|
+ label="金额">
|
|
|
+ </el-table-column>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="amount7"
|
|
|
+ label="商业险">
|
|
|
+ <el-table-column
|
|
|
+ prop="amount7"
|
|
|
+ label="数量">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="amount7"
|
|
|
+ label="渗透率">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="amount7"
|
|
|
+ label="金额">
|
|
|
+ </el-table-column>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="amount7"
|
|
|
+ label="精品">
|
|
|
+ <el-table-column
|
|
|
+ prop="amount7"
|
|
|
+ label="客单价">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="amount7"
|
|
|
+ label="单数">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="amount7"
|
|
|
+ label="渗透率">
|
|
|
+ </el-table-column>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+ </el-tab-pane> -->
|
|
|
+ </el-tabs>
|
|
|
+
|
|
|
+ <!-- <el-tab-pane label=" 分渠道销量统计分析">配置管理</el-tab-pane> -->
|
|
|
+ </el-tabs>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script>
|
|
|
+import axios from "axios";
|
|
|
+
|
|
|
+import { number } from "echarts";
|
|
|
+export default {
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+
|
|
|
+ company_ids: [],
|
|
|
+ currentTime: "",
|
|
|
+ value: "",
|
|
|
+
|
|
|
+ //表格各类属性
|
|
|
+ tableDataOne: [],
|
|
|
+ tableDataTwo: [],
|
|
|
+ //下拉框内属性
|
|
|
+ options: [],
|
|
|
+ //日期表属性
|
|
|
+ pickerOptions: {
|
|
|
+ shortcuts: [
|
|
|
+ {
|
|
|
+ text: "最近一个月",
|
|
|
+ onClick(picker) {
|
|
|
+ const end = new Date();
|
|
|
+ const start = new Date();
|
|
|
+ start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
|
|
|
+ picker.$emit("pick", [start, end]);
|
|
|
+ },
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ },
|
|
|
+ value1: ["2023-08-01"],
|
|
|
+ };
|
|
|
+ },
|
|
|
+ computed: {
|
|
|
+ Riqi: function getNowFormatDate() {
|
|
|
+ let date = new Date(),
|
|
|
+ year = date.getFullYear(), //获取完整的年份(4位)
|
|
|
+ month = date.getMonth() + 1, //获取当前月份(0-11,0代表1月)
|
|
|
+ strDate = date.getDate(); // 获取当前日(1-31)
|
|
|
+ if (month < 10) month = `0${month}`; // 如果月份是个位数,在前面补0
|
|
|
+ if (strDate < 10) strDate = `0${strDate}`; // 如果日是个位数,在前面补0
|
|
|
+
|
|
|
+ return `${year}-${month}`;
|
|
|
+ },
|
|
|
+ nianyue: function getNowFormatDate() {
|
|
|
+ let date = new Date(),
|
|
|
+ year = date.getFullYear(), //获取完整的年份(4位)
|
|
|
+ month = date.getMonth() + 1, //获取当前月份(0-11,0代表1月)
|
|
|
+ strDate = date.getDate(); // 获取当前日(1-31)
|
|
|
+ if (month < 10) month = `0${month}`; // 如果月份是个位数,在前面补0
|
|
|
+ if (strDate < 10) strDate = `0${strDate}`; // 如果日是个位数,在前面补0
|
|
|
+
|
|
|
+ return `${year}-${month}-${strDate}`;
|
|
|
+ },
|
|
|
+ },
|
|
|
+ mounted() {
|
|
|
+ this.updateTime(); //时间
|
|
|
+ this.getTableDateOne(); //开始获取表格
|
|
|
+ this.getTableDateTwo(); //开始获取表格
|
|
|
+ this.getSelectDate(); //下拉框接口数据
|
|
|
+ console.log(this.Riqi);
|
|
|
+ this.value1 = this.Riqi;
|
|
|
+ },
|
|
|
+ beforeDestroy() {
|
|
|
+ // 在组件销毁前清除定时器,避免内存泄漏
|
|
|
+ clearInterval(this.timer);
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ //表格接口数据
|
|
|
+ getTableDateOne() {
|
|
|
+ axios
|
|
|
+ .get("http://192.168.2.55:8022/plugins/lhyt/jcpm_detail/xsgwyjpm", {
|
|
|
+ params: {
|
|
|
+ company_ids: this.company_ids.join(),
|
|
|
+ search_month: this.Riqi,
|
|
|
+ },
|
|
|
+ })
|
|
|
+ .then((res) => {
|
|
|
+ console.log("--------11111", res.data.data);
|
|
|
+ this.tableDataOne = res.data.data;
|
|
|
+ });
|
|
|
+ },
|
|
|
+ getTableDateTwo() {
|
|
|
+ axios
|
|
|
+ .get("http://192.168.2.55:8022/plugins/lhyt/jcpm_detail/gppxltj", {
|
|
|
+ params: {
|
|
|
+ company_ids: this.company_ids.join(),
|
|
|
+ search_date: this.nianyue,
|
|
|
+ },
|
|
|
+ })
|
|
|
+ .then((res) => {
|
|
|
+ console.log("--------2222", res.data);
|
|
|
+ this.tableDataTwo = res.data.data;
|
|
|
+ });
|
|
|
+ },
|
|
|
+ // getTableDateThree() {
|
|
|
+ // axios
|
|
|
+ // .get("http://192.168.2.55:8022/plugins/lhyt/jcpm_detail/fcxxltj", {
|
|
|
+ // params: {
|
|
|
+ // company_ids:this.company_ids,
|
|
|
+ // date_begin: this.value1[0],
|
|
|
+ // date_end: this.value1[1],
|
|
|
+ // },
|
|
|
+
|
|
|
+ // })
|
|
|
+ // .then((res) => {
|
|
|
+ // console.log("--------33333",res);
|
|
|
+ // this.tableData = res.data.data;
|
|
|
+ // });
|
|
|
+ // },
|
|
|
+ //表格接口数据
|
|
|
+
|
|
|
+ //下拉框数据
|
|
|
+ getSelectDate() {
|
|
|
+ axios
|
|
|
+ .get("http://192.168.2.55:8022/plugins/lhyt/get_companies")
|
|
|
+ .then((ret) => {
|
|
|
+ this.options = ret.data.data;
|
|
|
+ });
|
|
|
+ },
|
|
|
+ //更新时间
|
|
|
+ updateTime() {
|
|
|
+ // 在组件挂载结束时启动定时器,每秒更新一次时间
|
|
|
+ this.currentTime = this.getCurrentTime();
|
|
|
+ //每秒更新一次
|
|
|
+ this.timer = setInterval(() => {
|
|
|
+ this.currentTime = this.getCurrentTime();
|
|
|
+ }, 1000);
|
|
|
+ },
|
|
|
+ getCurrentTime() {
|
|
|
+ const now = new Date();
|
|
|
+ const year = now.getFullYear();
|
|
|
+ const month = String(now.getMonth() + 1).padStart(2, "0");
|
|
|
+ const day = String(now.getDate()).padStart(2, "0");
|
|
|
+ const hours = String(now.getHours()).padStart(2, "0");
|
|
|
+ const minutes = String(now.getMinutes()).padStart(2, "0");
|
|
|
+ const seconds = String(now.getSeconds()).padStart(2, "0");
|
|
|
+ return `${year}.${month}.${day} ${hours}:${minutes}:${seconds}`;
|
|
|
+ },
|
|
|
+ resetDateFilter() {
|
|
|
+ this.$refs.filterTable.clearFilter("date");
|
|
|
+ },
|
|
|
+ clearFilter() {
|
|
|
+ this.$refs.filterTable.clearFilter();
|
|
|
+ },
|
|
|
+ formatter(row, column) {
|
|
|
+ return row.address;
|
|
|
+ },
|
|
|
+ filterTag(value, row) {
|
|
|
+ return row.tag === value;
|
|
|
+ },
|
|
|
+ filterHandler(value, row, column) {
|
|
|
+ const property = column["property"];
|
|
|
+ return row[property] === value;
|
|
|
+ },
|
|
|
+ searchBtn() {
|
|
|
+ this.getTableDateOne();
|
|
|
+ console.log(this.company_ids);
|
|
|
+ },
|
|
|
+ },
|
|
|
+};
|
|
|
+</script>
|
|
|
+
|
|
|
+<style scoped="less">
|
|
|
+.content {
|
|
|
+ padding: 10px;
|
|
|
+}
|
|
|
+
|
|
|
+.title {
|
|
|
+ width: 100%;
|
|
|
+ /* background: url('../../assets/bargound/'); */
|
|
|
+ height: 64px;
|
|
|
+
|
|
|
+ p {
|
|
|
+ height: 100px;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+.kccl {
|
|
|
+ color: #697c91;
|
|
|
+ font-size: 24px;
|
|
|
+ margin-left: 10px;
|
|
|
+}
|
|
|
+.el-input__inner {
|
|
|
+ background-color: #133654;
|
|
|
+}
|
|
|
+
|
|
|
+.el-input__inner {
|
|
|
+ border: 0;
|
|
|
+}
|
|
|
+::v-deep .el-date-editor .el-range-input {
|
|
|
+ display: inline-block;
|
|
|
+ height: 100%;
|
|
|
+ width: 39%;
|
|
|
+ text-align: center;
|
|
|
+ font-size: 14px;
|
|
|
+ color: #ffffffba;
|
|
|
+ background-color: #133654;
|
|
|
+}
|
|
|
+::v-deep .el-table {
|
|
|
+ border: none;
|
|
|
+}
|
|
|
+::v-deep .el-table::before {
|
|
|
+ background-color: black;
|
|
|
+}
|
|
|
+::v-deep .el-table__footer-wrapper tbody td.el-table__cell,
|
|
|
+.el-table__header-wrapper tbody td.el-table__cell {
|
|
|
+ background-color: rgb(2, 62, 2);
|
|
|
+ color: #93acbf;
|
|
|
+}
|
|
|
+::v-deep .el-table--border::after,
|
|
|
+.el-table--group::after,
|
|
|
+.el-table::before {
|
|
|
+ content: "";
|
|
|
+ position: absolute;
|
|
|
+ background-color: black;
|
|
|
+ z-index: 1;
|
|
|
+}
|
|
|
+::v-deep
|
|
|
+ .el-tabs.theme.el-tabs--top.theme.el-tabs--border-card
|
|
|
+ .el-tabs__nav-scroll {
|
|
|
+ border-bottom: 1px solid;
|
|
|
+}
|
|
|
+::v-deep .el-table td,
|
|
|
+.building-top .el-table th.is-leaf {
|
|
|
+ color: #93acbf;
|
|
|
+}
|
|
|
+::v-deep .el-table--enable-row-hover .el-table__body tr:hover > td {
|
|
|
+ background-color: #133654;
|
|
|
+}
|
|
|
+/* 日期表 */
|
|
|
+:deep(.el-input__inner) {
|
|
|
+ background-color: #133654;
|
|
|
+ border: none;
|
|
|
+ color: #ffffffc1;
|
|
|
+}
|
|
|
+
|
|
|
+::v-deep .el-table tr {
|
|
|
+ background: #133654;
|
|
|
+}
|
|
|
+::v-deep .el-table--striped .el-table__body tr.el-table__row--striped td {
|
|
|
+ background: #081b2b;
|
|
|
+}
|
|
|
+/**
|
|
|
+改变边框颜色
|
|
|
+ */
|
|
|
+.el-table {
|
|
|
+ border-bottom: 1px solid #102b47;
|
|
|
+ border-right: 1px solid #102b47;
|
|
|
+ margin: 0 auto;
|
|
|
+}
|
|
|
+::v-deep.el-table th {
|
|
|
+ border: 1px solid #102b47 !important;
|
|
|
+ border-right: none !important;
|
|
|
+ border-bottom: none !important;
|
|
|
+}
|
|
|
+
|
|
|
+::v-deep.el-table td {
|
|
|
+ border: 1px solid #102b47;
|
|
|
+ border-right: none !important;
|
|
|
+}
|
|
|
+.time {
|
|
|
+ color: rgb(174, 201, 222);
|
|
|
+ margin-right: 2%;
|
|
|
+ font-size: 16px;
|
|
|
+ overflow: hidden;
|
|
|
+ max-width: 15%;
|
|
|
+ white-space: nowrap;
|
|
|
+}
|
|
|
+</style>
|