From 349bcef9a96391d22522a3409adf5a89e7e70a95 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期二, 24 十月 2023 08:46:11 +0800
Subject: [PATCH] Merge branch 'dev' of http://139.186.142.91:10010/r/productDev/dmMes into dev
---
screen_standard/src/views/index.vue | 2962 +++++++++++++++++++++++++++++++---------------------------
1 files changed, 1,579 insertions(+), 1,383 deletions(-)
diff --git a/screen_standard/src/views/index.vue b/screen_standard/src/views/index.vue
index 3cb26ac..975400e 100644
--- a/screen_standard/src/views/index.vue
+++ b/screen_standard/src/views/index.vue
@@ -1,1427 +1,1623 @@
<template>
- <div class="content1">
- <div class="content_left">
- <!-- 褰撴棩鍛樺伐浜ч噺TOP10 -->
- <div class="content_left_item1">
- <div class="content_left_item1_head">
- <span>褰撴棩鍛樺伐浜ч噺TOP10</span>
- </div>
- <div class="content_left_item1_content">
- <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>{{item.userName}}</span>
- </div>
- <div class="content_left_item1_content_row_line">
- <el-progress
- :show-text="false"
- :percentage="item.doneNum / baseNum">
- </el-progress>
- </div>
- <div class="content_left_item1_content_row_num">{{ item.doneNum }}</div>
- </div>
- </div>
- </div>
- <!-- 浠撳簱瀹炴椂浣欓噺缁熻 -->
- <div class="content_left_item2">
- <div class="content_left_item2_head">
- <span>浠撳簱瀹炴椂浣欓噺缁熻</span>
- </div>
- <div class="content_left_item2_content">
- <div class="item2_content_head">
- <div class="item2_content_head_item">鐗╂枡鍚嶇О / 宸ュ簭</div>
- <div class="item2_content_head_item">浠撳簱</div>
- <div class="item2_content_head_item">璐ф灦</div>
- <div class="item2_content_head_item">鏁伴噺</div>
- </div>
- <div @mouseenter="handleMouseEnter" @mouseleave="handleMouseLeave" class="main_container">
- <div ref="scrollContainer" class="scroll_container">
- <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>
- </div>
- </div>
+ <div class="content1">
+ <!-- <div class="content_left">
+
+ <div class="content_left_item2">
+ <div class="content_left_item2_head">
+ <span>浠撳簱瀹炴椂浣欓噺缁熻</span>
</div>
- <div class="content_center">
- <!-- 鎴愬搧璁″垝杩涘害/宸ュ簭杩涘害 -->
- <div class="content_center_top">
- <div class="content_center_top_list">
- <div @click="clickCate(index)" :class="item.active ? 'content_center_top_list_item bg4' : 'content_center_top_list_item bg3'" v-for="(item, index) in cate" :key="index">
- {{ item.name }}
- </div>
- </div>
- <div class="content_center_top_form" v-if="cate[0].active">
- <div class="content_center_top_form_head">
- <div class="content_center_top_form_head_item">璁″垝缂栫爜</div>
- <div class="content_center_top_form_head_item">鐗╂枡鍚嶇О</div>
- <div class="content_center_top_form_head_item">鐗╂枡缂栫爜</div>
- <div class="content_center_top_form_head_item">璁″垝鏁伴噺</div>
- <div class="content_center_top_form_head_item">鍚勫伐搴忓畬鎴愭儏鍐�</div>
- <div class="content_center_top_form_head_item">鑹搧鏁�/瀹屽伐鏁�</div>
- </div>
- <div @mouseenter="handleMouseEnter1" @mouseleave="handleMouseLeave1" class="main_container">
- <div ref="scrollContainer1" class="scroll_container">
- <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 item.procedureList" :key="i"
- effect="dark"
- :content="'宸叉姤宸ヨ壇鍝佹暟' + child.doneNum + '锛涘伐搴忚鍒掓暟' + child.planNum"
- placement="top">
- <div class="scroll_item_row_item" @click="jump(child.procedureId)">
- <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-if="child.rate < 100">{{ child.rate }}%</span>
- <img v-else src="@/assets/img/ic_complete@2x.png" alt="" />
- </div>
- </el-tooltip>
- </div>
- <div class="scroll_item_row">{{ item.qualifiedNum }}/{{ item.doneNum }}</div>
- </div>
- </div>
- </div>
- </div>
- <div class="content_center_top_form1" v-if="cate[1].active">
- <div class="content_center_top_form_head">
- <div class="content_center_top_form_head_item">宸ュ簭鍚嶇О</div>
- <div class="content_center_top_form_head_item">璁″垝涓暟</div>
- <div class="content_center_top_form_head_item">璁″垝鏁伴噺</div>
- <div class="content_center_top_form_head_item">鑹搧鏁�</div>
- <div class="content_center_top_form_head_item">涓嶈壇鍝佹暟</div>
- <div class="content_center_top_form_head_item">鏈畬宸ユ暟閲�</div>
- <div class="content_center_top_form_head_item">涓嶈壇鐜�</div>
- </div>
- <div @mouseenter="handleMouseEnter2" @mouseleave="handleMouseLeave2" class="main_container">
- <div ref="scrollContainer2" class="scroll_container">
- <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>
- </div>
+ <div class="content_left_item2_content">
+ <div class="item2_content_head">
+ <div class="item2_content_head_item">鐗╂枡鍚嶇О / 宸ュ簭</div>
+ <div class="item2_content_head_item">浠撳簱</div>
+ <div class="item2_content_head_item">璐ф灦</div>
+ <div class="item2_content_head_item">鏁伴噺</div>
+ </div>
+ <div @mouseenter="handleMouseEnter" @mouseleave="handleMouseLeave" class="main_container">
+ <div ref="scrollContainer" class="scroll_container">
+ <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 class="content_center_bottom">
- <div class="content_center_bottom_head">
- <span>鎶ュ伐鏃ュ織</span>
- </div>
- <div class="content_center_bottom_b">
- <div class="content_center_top_form_head">
- <div class="content_center_top_form_head_item">鍛樺伐鍚嶇О</div>
- <div class="content_center_top_form_head_item">鐗╂枡鍚嶇О</div>
- <div class="content_center_top_form_head_item">鐗╂枡缂栫爜</div>
- <div class="content_center_top_form_head_item">鎶ュ伐鏃堕棿</div>
- <div class="content_center_top_form_head_item">鑹搧鏁�</div>
- <div class="content_center_top_form_head_item">涓嶈壇鍝佹暟</div>
- <div class="content_center_top_form_head_item">涓嶈壇鐜�</div>
- </div>
- <div @mouseenter="handleMouseEnter3" @mouseleave="handleMouseLeave3" class="main_container">
- <div ref="scrollContainer3" class="scroll_container">
- <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>
- </div>
- </div>
+ </div>
</div>
- <div class="content_right">
- <!-- 杩�7澶╀笉鑹搧鍒嗗竷 -->
- <div class="content_right_top">
- <div class="content_right_top_head">
- <span>杩�7澶╀笉鑹搧鍒嗗竷</span>
- </div>
- <div class="content_right_top_nr">
- <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>
- <!-- 璁惧宸℃璁板綍 -->
- <div class="content_right_bottom">
- <div class="content_right_bottom_head">
- <span>璁惧宸℃璁板綍</span>
- </div>
- <div class="content_right_bottom_nr">
- <div class="item2_content_head">
- <div class="item2_content_head_item">宸℃鏃堕棿</div>
- <div class="item2_content_head_item">宸℃璁惧</div>
- <div class="item2_content_head_item">宸℃缁撴灉</div>
- <div class="item2_content_head_item">宸℃浜哄憳</div>
- </div>
- <div @mouseenter="handleMouseEnter4" @mouseleave="handleMouseLeave4" class="main_container">
- <div ref="scrollContainer4" class="scroll_container">
- <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>
- </div>
- </div>
+ </div>
+ </div> -->
+ <div class="content_center">
+ <!-- 鎴愬搧璁″垝杩涘害/宸ュ簭杩涘害 -->
+ <div class="content_center_top">
+ <div class="content_center_top_list">
+ <div @click="clickCate(index)"
+ :class="item.active ? 'content_center_top_list_item bg4' : 'content_center_top_list_item bg3'"
+ v-for="(item, index) in cate" :key="index">
+ {{ item.name }}
+ </div>
</div>
+ <div class="content_center_top_form" v-if="cate[0].active">
+ <div class="content_center_top_form_head">
+ <div class="content_center_top_form_head_item">璁″垝缂栫爜</div>
+ <div class="content_center_top_form_head_item">鐗╂枡鍚嶇О</div>
+ <div class="content_center_top_form_head_item">鐗╂枡缂栫爜</div>
+ <div class="content_center_top_form_head_item">璁″垝鏁伴噺</div>
+ <div class="content_center_top_form_head_item">鍚勫伐搴忓畬鎴愭儏鍐�</div>
+ <div class="content_center_top_form_head_item">鑹搧鏁�/瀹屽伐鏁�</div>
+ </div>
+ <div @mouseenter="handleMouseEnter1" @mouseleave="handleMouseLeave1" class="main_container">
+ <div ref="scrollContainer1" class="scroll_container">
+ <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" style="text-align: left;">
+ <el-tooltip v-for="(child, i) in item.procedureList" :key="i" effect="dark"
+ :content="'宸叉姤宸ヨ壇鍝佹暟' + child.doneNum + '锛涘伐搴忚鍒掓暟' + child.planNum" placement="top">
+ <div class="scroll_item_row_item" @click="jump(child.procedureId, child.procedureName)">
+ <div class="scroll_item_row_item_x"></div>
+ <span v-if="child.rate < 100">{{ child.rate.toFixed(0) }}%</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">{{ item.qualifiedNum }}/{{ item.doneNum }}</div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="content_center_top_form1" v-if="cate[1].active">
+ <div class="content_center_top_form_head">
+ <div class="content_center_top_form_head_item">宸ュ簭鍚嶇О</div>
+ <div class="content_center_top_form_head_item">璁″垝涓暟</div>
+ <div class="content_center_top_form_head_item">璁″垝鏁伴噺</div>
+ <div class="content_center_top_form_head_item">鑹搧鏁�</div>
+ <div class="content_center_top_form_head_item">涓嶈壇鍝佹暟</div>
+ <div class="content_center_top_form_head_item">鏈畬宸ユ暟閲�</div>
+ <div class="content_center_top_form_head_item">涓嶈壇鐜�</div>
+ </div>
+ <div @mouseenter="handleMouseEnter2" @mouseleave="handleMouseLeave2" class="main_container">
+ <div ref="scrollContainer2" class="scroll_container">
+ <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||0).toFixed(2) }}%</div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <!-- 鎶ュ伐鏃ュ織 -->
+ <div style="display: flex;">
+ <div class="content_left" style="flex: 1;">
+ <div class="content_left_item1">
+ <div class="content_left_item1_head">
+ <span>褰撴棩鍛樺伐浜ч噺TOP10</span>
+ </div>
+ <div class="content_left_item1_content" ref="scrollContainer">
+ <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>{{ item.userName }}</span>
+ </div>
+ <div class="content_left_item1_content_row_line">
+ <el-progress :show-text="false" :percentage="item.doneNum / baseNum * 100">
+ </el-progress>
+ </div>
+ <div class="content_left_item1_content_row_num">{{ item.doneNum }}</div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="content_center_bottom">
+ <div class="content_center_bottom_head">
+ <span>鎶ュ伐鏃ュ織</span>
+ </div>
+ <div class="content_center_bottom_b">
+ <div class="content_center_top_form_head">
+ <div class="content_center_top_form_head_item">鍛樺伐鍚嶇О</div>
+ <div class="content_center_top_form_head_item">鐗╂枡鍚嶇О</div>
+ <div class="content_center_top_form_head_item">宸ュ簭</div>
+ <div class="content_center_top_form_head_item">鎶ュ伐鏃堕棿</div>
+ <div class="content_center_top_form_head_item">鑹搧鏁�</div>
+ <div class="content_center_top_form_head_item">涓嶈壇鍝佹暟</div>
+ <div class="content_center_top_form_head_item">涓嶈壇鐜�</div>
+ </div>
+ <div @mouseenter="handleMouseEnter3" @mouseleave="handleMouseLeave3" class="main_container">
+ <div ref="scrollContainer3" class="scroll_container">
+ <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.procedureName }}</div>
+ <div class="scroll_item_row">{{ dateToSub(item.createTime) }}</div>
+ <div class="scroll_item_row">{{ item.qualifiedNum || 0 }}</div>
+ <div class="scroll_item_row">{{ item.unqualifiedNum || 0 }}</div>
+ <div class="scroll_item_row">{{ (item.unqualifiedRate || 0).toFixed(2) }}%</div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
</div>
+ <div class="content_right">
+ <!-- 杩�7澶╀笉鑹搧鍒嗗竷 -->
+ <div class="content_right_top">
+ <div class="content_right_top_head">
+ <span>杩�7澶╀笉鑹搧鍒嗗竷</span>
+ </div>
+ <div class="content_right_top_nr">
+
+ <div class="content_right_top_nr_top" id="lineChrat"></div>
+ <div class="content_right_top_nr_bottom">
+ <div class="content_right_top_nr_bottom_yuan" v-if="data.typeDistribution.length > 0">
+ <span>{{ data.num }}</span>
+ <span>涓嶈壇椤瑰垎甯�</span>
+ </div>
+ <div id="pieChart"></div>
+ </div>
+
+ </div>
+ </div>
+ <!-- 璁惧宸℃璁板綍 -->
+ <div class="content_right_bottom" ref="bottom1">
+ <div class="content_right_bottom_head">
+ <span>璁惧宸℃璁板綍</span>
+ </div>
+ <div class="content_right_bottom_nr">
+ <div class="item2_content_head">
+ <div class="item2_content_head_item">宸℃鏃堕棿</div>
+ <div class="item2_content_head_item">宸℃璁惧</div>
+ <div class="item2_content_head_item">宸℃缁撴灉</div>
+ <div class="item2_content_head_item">宸℃浜哄憳</div>
+ </div>
+ <div @mouseenter="handleMouseEnter4" @mouseleave="handleMouseLeave4" class="main_container">
+ <div ref="scrollContainer4" class="scroll_container">
+ <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">{{ dateToSub(item.checkdate) }}</div>
+ <div class="scroll_item_row">{{ item.deviceName }}</div>
+ <div class="scroll_item_row">
+ <span v-if="item.status == 0">姝e父</span>
+ <span v-else style="color: #F84F26">寮傚父</span>
+ </div>
+ <div class="scroll_item_row">{{ item.userName }}</div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
</template>
<script setup>
- import { reactive, ref, onMounted, nextTick, onUnmounted, computed, watch, onActivated } 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'
+import { dateToSub } from '@/utils'
+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()
+const router = useRouter()
- let data = reactive({
- production: [],
- marginStatistics: [],
- plannedProgress: [],
- processProgress: [],
- log: [],
- patrolInspection: [],
- dayDistribution: [],
- typeDistribution: [],
- num: 0,
- baseNum: 0
+let data = reactive({
+ production: [],
+ marginStatistics: [],
+ plannedProgress: [],
+ processProgress: [],
+ log: [],
+ patrolInspection: [],
+ dayDistribution: [],
+ typeDistribution: [],
+ num: 0,
+ baseNum: 0,
+ bottomAuthHeight: 284
+})
+
+let { baseNum, bottomAuthHeight } = 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)
+let scrollContainer3 = ref(null)
+let scrollContainer4 = ref(null)
+let bottom1 = ref(null)
+let cate = ref([
+ {
+ name: '鎴愬搧璁″垝杩涘害',
+ id: 1,
+ active: true,
+ background: 'tab_select_grey@2x.png',
+ activeBackground: 'tab_select@2x.png'
+ },
+ {
+ name: '宸ュ簭杩涘害',
+ id: 2,
+ active: false,
+ background: 'tab_select_grey@2x.png',
+ activeBackground: 'tab_select@2x.png'
+ }
+])
+
+const enterprise = useCounterStore()
+
+const companyId = computed(() => {
+ return enterprise.companyId
+})
+const departId = computed(() => {
+ return enterprise.departId
+})
+
+const jump = (procedureId, procedureName) => {
+ enterprise.setProcedureName(procedureName)
+ router.push({ name: 'process', query: { procedureId } })
+}
+
+watch(() => departId.value, (val) => {
+ if (val) {
+ init()
+ }
+})
+
+start1()
+
+const init = () => {
+ setBottomHeight();
+ // 褰撴棩鍛樺伐浜ч噺TOP10
+ getTop(companyId.value, departId.value)
+ .then(res => {
+ if (res.length > 0) {
+ data.baseNum = res[0].doneNum
+ } else {
+ data.baseNum = 0
+ }
+ data.production = res
+ data.fifthScroll = true
})
-
- 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 scrollContainer = ref(null)
- let scrollContainer1 = ref(null)
- let scrollContainer2 = ref(null)
- let scrollContainer3 = ref(null)
- let scrollContainer4 = ref(null)
- let cate = ref([
- {
- name: '鎴愬搧璁″垝杩涘害',
- id: 1,
- active: true,
- background: 'tab_select_grey@2x.png',
- activeBackground: 'tab_select@2x.png'
- },
- {
- name: '宸ュ簭杩涘害',
- id: 2,
- active: false,
- background: 'tab_select_grey@2x.png',
- activeBackground: 'tab_select@2x.png'
- }
- ])
-
- const enterprise = useCounterStore()
-
- const companyId = computed(() => {
- return enterprise.companyId
- })
- const departId = computed(() => {
- return enterprise.departId
- })
-
- const jump = (procedureId) => {
- 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)
- // }
- // })
- // 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)
- // }
- // })
-
- 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()
+ // })
+ // })
+ cate.value.forEach((item, index) => {
+ if (item.active) {
+ if (index == 1) {
+ getProcedureProcessList(companyId.value, departId.value)
+ .then(res => {
+ data.processProgress = res
+ nextTick(() => {
+ start2()
})
- // 浠撳簱瀹炴椂浣欓噺缁熻
- getStockList(companyId.value, departId.value)
- .then(res => {
- data.marginStatistics = res
- nextTick(() => {
- start()
- })
- })
+ })
+ } else {
// 鎴愬搧璁″垝杩涘害
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
+ .then(res => {
+ data.plannedProgress = res
nextTick(() => {
- start3()
+ start1()
})
- })
- // 璁惧宸℃璁板綍
- 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
+
+ // 鎶ュ伐鏃ュ織
+ getRecordLogPage(companyId.value, departId.value, {
+ capacity: 20,
+ 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
+ }
})
- 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
- },
+ 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 setBottomHeight(){
+ const pageHeight = window.innerHeight;
+ bottomAuthHeight = pageHeight - 700;
+}
- 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'
- }
- }
+/**
+ * 涓冩棩鎶樼嚎鍥�
+ */
+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
+ }
+ },
+ grid: {
+ top: 40,
+ bottom: 30,
+ left: 60,
+ right: 10
+ },
+ xAxis: {
+ type: 'category',
+ boundaryGap: false,
+ splitLine: {
+ lineStyle: {
+ width: 0.5,
+ color: ['#fff']
}
+ },
+ axisLine: {
+ show: true,
+ onZero: true,
+ lineStyle: {
+ width: 0.5,
+ color: '#fff',
+ opacity: .5
+ }
+ },
+ axisLabel: {
+ textStyle: {
+ color: '#fff'
+ }
+ },
+ data: dateList
+ },
- 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: [
+ yAxis: {
+ type: 'value',
+ splitLine: {
+ lineStyle: {
+ width: 0.5,
+ color: ['#fff']
+ }
+ },
+ axisLine: {
+ show: true,
+ onZero: true,
+ lineStyle: {
+ width: 1,
+ color: '#fff',
+ opacity: .5
+ }
+ },
+ axisLabel: {
+ textStyle: {
+ color: '#fff'
+ }
+ }
+ },
+ series: [
+ {
+ data: numList,
+ type: 'line',
+ lineStyle: {
+ color: '#03D2B5',
+ width: 1
+ },
+ areaStyle: {
+ color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
{
- // name: '濮撳悕',
- type: 'pie',
+ offset: 0,
+ color: 'rgba(3, 210, 181, .9)',
+ },
+ {
+ offset: 1,
+ color: 'rgba(3, 210, 181, 0)',
+ }
+ ])
+ }
+ }
+ ],
- 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);
+ tooltip: {
+ trigger: 'axis'
+ },
+ legend: {
+ name: '1adssad',
+ itemWidth: 10,
+ itemHeight: 10,
+ itemGap: 4,
+ textStyle: {
+ color: '#fff'
+ }
}
+ }
- // 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)
- })
- const clickCate = (index) => {
- clearTimeout(timer1.value)
- clearTimeout(timer2.value)
- cate.value.forEach((item, i) => {
- if (i === index) {
- // 鎴愬搧璁″垝杩涘害
- if (i == 0) {
- getWorkPlansList(companyId.value, departId.value)
- .then(res => {
- data.plannedProgress = res
- nextTick(() => {
- start1()
- })
- })
- } else {
- getProcedureProcessList(companyId.value, departId.value)
- .then(res => {
- data.processProgress = res
- nextTick(() => {
- start2()
- })
- })
- }
- item.active = true
- } else {
- item.active = false
- }
- })
- }
- function handleMouseEnter() {
- clearTimeout(timer.value)
- }
- function handleMouseEnter1() {
- clearTimeout(timer1.value)
- }
- function handleMouseEnter2() {
- clearTimeout(timer2.value)
- }
- function handleMouseEnter3() {
- clearTimeout(timer3.value)
- }
- function handleMouseEnter4() {
- clearTimeout(timer4.value)
- }
- function handleMouseLeave() {
- start()
- }
- function handleMouseLeave1() {
- start1()
- }
- function handleMouseLeave2() {
- start2()
- }
- function handleMouseLeave3() {
- start3()
- }
- function handleMouseLeave4() {
- start4()
- }
- // 寮�鍚畾鏃跺櫒
- function start() {
- clearTimeout(timer.value)
- // 瀹氭椂鍣ㄨЕ鍙戝懆鏈�
- let speed = ref(100)
- timer.value = setInterval(ListScroll, speed.value)
- }
- // 寮�鍚畾鏃跺櫒
- function start1() {
- clearTimeout(timer1.value)
- // 瀹氭椂鍣ㄨЕ鍙戝懆鏈�
- let speed1 = ref(100)
- timer1.value = setInterval(ListScroll1, speed1.value)
- }
- // 寮�鍚畾鏃跺櫒
- function start2() {
- clearTimeout(timer2.value)
- // 瀹氭椂鍣ㄨЕ鍙戝懆鏈�
- let speed2 = ref(100)
- timer2.value = setInterval(ListScroll2, speed2.value)
- }
- // 寮�鍚畾鏃跺櫒
- function start3() {
- clearTimeout(timer3.value)
- // 瀹氭椂鍣ㄨЕ鍙戝懆鏈�
- let speed3 = ref(100)
- timer3.value = setInterval(ListScroll3, speed3.value)
- }
- // 寮�鍚畾鏃跺櫒
- function start4() {
- clearTimeout(timer4.value)
- // 瀹氭椂鍣ㄨЕ鍙戝懆鏈�
- let speed4 = ref(100)
- timer4.value = setInterval(ListScroll4, speed4.value)
- }
- function ListScroll() {
- let scrollDom = scrollContainer.value
- // 鍒よ缁勪欢鏄惁娓叉煋瀹屾垚
- if(scrollDom.offsetHeight == 0) {
- scrollDom = scrollContainer.value
- }else {
- // 濡傛灉鍒楄〃鏁伴噺杩囧皯涓嶈繘琛屾粴鍔�
- if(scrollDom.children.length < 8) {
- clearTimeout(timer.value)
- return
- }
- // 缁勪欢杩涜婊氬姩
- scrollDom.scrollTop += 1
- // 鍒ゆ柇鏄惁婊氬姩鍒板簳閮�
- if(scrollDom.scrollTop >= (scrollDom.scrollHeight - scrollDom.clientHeight)) {
- // 鑾峰彇缁勪欢绗竴涓妭鐐�
- let first = scrollDom.children[0]
- // 鍒犻櫎鑺傜偣
- scrollDom.removeChild(first)
- // 灏嗚鑺傜偣鎷兼帴鍒扮粍浠舵渶鍚�
- scrollDom.append(first)
- }
- }
- }
- function ListScroll1() {
- let scrollDom = scrollContainer1.value
- // 鍒よ缁勪欢鏄惁娓叉煋瀹屾垚
- if(scrollDom.offsetHeight == 0) {
- scrollDom = scrollContainer1.value
- }else {
- // 濡傛灉鍒楄〃鏁伴噺杩囧皯涓嶈繘琛屾粴鍔�
- if(scrollDom.children.length < 7) {
- clearTimeout(timer1.value)
- return
- }
- // 缁勪欢杩涜婊氬姩
- scrollDom.scrollTop += 1
- // 鍒ゆ柇鏄惁婊氬姩鍒板簳閮�
- if(scrollDom.scrollTop >= (scrollDom.scrollHeight - scrollDom.clientHeight)) {
- // 鑾峰彇缁勪欢绗竴涓妭鐐�
- let first = scrollDom.children[0]
- // 鍒犻櫎鑺傜偣
- scrollDom.removeChild(first)
- // 灏嗚鑺傜偣鎷兼帴鍒扮粍浠舵渶鍚�
- scrollDom.append(first)
- }
- }
- }
- function ListScroll2() {
- let scrollDom = scrollContainer2.value
- // 鍒よ缁勪欢鏄惁娓叉煋瀹屾垚
- if(scrollDom.offsetHeight == 0) {
- scrollDom = scrollContainer2.value
- }else {
- // 濡傛灉鍒楄〃鏁伴噺杩囧皯涓嶈繘琛屾粴鍔�
- if(scrollDom.children.length < 7) {
- clearTimeout(timer2.value)
- return
- }
- // 缁勪欢杩涜婊氬姩
- scrollDom.scrollTop += 1
- // 鍒ゆ柇鏄惁婊氬姩鍒板簳閮�
- if(scrollDom.scrollTop >= (scrollDom.scrollHeight - scrollDom.clientHeight)) {
- // 鑾峰彇缁勪欢绗竴涓妭鐐�
- let first = scrollDom.children[0]
- // 鍒犻櫎鑺傜偣
- scrollDom.removeChild(first)
- // 灏嗚鑺傜偣鎷兼帴鍒扮粍浠舵渶鍚�
- scrollDom.append(first)
- }
- }
- }
- function ListScroll3() {
- let scrollDom = scrollContainer3.value
- // 鍒よ缁勪欢鏄惁娓叉煋瀹屾垚
- if(scrollDom.offsetHeight == 0) {
- scrollDom = scrollContainer3.value
- }else {
- // 濡傛灉鍒楄〃鏁伴噺杩囧皯涓嶈繘琛屾粴鍔�
- if(scrollDom.children.length < 6) {
- clearTimeout(timer3.value)
- return
- }
- // 缁勪欢杩涜婊氬姩
- scrollDom.scrollTop += 1
- // 鍒ゆ柇鏄惁婊氬姩鍒板簳閮�
- if(scrollDom.scrollTop >= (scrollDom.scrollHeight - scrollDom.clientHeight)) {
- // 鑾峰彇缁勪欢绗竴涓妭鐐�
- let first = scrollDom.children[0]
- // 鍒犻櫎鑺傜偣
- scrollDom.removeChild(first)
- // 灏嗚鑺傜偣鎷兼帴鍒扮粍浠舵渶鍚�
- scrollDom.append(first)
- }
- }
- }
- function ListScroll4() {
- let scrollDom = scrollContainer4.value
- // 鍒よ缁勪欢鏄惁娓叉煋瀹屾垚
- if(scrollDom.offsetHeight == 0) {
- scrollDom = scrollContainer4.value
- }else {
- // 濡傛灉鍒楄〃鏁伴噺杩囧皯涓嶈繘琛屾粴鍔�
- if(scrollDom.children.length < 7) {
- clearTimeout(timer4.value)
- return
- }
- // 缁勪欢杩涜婊氬姩
- scrollDom.scrollTop += 1
- // 鍒ゆ柇鏄惁婊氬姩鍒板簳閮�
- if(scrollDom.scrollTop >= (scrollDom.scrollHeight - scrollDom.clientHeight)) {
- // 鑾峰彇缁勪欢绗竴涓妭鐐�
- let first = scrollDom.children[0]
- // 鍒犻櫎鑺傜偣
- scrollDom.removeChild(first)
- // 灏嗚鑺傜偣鎷兼帴鍒扮粍浠舵渶鍚�
- scrollDom.append(first)
- }
- }
- }
+ option && myChart.setOption(option);
+}
- // onUnmounted(() => {
+/**
+ * 涓嶈壇绫诲瀷鍒嗗竷
+ */
+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 = {
+ 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);
+}
+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) {
+ getWorkPlansList(companyId.value, departId.value)
+ .then(res => {
+ data.plannedProgress = res
+ nextTick(() => {
+ start1()
+ })
+ })
+ } else {
+ getProcedureProcessList(companyId.value, departId.value)
+ .then(res => {
+ data.processProgress = res
+ nextTick(() => {
+ start2()
+ })
+ })
+ }
+ item.active = true
+ } else {
+ item.active = false
+ }
+ })
+}
+function handleMouseEnter() {
+ clearTimeout(timer.value)
+}
+function handleMouseEnter1() {
+ clearTimeout(timer1.value)
+}
+function handleMouseEnter2() {
+ clearTimeout(timer2.value)
+}
+function handleMouseEnter3() {
+ clearTimeout(timer3.value)
+}
+function handleMouseEnter4() {
+ clearTimeout(timer4.value)
+}
+function handleMouseLeave() {
+ start()
+}
+function handleMouseLeave1() {
+ start1()
+}
+function handleMouseLeave2() {
+ start2()
+}
+function handleMouseLeave3() {
+ start3()
+}
+function handleMouseLeave4() {
+ start4()
+}
+// 寮�鍚畾鏃跺櫒
+function start() {
+ clearTimeout(timer.value)
+ // 瀹氭椂鍣ㄨЕ鍙戝懆鏈�
+ let speed = ref(100)
+ timer.value = setInterval(ListScroll, speed.value)
+}
+// 寮�鍚畾鏃跺櫒
+function start1() {
+ clearTimeout(timer1.value)
+ // 瀹氭椂鍣ㄨЕ鍙戝懆鏈�
+ let speed1 = ref(100)
+ timer1.value = setInterval(ListScroll1, speed1.value)
+}
+// 寮�鍚畾鏃跺櫒
+function start2() {
+ clearTimeout(timer2.value)
+ // 瀹氭椂鍣ㄨЕ鍙戝懆鏈�
+ let speed2 = ref(100)
+ timer2.value = setInterval(ListScroll2, speed2.value)
+}
+// 寮�鍚畾鏃跺櫒
+function start3() {
+ clearTimeout(timer3.value)
+ // 瀹氭椂鍣ㄨЕ鍙戝懆鏈�
+ let speed3 = ref(100)
+ timer3.value = setInterval(ListScroll3, speed3.value)
+}
+// 寮�鍚畾鏃跺櫒
+function start4() {
+ clearTimeout(timer4.value)
+ // 瀹氭椂鍣ㄨЕ鍙戝懆鏈�
+ let speed4 = ref(100)
+ timer4.value = setInterval(ListScroll4, speed4.value)
+}
+function ListScroll() {
+ let scrollDom = scrollContainer.value
+ if (!scrollDom) return
+ // 鍒よ缁勪欢鏄惁娓叉煋瀹屾垚
+ if (scrollDom.offsetHeight == 0) {
+ scrollDom = scrollContainer.value
+ } else {
+ let maxLength = scrollDom.clientHeight/34
+ // 濡傛灉鍒楄〃鏁伴噺杩囧皯涓嶈繘琛屾粴鍔�
+ if (scrollDom.children.length <= maxLength) {
+ clearTimeout(timer.value)
+ return
+ }
+ // 缁勪欢杩涜婊氬姩
+ scrollDom.scrollTop += 2
+ // 鍒ゆ柇鏄惁婊氬姩鍒板簳閮�
+ if (Math.floor(scrollDom.scrollTop) >= (scrollDom.scrollHeight - scrollDom.clientHeight)) {
+ // 鑾峰彇缁勪欢绗竴涓妭鐐�
+ let first = scrollDom.children[0]
+ // 鍒犻櫎鑺傜偣
+ scrollDom.removeChild(first)
+ // 灏嗚鑺傜偣鎷兼帴鍒扮粍浠舵渶鍚�
+ scrollDom.append(first)
+ }
+ }
+}
+function ListScroll1() {
+ let scrollDom = scrollContainer1.value
+ // 鍒よ缁勪欢鏄惁娓叉煋瀹屾垚
+ if (!scrollDom) return
+ if (scrollDom.offsetHeight == 0) {
+ scrollDom = scrollContainer1.value
+ } else {
+ // 濡傛灉鍒楄〃鏁伴噺杩囧皯涓嶈繘琛屾粴鍔�
+ if (scrollDom.children.length <= 6) {
+ clearTimeout(timer1.value)
+ return
+ }
+ // console.log(data.plannedProgress);
+ // 缁勪欢杩涜婊氬姩
+ scrollDom.scrollTop += 2
+ // scrollDom.scrollTo(0, scrollDom.scrollTop + 3)
+ // console.log('2-----',scrollDom.scrollTop, scrollDom.scrollHeight, scrollDom.clientHeight );
+ // 鍒ゆ柇鏄惁婊氬姩鍒板簳閮�
+ if (scrollDom.scrollTop && scrollDom.scrollTop >= (scrollDom.scrollHeight - scrollDom.clientHeight)) {
+ // 鑾峰彇缁勪欢绗竴涓妭鐐�
+ let first = scrollDom.children[0]
+ // 鍒犻櫎鑺傜偣
+ scrollDom.removeChild(first)
+ // 灏嗚鑺傜偣鎷兼帴鍒扮粍浠舵渶鍚�
+ scrollDom.append(first)
+ }
+ }
+}
+function ListScroll2() {
+ let scrollDom = scrollContainer2.value
+ if (!scrollDom) return
+ // 鍒よ缁勪欢鏄惁娓叉煋瀹屾垚
+ if (scrollDom.offsetHeight == 0) {
+ scrollDom = scrollContainer2.value
+ } else {
+ // 濡傛灉鍒楄〃鏁伴噺杩囧皯涓嶈繘琛屾粴鍔�
+ if (scrollDom.children.length <= 10) {
+ clearTimeout(timer2.value)
+ return
+ }
+ // 缁勪欢杩涜婊氬姩
+ scrollDom.scrollTo(0, scrollDom.scrollTop + 1) // += 1
+ // scrollDom.scrollTop(scrollDom.scrollTop + 1)
+ // console.log('scrollDom.scrollTop', scrollDom.scrollTop);
+ // console.log('scrollDom.scrollHeight - scrollDom.clientHeight', scrollDom.scrollHeight - scrollDom.clientHeight);
+ // 鍒ゆ柇鏄惁婊氬姩鍒板簳閮�
+ if (scrollDom.scrollTop &&scrollDom.scrollTop >= (scrollDom.scrollHeight - scrollDom.clientHeight)) {
+ // 鑾峰彇缁勪欢绗竴涓妭鐐�
+ let first = scrollDom.children[0]
+ // 鍒犻櫎鑺傜偣
+ scrollDom.removeChild(first)
+ // 灏嗚鑺傜偣鎷兼帴鍒扮粍浠舵渶鍚�
+ scrollDom.append(first)
+ }
+ }
+}
+function ListScroll3() {
+ let scrollDom = scrollContainer3.value
+ if (!scrollDom) return
+ // 鍒よ缁勪欢鏄惁娓叉煋瀹屾垚
+ if (scrollDom.offsetHeight == 0) {
+ scrollDom = scrollContainer3.value
+ } else {
+ // 濡傛灉鍒楄〃鏁伴噺杩囧皯涓嶈繘琛屾粴鍔�
+ let num = scrollContainer3.value.offsetHeight / 35;
+ // alert(scrollDom.children.length +"---------------"+num)
+ // 濡傛灉鍒楄〃鏁伴噺杩囧皯涓嶈繘琛屾粴鍔�
+ if (scrollDom.children.length <= num) {
+ clearTimeout(timer3.value)
+ return
+ }
+ // 缁勪欢杩涜婊氬姩
+ scrollDom.scrollTop = scrollDom.scrollTop+2
+ // 鍒ゆ柇鏄惁婊氬姩鍒板簳閮�
+ if (scrollDom.scrollTop && scrollDom.scrollTop >= (scrollDom.scrollHeight - scrollDom.clientHeight)) {
+ // 鑾峰彇缁勪欢绗竴涓妭鐐�
+ let first = scrollDom.children[0]
+ // 鍒犻櫎鑺傜偣
+ scrollDom.removeChild(first)
+ // 灏嗚鑺傜偣鎷兼帴鍒扮粍浠舵渶鍚�
+ scrollDom.append(first)
+ }
+ }
+}
+function ListScroll4() {
+ let scrollDom = scrollContainer4.value
+ if (!scrollDom) return
+ // 鍒よ缁勪欢鏄惁娓叉煋瀹屾垚
+ if (scrollDom.scrollTop && scrollDom.offsetHeight == 0) {
+ scrollDom = scrollContainer4.value
+ } else {
+ // console.log(scrollDom.offsetHeight);
+ let num = scrollDom.offsetHeight / 35;
+ num = num + (scrollDom.offsetHeight % 35 > 0 ? 1 : 0)
+ if (scrollDom.children.length <= num) {
+ clearTimeout(timer4.value)
+ return
+ }
+ // 缁勪欢杩涜婊氬姩
+ scrollDom.scrollTop += 1
+
+ // 鍒ゆ柇鏄惁婊氬姩鍒板簳閮�
+ if (scrollDom.scrollTop && scrollDom.scrollTop >= (scrollDom.scrollHeight - scrollDom.clientHeight)) {
+ // if (scrollDom.scrollTop >= 35) {
+
+ // 鑾峰彇缁勪欢绗竴涓妭鐐�
+ let first = scrollDom.children[0]
+ // 鍒犻櫎鑺傜偣
+ scrollDom.removeChild(first)
+ // 灏嗚鑺傜偣鎷兼帴鍒扮粍浠舵渶鍚�
+ scrollDom.append(first)
+ }
+ }
+}
- onMounted(() => {
- console.log('11111')
- init()
- })
+// onUnmounted(() => {
+
+// })
+
+onMounted(() => {
+ if (departId.value) {
+ console.log('onMounted');
+ init()
+ timer5.value = setInterval(init, 60000)
+ // timer.value = setInterval(scrillAction, 100)
+ }
+ window.addEventListener('resize', () => {
+ setTypeChart()
+ setDayChart()
+ })
+
+})
+
+onUnmounted(() => {
+ clearTimeout(timer.value)
+ clearTimeout(timer5.value)
+
+})
</script>
<style lang="scss" scoped>
- .content1 {
+
+$fixed-height: 690px;
+.content1 {
+ flex: 1;
+ width: 100%;
+ height: auto;
+ display: flex;
+ align-items: start;
+ justify-content: space-between;
+
+ .content_left {
+ flex: 1;
+ margin-right: 20px;
+ .content_left_item1 {
+ width: 100%;
+ height: calc(100vh - 690px);
+ // height: 284px;
+ margin-bottom: 20px;
+ .content_left_item1_head {
+ background: url('@/assets/img/home_title_short@2x.png');
+ background-repeat: no-repeat;
+ background-size: 100% 100%;
width: 100%;
- height: auto;
- display: flex;
- align-items: start;
- justify-content: space-between;
- .content_left {
- flex: 1;
- .content_left_item1 {
- width: 100%;
- margin-bottom: 20px;
- .content_left_item1_head {
- background: url('@/assets/img/home_title_short@2x.png');
- background-repeat: no-repeat;
- background-size: 100% 100%;
- width: 100%;
- height: 38px;
- line-height: 38px;
- padding-left: 34px;
- box-sizing: border-box;
- span {
- font-size: 16px;
- font-family: SourceHanSansSC-Bold, SourceHanSansSC;
- font-weight: bold;
- color: #FFFFFF;
- line-height: 24px;
- text-shadow: 0px 0px 10px rgba(0,24,72,0.75);
- }
- }
- .content_left_item1_content {
- width: 100%;
- height: 360px;
- padding: 20px;
- box-sizing: border-box;
- background: linear-gradient(180deg, rgba(52,88,159,0) 0%, rgba(0,86,255,0.4) 100%);
- .content_left_item1_content_row {
- width: 100%;
- display: flex;
- align-items: center;
- justify-content: space-between;
- margin-bottom: 13px;
- &:last-child {
- margin: 0;
- }
- .content_left_item1_content_row_name {
- flex-shrink: 0;
- width: 100px;
- display: flex;
- align-items: center;
- span {
- font-size: 13px;
- font-family: SourceHanSansSC-Regular, SourceHanSansSC;
- font-weight: 400;
- color: #D2E0FF;
- margin-left: 9px;
- }
- .num {
- width: 20px;
- height: 20px;
- line-height: 20px;
- text-align: center;
- font-size: 12px;
- font-family: SourceHanSansSC-Medium, SourceHanSansSC;
- font-weight: 500;
- color: #FFFFFF;
- }
- .bg1 {
- background: url('@/assets/img/rank_blue@2x.png');
- background-repeat: no-repeat;
- background-size: 100% 100%;
- }
- .bg2 {
- background: url('@/assets/img/rank_yellow@2x.png');
- background-repeat: no-repeat;
- background-size: 100% 100%;
- }
- }
- .content_left_item1_content_row_line {
- flex: 1;
- margin: 0 15px;
- &::v-deep(.el-progress-bar__outer) {
- border-radius: 0%;
- background: rgba(255,255,255,0.13);
- }
- &::v-deep(.el-progress-bar__inner) {
- border-radius: 0%;
- background: linear-gradient(270deg, #00B0FF 0%, #345BA3 100%);
- }
- }
- .content_left_item1_content_row_num {
- font-size: 13px;
- width: 60px;
- font-family: SourceHanSansSC-Regular, SourceHanSansSC;
- font-weight: 400;
- color: #D2E0FF;
- }
- }
- }
- }
- .content_left_item2 {
- width: 100%;
- .content_left_item2_head {
- background: url('@/assets/img/home_title_short@2x.png');
- background-repeat: no-repeat;
- background-size: 100% 100%;
- width: 100%;
- height: 38px;
- line-height: 38px;
- padding-left: 34px;
- box-sizing: border-box;
- span {
- font-size: 16px;
- font-family: SourceHanSansSC-Bold, SourceHanSansSC;
- font-weight: bold;
- color: #FFFFFF;
- line-height: 24px;
- text-shadow: 0px 0px 10px rgba(0,24,72,0.75);
- }
- }
- .content_left_item2_content {
- width: 100%;
- height: 361px;
- padding: 20px;
- box-sizing: border-box;
- background: linear-gradient(180deg, rgba(52,88,159,0) 0%, rgba(0,86,255,0.4) 100%);
- .item2_content_head {
- width: 100%;
- height: 36px;
- display: flex;
- align-items: center;
- background: rgba(52,88,159,0.5);
- .item2_content_head_item {
- flex: 1;
- height: 100%;
- display: flex;
- align-items: center;
- justify-content: center;
- font-size: 13px;
- font-family: PingFangSC-Medium, PingFang SC;
- font-weight: 500;
- color: #01D9FE;
- &:first-child {
- flex: 1.5;
- }
- }
- }
- .main_container {
- width: 100%;
- height: calc(100% - 36px);
- .scroll_container {
- width: 100%;
- height: 100%;
- overflow: hidden;
- .scroll_item_bg1 {
- background: rgba(52,88,159,0.2);
- }
- .scroll_item_bg2 {
- background: rgba(52,88,159,0.5);
- }
- .scroll_item {
- width: 100%;
- height: 36px;
- display: flex;
- 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;
- &:first-child {
- flex: 1.5;
- }
- }
- }
- }
- }
- }
- }
+ height: 38px;
+ line-height: 38px;
+ padding-left: 34px;
+ box-sizing: border-box;
+
+ span {
+ font-size: 16px;
+ font-family: SourceHanSansSC-Bold, SourceHanSansSC;
+ font-weight: bold;
+ color: #FFFFFF;
+ line-height: 24px;
+ text-shadow: 0px 0px 10px rgba(0, 24, 72, 0.75);
}
- .content_center {
- flex: 2;
- margin: 0 20px;
+ }
+
+ .content_left_item1_content {
+ width: 100%;
+ height: calc(100% - 36px);
+ padding: 20px;
+ overflow: hidden;
+ box-sizing: border-box;
+ background: linear-gradient(180deg, rgba(52, 88, 159, 0) 0%, rgba(0, 86, 255, 0.4) 100%);
+
+ .content_left_item1_content_row {
+ width: 100%;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ // margin-bottom: 13px;
+ padding: 7px 0;
+
+ &:last-child {
+ margin: 0;
+ }
+
+ .content_left_item1_content_row_name {
+ flex-shrink: 0;
+ width: 100px;
display: flex;
- flex-direction: column;
- .content_center_top {
- width: 100%;
- height: 509px;
- margin-bottom: 20px;
- background: linear-gradient(180deg, rgba(52,88,159,0) 0%, rgba(0,86,255,0.4) 100%);
- .content_center_top_list {
- width: 100%;
- height: 38px;
- display: flex;
- align-items: center;
- .bg3 {
- background: url('@/assets/img/tab_select_grey@2x.png');
- background-size: 100% 100%;
- }
- .bg4 {
- background: url('@/assets/img/tab_select@2x.png');
- background-size: 100% 100%;
- }
- .content_center_top_list_item {
- width: 200px;
- height: 38px;
- cursor: pointer;
- line-height: 38px;
- padding-left: 34px;
- box-sizing: border-box;
- font-size: 16px;
- font-family: SourceHanSansSC-Bold, SourceHanSansSC;
- font-weight: bold;
- color: #FFFFFF;
- margin-right: 20px;
- text-shadow: 0px 0px 10px rgba(0,24,72,0.75);
- &:last-child {
- margin-right: 0;
- }
- }
- }
- .content_center_top_form {
- width: 100%;
- padding: 20px;
- box-sizing: border-box;
- height: calc(100% - 38px);
- .content_center_top_form_head {
- width: 100%;
- height: 34px;
- background: rgba(52,88,159,0.5);
- display: flex;
- align-items: center;
- .content_center_top_form_head_item {
- flex: 1;
- height: 100%;
- display: flex;
- align-items: center;
- justify-content: center;
- font-size: 13px;
- font-family: PingFangSC-Medium, PingFang SC;
- font-weight: 500;
- color: #01D9FE;
- &:nth-child(5) {
- flex: 2.7;
- }
- }
- }
- .main_container {
- width: 100%;
- height: calc(100% - 34px);
- .scroll_container {
- width: 100%;
- height: 100%;
- overflow: hidden;
- .scroll_item_bg1 {
- background: rgba(52,88,159,0.2);
- }
- .scroll_item_bg2 {
- background: rgba(52,88,159,0.5);
- }
- .scroll_item {
- width: 100%;
- height: 58px;
- display: flex;
- align-items: center;
- .scroll_item_row {
- flex: 1;
- height: 100%;
- display: flex;
- align-items: center;
- justify-content: center;
- color: #FFFFFF;
- &:nth-child(5) {
- flex: 3;
- }
- .scroll_item_row_item {
- width: 29px;
- height: 29px;
- border-radius: 50%;
- margin-right: 19px;
- display: flex;
- align-items: center;
- justify-content: center;
- border: 2px solid #01D9FE;
- cursor: pointer;
- position: relative;
- &:last-child {
- margin-right: 0;
- .scroll_item_row_item_x {
- display: none;
- }
- }
- &:nth-child(1) {
- border: 2px solid #03D2B5;
- .scroll_item_row_item_x {
- background-color: #03D2B5;
- }
- }
- &:nth-child(2) {
- border: 2px solid #03D2B5;
- }
- img {
- width: 17px;
- height: 13px;
- }
- span {
- font-size: 12px;
- font-family: PingFangSC-Regular, PingFang SC;
- font-weight: 400;
- color: #01D9FE;
- }
- .scroll_item_row_item_x {
- position: absolute;
- right: -85%;
- top: 50%;
- transform: translate(0, -50%);
- width: 19px;
- height: 2px;
- background-color: #01D9FE;
- }
- }
- }
- }
- }
- }
- }
- .content_center_top_form1 {
- width: 100%;
- padding: 20px;
- box-sizing: border-box;
- height: calc(100% - 38px);
- .content_center_top_form_head {
- width: 100%;
- height: 34px;
- background: rgba(52,88,159,0.5);
- display: flex;
- align-items: center;
- .content_center_top_form_head_item {
- flex: 1;
- height: 100%;
- display: flex;
- align-items: center;
- justify-content: center;
- font-size: 13px;
- font-family: PingFangSC-Medium, PingFang SC;
- font-weight: 500;
- color: #01D9FE;
- }
- }
- .main_container {
- width: 100%;
- height: calc(100% - 34px);
- .scroll_container {
- width: 100%;
- height: 100%;
- overflow: hidden;
- .scroll_item_bg1 {
- background: rgba(52,88,159,0.2);
- }
- .scroll_item_bg2 {
- background: rgba(52,88,159,0.5);
- }
- .scroll_item {
- width: 100%;
- height: 36px;
- display: flex;
- align-items: center;
- .scroll_item_row {
- flex: 1;
- height: 100%;
- display: flex;
- align-items: center;
- justify-content: center;
- color: #FFFFFF;
- .scroll_item_row_item {
- width: 29px;
- height: 29px;
- border-radius: 50%;
- margin-right: 19px;
- display: flex;
- align-items: center;
- justify-content: center;
- border: 2px solid #01D9FE;
- }
- }
- }
- }
- }
- }
+ align-items: center;
+
+ span {
+ font-size: 13px;
+ font-family: SourceHanSansSC-Regular, SourceHanSansSC;
+ font-weight: 400;
+ color: #D2E0FF;
+ margin-left: 9px;
}
- .content_center_bottom {
- width: 100%;
- height: 286px;
- .content_center_bottom_head {
- width: 100%;
- height: 38px;
- line-height: 38px;
- padding-left: 34px;
- box-sizing: border-box;
- background: linear-gradient(270deg, rgba(21,103,255,0) 0%, rgba(21,103,255,0.61) 100%);
- border-radius: 10px 0px 0px 0px;
- background: url('@/assets/img/gongxu_title@2x.png');
- background-repeat: no-repeat;
- background-size: 100% 100%;
- span {
- font-size: 16px;
- font-family: SourceHanSansSC-Bold, SourceHanSansSC;
- font-weight: bold;
- color: #FFFFFF;
- text-shadow: 0px 0px 10px rgba(0,24,72,0.75);
- }
- }
- .content_center_bottom_b {
- width: 100%;
- height: calc(100% - 38px);
- padding: 20px;
- box-sizing: border-box;
- background: linear-gradient(180deg, rgba(52,88,159,0) 0%, rgba(0,86,255,0.4) 100%);
- .content_center_top_form_head {
- width: 100%;
- height: 34px;
- background: rgba(52,88,159,0.5);
- display: flex;
- align-items: center;
- .content_center_top_form_head_item {
- flex: 1;
- height: 100%;
- display: flex;
- align-items: center;
- justify-content: center;
- font-size: 13px;
- font-family: PingFangSC-Medium, PingFang SC;
- font-weight: 500;
- color: #01D9FE;
- &:nth-child(4) {
- flex: 2;
- }
- }
- }
- .main_container {
- width: 100%;
- height: calc(100% - 33px);
- .scroll_container {
- width: 100%;
- height: 100%;
- overflow: hidden;
- .scroll_item_bg1 {
- background: rgba(52,88,159,0.2);
- }
- .scroll_item_bg2 {
- background: rgba(52,88,159,0.5);
- }
- .scroll_item {
- width: 100%;
- height: 37px;
- display: flex;
- align-items: center;
- .scroll_item_row {
- flex: 1;
- height: 100%;
- display: flex;
- align-items: center;
- justify-content: center;
- color: #FFFFFF;
- &:nth-child(4) {
- flex: 2;
- }
- }
- }
- }
- }
- }
+
+ .num {
+ width: 20px;
+ height: 20px;
+ line-height: 20px;
+ text-align: center;
+ font-size: 12px;
+ font-family: SourceHanSansSC-Medium, SourceHanSansSC;
+ font-weight: 500;
+ color: #FFFFFF;
}
- }
- .content_right {
+
+ .bg1 {
+ background: url('@/assets/img/rank_blue@2x.png');
+ background-repeat: no-repeat;
+ background-size: 100% 100%;
+ }
+
+ .bg2 {
+ background: url('@/assets/img/rank_yellow@2x.png');
+ background-repeat: no-repeat;
+ background-size: 100% 100%;
+ }
+ }
+
+ .content_left_item1_content_row_line {
flex: 1;
- .content_right_top {
- width: 100%;
- height: 511px;
- margin-bottom: 20px;
- .content_right_top_head {
- width: 100%;
- height: 38px;
- line-height: 38px;
- padding-left: 34px;
- box-sizing: border-box;
- background: url('@/assets/img/home_title_short@2x.png');
- background-repeat: no-repeat;
- background-size: 100% 100%;
- span {
- font-size: 16px;
- font-family: SourceHanSansSC-Bold, SourceHanSansSC;
- font-weight: bold;
- color: #FFFFFF;
- text-shadow: 0px 0px 10px rgba(0,24,72,0.75);
- }
- }
- .content_right_top_nr {
- 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%;
- padding: 10px 0 0 10px;
- box-sizing: border-box;
- }
- .content_right_top_nr_bottom {
- width: 100%;
- height: 50%;
- }
- }
+ margin: 0 15px;
+
+ &::v-deep(.el-progress-bar__outer) {
+ border-radius: 0%;
+ background: rgba(255, 255, 255, 0.13);
}
- .content_right_bottom {
- width: 100%;
- height: 284px;
- .content_right_bottom_head {
- width: 100%;
- height: 38px;
- line-height: 38px;
- padding-left: 34px;
- box-sizing: border-box;
- background: url('@/assets/img/home_title_short@2x.png');
- background-repeat: no-repeat;
- background-size: 100% 100%;
- span {
- font-size: 16px;
- font-family: SourceHanSansSC-Bold, SourceHanSansSC;
- font-weight: bold;
- color: #FFFFFF;
- text-shadow: 0px 0px 10px rgba(0,24,72,0.75);
- }
- }
- .content_right_bottom_nr {
- width: 100%;
- height: calc(100% - 38px);
- padding: 20px;
- box-sizing: border-box;
- background: linear-gradient(180deg, rgba(52,88,159,0) 0%, rgba(0,86,255,0.4) 100%);
- .item2_content_head {
- width: 100%;
- height: 36px;
- display: flex;
- align-items: center;
- background: rgba(52,88,159,0.5);
- .item2_content_head_item {
- flex: 1;
- height: 100%;
- display: flex;
- align-items: center;
- justify-content: center;
- font-size: 13px;
- font-family: PingFangSC-Medium, PingFang SC;
- font-weight: 500;
- color: #01D9FE;
- &:first-child {
- flex: 2;
- }
- }
- }
- .main_container {
- width: 100%;
- height: calc(100% - 36px);
- .scroll_container {
- width: 100%;
- height: 100%;
- overflow: hidden;
- .scroll_item_bg1 {
- background: rgba(52,88,159,0.2);
- }
- .scroll_item_bg2 {
- background: rgba(52,88,159,0.5);
- }
- .scroll_item {
- width: 100%;
- height: 36px;
- display: flex;
- align-items: center;
- .scroll_item_row {
- flex: 1;
- height: 100%;
- display: flex;
- align-items: center;
- justify-content: center;
- color: #FFFFFF;
- &:first-child {
- flex: 2;
- }
- }
- }
- }
- }
- }
+
+ &::v-deep(.el-progress-bar__inner) {
+ border-radius: 0%;
+ background: linear-gradient(270deg, #00B0FF 0%, #345BA3 100%);
}
+ }
+
+ .content_left_item1_content_row_num {
+ font-size: 13px;
+ width: 60px;
+ font-family: SourceHanSansSC-Regular, SourceHanSansSC;
+ font-weight: 400;
+ color: #D2E0FF;
+ }
}
+ }
}
-</style>
+
+ .content_left_item2 {
+ width: 100%;
+ flex: 1;
+ .content_left_item2_head {
+ background: url('@/assets/img/home_title_short@2x.png');
+ background-repeat: no-repeat;
+ background-size: 100% 100%;
+ width: 100%;
+ height: 38px;
+ line-height: 38px;
+ padding-left: 34px;
+ box-sizing: border-box;
+
+ span {
+ font-size: 16px;
+ font-family: SourceHanSansSC-Bold, SourceHanSansSC;
+ font-weight: bold;
+ color: #FFFFFF;
+ line-height: 24px;
+ text-shadow: 0px 0px 10px rgba(0, 24, 72, 0.75);
+ }
+ }
+
+ .content_left_item2_content {
+ width: 100%;
+ height: 361px;
+ padding: 20px;
+ box-sizing: border-box;
+ background: linear-gradient(180deg, rgba(52, 88, 159, 0) 0%, rgba(0, 86, 255, 0.4) 100%);
+
+ .item2_content_head {
+ width: 100%;
+ height: 35px;
+ display: flex;
+ align-items: center;
+ background: rgba(52, 88, 159, 0.5);
+
+ .item2_content_head_item {
+ flex: 1;
+ height: 100%;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ font-size: 13px;
+ font-family: PingFangSC-Medium, PingFang SC;
+ font-weight: 500;
+ color: #01D9FE;
+
+ &:first-child {
+ flex: 1.5;
+ }
+ }
+ }
+
+ .main_container {
+ width: 100%;
+ height: calc(100% - 38px);
+
+ .scroll_container {
+ width: 100%;
+ height: 100%;
+ overflow: hidden;
+
+ .scroll_item_bg1 {
+ background: rgba(52, 88, 159, 0.2);
+ }
+
+ .scroll_item_bg2 {
+ background: rgba(52, 88, 159, 0.5);
+ }
+
+ .scroll_item {
+ width: 100%;
+ height: 35px;
+ display: flex;
+ align-items: center;
+
+ .scroll_item_row {
+ flex: 1;
+ width: 0;
+ 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;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ .content_center {
+ flex: 3;
+ margin-right: 20px;
+ .content_center_top {
+ width: 100%;
+ height: 424px;
+ margin-bottom: 20px;
+ background: linear-gradient(180deg, rgba(52, 88, 159, 0) 0%, rgba(0, 86, 255, 0.4) 100%);
+
+ .content_center_top_list {
+ width: 100%;
+ height: 35px;
+ display: flex;
+ align-items: center;
+
+ .bg3 {
+ background: url('@/assets/img/tab_select_grey@2x.png');
+ background-size: 100% 100%;
+ }
+
+ .bg4 {
+ background: url('@/assets/img/tab_select@2x.png');
+ background-size: 100% 100%;
+ }
+ .content_center_top_list_item {
+ width: 200px;
+ height: 35px;
+ cursor: pointer;
+ line-height: 35px;
+ padding-left: 34px;
+ box-sizing: border-box;
+ font-size: 16px;
+ font-family: SourceHanSansSC-Bold, SourceHanSansSC;
+ font-weight: bold;
+ color: #FFFFFF;
+ margin-right: 20px;
+ text-shadow: 0px 0px 10px rgba(0, 24, 72, 0.75);
+
+ &:last-child {
+ margin-right: 0;
+ }
+ }
+ }
+
+ .content_center_top_form {
+ width: 100%;
+ padding: 20px;
+ box-sizing: border-box;
+ height: calc(100% - 38px);
+
+ .content_center_top_form_head {
+ width: 100%;
+ height: 34px;
+ background: rgba(52, 88, 159, 0.5);
+ display: flex;
+ align-items: center;
+
+ .content_center_top_form_head_item {
+ flex: 1;
+ height: 100%;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ font-size: 13px;
+ font-family: PingFangSC-Medium, PingFang SC;
+ font-weight: 500;
+ color: #01D9FE;
+
+ &:nth-child(5) {
+ flex: 3;
+
+ }
+ }
+ }
+
+ .main_container {
+ width: 100%;
+ height: calc(100% - 34px);
+ .scroll_container {
+ width: 100%;
+ height: 100%;
+ overflow: hidden;
+
+ .scroll_item_bg1 {
+ background: rgba(52, 88, 159, 0.2);
+ }
+
+ .scroll_item_bg2 {
+ background: rgba(52, 88, 159, 0.5);
+ }
+
+ .scroll_item {
+ width: 100%;
+ height: 50px;
+ display: flex;
+ align-items: center;
+ .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;
+ justify-content: start;
+ }
+ .scroll_item_row_item {
+ margin-top: -11px;
+ width: 29px;
+ height: 29px;
+ border-radius: 50%;
+ margin-right: 19px;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ border: 2px solid #01D9FE;
+ cursor: pointer;
+ position: relative;
+
+ &:last-child {
+ margin-right: 0;
+
+ .scroll_item_row_item_x {
+ display: none;
+ }
+ }
+
+ &:nth-child(1) {
+ border: 2px solid #03D2B5;
+
+ .scroll_item_row_item_x {
+ background-color: #03D2B5;
+ }
+ }
+
+ &:nth-child(2) {
+ border: 2px solid #03D2B5;
+ }
+
+ img {
+ width: 17px;
+ height: 13px;
+ }
+
+ span {
+ font-size: 12px;
+ 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;
+ right: -85%;
+ top: 50%;
+ transform: translate(0, -50%);
+ width: 19px;
+ height: 2px;
+ background-color: #01D9FE;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ .content_center_top_form1 {
+ width: 100%;
+ padding: 20px;
+ box-sizing: border-box;
+ height: calc(100% - 38px);
+
+ .content_center_top_form_head {
+ width: 100%;
+ height: 34px;
+ background: rgba(52, 88, 159, 0.5);
+ display: flex;
+ align-items: center;
+
+ .content_center_top_form_head_item {
+ flex: 1;
+ height: 100%;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ font-size: 13px;
+ font-family: PingFangSC-Medium, PingFang SC;
+ font-weight: 500;
+ color: #01D9FE;
+ }
+ }
+
+ .main_container {
+ width: 100%;
+ height: calc(100% - 34px);
+
+ .scroll_container {
+ width: 100%;
+ height: 100%;
+ overflow: hidden;
+
+ .scroll_item_bg1 {
+ background: rgba(52, 88, 159, 0.2);
+ }
+
+ .scroll_item_bg2 {
+ background: rgba(52, 88, 159, 0.5);
+ }
+
+ .scroll_item {
+ width: 100%;
+ height: 35px;
+ display: flex;
+ align-items: center;
+
+ .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 {
+ width: 29px;
+ height: 29px;
+ border-radius: 50%;
+ margin-right: 19px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ border: 2px solid #01D9FE;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ .content_center_bottom {
+ width: 100%;
+ // height: 284px;
+ height: calc(100vh - 690px);
+ flex: 2;
+ .content_center_bottom_head {
+ width: 100%;
+ height: 38px;
+ line-height: 38px;
+ padding-left: 34px;
+ box-sizing: border-box;
+ background: linear-gradient(270deg, rgba(21, 103, 255, 0) 0%, rgba(21, 103, 255, 0.61) 100%);
+ border-radius: 10px 0px 0px 0px;
+ background: url('@/assets/img/gongxu_title@2x.png');
+ background-repeat: no-repeat;
+ background-size: 100% 100%;
+
+ span {
+ font-size: 16px;
+ font-family: SourceHanSansSC-Bold, SourceHanSansSC;
+ font-weight: bold;
+ color: #FFFFFF;
+ text-shadow: 0px 0px 10px rgba(0, 24, 72, 0.75);
+ }
+ }
+
+ .content_center_bottom_b {
+ width: 100%;
+ height: calc(100% - 38px);
+ padding: 20px;
+ box-sizing: border-box;
+ background: linear-gradient(180deg, rgba(52, 88, 159, 0) 0%, rgba(0, 86, 255, 0.4) 100%);
+
+ .content_center_top_form_head {
+ width: 100%;
+ height: 34px;
+ background: rgba(52, 88, 159, 0.5);
+ display: flex;
+ align-items: center;
+
+ .content_center_top_form_head_item {
+ flex: 1;
+ height: 100%;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ font-size: 13px;
+ font-family: PingFangSC-Medium, PingFang SC;
+ font-weight: 500;
+ color: #01D9FE;
+
+ &:nth-child(4) {
+ flex: 2;
+ }
+ }
+ }
+
+ .main_container {
+ width: 100%;
+ height: calc(100% - 33px);
+
+ .scroll_container {
+ width: 100%;
+ height: 100%;
+ overflow: hidden;
+
+ .scroll_item_bg1 {
+ background: rgba(52, 88, 159, 0.2);
+ }
+
+ .scroll_item_bg2 {
+ background: rgba(52, 88, 159, 0.5);
+ }
+
+ .scroll_item {
+ width: 100%;
+ height: 35px;
+ display: flex;
+ align-items: center;
+
+ .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;
+
+ &:nth-child(4) {
+ flex: 2;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ .content_right {
+ flex: 1;
+ .content_right_top {
+ width: 100%;
+ height: 425px;
+ margin-bottom: 20px;
+
+ .content_right_top_head {
+ width: 100%;
+ height: 38px;
+ line-height: 38px;
+ padding-left: 34px;
+ box-sizing: border-box;
+ background: url('@/assets/img/home_title_short@2x.png');
+ background-repeat: no-repeat;
+ background-size: 100% 100%;
+
+ span {
+ font-size: 16px;
+ font-family: SourceHanSansSC-Bold, SourceHanSansSC;
+ font-weight: bold;
+ color: #FFFFFF;
+ text-shadow: 0px 0px 10px rgba(0, 24, 72, 0.75);
+ }
+ }
+
+ .content_right_top_nr {
+ 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;
+ #pieChart {
+ width: 100%;
+ height: 100%;
+ }
+ .content_right_top_nr_bottom_yuan {
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ transform: translate(-50%, -50%);
+ z-index: 999;
+ width: 100px;
+ height: 100px;
+ 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%;
+ padding: 10px 0 0 10px;
+ box-sizing: border-box;
+ }
+
+ .content_right_top_nr_bottom {
+ width: 100%;
+ height: 50%;
+ position: relative;
+ }
+ }
+ }
+
+ .content_right_bottom {
+ width: 100%;
+ // height: 284px;
+
+ height: calc(100vh - 690px);
+ .content_right_bottom_head {
+ width: 100%;
+ height: 38px;
+ line-height: 38px;
+ padding-left: 34px;
+ box-sizing: border-box;
+ background: url('@/assets/img/home_title_short@2x.png');
+ background-repeat: no-repeat;
+ background-size: 100% 100%;
+
+ span {
+ font-size: 16px;
+ font-family: SourceHanSansSC-Bold, SourceHanSansSC;
+ font-weight: bold;
+ color: #FFFFFF;
+ text-shadow: 0px 0px 10px rgba(0, 24, 72, 0.75);
+ }
+ }
+
+ .content_right_bottom_nr {
+ width: 100%;
+ height: calc(100% - 38px);
+ padding: 20px;
+ box-sizing: border-box;
+ background: linear-gradient(180deg, rgba(52, 88, 159, 0) 0%, rgba(0, 86, 255, 0.4) 100%);
+
+ .item2_content_head {
+ width: 100%;
+ height: 35px;
+ display: flex;
+ align-items: center;
+ background: rgba(52, 88, 159, 0.5);
+
+ .item2_content_head_item {
+ flex: 1;
+ height: 100%;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ font-size: 13px;
+ font-family: PingFangSC-Medium, PingFang SC;
+ font-weight: 500;
+ color: #01D9FE;
+
+ &:first-child {
+ flex: 2;
+ }
+ }
+ }
+
+ .main_container {
+ width: 100%;
+ height: calc(100% - 35px);
+
+ .scroll_container {
+ width: 100%;
+ height: 100%;
+ overflow: hidden;
+
+ .scroll_item_bg1 {
+ background: rgba(52, 88, 159, 0.2);
+ }
+
+ .scroll_item_bg2 {
+ background: rgba(52, 88, 159, 0.5);
+ }
+
+ .scroll_item {
+ width: 100%;
+ height: 35px;
+ display: flex;
+ align-items: center;
+
+ .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;
+ color: #FFFFFF;
+
+ &:first-child {
+ flex: 2;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}</style>
\ No newline at end of file
--
Gitblit v1.9.3