From 73b12f808a45eda98964041f8c96ae92ea9200f1 Mon Sep 17 00:00:00 2001 From: luJianJun <2587063613@qq.com> Date: Tue, 29 Aug 2023 10:43:10 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=9B=BE=E6=A0=87=E7=BB=84?= =?UTF-8?q?=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/xEcharts/index.vue | 6 +- .../home/widgets/components/StoreData.vue | 139 ++++++++++++ .../home/widgets/components/allDataFrom.vue | 201 ++++++++--------- .../components/component/StoreInfo.vue | 176 +++++++++++++++ .../home/widgets/components/hotSearch.vue | 208 ++++++++++++++++++ .../home/widgets/components/saleInfo.vue | 133 +++++++++++ src/views/home/widgets/components/tool.js | 4 + src/views/home/widgets/index.vue | 4 +- 8 files changed, 770 insertions(+), 101 deletions(-) create mode 100644 src/views/home/widgets/components/StoreData.vue create mode 100644 src/views/home/widgets/components/component/StoreInfo.vue create mode 100644 src/views/home/widgets/components/hotSearch.vue create mode 100644 src/views/home/widgets/components/saleInfo.vue create mode 100644 src/views/home/widgets/components/tool.js diff --git a/src/components/xEcharts/index.vue b/src/components/xEcharts/index.vue index 7d00e8c..84c0a40 100644 --- a/src/components/xEcharts/index.vue +++ b/src/components/xEcharts/index.vue @@ -27,7 +27,7 @@ option: { deep:true, handler (v) { - unwarp(this.myChart).setOption(v); + unwarp(this.myChart)&&unwarp(this.myChart).setOption(v); } } }, @@ -58,6 +58,10 @@ myChart.setOption(this.myOptions); this.myChart = myChart; window.addEventListener('resize', () => myChart.resize()); + }, + setEchartOption(){ + var myChart = echarts.init(this.$refs.xEcharts, 'T'); + myChart.setOption(this.myOptions); } } } diff --git a/src/views/home/widgets/components/StoreData.vue b/src/views/home/widgets/components/StoreData.vue new file mode 100644 index 0000000..81fe6eb --- /dev/null +++ b/src/views/home/widgets/components/StoreData.vue @@ -0,0 +1,139 @@ +<template> + <div class="card-item"> + <div class="dis-f jus-bet al-item" style="position: relative;"> + <div class="date-tool"> + <span v-for="(item, i) in dateList" :key="i" class="date-tool-title" + :class="[{ 'mg-l-24': i > 0 },{'date-tool-title-check':item.type===dateTab}]" @click="dateTabCheck(item.type)">{{ item.title + }}</span> + <div class="time-mg"> + <el-date-picker + v-model="dateData" type="daterange" + range-separator="To" + start-placeholder="Start date" + value-format='YYYY-MM-DD' + end-placeholder="End date" /> + </div> + </div> + <el-tabs v-model="activeName" class="tabs-box"> + <el-tab-pane label="销售量" name="sales"> + </el-tab-pane> + <el-tab-pane label="访问量" name="access"> + </el-tab-pane> + <storeInfo :data-type="activeName" + :list-data="activeName==='access'?[900, 852, 563, 875, 705, 1120, 980, 952, 621, 548, 600, 1100]:[952, 852, 563, 875, 705, 1120, 980, 952, 621, 548, 658, 1165]"></storeInfo> + </el-tabs> + </div> + </div> +</template> + +<script> +import xEcharts from '@/components/xEcharts'; +import storeInfo from './component/StoreInfo.vue' +export default { + title: "门店数据", + icon: "el-icon-data-board", + description: "门店销售/访问量数据", + components: { + xEcharts, + storeInfo + }, + data() { + return { + activeName: 'sales', + dateList: [{title:'今日',type:'day'}, {title:'本周',type:'week'},{title:'本月',type:'month'}, {title:'全年',type:'year'}], + dateData:['',''], + dateTab:'' + } + }, + methods: { + dateTabCheck(type){ + if(type===this.dateTab)return + this.dateTab=type + this.dateData=this.getDate(type) + }, + getDate(type){ + let date=new Date() + let dateTime = date.getTime() + let timeSpan = type==='day'?0:type==='week'?604800000:type==='month'?2592000000:type==='year'?31536000000:0 + let previousDates = new Date(dateTime-timeSpan) + if(type==='day'){ + return [ + `${previousDates.getFullYear()}-${this.determineNum(previousDates.getMonth()+1)}-${this.determineNum(previousDates.getDate())}`, + `${previousDates.getFullYear()}-${this.determineNum(previousDates.getMonth()+1)}-${this.determineNum(previousDates.getDate())}`] + }else{ + return [ + `${previousDates.getFullYear()}-${this.determineNum(previousDates.getMonth()+1)}-${this.determineNum(previousDates.getDate())}`, + `${date.getFullYear()}-${this.determineNum(date.getMonth()+1)}-${this.determineNum(date.getDate())}`] + } + }, + determineNum(num){ + return num<10?'0'+num:num + } + }, + mounted() { + + }, +} +</script> + +<style scoped> +.pos-r { + position: relative; +} + +.dis-f { + display: flex; +} + +.al-item { + align-items: center; +} + +.jus-bet { + justify-content: space-between; +} + +.card-item { + width: 100%; + background: #fff; +} + +.tabs-box { + width: 100%; + position: relative; +} + +.date-tool { + height: 50px; + display: flex; + align-items: center; + position: absolute; + top: 0; + right: 0; + z-index: 333; +} + +.date-tool .mg-l-24 { + margin-left: 24px; +} +.date-tool .time-mg{ + margin:0 24px; +} + +.date-tool-title { + font-size: 14px; + cursor: pointer; +} +.date-tool-title-check{ + color:#409EFF !important; +} + +::v-deep .el-tabs__nav-scroll { + margin: 0 24px; +} + +::v-deep .el-tabs__item { + height: 50px; + line-height: 50px; +} +</style> diff --git a/src/views/home/widgets/components/allDataFrom.vue b/src/views/home/widgets/components/allDataFrom.vue index ea2cb88..e1898a4 100644 --- a/src/views/home/widgets/components/allDataFrom.vue +++ b/src/views/home/widgets/components/allDataFrom.vue @@ -1,95 +1,21 @@ <template> <div class="card-box"> - <el-card shadow="hover" class="card-item"> + <el-card shadow="hover" class="card-item" v-for="(item, i) in list" :key="i"> <div> <div class="item-text dis-f al-item jus-bet"> - 总销售额 + {{ item.title }} <el-icon :size="15"> <el-icon-warning-filled /> </el-icon> </div> <div class="item-price mg-t-10 mg-b-3" style="margin-left: -6px;"> - <span style="margin-right:2px;">¥</span>{{ setMark('45123456') }} + <span v-if="item.type == 'sale'"><span style="margin-right:2px;">¥</span>{{ setNumMark('45123456') + }}</span> + <span v-if="item.type == 'access'">{{ setNumMark('45123456') }}</span> + <span v-if="item.type == 'payment'">{{ setNumMark('45123456') }}</span> + <span v-if="item.type == 'operate'">78%</span> </div> - <div class="dis-f al-item item-text color-000"> - 同比周 <span class="mg-l-10">12%</span> - <el-icon :size="10" color="#f5222d" class="mg-l-5"> - <el-icon-caret-top /> - </el-icon> - </div> - <div class="dis-f al-item item-text color-000"> - 同比日 <span class="mg-l-10">11%</span> - <el-icon :size="10" color="#52c41a" class="mg-l-5"> - <el-icon-caret-bottom /> - </el-icon> - </div> - <div class="bor-b"></div> - <div class="item-text color-000"> - 日销售额 <span style="margin-right:2px;">¥</span>{{ setMark('45123456') }} - </div> - </div> - </el-card> - <el-card shadow="hover" class="card-item"> - <div> - <div class="item-text dis-f al-item jus-bet"> - 访问量 - <el-icon :size="15"> - <el-icon-warning-filled /> - </el-icon> - </div> - <div class="item-price mg-t-10 mg-b-3"> - {{ setMark('45123456') }} - </div> - <div ref="echartDiv" style="height:44px;width:100%;"> - - </div> - <!-- <xEcharts ref="c1" height="44px" :option="accessOption"></xEcharts> --> - <div class="bor-b"></div> - <div class="item-text color-000"> - 日访问量 <span style="margin-right:2px;">¥</span>{{ setMark('45123456') }} - </div> - </div> - </el-card> - <el-card shadow="hover" class="card-item"> - <div> - <div class="item-text dis-f al-item jus-bet"> - 支付笔数 - <el-icon :size="15"> - <el-icon-warning-filled /> - </el-icon> - </div> - <div class="item-price mg-t-10 mg-b-3"> - {{ setMark('45123456') }} - </div> - <xEcharts ref="c1" height="44px" :option="payOption"></xEcharts> - <div class="bor-b"></div> - <div class="item-text color-000"> - 转化率 60% - </div> - </div> - </el-card> - <el-card shadow="hover" class="card-item"> - <div> - <div class="item-text dis-f al-item jus-bet"> - 运营活动效果图 - <el-icon :size="15"> - <el-icon-warning-filled /> - </el-icon> - </div> - <div class="item-price mg-t-10 mg-b-3"> - 78% - </div> - <div class="progress-box"> - <div class="dis-f al-item pos-r"> - <el-progress style="width:100%;position: relative;" :percentage="80" - :format="(percentage) => (percentage === 100 ? '' : '')"> - <div class="line" style="left:80%;"> - </div> - </el-progress> - </div> - </div> - <div class="bor-b"></div> - <div class="item-text color-000 dis-f al-item jus-bet"> + <div v-if="item.type == 'sale'"> <div class="dis-f al-item item-text color-000"> 同比周 <span class="mg-l-10">12%</span> <el-icon :size="10" color="#f5222d" class="mg-l-5"> @@ -103,14 +29,55 @@ </el-icon> </div> </div> + <div v-if="item.type == 'access'"> + <xEcharts ref="c1" height="44px" :option="accessOption"></xEcharts> + </div> + <div v-if="item.type == 'payment'"> + <xEcharts ref="c1" height="44px" :option="payOption"></xEcharts> + </div> + <div v-if="item.type == 'operate'"> + <div class="progress-box"> + <div class="dis-f al-item pos-r"> + <el-progress style="width:100%;position: relative;" :percentage="80" + :format="(percentage) => (percentage === 100 ? '' : '')"> + <div class="line-box" style="left:80%;"> + <div class="line"></div> + <div class="line"></div> + </div> + </el-progress> + </div> + </div> + </div> + + <div class="bor-b"></div> + <div class="item-text color-000" :class="{ 'dis-f al-item jus-bet': item.type == 'operate' }"> + <span v-if="item.type == 'sale'">日销售额 <span style="margin-right:2px;">¥</span>{{ setNumMark('45123456') + }}</span> + <span v-if="item.type == 'access'">日访问量 <span style="margin-right:2px;">¥</span>{{ + setNumMark('45123456') + }}</span> + <span v-if="item.type == 'payment'">转化率 60%</span> + <div class="dis-f al-item item-text color-000" v-if="item.type == 'operate'"> + 同比周 <span class="mg-l-10">12%</span> + <el-icon :size="10" color="#f5222d" class="mg-l-5"> + <el-icon-caret-top /> + </el-icon> + </div> + <div class="dis-f al-item item-text color-000" v-if="item.type == 'operate'"> + 同比日 <span class="mg-l-10">11%</span> + <el-icon :size="10" color="#52c41a" class="mg-l-5"> + <el-icon-caret-bottom /> + </el-icon> + </div> + </div> </div> </el-card> </div> </template> <script> -import * as echarts from 'echarts'; import xEcharts from '@/components/xEcharts'; +import { setMark } from './tool.js' export default { title: "各项数据", icon: "el-icon-trend-charts", @@ -120,6 +87,25 @@ export default { }, data() { return { + + list: [ + { + type: 'sale', + title: '销售总额' + }, + { + type: 'access', + title: '访问总量' + }, + { + type: 'payment', + title: '支付笔数' + }, + { + type: 'operate', + title: '运营活动效果图' + }, + ], accessOption: { xAxis: { show: false, @@ -139,7 +125,7 @@ export default { { data: [820, 932, 901, 934, 1290, 1330, 1320], type: 'line', - areaStyle: {} + // areaStyle: {} } ] }, @@ -169,19 +155,11 @@ export default { } }, methods: { - setMark(num) { - return num.replace(/\B(?=(\d{3})+(?!\d))/g, ',') - }, - setEchart() { - let myChart = echarts.init(this.$refs.echartDiv, 'T'); - - let option; - option = this.accessOption - option && myChart.setOption(option); + setNumMark(num) { + return setMark(num) } }, mounted() { - this.setEchart() }, } </script> @@ -227,10 +205,13 @@ export default { display: flex; align-items: center; justify-content: space-between; + flex-wrap: wrap; } .card-item { width: 24%; + min-width: 246px; + /* margin-right: 10px; */ } .item-text { @@ -261,19 +242,43 @@ export default { position: relative; } -.progress-box .line { +.progress-box .line-box { height: 20px; width: 1px; position: absolute; - top: -6px; + top: -7px; z-index: 6; + + display: flex; + justify-content: space-between; + align-items: center; + flex-direction: column; +} + +.progress-box .line-box .line { background: #409EFF; + height: 3px; + width: 2px; } /* .el-progress--line { width: 350px } */ -::v-deep .el-progress{ - display:block; +::v-deep .el-progress { + display: block; +} + +@media screen and (max-width: 550px) { + .card-item { + width: 100%; + } +} + +@media (min-width:550px) and (max-width: 1115px) { + .card-item { + width: 48%; + min-width: 246px; + /* margin-right: 10px; */ + } } </style> diff --git a/src/views/home/widgets/components/component/StoreInfo.vue b/src/views/home/widgets/components/component/StoreInfo.vue new file mode 100644 index 0000000..f9bdd89 --- /dev/null +++ b/src/views/home/widgets/components/component/StoreInfo.vue @@ -0,0 +1,176 @@ +<template> + <div class="dis-f al-item jus-bet box-pd font"> + <div class="w-70"> + <div style="margin-bottom:20px"> + {{ dataType === 'sales' ? '销售趋势' : '访问量趋势' }} + </div> + <xEcharts ref="c1" height="254px" :option="payOption"></xEcharts> + </div> + <div class="w-30"> + <div style="margin-bottom:20px"> + {{ dataType === 'sales' ? '门店销售额排名' : '门店访问量排名' }} + </div> + <div style="height:254px;"> + <div class="dis-f al-item w-100 mg-t-16" v-for="(item, i) in list" :key="i"> + <div class="list-num" :class="{ 'list-top': i < 3 }">{{ i + 1 }}</div> + <div class="dis-f al-item" style="flex: 1;justify-content: space-between;"> + <span>{{ item.title }}</span> + <span>{{ setNumMark(item.num) }}</span> + </div> + </div> + </div> + </div> + </div> +</template> + +<script> +import xEcharts from '@/components/xEcharts'; +import { setMark } from '../tool'; +export default { + components: { + xEcharts + }, + props: { + dataType: { + type: String, + default: 'sales' + }, + listData:{ + type:Array, + default:function(){ + return [] + } + } + }, + watch:{ + listData(nval){ + this.payOption.series[0].data=nval + } + }, + data() { + return { + payOption: { + xAxis: { + splitLine: false, + type: 'category', + boundaryGap: true, + data: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'] + }, + yAxis: { + min: 0, + splitNumber: 3, + type: 'value' + }, + tooltip: { + trigger: 'axis' + }, + series: [ + { + data: this.listData, + type: 'bar', + // areaStyle: {}, + } + ] + }, + list: [ + { + title: '123', + num: '123456789' + }, + { + title: '123', + num: '123456789' + }, + { + title: '123', + num: '123456789' + }, + { + title: '123', + num: '123456789' + }, + { + title: '123', + num: '123456789' + }, + { + title: '123', + num: '123456789' + }, + { + title: '123', + num: '123456789' + } + ] + } + }, + methods: { + setNumMark(num) { + return setMark(num) + } + }, + mounted() { + + }, +} +</script> + +<style scoped> +.pos-r { + position: relative; +} + +.dis-f { + display: flex; +} + +.al-item { + align-items: center; +} + +.jus-bet { + justify-content: space-between; +} + +.box-pd { + padding: 0 24px 24px 24px; +} + +.font { + color: #000000d9; + font-weight: 500; + font-size: 14px; +} + +.w-70 { + width: 70% +} + +.w-30 { + width: 30% +} + +.w-100 { + width: 100%; +} + +.mg-t-16{ + margin-top:16px; +} +.list-num { + width: 20px; + height: 20px; + margin-top: 1.5px; + margin-right: 16px; + font-weight: 600; + font-size: 12px; + line-height: 20px; + text-align: center; + border-radius: 50%; + background: #f5f5f5; +} + +.list-top { + color: #fff; + background: #314659; +}</style> diff --git a/src/views/home/widgets/components/hotSearch.vue b/src/views/home/widgets/components/hotSearch.vue new file mode 100644 index 0000000..9c8a0b9 --- /dev/null +++ b/src/views/home/widgets/components/hotSearch.vue @@ -0,0 +1,208 @@ +<template> + <div class="card-item"> + <div class="dis-f al-item jus-bet box-text" style="padding:0 24px;"> + 线上热门搜索 + <el-dropdown> + <span class="el-dropdown-link"> + <el-icon :size="15"> + <el-icon-More /> + </el-icon> + </span> + <template #dropdown> + <el-dropdown-menu> + <el-dropdown-item>Action 1</el-dropdown-item> + <el-dropdown-item>Action 2</el-dropdown-item> + </el-dropdown-menu> + </template> + </el-dropdown> + </div> + <div class="line" style="margin-top:16px;"></div> + <div class="info-box"> + <div class="dis-f al-item jus-bet"> + <div style="flex: 0.5;"> + <div class="dis-f al-item"> + 搜索用户数 + <el-dropdown style="margin-left:15px;"> + <span class="el-dropdown-link"> + <el-icon :size="15"> + <el-icon-Warning /> + </el-icon> + </span> + <template #dropdown> + <el-dropdown-menu> + <el-dropdown-item>指标说明</el-dropdown-item> + </el-dropdown-menu> + </template> + </el-dropdown> + </div> + <div class="info-num-text dis-f al-item"> + {{ setNumMark('12321') }} + <span style="font-size: 16px;margin-left:30px;"> + 17.1 + <el-icon :size="10" color="#52c41a"> + <el-icon-caret-bottom /> + </el-icon> + <el-icon :size="10" color="#f5222d"> + <el-icon-caret-top /> + </el-icon> + </span> + </div> + <div> + <xEcharts ref="c1" height="45px" :option="seachOption"></xEcharts> + </div> + </div> + <div style="flex: 0.5;"> + <div class="dis-f al-item"> + 人均搜索次数 + <el-dropdown style="margin-left:15px;"> + <span class="el-dropdown-link"> + <el-icon :size="15"> + <el-icon-Warning /> + </el-icon> + </span> + <template #dropdown> + <el-dropdown-menu> + <el-dropdown-item>指标说明</el-dropdown-item> + </el-dropdown-menu> + </template> + </el-dropdown> + </div> + <div class="info-num-text dis-f al-item"> + 2.7 + <span style="font-size: 16px;margin-left:30px;"> + 17.1 + <el-icon :size="10" color="#52c41a"> + <el-icon-caret-bottom /> + </el-icon> + <el-icon :size="10" color="#f5222d"> + <el-icon-caret-top /> + </el-icon> + </span> + </div> + <div> + <xEcharts ref="c1" height="45px" :option="seachOption"></xEcharts> + </div> + </div> + </div> + <div> + <el-table :data="tableData" style="width: 100%"> + <el-table-column prop="id" label="排名" /> + <el-table-column prop="seachKey" label="搜索关键词" /> + <el-table-column prop="userNum" label="用户数" sortable /> + <el-table-column prop="Increase" label="周涨幅" sortable> + <template #default="scope"> + {{ scope.row.Increase }} + <el-icon :size="10" color="#52c41a"> + <el-icon-caret-bottom /> + </el-icon> + <el-icon :size="10" color="#f5222d"> + <el-icon-caret-top /> + </el-icon> + </template> + </el-table-column> + </el-table> + </div> + </div> + <div class="dis-f" style="justify-content: flex-end;margin-top:16px;padding:0 24px;"> + <el-pagination layout="prev, pager, next" :total="50" /> + </div> + </div> +</template> + +<script> +import xEcharts from '@/components/xEcharts'; +import { setMark } from './tool.js' +export default { + title: "线上热门搜索", + icon: "el-icon-search", + description: "热门搜索数据", + components: { + xEcharts + }, + data() { + return { + seachOption: { + xAxis: { + show: false, + type: 'category', + data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] + }, + yAxis: { + show: false, + type: 'value' + }, + tooltip: { + trigger: 'axis' + }, + series: [ + { + data: [820, 932, 901, 934, 1290, 1330, 1320], + type: 'line', + smooth: true + } + ] + }, + tableData: [ + { id: 1, seachKey: '搜索123', userNum: 158, Increase: '4%' } + ] + } + }, + methods: { + setNumMark(num) { + return setMark(num) + } + }, + mounted() { + + }, +} +</script> + +<style scoped> +.pos-r { + position: relative; +} + +.dis-f { + display: flex; +} + +.al-item { + align-items: center; +} + +.jus-bet { + justify-content: space-between; +} + +.box-text { + color: #000000d9; + font-weight: 500; + font-size: 16px; +} + +.card-item { + background: #fff; + padding: 16px 0; +} + +.line { + width: 100%; + height: 1px; + background: #f0f0f0; +} + +.info-box { + padding: 24px 24px 0 24px; + font-size: 14px; + color: #00000073; +} + +.info-num-text { + color: #000000d9; + height: 32px; + font-size: 24px; + line-height: 32px; + margin-top: 10px; +} +</style> diff --git a/src/views/home/widgets/components/saleInfo.vue b/src/views/home/widgets/components/saleInfo.vue new file mode 100644 index 0000000..2df497a --- /dev/null +++ b/src/views/home/widgets/components/saleInfo.vue @@ -0,0 +1,133 @@ +<template> + <div class="card-item"> + <div class="dis-f al-item jus-bet box-text pd-24"> + 销售额类别占比 + <el-dropdown> + <span class="el-dropdown-link"> + <el-icon :size="15"> + <el-icon-More /> + </el-icon> + </span> + <template #dropdown> + <el-dropdown-menu> + <el-dropdown-item>Action 1</el-dropdown-item> + <el-dropdown-item>Action 2</el-dropdown-item> + </el-dropdown-menu> + </template> + </el-dropdown> + </div> + <div class="line" style="margin-top:16px;"></div> + <div class="info-box pd-24"> + <div class="mg-tb-32">销售额</div> + <div class="dis-f al-item"> + <div style="width:100%;height:300px;"> + <xEcharts ref="c1" :option="saleOption"></xEcharts> + </div> + </div> + </div> + </div> +</template> + +<script> +import xEcharts from '@/components/xEcharts'; +export default { + title: "销售额类别占比", + icon: "el-icon-help-filled", + description: "销售额类别", + components: { + xEcharts + }, + data() { + return { + saleOption:{ + tooltip: { + trigger: 'item' + }, + legend: { + top: '5%', + left: 'center' + }, + series: [ + { + name: 'Access From', + type: 'pie', + radius: ['40%', '70%'], + avoidLabelOverlap: false, + itemStyle: { + borderRadius: 10, + borderColor: '#fff', + borderWidth: 2 + }, + label: { + show: false, + position: 'center' + }, + labelLine: { + show: false + }, + data: [ + { value: 1048, name: 'Search Engine' }, + { value: 735, name: 'Direct' }, + { value: 580, name: 'Email' }, + { value: 484, name: 'Union Ads' }, + { value: 300, name: 'Video Ads' } + ] + } + ] +} + } + }, + methods: { + + }, + mounted() { + + }, +} +</script> + +<style scoped> +.dis-f { + display: flex; +} + +.al-item { + align-items: center; +} + +.jus-bet { + justify-content: space-between; +} + +.box-text { + color: #000000d9; + font-weight: 500; + font-size: 16px; +} + +.card-item { + background: #fff; + padding: 16px 0; + margin-top:15px; +} + +.line { + width: 100%; + height: 1px; + background: #f0f0f0; +} + +.info-box { + padding-top: 24px; + font-size: 14px; + color: #000000d9; + font-size:500; +} +.pd-24{ + padding:0 24px; +} +.mg-tb-32{ + margin:32px 0; +} + +</style> diff --git a/src/views/home/widgets/components/tool.js b/src/views/home/widgets/components/tool.js new file mode 100644 index 0000000..e05fec1 --- /dev/null +++ b/src/views/home/widgets/components/tool.js @@ -0,0 +1,4 @@ +const setMark=(num)=> { + return num.replace(/\B(?=(\d{3})+(?!\d))/g, ',') +} +export {setMark} \ No newline at end of file diff --git a/src/views/home/widgets/index.vue b/src/views/home/widgets/index.vue index 77e0a6b..7ce7b1f 100644 --- a/src/views/home/widgets/index.vue +++ b/src/views/home/widgets/index.vue @@ -111,7 +111,7 @@ comp.disabled = true } } - console.log(allCompsList) + // console.log(allCompsList) return allCompsList }, myCompsList(){ @@ -222,7 +222,7 @@ border: 1px dashed var(--el-color-primary); padding: 15px; } - .customize-overlay {position: absolute;top:0;right:0;bottom:0;left:0;z-index: 1;display: flex;flex-direction: column;align-items: center;justify-content: center;background: rgba(255,255,255,0.9);cursor: move;} + .customize-overlay {position: absolute;top:0;right:0;bottom:0;left:0;z-index: 666;display: flex;flex-direction: column;align-items: center;justify-content: center;background: rgba(255,255,255,0.9);cursor: move;} .customize-overlay label {background: var(--el-color-primary);color: #fff;height:40px;padding:0 30px;border-radius: 40px;font-size: 18px;display: flex;align-items: center;justify-content: center;cursor: move;} .customize-overlay label i {margin-right: 15px;font-size: 24px;} .customize-overlay .close {position: absolute;top:15px;right:15px;}