更新首页

This commit is contained in:
24kycj
2024-11-17 21:18:05 +08:00
parent 26e9c0a75b
commit 2c110e3f6b
+141 -52
View File
@@ -45,47 +45,71 @@
<div class="device_info_main" :class="{ device_info_main1: infoStatus === 1 }">
<div class="device_info_item">
<div class="device_info_title">{{ printer_info.printer_name }}</div>
<div class="device_info_sure">
<div v-if="currentRunVal === 6" class="flex_box flex_row_between device_info_sure_box">
<div class="device_info_sure_text">{{ sureText }}</div>
<el-button @click="sureCD" class="device_info_sure_btn" type="primary">确定</el-button>
</div>
</div>
<div class="flex_box device_info_options">
<div class="device_info_option">
<div class="device_info_option_box">
<img src="@/assets/images/device4.png" />
<div class="device_info_option_cap">
<div class="device_info_option_cap_box" :class="{'device_info_option_cap_box1': printer_info.strongList[1].cd_num < 30, 'device_info_option_cap_box2': printer_info.strongList[1].cd_num < 10}" :style="{height: $accDiv(printer_info.strongList[1].cd_num, 50) * 100 + '%'}"></div>
<div
class="device_info_option_cap_box"
:class="{ device_info_option_cap_box1: printer_info.strongList[1].cd_num < 30, device_info_option_cap_box2: printer_info.strongList[1].cd_num < 10 }"
:style="{ height: $accDiv(printer_info.strongList[1].cd_num, 50) * 100 + '%' }"
></div>
</div>
</div>
<div class="flex_box flex_row_center device_info_option_b">
<div class="device_info_option_b_text">{{CDTypes[printer_info.strongList[1].cd_type]}} {{printer_info.strongList[1].cd_num}}</div>
<i v-if="runVal===6" class="el-icon-caret-bottom"></i>
</div>
<el-dropdown trigger="click" :disabled="currentRunVal !== 6" @command="(e) => handleCommandCD(e, 1)">
<div class="el-dropdown-link flex_box flex_row_center device_info_option_b">
<div class="device_info_option_b_text">{{ CDTypes[printer_info.strongList[1].cd_type] }} {{ printer_info.strongList[1].cd_num }}</div>
<i v-if="currentRunVal === 6" class="el-icon-caret-bottom"></i>
</div>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item v-for="(item, index) in CDTypes" :key="index" :command="index">{{ item }}</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</div>
<div class="device_info_option">
<div class="device_info_option_box">
<img src="@/assets/images/device4.png" />
<div class="device_info_option_cap">
<div class="device_info_option_cap_box" :class="{'device_info_option_cap_box1': printer_info.strongList[2].cd_num < 30, 'device_info_option_cap_box2': printer_info.strongList[2].cd_num < 10}" :style="{height: $accDiv(printer_info.strongList[2].cd_num, 50) * 100 + '%'}"></div>
<div
class="device_info_option_cap_box"
:class="{ device_info_option_cap_box1: printer_info.strongList[2].cd_num < 30, device_info_option_cap_box2: printer_info.strongList[2].cd_num < 10 }"
:style="{ height: $accDiv(printer_info.strongList[2].cd_num, 50) * 100 + '%' }"
></div>
</div>
</div>
<div class="flex_box flex_row_center device_info_option_b">
<div class="device_info_option_b_text">{{CDTypes[printer_info.strongList[2].cd_type]}} {{printer_info.strongList[2].cd_num}}</div>
<i v-if="runVal===6" class="el-icon-caret-bottom"></i>
</div>
<el-dropdown trigger="click" :disabled="currentRunVal !== 6" @command="(e) => handleCommandCD(e, 2)">
<div class="el-dropdown-link flex_box flex_row_center device_info_option_b">
<div class="device_info_option_b_text">{{ CDTypes[printer_info.strongList[2].cd_type] }} {{ printer_info.strongList[2].cd_num }}</div>
<i v-if="currentRunVal === 6" class="el-icon-caret-bottom"></i>
</div>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item v-for="(item, index) in CDTypes" :key="index" :command="index">{{ item }}</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</div>
<div class="device_info_option">
<div class="flex_box flex_row_between device_info_option_list">
<div class="device_info_option_item device_info_option_blue">
<div :style="{height: parseInt(printer_info.blue_last)+'%'}" class="device_info_option_content"></div>
<div :style="{ height: parseInt(printer_info.blue_last) + '%' }" class="device_info_option_content"></div>
</div>
<div class="device_info_option_item device_info_option_red">
<div :style="{height: parseInt(printer_info.red_last)+'%'}" class="device_info_option_content"></div>
<div :style="{ height: parseInt(printer_info.red_last) + '%' }" class="device_info_option_content"></div>
</div>
<div class="device_info_option_item device_info_option_yellow">
<div :style="{height: parseInt(printer_info.yellow_last)+'%'}" class="device_info_option_content"></div>
<div :style="{ height: parseInt(printer_info.yellow_last) + '%' }" class="device_info_option_content"></div>
</div>
</div>
<div class="flex_box flex_row_between device_info_option_b">
<div class="device_info_option_b_text device_info_option_b_text1">{{parseInt(printer_info.blue_last)}}%</div>
<div class="device_info_option_b_text device_info_option_b_text1">{{parseInt(printer_info.red_last)}}%</div>
<div class="device_info_option_b_text device_info_option_b_text1">{{parseInt(printer_info.yellow_last)}}%</div>
<div class="device_info_option_b_text device_info_option_b_text1">{{ parseInt(printer_info.blue_last) }}%</div>
<div class="device_info_option_b_text device_info_option_b_text1">{{ parseInt(printer_info.red_last) }}%</div>
<div class="device_info_option_b_text device_info_option_b_text1">{{ parseInt(printer_info.yellow_last) }}%</div>
</div>
</div>
</div>
@@ -128,7 +152,7 @@
<div class="device_right_top_img">
<img v-if="cd_list[0].total_size" src="@/assets/images/device3.png" />
<img v-if="!cd_list[0].total_size" src="@/assets/images/device2.png" />
<div class="device_right_top_img_text" :class="{'device_right_top_img_text1': cd_list[0].total_size}">{{ diskTypes[cd_list[0].dev_type] }}</div>
<div class="device_right_top_img_text" :class="{ device_right_top_img_text1: cd_list[0].total_size }">{{ diskTypes[cd_list[0].dev_type] }}</div>
</div>
<div class="device_right_top_content">
<div class="device_right_top_title">{{ cd_list[0].dev_path || '' }}({{ $store.state.chat.CDName[cd_list[0].cd_pos] }})</div>
@@ -148,7 +172,7 @@
<div class="device_right_top_img">
<img v-if="cd_list[1].total_size" src="@/assets/images/device3.png" />
<img v-if="!cd_list[1].total_size" src="@/assets/images/device2.png" />
<div class="device_right_top_img_text" :class="{'device_right_top_img_text1': cd_list[1].total_size}">{{ diskTypes[cd_list[1].dev_type] }}</div>
<div class="device_right_top_img_text" :class="{ device_right_top_img_text1: cd_list[1].total_size }">{{ diskTypes[cd_list[1].dev_type] }}</div>
</div>
<div class="device_right_top_content">
<div class="device_right_top_title">{{ cd_list[1].dev_path || '' }}({{ $store.state.chat.CDName[cd_list[1].cd_pos] }})</div>
@@ -172,7 +196,7 @@
</div>
<div @click="showAll = !showAll" class="flex_box notice_all">
<img src="@/assets/images/Calendar_icon.png" />
<div>{{ showAll?'最新日志':'全部日志' }}</div>
<div>{{ showAll ? '最新日志' : '全部日志' }}</div>
</div>
</div>
<div class="notice_list">
@@ -210,7 +234,7 @@
<el-table-column width="50" label=""></el-table-column>
<el-table-column type="index" width="80" label="序号">
<template slot-scope="child">
<div>{{ scope.$index+1 }}_{{ child.$index+1 }}</div>
<div>{{ scope.$index + 1 }}_{{ child.$index + 1 }}</div>
</template>
</el-table-column>
<el-table-column prop="task_size" label="大小">
@@ -278,6 +302,7 @@
<script>
let that
let outTimer
import { mapGetters } from 'vuex'
import UserInfo from '@/components/userInfo/userInfo.vue'
@@ -293,7 +318,11 @@ export default {
// 工作状态
infoStatus: 0,
runText: '',
// 运行选项
runVal: 1,
currentRunVal: 0,
sureText: '请设置左右盘仓类型并按确定键',
sureTime: 0,
runList: [
{
value: 1,
@@ -325,21 +354,39 @@ export default {
// 作业列表
task_list: [],
statusList: {
'0': '新建中',
'1': '准备中',
'2': '等待中',
'3': '正在拷贝',
'4': '正在打印',
'5': '已失败',
'6': '运行中',
'100': '已完成'
0: '新建中',
1: '准备中',
2: '等待中',
3: '正在拷贝',
4: '正在打印',
5: '已失败',
6: '运行中',
100: '已完成'
},
// 设备信息
printer_info: {},
// 光盘信息
default_cd: {},
diskTypes: {},
CDTypes: {},
cd_list: [],
// 光盘更换命令
changeCD1: {
req_name: 'setCDStrong',
req_type: 2,
req_info: {
strong_pos: 1,
strong_type: 1
}
},
changeCD2: {
req_name: 'setCDStrong',
req_type: 2,
req_info: {
strong_pos: 2,
strong_type: 1
}
},
// 日志信息
logList: [],
allLogList: [],
@@ -372,21 +419,22 @@ export default {
} else {
this.runText = this.$store.state.chat.PrinterStatus[val.printer_status]
}
this.printer_info = {...val}
this.default_cd = val.strongList
this.printer_info = { ...val }
},
deep: true,
immediate: true
},
'$store.state.chat.diskTypes': {
handler(val) {
this.diskTypes = {...val}
this.diskTypes = { ...val }
},
deep: true,
immediate: true
},
'$store.state.chat.CDTypes': {
handler(val) {
this.CDTypes = {...val}
this.CDTypes = { ...val }
},
deep: true,
immediate: true
@@ -416,10 +464,28 @@ export default {
// 执行
handleRun() {
const index = that.runList.findIndex((item) => item.value == that.runVal)
that.$message({
message: that.runList[index].label,
type: 'success'
})
// that.$message({
// message: that.runList[index].label,
// type: 'success'
// })
clearTimeout(outTimer)
if (this.runVal === 6) {
outTimer = setTimeout(() => {
this.currentRunVal = 0
}, 120000);
}
that.currentRunVal = that.runVal
},
// 更换左右磁盘类型
handleCommandCD(e, type) {
this.printer_info.strongList[type].cd_type = e
this[`changeCD${type}`].req_info.strong_type = e
},
sureCD() {
that.$store.dispatch('chat/websocketsend', this.changeCD1)
that.$store.dispatch('chat/websocketsend', this.changeCD2)
clearTimeout(outTimer)
this.currentRunVal = 0
},
// 新建作业
showWork() {
@@ -531,7 +597,7 @@ $red: #ff0000;
.device_info {
width: calc(100% - 290px);
.device_info_box {
width: calc(100% - 50px);
width: calc(100% - 40px);
overflow: hidden;
.device_info_main {
white-space: nowrap;
@@ -550,7 +616,29 @@ $red: #ff0000;
font-size: 25px;
color: #000000;
line-height: 38px;
margin-bottom: 42px;
}
.device_info_sure {
height: 42px;
.device_info_sure_box {
width: 100%;
height: 100%;
}
.device_info_sure_text {
font-size: 15px;
color: $green;
}
.device_info_sure_btn {
width: 80px;
height: 30px;
line-height: 30px;
padding: 0;
background: #00bcc3;
border-radius: 6px;
font-weight: 500;
font-size: 16px;
margin: 0;
color: #ffffff;
}
}
.device_info_options {
.device_info_option {
@@ -598,6 +686,7 @@ $red: #ff0000;
height: 30px;
padding-top: 10px;
font-size: 24px;
cursor: pointer;
.device_info_option_b_text {
font-weight: 500;
font-size: 18px;
@@ -623,8 +712,8 @@ $red: #ff0000;
width: 36px;
height: 67px;
border-radius: 2px;
background: linear-gradient( 270deg, #E1FBFE 0%, #FFFFFF 50%, #E5F9FF 100%);
border: 1px solid #B1CDD0;
background: linear-gradient(270deg, #e1fbfe 0%, #ffffff 50%, #e5f9ff 100%);
border: 1px solid #b1cdd0;
position: relative;
.device_info_option_content {
position: absolute;
@@ -635,24 +724,24 @@ $red: #ff0000;
}
}
.device_info_option_blue {
background: linear-gradient( 270deg, #E1FBFE 0%, #FFFFFF 50%, #E5F9FF 100%);
border: 1px solid #B1CDD0;
background: linear-gradient(270deg, #e1fbfe 0%, #ffffff 50%, #e5f9ff 100%);
border: 1px solid #b1cdd0;
.device_info_option_content {
background: linear-gradient( 90deg, #279FD0 0%, #80E1F7 48%, #2FB0E0 100%);
background: linear-gradient(90deg, #279fd0 0%, #80e1f7 48%, #2fb0e0 100%);
}
}
.device_info_option_red {
background: linear-gradient( 270deg, #FBE5F7 0%, #FFFFFF 50%, #F6E1F1 100%);
border: 1px solid #E6BCD6;
background: linear-gradient(270deg, #fbe5f7 0%, #ffffff 50%, #f6e1f1 100%);
border: 1px solid #e6bcd6;
.device_info_option_content {
background: linear-gradient( 90deg, #D02886 0%, #F56ABE 48%, #D02991 100%);
background: linear-gradient(90deg, #d02886 0%, #f56abe 48%, #d02991 100%);
}
}
.device_info_option_yellow {
background: linear-gradient( 270deg, #FEFDC5 0%, #FFFFFF 50%, #FEFDC5 100%);
border: 1px solid #EAECC6;
background: linear-gradient(270deg, #fefdc5 0%, #ffffff 50%, #fefdc5 100%);
border: 1px solid #eaecc6;
.device_info_option_content {
background: linear-gradient( 90deg, #F7EA32 0%, #FEFAAA 48%, #F8E94B 100%);
background: linear-gradient(90deg, #f7ea32 0%, #fefaaa 48%, #f8e94b 100%);
}
}
}
@@ -981,11 +1070,11 @@ $red: #ff0000;
width: 80%;
::v-deep {
.el-progress-bar__outer {
height: 16px!important;
line-height: 16px!important;
height: 16px !important;
line-height: 16px !important;
.el-progress-bar__innerText {
font-size: 12px!important;
color: #fff!important;
font-size: 12px !important;
color: #fff !important;
}
}
}