From 596a6831ceb5417e2f4fb71f9e2dd1d2e2bcb6f8 Mon Sep 17 00:00:00 2001
From: Your Name <123456>
Date: 星期五, 14 十月 2022 10:25:26 +0800
Subject: [PATCH] lct

---
 src/views/riskWarningSys/warningBigScreen/components/SPI.vue |  169 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 165 insertions(+), 4 deletions(-)

diff --git a/src/views/riskWarningSys/warningBigScreen/components/SPI.vue b/src/views/riskWarningSys/warningBigScreen/components/SPI.vue
index 7568be8..a52fdca 100644
--- a/src/views/riskWarningSys/warningBigScreen/components/SPI.vue
+++ b/src/views/riskWarningSys/warningBigScreen/components/SPI.vue
@@ -1,5 +1,17 @@
 <template>
 	<div class="charts-cont">
+		<div :class="spiChart">
+			<el-cascader
+				class="spiSe"
+				:teleported="false"
+				v-model="spiValue"
+				:options="departList"
+				:props="spiProps"
+				:show-all-levels="false"
+				@change="handleChange"
+			/>
+		</div>
+
 		<div class="spi" :id="spi">
 
 		</div>
@@ -7,7 +19,7 @@
 </template>
 
 <script lang="ts">
-	import {toRefs, reactive, defineComponent, ref, defineAsyncComponent, onMounted} from 'vue';
+	import {toRefs, reactive, defineComponent, ref, defineAsyncComponent, onMounted, watchEffect} from 'vue';
 	import { storeToRefs } from 'pinia';
 	import { initBackEndControlRoutes } from '/@/router/backEnd';
 	import {useUserInfo} from "/@/stores/userInfo";
@@ -18,22 +30,53 @@
 	import { workApplyApi } from '/@/api/specialWorkSystem/workApply';
 	import * as echarts from 'echarts';
 	import '/@/theme/bigScreen.css'
+	import {useScreenTheme} from "/@/stores/screenTheme";
+	import {teamManageApi} from "/@/api/systemManage/basicDateManage/personShiftManage/teamManage";
 
 	interface stateType {
+		spiValue: number;
+		departList: Array<any>;
+		spiChart: string;
+		spiProps: object
 	}
 	export default defineComponent({
-		name: 'accident',
+		name: 'SPI',
 		components: {},
 		props:{
 			size: Number,
+			theme: Boolean
 		},
 		setup(props) {
 			const userInfo = useUserInfo()
 			const { userInfos } = storeToRefs(userInfo);
+			const screenThemes = useScreenTheme()
+			const { screenTheme }  = storeToRefs(screenThemes);
 			const spi = ref("eChartSpi" + Date.now() + Math.random())
 			const state = reactive<stateType>({
-
+				spiValue: 1,
+				departList: [],
+				spiProps: {
+					expandTrigger: 'hover',
+					checkStrictly: true,
+					value: 'depId',
+					label: 'depName',
+				},
+				spiChart: 'spi-dark'
 			})
+
+			// 获取部门列表
+			const getAllDepartment = async () => {
+				let res = await teamManageApi().getAllDepartment();
+				if (res.data.code === '200') {
+					state.departList = JSON.parse(JSON.stringify(res.data.data))
+				} else {
+					ElMessage({
+						type: 'warning',
+						message: res.data.msg
+					});
+				}
+			};
+
 			type EChartsOption = echarts.EChartsOption
 			// 隐患整改情况
 			const initSpi =()=>{
@@ -59,7 +102,7 @@
 					grid: {
 						left: '8%',
 						right: '8%',
-						bottom: '4%',
+						bottom: '5%',
 					},
 					xAxis: [
 						{
@@ -222,6 +265,23 @@
 					myChart.resize();
 				});
 			}
+
+			const getTheme =()=>{
+				if(screenTheme.value.isDark){
+					state.spiChart =  'spi-dark'
+				}else{
+					state.spiChart =  'spi-light'
+				}
+			}
+
+			watchEffect(() => {
+				if(props.theme){
+					state.spiChart =  'spi-dark'
+				}else{
+					state.spiChart =  'spi-light'
+				}
+			})
+
 			function fontSize(val){
 				let nowClientWidth = document.documentElement.clientWidth;
 				return val * (nowClientWidth/1920) * Number(props.size);
@@ -229,7 +289,9 @@
 
 			// 页面载入时执行方法
 			onMounted(() => {
+				getAllDepartment();
 				initSpi();
+				getTheme();
 			});
 
 			return {
@@ -249,6 +311,105 @@
 		padding: 2%;
 		position: relative;
 
+		.spi-dark{
+			position: absolute;
+			width: 25% !important;
+			top: 0;
+			left: 2rem;
+			z-index: 99999;
+
+			::v-deep(.el-cascader){
+				width: 100% !important;
+			}
+			::v-deep(.el-popper){
+				background-color: rgba(10,31,92,1);
+				border: 1px solid rgba(17,254,238,.4);
+				color: #11FEEE;
+				.el-cascader-node__label{
+					color: #11FEEE;
+				}
+				.el-icon{
+					color: #11FEEE;
+				}
+				.el-cascader-node{
+					&:hover{
+						background: #0049af;
+					}
+				}
+			}
+			::v-deep(.el-popper__arrow){
+				&::before{
+					background-color: rgba(10,31,92,.6) !important;
+					border: 1px solid rgba(17,254,238,.4);
+				}
+			}
+			::v-deep(.el-input__wrapper){
+				width: 20%;
+				box-shadow: none;
+				border: 1px solid rgba(17,254,238,.2);
+				background: rgba(10,31,92,.6) !important;
+				height: 2.5rem;
+				color: #11FEEE;
+
+				input{
+					font-size: 1.25rem;
+					color: #11FEEE;
+				}
+				.el-icon{
+					color: #11FEEE;
+				}
+			}
+		}
+
+		.spi-light{
+			position: absolute;
+			width: 25% !important;
+			top: 0;
+			left: 2rem;
+			z-index: 99999;
+
+			::v-deep(.el-cascader){
+				width: 100% !important;
+			}
+			::v-deep(.el-popper){
+				background-color: #fff;
+				border: 1px solid #ccc;
+				color: #000;
+				.el-cascader-node__label{
+					color: #000;
+				}
+				.el-icon{
+					color: #000;
+				}
+				.el-cascader-node{
+					&:hover{
+						background: #ccc;
+					}
+				}
+			}
+			::v-deep(.el-popper__arrow){
+				&::before{
+					background-color: #fff !important;
+					border: 1px solid #ccc;
+				}
+			}
+			::v-deep(.el-input__wrapper){
+				width: 20%;
+				box-shadow: none;
+				border: 1px solid #ccc;
+				background: #fff !important;
+				height: 2.5rem;
+				color: #000;
+
+				input{
+					font-size: 1.25rem;
+					color: #000;
+				}
+				.el-icon{
+					color: #000;
+				}
+			}
+		}
 		.spi{
 			width: 100%;
 			height: 100%;

--
Gitblit v1.9.2