Files
industry-ui/src/views/work/resource/index.vue

551 lines
17 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<div>
<div class="hxjx_root">
<!--产品信息-->
<div>
<div style="width:60%;">
<span>产品信息:</span>
<table class="table table-hover table-bordered table-striped table-condensed text-nowrap">
<thead class="hxjx_table_th">
<tr>
<th class="hxjx_table_th_width">序号</th>
<th class="hxjx_table_th_width">钽靶批号</th>
<th class="hxjx_table_th_width">规格</th>
<th class="hxjx_table_th_width">工艺</th>
<th class="hxjx_table_th_width">直径</th>
</tr>
</thead>
<tbody>
<tr v-if="dataList.length > 0" v-for="(item, index) in dataList" @click="getTechnologyInfo(index)">
<td class="hxjx_table_btnColumn" :class="{ table_td_select: index === indexSelect && item.id != null }">
{{ index + 1 }}
</td>
<td class="hxjx_table_btnColumn" :class="{ table_td_select: index === indexSelect && item.id != null }">
{{
item.id }}
</td>
<td class="hxjx_table_btnColumn" :class="{ table_td_select: index === indexSelect && item.id != null }">
{{
item.specification }}
</td>
<td class="hxjx_table_btnColumn" :class="{ table_td_select: index === indexSelect && item.id != null }">
{{
item.technology }}
</td>
<td class="hxjx_table_btnColumn" :class="{ table_td_select: index === indexSelect && item.id != null }">
{{
item.diameter }}
</td>
</tr>
</tbody>
</table>
</div>
</div>
<!--粗轧道次表-->
<div style="width:60%;margin-left:1%;" id="rollingpass">
<span>粗轧道次表:</span>
<!-- 表1 -->
<table class="table table-hover table-bordered table-striped table-condensed text-nowrap"
style="vertical-align: middle;">
<thead>
<tr>
<th class="hxjx_table_th_width table_tdth" colspan="5" rowspan="2">
<span id="hxjx-table-title"></span>
{{ technologyId }}轧制工艺单
</th>
<th class="hxjx_table_th_width table_tdth" colspan="4"></th>
</tr>
<tr>
<th class="hxjx_table_th_width table_tdth">制作人</th>
<th class="hxjx_table_th_width table_tdth"></th>
<th class="hxjx_table_th_width table_tdth">审核人</th>
<th class="hxjx_table_th_width table_tdth"></th>
</tr>
<tr>
<th class="hxjx_table_th_width table_tdth" rowspan="2" style="vertical-align: middle;">道次</th>
<th class="hxjx_table_th_width table_tdth" colspan="3">粗轧工艺设计</th>
<th class="hxjx_table_th_width table_tdth" colspan="3">检移票号码</th>
<th class="hxjx_table_th_width table_tdth" colspan="2">粗轧操作记录</th>
</tr>
<tr>
<th class="hxjx_table_th_width table_tdth">压下量</th>
<th class="hxjx_table_th_width table_tdth">轧前厚度</th>
<th class="hxjx_table_th_width table_tdth">轧后厚度</th>
<th class="hxjx_table_th_width table_tdth">喂料角度</th>
<th class="hxjx_table_th_width table_tdth">设定值</th>
<th class="hxjx_table_th_width table_tdth">判定确认</th>
<th class="hxjx_table_th_width table_tdth">程序设定员</th>
<th class="hxjx_table_th_width table_tdth">备注</th>
</tr>
</thead>
<tbody id="hxjx-tbody-one">
<tr v-for="(item, index) in technologyInfoList">
<td class="hxjx_table_btnColumn table_tdth">{{ item.step }}</td>
<td class="hxjx_table_btnColumn table_tdth">{{ item.reduction }}</td>
<td class="hxjx_table_btnColumn table_tdth">{{ item.thicknessFront }}</td>
<td class="hxjx_table_btnColumn table_tdth">{{ item.thicknessBehind }}</td>
<td class="hxjx_table_btnColumn table_tdth">{{ item.angle }}</td>
<td class="hxjx_table_btnColumn table_tdth">{{ item.setValue }}</td>
<td class="hxjx_table_btnColumn table_tdth"></td>
<td class="hxjx_table_btnColumn table_tdth"></td>
<td class="hxjx_table_btnColumn table_tdth"></td>
</tr>
</tbody>
<thead>
<tr>
<th class="hxjx_table_th_width table_tdth" colspan="2">粗轧后厚度</th>
<th class="hxjx_table_th_width table_tdth" colspan="2"></th>
<th class="hxjx_table_th_width table_tdth"></th>
<th class="hxjx_table_th_width table_tdth">轧制员</th>
<th class="hxjx_table_th_width table_tdth" colspan="3"></th>
</tr>
</thead>
</table>
<!-- 表2 -->
<table class="table table-hover table-bordered table-striped table-condensed text-nowrap"
style="vertical-align: middle;">
<thead>
<tr>
<th class="hxjx_table_th_width table_tdth" rowspan="2" style="vertical-align: middle;">道次</th>
<th class="hxjx_table_th_width table_tdth" colspan="5">四辊精轧记录</th>
<th class="hxjx_table_th_width table_tdth" colspan="3" rowspan="2" style="vertical-align: middle;">
程序设定员
</th>
<th class="hxjx_table_th_width table_tdth" rowspan="2" style="vertical-align: middle;">备注</th>
</tr>
<tr>
<th class="hxjx_table_th_width table_tdth" colspan="2">设定值范围(±0.2)</th>
<th class="hxjx_table_th_width table_tdth" colspan="2">辊缝设定</th>
<th class="hxjx_table_th_width table_tdth">判定</th>
</tr>
</thead>
<tbody id="hxjx-tbody-two">
<tr v-for="(item, index) in technologyInfoListByFour">
<td class="hxjx_table_btnColumn table_tdth">{{ item.step }}</td>
<td class="hxjx_table_btnColumn table_tdth" colspan="2">{{ item.setValue }}</td>
<td class="hxjx_table_btnColumn table_tdth" colspan="2"></td>
<td class="hxjx_table_btnColumn table_tdth"></td>
<td class="hxjx_table_btnColumn table_tdth" colspan="2"></td>
<td class="hxjx_table_btnColumn table_tdth"></td>
<td class="hxjx_table_btnColumn table_tdth"></td>
</tr>
</tbody>
<thead>
<tr>
<th class="hxjx_table_th_width table_tdth" colspan="3">
厚度标准值
<span id="hxjx-table-thickness"></span>
</th>
<th class="hxjx_table_th_width table_tdth" colspan="2">精轧后厚度值</th>
<th class="hxjx_table_th_width table_tdth"></th>
<th class="hxjx_table_th_width table_tdth" colspan="2">OK NG </th>
<th class="hxjx_table_th_width table_tdth"></th>
</tr>
<tr>
<th class="hxjx_table_th_width table_tdth" colspan="3">轧制日期</th>
<th class="hxjx_table_th_width table_tdth" colspan="2">轧制人员签字确认</th>
<th class="hxjx_table_th_width table_tdth" colspan="5"></th>
</tr>
</thead>
</table>
<!-- 表3 -->
<table class="table table-hover table-bordered table-striped table-condensed text-nowrap"
style="vertical-align: middle;">
<thead>
<tr>
<th class="hxjx_table_th_width table_tdth" colspan="9">
精轧参数参考设定值实际压下量根据产品厚度及厚度均匀性进行设定精轧实际设定值在设定值范围内即可
</th>
</tr>
</thead>
</table>
</div>
</div>
<!-- 按钮操作 -->
<div style="display: flex;justify-content: center;">
<el-button style="margin-right: 0;" @click="success">确定
</el-button>
<el-button style="margin-left: 20px;" @click="clear">初始化
</el-button>
<el-button style="margin-left: 20px;" type="danger" @click="removeMaterial" :disabled="indexSelect === 0">删除物料
</el-button>
</div>
<div id="hxjx_popup" class="hxjx_popup" v-if="showFault">
<!-- 表头-->
<div class="hxjx_popup_header_danger">
<span style="float:left">故障</span>
<!-- <span id="hxjx_popup_header_close" style="float:right"><i class='fa fa-times' style="font-size: 20px;cursor: pointer;"></i></span> -->
</div>
<!-- body-->
<div class="hxjx_popup_body_danger">
<div style="width:100%;height:227px;">
<table class="table table-borderless hxjx_table_text_left">
<tbody>
<tr>
<td class="hxjx_table_label_format hxjx_table_label" style="padding:0.25rem;">时间:</td>
<td class="hxjx_table_label_format hxjx_table_text" style="padding:0.25rem;">{{ messageData.createTime
}}
</td>
<td class="hxjx_table_label_format hxjx_table_text_rule"
style="padding:0.25rem;vertical-align: middle;"></td>
</tr>
<tr>
<td class="hxjx_table_label_format hxjx_table_label" style="padding:0.25rem;">故障名称:</td>
<td class="hxjx_table_label_format hxjx_table_text" style="padding:0.25rem;">{{ messageData.faultName }}
</td>
<td class="hxjx_table_label_format hxjx_table_text_rule"
style="padding:0.25rem;vertical-align: middle;"></td>
</tr>
<tr>
<td class="hxjx_table_label_format hxjx_table_label" style="padding:0.25rem;">故障信息:</td>
<td class="hxjx_table_label_format hxjx_table_text" style="padding:0.25rem;">
{{ messageData.faultMessage }}
</td>
<td class="hxjx_table_label_format hxjx_table_text_rule"
style="padding:0.25rem;vertical-align: middle;"></td>
</tr>
</tbody>
</table>
</div>
<!-- 按钮操作 -->
<table class="table">
<tr>
<td style="padding: 20px 0 0 0;text-align: right; border-top:0px solid #dc3545">
<div class="btn-group btn-group-sm">
<a href="#" class="hxjx-button-ensure btn btn-danger btn-sm custom hxjx_foot_btn_custom"
style="margin-right: 0;" @click="ensure">确定</a>
</div>
</td>
</tr>
</table>
</div>
</div>
</div>
</template>
<script>
import {
listMaterial1,
listTechnology,
materialClear,
messageData,
messageUpdate,
updateResource
} from '@/api/system/resource'
import { getFaultMessage, newIP } from '@/api/system/common'
import { deleteMaterial } from "@/api/system/material";
export default {
name: 'index',
data() {
return {
MessageParams: {
state: 0
},
showFault: false,
dataList: [],
indexSelect: 0,
technologyId: '',
selectMaterial: [],
// 粗轧请求参数
params: {
state: 0,
pageSize: 999
},
// 精轧请求参数
params2: {
state: 1,
pageSize: 999
},
technologyInfoList: [],
technologyInfoListByFour: [],
messageData: {}
}
},
methods: {
success() {
if (this.dataList.length === 0) {
alert('钽靶原料列表为空,不可提交')
return
}
let data = {
batchId: this.dataList[0].batchId,
state: 0
}
updateResource(data).then(res => {
if (res.data === 1) {
// 提交成功 给个提醒
// 列表制空
alert('钽靶原料成功提交至轧制')
this.dataList = []
} else if (res.data === 0) {
alert('提交失败,检查是否存在物料')
} else if (res.data === 2) {
alert('提交成功,但工艺出现差异,已将差异物料提交异常')
}
})
},
removeMaterial() {
let materialId = this.dataList[this.indexSelect].id
if (this.indexSelect === 0) {
return
} else {
this.$modal.confirm('是否确认删除钽靶编号为"' + materialId + '"的数据项?').then(function () {
return deleteMaterial(materialId)
}).then(() => {
this.getDataList()
this.$modal.msgSuccess("删除成功");
})
}
},
// 选择材料
getTechnologyInfo(index) {
this.indexSelect = index
let params = this.params
params.technologyId = this.dataList[index].technology
this.technologyId = params.technologyId
if (params.technologyId == null) {
return
}
listTechnology(params).then(res => {
this.technologyInfoList = res.rows
})
let params2 = this.params2
params2.technologyId = this.dataList[index].technology
listTechnology(params2).then(res => {
this.technologyInfoListByFour = res.rows
})
},
getDataList() {
//state==0表示并未送进轧制页面的新进材料
let params = {
state: 0
}
listMaterial1(params).then(res => {
this.dataList = res.rows
console.log(res.rows)
if (res.rows[0].id != null && this.indexSelect === 0) {
this.getTechnologyInfo(0)
}
})
},
getFault() {
getFaultMessage().then(res => {
if (res.data !== 0) {
this.showFault = true
messageData(this.MessageParams).then(res => {
this.messageData = res.data
})
}
})
},
ensure() {
let data = {
state: 1
}
messageUpdate(data).then(res => {
this.showFault = false
})
},
clear() {
materialClear().then(res => {
alert('初始化成功')
})
}
},
mounted() {
clearInterval(this.intervalTime)
this.getDataList() // 接口方法
this.intervalTime = setInterval(() => {
newIP()
this.getFault()
this.getDataList() // 接口方法
}, 3000)
},
created() {
}
}
</script>
<style scoped>
.hxjx_root {
padding: 20px;
display: flex;
flex-wrap: wrap;
width: 100%;
font-size: 0.875rem;
}
.hxjx_navigator_info {
height: 40px;
border-radius: 5px;
position: relative;
font-size: 1rem;
font-weight: 700;
}
.hxjx_table_label_format {
word-break: keep-all;
white-space: nowrap;
}
.hxjx_table_text_rule {
color: red;
}
.hxjx_table_text {
width: 300px !important;
text-align: left;
padding: 6px;
}
.hxjx_table_label {
padding: 0px !important;
vertical-align: middle !important;
width: 100px;
}
.hxjx_table_text_left {
text-align: left;
}
.hxjx_btn_margin_right5 {
margin-right: 5px;
}
.hxjx_footer_main {
background-color: white;
border: solid 1px transparent !important;
}
.hxjx_table_btnColumn {
word-break: keep-all !important;
white-space: nowrap !important;
}
.hxjx_foot_btn_custom {
width: 90px !important;
margin-right: 5px;
}
/* 后添加的样式 */
.hxjx_footer_main {
text-align: center !important;
}
.hxjx_table_btnColumn {
border-top: 0 !important;
}
.hxjx_table_btn {
width: 50px !important;
margin: 2px;
}
.hxix_table_border {
border: 1px solid #CCC;
}
#product .table td,
#product .table th {
padding: 0.5rem;
}
.hxjx_table_th {
background-color: rgb(91, 155, 213);
color: #fff;
}
#rollingpass .table td,
#rollingpass .table th {
padding: 0;
}
.table_td_select {
background-color: yellow;
}
.table_tdth {
vertical-align: middle;
text-align: center;
}
.hxjx_table_label_format {
word-break: keep-all;
white-space: nowrap;
}
.hxjx_table_text_rule {
color: red;
}
.hxjx_table_text {
width: 300px !important;
text-align: left;
padding: 6px;
}
.hxjx_table_label {
padding: 0px !important;
vertical-align: middle !important;
width: 100px;
}
.hxjx_table_text_left {
text-align: left;
}
.table td,
.table th {
padding: 0.5rem;
}
.hxjx_popup {
position: fixed;
left: 400px;
top: 200px;
width: 640px;
height: 360px;
font-size: 14px;
}
.hxjx_popup_header_danger {
width: 100%;
height: 40px;
padding: 9px;
background-color: #dc3545;
color: #fff;
}
.hxjx_popup_body_danger {
width: 100%;
height: 320px;
padding: 20px;
background-color: #fff;
border: 1px solid #dc3545;
}
</style>