You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1355 lines
38 KiB
Vue

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<template>
<v-scale-screen width="1920" height="1080" :fullScreen="false">
<div class="app-container home" style="">
<div class="head">
<div class="head-content">
<div class="title">榄菊设备管理云平台</div>
</div>
<div class="head-logo">
<img src="../../../assets/images/logo.png" alt="" />
</div>
<div class="back">
<el-button
@click="back()"
type="primary"
icon="el-icon-s-home"
></el-button>
</div>
</div>
<div class="content-top">
<div class="factory">
<div class="selectborder">
<select
v-model="selectxt"
class="select1"
@change="selectline(selectxt)"
>
<option
:key="index"
:value="x.parentName"
v-for="(x, index) in getLineList"
>
{{ x.deptName }}
</option>
<!-- <option :key="index" :value="x.seriesName" v-for="(x, index) in ceshib">{{ x.seriesName }}</option> -->
</select>
</div>
<el-date-picker
style="
margin-left: 10px;
background-color: #142945;
color: #ffffff;
height: 70%;
"
v-model="StartArray"
type="daterange"
range-separator="至"
start-placeholder="开始日期"
value-format="yyyy-MM-dd"
end-placeholder="结束日期"
@change="handleDateChange"
>
</el-date-picker>
<!-- <div class="selectborder selectborder1">
<select v-model="selectxtclasses" class="select1" @change="selectline2(selectxtclasses)">
<option :key="index" :value="x.shiftId" v-for="(x, index) in classesList">
{{ x.shiftDesc }}
</option>
</select>
</div> -->
</div>
<div class="timebox">
<div class="time">
{{ gettimedata }}
</div>
</div>
</div>
<div class="content">
<div class="itemtop">
<div class="left">
<div class="item-table">
<table
class="table-thead"
border="0"
cellpadding="0"
cellspacing="0"
>
<thead>
<tr style="height: 44px">
<td style="width: 8%">序号</td>
<td style="width: 18%">设备名称</td>
<td style="width: 18%">设备编码</td>
<td style="width: 20%">所在部门</td>
<td style="width: 10%">状态</td>
<td style="width: 12%">设备故障率</td>
<td style="width: 12%">设备有效利用率</td>
</tr>
</thead>
</table>
<div class="table-tbody">
<!-- <vue-seamless-scroll :data="getlistcx" :class-option="classOption" class="wrapscroll"> -->
<table border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr
:class="[index % 2 == 1 ? 'active1' : 'active2']"
style="height: 48px"
:key="index"
v-for="(n, index) in equipmentlist"
>
<td style="width: 8%">{{ index + 1 }}</td>
<td style="width: 18%">{{ n.equipmentName }}</td>
<td style="width: 18%">{{ n.equipmentCode }}</td>
<td style="width: 20%">{{ n.department || "无" }}</td>
<td style="width: 10%">{{ n.dictLabel }}</td>
<td style="width: 12%">
{{ n.failureRate != null ? n.failureRate + "%" : "--" }}
</td>
<td style="width: 12%">
{{
n.utilizationRatio != null
? n.utilizationRatio + "%"
: "--"
}}
</td>
</tr>
</tbody>
</table>
<!-- </vue-seamless-scroll> -->
</div>
</div>
<div class="item-table item-table1">
<div class="titlebox" style="margin-bottom: 14px">
<div class="titlename">维修工单</div>
</div>
<table
class="table-thead"
border="0"
cellpadding="0"
cellspacing="0"
>
<thead>
<tr style="height: 44px">
<td style="width: 8%">序号</td>
<td style="width: 12%">设备名称</td>
<td style="width: 12%">设备编码</td>
<td style="width: 12%">设备位置</td>
<td style="width: 12%">故障原因</td>
<td style="width: 12%">维修组</td>
<td style="width: 10%">是否立即维修</td>
<td style="width: 18%">计划维修时间</td>
</tr>
</thead>
</table>
<div class="table-tbody">
<!-- <vue-seamless-scroll :data="getlistcx" :class-option="classOption" class="wrapscroll"> -->
<table border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr
:class="[index % 2 == 1 ? 'active1' : 'active2']"
style="height: 48px"
:key="index"
v-for="(n, index) in repairlist"
>
<td style="width: 8%">{{ index + 1 }}</td>
<td style="width: 12%">{{ n.equipmentName }}</td>
<td style="width: 12%">{{ n.equipmentCode }}</td>
<td style="width: 12%">
{{ n.equipmentLocation || "无" }}
</td>
<td style="width: 12%">{{ n.workFaultDesc }}</td>
<td style="width: 12%">{{ n.teamName }}</td>
<td style="width: 10%">{{ n.workHandle }}</td>
<td style="width: 18%">{{ n.workPlanTime }}</td>
</tr>
</tbody>
</table>
<!-- </vue-seamless-scroll> -->
</div>
</div>
</div>
<div class="right">
<div class="echart1title">完好设备占比</div>
<div
class="echartbox"
id="echart1"
style="
margin: auto;
margin-top: 60px;
width: 395px;
height: 175px;
"
></div>
<div class="equipmentinfobox">
<div class="box">
<div class="number">
<span class="number1">
{{ equipmentinfo.totalEquipment }}
</span>
<span class="name1"> 台 </span>
</div>
<div class="name2">设备总数</div>
</div>
<div class="box">
<div class="number">
<span class="number1" style="color: #ff4d4f">
{{ equipmentinfo.faultEquipment }}
</span>
<span class="name1"> 台 </span>
</div>
<div class="name2">故障总数</div>
</div>
</div>
</div>
</div>
<div class="itembottom">
<!-- <div class="item-table item-table1">
<div class="titlebox" style="margin-bottom: 14px;">
<div class="titlename">设备综合效率</div>
</div>
<table class="table-thead" border="0" cellpadding="0" cellspacing="0">
<thead>
<tr style="height: 44px;">
<td style="width: 8%;">排名</td>
<td style="width: 12%;">设备名称</td>
<td style="width: 12%;">设备OEE</td>
</tr>
</thead>
</table>
<div class="table-tbody">
<table border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr :class="[index % 2 == 1 ? 'active1' : 'active2']" style="height:48px" :key="index"
v-for="(n, index) in getlist">
<td style="width: 8%;">1</td>
<td style="width: 12%;">测试设备</td>
<td style="width: 12%;">88%</td>
</tr>
</tbody>
</table>
</div>
</div> -->
<div class="item-table item-table1">
<div class="titlebox" style="margin-bottom: 14px">
<div class="titlename">设备稳定性</div>
</div>
<table
class="table-thead"
border="0"
cellpadding="0"
cellspacing="0"
>
<thead>
<tr style="height: 44px">
<td style="width: 8%">排名</td>
<td style="width: 15%">设备名称</td>
<td style="width: 8%">设备编码</td>
<td style="width: 12%">MTBF</td>
</tr>
</thead>
</table>
<div class="table-tbody">
<!-- <vue-seamless-scroll :data="getlistcx" :class-option="classOption" class="wrapscroll"> -->
<table border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr
:class="[index % 2 == 1 ? 'active1' : 'active2']"
style="height: 48px"
:key="index"
v-for="(n, index) in equipmentstabilizelist"
>
<td style="width: 8%">{{ index + 1 }}</td>
<td style="width: 15%">{{ n.equipmentName }}</td>
<td style="width: 8%">{{ n.equipmentCode }}</td>
<td style="width: 12%">
{{ n.mtbf != null ? n.mtbf + "h" : "--" }}
</td>
</tr>
</tbody>
</table>
<!-- </vue-seamless-scroll> -->
</div>
</div>
<div class="item-table item-table1">
<div class="titlebox" style="margin-bottom: 14px">
<div class="titlename">设备维修质量</div>
</div>
<table
class="table-thead"
border="0"
cellpadding="0"
cellspacing="0"
>
<thead>
<tr style="height: 44px">
<td style="width: 8%">排名</td>
<td style="width: 12%">设备名称</td>
<td style="width: 12%">设备编码</td>
<td style="width: 12%">MTTR</td>
</tr>
</thead>
</table>
<div class="table-tbody">
<!-- <vue-seamless-scroll :data="getlistcx" :class-option="classOption" class="wrapscroll"> -->
<table border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr
:class="[index % 2 == 1 ? 'active1' : 'active2']"
style="height: 48px"
:key="index"
v-for="(n, index) in equipmentrepairlist"
>
<td style="width: 8%">{{ index + 1 }}</td>
<td style="width: 12%">{{ n.equipmentName }}</td>
<td style="width: 12%">{{ n.equipmentCode }}</td>
<td style="width: 12%">
{{ n.mttr != null ? n.mttr + "h" : "--" }}
</td>
</tr>
</tbody>
</table>
<!-- </vue-seamless-scroll> -->
</div>
</div>
</div>
</div>
<!-- <div class="item"></div> -->
<!-- <div class="item"></div> -->
</div>
</v-scale-screen>
</template>
<script>
import {
getBoardFactory,
getMesBoardEquProductionToday,
getBoardShifts,
getRepairWorkOrder,
getEquipmentInfo,
getRepairQuantity,
equipmentIntactRate,
equipmentStability,
getDeviceRefreshTime,
getdictlist,
} from "@/api/kanban/equipment";
import * as echarts from "echarts";
import moment from "moment";
// import Echarts3D from "./echarts3d.vue";
// import Echarts3D2 from "./echarts3d2.vue";
export default {
name: "Index",
components: {},
data() {
return {
gettimedata: "",
selectxt: null,
selectxtclasses: null,
getLineList: [],
classesList: [],
number1: 0,
number2: 0,
number3: 0,
number4: 0,
nameList: [
"成型机一",
"成型机二",
"成型机三",
"成型机四",
"成型机五",
"成型机六",
"成型机五",
"成型机六",
],
valueList: [1639, 1422, 1306, 1131, 1040, 732, 1040, 732],
optionDatalist1: [],
optionDatalist2: [],
optionDatalist3: [],
optionDatalist4: [],
colorlist: ["#005aff", "#f8b551"],
datetime: null,
time1: null,
getlist: [],
repairlist: [],
equipmentlist: [],
equipmentrepairlist: [],
equipmentstabilizelist: [],
equipmentinfo: [],
RefreshTime: null,
dictlist: [],
StartArray: [],
};
},
created() {
this.getdictlist();
},
destroyed() {
clearInterval(this.time1);
this.time1 = null;
},
mounted() {
// this.datetime = moment().subtract(2, "day").format("yyyy-MM-DD");
//console.log('zhuanhuahou',this.dateRangeone)
this.selectFactorylist();
this.gettime();
},
methods: {
back() {
this.$router.push({ path: "/index" });
},
gettime() {
this.gettimedata = moment().format("YYYY-MM-DD HH:mm:ss ");
setInterval(() => {
this.gettimedata = moment().format("YYYY-MM-DD HH:mm:ss ");
}, 1000);
},
getdictlist() {
getdictlist({
pageNum: 1,
pageSize: 10,
dictType: "equipment_status",
}).then((response) => {
if (response) {
this.dictlist = response.rows;
}
});
},
selectFactorylist() {
const _this = this;
getBoardFactory({
factory: null,
}).then((response) => {
if (response) {
_this.getLineList = response.data;
_this.selectxt = _this.getLineList[0].parentName;
_this.getdatalist(_this.selectxt);
_this.getDeviceRefreshTime();
}
});
},
getDeviceRefreshTime() {
const _this = this;
getDeviceRefreshTime().then((response) => {
if (response.data) {
console.log(response.data);
this.RefreshTime = response.data;
this.RefreshTime = 1;
this.time1 = setInterval(() => {
_this.getdatalist(_this.selectxt);
}, 1000 * 60 * this.RefreshTime);
}
});
},
getdatalist(Name) {
const _this = this;
let poolName = "ds_" + Name;
getRepairWorkOrder({
poolName: poolName,
}).then((response) => {
if (response.data) {
response.data.forEach((item) => {
item.workPlanTime = moment(item.workPlanTime).format(
"YYYY-MM-DD HH:mm:ss"
);
});
_this.repairlist = response.data;
}
});
getEquipmentInfo({
poolName: poolName,
startTime: _this.StartArray[0],
endTime: _this.StartArray[1],
}).then((response) => {
if (response.data) {
_this.equipmentlist = response.data;
_this.equipmentlist.forEach((item) => {
_this.dictlist.forEach((m) => {
if (item.equipmentStatus == m.dictValue) {
item.dictLabel = m.dictLabel;
}
});
if (item.failureRate) {
item.failureRate = parseFloat(item.failureRate).toFixed(2);
}
if (item.utilizationRatio) {
item.utilizationRatio = parseFloat(item.utilizationRatio).toFixed(
2
);
}
});
}
});
getRepairQuantity({
poolName: poolName,
startTime: _this.StartArray[0],
endTime: _this.StartArray[1],
}).then((response) => {
if (response.data) {
_this.equipmentrepairlist = response.data;
}
});
equipmentIntactRate({
poolName: poolName,
startTime: _this.StartArray[0],
endTime: _this.StartArray[1],
}).then((response) => {
if (response.data) {
_this.equipmentinfo = response.data;
_this.initChart1();
}
});
equipmentStability({
poolName: poolName,
startTime: _this.StartArray[0],
endTime: _this.StartArray[1],
}).then((response) => {
if (response.data) {
_this.equipmentstabilizelist = response.data;
}
});
},
// 选择时间
handleDateChange(value) {
console.log("选择的日期:", value);
if (value == null) {
this.StartArray = [];
this.getdatalist(this.selectxt);
} else {
if(this.StartArray[0] == this.StartArray[1]){
this.StartArray[0] = moment(this.StartArray[0]).format("YYYY-MM-DD 00:00:00 ")
this.StartArray[1] = moment(this.StartArray[1]).add(1, 'day').startOf('day').format('YYYY-MM-DD 00:00:00');
}
this.StartArray = value;
this.getdatalist(this.selectxt);
}
},
initChart1() {
const _this = this;
let intactRate = 0;
let numberAngle = 180;
console.log(_this.equipmentinfo.intactRate);
if (_this.equipmentinfo.intactRate) {
intactRate = _this.equipmentinfo.intactRate;
numberAngle = parseInt(180 - _this.equipmentinfo.intactRate * 1.8);
}
console.log(numberAngle);
var myChart1 = echarts.init(document.querySelector("#echart1"));
var option1 = {
//提示框组件。开发实际中去掉了指针,提示框可以不用设置。
tooltip: {
formatter: "{a} <br/>{b} : {c}%",
},
grid: {},
//下面属性才是仪表盘的核心!!反正我是这么认为的!!!
series: [
{
//类型
splitNumber: 4, //刻度数量
type: "gauge",
//半径
radius: 155,
//起始角度。圆心 正右手侧为0度正上方为90度正左手侧为180度。
startAngle: 180,
//结束角度。
endAngle: 0,
center: ["50%", "100%"],
//仪表盘轴线相关配置。
name: "内层盘",
type: "gauge",
axisLine: {
lineStyle: {
width: 10,
color: [
[
1,
new echarts.graphic.LinearGradient(0, 0, 1, 0, [
{
offset: 0,
color: "#040610",
},
{
offset: 0.2,
color: "#083782",
},
{
offset: 0.5,
color: "#0E5EFD",
},
{
offset: 0.8,
color: "#083782",
},
{
offset: 1,
color: "#040610",
},
]),
],
],
},
},
axisTick: {
lineStyle: {
color: "#fff",
width: 1,
},
length: 6,
splitNumber: 1,
show: false,
},
splitLine: {
show: false,
},
axisLabel: {
show: false,
},
pointer: {
show: false,
},
data: [
{
show: false,
value: "0",
},
],
detail: {
show: 0,
},
},
{
//类型
splitNumber: 4, //刻度数量
type: "gauge",
//半径
radius: 115,
//起始角度。圆心 正右手侧为0度正上方为90度正左手侧为180度。
startAngle: 180,
//结束角度。
endAngle: 0,
center: ["50%", "100%"],
//仪表盘轴线相关配置。
name: "内层盘",
type: "gauge",
axisLine: {
lineStyle: {
width: 25,
color: [
[
1,
new echarts.graphic.LinearGradient(0, 0, 1, 0, [
{
offset: 0.1,
color: "#3E82FF",
},
{
offset: 0.6,
color: "#65FBFF",
},
{
offset: 1,
color: "#23317D",
},
]),
],
],
},
},
axisTick: {
lineStyle: {
color: "#fff",
width: 1,
},
length: 6,
splitNumber: 1,
show: false,
},
splitLine: {
show: false,
},
axisLabel: {
show: false,
},
pointer: {
show: false,
},
axisLabel: {
show: false,
},
data: [
{
show: false,
value: "0",
},
],
detail: {
show: false,
},
},
{
//类型
splitNumber: 4, //刻度数量
type: "gauge",
//半径
radius: 115,
//起始角度。圆心 正右手侧为0度正上方为90度正左手侧为180度。
startAngle: numberAngle,
//结束角度。
endAngle: 0,
center: ["50%", "100%"],
//仪表盘轴线相关配置。
name: "内层盘",
type: "gauge",
axisLine: {
lineStyle: {
width: 25,
color: [
[
1,
new echarts.graphic.LinearGradient(0, 0, 1, 0, [
{
offset: 0.1,
color: "#351A0E",
},
{
offset: 0.6,
color: "#363121",
},
{
offset: 1,
color: "#351A0E",
},
]),
],
],
},
},
axisTick: {
lineStyle: {
color: "#fff",
width: 1,
},
length: 6,
splitNumber: 1,
show: false,
},
splitLine: {
show: false,
},
axisLabel: {
show: false,
},
pointer: {
show: false,
},
axisLabel: {
show: false,
},
data: [
{
show: false,
value: "0",
},
],
detail: {
show: false,
},
},
{
//类型
color: "#fff",
splitNumber: 4, //刻度数量
type: "gauge",
name: "完好设备占比",
//半径
radius: 135,
//起始角度。圆心 正右手侧为0度正上方为90度正左手侧为180度。
startAngle: 180,
//结束角度。
endAngle: 0,
center: ["50%", "100%"],
//仪表盘轴线相关配置。
axisLine: {
show: true,
// 属性lineStyle控制线条样式
lineStyle: {
width: 20,
color: [
[
1,
new echarts.graphic.LinearGradient(0, 0, 1, 0, [
{
offset: 0.1,
color: "#3A76F0",
},
{
offset: 0.6,
color: "#23327E",
},
{
offset: 1,
color: "#3A76F0",
},
]),
],
],
},
},
//分隔线样式。
splitLine: {
show: false,
},
//刻度样式。
axisTick: {
// show: false,
splitNumber: 8,
length: 20,
lineStyle: {
color: "#04060F",
},
distance: -20,
},
//刻度标签。
axisLabel: {
// splitNumber: 10,
// distance: -12,
// fontSize: 17,
color: "#ffffff",
show: false,
},
//仪表盘指针。
pointer: {
//这个show属性好像有问题因为在这次开发中需要去掉指正我设置false的时候还是显示指针估计是BUG吧我用的echarts-3.2.3希望改进。最终我把width属性设置为0成功搞定
show: false,
//指针长度
length: "90%",
width: 0,
},
//仪表盘标题。
title: {
show: true,
offsetCenter: [0, "40%"], // x, y单位px
color: "#fff", // 文字的颜色,默认 #333。
fontSize: 20,
},
//仪表盘详情,用于显示数据。
detail: {
show: true,
valueAnimation: true,
formatter: "{value}%",
offsetCenter: [0, "-10%"],
textStyle: {
color: "#fff",
fontSize: 30,
},
},
data: [
{
value: intactRate,
},
],
},
],
};
myChart1.setOption(option1);
},
selectline() {
const _this = this;
this.optionDatalist1 = [];
this.optionDatalist2 = [];
this.optionDatalist3 = [];
this.optionDatalist4 = [];
_this.getdatalist(_this.selectxt);
},
//左侧第一个选择类型下拉框 回调函数
},
};
</script>
<style lang="scss" scoped>
.app-container {
padding: 0px 24px;
}
.home {
width: 100%;
height: 100vh;
background: url("../../../assets/images/bg-body.png") no-repeat;
background-size: 100% 100%;
background-color: #050711;
.head {
width: 100%;
height: 74px;
position: relative;
.head-content {
height: 74px;
background-image: url("../../../assets/images/bg-head.png");
background-repeat: no-repeat;
background-size: 100% 100%;
text-align: center;
.title {
font-size: 42px;
font-weight: 400;
color: #ffffff;
}
}
.head-logo {
position: absolute;
left: 0px;
top: 1px;
img {
height: 38px;
// width: ;
}
}
.back {
position: absolute;
right: 0px;
top: 5px;
}
}
.content-top {
display: flex;
justify-content: space-between;
position: relative;
.factory {
width: 540px;
height: 60px;
background: url("../../../assets/images/bg- border1.png") no-repeat;
background-size: 100% 100%;
text-align: center;
position: absolute;
top: -17px;
left: 0px;
}
.timebox {
width: 480px;
height: 60px;
background: url("../../../assets/images/bg-border2.png") no-repeat;
background-size: 100% 100%;
text-align: center;
position: absolute;
top: -17px;
right: 0px;
.time {
font-size: 30px;
font-weight: 400;
color: #ffffff;
line-height: 71px;
}
}
}
.content {
margin-top: 63px;
.itemtop {
display: flex;
justify-content: space-between;
align-items: center;
.left {
.item-table {
width: 1243px;
height: 292px;
background: url("../../../assets/images/equipment/bg-border1.png")
no-repeat;
background-size: 100% 100%;
padding: 27px 21px 30px 25px;
box-sizing: border-box;
box-sizing: border-box;
.table-thead {
width: 1197px;
height: 44px;
margin: auto;
background: #0a1a33;
td {
font-size: 19px;
font-family: NotoSansHans-Medium, NotoSansHans;
font-weight: 500;
color: #159aff;
text-align: center;
white-space: nowrap;
}
}
.table-tbody {
height: 192px;
// width: 1775px;
margin: auto;
overflow-y: scroll;
table {
width: 100%;
tbody {
width: 100%;
td {
font-size: 19px;
font-family: NotoSansHans-Medium, NotoSansHans;
font-weight: 500;
color: #ffffff;
text-align: center;
border-bottom: 1px dashed #6c8097;
}
}
}
}
}
.item-table1 {
margin-top: 20px;
padding-top: 19px;
.table-tbody {
height: 144px;
}
}
}
.right {
margin-left: 23px;
width: 610px;
height: 604px;
background: url("../../../assets/images/equipment/bg-border1.png")
no-repeat;
background-size: 100% 100%;
// padding: 27px 21px 30px 25px;
box-sizing: border-box;
position: relative;
.echartbox {
margin-top: 50px;
}
.echart1title {
display: inline-table;
position: absolute;
top: -27px;
left: 0px;
bottom: 0px;
right: 0px;
margin: auto;
z-index: 9999;
font-size: 24px;
font-weight: bold;
color: #ffffff;
}
.equipmentinfobox {
margin-top: 105px;
display: flex;
align-items: center;
justify-content: space-around;
.box {
width: 186px;
height: 180px;
background: url("../../../assets/images/equipment/number.png")
no-repeat;
background-size: 100% 100%;
text-align: center;
padding-top: 30px;
box-sizing: border-box;
.number {
.number1 {
font-size: 60px;
font-weight: 500;
color: #66ffff;
}
.name1 {
font-size: 32px;
font-weight: 400;
color: #ffffff;
}
}
.name2 {
margin-top: 15px;
font-size: 32px;
font-weight: bold;
color: #ffffff;
}
}
}
}
}
.itembottom {
margin-top: 19px;
display: flex;
justify-content: space-around;
.item-table {
width: 610px;
height: 292px;
background: url("../../../assets/images/equipment/bg-border1.png")
no-repeat;
background-size: 100% 100%;
padding: 27px 21px 30px 25px;
box-sizing: border-box;
box-sizing: border-box;
.table-thead {
width: 100%;
height: 44px;
margin: auto;
background: #0a1a33;
td {
font-size: 19px;
font-family: NotoSansHans-Medium, NotoSansHans;
font-weight: 500;
color: #159aff;
text-align: center;
white-space: nowrap;
}
}
.table-tbody {
height: 192px;
// width: 1775px;
margin: auto;
overflow-y: scroll;
table {
width: 100%;
tbody {
width: 100%;
td {
font-size: 19px;
font-family: NotoSansHans-Medium, NotoSansHans;
font-weight: 500;
color: #ffffff;
text-align: center;
border-bottom: 1px dashed #6c8097;
}
}
}
}
}
.item-table1:first-child {
margin-right: 10px;
}
.item-table1 {
flex: 1;
margin-top: 20px;
padding-top: 19px;
// .table-thead {
// width: 565.01px;
// }
.table-tbody {
height: 144px;
}
}
}
}
}
.titlebox {
width: 431px;
height: 38px;
background: url("../../../assets/images/bg-title.png") no-repeat;
background-size: 100% 100%;
// text-align: center;
font-size: 20px;
font-weight: bold;
color: #ffffff;
line-height: 38px;
letter-spacing: 2px;
text-shadow: 0px 2px 4px rgba(0, 0, 0, 0.5);
padding-left: 60px;
// .titlename{
// position: relative;
// left: 24px;
// }
}
.factory {
display: flex;
align-items: center;
// justify-content: space-around;
}
.selectborder {
background-color: transparent;
border-radius: 4px;
// border: 2px solid #27408c;
position: relative;
display: flex;
align-items: center;
justify-content: space-around;
width: 350px;
margin-left: 50px;
}
.selectborder1 {
background-color: transparent;
border-radius: 4px;
// border: 2px solid #27408c;
position: relative;
display: flex;
align-items: center;
justify-content: space-around;
width: 88px;
margin-left: 25px;
}
.selectborder select {
/*清除select的边框样式*/
border: none;
/*清除select聚焦时候的边框颜色*/
outline: none;
background-color: transparent;
/*将select的宽高等于div的宽高*/
width: 100%;
height: 50px;
/*隐藏select的下拉图标*/
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
font-size: 25px;
font-weight: 400;
color: #ffffff;
line-height: 42px;
}
.selectborder option {
/*清除select的边框样式*/
border: none;
/*清除select聚焦时候的边框颜色*/
outline: none;
background-color: transparent;
/*将select的宽高等于div的宽高*/
width: 100%;
height: 50px;
/*隐藏select的下拉图标*/
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
padding-left: 20px;
font-size: 25px;
font-weight: 500;
color: #3fa2ff;
border-radius: 0%;
}
.selectborder1 option {
/*清除select的边框样式*/
border: none;
/*清除select聚焦时候的边框颜色*/
outline: none;
background-color: transparent;
/*将select的宽高等于div的宽高*/
width: 200px;
height: 50px;
/*隐藏select的下拉图标*/
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
padding-left: 20px;
font-size: 25px;
font-weight: 500;
color: #3fa2ff;
border-radius: 0%;
}
.selectborder:after {
content: "";
width: 24px;
height: 24px;
background: url(../../../assets/images/xiala.png) no-repeat center;
/*通过定位将图标放在合适的位置*/
position: absolute;
right: 0px;
top: 25%;
/*给自定义的图标实现点击下来功能*/
pointer-events: none;
}
.selectborder1:after {
content: "";
width: 24px;
height: 24px;
background: url(../../../assets/images/xiala.png) no-repeat center;
/*通过定位将图标放在合适的位置*/
position: absolute;
right: 0px;
top: 25%;
/*给自定义的图标实现点击下来功能*/
pointer-events: none;
}
::v-deep .el-button--primary {
color: #ffffff;
background-color: #325e82;
border-color: #0a0f19;
}
.active1 {
background-color: #0d1b2f;
}
.active2 {
// background-color: #04060E;
}
::-webkit-scrollbar {
width: 3px;
height: 0px;
background-color: #0c0642;
}
/*定义滚动条轨道 内阴影+圆角*/
::-webkit-scrollbar-track {
-webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
border-radius: 8px;
background-color: #07356a;
}
/*定义滑块 内阴影+圆角*/
::-webkit-scrollbar-thumb {
border-radius: 8px;
-webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
background-color: #0091ff;
}
::v-deep .el-date-editor .el-range-input {
background-color: #142944;
color: #ffffff;
}
::v-deep .el-range-input::placeholder {
color: #ffffff; /* 设置 placeholder 文本的颜色 */
}
::v-deep .el-range-separator {
color: #ffffff; /* 设置 placeholder 文本的颜色 */
}
::v-deep .el-range-editor--medium .el-range-separator {
line-height: 35px;
}
::v-deep .el-input__icon .el-range__icon .el-icon-date {
color: #ffffff; /* 设置 placeholder 文本的颜色 */
}
</style>