From 7f53834e8d8477f3ba71f24b45de59161e3bb5f1 Mon Sep 17 00:00:00 2001 From: liukangdong <898885815@qq.com> Date: 星期四, 22 八月 2024 18:10:07 +0800 Subject: [PATCH] ll --- admin/src/views/index.vue | 1110 +++++++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 788 insertions(+), 322 deletions(-) diff --git a/admin/src/views/index.vue b/admin/src/views/index.vue index 72f3b49..38b95a9 100644 --- a/admin/src/views/index.vue +++ b/admin/src/views/index.vue @@ -1,387 +1,853 @@ <template> - <div class="home"> - <div class="home_total"> - <div class="home_total_head">鍦ㄥ洯浜哄憳鎬昏</div> - <div class="home_total_list"> - <div class="home_total_list_item a"> - <span>{{ head && head.workerCount ? head.workerCount : 0 }}</span> - <span>鍐呴儴鍛樺伐</span> - </div> - <div class="home_total_list_item b"> - <span>{{ head && head.visitorCount ? head.visitorCount : 0 }}</span> - <span>璁垮</span> - </div> - <div class="home_total_list_item c"> - <span>{{ head && head.lwCount ? head.lwCount : 0 }}</span> - <span>鍔冲姟浜哄憳</span> - </div> - <div class="home_total_list_item d"> - <span>{{ - head && head.presenceCarCount ? head.presenceCarCount : 0 - }}</span> - <span>鍦ㄥ満杞﹁締</span> - </div> - <div class="home_total_list_item e"> - <span>{{ head && head.longCarCount ? head.longCarCount : 0 }}</span> - <span>闀挎湡杞﹁締</span> - </div> - <div class="home_total_list_item f"> - <span>{{ - head && head.visitorCarCount ? head.visitorCarCount : 0 - }}</span> - <span>棰勭害杞﹁締</span> - </div> - <div class="home_total_list_item g"> - <span>{{ head && head.supplierCount ? head.supplierCount : 0 }}</span> - <span>渚涘簲鍟�</span> - </div> + <div class="main_home"> + <div class="home_header"> + <div class="mb10 fs17">涓嬪崍濂斤紝绯荤粺绠$悊鍛�</div> + <div class="fs13"> + 浠婂ぉ鏄� {{ nowDate }} {{ nowWeek }}锛屾杩庡洖鍒版櫤鎱х墿娴佸洯鍖哄畨娑堜竴浣撳寲绯荤粺 </div> </div> - <div class="home_charts"> - <div class="home_charts_item"> - <div class="home_charts_item_label">鍦ㄥ洯浜哄憳鍗犳瘮</div> - <div class="home_charts_item_charts" id="chart1"></div> + <div class="main"> + <div class="app_content"> + <div class="static_card"> + <div class="card"> + <div class="header"> + <div class="left"> + <div class="fs15">浠婃棩鍦ㄥ洯浜烘暟(浜�)</div> + <div class="num">300</div> + </div> + <img src="@/assets/icons/home_icon1.png" alt="" /> + </div> + <div class="content"> + <div>鍏ュ洯浜烘(浜�)锛�600</div> + <div>鍑哄洯浜烘(浜�)锛�300</div> + </div> + </div> + <div class="card"> + <div class="header"> + <div class="left"> + <div class="fs15">鍦ㄥ洯璁垮鏁�(浜�)</div> + <div class="num">300</div> + </div> + <img src="@/assets/icons/home_icon2.png" alt="" /> + </div> + <div class="content"> + <div>璁垮浜烘(浜�)锛�200</div> + <div>绛剧浜烘(浜�)锛�300</div> + </div> + </div> + <div class="card"> + <div class="header"> + <div class="left"> + <div class="fs15">鍦ㄥ洯闀挎湡鐩稿叧鏂规暟(浜�)</div> + <div class="num">300</div> + </div> + <img src="@/assets/icons/home_icon3.png" alt="" /> + </div> + <div class="content"> + <div>鍏ュ洯浜烘(浜�)锛�600</div> + <div>鍑哄洯浜烘(浜�)锛�300</div> + </div> + </div> + <div class="card"> + <div class="header"> + <div class="left"> + <div class="fs15">鍦ㄥ洯闀挎湡鐩稿叧鏂规暟(浜�)</div> + <div class="num">300</div> + </div> + <img src="@/assets/icons/home_icon4.png" alt="" /> + </div> + <div class="content"> + <div>鍏ュ洯杞︽(杈�)锛�600</div> + <div>鍑哄洯杞︽(杈�)锛�300</div> + </div> + </div> + </div> + <div class="funcs"> + <div class="home_title">甯哥敤鍔熻兘</div> + <div class="list"> + <div v-for="item in funcList" :key="item.name" class="item"> + <img class="mb10" :src="item.url" alt="" /> + <div>{{ item.name }}</div> + </div> + </div> + </div> + <div class="static_wrap"> + <div class="df mb10"> + <div class="wrap static1"> + <div class="header"> + <div class="home_title">鍦ㄥ満浜哄憳鍗犳瘮</div> + <div class="df_ac more"> + 鏇村<i class="el-icon-arrow-right"></i> + </div> + </div> + <div class="content"> + <div class="echart_wrap"> + <div class="pie_text"> + <div class="fs13">鎬绘暟</div> + <div class="fs15"><strong>300</strong></div> + </div> + <div class="echart" id="echart1"></div> + </div> + <div class="list"> + <div class="item"> + <div class="icon"></div> + <div class="text">璁垮</div> + <div class="num">100</div> + </div> + <div class="item"> + <div :style="{ background: colors[0] }" class="icon"></div> + <div class="text">璁垮</div> + <div class="num">100</div> + </div> + <div class="item"> + <div :style="{ background: colors[1] }" class="icon"></div> + <div class="text">璁垮</div> + <div class="num">100</div> + </div> + </div> + </div> + </div> + <div class="wrap static2"> + <div class="header"> + <div class="home_title">闀挎湡鐩稿叧鏂瑰垎甯�</div> + <div class="df_ac more"> + 鏇村<i class="el-icon-arrow-right"></i> + </div> + </div> + <div class="echart" id="echart2"></div> + </div> + </div> + <div class="df"> + <div class="wrap static3"> + <div class="header"> + <div class="home_title">7鏃ヨ瀹㈢粺璁�</div> + <div class="df_ac more"> + 鏇村<i class="el-icon-arrow-right"></i> + </div> + </div> + <div class="echart" id="echart3"></div> + </div> + <div class="wrap static4"> + <div class="header"> + <div class="home_title">7鏃ヨ溅杈嗙粺璁�</div> + <div class="df_ac more"> + 鏇村<i class="el-icon-arrow-right"></i> + </div> + </div> + <div class="echart" id="echart4"></div> + </div> + </div> + </div> </div> - <div class="home_charts_item"> - <div class="home_charts_item_label">鍔冲姟浜哄憳鍒嗗竷鎬昏</div> - <div class="home_charts_item_charts" id="chart2"></div> - </div> - </div> - <div class="home_table"> - <div class="home_table_head">瓒呮椂棰勮浜哄憳({{ total }})</div> - <div class="home_table_box"> - <el-table - :data="list" - :header-cell-style="{ - background: '#dcdde2', - color: 'rgb(51, 51, 51)', - }" - border - style="width: 100%" - > - <el-table-column prop="name" label="璁垮濮撳悕"> </el-table-column> - <el-table-column prop="phone" label="璁垮鐢佃瘽"> </el-table-column> - <el-table-column prop="companyName" label="璁垮缁勭粐"> - </el-table-column> - <el-table-column label="浜哄憳绫诲瀷"> - <template slot-scope="{ row }"> - <span v-if="row.type === 0">鍔冲姟璁垮</span> - <span v-if="row.type === 1">鏅�氳瀹�</span> - <span v-if="row.type === 2">鍐呴儴浜哄憳</span> - </template> - </el-table-column> - <el-table-column prop="outDate" label="鎺堟潈鍒版湡鏃堕棿"> - </el-table-column> - <el-table-column label="鐘舵��"> - <template slot-scope="{ row }"> - <span v-if="row.outStatus === 0">鏈秴鏃�</span> - <span style="color: red" v-if="row.outStatus === 1">宸茶秴鏃�</span> - <span v-if="row.outStatus === 2">鍗冲皢瓒呮椂</span> - </template> - </el-table-column> - <el-table-column prop="address" label="澶勭悊" width="80"> - <template slot-scope="scope"> - <el-button - type="text" - @click="departure(scope.row.id)" - v-if="scope.row.outStatus === 1" - >绂诲巶</el-button - > - </template> - </el-table-column> - </el-table> - <el-pagination - style="margin-top: 20px" - @current-change="handleCurrentChange" - :current-page="page" - :page-size="10" - layout="total, prev, pager, next, jumper" - :total="total" - > - </el-pagination> + <div class="app_side"> + <div class="task"> + <div class="header df_sb"> + <div class="home_title df"> + <span>寰呭姙浜嬮」</span> + <span class="num">10</span> + </div> + <div class="df_ac more"> + 鏇村<i class="el-icon-arrow-right"></i> + </div> + </div> + <div class="list"> + <div class="item"> + <div class="content"> + <div class="title">鐐圭偣婊存淮</div> + <div class="time">time</div> + </div> + <div class="btn">澶勭悊</div> + </div> + <div class="item"> + <div class="content"> + <div class="title">鐐圭偣婊存淮</div> + <div class="time">time</div> + </div> + <div class="btn">澶勭悊</div> + </div> + </div> + </div> + <div class="warnning"> + <div class="header df_sb"> + <div class="home_title df"> + <span>瓒呮椂棰勮</span> + <span class="num">10</span> + </div> + <div class="df_ac more"> + 鏇村<i class="el-icon-arrow-right"></i> + </div> + </div> + <div class="list"> + <div class="item"> + <div class="name_wrap df_sb"> + <div class="name">琚侀殕骞�</div> + <div class="identity">鏅�氳瀹�</div> + </div> + <div class="line">鑱旂郴鐢佃瘽锛�1888</div> + <div class="line">璁垮鍏徃锛氬畨寰借眴绫�</div> + <div class="auth df_sb"> + <div class="time">鎺堟潈鏈熼檺锛�</div> + <div class="btn">绂诲満</div> + </div> + </div> + <div class="item"> + <div class="name_wrap df_sb"> + <div class="name">琚侀殕骞�</div> + <div class="identity">鏅�氳瀹�</div> + </div> + <div class="line">鑱旂郴鐢佃瘽锛�1888</div> + <div class="line">璁垮鍏徃锛氬畨寰借眴绫�</div> + <div class="auth df_sb"> + <div class="time">鎺堟潈鏈熼檺锛�</div> + <div class="btn">绂诲満</div> + </div> + </div> + <div class="item"> + <div class="name_wrap df_sb"> + <div class="name">琚侀殕骞�</div> + <div class="identity">鏅�氳瀹�</div> + </div> + <div class="line">鑱旂郴鐢佃瘽锛�1888</div> + <div class="line">璁垮鍏徃锛氬畨寰借眴绫�</div> + <div class="auth df_sb"> + <div class="time">鎺堟潈鏈熼檺锛�</div> + <div class="btn">绂诲満</div> + </div> + </div> + </div> + </div> </div> </div> </div> </template> <script> +import dayjs from 'dayjs' import * as echarts from 'echarts' -import { body, head, timeoutPage, level } from '@/api/business/staging' +import { weeks } from '@/utils/config' +const colors = ['#52a4f7', '#7678f7', '#5fc6d5'] export default { - name: 'Index', - data() { + data () { return { - head: null, - list: [], - total: 0, - data1: [], - data2: [[], []], - page: 1 + colors, + nowDate: '', + nowWeek: '', + funcList: [ + { name: '璁垮鎶ュ', path: '', url: require('@/assets/icons/home_func1.png') }, + { name: '闅愭偅闅忔墜鎷�', path: '', url: require('@/assets/icons/home_func2.png') }, + { name: '棰勭害浼氳瀹�', path: '', url: require('@/assets/icons/home_func3.png') }, + { name: '鑰冨嫟宸ヤ綔鍙�', path: '', url: require('@/assets/icons/home_func4.png') } + ] } }, - created() { - this.getHeader() - this.getData() + created () { + this.updateDate() + setInterval(() => { + this.updateDate() + }, 1000 * 60 * 60) }, - mounted() { - // this.getcharts2() + mounted () { + this.initData() }, methods: { - departure(id) { - this.$confirm('纭畾绂诲満鍚�, 鏄惁缁х画?', '鎻愮ず', { - confirmButtonText: '纭畾', - cancelButtonText: '鍙栨秷', - type: 'warning' - }).then(() => { - level(id) - .then(res => { - this.page = 1 - this.getData() - }) - }).catch(() => { - - }) + updateDate () { + this.nowDate = dayjs().format('YYYY骞碝鏈圖鏃�') + this.nowWeek = weeks[new Date().getDay()] }, - getData() { - timeoutPage({ - capacity: 10, - page: this.page, - model: {} - }).then(res => { - this.list = res.records - this.total = res.total - }) + initData () { + this.initEchart1() + this.initEchart2() + this.initEchart3() + this.initEchart4() }, - getHeader() { - head().then(res => { - this.head = res - }) - body().then(res => { - this.data1 = res.retentionUsers.map(item => { - let name = '' - if (item.memberType === 0) { - name = '鍔冲姟璁垮' - } else if (item.memberType === 1) { - name = '鏅�氳瀹�' - } else if (item.memberType === 2) { - name = '鍐呴儴鍛樺伐' - } - return { - value: item.memberCount, - name - } - }) - let arr1 = res.companyUsers.map(item => item.companyName) - let arr2 = res.companyUsers.map(item => item.memberCount) - if (arr1.length > 0) { - this.data2 = [arr1, arr2] - this.getcharts2() - } - this.getcharts1() - }) - }, - handleCurrentChange(page) { - this.page = page - this.getData() - }, - getcharts1() { - const myChart = echarts.init(document.getElementById('chart1')) - // 缁樺埗鍥捐〃 - myChart.setOption({ - tooltip: { - trigger: 'item' - }, - grid: { - bottom: '5%', - top: '5%' - }, - legend: { - bottom: '0%', - left: 'center', - icon: 'circle' - }, + initEchart1 () { + const myChart = echarts.init(document.getElementById('echart1')) + const option = { series: [ { type: 'pie', - radius: ['40%', '70%'], + radius: ['42%', '90%'], label: { - formatter: '{b} {d}%' + show: false, + position: 'center' }, - data: this.data1, + color: colors, + labelLine: { + show: false + }, + data: [ + { value: 1048, name: 'Search Engine' }, + { value: 735, name: 'Direct' }, + { value: 580, name: 'Email' } + ] + } + ] + } + myChart.setOption(option) + window.addEventListener('resize', function () { // 鎵ц + myChart.resize() + }) + }, + initEchart2 () { + const myChart = echarts.init(document.getElementById('echart2')) + myChart.setOption({ + grid: { + top: '4%', + left: '2%', + right: '6%', + bottom: '2%', + containLabel: true + }, + tooltip: { + trigger: 'axis', + axisPointer: { + type: 'line' + } + }, + xAxis: { + type: 'value', + position: 'bottom', + splitLine: { + show: true, + lineStyle: { + // 杩欓噷杈撳叆绾挎潯鐨勬牱寮� + color: 'rgba(255,255,255,0.14)' + } + } + }, + yAxis: { + type: 'category', + data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] + }, + series: [ + { + data: [120, 200, 150, 80, 70, 110, 130], + type: 'bar', + barWidth: 10, itemStyle: { normal: { - color: function (colors) { - var colorList = [ - '#fc8251', - '#5470c6', - '#91cd77' + color: new echarts.graphic.LinearGradient( + 1, 0, 0, 0, + [ + { offset: 0, color: '#56abf8' }, + { offset: 1, color: '#407ff0' } ] - return colorList[colors.dataIndex] - } - } - }, - emphasis: { - itemStyle: { - shadowBlur: 10, - shadowOffsetX: 0, - shadowColor: 'rgba(0, 0, 0, 0.5)' + ), + barBorderRadius: [0, 10, 10, 0] } } } ] }) + window.addEventListener('resize', function () { // 鎵ц + myChart.resize() + }) }, - getcharts2() { - const myChart = echarts.init(document.getElementById('chart2')) + initEchart3 () { + const myChart = echarts.init(document.getElementById('echart3')) myChart.setOption({ tooltip: { - trigger: 'item' - }, - grid: { - bottom: '5%', - top: '5%' + trigger: 'axis', + axisPointer: { + type: 'line' + }, + formatter: function (params) { + return ` + <div style="background-color: #15323f;margin: -12px;padding: 14px;border: 2px solid rgba(1,217,254,0.5);color: #fff;"> + <div>${params[0].name}鏃ュ娴�</div> + <div style="display: flex;align-items: center;"> + <div style="width: 10px;height: 10px;border-radius: 50%;background-color: #6feef0;"></div> + <span style="margin-left: 6px;">${params[0].value}</span> + <div>浜�</div> + </div> + </div> + ` + } }, xAxis: { - max: 'dataMax' + type: 'category', + boundaryGap: false, + data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] }, yAxis: { - type: 'category', - data: this.data2[0] + type: 'value', + name: '浜烘暟', + nameTextStyle: { + padding: [0, 0, 4, -30] // 鍥涗釜鏁板瓧鍒嗗埆涓轰笂鍙充笅宸︿笌鍘熶綅缃窛绂� + }, + splitLine: { + show: true, + lineStyle: { + // 杩欓噷杈撳叆绾挎潯鐨勬牱寮� + color: 'rgba(255,255,255,0.14)' + } + } + }, + grid: { + top: '16%', + left: '2%', + right: '2%', + bottom: '4%', + containLabel: true }, series: [ { - realtimeSort: true, - type: 'bar', - data: this.data2[1], + data: [150, 230, 224, 218, 135, 147, 260], + type: 'line', + areaStyle: { + normal: { + color: { + x: 0, + y: 0, + x2: 0, + y2: 1, + colorStops: [{ + offset: 0, + color: '#207FF7' // 0% 澶勭殑棰滆壊 + }, { + offset: 1, + color: 'rgba(255,255,255,.2)' // 100% 澶勭殑棰滆壊 + }], + globalCoord: false // 缂虹渷涓� false + } + } + }, + lineStyle: { // 绾挎潯鏍峰紡 + color: { + type: 'linear', + x: 0, + y: 0, + x2: 0, + y2: 1, + colorStops: [{ + offset: 0, color: '#207FF7' // 0% 澶勭殑棰滆壊 + }, { + offset: 1, color: '#207FF7' // 100% 澶勭殑棰滆壊 + }] + }, + width: 2 // 绾挎潯绮楃粏 + }, + symbol: 'circle', + symbolSize: 10, itemStyle: { normal: { - color: '#fc8251' + color: '#207FF7' // 鎶樼嚎鐐圭殑棰滆壊 } - } + }, + smooth: false } ] + }) + window.addEventListener('resize', function () { // 鎵ц + myChart.resize() + }) + }, + initEchart4 () { + const myChart = echarts.init(document.getElementById('echart4')) + myChart.setOption({ + tooltip: { + trigger: 'axis', + axisPointer: { + type: 'line' + }, + formatter: function (params) { + return ` + <div style="background-color: #15323f;margin: -12px;padding: 14px;border: 2px solid rgba(1,217,254,0.5);color: #fff;"> + <div>${params[0].name}鏃ュ娴�</div> + <div style="display: flex;align-items: center;"> + <div style="width: 10px;height: 10px;border-radius: 50%;background-color: #6feef0;"></div> + <span style="margin-left: 6px;">${params[0].value}</span> + <div>浜�</div> + </div> + </div> + ` + } + }, + xAxis: { + type: 'category', + boundaryGap: false, + data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] + }, + yAxis: { + type: 'value', + name: '杞﹁締鏁�', + nameTextStyle: { + padding: [0, 0, 4, -30] // 鍥涗釜鏁板瓧鍒嗗埆涓轰笂鍙充笅宸︿笌鍘熶綅缃窛绂� + }, + splitLine: { + show: true, + lineStyle: { + // 杩欓噷杈撳叆绾挎潯鐨勬牱寮� + color: 'rgba(255,255,255,0.14)' + } + } + }, + grid: { + top: '16%', + left: '2%', + right: '2%', + bottom: '4%', + containLabel: true + }, + series: [ + { + data: [150, 230, 224, 218, 135, 147, 260], + type: 'line', + areaStyle: { + normal: { + color: { + x: 0, + y: 0, + x2: 0, + y2: 1, + colorStops: [{ + offset: 0, + color: '#42D49D' // 0% 澶勭殑棰滆壊 + }, { + offset: 1, + color: 'rgba(255,255,255,.5)' // 100% 澶勭殑棰滆壊 + }], + globalCoord: false // 缂虹渷涓� false + } + } + }, + lineStyle: { // 绾挎潯鏍峰紡 + color: { + type: 'linear', + x: 0, + y: 0, + x2: 0, + y2: 1, + colorStops: [{ + offset: 0, color: '#42D49D' // 0% 澶勭殑棰滆壊 + }, { + offset: 1, color: '#42D49D' // 100% 澶勭殑棰滆壊 + }] + }, + width: 2 // 绾挎潯绮楃粏 + }, + symbol: 'circle', + symbolSize: 10, + itemStyle: { + normal: { + color: '#42D49D' // 鎶樼嚎鐐圭殑棰滆壊 + } + }, + smooth: false + } + ] + }) + window.addEventListener('resize', function () { // 鎵ц + myChart.resize() }) } } } </script> -<style scoped lang="scss"> -@import "@/assets/style/variables.scss"; -.home { - width: 100%; - .home_table { - width: 100%; - padding: 20px; - box-sizing: border-box; - background: #ffffff; - margin-top: 20px; - .home_table_head { - font-size: 16px; - font-weight: 600; - color: black; - } - .home_table_box { - width: 100%; - margin-top: 15px; - } - } - .home_charts { - width: 100%; - margin-top: 20px; - display: flex; - align-items: center; - justify-content: space-between; - .home_charts_item { - padding: 20px; - box-sizing: border-box; - flex: 1; +<style lang="scss" scoped> +div { + box-sizing: border-box; +} +.home_title { + font-weight: 600; + font-size: 16px; + color: #222222; + line-height: 22px; +} +.main { + display: flex; + position: relative; + z-index: 99; + .app_content { + flex: 1; + .static_card { + height: 187px; + color: #fff; display: flex; - flex-direction: column; - margin-right: 20px; - background: #ffffff; - .home_charts_item_label { - font-size: 16px; - font-weight: 600; - color: black; - } - .home_charts_item_charts { - width: 100%; - height: 300px; - } - &:last-child { - margin: 0 !important; - } - } - } - .home_total { - width: 100%; - background: #ffffff; - margin-top: 20px; - .home_total_head { - width: 100%; - font-size: 16px; - font-weight: 600; - color: black; - padding: 10px 20px; - box-sizing: border-box; - border-bottom: 1px solid #ececec; - } - .home_total_list { - width: 100%; - padding: 20px; - box-sizing: border-box; - display: flex; - align-items: center; - .a { - border-left: 5px solid rgba(129, 211, 248, 1) !important; - } - .b { - border-left: 5px solid rgba(236, 128, 141, 1) !important; - } - .c { - border-left: 5px solid rgba(250, 205, 145, 1) !important; - } - .d { - border-left: 5px solid rgba(245, 154, 35, 1) !important; - } - .e { - border-left: 5px solid rgba(128, 128, 255, 1) !important; - } - .f { - border-left: 5px solid rgba(202, 249, 130, 1) !important; - } - .g { - border-left: 5px solid rgba(194, 128, 255, 1) !important; - } - .home_total_list_item { + justify-content: space-between; + .card { flex: 1; - display: flex; - align-items: center; - flex-direction: column; - justify-content: center; - height: 80px; - border-radius: 5px; - border: 1px solid #ececec; - margin-right: 15px; - &:last-child { - margin: 0 !important; + height: 187px; + background: linear-gradient(270deg, #29aeff 0%, #207ff7 100%); + box-shadow: 0px 2px 10px 0px rgba(32, 127, 247, 0.4); + border-radius: 8px; + margin-right: 14px; + &:nth-of-type(2) { + background: linear-gradient(270deg, #8383ff 0%, #6b6eff 100%); } - span { - &:first-child { - font-weight: 500; - font-size: 24px; - color: black; + &:nth-of-type(3) { + background: linear-gradient(270deg, #42d49d 0%, #12bb8b 100%); + } + &:nth-of-type(4) { + margin-right: 0; + background: linear-gradient(270deg, #30d3de 0%, #04b7cd 100%); + } + .header { + height: 103px; + display: flex; + justify-content: space-between; + align-items: center; + padding: 20px 20px 12px; + border-bottom: 1px solid rgba(255, 255, 255, 0.2); + img { + width: 40px; + height: 40px; } - &:last-child { - font-weight: 400; - font-size: 14px; - color: #666666; - margin-top: 2px; + .num { + font-weight: 600; + font-size: 30px; + margin-top: 12px; + } + } + .content { + height: 82px; + display: flex; + flex-direction: column; + justify-content: space-between; + font-size: 13px; + padding: 15px 20px 20px; + } + } + } + .funcs { + height: 149px; + padding: 20px; + background: #fff; + margin: 10px 0; + .list { + display: flex; + padding-top: 20px; + .item { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + margin-right: 24px; + img { + width: 44px; + height: 44px; } } } } } + .app_side { + width: 408px; + margin-left: 10px; + .task { + background: #fff; + border-radius: 2px; + border: 1px solid #eeeeee; + padding: 20px; + height: 346px; + margin-bottom: 10px; + .header { + .num { + position: relative; + top: 3px; + height: 16px; + line-height: 16px; + font-size: 12px; + color: #ffffff; + padding: 0 6px; + font-weight: 400; + background: red; + border-radius: 8px; + margin-left: 13px; + } + .more { + font-size: 13px; + color: #999999; + } + } + .list { + .item { + display: flex; + align-items: center; + margin-top: 15px; + .content { + flex: 1; + .title { + color: #222222; + margin-bottom: 5px; + } + .time { + color: #999999; + font-size: 12px; + } + } + .btn { + margin-left: 10px; + width: 58px; + text-align: center; + height: 30px; + line-height: 30px; + background: #ffffff; + border-radius: 2px; + border: 1px solid #207ff7; + font-size: 13px; + color: #207ff7; + } + } + } + } + .warnning { + background: #fff; + border-radius: 2px; + border: 1px solid #eeeeee; + padding: 20px; + height: 508px; + .header { + .num { + position: relative; + top: 3px; + height: 16px; + line-height: 16px; + font-size: 12px; + color: #ffffff; + padding: 0 6px; + font-weight: 400; + background: red; + border-radius: 8px; + margin-left: 13px; + } + .more { + font-size: 13px; + color: #999999; + } + } + .list { + padding-top: 6px; + .item { + margin-top: 10px; + padding: 15px; + width: 100%; + height: 140px; + background: rgba(32, 127, 247, 0.05); + border-radius: 4px; + .name_wrap { + margin-bottom: 10px; + .name { + font-weight: 600; + color: #222222; + } + .identity { + font-size: 13px; + color: #207ff7; + } + } + .line { + color: #666666; + margin-bottom: 8px; + font-size: 13px; + } + .auth { + .time { + font-weight: 600; + font-size: 13px; + color: #ee3821; + } + .btn{ + margin-left: 10px; + width: 58px; + text-align: center; + height: 30px; + line-height: 30px; + background: #ffffff; + border-radius: 2px; + border: 1px solid #207ff7; + font-size: 13px; + color: #207ff7; + } + } + } + } + } + } + .static_wrap { + .wrap { + background: #fff; + padding: 20px 20px 10px; + border-radius: 2px; + border: 1px solid #eeeeee; + height: 250px; + flex: 1; + &:nth-of-type(2n) { + margin-left: 10px; + } + .echart { + width: 100%; + height: 190px; + } + .header { + display: flex; + justify-content: space-between; + align-items: center; + .more { + font-size: 13px; + color: #999999; + } + } + } + .static1 { + .content { + display: flex; + justify-content: center; + align-items: center; + .echart_wrap { + position: relative; + .pie_text { + position: absolute; + left: 50%; + top: 50%; + transform: translate(-50%, -50%); + z-index: 999; + } + } + .echart { + width: 150px; + height: 150px; + } + .list { + margin-left: 36px; + .item { + display: flex; + align-items: center; + margin: 8px 0; + .icon { + width: 16px; + height: 16px; + border-radius: 50%; + margin-right: 6px; + background: linear-gradient(270deg, #29aeff 0%, #207ff7 100%); + } + .text { + margin-right: 6px; + } + } + } + } + } + } +} +.main_home { + background: #f4f7fc; + position: relative; + width: 100%; + height: 100%; + overflow: auto; + padding: 20px; + padding-top: 92px; + .home_header { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 200px; + padding: 20px; + color: #fff; + background: linear-gradient(180deg, #207ff7 0%, rgba(32, 127, 247, 0) 100%); + } } </style> -- Gitblit v1.9.3