From d891f06d0a46d2e89df61c600e17f4892b3523c8 Mon Sep 17 00:00:00 2001 From: jiangping <jp@doumee.com> Date: 星期五, 11 四月 2025 11:15:27 +0800 Subject: [PATCH] 代码初始化 --- admin/src/views/index.vue | 1056 +++++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 996 insertions(+), 60 deletions(-) diff --git a/admin/src/views/index.vue b/admin/src/views/index.vue index 9053e37..200e440 100644 --- a/admin/src/views/index.vue +++ b/admin/src/views/index.vue @@ -1,80 +1,1016 @@ <template> - <div class="home"> - <div class="wrap"> + <div class="main_home"> + <!-- <div style="position: fixed;z-index: 99999"><video style="height: 100px;width: 500px" src="rtsp://10.50.250.253:554/openUrl/K2y2vE4" controls></video></div> --> + <div class="home_header" style="text-align: center"> + <div class="mb10 fs17">涓嬪崍濂斤紝{{ userInfo.realname }}</div> + <div class="fs13"> + 浠婂ぉ鏄� {{ nowDate }} {{ nowWeek }}锛屾杩庤闂仈鍚堝埄鍗庝簨浠朵笂鎶ョ郴缁熺鐞嗗钩鍙� + </div> </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">{{ headerData.todayInParkUserNum }}</div> + </div> + <img src="@/assets/icons/home_icon1.png" alt="" /> + </div> + <div class="content"> + <div>鍏ュ洯浜烘(浜�)锛歿{ headerData.todayInUserNum }}</div> + <div>鍑哄洯浜烘(浜�)锛歿{ headerData.todayOutUserNum }}</div> + </div> + </div> + <div class="card"> + <div class="header"> + <div class="left"> + <div class="fs15">鍦ㄥ洯璁垮鏁�(浜�)</div> + <div class="num">{{ headerData.inParkVisitUserNum }}</div> + </div> + <img src="@/assets/icons/home_icon2.png" alt="" /> + </div> + <div class="content"> + <div>璁垮浜烘(浜�)锛歿{ headerData.visitUserNum }}</div> + <div>绛剧浜烘(浜�)锛歿{ headerData.signLevelNum }}</div> + </div> + </div> + <div class="card"> + <div class="header"> + <div class="left"> + <div class="fs15">鍦ㄥ洯闀挎湡鐩稿叧鏂规暟(浜�)</div> + <div class="num">{{ headerData.inParkLwUserNum }}</div> + </div> + <img src="@/assets/icons/home_icon3.png" alt="" /> + </div> + <div class="content"> + <div>鍏ュ洯浜烘(浜�)锛歿{ headerData.lwUserInNum }}</div> + <div>鍑哄洯浜烘(浜�)锛歿{ headerData.lwUserOutNum }}</div> + </div> + </div> + <div class="card"> + <div class="header"> + <div class="left"> + <div class="fs15">浠婃棩鍦ㄥ洯杞﹁締(杈�)</div> + <div class="num">{{ headerData.todayInParkCarNum }}</div> + </div> + <img src="@/assets/icons/home_icon4.png" alt="" /> + </div> + <div class="content"> + <div>鍏ュ洯杞︽(杈�)锛歿{ headerData.todayInCarNum }}</div> + <div>鍑哄洯杞︽(杈�)锛歿{ headerData.todayOutCarNum }}</div> + </div> + </div> + </div> + <div class="funcs"> + <div class="home_title">甯哥敤鍔熻兘</div> + <div class="list"> + <div v-for="item in funcList" @click="funcClick(item)" :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>{{ headerData.todayInParkUserNum }}</strong></div> + </div> + <div class="echart" id="echart1"></div> + </div> + <div class="list"> + <div class="item" v-for="item, i in manningRatio" :key="i"> + <div :style="{ background: colors[i] }" class="icon"></div> + <div class="text">{{ item.name }}</div> + <div class="num">{{ item.value }}</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="app_side"> + <div class="task"> + <div class="header df_sb"> + <div class="home_title df"> + <span >寰呭姙浜嬮」</span> + <span class="num" v-if="taskTotal">{{ taskTotal }}</span> + </div> + <div class="df_ac more" @click="jumpPage('/task/index')"> + 鏇村<i class="el-icon-arrow-right"></i> + </div> + </div> + <div class="list"> + <div class="item" v-for="item in taskList" :key="item.id"> + <div class="content"> + <div class="title">{{ item.title }}</div> + <div class="time">{{ item.createDate }}</div> + </div> + <div class="btn" v-permissions="['business:staging:query']" @click="handleDetail(item)">澶勭悊</div> + </div> + <div v-if="taskList.length == 0" class="empty"> + <img src="@/assets/images/default_homeimg.png" alt=""> + </div> + </div> + </div> + <div class="warnning"> + <div class="header df_sb"> + <div class="home_title df"> + <span>瓒呮椂棰勮</span> + <span class="num" v-if="warningTotal">{{ warningTotal }}</span> + </div> + <div class="df_ac more" @click="jumpPage('/business/strandedPersonnel')"> + 鏇村<i class="el-icon-arrow-right"></i> + </div> + </div> + <div class="list"> + <div class="item" v-for="item in warningList" :key="item.id"> + <div class="name_wrap df_sb"> + <div class="name">{{ item.name }}</div> + <div class="identity">璁垮</div> + </div> + <div class="line">鑱旂郴鐢佃瘽锛歿{ item.phone }}</div> + <div class="line">璁垮鍏徃锛歿{ item.companyName }}</div> + <div class="auth df_sb"> + <div class="time">鎺堟潈鏈熼檺锛歿{ item.endtime }}</div> + <div class="btn" @click="departure(item.id)">绂诲満</div> + </div> + </div> + </div> + <div v-if="warningList.length == 0" class="empty"> + <img src="@/assets/images/default_homeimg.png" alt=""> + </div> + </div> + </div> + </div>--> </div> </template> <script> +import dayjs from 'dayjs' +import * as echarts from 'echarts' +import { weeks } from '@/utils/config' +const colors = ['#52a4f7', '#7678f7', '#5fc6d5'] export default { - name: 'Index', + components: { + }, data () { - return {} + return { + colors, + nowDate: '', + nowWeek: '', + headerData: {}, + staticData: {}, + manningRatio: [], + taskList: [], + taskTotal: 0, + warningList: [], + warningTotal: 0, + funcList: [ + { name: '璁垮鎶ュ', path: '', url: require('@/assets/icons/home_func1.png'), path: '/business/reportRecord' }, + { name: '闅愭偅闅忔墜鎷�', path: '', url: require('@/assets/icons/home_func2.png'), path: '/operation/danger/record' }, + { name: '棰勭害浼氳瀹�', path: '', url: require('@/assets/icons/home_func3.png'), path: '/meeting/bookings' }, + { name: '鑰冨嫟宸ヤ綔鍙�', path: '', url: require('@/assets/icons/home_func4.png') } + ], + isShowDetail: false, + isShowReport: false, + isShowDanger: false, + isShowDriver: false + } + }, + computed: { + userInfo () { + return this.$store.state.userInfo + } + }, + created () { + }, + mounted () { + // this.initData() + }, + methods: { + SubSuccess (str) { + this[str] = false + this.getTaskList() + }, + funcClick (item) { + if (item.name == '鑰冨嫟宸ヤ綔鍙�') { + getAppHeaderNav(4).then(res => { + window.open(res, '_blank') + }) + } + this.$router.push(item.path) + }, + updateDate () { + this.nowDate = dayjs().format('YYYY骞碝鏈圖鏃�') + this.nowWeek = weeks[new Date().getDay()] + }, + initData () { + this.getWorkHead() + this.getWorkBody() + this.getTaskList() + this.getWarningList() + }, + getWarningList () { + getWorkbenchData({ queryType: 4 }).then(res => { + this.warningList = res.timeOutVisitList || [] + this.warningTotal = res.timeOutVisitNum || 0 + }) + }, + getTaskList () { + getWorkbenchData({ queryType: 3 }).then(res => { + this.taskList = res.noticesList || [] + this.taskTotal = res.noticesNum || 0 + }) + }, + getWorkBody () { + getWorkbenchData({ queryType: 2 }).then(res => { + this.staticData = res || {} + this.initEchart2() + this.initEchart3() + this.initEchart4() + }) + }, + getWorkHead () { + getWorkbenchData({ queryType: 1 }).then(res => { + this.headerData = res || {} + const arr = [] + arr.push({ name: '璁垮', value: this.headerData.inParkVisitUserNum }) + arr.push({ name: '鍐呴儴鍛樺伐', value: this.headerData.todayInParkUserNum - this.headerData.inParkLwUserNum - this.headerData.inParkVisitUserNum }) + arr.push({ name: '闀挎湡鐩稿叧鏂�', value: this.headerData.inParkLwUserNum }) + arr.sort((a, b) => b.value - a.value) + this.manningRatio = arr + this.initEchart1() + }) + }, + jumpPage (page) { + this.$router.push(page) + }, + departure (id) { + this.$confirm('纭畾绂诲巶鍚�, 鏄惁缁х画?', '鎻愮ず', { + confirmButtonText: '纭畾', + cancelButtonText: '鍙栨秷', + type: 'warning' + }).then(() => { + level(id) + .then(res => { + this.getWarningList() + }) + }).catch(() => { + + }) + }, + handleDetail (row) { + if (row.type === 7) { + this.handleTest(row); + return + } + if (row.objType === 2) { + this.$refs.OperaDetailsWindow.open('鍏姟杞︾敵璇疯鎯�', { ...row, id: row.objId }) + return + } + if (row.objType === 1) { + this.isShowReport = true + this.$nextTick(() => { + this.$refs.VisReportDetailRef.id = row.objId + this.$refs.VisReportDetailRef.type = row.objType + this.$refs.VisReportDetailRef.getDetail() + this.$refs.VisReportDetailRef.isShowModal = true + }) + return + } + if (row.objType === 3) { + const obj = { ...row, id: row.objId } + this.$refs.OperaHiddenDangerWindow.open('闅愭偅闅忔墜鎷嶈鎯�', obj) + return + } + if (row.objType === 6) { + const obj = { ...row, id: row.objId } + this.isShowDriver = true + this.$nextTick(() => { + this.$refs.DriverDetailRef.id = row.objId + this.$refs.DriverDetailRef.type = row.objType + this.$refs.DriverDetailRef.getDetail() + this.$refs.DriverDetailRef.isShowModal = true + }) + return + } + if (row.objType === 0) { + this.isShowDetail = true + this.$nextTick(() => { + this.$refs.DetailRef.id = row.objId + this.$refs.DetailRef.type = row.objType + this.$refs.DetailRef.getDetail() + this.$refs.DetailRef.isShowModal = true + }) + } + }, + initEchart1 () { + const myChart = echarts.init(document.getElementById('echart1')) + const that = this + + const option = { + tooltip: { + trigger: 'item' + }, + series: [ + { + type: 'pie', + radius: ['42%', '90%'], + label: { + show: false, + position: 'center' + }, + color: colors, + labelLine: { + show: false + }, + data: that.manningRatio + // data: [ + // { value: that.headerData.inParkVisitUserNum, name: '璁垮' }, + // { value: that.headerData.todayInParkUserNum - that.headerData.inParkVisitUserNum - that.headerData.inParkLwUserNum, name: '鍐呴儴鍛樺伐' }, + // { value: that.headerData.inParkLwUserNum, name: '闀挎湡鐩稿叧鏂�' } + // ] + } + ] + } + myChart.setOption(option) + window.addEventListener('resize', function () { // 鎵ц + myChart.resize() + }) + }, + initEchart2 () { + const myChart = echarts.init(document.getElementById('echart2')) + const that = this + 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: that.staticData.lwList.map(i => i.name) + }, + series: [ + { + data: that.staticData.lwList.map(i => i.num), + type: 'bar', + barWidth: 10, + itemStyle: { + normal: { + color: new echarts.graphic.LinearGradient( + 1, 0, 0, 0, + [ + { offset: 0, color: '#56abf8' }, + { offset: 1, color: '#407ff0' } + ] + ) + // barBorderRadius: [0, 10, 10, 0] + } + } + } + ] + }) + window.addEventListener('resize', function () { // 鎵ц + myChart.resize() + }) + }, + initEchart3 () { + const myChart = echarts.init(document.getElementById('echart3')) + const that = this + 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: that.staticData.weekVisitList.map(i => i.name) + }, + 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: '8%', + bottom: '2%', + containLabel: true + }, + series: [ + { + data: that.staticData.weekVisitList.map(i => i.num), + 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: { + borderWidth: 1, + borderColor: '#fff', + color: '#207FF7' + }, + smooth: false + } + ] + }) + window.addEventListener('resize', function () { // 鎵ц + myChart.resize() + }) + }, + initEchart4 () { + const myChart = echarts.init(document.getElementById('echart4')) + const that = this + 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: that.staticData.weekCarList.map(i => i.name) + }, + 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: '8%', + bottom: '4%', + containLabel: true + }, + series: [ + { + data: that.staticData.weekCarList.map(i => i.num), + 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: { + borderWidth: 1, + borderColor: '#fff', + color: '#42D49D' // 鎶樼嚎鐐圭殑棰滆壊 + }, + smooth: false + } + ] + }) + window.addEventListener('resize', function () { // 鎵ц + myChart.resize() + }) + } } } </script> -<style scoped lang="scss"> -@import "@/assets/style/variables.scss"; -.home { - text-align: center; - color: #777; - .wrap { - margin-top: 80px; - img { - width: 240px; - } - } - h2 { - font-size: 32px; - color: #555; - margin-bottom: 20px; - } - p { - line-height: 24px; - margin: 0; - } - .start-up { - margin-top: 8px; - } - .guide { - margin: 30px 0 40px 0; - display: flex; - justify-content: center; - a { - margin-right: 12px; - padding: 12px 40px; - border-radius: 30px; - background: $primary-color; +<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; - text-decoration: none; + display: flex; + justify-content: space-between; + + .card { + flex: 1; + 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%); + } + + &: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; + } + + .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; + cursor: pointer; + + img { + width: 44px; + height: 44px; + } + } + } } } - em,a { - font-style: normal; - font-weight: bold; - margin: 0 3px; - color: $primary-color; + + .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; + cursor: pointer; + } + } + } + } + + .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; + cursor: pointer; + line-height: 30px; + background: #ffffff; + border-radius: 2px; + border: 1px solid #207ff7; + font-size: 13px; + color: #207ff7; + } + } + } + } + } + + .more { + cursor: pointer; + } + + .empty { + height: 300px; + display: flex; + justify-content: center; + align-items: center; + + img { + width: 140px; + } + } } - .award { + + .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; + height: 100%; + + .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: 92px 20px 20px; + .home_header { position: absolute; - right: 20px; - bottom: 60px; - display: flex; - flex-direction: column; - text-align: left; - padding: 12px; - border: 1px solid #eee; - box-shadow: -1px 1px 10px #ccc; - h4 { - font-weight: bold; - margin-bottom: 8px; - } - img { - width: 160px; - margin-bottom: 20px; - transition: opacity ease .3s; - } + top: 0; + left: 0; + width: 100%; + height: 200px; + padding: 20px; + color: #fff; + background: linear-gradient(180deg, #0c6ce3 0%, rgba(32, 127, 247, 0) 100%); } } </style> -- Gitblit v1.9.3