Compare commits
No commits in common. "zwq" and "master" have entirely different histories.
@ -5,6 +5,7 @@
|
||||
<script>
|
||||
import * as echarts from 'echarts'
|
||||
import resize from './mixins/resize'
|
||||
import moment from 'moment'
|
||||
|
||||
export default {
|
||||
mixins: [resize],
|
||||
@ -99,15 +100,22 @@ export default {
|
||||
})
|
||||
}
|
||||
if (this.chartType.indexOf('折线') >= 0) {
|
||||
this.dataList.forEach(item => {
|
||||
this.series.push({
|
||||
name: item[0].code,
|
||||
name: this.title + 'line',
|
||||
type: 'line',
|
||||
symbolSize: 5,
|
||||
symbolSize: 10,
|
||||
symbol: 'circle',
|
||||
data: item.map(item1 => {
|
||||
return item1
|
||||
})
|
||||
colorBy: 'data',
|
||||
color: '#5B8FF9',
|
||||
label: {
|
||||
show: true,
|
||||
position: 'top',
|
||||
formatter (p) {
|
||||
return p.value > 0 ? p.value : ''
|
||||
}
|
||||
},
|
||||
data: this.dataList.map(item => {
|
||||
return item.value
|
||||
})
|
||||
})
|
||||
}
|
||||
@ -123,6 +131,7 @@ export default {
|
||||
},
|
||||
chartType: {
|
||||
handler (val) {
|
||||
console.log(val)
|
||||
if (val.length) {
|
||||
this.series = []
|
||||
if (val.indexOf('柱状') >= 0) {
|
||||
@ -146,15 +155,23 @@ export default {
|
||||
})
|
||||
}
|
||||
if (val.indexOf('折线') >= 0) {
|
||||
this.dataList.forEach(item => {
|
||||
this.series.push({
|
||||
name: item[0].code,
|
||||
name: this.title + 'line',
|
||||
type: 'line',
|
||||
symbolSize: 5,
|
||||
symbolSize: 10,
|
||||
symbol: 'circle',
|
||||
data: item.map(item1 => {
|
||||
return item1
|
||||
})
|
||||
color: '#5B8FF9',
|
||||
colorBy: 'data',
|
||||
barBorderRadius: 0,
|
||||
label: {
|
||||
show: true,
|
||||
position: 'top',
|
||||
formatter (p) {
|
||||
return p.value > 0 ? p.value : ''
|
||||
}
|
||||
},
|
||||
data: this.dataList.map(item => {
|
||||
return item.value
|
||||
})
|
||||
})
|
||||
}
|
||||
@ -187,15 +204,22 @@ export default {
|
||||
})
|
||||
}
|
||||
if (this.chartType.indexOf('折线') >= 0) {
|
||||
this.dataList.forEach(item => {
|
||||
this.series.push({
|
||||
name: item[0].code,
|
||||
name: this.title + 'line',
|
||||
type: 'line',
|
||||
symbolSize: 5,
|
||||
symbolSize: 10,
|
||||
symbol: 'circle',
|
||||
data: item.map(item1 => {
|
||||
return item1
|
||||
})
|
||||
color: '#5B8FF9',
|
||||
colorBy: 'data',
|
||||
label: {
|
||||
show: true,
|
||||
position: 'top',
|
||||
formatter (p) {
|
||||
return p.value > 0 ? p.value : ''
|
||||
}
|
||||
},
|
||||
data: this.dataList.map(item => {
|
||||
return item.value
|
||||
})
|
||||
})
|
||||
}
|
||||
@ -207,6 +231,9 @@ export default {
|
||||
this.chart.dispose()
|
||||
}
|
||||
this.chart = echarts.init(document.getElementById(this.id))
|
||||
const xData = this.dataList.map(item => {
|
||||
return moment(item.time).format('M-D HH:mm')
|
||||
})
|
||||
this.chart.setOption({
|
||||
title: {
|
||||
text: this.title === 'Mix-Chart' ? 'Mix-Chart' : this.titleHeader + this.title + this.titleFooter,
|
||||
@ -220,18 +247,10 @@ export default {
|
||||
},
|
||||
tooltip: {
|
||||
trigger: 'axis',
|
||||
confine: true,
|
||||
axisPointer: {
|
||||
textStyle: {
|
||||
color: '#fff'
|
||||
}
|
||||
},
|
||||
formatter: function (params) {
|
||||
let info = params[0].dataIndex + 1 + '<br/>'
|
||||
params.forEach(item => {
|
||||
info += item.marker + item.data.code + '<br/>' + '值: ' + item.value + '<br/>' + '时间: ' + item.data.time.split('T')[0] + ' ' + item.data.time.split('T')[1] + '<br/>'
|
||||
})
|
||||
return info
|
||||
}
|
||||
},
|
||||
grid: {
|
||||
@ -249,7 +268,11 @@ export default {
|
||||
top: 55,
|
||||
textStyle: {
|
||||
color: '#90979c'
|
||||
}
|
||||
},
|
||||
data: this.series.map(item => {
|
||||
console.log(item)
|
||||
return this.title + item.type
|
||||
})
|
||||
},
|
||||
calculable: true,
|
||||
xAxis: [
|
||||
@ -270,8 +293,10 @@ export default {
|
||||
show: false
|
||||
},
|
||||
axisLabel: {
|
||||
show: false
|
||||
}
|
||||
interval: 0,
|
||||
rotate: 45
|
||||
},
|
||||
data: xData
|
||||
}
|
||||
],
|
||||
yAxis: [
|
||||
@ -303,7 +328,7 @@ export default {
|
||||
xAxisIndex: [0],
|
||||
bottom: 10,
|
||||
start: 0,
|
||||
end: 20,
|
||||
end: 100,
|
||||
handleIcon: 'path://M306.1,413c0,2.2-1.8,4-4,4h-59.8c-2.2,0-4-1.8-4-4V200.8c0-2.2,1.8-4,4-4h59.8c2.2,0,4,1.8,4,4V413z',
|
||||
handleSize: '110%',
|
||||
handleStyle: {
|
||||
@ -319,7 +344,7 @@ export default {
|
||||
show: true,
|
||||
height: 15,
|
||||
start: 1,
|
||||
end: 20
|
||||
end: 35
|
||||
}
|
||||
],
|
||||
series: this.series
|
||||
|
@ -346,7 +346,7 @@ export default {
|
||||
xAxisIndex: [0],
|
||||
bottom: 10,
|
||||
start: 0,
|
||||
end: 10,
|
||||
end: 100,
|
||||
handleIcon: 'path://M306.1,413c0,2.2-1.8,4-4,4h-59.8c-2.2,0-4-1.8-4-4V200.8c0-2.2,1.8-4,4-4h59.8c2.2,0,4,1.8,4,4V413z',
|
||||
handleSize: '110%',
|
||||
handleStyle: {
|
||||
@ -361,8 +361,8 @@ export default {
|
||||
type: 'inside',
|
||||
show: true,
|
||||
height: 15,
|
||||
start: 0,
|
||||
end: 10
|
||||
start: 1,
|
||||
end: 35
|
||||
}
|
||||
],
|
||||
series: this.series
|
||||
|
@ -2,7 +2,7 @@
|
||||
* @Author: zwq
|
||||
* @Date: 2021-11-15 08:20:28
|
||||
* @LastEditors: zwq
|
||||
* @LastEditTime: 2022-11-23 09:42:21
|
||||
* @LastEditTime: 2022-09-06 15:26:36
|
||||
* @Description:
|
||||
*/
|
||||
/**
|
||||
@ -62,8 +62,7 @@ const mainRoutes = {
|
||||
{ path: '/report-kiln-alarm', component: _import('report/kiln-alarm'), name: 'report-kiln-alarm', meta: { title: '工业炉报警', isTab: true } },
|
||||
{ path: '/report-car-alarm', component: _import('report/car-alarm'), name: 'report-car-alarm', meta: { title: '车辆运行报警', isTab: true } },
|
||||
{ path: '/report-order-history', component: _import('report/order-history'), name: 'report-order-history', meta: { title: '订单历史列表', isTab: true } },
|
||||
{ path: '/report-APMS-table', component: _import('report/APMS-table'), name: 'report-APMS-table', meta: { title: 'APMS报工', isTab: true } },
|
||||
{ path: '/report-APMS-work', component: _import('report/APMS-work'), name: 'report-APMS-work', meta: { title: 'APMS未出单报工', isTab: true } },
|
||||
{ path: '/report-APMS-work', component: _import('report/APMS-work'), name: 'report-APMS-work', meta: { title: 'APMS报工', isTab: true } },
|
||||
{ path: '/report-order-history-task', component: _import('report/components/order-history-task'), name: 'report-order-history-task', meta: { title: '订单历史任务详情', isTab: true } },
|
||||
{ path: '/report-task-history', component: _import('report/task-history'), name: 'report-task-history', meta: { title: '执行任务历史列表', isTab: true } },
|
||||
{ path: '/report-task-history-detail', component: _import('report/components/task-history-detail'), name: 'report-task-history-detail', meta: { title: '执行任务历史详情', isTab: true } },
|
||||
|
@ -1,10 +1,3 @@
|
||||
/*
|
||||
* @Author: zwq
|
||||
* @Date: 2021-11-15 08:20:28
|
||||
* @LastEditors: zwq
|
||||
* @LastEditTime: 2022-11-30 15:44:44
|
||||
* @Description:
|
||||
*/
|
||||
/**
|
||||
* 邮箱
|
||||
* @param {*} s
|
||||
@ -36,11 +29,3 @@ export function isPhone (s) {
|
||||
export function isURL (s) {
|
||||
return /^http[s]?:\/\/.*/.test(s)
|
||||
}
|
||||
|
||||
/**
|
||||
* 配炉号
|
||||
* @param {*} s
|
||||
*/
|
||||
export function isStoveCode (s) {
|
||||
return /^[A-Z]{3}\d{1}\W{1}\d{2}\W{1}\d{10}$/.test(s)
|
||||
}
|
||||
|
@ -185,8 +185,7 @@ export default {
|
||||
} else if (sessionStorage.getItem('autoTaskList')) {
|
||||
const taskList = JSON.parse(sessionStorage.getItem('autoTaskList'))
|
||||
taskList.push(this.dataForm)
|
||||
const taskList1 = taskList.reduce((all, next) => all.some((item) => item.idenCardNum === next.idenCardNum) ? all : [...all, next], [])
|
||||
sessionStorage.setItem('autoTaskList', JSON.stringify(taskList1))
|
||||
sessionStorage.setItem('autoTaskList', JSON.stringify(taskList))
|
||||
} else {
|
||||
const arr = [this.dataForm]
|
||||
sessionStorage.setItem('autoTaskList', JSON.stringify(arr))
|
||||
|
@ -159,8 +159,7 @@
|
||||
} else if (sessionStorage.getItem('taskList')) {
|
||||
const taskList = JSON.parse(sessionStorage.getItem('taskList'))
|
||||
taskList.push(this.dataForm)
|
||||
const taskList1 = taskList.reduce((all, next) => all.some((item) => item.idenCardNum === next.idenCardNum) ? all : [...all, next], [])
|
||||
sessionStorage.setItem('taskList', JSON.stringify(taskList1))
|
||||
sessionStorage.setItem('taskList', JSON.stringify(taskList))
|
||||
} else {
|
||||
const arr = [this.dataForm]
|
||||
sessionStorage.setItem('taskList', JSON.stringify(arr))
|
||||
|
@ -339,19 +339,12 @@
|
||||
<icon-svg name="job" class="site-sidebar__menu-icon"></icon-svg>
|
||||
<span slot="title">执行任务历史列表</span>
|
||||
</el-menu-item>
|
||||
<el-menu-item
|
||||
index="report-APMS-table"
|
||||
@click="$router.push({ name: 'report-APMS-table' })"
|
||||
>
|
||||
<icon-svg name="job" class="site-sidebar__menu-icon"></icon-svg>
|
||||
<span slot="title">APMS报工</span>
|
||||
</el-menu-item>
|
||||
<el-menu-item
|
||||
index="report-APMS-work"
|
||||
@click="$router.push({ name: 'report-APMS-work' })"
|
||||
>
|
||||
<icon-svg name="job" class="site-sidebar__menu-icon"></icon-svg>
|
||||
<span slot="title">APMS未出单报工</span>
|
||||
<span slot="title">APMS报工</span>
|
||||
</el-menu-item>
|
||||
</el-submenu>
|
||||
<el-menu-item index="Problem" @click="$router.push({ name: 'Problem' })">
|
||||
|
@ -1,158 +0,0 @@
|
||||
<!--
|
||||
* @Author: zwq
|
||||
* @Date: 2021-11-18 14:16:25
|
||||
* @LastEditors: zwq
|
||||
* @LastEditTime: 2022-11-21 14:43:03
|
||||
* @Description:
|
||||
-->
|
||||
<template>
|
||||
<el-dialog title="修改" :before-close="handleClose" :visible.sync="visible">
|
||||
<el-form
|
||||
:rules="dataRule"
|
||||
v-if="showForm"
|
||||
ref="dataForm"
|
||||
>
|
||||
<el-form-item
|
||||
:label="
|
||||
item.idenCardNum + '--' + item.customer + '--' + item.productName
|
||||
"
|
||||
v-for="(item, index) in subList"
|
||||
:key="item.id"
|
||||
>
|
||||
<el-input v-model="item.quantity" placeholder="数量"
|
||||
><template slot="prepend"
|
||||
>数量:</template
|
||||
></el-input
|
||||
>
|
||||
<el-input v-model="item.weight" placeholder="重量"
|
||||
><template slot="prepend"
|
||||
>重量:</template
|
||||
></el-input
|
||||
>
|
||||
<el-button
|
||||
type="text"
|
||||
style="color:red"
|
||||
size="small"
|
||||
@click="deleteHandle(index)"
|
||||
>
|
||||
<el-tooltip class="item" effect="dark" content="删除" placement="top">
|
||||
<icon-svg class="iconClass" name="删除"></icon-svg>
|
||||
</el-tooltip>
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button @click="visible = false">取消</el-button>
|
||||
<el-button type="primary" :loading="btnLoad" @click="dataFormSubmit()"
|
||||
>确定</el-button
|
||||
>
|
||||
</span>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data () {
|
||||
return {
|
||||
visible: false,
|
||||
btnLoad: false,
|
||||
showForm: false,
|
||||
subList: [],
|
||||
updataList: [],
|
||||
autoExeTaskId: '',
|
||||
dataRule: {}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
init (allStep, autoExeTaskId, dataList, updataList) {
|
||||
this.btnLoad = false
|
||||
this.showForm = false
|
||||
this.autoExeTaskId = autoExeTaskId
|
||||
this.updataList = updataList
|
||||
const list = JSON.parse(JSON.stringify(dataList))
|
||||
this.subList = list.filter(item => {
|
||||
if (item.allStep === allStep) {
|
||||
this.showForm = true
|
||||
return item
|
||||
}
|
||||
})
|
||||
this.visible = true
|
||||
},
|
||||
// 表单提交
|
||||
dataFormSubmit () {
|
||||
const arr = this.updataList.filter(item => {
|
||||
if (item.autoExeTaskId === this.autoExeTaskId) {
|
||||
item.currTaskDetVoList.forEach(item1 => {
|
||||
const index = this.subList.findIndex(value => { return value.id === item1.id })
|
||||
item1.weight = this.subList[index].weight
|
||||
item1.quantity = this.subList[index].quantity
|
||||
})
|
||||
return item
|
||||
}
|
||||
})
|
||||
if (this.showForm) {
|
||||
this.btnLoad = true
|
||||
this.$http({
|
||||
url: this.$http.adornUrl('/currTask/oneStepToApms'),
|
||||
method: 'post',
|
||||
data: this.$http.adornData(
|
||||
arr[0], false
|
||||
)
|
||||
}).then(({ data }) => {
|
||||
if (data && data.code === 0) {
|
||||
this.btnLoad = false
|
||||
this.$message({
|
||||
message: '操作成功',
|
||||
type: 'success',
|
||||
duration: 1500,
|
||||
onClose: () => {
|
||||
this.visible = false
|
||||
this.$emit('refreshDataList')
|
||||
}
|
||||
})
|
||||
} else {
|
||||
this.btnLoad = false
|
||||
this.$message.error(data.msg)
|
||||
}
|
||||
})
|
||||
}
|
||||
// this.$refs['dataForm'].validate(valid => {
|
||||
// if (valid) {
|
||||
// this.btnLoad = true
|
||||
// this.$http({
|
||||
// url: this.$http.adornUrl('/currTask/updateCurrTaskStatus'),
|
||||
// method: 'post',
|
||||
// data: this.$http.adornData({
|
||||
// id: this.dataForm.id || undefined,
|
||||
// kilnId: this.dataForm.kilnId,
|
||||
// status: this.dataForm.status
|
||||
// })
|
||||
// }).then(({ data }) => {
|
||||
// if (data && data.code === 0) {
|
||||
// this.btnLoad = false
|
||||
// this.$message({
|
||||
// message: '操作成功',
|
||||
// type: 'success',
|
||||
// duration: 1500,
|
||||
// onClose: () => {
|
||||
// this.visible = false
|
||||
// this.$emit('refreshDataList')
|
||||
// }
|
||||
// })
|
||||
// } else {
|
||||
// this.btnLoad = false
|
||||
// this.$message.error(data.msg)
|
||||
// }
|
||||
// })
|
||||
// }
|
||||
// })
|
||||
},
|
||||
deleteHandle (index) {
|
||||
this.subList.splice(index, 1)
|
||||
},
|
||||
handleClose () {
|
||||
this.visible = false
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
@ -20,8 +20,6 @@
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column prop="taskCode" label="任务编码"> </el-table-column>
|
||||
<el-table-column align="center" width="180" prop="stoveCode" label="炉号">
|
||||
</el-table-column>
|
||||
<el-table-column prop="createTime" label="发起时间">
|
||||
<template slot-scope="scope">
|
||||
{{
|
||||
@ -100,7 +98,6 @@
|
||||
<el-button
|
||||
type="text"
|
||||
:disabled="scope.row.status === 1"
|
||||
:loading="btnLoading"
|
||||
size="small"
|
||||
@click="runTask(scope.row.id)"
|
||||
>
|
||||
@ -167,7 +164,6 @@ export default {
|
||||
data () {
|
||||
return {
|
||||
statusList,
|
||||
btnLoading: false,
|
||||
addOrUpdateVisible: false
|
||||
}
|
||||
},
|
||||
@ -177,7 +173,6 @@ export default {
|
||||
activated () {},
|
||||
methods: {
|
||||
init () {
|
||||
this.btnLoading = false
|
||||
console.log(1)
|
||||
},
|
||||
// 新增 / 修改
|
||||
@ -221,7 +216,6 @@ export default {
|
||||
},
|
||||
// 执行
|
||||
runTask (id) {
|
||||
this.btnLoading = true
|
||||
this.$http({
|
||||
url: this.$http.adornUrl('/currTask/runTask'),
|
||||
method: 'post',
|
||||
@ -229,7 +223,6 @@ export default {
|
||||
// params: this.$http.adornParams({ id }, false)
|
||||
}).then(({ data }) => {
|
||||
if (data && data.code === 0) {
|
||||
this.btnLoading = false
|
||||
this.$message({
|
||||
message: '操作成功',
|
||||
type: 'success',
|
||||
@ -239,7 +232,6 @@ export default {
|
||||
}
|
||||
})
|
||||
} else {
|
||||
this.btnLoading = false
|
||||
this.$message.error(data.msg)
|
||||
}
|
||||
})
|
||||
|
@ -2,13 +2,10 @@
|
||||
<div class="mod-config">
|
||||
<el-form style="display: flex; align-items: center; justify-content: right;" :inline="true" ref="dataForm" :rules="dataRule" :model="dataForm" @keyup.enter.native="getDataList()">
|
||||
<el-form-item>
|
||||
<el-input size="small" v-model="dataForm.idenCardNum" clearable placeholder="标识卡号" />
|
||||
<el-input size="small" v-model="dataForm.idenCardNum" placeholder="标识卡号" />
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-input size="small" v-model="dataForm.orderNo" clearable placeholder="订单号" />
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-input size="small" v-model="dataForm.customerName" clearable placeholder="客户名称" />
|
||||
<el-input size="small" v-model="dataForm.idenCardNum" placeholder="订单号" />
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button size="small" @click="getDataList()">查询</el-button>
|
||||
@ -156,8 +153,7 @@
|
||||
return {
|
||||
dataForm: {
|
||||
idenCardNum: '',
|
||||
orderNo: '',
|
||||
customerName: ''
|
||||
orderNo: ''
|
||||
},
|
||||
dataList: [],
|
||||
options1: [],
|
||||
@ -168,6 +164,12 @@
|
||||
dataListLoading: false,
|
||||
orderDetailVisible: false,
|
||||
dataRule: {
|
||||
idenCardNum: [
|
||||
{ required: true, message: '标识卡号不能为空', trigger: 'change' }
|
||||
],
|
||||
orderNo: [
|
||||
{ required: true, message: '订单号不能为空', trigger: 'change' }
|
||||
]
|
||||
},
|
||||
statusList,
|
||||
orderVoidList
|
||||
@ -190,8 +192,7 @@
|
||||
'current': this.pageIndex,
|
||||
'size': this.pageSize,
|
||||
'orderNo': this.dataForm.orderNo,
|
||||
'idenCardNum': this.dataForm.idenCardNum,
|
||||
'customerName': this.dataForm.customerName
|
||||
'idenCardNum': this.dataForm.idenCardNum
|
||||
})
|
||||
}).then(({data}) => {
|
||||
if (data && data.code === 0) {
|
||||
|
@ -112,7 +112,6 @@
|
||||
<el-button
|
||||
type="text"
|
||||
:disabled="scope.row.status === 1"
|
||||
:loading="btnLoading"
|
||||
size="small"
|
||||
@click="addOrUpdateHandle(scope.row.id)"
|
||||
>
|
||||
@ -177,7 +176,6 @@ export default {
|
||||
pageIndex: 1,
|
||||
pageSize: 30,
|
||||
totalPage: 0,
|
||||
btnLoading: false,
|
||||
dataListLoading: false,
|
||||
statusList,
|
||||
processList: []
|
||||
@ -205,7 +203,6 @@ export default {
|
||||
// 获取数据列表
|
||||
getDataList () {
|
||||
this.dataListLoading = true
|
||||
this.btnLoading = false
|
||||
this.$http({
|
||||
url: this.$http.adornUrl('/currTask/currentTaskNow'),
|
||||
method: 'post',
|
||||
@ -252,7 +249,6 @@ export default {
|
||||
},
|
||||
// 执行
|
||||
addOrUpdateHandle (id) {
|
||||
this.btnLoading = true
|
||||
this.$http({
|
||||
url: this.$http.adornUrl('/currTask/runTask'),
|
||||
method: 'post',
|
||||
@ -260,7 +256,6 @@ export default {
|
||||
// params: this.$http.adornParams({ id }, false)
|
||||
}).then(({ data }) => {
|
||||
if (data && data.code === 0) {
|
||||
this.btnLoading = false
|
||||
this.$message({
|
||||
message: '操作成功',
|
||||
type: 'success',
|
||||
@ -270,7 +265,6 @@ export default {
|
||||
}
|
||||
})
|
||||
} else {
|
||||
this.btnLoading = false
|
||||
this.$message.error(data.msg)
|
||||
}
|
||||
})
|
||||
|
@ -1,200 +0,0 @@
|
||||
<template>
|
||||
<div class="mod-config">
|
||||
<el-table
|
||||
:data="dataList"
|
||||
:span-method="objectSpanMethod"
|
||||
:header-cell-style="{background:'#eef1f6',color:'#606266',height: '56px'}"
|
||||
v-loading="dataListLoading"
|
||||
style="width: 100%;">
|
||||
<el-table-column
|
||||
type="index"
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="序号"
|
||||
width="50">
|
||||
</el-table-column>
|
||||
<el-table-column prop="allStep" width="250" label="所有步骤"></el-table-column>
|
||||
<el-table-column prop="idenCardNum" label="标识卡号"> </el-table-column>
|
||||
<el-table-column prop="orderNo" label="订单名"> </el-table-column>
|
||||
<el-table-column prop="customer" label="客户名称"> </el-table-column>
|
||||
<el-table-column prop="productName" label="产品名称"> </el-table-column>
|
||||
<el-table-column prop="productModel" label="产品型号"> </el-table-column>
|
||||
<el-table-column prop="materialDes" label="材料号牌"> </el-table-column>
|
||||
<el-table-column prop="craftIll" width="120" label="生产工艺要求">
|
||||
</el-table-column>
|
||||
<el-table-column prop="unit" label="单位"> </el-table-column>
|
||||
<el-table-column prop="quantity" label="数量"> </el-table-column>
|
||||
<el-table-column prop="weight" label="重量"> </el-table-column>
|
||||
<el-table-column
|
||||
fixed="right"
|
||||
header-align="center"
|
||||
align="center"
|
||||
width="150"
|
||||
label="操作">
|
||||
<template slot-scope="scope">
|
||||
<el-button type="text" size="small" @click="addOrUpdateHandle(scope.row.allStep,scope.row.autoExeTaskId)">
|
||||
<el-tooltip class="item" effect="dark" content="修改" placement="top">
|
||||
<icon-svg class="iconClass" name="编辑"></icon-svg>
|
||||
</el-tooltip>
|
||||
</el-button>
|
||||
<el-button type="text" size="small" @click="completeOrder(scope.row.autoExeTaskId)">
|
||||
报工
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<tableEdit
|
||||
v-if="tableEditVisible"
|
||||
ref="tableEdit"
|
||||
@refreshDataList="getDataList"
|
||||
></tableEdit>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import tableEdit from './components/APMS-table-edit'
|
||||
export default {
|
||||
data () {
|
||||
return {
|
||||
dataList: [],
|
||||
updataList: [],
|
||||
dataListLoading: false,
|
||||
tableEditVisible: false
|
||||
}
|
||||
},
|
||||
components: {
|
||||
tableEdit
|
||||
},
|
||||
activated () {
|
||||
this.getDataList()
|
||||
},
|
||||
created () {
|
||||
},
|
||||
methods: {
|
||||
// 获取数据列表
|
||||
getDataList () {
|
||||
this.dataListLoading = true
|
||||
this.$http({
|
||||
url: this.$http.adornUrl('/currTask/taskInfoNotToApms'),
|
||||
method: 'post',
|
||||
data: this.$http.adornData({
|
||||
current: 1,
|
||||
size: 500
|
||||
})
|
||||
}).then(({ data }) => {
|
||||
if (data && data.code === 0) {
|
||||
this.dataList = []
|
||||
this.updataList = JSON.parse(JSON.stringify(data.data))
|
||||
data.data.forEach(item => {
|
||||
if (item.currTaskDetVoList.length > 0) {
|
||||
item.currTaskDetVoList.forEach(item1 => {
|
||||
item1.allStep = item.allStep
|
||||
item1.autoExeTaskId = item.autoExeTaskId
|
||||
})
|
||||
} else {
|
||||
let arr = {'allStep': item.allStep}
|
||||
item.currTaskDetVoList.push(arr)
|
||||
}
|
||||
this.dataList = [...this.dataList, ...item.currTaskDetVoList]
|
||||
})
|
||||
this.setSpan()
|
||||
} else {
|
||||
this.dataList = []
|
||||
}
|
||||
this.dataListLoading = false
|
||||
})
|
||||
},
|
||||
setSpan () {
|
||||
this.dataList.forEach(item => {
|
||||
item.rowspan = 1
|
||||
})
|
||||
// 双层循环
|
||||
for (let i = 0; i < this.dataList.length; i++) {
|
||||
for (let j = i + 1; j < this.dataList.length; j++) {
|
||||
// 此处可根据相同字段进行合并,此处是根据的id
|
||||
if (this.dataList[i].allStep === this.dataList[j].allStep) {
|
||||
this.dataList[i].rowspan++
|
||||
this.dataList[j].rowspan--
|
||||
}
|
||||
}
|
||||
// 这里跳过已经重复的数据
|
||||
i = i + this.dataList[i].rowspan - 1
|
||||
}
|
||||
},
|
||||
objectSpanMethod ({ row, column, rowIndex, columnIndex }) {
|
||||
if (columnIndex === 1) {
|
||||
return {
|
||||
rowspan: row.rowspan,
|
||||
colspan: 1
|
||||
}
|
||||
}
|
||||
if (columnIndex === 12) {
|
||||
return {
|
||||
rowspan: row.rowspan,
|
||||
colspan: 1
|
||||
}
|
||||
}
|
||||
},
|
||||
// 新增 / 修改
|
||||
addOrUpdateHandle (allStep, autoExeTaskId) {
|
||||
this.tableEditVisible = true
|
||||
this.$nextTick(() => {
|
||||
this.$refs.tableEdit.init(allStep, autoExeTaskId, this.dataList, this.updataList)
|
||||
})
|
||||
},
|
||||
handleClick (tab) {
|
||||
if (tab.index === '0') {
|
||||
this.$nextTick(() => {
|
||||
this.$refs.tab1Ref.init()
|
||||
})
|
||||
} else {
|
||||
this.$nextTick(() => {
|
||||
this.$refs.tab2Ref.init()
|
||||
})
|
||||
}
|
||||
},
|
||||
tableRowClassName ({ row, rowIndex }) {
|
||||
if (row.status === 1) {
|
||||
return 'success-row'
|
||||
} else if (row.status === 2) {
|
||||
return 'warning-row'
|
||||
}
|
||||
return ''
|
||||
},
|
||||
completeOrder (autoExeTaskId) {
|
||||
const arr = this.updataList.filter(item => {
|
||||
if (item.autoExeTaskId === autoExeTaskId) {
|
||||
return item
|
||||
}
|
||||
})
|
||||
this.$http({
|
||||
url: this.$http.adornUrl('/currTask/oneStepToApms'),
|
||||
method: 'post',
|
||||
data: this.$http.adornData(
|
||||
arr[0], false
|
||||
)
|
||||
}).then(({ data }) => {
|
||||
if (data && data.code === 0) {
|
||||
this.$message({
|
||||
message: '操作成功',
|
||||
type: 'success',
|
||||
duration: 1500
|
||||
})
|
||||
} else {
|
||||
this.$message.error(data.msg)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.el-table .warning-row {
|
||||
background-color: oldlace;
|
||||
}
|
||||
|
||||
.el-table .success-row {
|
||||
background-color: #f0f9eb;
|
||||
}
|
||||
</style>
|
@ -35,13 +35,7 @@
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="配炉号" prop="stoveCode">
|
||||
<el-input
|
||||
v-model="dataForm.stoveCode"
|
||||
placeholder="请输入配炉号"
|
||||
clearable
|
||||
:style="{ width: '100%' }"
|
||||
></el-input>
|
||||
<!-- <el-select
|
||||
<el-select
|
||||
v-model="dataForm.stoveCode"
|
||||
:style="{ width: '100%' }"
|
||||
filterable
|
||||
@ -54,7 +48,7 @@
|
||||
:value="item.code"
|
||||
>
|
||||
</el-option>
|
||||
</el-select> -->
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
@ -97,7 +91,7 @@
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<!-- <el-col :span="8">
|
||||
<el-col :span="8">
|
||||
<el-form-item label="备注" prop="remark">
|
||||
<el-input
|
||||
v-model="dataForm.remark"
|
||||
@ -106,7 +100,7 @@
|
||||
:style="{ width: '100%' }"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
</el-col> -->
|
||||
</el-col>
|
||||
</el-row>
|
||||
</div>
|
||||
<el-card class="box-card">
|
||||
@ -168,18 +162,10 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { isStoveCode } from '@/utils/validate'
|
||||
export default {
|
||||
components: {},
|
||||
props: [],
|
||||
data () {
|
||||
var validateMobile = (rule, value, callback) => {
|
||||
if (!isStoveCode(value)) {
|
||||
callback(new Error('配炉号格式错误'))
|
||||
} else {
|
||||
callback()
|
||||
}
|
||||
}
|
||||
return {
|
||||
stoveCodeArr: [],
|
||||
techCodeArr: [],
|
||||
@ -219,8 +205,7 @@ export default {
|
||||
required: true,
|
||||
message: '请输入配炉号',
|
||||
trigger: 'blur'
|
||||
},
|
||||
{ validator: validateMobile, trigger: 'blur' }
|
||||
}
|
||||
],
|
||||
workShopCode: [
|
||||
{
|
||||
@ -230,13 +215,7 @@ export default {
|
||||
}
|
||||
],
|
||||
techCode: [],
|
||||
stoveRemark: [
|
||||
{
|
||||
required: true,
|
||||
message: '请输入炉号备注',
|
||||
trigger: 'blur'
|
||||
}
|
||||
],
|
||||
stoveRemark: [],
|
||||
remark: [],
|
||||
itemCode: []
|
||||
}
|
||||
|
@ -1,134 +0,0 @@
|
||||
<!--
|
||||
* @Author: zwq
|
||||
* @Date: 2021-11-18 14:16:25
|
||||
* @LastEditors: zwq
|
||||
* @LastEditTime: 2022-11-21 16:26:53
|
||||
* @Description:
|
||||
-->
|
||||
<template>
|
||||
<el-dialog title="修改" :before-close="handleClose" :visible.sync="visible">
|
||||
<el-form
|
||||
:rules="dataRule"
|
||||
v-if="showForm"
|
||||
ref="dataForm"
|
||||
>
|
||||
<el-form-item
|
||||
:label="
|
||||
item.idenCardNum + '--' + item.customer + '--' + item.productName
|
||||
"
|
||||
v-for="(item, index) in subList"
|
||||
:key="item.id"
|
||||
>
|
||||
<el-input v-model="item.quantity" placeholder="数量"
|
||||
><template slot="prepend"
|
||||
>数量:</template
|
||||
></el-input
|
||||
>
|
||||
<el-input v-model="item.weight" placeholder="重量"
|
||||
><template slot="prepend"
|
||||
>重量:</template
|
||||
></el-input
|
||||
>
|
||||
<el-button
|
||||
type="text"
|
||||
style="color:red"
|
||||
size="small"
|
||||
@click="deleteHandle(index)"
|
||||
>
|
||||
<el-tooltip class="item" effect="dark" content="删除" placement="top">
|
||||
<icon-svg class="iconClass" name="删除"></icon-svg>
|
||||
</el-tooltip>
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button @click="visible = false">取消</el-button>
|
||||
<el-button type="primary" :loading="btnLoad" @click="dataFormSubmit()"
|
||||
>确定</el-button
|
||||
>
|
||||
</span>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data () {
|
||||
return {
|
||||
visible: false,
|
||||
btnLoad: false,
|
||||
showForm: false,
|
||||
subList: [],
|
||||
updataList: [],
|
||||
autoExeTaskId: '',
|
||||
dataRule: {}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
init (allStep, autoExeTaskId, dataList, updataList) {
|
||||
this.btnLoad = false
|
||||
this.showForm = false
|
||||
this.autoExeTaskId = autoExeTaskId
|
||||
this.updataList = JSON.parse(JSON.stringify(updataList))
|
||||
const list = JSON.parse(JSON.stringify(dataList))
|
||||
this.subList = list.filter(item => {
|
||||
if (item.allStep === allStep) {
|
||||
return item
|
||||
}
|
||||
})
|
||||
if (this.subList[0].id) {
|
||||
this.showForm = true
|
||||
}
|
||||
this.visible = true
|
||||
},
|
||||
// 表单提交
|
||||
dataFormSubmit () {
|
||||
const arr = this.updataList.filter(item => {
|
||||
if (item.autoExeTaskId === this.autoExeTaskId) {
|
||||
item.currTaskDetVoList.forEach(item1 => {
|
||||
const index = this.subList.findIndex(value => { return value.id === item1.id })
|
||||
if (index >= 0) {
|
||||
item1.weight = this.subList[index].weight
|
||||
item1.quantity = this.subList[index].quantity
|
||||
}
|
||||
})
|
||||
return item
|
||||
}
|
||||
})
|
||||
if (this.showForm) {
|
||||
this.btnLoad = true
|
||||
this.$http({
|
||||
url: this.$http.adornUrl('/currTask/oneStepToApms'),
|
||||
method: 'post',
|
||||
data: this.$http.adornData(
|
||||
arr[0], false
|
||||
)
|
||||
}).then(({ data }) => {
|
||||
if (data && data.code === 0) {
|
||||
this.btnLoad = false
|
||||
this.$message({
|
||||
message: '操作成功',
|
||||
type: 'success',
|
||||
duration: 1500,
|
||||
onClose: () => {
|
||||
this.visible = false
|
||||
this.$emit('refreshDataList')
|
||||
}
|
||||
})
|
||||
} else {
|
||||
this.btnLoad = false
|
||||
this.$message.error(data.msg)
|
||||
}
|
||||
})
|
||||
} else {
|
||||
this.visible = false
|
||||
}
|
||||
},
|
||||
deleteHandle (index) {
|
||||
this.subList.splice(index, 1)
|
||||
},
|
||||
handleClose () {
|
||||
this.visible = false
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
@ -1,341 +1,63 @@
|
||||
<!--
|
||||
* @Author: gtz
|
||||
* @Date: 2022-03-05 16:06:02
|
||||
* @LastEditors: zwq
|
||||
* @LastEditTime: 2022-11-30 15:12:05
|
||||
* @LastEditors: gtz
|
||||
* @LastEditTime: 2022-03-05 17:59:47
|
||||
* @Description: file content
|
||||
* @FilePath: \mt-qj-wms-ui\src\views\report\components\task-ele.vue
|
||||
-->
|
||||
<template>
|
||||
<div class="chart-container">
|
||||
<el-row :gutter="20">
|
||||
<el-col>
|
||||
<el-card
|
||||
class="base-container"
|
||||
style="height: 444px; position: relative; margin: 10px 0"
|
||||
>
|
||||
<el-table
|
||||
:data="checkResultList"
|
||||
border
|
||||
height="400"
|
||||
style="width: 100%;"
|
||||
>
|
||||
<el-table-column
|
||||
prop="createTime"
|
||||
header-align="center"
|
||||
align="center"
|
||||
width="95"
|
||||
label="添加时间"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
{{ scope.row.createTime ? scope.row.createTime.replace('T', ' ') : '' }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="stoveCode"
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="炉号"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="sheetNo"
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="生产单号"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="idenCardNum"
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="标识卡号"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="hardness"
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="硬度检验"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="metallography"
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="金相检验"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="heartHardness"
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="心部硬度"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="remake"
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="备注"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
header-align="center"
|
||||
label="硬度检验">
|
||||
<el-table-column
|
||||
prop="hardnessValueOne"
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="结果1"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="hardnessValueTwo"
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="结果2"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="hardnessValueThree"
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="结果3"
|
||||
>
|
||||
</el-table-column>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
header-align="center"
|
||||
label="金相检验渗碳淬火">
|
||||
<el-table-column
|
||||
prop="metallographyStchStccsd"
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="渗碳层深度"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="metallographyStchMstost"
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="表面为马氏体、残余奥氏体(级)"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="metallographyStchXxklzthw"
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="细小颗粒状碳化物"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="metallographyStchDtmstyltst"
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="心部为低碳马氏体加游离铁素体(级)"
|
||||
>
|
||||
</el-table-column>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
header-align="center"
|
||||
label="金相检验整体淬火">
|
||||
<el-table-column
|
||||
prop="metallographyZtchHhmst"
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="基体为回火马氏体(级)"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="metallographyZtchHhtst"
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="基体为回火托式体(级)"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="metallographyXchHhsst"
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="基体为回火素式体(级)"
|
||||
>
|
||||
</el-table-column>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
header-align="center"
|
||||
label="金相检验氮化">
|
||||
<el-table-column
|
||||
prop="metallographyDhDhhwcs"
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="表面亮白色的为氮化合物层深"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="metallographyDhKscs"
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="向内为扩散层深"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="metallographyDhXb"
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="心部"
|
||||
>
|
||||
</el-table-column>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
header-align="center"
|
||||
label="金相检验表面淬火">
|
||||
<el-table-column
|
||||
prop="metallographyBmchBtmst"
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="表面为板条马氏体(级)"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="metallographyBmchXb"
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="心部"
|
||||
>
|
||||
</el-table-column>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
header-align="center"
|
||||
label="金相检验">
|
||||
<el-table-column
|
||||
prop="metallographyBz"
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="备注"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="metallographyXbydXbydjyjg"
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="心部硬度"
|
||||
>
|
||||
</el-table-column>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-card>
|
||||
</el-col>
|
||||
<el-col
|
||||
:span="24"
|
||||
v-for="(item,index) in eleName"
|
||||
:key="item"
|
||||
>
|
||||
<el-card
|
||||
class="base-container"
|
||||
v-if="Array.isArray(eleList[item])&&eleList[item].length>0"
|
||||
style="height: 444px; position: relative; margin: 10px 0"
|
||||
>
|
||||
<el-col :span="12" v-for="(item, index) in dataList.ele" v-if="item.length" :key="'ele' + index">
|
||||
<el-card class="base-container" style="height: 444px; position: relative; margin: 10px 0">
|
||||
<el-row style="position: absolute; z-index: 10; right: 20px">
|
||||
<el-checkbox-group size="small" :min="1" v-model="chartTypeEle[index]" style="float: left">
|
||||
<el-checkbox-button label="折线" />
|
||||
<el-checkbox-button label="柱状" />
|
||||
</el-checkbox-group>
|
||||
</el-row>
|
||||
<el-row style="height: 400px">
|
||||
<chart
|
||||
height="100%"
|
||||
width="100%"
|
||||
:title="eleList[item][0][0]?eleList[item][0][0].name + '/' + eleList[item][0][0].unit : ''"
|
||||
:id="item + index"
|
||||
:task-ids="taskIds"
|
||||
:dataList="eleList[item]"
|
||||
:chartType="['折线']"
|
||||
/>
|
||||
<chart height="100%" width="100%" :title="item[0].name" :id="'ele' + index" :dataList="item" :chartType="chartTypeEle[index]" />
|
||||
</el-row>
|
||||
</el-card>
|
||||
</el-col>
|
||||
<el-col :span="12" v-for="(item, index) in dataList.gas" v-if="item.length" :key="'gas' + index">
|
||||
<el-card class="base-container" style="height: 444px; position: relative; margin: 10px 0">
|
||||
<el-row style="position: absolute; z-index: 10; right: 20px">
|
||||
<el-checkbox-group size="small" :min="1" v-model="chartTypeGas[index]" style="float: left">
|
||||
<el-checkbox-button label="折线" />
|
||||
<el-checkbox-button label="柱状" />
|
||||
</el-checkbox-group>
|
||||
</el-row>
|
||||
<el-row :gutter="20" v-if="false">
|
||||
<el-col
|
||||
:span="24"
|
||||
v-for="(item, index) in dataList.temp"
|
||||
:key="'temp' + index"
|
||||
>
|
||||
<el-card
|
||||
class="base-container"
|
||||
style="height: 444px; position: relative; margin: 10px 0"
|
||||
>
|
||||
<el-row style="height: 400px">
|
||||
<chart
|
||||
height="100%"
|
||||
width="100%"
|
||||
:title="item[taskIds[0]][0].name + '/' + item[taskIds[0]][0].unit"
|
||||
:id="'temp' + index"
|
||||
:task-ids="taskIds"
|
||||
:dataList="item"
|
||||
:chartType="['折线']"
|
||||
/>
|
||||
<chart height="100%" width="100%" :title="item[0].name" :id="'gas' + index" :dataList="item" :chartType="chartTypeGas[index]" />
|
||||
</el-row>
|
||||
</el-card>
|
||||
</el-col>
|
||||
<el-col
|
||||
:span="24"
|
||||
v-for="(item, index) in dataList.gas"
|
||||
:key="'gas' + index"
|
||||
>
|
||||
<el-card
|
||||
class="base-container"
|
||||
style="height: 444px; position: relative; margin: 10px 0"
|
||||
>
|
||||
<el-col :span="12" v-for="(item, index) in dataList.rot" v-if="item.length" :key="'rot' + index">
|
||||
<el-card class="base-container" style="height: 444px; position: relative; margin: 10px 0">
|
||||
<el-row style="position: absolute; z-index: 10; right: 20px">
|
||||
<el-checkbox-group size="small" :min="1" v-model="chartTypeRot[index]" style="float: left">
|
||||
<el-checkbox-button label="折线" />
|
||||
<el-checkbox-button label="柱状" />
|
||||
</el-checkbox-group>
|
||||
</el-row>
|
||||
<el-row style="height: 400px">
|
||||
<chart
|
||||
height="100%"
|
||||
width="100%"
|
||||
:title="item[taskIds[0]][0].name + '/' + item[taskIds[0]][0].unit"
|
||||
:id="'gas' + index"
|
||||
:task-ids="taskIds"
|
||||
:dataList="item"
|
||||
:chartType="['折线']"
|
||||
/>
|
||||
<chart height="100%" width="100%" :title="item[0].name" :id="'rot' + index" :dataList="item" :chartType="chartTypeRot[index]" />
|
||||
</el-row>
|
||||
</el-card>
|
||||
</el-col>
|
||||
<el-col
|
||||
:span="24"
|
||||
v-for="(item, index) in dataList.rot"
|
||||
:key="'rot' + index"
|
||||
>
|
||||
<el-card
|
||||
class="base-container"
|
||||
style="height: 444px; position: relative; margin: 10px 0"
|
||||
>
|
||||
<el-row style="height: 400px">
|
||||
<chart
|
||||
height="100%"
|
||||
width="100%"
|
||||
:title="item[taskIds[0]][0].name + '/' + item[taskIds[0]][0].unit"
|
||||
:id="'rot' + index"
|
||||
:task-ids="taskIds"
|
||||
:dataList="item"
|
||||
:chartType="['折线']"
|
||||
/>
|
||||
<el-col :span="12" v-for="(item, index) in dataList.temp" v-if="item.length" :key="'temp' + index">
|
||||
<el-card class="base-container" style="height: 444px; position: relative; margin: 10px 0">
|
||||
<el-row style="position: absolute; z-index: 10; right: 20px">
|
||||
<el-checkbox-group size="small" :min="1" v-model="chartTypeTemp[index]" style="float: left">
|
||||
<el-checkbox-button label="折线" />
|
||||
<el-checkbox-button label="柱状" />
|
||||
</el-checkbox-group>
|
||||
</el-row>
|
||||
</el-card>
|
||||
</el-col>
|
||||
<el-col
|
||||
:span="24"
|
||||
v-for="(item, index) in dataList.ele"
|
||||
:key="'ele' + index"
|
||||
>
|
||||
<el-card
|
||||
class="base-container"
|
||||
style="height: 444px; position: relative; margin: 10px 0"
|
||||
>
|
||||
<el-row style="height: 400px">
|
||||
<chart
|
||||
height="100%"
|
||||
width="100%"
|
||||
:title="item[taskIds[0]][0].name + '/' + item[taskIds[0]][0].unit"
|
||||
:id="'ele' + index"
|
||||
:task-ids="taskIds"
|
||||
:dataList="item"
|
||||
:chartType="['折线']"
|
||||
/>
|
||||
<chart height="100%" width="100%" :title="item[0].name" :id="'temp' + index" :dataList="item" :chartType="chartTypeTemp[index]" />
|
||||
</el-row>
|
||||
</el-card>
|
||||
</el-col>
|
||||
@ -358,39 +80,14 @@ export default {
|
||||
rot: [],
|
||||
temp: []
|
||||
},
|
||||
eleName: [
|
||||
'temp',
|
||||
'carbon',
|
||||
'met',
|
||||
'propane',
|
||||
'ammon',
|
||||
'nit',
|
||||
'ele',
|
||||
'car',
|
||||
'oilTemp',
|
||||
'outer1Temp',
|
||||
'outer2Temp',
|
||||
'rot1',
|
||||
'rot2',
|
||||
'aCurr',
|
||||
'aVol',
|
||||
'bCurr',
|
||||
'bVol',
|
||||
'cCurr',
|
||||
'cVol'
|
||||
],
|
||||
eleList: [],
|
||||
checkResultList: [],
|
||||
chartTypeEle: ['折线'],
|
||||
chartTypeGas: ['折线'],
|
||||
chartTypeRot: ['折线'],
|
||||
chartTypeTemp: ['折线'],
|
||||
showId: 0,
|
||||
taskIds: []
|
||||
chartTypeEle: [],
|
||||
chartTypeGas: [],
|
||||
chartTypeRot: [],
|
||||
chartTypeTemp: [],
|
||||
showId: 0
|
||||
}
|
||||
},
|
||||
activated () {
|
||||
this.taskIds = this.$route.query.taskIds
|
||||
this.getEleList()
|
||||
},
|
||||
mounted () {},
|
||||
@ -398,87 +95,29 @@ export default {
|
||||
// 获取能源信息
|
||||
getEleList () {
|
||||
this.$http({
|
||||
url: this.$http.adornUrl('/electric/eletric'),
|
||||
url: this.$http.adornUrl('/electric/energyList'),
|
||||
method: 'post',
|
||||
data: this.$http.adornData({
|
||||
taskIds: this.taskIds
|
||||
'taskId': this.$route.query.taskId
|
||||
})
|
||||
}).then(({data}) => {
|
||||
if (data.code === 0 && data.data) {
|
||||
this.eleList = data.data
|
||||
this.checkResultList = []
|
||||
this.eleList.checkResult.forEach(item => {
|
||||
this.checkResultList = [...this.checkResultList, ...item]
|
||||
console.log(JSON.parse(data.data))
|
||||
this.dataList = JSON.parse(data.data)
|
||||
this.dataList.ele.map(item => {
|
||||
this.chartTypeEle.push(['柱状'])
|
||||
})
|
||||
this.dataList.gas.map(item => {
|
||||
this.chartTypeGas.push(['柱状'])
|
||||
})
|
||||
this.dataList.rot.map(item => {
|
||||
this.chartTypeRot.push(['柱状'])
|
||||
})
|
||||
this.dataList.temp.map(item => {
|
||||
this.chartTypeTemp.push(['柱状'])
|
||||
})
|
||||
}
|
||||
})
|
||||
// this.$http({
|
||||
// url: this.$http.adornUrl('/electric/energyList'),
|
||||
// method: 'post',
|
||||
// data: this.$http.adornData({
|
||||
// 'taskIds': this.taskIds
|
||||
// })
|
||||
// }).then(({data}) => {
|
||||
// if (data.code === 0 && data.data) {
|
||||
// console.log(JSON.parse(data.data))
|
||||
// this.taskIds.forEach((objId, index) => {
|
||||
// console.log(objId)
|
||||
// if (JSON.parse(data.data)[objId].ele) {
|
||||
// if (index === 0) {
|
||||
// JSON.parse(data.data)[objId].ele.forEach(item => {
|
||||
// const obj = {}
|
||||
// obj[objId] = item
|
||||
// this.dataList.ele.push(obj)
|
||||
// })
|
||||
// } else {
|
||||
// JSON.parse(data.data)[objId].ele.forEach((item, i) => {
|
||||
// this.dataList.ele[i][objId] = item
|
||||
// })
|
||||
// }
|
||||
// }
|
||||
// if (JSON.parse(data.data)[objId].gas) {
|
||||
// if (index === 0) {
|
||||
// JSON.parse(data.data)[objId].gas.forEach(item => {
|
||||
// const obj = {}
|
||||
// obj[objId] = item
|
||||
// this.dataList.gas.push(obj)
|
||||
// })
|
||||
// } else {
|
||||
// JSON.parse(data.data)[objId].gas.forEach((item, i) => {
|
||||
// this.dataList.gas[i][objId] = item
|
||||
// })
|
||||
// }
|
||||
// }
|
||||
// if (JSON.parse(data.data)[objId].rot) {
|
||||
// if (index === 0) {
|
||||
// JSON.parse(data.data)[objId].rot.forEach(item => {
|
||||
// const obj = {}
|
||||
// obj[objId] = item
|
||||
// this.dataList.rot.push(obj)
|
||||
// })
|
||||
// } else {
|
||||
// JSON.parse(data.data)[objId].rot.forEach((item, i) => {
|
||||
// this.dataList.rot[i][objId] = item
|
||||
// })
|
||||
// }
|
||||
// }
|
||||
// if (JSON.parse(data.data)[objId].temp) {
|
||||
// if (index === 0) {
|
||||
// JSON.parse(data.data)[objId].temp.forEach(item => {
|
||||
// const obj = {}
|
||||
// obj[objId] = item
|
||||
// this.dataList.temp.push(obj)
|
||||
// })
|
||||
// } else {
|
||||
// JSON.parse(data.data)[objId].temp.forEach((item, i) => {
|
||||
// this.dataList.temp[i][objId] = item
|
||||
// })
|
||||
// }
|
||||
// }
|
||||
// })
|
||||
// console.log(this.dataList)
|
||||
// }
|
||||
// })
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -497,8 +136,7 @@ export default {
|
||||
.el-tabs__item{
|
||||
height: 120px;
|
||||
}
|
||||
.el-tabs__nav-next,
|
||||
.el-tabs__nav-prev {
|
||||
.el-tabs__nav-next, .el-tabs__nav-prev {
|
||||
line-height: 120px;
|
||||
}
|
||||
}
|
||||
|
@ -85,10 +85,11 @@
|
||||
}
|
||||
},
|
||||
activated () {
|
||||
this.id = this.$route.query.id
|
||||
this.getDataList()
|
||||
},
|
||||
created () {
|
||||
console.log(this.$route.query.id)
|
||||
this.id = this.$route.query.id
|
||||
},
|
||||
methods: {
|
||||
// 获取数据列表
|
||||
|
@ -4,6 +4,7 @@
|
||||
style="display: flex; align-items: center; justify-content: right;"
|
||||
:inline="true"
|
||||
:model="dataForm"
|
||||
@keyup.enter.native="getDataList()"
|
||||
>
|
||||
<!-- <el-form-item>
|
||||
<el-select
|
||||
@ -21,35 +22,12 @@
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item> -->
|
||||
<el-form-item prop="stoveCode">
|
||||
<el-input
|
||||
v-model="dataForm.stoveCode"
|
||||
placeholder="炉号"
|
||||
clearable
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item prop="kilnId">
|
||||
<el-select
|
||||
size="small"
|
||||
v-model="dataForm.kilnId"
|
||||
clearable
|
||||
filterable
|
||||
placeholder="加工炉"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in options"
|
||||
:key="item.id"
|
||||
:label="item.code"
|
||||
:value="item.id"
|
||||
>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-date-picker
|
||||
size="small"
|
||||
v-model="dataForm.time"
|
||||
type="daterange"
|
||||
value-format="yyyy-MM-dd"
|
||||
range-separator="至"
|
||||
start-placeholder="开始日期"
|
||||
end-placeholder="结束日期"
|
||||
@ -57,35 +35,16 @@
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button size="small" @click="getDataList(1)">查询</el-button>
|
||||
<el-button size="small" @click="getDataList()">查询</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-table
|
||||
:data="dataList"
|
||||
ref="dataTable"
|
||||
:stripe="true"
|
||||
:header-cell-style="{
|
||||
background: '#eef1f6',
|
||||
color: '#606266',
|
||||
height: '56px'
|
||||
}"
|
||||
:header-cell-style="{background:'#eef1f6',color:'#606266',height: '56px'}"
|
||||
v-loading="dataListLoading"
|
||||
@selection-change="selectionChangeHandle"
|
||||
:row-key="
|
||||
row => {
|
||||
return row.id;
|
||||
}
|
||||
"
|
||||
style="width: 100%;"
|
||||
>
|
||||
<el-table-column
|
||||
type="selection"
|
||||
header-align="center"
|
||||
reserve-selection
|
||||
align="center"
|
||||
width="50"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
type="index"
|
||||
header-align="center"
|
||||
@ -94,38 +53,36 @@
|
||||
width="50"
|
||||
>
|
||||
</el-table-column>
|
||||
<!-- <el-table-column
|
||||
<el-table-column
|
||||
prop="taskCode"
|
||||
label="任务编码"
|
||||
>
|
||||
</el-table-column> -->
|
||||
<el-table-column align="center" width="180" prop="stoveCode" label="炉号">
|
||||
</el-table-column>
|
||||
<el-table-column align="center" prop="sheetNo" label="生产单号">
|
||||
</el-table-column>
|
||||
<el-table-column align="center" prop="targetPosition" label="加工炉">
|
||||
</el-table-column>
|
||||
<el-table-column align="center" prop="plcValue" label="工艺号">
|
||||
</el-table-column>
|
||||
<el-table-column align="center" prop="beginTime" label="进炉时间">
|
||||
<el-table-column
|
||||
prop="createTime"
|
||||
label="发起时间"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
{{
|
||||
scope.row.beginTime ? scope.row.beginTime.replace("T", " ") : ""
|
||||
}}
|
||||
{{ scope.row.createTime ? scope.row.createTime.replace('T', ' ') : '' }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- <el-table-column
|
||||
align="center"
|
||||
<el-table-column
|
||||
prop="taskSource"
|
||||
label="任务来源"
|
||||
>
|
||||
</el-table-column> -->
|
||||
<el-table-column align="center" prop="status" label="任务状态">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="status"
|
||||
label="任务状态"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
{{ scope.row.status >= 0 ? statusList[scope.row.status] : "" }}
|
||||
{{ scope.row.status >= 0 ? statusList[scope.row.status] : '' }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" prop="taskType" label="任务类型">
|
||||
<el-table-column
|
||||
prop="taskType"
|
||||
label="任务类型"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<span>{{
|
||||
scope.row.taskType === 0
|
||||
@ -138,7 +95,15 @@
|
||||
}}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" prop="startPosition" label="开始位置">
|
||||
<el-table-column
|
||||
prop="startPosition"
|
||||
label="开始位置"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="targetPosition"
|
||||
label="目标位置"
|
||||
>
|
||||
</el-table-column>
|
||||
<!-- <el-table-column
|
||||
prop="vehicleName"
|
||||
@ -149,47 +114,32 @@
|
||||
fixed="right"
|
||||
header-align="center"
|
||||
align="center"
|
||||
width="100"
|
||||
label="检验"
|
||||
>
|
||||
width="80"
|
||||
label="检验">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
type="text"
|
||||
size="small"
|
||||
@click="checkResult(scope.row.sheetNo)"
|
||||
>检验结果</el-button
|
||||
>
|
||||
<el-button type="text" size="small" @click="checkResult(scope.row.sheetNo)">检验结果</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
fixed="right"
|
||||
header-align="center"
|
||||
align="center"
|
||||
width="100"
|
||||
label="能耗情况"
|
||||
>
|
||||
width="80"
|
||||
label="能耗情况">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
type="text"
|
||||
size="small"
|
||||
@click="eleHandle(scope.row.taskId, scope.row.targetPosition)"
|
||||
>详情</el-button
|
||||
>
|
||||
<el-button type="text" size="small" @click="eleHandle(scope.row.taskId)">详情</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
fixed="right"
|
||||
header-align="center"
|
||||
align="center"
|
||||
width="100"
|
||||
label="生产单详情"
|
||||
width="80"
|
||||
label="订单详情"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
type="text"
|
||||
size="small"
|
||||
@click="LocationBtn(scope.row.taskId)"
|
||||
>生产单详情</el-button
|
||||
<el-button type="text" size="small" @click="LocationBtn(scope.row.taskId)"
|
||||
>订单详情</el-button
|
||||
>
|
||||
</template>
|
||||
</el-table-column>
|
||||
@ -204,10 +154,7 @@
|
||||
layout="total, sizes, prev, pager, next, jumper"
|
||||
>
|
||||
</el-pagination>
|
||||
<task-history-result
|
||||
v-if="taskHistoryResultVisible"
|
||||
ref="addOrUpdate"
|
||||
></task-history-result>
|
||||
<task-history-result v-if="taskHistoryResultVisible" ref="addOrUpdate" @refreshDataList="getDataList"></task-history-result>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@ -226,15 +173,11 @@ export default {
|
||||
return {
|
||||
dataForm: {
|
||||
vehicleId: '',
|
||||
stoveCode: '',
|
||||
kilnId: '',
|
||||
time: []
|
||||
},
|
||||
taskHistoryResultVisible: false,
|
||||
dataList: [],
|
||||
options2: [],
|
||||
options: [],
|
||||
dataListSelections: [],
|
||||
pageIndex: 1,
|
||||
pageSize: 10,
|
||||
totalPage: 0,
|
||||
@ -247,30 +190,13 @@ export default {
|
||||
taskHistoryResult
|
||||
},
|
||||
activated () {
|
||||
this.$http({
|
||||
url: this.$http.adornUrl('/kilnInfo/page'),
|
||||
method: 'post',
|
||||
data: this.$http.adornData({
|
||||
current: 1,
|
||||
size: 500
|
||||
// paramKey: this.dataForm.paramKey
|
||||
})
|
||||
}).then(({ data }) => {
|
||||
if (data && data.code === 0) {
|
||||
this.options = data.data.records
|
||||
} else {
|
||||
this.options = []
|
||||
}
|
||||
})
|
||||
this.getDataList(1)
|
||||
this.getDataList()
|
||||
},
|
||||
methods: {
|
||||
// 获取数据列表
|
||||
getDataList (val) {
|
||||
getDataList () {
|
||||
this.dataListLoading = true
|
||||
if (val) {
|
||||
this.$refs.dataTable.clearSelection()
|
||||
}
|
||||
console.log(this.dataForm.time)
|
||||
this.$http({
|
||||
url: this.$http.adornUrl('/taskHis/taskHis'),
|
||||
method: 'post',
|
||||
@ -278,8 +204,6 @@ export default {
|
||||
current: this.pageIndex,
|
||||
size: this.pageSize,
|
||||
vehicleId: this.dataForm.vehicleId,
|
||||
stoveCode: this.dataForm.stoveCode,
|
||||
kilnId: this.dataForm.kilnId,
|
||||
startTime:
|
||||
this.dataForm.time && this.dataForm.time.length > 0
|
||||
? this.dataForm.time[0]
|
||||
@ -314,50 +238,17 @@ export default {
|
||||
LocationBtn (id) {
|
||||
this.$router.push({ name: 'report-task-history-detail', query: { id } })
|
||||
},
|
||||
eleHandle (taskId, targetPosition) {
|
||||
const a = this.dataListSelections.findIndex(
|
||||
item => item.targetPosition !== targetPosition
|
||||
)
|
||||
if (a !== 0) {
|
||||
const taskIdArr = this.dataListSelections.map(item => {
|
||||
return item.taskId
|
||||
})
|
||||
const taskIds = [...new Set([...taskIdArr, taskId])]
|
||||
eleHandle (taskId) {
|
||||
this.$router.push({
|
||||
name: 'report-task-ele',
|
||||
query: { taskIds }
|
||||
query: { taskId }
|
||||
})
|
||||
} else {
|
||||
this.$message({
|
||||
message: '加工炉必须一致',
|
||||
type: 'info',
|
||||
duration: 1500
|
||||
})
|
||||
}
|
||||
},
|
||||
checkResult (sheetNo) {
|
||||
this.taskHistoryResultVisible = true
|
||||
this.$nextTick(() => {
|
||||
this.$refs.addOrUpdate.init(sheetNo)
|
||||
})
|
||||
},
|
||||
// 多选
|
||||
selectionChangeHandle (val) {
|
||||
let targetPosition = val[0] ? val[0].targetPosition : ''
|
||||
let arr = []
|
||||
val.forEach(item => {
|
||||
if (targetPosition === item.targetPosition) {
|
||||
arr.push(item)
|
||||
} else {
|
||||
this.$message({
|
||||
message: '加工炉必须一致',
|
||||
type: 'info',
|
||||
duration: 1500
|
||||
})
|
||||
this.$refs.dataTable.toggleRowSelection(item, false)
|
||||
}
|
||||
})
|
||||
this.dataListSelections = arr
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user