From 47e18c4dd34d7d8b0dc60e8e1177cc7dff36f4e6 Mon Sep 17 00:00:00 2001
From: Mr.Shi <1878285526@qq.com>
Date: 星期二, 22 八月 2023 18:33:40 +0800
Subject: [PATCH] 大屏
---
screen_standard/src/views/index.vue | 572 ++++++++++++++++++++++++++++++++++++++++++++++++---------
1 files changed, 482 insertions(+), 90 deletions(-)
diff --git a/screen_standard/src/views/index.vue b/screen_standard/src/views/index.vue
index 7c4172d..f2654cb 100644
--- a/screen_standard/src/views/index.vue
+++ b/screen_standard/src/views/index.vue
@@ -7,18 +7,18 @@
<span>褰撴棩鍛樺伐浜ч噺TOP10</span>
</div>
<div class="content_left_item1_content">
- <div class="content_left_item1_content_row" v-for="(item, index) in 10" :key="index">
+ <div class="content_left_item1_content_row" v-for="(item, index) in data.production" :key="index">
<div class="content_left_item1_content_row_name">
<div :class="index > 2 ? 'num bg1' : 'num bg2'">{{ index + 1 }}</div>
- <span>璧电珛{{ index }}</span>
+ <span>{{item.userName}}</span>
</div>
<div class="content_left_item1_content_row_line">
<el-progress
:show-text="false"
- :percentage="50">
+ :percentage="item.doneNum / baseNum">
</el-progress>
</div>
- <div class="content_left_item1_content_row_num">342</div>
+ <div class="content_left_item1_content_row_num">{{ item.doneNum }}</div>
</div>
</div>
</div>
@@ -36,11 +36,11 @@
</div>
<div @mouseenter="handleMouseEnter" @mouseleave="handleMouseLeave" class="main_container">
<div ref="scrollContainer" class="scroll_container">
- <div v-for="(item, index) in 10" :key="item.id" :class="index % 2 == 0 ? 'scroll_item scroll_item_bg1' : 'scroll_item scroll_item_bg2'">
- <div class="scroll_item_row">鐢靛悏浠� / 鏈ㄥ伐</div>
- <div class="scroll_item_row">鎴愬搧搴�</div>
- <div class="scroll_item_row">C323</div>
- <div class="scroll_item_row">3000鎶�</div>
+ <div v-for="(item, index) in data.marginStatistics" :key="index" :class="index % 2 == 0 ? 'scroll_item scroll_item_bg1' : 'scroll_item scroll_item_bg2'">
+ <div class="scroll_item_row">{{ item.materialName }} / {{ item.procedureName }}</div>
+ <div class="scroll_item_row">{{ item.warehouseName }}</div>
+ <div class="scroll_item_row">{{ item.location }}</div>
+ <div class="scroll_item_row">{{ item.num }}{{ item.unitName }}</div>
</div>
</div>
</div>
@@ -66,25 +66,27 @@
</div>
<div @mouseenter="handleMouseEnter1" @mouseleave="handleMouseLeave1" class="main_container">
<div ref="scrollContainer1" class="scroll_container">
- <div v-for="(item, index) in 10" :key="item.id" :class="index % 2 == 0 ? 'scroll_item scroll_item_bg1' : 'scroll_item scroll_item_bg2'">
- <div class="scroll_item_row">323444112</div>
- <div class="scroll_item_row">鐢靛悏浠�</div>
- <div class="scroll_item_row">CP003</div>
- <div class="scroll_item_row">1000</div>
+ <div v-for="(item, index) in data.plannedProgress" :key="index" :class="index % 2 == 0 ? 'scroll_item scroll_item_bg1' : 'scroll_item scroll_item_bg2'">
+ <div class="scroll_item_row">{{ item.code }}</div>
+ <div class="scroll_item_row">{{ item.materialName }}</div>
+ <div class="scroll_item_row">{{ item.materialCode }}</div>
+ <div class="scroll_item_row">{{ item.num }}</div>
<div class="scroll_item_row">
<el-tooltip
- v-for="(child, i) in 6" :key="i"
+ v-for="(child, i) in item.procedureList" :key="i"
effect="dark"
- content="宸叉姤宸ヨ壇鍝佹暟1000锛涘伐搴忚鍒掓暟500"
+ :content="'宸叉姤宸ヨ壇鍝佹暟' + child.doneNum + '锛涘伐搴忚鍒掓暟' + child.planNum"
placement="top">
- <div class="scroll_item_row_item">
+ <div class="scroll_item_row_item" @click="jump(child.procedureId, child.procedureName)">
<div class="scroll_item_row_item_x"></div>
- <img v-if="i == 0 || i == 1" src="@/assets/img/ic_complete@2x.png" alt="" />
- <span v-else>98%</span>
+ <!-- <img v-if="i == 0 || i == 1" src="@/assets/img/ic_complete@2x.png" alt="" /> -->
+ <span v-if="child.rate < 100">{{ child.rate }}%</span>
+ <img v-else src="@/assets/img/ic_complete@2x.png" alt="" />
+ <span class="scroll_item_row_item_wz">{{ child.procedureName }}</span>
</div>
</el-tooltip>
</div>
- <div class="scroll_item_row">498/500</div>
+ <div class="scroll_item_row">{{ item.qualifiedNum }}/{{ item.doneNum }}</div>
</div>
</div>
</div>
@@ -101,14 +103,14 @@
</div>
<div @mouseenter="handleMouseEnter2" @mouseleave="handleMouseLeave2" class="main_container">
<div ref="scrollContainer2" class="scroll_container">
- <div v-for="(item, index) in 15" :key="item.id" :class="index % 2 == 0 ? 'scroll_item scroll_item_bg1' : 'scroll_item scroll_item_bg2'">
- <div class="scroll_item_row">鏈ㄥ伐</div>
- <div class="scroll_item_row">3</div>
- <div class="scroll_item_row">1000</div>
- <div class="scroll_item_row">959</div>
- <div class="scroll_item_row">30</div>
- <div class="scroll_item_row">11</div>
- <div class="scroll_item_row">3.12%</div>
+ <div v-for="(item, index) in data.processProgress" :key="index" :class="index % 2 == 0 ? 'scroll_item scroll_item_bg1' : 'scroll_item scroll_item_bg2'">
+ <div class="scroll_item_row">{{ item.procedureName }}</div>
+ <div class="scroll_item_row">{{ item.planCount }}</div>
+ <div class="scroll_item_row">{{ item.num }}</div>
+ <div class="scroll_item_row">{{ item.qualifiedNum }}</div>
+ <div class="scroll_item_row">{{ item.unqualifiedNum }}</div>
+ <div class="scroll_item_row">{{ item.undoneNum }}</div>
+ <div class="scroll_item_row">{{ item.unqualifiedRate }}%</div>
</div>
</div>
</div>
@@ -131,14 +133,14 @@
</div>
<div @mouseenter="handleMouseEnter3" @mouseleave="handleMouseLeave3" class="main_container">
<div ref="scrollContainer3" class="scroll_container">
- <div v-for="(item, index) in 6" :key="item.id" :class="index % 2 == 0 ? 'scroll_item scroll_item_bg1' : 'scroll_item scroll_item_bg2'">
- <div class="scroll_item_row">闊╀紵</div>
- <div class="scroll_item_row">鐢靛悏浠�</div>
- <div class="scroll_item_row">CP003</div>
- <div class="scroll_item_row">2023/08/12 10:12:22</div>
- <div class="scroll_item_row">459</div>
- <div class="scroll_item_row">2</div>
- <div class="scroll_item_row">2.12%</div>
+ <div v-for="(item, index) in data.log" :key="index" :class="index % 2 == 0 ? 'scroll_item scroll_item_bg1' : 'scroll_item scroll_item_bg2'">
+ <div class="scroll_item_row">{{ item.userName }}</div>
+ <div class="scroll_item_row">{{ item.materialName }}</div>
+ <div class="scroll_item_row">{{ item.materialCode }}</div>
+ <div class="scroll_item_row">{{ item.createTime }}</div>
+ <div class="scroll_item_row">{{ item.qualifiedNum ? item.qualifiedNum : '-' }}</div>
+ <div class="scroll_item_row">{{ item.unqualifiedNum }}</div>
+ <div class="scroll_item_row">{{ item.unqualifiedRate ? item.unqualifiedRate : '0' }}%</div>
</div>
</div>
</div>
@@ -152,8 +154,12 @@
<span>杩�7澶╀笉鑹搧鍒嗗竷</span>
</div>
<div class="content_right_top_nr">
- <div class="content_right_top_nr_top"></div>
- <div class="content_right_top_nr_bottom"></div>
+ <div class="content_right_top_nr_bottom_yuan" v-if="data.typeDistribution.length > 0">
+ <span>{{ data.num }}</span>
+ <span>涓嶈壇椤瑰垎甯�</span>
+ </div>
+ <div class="content_right_top_nr_top" id="lineChrat"></div>
+ <div class="content_right_top_nr_bottom" id="pieChart"></div>
</div>
</div>
<!-- 璁惧宸℃璁板綍 -->
@@ -170,11 +176,11 @@
</div>
<div @mouseenter="handleMouseEnter4" @mouseleave="handleMouseLeave4" class="main_container">
<div ref="scrollContainer4" class="scroll_container">
- <div v-for="(item, index) in 10" :key="item.id" :class="index % 2 == 0 ? 'scroll_item scroll_item_bg1' : 'scroll_item scroll_item_bg2'">
- <div class="scroll_item_row">2023-10-12 02:00:23</div>
- <div class="scroll_item_row">鏈ㄥ伐璁惧</div>
- <div class="scroll_item_row">鍚堟牸</div>
- <div class="scroll_item_row">浣曞瓙鏄�</div>
+ <div v-for="(item, index) in data.patrolInspection" :key="index" :class="index % 2 == 0 ? 'scroll_item scroll_item_bg1' : 'scroll_item scroll_item_bg2'">
+ <div class="scroll_item_row">{{ item.checkdate }}</div>
+ <div class="scroll_item_row">{{ item.deviceName }}</div>
+ <div class="scroll_item_row">{{ item.status == 0 ? '鍚堟牸' : '涓嶅悎鏍�' }}</div>
+ <div class="scroll_item_row">{{ item.userName }}</div>
</div>
</div>
</div>
@@ -185,15 +191,35 @@
</template>
<script setup>
- import { reactive, ref, onMounted, onBeforeUnmount, onUnmounted, nextTick } from 'vue'
- import { getTop } from '@/utils/api.js'
+ import { reactive, ref, onMounted, nextTick, onUnmounted, computed, watch, toRefs } from 'vue'
+ import { getPlanData, getTop, getStockList, getWorkPlansList, getProcedureProcessList, getRecordLogPage, getDeviceCheckPage, getUnqualified7DayData, getUnqualifiedCateData } from '@/utils/api.js'
import { useCounterStore } from '@/stores/counter.js'
+ import * as echarts from 'echarts'
+ import { useRouter } from 'vue-router'
+
+ const router = useRouter()
+
+ let data = reactive({
+ production: [],
+ marginStatistics: [],
+ plannedProgress: [],
+ processProgress: [],
+ log: [],
+ patrolInspection: [],
+ dayDistribution: [],
+ typeDistribution: [],
+ num: 0,
+ baseNum: 0
+ })
+
+ let { baseNum } = toRefs(data)
let timer = ref(null)
let timer1 = ref(null)
let timer2 = ref(null)
let timer3 = ref(null)
let timer4 = ref(null)
+ let timer5 = ref(null)
let scrollContainer = ref(null)
let scrollContainer1 = ref(null)
let scrollContainer2 = ref(null)
@@ -218,61 +244,355 @@
const enterprise = useCounterStore()
- console.log(enterprise.count++)
+ const companyId = computed(() => {
+ return enterprise.companyId
+ })
+ const departId = computed(() => {
+ return enterprise.departId
+ })
- start()
- start1()
- // start2()
- start3()
- start4()
- // 娉細绀轰緥涓殑 listData 鍐欑殑鏄潤鎬佹暟鎹紝鍙互鐩存帴璋冪敤 start()
- // 濡傛灉鏄帴鍙h幏鍙� listData 鍒楄〃鏃讹紝闇�瑕佸湪 nextTick 涓皟鐢� start()
- // 鍚﹀垯锛岃繘鍏ラ〉闈笉浼氭粴鍔ㄣ�傚繀椤婚紶鏍囩Щ鍏ョЩ鍑烘墠浼氭粴鍔�
- // 鐢� nextTick 鐨勫師鍥犳槸闇�瑕佺瓑 dom 鍏冪礌鍔犺浇瀹屾瘯鍚庡啀鎵ц鏂规硶
-
- // let chartData = reactive({
- // data: []
+ const jump = (procedureId, procedureName) => {
+ enterprise.setProcedureName(procedureName)
+ router.push({ name: 'process', query: { procedureId } })
+ }
+
+ watch(() => departId.value, (val) => {
+ if (val) {
+ init()
+ }
+ })
+ // router.afterEach((to) => {
+ // if (to.fullPath === '/') {
+ // if (!departId.value) return
+ // // data.production = []
+ // // data.marginStatistics = []
+ // // data.plannedProgress = []
+ // // data.processProgress = []
+ // // data.log = []
+ // // init()
+ // } else {
+ // clearTimeout(timer.value)
+ // clearTimeout(timer1.value)
+ // clearTimeout(timer2.value)
+ // clearTimeout(timer3.value)
+ // clearTimeout(timer4.value)
+ // }
// })
- // function getSensorData() {
- // GetSensorData().then(res=> {
- // chartData.data = res.data.data
- // nextTick(()=>{
- // start()
- // })
- // })
- // }
-
- onMounted(()=> {
- // getSensorData()
- getTop(8, 36)
- .then(res => {
- console.log(res)
- })
- })
+ // router.beforeEach((to) => {
+ // console.log(to);
+ // if (to.fullPath === '/') {
+ // if (!departId.value) return
+ // init()
+ // } else {
+ // clearTimeout(timer.value)
+ // clearTimeout(timer1.value)
+ // clearTimeout(timer2.value)
+ // clearTimeout(timer3.value)
+ // clearTimeout(timer4.value)
+ // }
+ // })
- onBeforeUnmount(()=>{
- clearTimeout(timer.value)
- clearTimeout(timer1.value)
- clearTimeout(timer2.value)
- clearTimeout(timer3.value)
- clearTimeout(timer4.value)
- })
+ start1()
+
+ const init = () => {
+ // 褰撴棩鍛樺伐浜ч噺TOP10
+ getTop(companyId.value, departId.value)
+ .then(res => {
+ if (res.length > 0) {
+ data.baseNum = res[0].doneNum
+ data.production = res
+ }
+ })
+ // 浠撳簱瀹炴椂浣欓噺缁熻
+ getStockList(companyId.value, departId.value)
+ .then(res => {
+ data.marginStatistics = res
+ nextTick(() => {
+ start()
+ })
+ })
+ // 鎴愬搧璁″垝杩涘害
+ getWorkPlansList(companyId.value, departId.value)
+ .then(res => {
+ data.plannedProgress = res
+ nextTick(() => {
+ start1()
+ })
+ })
+ // 鎶ュ伐鏃ュ織
+ getRecordLogPage(companyId.value, departId.value, {
+ capacity: 9999,
+ model: {},
+ page: 1
+ }).then(res => {
+ data.log = res.records
+ nextTick(() => {
+ start3()
+ })
+ })
+ // 璁惧宸℃璁板綍
+ getDeviceCheckPage(companyId.value, departId.value, {
+ capacity: 9999,
+ model: {},
+ page: 1
+ }).then(res => {
+ data.patrolInspection = res.records
+ nextTick(() => {
+ start4()
+ })
+ })
+ // 杩戜竷澶╀笉鑹暟
+ getUnqualified7DayData(companyId.value, departId.value, '')
+ .then(res => {
+ if (res && res.length > 0) {
+ data.dayDistribution = res.map(item => {
+ return {
+ date: item.createTime,
+ num: item.unqualifiedNum
+ }
+ })
+ setDayChart()
+ }
+ })
+ // 杩戜竷澶╀笉鑹」
+ getUnqualifiedCateData(companyId.value, departId.value, '')
+ .then(res => {
+ if (res && res.length > 0) {
+ data.num = 0
+ data.typeDistribution = res.map(item => {
+ data.num += item.unqualifiedNum
+ return {
+ name: item.categoryName,
+ num: item.unqualifiedNum
+ }
+ })
+ setTypeChart()
+ }
+ })
+ // getPlanData
+ getPlanData(companyId.value, departId.value)
+ .then(res => {
+ enterprise.setNum(res)
+ })
+ }
+
+ /**
+ * 涓冩棩鎶樼嚎鍥�
+ */
+ function setDayChart() {
+ let dayChartDom = document.getElementById('lineChrat');
+ let myChart = echarts.init(dayChartDom);
+ let dateList = []
+ let numList = []
+ let num = 0
+ data.dayDistribution.forEach(item => {
+ dateList.push(item.date)
+ numList.push(item.num)
+ num += item.num
+ })
+ let option;
+ option = {
+ title: {
+ text: `杩戜竷鏃ヤ笉鑹搧鎬绘暟锛�${num}`,
+ textStyle: {
+ color: '#fff',
+ fontSize: 12
+ }
+ },
+ xAxis: {
+ type: 'category',
+ boundaryGap: false,
+ splitLine: {
+ lineStyle: {
+ width: 0.5,
+ color: ['#fff']
+ }
+ },
+ axisLabel: {
+ textStyle: {
+ color: '#fff'
+ }
+ },
+ data: dateList
+ },
+
+ yAxis: {
+ type: 'value',
+ splitLine: {
+ lineStyle: {
+ width: 0.5,
+ color: ['#fff']
+ }
+ },
+ axisLabel: {
+ textStyle: {
+ color: '#fff'
+ }
+ }
+ },
+ series: [
+ {
+ data: numList,
+ type: 'line',
+ lineStyle: {
+ color: '#03D2B5',
+ width: 1
+ },
+ areaStyle: {
+ color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
+ {
+ offset: 0,
+ color: 'rgba(3, 210, 181, .9)',
+ },
+ {
+ offset: 1,
+ color: 'rgba(3, 210, 181, 0)',
+ }
+ ])
+ }
+ }
+ ],
+
+ tooltip: {
+ trigger: 'axis'
+ },
+ legend: {
+ name: '1adssad',
+ itemWidth: 10,
+ itemHeight: 10,
+ itemGap: 4,
+ textStyle: {
+ color: '#fff'
+ }
+ }
+ }
+
+ option && myChart.setOption(option);
+ }
+
+ /**
+ * 涓嶈壇绫诲瀷鍒嗗竷
+ */
+ function setTypeChart() {
+ let dayChartDom = document.getElementById('pieChart');
+ let myChart = echarts.init(dayChartDom);
+ let legendData = []
+ let seriesData = []
+ data.typeDistribution.forEach(item => {
+ legendData.push(item.name)
+ seriesData.push({name:item.name, value:item.num})
+ })
+ let option = {
+ // title: {
+ // text: '鍚屽悕鏁伴噺缁熻',
+ // subtext: '绾睘铏氭瀯',
+ // left: 'center'
+ // },
+ // tooltip: {
+ // trigger: 'item',
+ // formatter: '{a} <br/>{b} : {c} ({d}%)'
+ // },
+ legend: {
+ show: false,
+ type: 'scroll',
+ orient: 'vertical',
+ right: 10,
+ top: 20,
+ bottom: 20,
+ data: legendData
+ },
+ series: [
+ {
+ // name: '濮撳悕',
+ type: 'pie',
+
+ radius: ['60%', '70%'],
+ // avoidLabelOverlap: false,
+ itemStyle: {
+ borderRadius: 4,
+ borderColor: 'rgba(52, 88, 159, 0.4)',
+ borderWidth: 4
+ },
+ center: ['50%', '50%'],
+ labelLine: {
+ show: false
+ },
+ label: {
+ formatter:'{dot| } {title|{b} {c}}\n\n{per|{d}%}',
+ rich: {
+ title: {
+ color: '#fff'
+ },
+ per: {
+ color: '#01D9FE'
+ },
+ dot: {
+ backgroundColor: 'inherit',
+ width: 8,
+ height: 8,
+ borderRadius: 4
+ }
+ }
+ },
+ // labelLayout: {
+ // hideOverlap: true
+ // },
+ endLabel: {
+ show: true,
+ distance: 5,
+ color: "red"
+ },
+ data: seriesData,
+ emphasis: {
+ itemStyle: {
+ shadowBlur: 10,
+ shadowOffsetX: 0,
+ shadowColor: 'rgba(0, 0, 0, 1)'
+ }
+ }
+ }
+ ]
+ }
+ option && myChart.setOption(option);
+ }
+
+ // onBeforeUnmount(()=>{
+ // clearTimeout(timer.value)
+ // clearTimeout(timer1.value)
+ // clearTimeout(timer2.value)
+ // clearTimeout(timer3.value)
+ // clearTimeout(timer4.value)
+ // })
onUnmounted(()=>{
clearTimeout(timer.value)
clearTimeout(timer1.value)
clearTimeout(timer2.value)
clearTimeout(timer3.value)
clearTimeout(timer4.value)
+ clearTimeout(timer5.value)
})
const clickCate = (index) => {
clearTimeout(timer1.value)
clearTimeout(timer2.value)
cate.value.forEach((item, i) => {
if (i === index) {
+ // 鎴愬搧璁″垝杩涘害
if (i == 0) {
- start1()
+ getWorkPlansList(companyId.value, departId.value)
+ .then(res => {
+ data.plannedProgress = res
+ nextTick(() => {
+ start1()
+ })
+ })
} else {
- start2()
+ getProcedureProcessList(companyId.value, departId.value)
+ .then(res => {
+ data.processProgress = res
+ nextTick(() => {
+ start2()
+ })
+ })
}
item.active = true
} else {
@@ -314,35 +634,35 @@
function start() {
clearTimeout(timer.value)
// 瀹氭椂鍣ㄨЕ鍙戝懆鏈�
- let speed = ref(25)
+ let speed = ref(100)
timer.value = setInterval(ListScroll, speed.value)
}
// 寮�鍚畾鏃跺櫒
function start1() {
clearTimeout(timer1.value)
// 瀹氭椂鍣ㄨЕ鍙戝懆鏈�
- let speed1 = ref(25)
+ let speed1 = ref(100)
timer1.value = setInterval(ListScroll1, speed1.value)
}
// 寮�鍚畾鏃跺櫒
function start2() {
clearTimeout(timer2.value)
// 瀹氭椂鍣ㄨЕ鍙戝懆鏈�
- let speed2 = ref(25)
+ let speed2 = ref(100)
timer2.value = setInterval(ListScroll2, speed2.value)
}
// 寮�鍚畾鏃跺櫒
function start3() {
clearTimeout(timer3.value)
// 瀹氭椂鍣ㄨЕ鍙戝懆鏈�
- let speed3 = ref(25)
+ let speed3 = ref(100)
timer3.value = setInterval(ListScroll3, speed3.value)
}
// 寮�鍚畾鏃跺櫒
function start4() {
clearTimeout(timer4.value)
// 瀹氭椂鍣ㄨЕ鍙戝懆鏈�
- let speed4 = ref(25)
+ let speed4 = ref(100)
timer4.value = setInterval(ListScroll4, speed4.value)
}
function ListScroll() {
@@ -465,6 +785,15 @@
}
}
}
+
+ // onUnmounted(() => {
+
+ // })
+
+ onMounted(() => {
+ if (!departId.value) return;
+ timer5.value = setInterval(init(), 60000)
+ })
</script>
<style lang="scss" scoped>
@@ -514,6 +843,7 @@
}
.content_left_item1_content_row_name {
flex-shrink: 0;
+ width: 100px;
display: flex;
align-items: center;
span {
@@ -558,6 +888,7 @@
}
.content_left_item1_content_row_num {
font-size: 13px;
+ width: 60px;
font-family: SourceHanSansSC-Regular, SourceHanSansSC;
font-weight: 400;
color: #D2E0FF;
@@ -632,11 +963,15 @@
align-items: center;
.scroll_item_row {
flex: 1;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
height: 100%;
display: flex;
align-items: center;
justify-content: center;
color: #FFFFFF;
+ font-size: 13px;
&:first-child {
flex: 1.5;
}
@@ -735,10 +1070,14 @@
.scroll_item_row {
flex: 1;
height: 100%;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
display: flex;
align-items: center;
justify-content: center;
color: #FFFFFF;
+ font-size: 13px;
&:nth-child(5) {
flex: 3;
}
@@ -777,6 +1116,17 @@
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #01D9FE;
+ }
+ .scroll_item_row_item_wz {
+ white-space: nowrap;
+ position: absolute;
+ bottom: -10px;
+ left: 50%;
+ transform: translate(-50%, 45%);
+ font-size: 12px;
+ font-family: PingFangSC-Regular, PingFang SC;
+ font-weight: 400;
+ color: #FFFFFF;
}
.scroll_item_row_item_x {
position: absolute;
@@ -837,8 +1187,12 @@
.scroll_item_row {
flex: 1;
height: 100%;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
display: flex;
align-items: center;
+ font-size: 13px;
justify-content: center;
color: #FFFFFF;
.scroll_item_row_item {
@@ -927,7 +1281,11 @@
.scroll_item_row {
flex: 1;
height: 100%;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
display: flex;
+ font-size: 13px;
align-items: center;
justify-content: center;
color: #FFFFFF;
@@ -968,15 +1326,45 @@
width: 100%;
height: calc(100% - 38px);
background: linear-gradient(180deg, rgba(52,88,159,0) 0%, rgba(0,86,255,0.4) 100%);
+ position: relative;
+ .content_right_top_nr_bottom_yuan {
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ transform: translate(-50%, 53%);
+ z-index: 999;
+ width: 114px;
+ height: 114px;
+ border-radius: 50%;
+ border: 2px dashed #01D9FE;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ span {
+ &:first-child {
+ font-size: 26px;
+ font-family: SourceHanSansSC-Medium, SourceHanSansSC;
+ font-weight: 500;
+ color: #FFFFFF;
+ }
+ &:last-child {
+ font-size: 13px;
+ font-family: SourceHanSansSC-Regular, SourceHanSansSC;
+ font-weight: 400;
+ color: rgba(255,255,255,0.8);
+ }
+ }
+ }
.content_right_top_nr_top {
width: 100%;
height: 50%;
- background-color: #00B0FF;
+ padding: 10px 0 0 10px;
+ box-sizing: border-box;
}
.content_right_top_nr_bottom {
width: 100%;
height: 50%;
- background-color: #5900ff;
}
}
}
@@ -1048,6 +1436,10 @@
.scroll_item_row {
flex: 1;
height: 100%;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ font-size: 13px;
display: flex;
align-items: center;
justify-content: center;
--
Gitblit v1.9.3