Compare commits

...

36 Commits

Author SHA1 Message Date
b0faacd37b Merge pull request '更新' (#23) from zwq into master
Reviewed-on: #23
2022-09-09 16:53:51 +08:00
zwq
9492b471dc 更新 2022-09-09 16:48:26 +08:00
344261e302 Merge pull request '更新' (#22) from zwq into master
Reviewed-on: #22
2022-08-19 15:00:00 +08:00
zwq
e2c12e3fd8 更新 2022-08-19 14:59:26 +08:00
2021b8b076 Merge pull request '更新' (#21) from zwq into master
Reviewed-on: #21
2022-07-18 14:58:20 +08:00
zwq
8e69c8d31b 更新 2022-07-18 14:57:53 +08:00
2faa500456 Merge pull request '更新' (#20) from zwq into master
Reviewed-on: #20
2022-07-18 09:35:58 +08:00
zwq
83084aac04 更新 2022-07-18 09:35:33 +08:00
2b3b1666a5 Merge pull request '更新' (#19) from zwq into master
Reviewed-on: #19
2022-07-12 14:20:05 +08:00
zwq
80bacbcae5 更新 2022-07-12 14:19:41 +08:00
7684118031 1 2022-07-11 16:05:17 +08:00
zwq
91d78873a1 更新 2022-07-08 23:47:58 +08:00
4ba7a55b2e Merge pull request 'zwq' (#18) from zwq into master
Reviewed-on: #18
2022-07-08 10:15:04 +08:00
zwq
f28b25cfe0 Merge branch 'master' of http://git.picaiba.com/mt-ck/mt-qj-wms-ui into zwq 2022-07-08 10:14:31 +08:00
zwq
bc7ae55adb 更新 2022-07-08 10:14:00 +08:00
2d812f07ad Merge pull request '更新' (#17) from zwq into master
Reviewed-on: #17
2022-07-07 13:33:56 +08:00
8c0f7f64a4 Merge branch 'master' into zwq 2022-07-07 13:33:51 +08:00
zwq
847acd0390 更新 2022-07-07 13:33:31 +08:00
370eb50bf4 Merge pull request '更新' (#16) from zwq into master
Reviewed-on: #16
2022-07-06 17:00:31 +08:00
zwq
a227548f38 更新 2022-07-06 16:59:18 +08:00
89ebeeb791 Merge pull request '更新看板' (#15) from zwq into master
Reviewed-on: #15
2022-07-05 16:55:02 +08:00
zwq
060ec37ccf 更新看板 2022-07-05 16:54:45 +08:00
1c71d4c22d Merge pull request '新增看板' (#14) from zwq into master
Reviewed-on: #14
2022-07-04 10:52:10 +08:00
zwq
3a12063529 新增看板 2022-07-04 10:51:20 +08:00
73a729da51 Merge pull request 'update' (#13) from gtz into master
Reviewed-on: #13
2022-03-19 11:51:24 +08:00
34311763b1 update 2022-03-19 11:48:15 +08:00
4a5d2824d1 Merge pull request '修改bug' (#12) from zwq into master
Reviewed-on: #12
2022-03-18 15:18:10 +08:00
zwq
f4f26474d4 修改bug 2022-03-18 15:17:46 +08:00
837a48b372 Merge pull request 'gtz' (#11) from gtz into master
Reviewed-on: #11
2022-03-18 08:29:06 +08:00
d894c8bbfa update 2022-03-18 08:26:53 +08:00
504cf1af05 update 2022-01-04 08:51:40 +08:00
57b92d146a update 2021-12-17 18:28:11 +08:00
eb3288b3ed update 2021-12-17 17:13:28 +08:00
1231ba99c3 Merge branch 'master' into gtz 2021-12-17 16:32:43 +08:00
9e62cc95de Merge branch 'master' into gtz 2021-12-17 15:36:29 +08:00
c2e6ddea34 1 2021-12-17 15:36:11 +08:00
109 changed files with 4752 additions and 731 deletions

View File

@@ -1,8 +1,8 @@
/* /*
* @Author: gtz * @Author: gtz
* @Date: 2021-11-19 10:10:51 * @Date: 2021-11-19 10:10:51
* @LastEditors: gtz * @LastEditors: zwq
* @LastEditTime: 2021-12-15 17:19:13 * @LastEditTime: 2022-07-06 15:07:51
* @Description: file content * @Description: file content
* @FilePath: \mt-qj-wms-ui\config\index.js * @FilePath: \mt-qj-wms-ui\config\index.js
*/ */
@@ -22,7 +22,7 @@ module.exports = {
// 代理列表, 是否开启代理通过[./dev.env.js]配置 // 代理列表, 是否开启代理通过[./dev.env.js]配置
proxyTable: devEnv.OPEN_PROXY === false ? {} : { proxyTable: devEnv.OPEN_PROXY === false ? {} : {
'/proxyApi': { '/proxyApi': {
target: 'http://192.168.0.183:8080', target: 'http://192.168.1.18:8080',
changeOrigin: true, changeOrigin: true,
pathRewrite: { pathRewrite: {
'^/proxyApi': '/api' '^/proxyApi': '/api'

View File

@@ -18,7 +18,7 @@
<script>document.write('<script src="./config/index.js?t=' + new Date().getTime() + '"><\/script>');</script> <script>document.write('<script src="./config/index.js?t=' + new Date().getTime() + '"><\/script>');</script>
<% }else { %> <% }else { %>
<!-- 开发环境 --> <!-- 开发环境 -->
<link rel="shortcut icon" type="image/x-icon" href="./static/img/favicon.ico"> <link rel="shortcut icon" type="image/x-icon" href="./static/img/top.png">
<script src="./static/config/index.js"></script> <script src="./static/config/index.js"></script>
<script src="./static/plugins/mock-1.0.0-beta3/mock-min.js"></script> <script src="./static/plugins/mock-1.0.0-beta3/mock-min.js"></script>
<script src="./static/plugins/ueditor-1.4.3.3/ueditor.config.js"></script> <script src="./static/plugins/ueditor-1.4.3.3/ueditor.config.js"></script>

18
package-lock.json generated
View File

@@ -5572,8 +5572,7 @@
"ansi-regex": { "ansi-regex": {
"version": "2.1.1", "version": "2.1.1",
"bundled": true, "bundled": true,
"dev": true, "dev": true
"optional": true
}, },
"aproba": { "aproba": {
"version": "1.2.0", "version": "1.2.0",
@@ -5988,8 +5987,7 @@
"safe-buffer": { "safe-buffer": {
"version": "5.1.2", "version": "5.1.2",
"bundled": true, "bundled": true,
"dev": true, "dev": true
"optional": true
}, },
"safer-buffer": { "safer-buffer": {
"version": "2.1.2", "version": "2.1.2",
@@ -6045,7 +6043,6 @@
"version": "3.0.1", "version": "3.0.1",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"ansi-regex": "^2.0.0" "ansi-regex": "^2.0.0"
} }
@@ -6089,14 +6086,12 @@
"wrappy": { "wrappy": {
"version": "1.0.2", "version": "1.0.2",
"bundled": true, "bundled": true,
"dev": true, "dev": true
"optional": true
}, },
"yallist": { "yallist": {
"version": "3.0.3", "version": "3.0.3",
"bundled": true, "bundled": true,
"dev": true, "dev": true
"optional": true
} }
} }
}, },
@@ -10381,6 +10376,11 @@
} }
} }
}, },
"moment": {
"version": "2.29.1",
"resolved": "https://registry.npmmirror.com/moment/-/moment-2.29.1.tgz",
"integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ=="
},
"move-concurrently": { "move-concurrently": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz",

View File

@@ -25,6 +25,7 @@
"gulp-replace": "0.6.1", "gulp-replace": "0.6.1",
"gulp-shell": "0.6.5", "gulp-shell": "0.6.5",
"lodash": "4.17.5", "lodash": "4.17.5",
"moment": "^2.29.1",
"node-sass": "^4.14.1", "node-sass": "^4.14.1",
"npm": "^6.9.0", "npm": "^6.9.0",
"sass-loader": "6.0.6", "sass-loader": "6.0.6",

BIN
src/assets/img/1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

BIN
src/assets/img/2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

BIN
src/assets/img/bg.jpeg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

BIN
src/assets/img/board/1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 720 KiB

BIN
src/assets/img/board/2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

View File

@@ -0,0 +1,139 @@
<template>
<div class="mod-demo-echarts">
<el-row :gutter="20">
<el-col :span="24">
<el-card>
<div :id="'J_chartLineBox' + id" class="chart-box"></div>
</el-card>
</el-col>
</el-row>
</div>
</template>
<script>
import * as echarts from 'echarts'
export default {
props: {
id: {
type: Number,
default: 1
},
showId: {
type: Number,
default: 0
},
name: {
type: String,
default: ''
},
dataList: {
type: Array,
default: () => {
return []
}
},
lastDataList: {
type: Array,
default: () => {
return []
}
}
},
data () {
return {
chartLine: null
}
},
watch: {
showId: function (v) {
if (v === this.id) {
this.initChartLine()
}
}
},
mounted () {
this.initChartLine()
},
activated () {
// 由于给echart添加了resize事件, 在组件激活时需要重新resize绘画一次, 否则出现空白bug
if (this.chartLine) {
this.chartLine.resize()
}
},
methods: {
// 折线图
initChartLine () {
if (this.chartLine) {
this.chartLine.dispose()
}
var option = {
title: {
text: this.name
},
tooltip: {
trigger: 'axis'
},
legend: {
data: [ '当前', '上一个单位' ]
},
grid: {
left: '3%',
right: '4%',
bottom: '3%',
containLabel: true
},
xAxis: {
type: 'category',
boundaryGap: false,
data: this.dataList.map(item => {
return item.time
})
},
yAxis: {
type: 'value'
},
series: [
{
name: '当前',
type: 'line',
data: this.dataList.map(item => {
return item.value
})
},
{
name: '上一个单位',
type: 'line',
data: this.lastDataList.map(item => {
return item.value
})
}
]
}
this.chartLine = echarts.init(document.getElementById('J_chartLineBox' + this.id))
this.chartLine.setOption(option)
window.addEventListener('resize', () => {
this.chartLine.resize()
})
}
}
}
</script>
<style lang="scss" scoped>
.mod-demo-echarts {
> .el-alert {
margin-bottom: 10px;
}
> .el-row {
margin-top: -10px;
margin-bottom: -10px;
.el-col {
padding-top: 10px;
padding-bottom: 10px;
}
}
.chart-box {
min-height: 300px;
}
}
</style>

View File

@@ -0,0 +1,355 @@
<template>
<div :id="id" :class="className" :style="{ height: height, width: width }" />
</template>
<script>
import * as echarts from 'echarts'
import resize from './mixins/resize'
import moment from 'moment'
export default {
mixins: [resize],
props: {
className: {
type: String,
default: 'chart'
},
id: {
type: String,
default: 'MixChart'
},
showId: {
type: Number,
default: 0
},
width: {
type: String,
default: '200px'
},
height: {
type: String,
default: '200px'
},
title: {
type: String,
default: 'Mix-Chart'
},
titleFooter: {
type: String,
default: ''
},
titleHeader: {
type: String,
default: ''
},
dataList: {
type: Array,
default: () => {
return []
}
},
lastDataList: {
type: Array,
default: () => {
return []
}
},
chartType: {
type: Array,
default: () => {
return []
}
}
},
data () {
return {
chart: null,
series: []
}
},
beforeDestroy () {
if (!this.chart) {
return
}
this.chart.dispose()
this.chart = null
},
watch: {
dataList: {
handler (val) {
if (val) {
this.series = []
if (this.chartType.indexOf('柱状') >= 0) {
this.series.push({
name: this.title + 'bar',
type: 'bar',
barMaxWidth: 35,
barGap: '10%',
color: '#5AD8A6',
colorBy: 'data',
label: {
show: true,
position: 'top',
formatter (p) {
return p.value > 0 ? p.value : ''
}
},
data: this.dataList.map(item => {
return item.value
})
})
}
if (this.chartType.indexOf('折线') >= 0) {
this.series.push({
name: this.title + 'line',
type: 'line',
symbolSize: 10,
symbol: 'circle',
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
})
})
}
this.initChart()
}
},
deep: true
},
showId: {
handler () {
this.initChart()
}
},
chartType: {
handler (val) {
console.log(val)
if (val.length) {
this.series = []
if (val.indexOf('柱状') >= 0) {
this.series.push({
name: this.title + 'bar',
type: 'bar',
barMaxWidth: 35,
barGap: '10%',
color: '#5AD8A6',
colorBy: 'data',
label: {
show: true,
position: 'top',
formatter (p) {
return p.value > 0 ? p.value : ''
}
},
data: this.dataList.map(item => {
return item.value
})
})
}
if (val.indexOf('折线') >= 0) {
this.series.push({
name: this.title + 'line',
type: 'line',
symbolSize: 10,
symbol: 'circle',
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
})
})
}
this.initChart()
}
},
deep: true
}
},
mounted () {
this.series = []
if (this.chartType.indexOf('柱状') >= 0) {
this.series.push({
name: this.title + 'bar',
type: 'bar',
barMaxWidth: 35,
barGap: '10%',
color: '#5AD8A6',
colorBy: 'data',
label: {
show: true,
position: 'top',
formatter (p) {
return p.value > 0 ? p.value : ''
}
},
data: this.dataList.map(item => {
return item.value
})
})
}
if (this.chartType.indexOf('折线') >= 0) {
this.series.push({
name: this.title + 'line',
type: 'line',
symbolSize: 10,
symbol: 'circle',
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
})
})
}
this.initChart()
},
methods: {
initChart () {
if (this.chart) {
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,
x: '10',
top: '10',
fontSize: '18',
subtextStyle: {
color: '#90979c',
fontSize: '16'
}
},
tooltip: {
trigger: 'axis',
axisPointer: {
textStyle: {
color: '#fff'
}
}
},
grid: {
left: '5%',
right: '5%',
borderWidth: 0,
top: 100,
bottom: 100,
textStyle: {
color: '#fff'
}
},
legend: {
x: 20,
top: 55,
textStyle: {
color: '#90979c'
},
data: this.series.map(item => {
console.log(item)
return this.title + item.type
})
},
calculable: true,
xAxis: [
{
type: 'category',
axisLine: {
lineStyle: {
color: '#90979c'
}
},
splitLine: {
show: false
},
axisTick: {
show: false
},
splitArea: {
show: false
},
axisLabel: {
interval: 0,
rotate: 45
},
data: xData
}
],
yAxis: [
{
type: 'value',
// splitLine: {
// show: false
// },
axisLine: {
lineStyle: {
color: '#90979c'
}
},
axisTick: {
show: false
},
axisLabel: {
interval: 0
},
splitArea: {
show: false
}
}
],
dataZoom: [
{
show: true,
height: 30,
xAxisIndex: [0],
bottom: 10,
start: 0,
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: {
color: '#d3dee5'
},
textStyle: {
color: '#fff'
},
borderColor: '#90979c'
},
{
type: 'inside',
show: true,
height: 15,
start: 1,
end: 35
}
],
series: this.series
})
}
}
}
</script>

View File

@@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1646463566954" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2063" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M512 967.111111c-250.311111 0-455.111111-204.8-455.111111-455.111111s204.8-455.111111 455.111111-455.111111 455.111111 204.8 455.111111 455.111111-204.8 455.111111-455.111111 455.111111z m0-56.888889c221.866667 0 398.222222-176.355556 398.222222-398.222222s-176.355556-398.222222-398.222222-398.222222-398.222222 176.355556-398.222222 398.222222 176.355556 398.222222 398.222222 398.222222z" fill="#ff0000" p-id="2064"></path><path d="M341.333333 341.333333h341.333334v341.333334H341.333333z" fill="#ff0000" p-id="2065"></path></svg>

After

Width:  |  Height:  |  Size: 910 B

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<svg width="20px" height="18px" viewBox="0 0 20 18" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <svg width="20px" height="18px" viewBox="0 0 20 18" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- Generator: Sketch 60 (88103) - https://sketch.com --> <!-- Generator: Sketch 60 (88103) - https://sketch.com -->
<title>outdent</title> <title></title>
<desc>Created with Sketch.</desc> <desc>Created with Sketch.</desc>
<g id="登录页面" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" opacity="0.649999976"> <g id="登录页面" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" opacity="0.649999976">
<g id="进工业炉加工_录入托盘标识卡信息" transform="translate(-370.000000, -23.000000)" fill="#000000" fill-rule="nonzero"> <g id="进工业炉加工_录入托盘标识卡信息" transform="translate(-370.000000, -23.000000)" fill="#000000" fill-rule="nonzero">

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<svg width="18px" height="18px" viewBox="0 0 18 18" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <svg width="18px" height="18px" viewBox="0 0 18 18" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- Generator: Sketch 60 (88103) - https://sketch.com --> <!-- Generator: Sketch 60 (88103) - https://sketch.com -->
<title>出库on</title> <title>出库</title>
<desc>Created with Sketch.</desc> <desc>Created with Sketch.</desc>
<defs> <defs>
<linearGradient x1="50%" y1="-35.9917859%" x2="50%" y2="100%" id="linearGradient-1"> <linearGradient x1="50%" y1="-35.9917859%" x2="50%" y2="100%" id="linearGradient-1">

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<svg width="22px" height="22px" viewBox="0 0 22 22" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <svg width="22px" height="22px" viewBox="0 0 22 22" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- Generator: Sketch 60 (88103) - https://sketch.com --> <!-- Generator: Sketch 60 (88103) - https://sketch.com -->
<title>编组 13</title> <title>总电流</title>
<desc>Created with Sketch.</desc> <desc>Created with Sketch.</desc>
<g id="登录页面" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g id="登录页面" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="能源管理/用能源分析" transform="translate(-385.000000, -370.000000)" fill-rule="nonzero"> <g id="能源管理/用能源分析" transform="translate(-385.000000, -370.000000)" fill-rule="nonzero">

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<svg width="22px" height="22px" viewBox="0 0 22 22" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <svg width="22px" height="22px" viewBox="0 0 22 22" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- Generator: Sketch 60 (88103) - https://sketch.com --> <!-- Generator: Sketch 60 (88103) - https://sketch.com -->
<title>编组 7</title> <title>总电量</title>
<desc>Created with Sketch.</desc> <desc>Created with Sketch.</desc>
<g id="登录页面" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g id="登录页面" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="能源管理/用能源分析" transform="translate(-385.000000, -239.000000)"> <g id="能源管理/用能源分析" transform="translate(-385.000000, -239.000000)">

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<svg width="14px" height="14px" viewBox="0 0 14 14" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <svg width="14px" height="14px" viewBox="0 0 14 14" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- Generator: Sketch 60 (88103) - https://sketch.com --> <!-- Generator: Sketch 60 (88103) - https://sketch.com -->
<title>Shape</title> <title>新建</title>
<desc>Created with Sketch.</desc> <desc>Created with Sketch.</desc>
<g id="登录页面" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g id="登录页面" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="进工业炉加工_录入托盘标识卡信息" transform="translate(-1840.000000, -90.000000)" fill="#FFFFFF"> <g id="进工业炉加工_录入托盘标识卡信息" transform="translate(-1840.000000, -90.000000)" fill="#FFFFFF">

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<svg width="14px" height="12px" viewBox="0 0 14 12" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <svg width="14px" height="12px" viewBox="0 0 14 12" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- Generator: Sketch 60 (88103) - https://sketch.com --> <!-- Generator: Sketch 60 (88103) - https://sketch.com -->
<title>编组</title> <title>日历</title>
<desc>Created with Sketch.</desc> <desc>Created with Sketch.</desc>
<g id="组件" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" fill-opacity="0.5"> <g id="组件" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" fill-opacity="0.5">
<g id="select/时间_开始" transform="translate(-194.000000, -9.000000)" fill="#000000"> <g id="select/时间_开始" transform="translate(-194.000000, -9.000000)" fill="#000000">

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 2.8 KiB

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<svg width="11px" height="6px" viewBox="0 0 11 6" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <svg width="11px" height="6px" viewBox="0 0 11 6" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- Generator: Sketch 60 (88103) - https://sketch.com --> <!-- Generator: Sketch 60 (88103) - https://sketch.com -->
<title>箭头 右</title> <title>更多</title>
<desc>Created with Sketch.</desc> <desc>Created with Sketch.</desc>
<g id="登录页面" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g id="登录页面" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="进工业炉加工_录入托盘标识卡信息" transform="translate(-1882.000000, -29.000000)" fill="#000000" fill-rule="nonzero"> <g id="进工业炉加工_录入托盘标识卡信息" transform="translate(-1882.000000, -29.000000)" fill="#000000" fill-rule="nonzero">

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<svg width="15px" height="14px" viewBox="0 0 15 14" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <svg width="15px" height="14px" viewBox="0 0 15 14" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- Generator: Sketch 60 (88103) - https://sketch.com --> <!-- Generator: Sketch 60 (88103) - https://sketch.com -->
<title>编组 33</title> <title>执行</title>
<desc>Created with Sketch.</desc> <desc>Created with Sketch.</desc>
<g id="组件" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g id="组件" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="icon/界面内/维护开始" transform="translate(-1.000000, -1.000000)"> <g id="icon/界面内/维护开始" transform="translate(-1.000000, -1.000000)">

Before

Width:  |  Height:  |  Size: 5.2 KiB

After

Width:  |  Height:  |  Size: 5.1 KiB

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<svg width="15px" height="14px" viewBox="0 0 15 14" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <svg width="15px" height="14px" viewBox="0 0 15 14" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- Generator: Sketch 60 (88103) - https://sketch.com --> <!-- Generator: Sketch 60 (88103) - https://sketch.com -->
<title>编组 32</title> <title>维护结束</title>
<desc>Created with Sketch.</desc> <desc>Created with Sketch.</desc>
<g id="组件" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g id="组件" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="icon/界面内/维护结束" transform="translate(-1.000000, -1.000000)"> <g id="icon/界面内/维护结束" transform="translate(-1.000000, -1.000000)">

Before

Width:  |  Height:  |  Size: 6.0 KiB

After

Width:  |  Height:  |  Size: 6.0 KiB

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<svg width="14px" height="14px" viewBox="0 0 14 14" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <svg width="14px" height="14px" viewBox="0 0 14 14" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- Generator: Sketch 60 (88103) - https://sketch.com --> <!-- Generator: Sketch 60 (88103) - https://sketch.com -->
<title>常用购票人编辑32</title> <title>修改</title>
<desc>Created with Sketch.</desc> <desc>Created with Sketch.</desc>
<g id="组件" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g id="组件" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="icon/界面内/编辑" transform="translate(-1.000000, -1.000000)" fill-rule="nonzero"> <g id="icon/界面内/编辑" transform="translate(-1.000000, -1.000000)" fill-rule="nonzero">

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<svg width="20px" height="20px" viewBox="0 0 20 20" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <svg width="20px" height="20px" viewBox="0 0 20 20" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- Generator: Sketch 60 (88103) - https://sketch.com --> <!-- Generator: Sketch 60 (88103) - https://sketch.com -->
<title>3.1 设置</title> <title>设置</title>
<desc>Created with Sketch.</desc> <desc>Created with Sketch.</desc>
<g id="登录页面" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g id="登录页面" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="进工业炉加工_录入托盘标识卡信息" transform="translate(-1744.000000, -22.000000)" fill="#000000" fill-rule="nonzero"> <g id="进工业炉加工_录入托盘标识卡信息" transform="translate(-1744.000000, -22.000000)" fill="#000000" fill-rule="nonzero">

Before

Width:  |  Height:  |  Size: 5.0 KiB

After

Width:  |  Height:  |  Size: 5.0 KiB

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<svg width="14px" height="12px" viewBox="0 0 14 12" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <svg width="14px" height="12px" viewBox="0 0 14 12" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- Generator: Sketch 60 (88103) - https://sketch.com --> <!-- Generator: Sketch 60 (88103) - https://sketch.com -->
<title>详情备份</title> <title>详情</title>
<desc>Created with Sketch.</desc> <desc>Created with Sketch.</desc>
<g id="组件" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g id="组件" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="icon/界面内/详情" transform="translate(-1.000000, -2.000000)" fill-rule="nonzero"> <g id="icon/界面内/详情" transform="translate(-1.000000, -2.000000)" fill-rule="nonzero">

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<svg width="20px" height="20px" viewBox="0 0 20 20" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <svg width="20px" height="20px" viewBox="0 0 20 20" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- Generator: Sketch 60 (88103) - https://sketch.com --> <!-- Generator: Sketch 60 (88103) - https://sketch.com -->
<title>生产和加工情况</title> <title>进工业炉加工</title>
<desc>Created with Sketch.</desc> <desc>Created with Sketch.</desc>
<defs> <defs>
<linearGradient x1="50%" y1="0%" x2="50%" y2="100%" id="linearGradient-1"> <linearGradient x1="50%" y1="0%" x2="50%" y2="100%" id="linearGradient-1">

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 3.5 KiB

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<svg width="22px" height="22px" viewBox="0 0 22 22" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <svg width="22px" height="22px" viewBox="0 0 22 22" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- Generator: Sketch 60 (88103) - https://sketch.com --> <!-- Generator: Sketch 60 (88103) - https://sketch.com -->
<title>编组 15</title> <title>追加加工</title>
<desc>Created with Sketch.</desc> <desc>Created with Sketch.</desc>
<defs> <defs>
<linearGradient x1="50%" y1="0.100295608%" x2="50%" y2="100%" id="linearGradient-1"> <linearGradient x1="50%" y1="0.100295608%" x2="50%" y2="100%" id="linearGradient-1">

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 2.8 KiB

View File

@@ -2,7 +2,7 @@
* @Author: zwq * @Author: zwq
* @Date: 2021-11-15 08:20:28 * @Date: 2021-11-15 08:20:28
* @LastEditors: zwq * @LastEditors: zwq
* @LastEditTime: 2021-12-17 14:51:08 * @LastEditTime: 2022-09-06 15:26:36
* @Description: * @Description:
*/ */
/** /**
@@ -23,7 +23,8 @@ const _import = require('./import-' + process.env.NODE_ENV)
// 全局路由(无需嵌套上左右整体布局) // 全局路由(无需嵌套上左右整体布局)
const globalRoutes = [ const globalRoutes = [
{ path: '/404', component: _import('common/404'), name: '404', meta: { title: '404未找到' } }, { path: '/404', component: _import('common/404'), name: '404', meta: { title: '404未找到' } },
{ path: '/login', component: _import('common/login'), name: 'login', meta: { title: '登录' } } { path: '/login', component: _import('common/login'), name: 'login', meta: { title: '登录' } },
{ path: '/board', component: _import('common/board'), name: 'board', meta: { title: '车间生产看板', isTab: false } }
] ]
// 主入口路由(需嵌套上左右整体布局) // 主入口路由(需嵌套上左右整体布局)
@@ -39,7 +40,9 @@ const mainRoutes = {
// 2. iframeUrl: 是否通过iframe嵌套展示内容, '以http[s]://开头': 是, '': 否 // 2. iframeUrl: 是否通过iframe嵌套展示内容, '以http[s]://开头': 是, '': 否
// 提示: 如需要通过iframe嵌套展示内容, 但不通过tab打开, 请自行创建组件使用iframe处理! // 提示: 如需要通过iframe嵌套展示内容, 但不通过tab打开, 请自行创建组件使用iframe处理!
{ path: '/home', component: _import('common/home'), name: 'home', meta: { title: '首页', isTab: true } }, { path: '/home', component: _import('common/home'), name: 'home', meta: { title: '首页', isTab: true } },
{ path: '/orderProcess', component: _import('common/order-process'), name: 'orderProcess', meta: { title: '订单加工', isTab: true } }, { path: '/Problem', component: _import('common/Problem'), name: 'Problem', meta: { title: '常见问题汇总', isTab: true } },
{ path: '/orderProcess', component: _import('common/order-process'), name: 'orderProcess', meta: { title: '单步骤任务', isTab: true } },
{ path: '/orderAuto', component: _import('common/order-auto'), name: 'orderAuto', meta: { title: '自动任务', isTab: true } },
{ path: '/exWarehouse', component: _import('common/ex-warehouse'), name: 'exWarehouse', meta: { title: '货物出库', isTab: true } }, { path: '/exWarehouse', component: _import('common/ex-warehouse'), name: 'exWarehouse', meta: { title: '货物出库', isTab: true } },
{ path: '/addProcess', component: _import('common/add-process'), name: 'addProcess', meta: { title: '追加加工', isTab: true } }, { path: '/addProcess', component: _import('common/add-process'), name: 'addProcess', meta: { title: '追加加工', isTab: true } },
{ path: '/theme', component: _import('common/theme'), name: 'theme', meta: { title: '主题', isTab: true } }, { path: '/theme', component: _import('common/theme'), name: 'theme', meta: { title: '主题', isTab: true } },
@@ -53,28 +56,31 @@ const mainRoutes = {
{ path: '/basic-alarmInfo', component: _import('basic/alarmInfo'), name: 'basic-alarmInfo', meta: { title: '报警基础信息', isTab: true } }, { path: '/basic-alarmInfo', component: _import('basic/alarmInfo'), name: 'basic-alarmInfo', meta: { title: '报警基础信息', isTab: true } },
{ path: '/order-current-order', component: _import('order/current-order'), name: 'order-current-order', meta: { title: '当前订单列表', isTab: true } }, { path: '/order-current-order', component: _import('order/current-order'), name: 'order-current-order', meta: { title: '当前订单列表', isTab: true } },
{ path: '/order-current-order-task', component: _import('order/components/current-order-task'), name: 'order-current-order-task', meta: { title: '当前订单任务详情', isTab: true } }, { path: '/order-current-order-task', component: _import('order/components/current-order-task'), name: 'order-current-order-task', meta: { title: '当前订单任务详情', isTab: true } },
{ path: '/order-current-task', component: _import('order/current-task'), name: 'order-current-task', meta: { title: '当前执行任务', isTab: true } }, { path: '/order-current-task', component: _import('order/current-task'), name: 'order-current-task', meta: { title: '当前任务列表', isTab: true } },
{ path: '/order-current-task-new', component: _import('order/current-task-new'), name: 'order-current-task-new', meta: { title: '任务列表', isTab: true } },
{ path: '/order-current-task-detail', component: _import('order/components/current-task-detail'), name: 'order-current-task-detail', meta: { title: '当前执行任务详情', isTab: true } }, { path: '/order-current-task-detail', component: _import('order/components/current-task-detail'), name: 'order-current-task-detail', meta: { title: '当前执行任务详情', isTab: true } },
{ path: '/report-kiln-alarm', component: _import('report/kiln-alarm'), name: 'report-kiln-alarm', meta: { title: '炉报警', isTab: true } }, { 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-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-order-history', component: _import('report/order-history'), name: 'report-order-history', meta: { title: '订单历史列表', 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-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', 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 } }, { path: '/report-task-history-detail', component: _import('report/components/task-history-detail'), name: 'report-task-history-detail', meta: { title: '执行任务历史详情', isTab: true } },
{ path: '/energy-sulfur-dioxide', component: _import('energy/sulfur-dioxide'), name: 'energy-sulfur-dioxide', meta: { title: '二氧化硫流量分析', isTab: true } }, { path: '/report-task-ele', component: _import('report/components/task-ele'), name: 'report-task-ele', meta: { title: '任务能源消耗' } }
{ path: '/energy-electric', component: _import('energy/electric'), name: 'energy-electric', meta: { title: '用电能源分析', isTab: true } }, // { path: '/energy-sulfur-dioxide', component: _import('energy/sulfur-dioxide'), name: 'energy-sulfur-dioxide', meta: { title: '二氧化硫流量分析', isTab: true } },
{ path: '/energy-kiln-electric', component: _import('energy/kiln-electric'), name: 'energy-kiln-electric', meta: { title: '窑炉用电分析', isTab: true } }, // { path: '/energy-electric', component: _import('energy/electric'), name: 'energy-electric', meta: { title: '用电能源分析', isTab: true } },
{ path: '/energy-ammonia', component: _import('energy/ammonia'), name: 'energy-ammonia', meta: { title: '氨气流量分析', isTab: true } }, // { path: '/energy-kiln-electric', component: _import('energy/kiln-electric'), name: 'energy-kiln-electric', meta: { title: '工业炉用电分析', isTab: true } },
{ path: '/energy-methanol', component: _import('energy/methanol'), name: 'energy-methanol', meta: { title: '甲醇流量分析', isTab: true } }, // { path: '/energy-ammonia', component: _import('energy/ammonia'), name: 'energy-ammonia', meta: { title: '氨气流量分析', isTab: true } },
{ path: '/energy-propane', component: _import('energy/propane'), name: 'energy-propane', meta: { title: '丙烷流量分析', isTab: true } }, // { path: '/energy-methanol', component: _import('energy/methanol'), name: 'energy-methanol', meta: { title: '甲醇流量分析', isTab: true } },
{ path: '/energy-nitrogen', component: _import('energy/nitrogen'), name: 'energy-nitrogen', meta: { title: '氮气流量分析', isTab: true } }, // { path: '/energy-propane', component: _import('energy/propane'), name: 'energy-propane', meta: { title: '丙烷流量分析', isTab: true } },
{ path: '/energy-electric-acquisition', component: _import('energy/electric-acquisition'), name: 'energy-electric-acquisition', meta: { title: '电能采集数据', isTab: true } }, // { path: '/energy-nitrogen', component: _import('energy/nitrogen'), name: 'energy-nitrogen', meta: { title: '氮气流量分析', isTab: true } },
{ path: '/energy-gas-acquisition', component: _import('energy/gas-acquisition'), name: 'energy-gas-acquisition', meta: { title: '用气采集数据', isTab: true } }, // { path: '/energy-electric-acquisition', component: _import('energy/electric-acquisition'), name: 'energy-electric-acquisition', meta: { title: '电能采集数据', isTab: true } },
{ path: '/energy-temperature-acquisition', component: _import('energy/temperature-acquisition'), name: 'energy-temperature-acquisition', meta: { title: '温度采集数据', isTab: true } }, // { path: '/energy-gas-acquisition', component: _import('energy/gas-acquisition'), name: 'energy-gas-acquisition', meta: { title: '用气采集数据', isTab: true } },
{ path: '/energy-process-temperature', component: _import('energy/process-temperature'), name: 'energy-process-temperature', meta: { title: '窑炉加工温度', isTab: true } }, // { path: '/energy-temperature-acquisition', component: _import('energy/temperature-acquisition'), name: 'energy-temperature-acquisition', meta: { title: '温度采集数据', isTab: true } },
{ path: '/energy-sump-temperature', component: _import('energy/sump-temperature'), name: 'energy-sump-temperature', meta: { title: '油槽温度', isTab: true } }, // { path: '/energy-process-temperature', component: _import('energy/process-temperature'), name: 'energy-process-temperature', meta: { title: '工业炉加工温度', isTab: true } },
{ path: '/energy-ammonia-analysis', component: _import('energy/ammonia-analysis'), name: 'energy-ammonia-analysis', meta: { title: '使用氮气分析', isTab: true } }, // { path: '/energy-sump-temperature', component: _import('energy/sump-temperature'), name: 'energy-sump-temperature', meta: { title: '油槽温度', isTab: true } },
{ path: '/energy-kiln-speed', component: _import('energy/kiln-speed'), name: 'energy-kiln-speed', meta: { title: '窑炉速度参数', isTab: true } } // { path: '/energy-ammonia-analysis', component: _import('energy/ammonia-analysis'), name: 'energy-ammonia-analysis', meta: { title: '使用氮气分析', isTab: true } },
// { path: '/energy-kiln-speed', component: _import('energy/kiln-speed'), name: 'energy-kiln-speed', meta: { title: '工业炉速度参数', isTab: true } }
], ],
beforeEnter (to, from, next) { beforeEnter (to, from, next) {
let token = Vue.cookie.get('token') let token = Vue.cookie.get('token')

View File

@@ -1,6 +1,12 @@
<template> <template>
<div class="mod-config"> <div class="mod-config">
<el-form style="display: flex; align-items: center; justify-content: right;" :inline="true" :model="dataForm" @keyup.enter.native="getDataList()"> <el-form style="display: flex; align-items: center; justify-content: right;" :inline="true" :model="dataForm" @keyup.enter.native="getDataList()">
<el-form-item>
<el-button size="small" type="primary" style="float:left" @click="open()">
<icon-svg class="iconClass" name="system"></icon-svg>
重置
</el-button>
</el-form-item>
<el-form-item> <el-form-item>
<!-- <el-select size="small" v-model="dataForm.paramKey" filterable placeholder="名称"> <!-- <el-select size="small" v-model="dataForm.paramKey" filterable placeholder="名称">
<el-option <el-option
@@ -51,6 +57,18 @@
prop="code" prop="code"
label="编码"> label="编码">
</el-table-column> </el-table-column>
<el-table-column
prop="status"
label="状态"
>
<template slot-scope="scope">
<span>{{
scope.row.status === 0
? "空闲"
: "占用"
}}</span>
</template>
</el-table-column>
<el-table-column <el-table-column
prop="vehicleAlias" prop="vehicleAlias"
label="缩写"> label="缩写">
@@ -120,6 +138,34 @@
this.getDataList() this.getDataList()
}, },
methods: { methods: {
open () {
this.$confirm('执行此操作前请确定当前没有任务在使用车辆!是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.$http({
url: this.$http.adornUrl('/vehicle/resetStatus'),
method: 'post'
}).then(({data}) => {
if (data && data.code === 0) {
this.$message({
message: '操作成功',
type: 'success',
duration: 1500,
onClose: () => {
this.getDataList()
}
})
}
})
}).catch(() => {
this.$message({
type: 'info',
message: '已取消操作'
})
})
},
// 获取数据列表 // 获取数据列表
getDataList () { getDataList () {
this.dataListLoading = true this.dataListLoading = true

View File

@@ -2,7 +2,7 @@
* @Author: zwq * @Author: zwq
* @Date: 2021-11-18 14:16:25 * @Date: 2021-11-18 14:16:25
* @LastEditors: gtz * @LastEditors: gtz
* @LastEditTime: 2021-12-13 17:05:54 * @LastEditTime: 2022-03-05 12:03:46
* @Description: * @Description:
--> -->
<template> <template>
@@ -14,13 +14,13 @@
<el-form-item label="工艺编码" prop="code"> <el-form-item label="工艺编码" prop="code">
<el-input v-model="dataForm.code" placeholder="工艺编码"></el-input> <el-input v-model="dataForm.code" placeholder="工艺编码"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="工艺号" prop="alarmClass"> <el-form-item label="工艺号" prop="craftCode">
<el-input v-model="dataForm.alarmClass" placeholder="工艺号"></el-input> <el-input v-model="dataForm.craftCode" placeholder="工艺号"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="对应PLC值" prop="alarmInfo"> <el-form-item label="对应PLC值" prop="plcValue">
<el-input v-model="dataForm.alarmInfo" placeholder="对应PLC值"></el-input> <el-input v-model="dataForm.plcValue" placeholder="对应PLC值"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="当前状态" prop="alarmInfo" <!-- <el-form-item label="当前状态" prop="alarmInfo"
><el-switch ><el-switch
v-model="dataForm.alarmInfo" v-model="dataForm.alarmInfo"
active-color="#13ce66" active-color="#13ce66"
@@ -29,9 +29,9 @@
inactive-value="0" inactive-value="0"
> >
</el-switch> </el-switch>
</el-form-item> </el-form-item> -->
<el-form-item label="说明" prop="remark"> <el-form-item label="说明" prop="content">
<el-input v-model="dataForm.remark" placeholder="说明"></el-input> <el-input v-model="dataForm.content" placeholder="说明"></el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
@@ -49,15 +49,18 @@
dataForm: { dataForm: {
id: '', id: '',
code: '', code: '',
alarmClass: '', content: '',
alarmInfo: '', plcValue: '',
remark: '' craftCode: ''
}, },
dataRule: { dataRule: {
code: [ code: [
{ required: true, message: '工艺编码不能为空', trigger: 'blur' } { required: true, message: '工艺编码不能为空', trigger: 'blur' }
], ],
alarmInfo: [ craftCode: [
{ required: true, message: '工艺号不能为空', trigger: 'blur' }
],
plcValue: [
{ required: true, message: '对应PLC值不能为空', trigger: 'blur' } { required: true, message: '对应PLC值不能为空', trigger: 'blur' }
] ]
}, },
@@ -73,7 +76,7 @@
this.formLoading = true this.formLoading = true
if (this.dataForm.id) { if (this.dataForm.id) {
this.$http({ this.$http({
url: this.$http.adornUrl(`/alarmBase/get`), url: this.$http.adornUrl(`/craftInfo/get`),
method: 'post', method: 'post',
data: this.$http.adornData({id}) data: this.$http.adornData({id})
}).then(({data}) => { }).then(({data}) => {
@@ -86,7 +89,7 @@
}) })
} else { } else {
this.$http({ this.$http({
url: this.$http.adornUrl(`/alarmBase/codeGenerator`), url: this.$http.adornUrl(`/craftInfo/codeGenerator`),
method: 'post', method: 'post',
data: this.$http.adornData() data: this.$http.adornData()
}).then(({data}) => { }).then(({data}) => {
@@ -105,13 +108,14 @@
this.$refs['dataForm'].validate((valid) => { this.$refs['dataForm'].validate((valid) => {
if (valid) { if (valid) {
this.$http({ this.$http({
url: this.$http.adornUrl(`/alarmBase/${!this.dataForm.id ? 'add' : 'update'}`), url: this.$http.adornUrl(`/craftInfo/${!this.dataForm.id ? 'add' : 'update'}`),
method: 'post', method: 'post',
data: this.$http.adornData({ data: this.$http.adornData({
'id': this.dataForm.id || undefined, 'id': this.dataForm.id || undefined,
'code': this.dataForm.code, 'code': this.dataForm.code,
'alarmClass': this.dataForm.alarmClass, 'content': this.dataForm.content,
'alarmInfo': this.dataForm.alarmInfo 'plcValue': this.dataForm.plcValue,
'craftCode': this.dataForm.craftCode
}) })
}).then(({data}) => { }).then(({data}) => {
if (data && data.code === 0) { if (data && data.code === 0) {

View File

@@ -44,7 +44,7 @@
label="添加时间"> label="添加时间">
</el-table-column> --> </el-table-column> -->
<el-table-column <el-table-column
prop="alarmClass" prop="craftCode"
label="工艺号"> label="工艺号">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
@@ -52,15 +52,15 @@
label="工艺编码"> label="工艺编码">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="alarmInfo" prop="plcValue"
label="对应PLC值"> label="对应PLC值">
</el-table-column> </el-table-column>
<el-table-column <!-- <el-table-column
prop="alarmInfo" prop="alarmInfo"
label="状态"> label="状态">
</el-table-column> </el-table-column> -->
<el-table-column <el-table-column
prop="alarmInfo" prop="content"
label="说明"> label="说明">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
@@ -124,7 +124,7 @@
getDataList () { getDataList () {
this.dataListLoading = true this.dataListLoading = true
this.$http({ this.$http({
url: this.$http.adornUrl('/alarmBase/page'), url: this.$http.adornUrl('/craftInfo/page'),
method: 'post', method: 'post',
data: this.$http.adornData({ data: this.$http.adornData({
'current': this.pageIndex, 'current': this.pageIndex,
@@ -168,7 +168,7 @@
type: 'warning' type: 'warning'
}).then(() => { }).then(() => {
this.$http({ this.$http({
url: this.$http.adornUrl('/alarmBase/delete'), url: this.$http.adornUrl('/craftInfo/delete'),
method: 'post', method: 'post',
data: this.$http.adornData({id}) data: this.$http.adornData({id})
}).then(({data}) => { }).then(({data}) => {

View File

@@ -0,0 +1,96 @@
<!--
* @Author: zwq
* @Date: 2021-11-18 14:16:25
* @LastEditors: zwq
* @LastEditTime: 2022-08-11 16:51:45
* @Description:
-->
<template>
<el-dialog title="新增" :visible.sync="visible">
<el-form
:model="dataForm"
:rules="dataRule"
ref="dataForm"
@keyup.enter.native="dataFormSubmit()"
label-width="80px"
>
<el-form-item label="问题" prop="question">
<el-input
type="textarea"
:rows="3"
v-model="dataForm.question"
placeholder="问题"
></el-input>
</el-form-item>
<el-form-item label="解答" prop="answer">
<el-input
type="textarea"
:rows="5"
v-model="dataForm.answer"
placeholder="解答"
></el-input>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="visible = false">取消</el-button>
<el-button type="primary" @click="dataFormSubmit()">确定</el-button>
</span>
</el-dialog>
</template>
<script>
export default {
data () {
return {
visible: false,
dataForm: {
question: '',
answer: ''
},
dataRule: {
question: [
{ required: true, message: '问题不能为空', trigger: 'blur' }
],
answer: [{ required: true, message: '解答不能为空', trigger: 'blur' }]
}
}
},
methods: {
init () {
this.visible = true
this.$nextTick(() => {
this.$refs['dataForm'].resetFields()
})
},
// 表单提交
dataFormSubmit () {
this.$refs['dataForm'].validate(valid => {
if (valid) {
this.$http({
url: this.$http.adornUrl('/questionAnswer/add'),
method: 'post',
data: this.$http.adornData({
question: this.dataForm.question,
answer: this.dataForm.answer
})
}).then(({ data }) => {
if (data && data.code === 0) {
this.$message({
message: '操作成功',
type: 'success',
duration: 1500,
onClose: () => {
this.visible = false
this.$emit('refreshDataList')
}
})
} else {
this.$message.error(data.msg)
}
})
}
})
}
}
}
</script>

View File

@@ -0,0 +1,106 @@
<!--
* @Author: zwq
* @Date: 2022-08-11 16:22:07
* @LastEditors: zwq
* @LastEditTime: 2022-08-11 16:48:39
* @Description:
-->
<template>
<div class="mod-config">
<el-form
:inline="true"
style="display: flex; align-items: center; justify-content: right;"
@keyup.enter.native="getDataList()"
>
<el-form-item>
<el-input
size="small"
v-model="key"
placeholder="搜索问题"
clearable
></el-input>
</el-form-item>
<el-form-item>
<el-button size="small" @click="getDataList()">
<icon-svg class="iconClass" name="sousuo"></icon-svg>
查询
</el-button>
<el-button size="small" type="primary" @click="addOrUpdateHandle()">
<icon-svg class="iconClass" name="新建"></icon-svg>
新增
</el-button>
</el-form-item>
</el-form>
<el-collapse v-model="activeNames">
<el-collapse-item
v-for="(item, index) in problemArr"
:key="index"
:name="index"
>
<template slot="title">
<span style="color:#409EFF">
{{ item.question }}<i class="el-icon-question"></i>
</span>
</template>
<div>
{{ item.answer }}
</div>
</el-collapse-item>
</el-collapse>
<!-- 弹窗, 新增 / 修改 -->
<problem-add
v-if="addOrUpdateVisible"
ref="addOrUpdate"
@refreshDataList="getDataList"
></problem-add>
</div>
</template>
<script>
import ProblemAdd from './Problem-add'
export default {
data () {
return {
key: '',
addOrUpdateVisible: false,
activeNames: [],
problemArr: []
}
},
components: {
ProblemAdd
},
created () {
this.getDataList()
},
methods: {
getDataList () {
this.$http({
url: this.$http.adornUrl('/questionAnswer/page'),
method: 'post',
data: this.$http.adornData({
current: 1,
size: 200,
key: this.key
// paramKey: this.dataForm.paramKey
})
}).then(({ data }) => {
if (data && data.code === 0) {
this.problemArr = data.data.records
} else {
this.problemArr = []
}
})
},
// 新增
addOrUpdateHandle () {
this.addOrUpdateVisible = true
this.$nextTick(() => {
this.$refs.addOrUpdate.init()
})
}
}
}
</script>
<style></style>

View File

@@ -13,7 +13,7 @@
<el-button style="margin-left:10px" type="primary" @click="getPoint(0)">{{startBtnName}}</el-button> <el-button style="margin-left:10px" type="primary" @click="getPoint(0)">{{startBtnName}}</el-button>
</el-form-item> </el-form-item>
<el-form-item style="margin-left:2%"> <el-form-item style="margin-left:2%">
: 工业 :
<el-button style="margin-left:10px" type="primary" @click="getPoint(1)">{{kilnBtnName}}</el-button> <el-button style="margin-left:10px" type="primary" @click="getPoint(1)">{{kilnBtnName}}</el-button>
</el-form-item> </el-form-item>
<el-form-item style="margin-left:10%"> <el-form-item style="margin-left:10%">
@@ -115,7 +115,7 @@
data () { data () {
return { return {
startBtnName: '选择起点', startBtnName: '选择起点',
kilnBtnName: '选择炉', kilnBtnName: '选择工业炉',
dataList: [], dataList: [],
processType: 1, processType: 1,
pageIndex: 1, pageIndex: 1,
@@ -198,9 +198,9 @@
message: '请选择任务起点', message: '请选择任务起点',
type: 'warning' type: 'warning'
}) })
} else if (this.kilnBtnName === '选择炉') { } else if (this.kilnBtnName === '选择工业炉') {
this.$message({ this.$message({
message: '请选择炉', message: '请选择工业炉',
type: 'warning' type: 'warning'
}) })
} }

View File

@@ -0,0 +1,52 @@
<!--
* @Author: zwq
* @Date: 2022-03-07 15:31:13
* @LastEditors: zwq
* @LastEditTime: 2022-07-05 16:11:42
* @Description:
-->
<template>
<div class="main-body">
<el-table
size='mini'
:data="tableData"
:header-cell-style="{background:'#082c34',color:'#acb9be',padding:'0px'}"
:cell-style="{background:'#04222d',color:'#acb9be',padding:'5px 0px'}"
style="width: 100%"
>
<el-table-column type="index" label="序号" width="30" align="center"> </el-table-column>
<el-table-column prop="customer" label="客户名称" align="center"> </el-table-column>
<el-table-column prop="orderNo" label="订单编号" align="center"> </el-table-column>
<el-table-column prop="quantity" label="数量" width="50" align="center"> </el-table-column>
<el-table-column prop="productName" label="产品名称" align="center"> </el-table-column>
<el-table-column prop="weight" label="重量" width="50" align="center"> </el-table-column>
</el-table>
</div>
</template>
<script>
export default {
name: 'board-part-table',
components: {},
props: {
tableData: {
type: Array,
default: []
}
},
data () {
return {}
},
created () {},
methods: {}
}
</script>
<style lang="scss" scoped>
.main-body{
margin: 5px;
}
.main-body /deep/ .cell{
padding: 0px;
}
</style>

View File

@@ -0,0 +1,150 @@
<!--
* @Author: zwq
* @Date: 2022-03-07 15:31:13
* @LastEditors: zwq
* @LastEditTime: 2022-07-12 11:31:05
* @Description:
-->
<template>
<div class="container">
<div class="title">
<div class="tipDiv"></div>
加工单信息
</div>
<div class="main-body">
<div class="main-header">
<el-row :gutter="8">
<el-col :span="8">
<div class="front">
<img
:src="cdnUrl + '/static/img/lu/'+imgUrl+'.png'"
style="display:block;margin:auto"
/>炉号
</div>
</el-col>
<el-col :span="8">
<el-row>
<div class="mid top-info">
{{wbData.taskCode}}
<div style="color: #fff;margin: 5px 0;">加工单编号</div>
</div>
</el-row>
<el-row>
<div class="mid bottom-info">
{{wbData.plcValue}}
<div style="color: #fff;margin: 5px 0;">工艺号</div>
</div>
</el-row>
</el-col>
<el-col :span="8">
<div class="back">
<el-progress
:percentage="wbData.completeness"
:stroke-width="8"
:show-text="false"
></el-progress>
<div style="margin: 5px 0;">{{ wbData.remainingTime}}</div>
<div style="color: #fff;font-size:14px">剩余时间</div>
</div>
</el-col>
</el-row>
</div>
<div class="main-table">
<div class="tipDiv"></div>
标识信息卡
</div>
<part-table :tableData="wbData.currTaskDetVoList"></part-table>
</div>
</div>
</template>
<script>
import partTable from './board-part-table.vue'
export default {
components: {partTable},
props: {
wbData: {
type: Object,
default: () => {}
},
imgUrl: {
type: String,
default: 'BMA1'
}
},
data () {
return {
cdnUrl: ''
}
},
created () {
this.cdnUrl = window.SITE_CONFIG.cdnUrl
},
mounted () {
},
methods: {
}
}
</script>
<style lang="scss" scoped>
.container{
width: 30%;
}
.title {
color: #ffffff;
font-size: 22px;
margin: 8px 0;
.tipDiv {
border-radius: 3px;
width: 8px;
height: 22px;
margin-right: 20px;
background-color: #54fdef;
float: left;
}
}
.main-body{
background-color: #04242d;
.main-header {
.front {
min-height: 136px;
border-radius: 4px;
padding: 6px;
color: #ffffff;
text-align: center;
background: linear-gradient(to bottom, #133e46 0%, #04202c 100%);
}
.mid {
min-height: 64px;
border-radius: 4px;
margin-bottom: 5px;
padding: 6px;
color: #48dcd1;
text-align: center;
background: linear-gradient(to bottom, #0b2c36 0%, #04202c 100%);
}
.back {
min-height: 136px;
padding: 25px 5px;
text-align: center;
font-size: 30px;
color: #48dcd1;
}
.back /deep/ .el-progress-bar__inner {
background: linear-gradient(to right, #62fbb9 0%, #fdd64a 100%);
}
}
.main-table{
color: #ffffff;
margin: 10px;
.tipDiv{
width: 8px;
height: 8px;
margin: 3px 10px 3px 0;
background-color: #54fdef;
float: left;
}
}
}
</style>

103
src/views/common/board.vue Normal file
View File

@@ -0,0 +1,103 @@
<!--
* @Author: zwq
* @Date: 2022-03-07 15:31:13
* @LastEditors: zwq
* @LastEditTime: 2022-07-08 08:36:01
* @Description:
-->
<template>
<div class="main-body">
<div class="container-title">
浙江求精科技车间生产看板
</div>
<div class="container-body">
<board v-for="(item,index) in wbData" :key="index" :wbData="item" :imgUrl="item.kilnCode"></board>
</div>
</div>
</template>
<script>
import board from './board-part'
export default {
name: 'Board',
components: { board },
data () {
return {
websock: '',
url: '',
wbData: []
}
},
created () {
this.url = window.SITE_CONFIG.wbUrl
this.initWebSocket()
},
destroyed () {
// 页面销毁时关闭ws连接
if (this.websock) {
this.websock.close() // 关闭websocket
}
},
methods: {
initWebSocket () {
// 初始化weosocket
const path = `ws://${this.url}/qj/websocket/2`
this.websock = new WebSocket(path)
this.websock.onmessage = this.websocketonmessage
this.websock.onopen = this.websocketonopen
this.websock.onerror = this.websocketonerror
this.websock.onclose = this.websocketclose
},
websocketonopen () {
// 连接建立之后执行send方法发送数据
this.websocketsend(JSON.stringify('2'))
},
websocketonerror () {
// 连接建立失败重连
this.initWebSocket()
},
websocketonmessage (e) {
// 数据接收
this.wbData = JSON.parse(e.data)
console.log(this.wbData)
},
websocketsend (val) {
// 数据发送
this.websock.send(val)
},
websocketclose (e) {
// 关闭
console.log('断开连接', e)
}
}
}
</script>
<style lang="scss" scoped>
.main-body {
min-height: 100vh;
width: 100%;
background: url(~@/assets/img/board/1.png) center no-repeat;
background-size: cover;
overflow: hidden;
.container-title {
width: 100%;
height: 80px;
background: url(~@/assets/img/board/2.png) no-repeat;
background-size: 100% 100%;
color: #00fff0;
font-size: 28px;
line-height: 80px;
text-align: center;
}
.container-body {
display: flex;
margin: auto;
flex-wrap: wrap;
flex-direction: row;
justify-content: space-around;
}
}
</style>

View File

@@ -1,8 +1,8 @@
<!-- <!--
* @Author: zwq * @Author: zwq
* @Date: 2021-11-17 15:49:18 * @Date: 2021-11-17 15:49:18
* @LastEditors: zwq * @LastEditors: gtz
* @LastEditTime: 2021-11-17 15:58:31 * @LastEditTime: 2021-12-21 10:23:09
* @Description: * @Description:
--> -->
<template> <template>
@@ -11,7 +11,9 @@
:visible.sync="visible"> :visible.sync="visible">
<el-table <el-table
:data="dataList" :data="dataList"
border v-loading="formLoading"
:stripe="true"
:header-cell-style="{background:'#eef1f6',color:'#606266',height: '56px'}"
style="width: 100%;"> style="width: 100%;">
<el-table-column <el-table-column
type="index" type="index"
@@ -21,19 +23,19 @@
width="50"> width="50">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="id" prop="idenCardNum"
header-align="center" header-align="center"
align="center" align="center"
label="标识卡"> label="标识卡">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="id1" prop="customer"
header-align="center" header-align="center"
align="center" align="center"
label="客户信息"> label="客户信息">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="number" prop="quantity"
header-align="center" header-align="center"
align="center" align="center"
label="数量"> label="数量">
@@ -56,24 +58,27 @@
data () { data () {
return { return {
visible: false, visible: false,
dataList: [] dataList: [],
formLoading: false
} }
}, },
methods: { methods: {
init (id) { init (id) {
this.visible = true this.visible = true
this.formLoading = true
this.$nextTick(() => { this.$nextTick(() => {
if (id) { if (id) {
this.$http({ this.$http({
url: this.$http.adornUrl(`/sys/config/info/${this.dataForm.id}`), url: this.$http.adornUrl(`/outStock/get`),
method: 'get', method: 'post',
params: this.$http.adornParams() data: this.$http.adornData({ id })
}).then(({data}) => { }).then(({data}) => {
if (data && data.code === 0) { if (data && data.code === 0) {
this.dataForm.paramKey = data.config.paramKey this.dataList = data.data
this.dataForm.paramValue = data.config.paramValue } else {
this.dataForm.remark = data.config.remark this.$message.error(data.msg)
} }
this.formLoading = false
}) })
} }
}) })

View File

@@ -2,49 +2,45 @@
* @Author: zwq * @Author: zwq
* @Date: 2021-11-15 15:17:30 * @Date: 2021-11-15 15:17:30
* @LastEditors: zwq * @LastEditors: zwq
* @LastEditTime: 2021-11-17 16:07:04 * @LastEditTime: 2022-07-13 09:51:46
* @Description: * @Description:
--> -->
<template> <template>
<div> <div v-loading="dataListLoading">
<div class="mainDiv" style="margin:10px 0 100px"> <el-card class="base-container" style="min-height: 300px">
<div class="flexDiv"> <el-card
<div class="wareBox"
class="wareBox" shadow="hover"
:class="[ :class="[
count > Math.round(Math.random() * 10) ? 'enableBox' : 'disableBox', item.empty ? 'disableBox' : 'enableBox',
{ active: count === isActive } { active: item.locationId === isActive }
]" ]"
@click="selectBox(count)" :disabled="item.empty"
v-for="count in 10" @click.native="item.empty ? '' : selectBox(item.locationId)"
v-bind:key="count" v-for="item in warehouseList"
> :key="item.locationId"
<div class="plat">库位{{ count }}</div> >
</div> <div class="plat">{{ item.locationName }}</div>
</div> <el-button
<div class="flexDiv"> v-if="!item.empty"
<div @click.stop="showDetail(item.locationId)"
class="wareBox" class="wareBox-button"
:class="[ type="text"
count > Math.round(Math.random() * 10) ? 'enableBox' : 'disableBox', size="mini"
{ active: count + 10 === isActive } icon="el-icon-search"
]" circle
@click="selectBox(count + 10)" />
v-for="count in 10" </el-card>
v-bind:key="count" </el-card>
> <el-card class="base-container" style="margin-top: 20px; min-height: 200px">
<div class="plat">库位{{ count + 10 }}</div> <el-row :gutter="30" style="padding: 20px;">
</div> <el-col class="footer-item-container" :span="6" v-for="count in 4" :key="count">
</div> <el-card class="footer-item-box base-container" @click.native="selectPlat(count)">
</div> <div class="plat" style="font-size: 24px">出库液压台{{ count }}</div>
<div class="line"></div> </el-card>
<div class="mainDiv" style="margin:100px 0 10px"> </el-col>
<div class="flexDiv"> </el-row>
<div class="wareBox end-plat" @click="selectPlat(count)" v-for="count in 4" v-bind:key="count"> </el-card>
<div class="plat">提升台{{ count }}</div>
</div>
</div>
</div>
<ex-warehouse-info <ex-warehouse-info
v-if="ExWarehouseInfoVisible" v-if="ExWarehouseInfoVisible"
ref="ExWarehouseInfoRef" ref="ExWarehouseInfoRef"
@@ -59,31 +55,71 @@ export default {
data () { data () {
return { return {
isActive: '', isActive: '',
ExWarehouseInfoVisible: false ExWarehouseInfoVisible: false,
dataListLoading: false,
warehouseList: []
} }
}, },
components: { components: {
ExWarehouseInfo ExWarehouseInfo
}, },
created () {}, activated () {
this.getWarehouseList()
},
methods: { methods: {
selectBox (count) { getWarehouseList () {
this.isActive = count this.dataListLoading = true
this.$http({
url: this.$http.adornUrl('/outStock/list'),
method: 'post'
}).then(({data}) => {
if (data && data.code === 0) {
this.warehouseList = data.data
} else {
this.warehouseList = []
}
this.dataListLoading = false
})
},
selectBox (id) {
if (this.isActive === id) {
this.isActive = null
} else {
this.isActive = id
}
},
showDetail (id) {
this.ExWarehouseInfoVisible = true this.ExWarehouseInfoVisible = true
this.$nextTick(() => { this.$nextTick(() => {
this.$refs.ExWarehouseInfoRef.init() this.$refs.ExWarehouseInfoRef.init(id)
}) })
}, },
selectPlat (count) { selectPlat (count) {
if (this.isActive) { if (this.isActive) {
this.$confirm(`确认从库位${this.isActive}出库至提升台${count}?`, '提示', { this.$confirm(`确认从库位id为[${this.isActive}]出库至提升台${count}?`, '提示', {
confirmButtonText: '确定', confirmButtonText: '确定',
cancelButtonText: '取消', cancelButtonText: '取消',
type: 'info ' type: 'info '
}).then(() => { }).then(() => {
this.$message({ this.$http({
type: 'success', url: this.$http.adornUrl('/outStock/runOutTask'),
message: '出库成功!' method: 'post',
data: this.$http.adornData({
code: 'YYT00' + count,
localtionId: this.isActive
})
}).then(({data}) => {
if (data && data.code === 0) {
this.$message({
type: 'success',
message: '出库成功!'
})
this.isActive = null
this.getWarehouseList()
} else {
this.$message.error(data.msg)
}
this.dataListLoading = false
}) })
}).catch(() => { }).catch(() => {
this.$message({ this.$message({
@@ -102,45 +138,27 @@ export default {
} }
</script> </script>
<style scoped> <style lang="scss" scoped>
.mainDiv { .mainDiv {
border: 2px solid rgb(145, 174, 255); border: 2px solid rgb(145, 174, 255);
padding: 20px 0; padding: 20px 0;
} }
.flexDiv {
display: -webkit-flex;
display: flex;
-webkit-justify-content: space-around;
justify-content: space-around;
}
/* 边框特效 */
.wareBox:hover {
background: linear-gradient(to left, deepskyblue, deepskyblue) left top
no-repeat,
linear-gradient(to bottom, deepskyblue, deepskyblue) left top no-repeat,
linear-gradient(to left, deepskyblue, deepskyblue) right top no-repeat,
linear-gradient(to bottom, deepskyblue, deepskyblue) right top no-repeat,
linear-gradient(to left, deepskyblue, deepskyblue) left bottom no-repeat,
linear-gradient(to bottom, deepskyblue, deepskyblue) left bottom no-repeat,
linear-gradient(to left, deepskyblue, deepskyblue) right bottom no-repeat,
linear-gradient(to left, deepskyblue, deepskyblue) right bottom no-repeat;
background-size: 5px 30px, 30px 5px;
color: black;
border-radius: 5px;
background-color: rgb(190, 224, 241);
}
.wareBox { .wareBox {
cursor: pointer; cursor: pointer;
display: inline-block;
margin: 10px; margin: 10px;
height: 100px; width: 104px;
padding: 10px; height: 112px;
line-height: 90px; line-height: 72px;
text-align: center; text-align: center;
border: 2px solid #cdcdc5; padding: 0;
border-radius: 5px; position: relative;
} .wareBox-button {
.plat { position: absolute;
min-width: 80px; bottom: 0;
right: 0;
}
} }
.line { .line {
margin: 20px 0; margin: 20px 0;
@@ -150,16 +168,38 @@ export default {
border-right: 200px solid #ddd; border-right: 200px solid #ddd;
} }
.enableBox { .enableBox {
background: rgb(0, 189, 16); background: #EFF3FF;
} }
.disableBox { .disableBox {
background: #ddd; background: #F4F4F4;
cursor: not-allowed; cursor: not-allowed;
} }
.end-plat { .end-plat {
background-color: rgb(195, 246, 255); background-color: rgb(195, 246, 255);
} }
.plat {
font-size: 16px;
}
.active { .active {
border: 2px solid red; border: 2px solid #F56C6C;
}
.footer-item-container{
display: flex;
justify-content: center;
align-items: center;
.footer-item-box{
width: 100%;
height: 200px;
padding: 0 !important;
cursor: pointer;
line-height: 160px;
text-align: center;
background-image: url('../../assets/img/1.png');
background-repeat: no-repeat;
background-size: 100% 100%;
background-color: transparent;
border-radius: 25px;
margin-bottom: 20px;
}
} }
</style> </style>

View File

@@ -1,7 +1,7 @@
<template> <template>
<div> <div>
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="8"> <el-col :span="12">
<el-card :style="{height: boxHeight + 'px'}" class="box-card box-card-jg" shadow="hover" @click.native="$router.push({ name: 'orderProcess' })"> <el-card :style="{height: boxHeight + 'px'}" class="box-card box-card-jg" shadow="hover" @click.native="$router.push({ name: 'orderProcess' })">
<p class="box-card-header"> <p class="box-card-header">
<icon-svg class="iconClass" name="进工业炉加工"></icon-svg> <icon-svg class="iconClass" name="进工业炉加工"></icon-svg>
@@ -10,7 +10,7 @@
<p class="box-card-footer">Processing</p> <p class="box-card-footer">Processing</p>
</el-card> </el-card>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="12">
<el-card :style="{height: boxHeight + 'px'}" class="box-card box-card-ck" shadow="hover" @click.native="$router.push({ name: 'exWarehouse' })"> <el-card :style="{height: boxHeight + 'px'}" class="box-card box-card-ck" shadow="hover" @click.native="$router.push({ name: 'exWarehouse' })">
<p class="box-card-header"> <p class="box-card-header">
<icon-svg class="iconClass" name="出库"></icon-svg> <icon-svg class="iconClass" name="出库"></icon-svg>
@@ -19,7 +19,7 @@
<p class="box-card-footer">Warehouse</p> <p class="box-card-footer">Warehouse</p>
</el-card> </el-card>
</el-col> </el-col>
<el-col :span="8"> <!-- <el-col :span="8">
<el-card :style="{height: boxHeight + 'px'}" class="box-card box-card-zj" shadow="hover" @click.native="$router.push({ name: 'addProcess' })"> <el-card :style="{height: boxHeight + 'px'}" class="box-card box-card-zj" shadow="hover" @click.native="$router.push({ name: 'addProcess' })">
<p class="box-card-header"> <p class="box-card-header">
<icon-svg class="iconClass" name="追加加工"></icon-svg> <icon-svg class="iconClass" name="追加加工"></icon-svg>
@@ -27,7 +27,7 @@
</p> </p>
<p class="box-card-footer">Append</p> <p class="box-card-footer">Append</p>
</el-card> </el-card>
</el-col> </el-col> -->
</el-row> </el-row>
<el-card class="mod-log"> <el-card class="mod-log">
<h3>当前任务列表</h3> <h3>当前任务列表</h3>
@@ -82,7 +82,7 @@
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="kilnName" prop="kilnName"
label="炉" label="工业炉"
> >
</el-table-column> </el-table-column>
<el-table-column <el-table-column
@@ -100,7 +100,7 @@
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ <span>{{
scope.row.taskType === 0 scope.row.taskType === 0
? "缓存到炉加工" ? "缓存到工业炉加工"
: scope.row.taskType === 1 : scope.row.taskType === 1
? "出炉到缓存" ? "出炉到缓存"
: scope.row.taskType === 2 : scope.row.taskType === 2

View File

@@ -84,7 +84,6 @@
right: 0; right: 0;
bottom: 0; bottom: 0;
left: 0; left: 0;
background-color: rgba(38, 50, 56, .6);
overflow: hidden; overflow: hidden;
&:before { &:before {
position: fixed; position: fixed;
@@ -94,8 +93,8 @@
width: 100%; width: 100%;
height: 100%; height: 100%;
content: ""; content: "";
background-image: url(~@/assets/img/login_bg.jpg); background-image: url(~@/assets/img/bg.jpeg);
background-size: cover; background-size: 100% 100%;
} }
.site-content__wrapper { .site-content__wrapper {
position: absolute; position: absolute;

View File

@@ -0,0 +1,207 @@
<template>
<el-dialog
:title="!row ? '新增' : '修改'"
:close-on-click-modal="false"
:visible.sync="visible"
>
<el-form
:model="dataForm"
v-loading="formLoading"
:rules="dataRule"
ref="dataForm"
label-width="80px"
>
<el-form-item label="标识卡号" prop="idenCardNum">
<el-input
v-model="dataForm.idenCardNum"
@change="setIdenCardNum"
ref="idenCardNum"
placeholder="标识卡号"
></el-input>
</el-form-item>
<el-form-item label="客户名称" prop="customerName">
<el-input
v-model="dataForm.customerName"
disabled
placeholder="客户名称"
></el-input>
</el-form-item>
<el-form-item label="材料牌号" prop="materialDes">
<el-input
v-model="dataForm.materialDes"
disabled
placeholder="材料牌号"
></el-input>
</el-form-item>
<el-form-item label="订单号" prop="orderNo">
<el-input
v-model="dataForm.orderNo"
disabled
placeholder="订单号"
></el-input>
</el-form-item>
<el-form-item label="产品名称" prop="productName">
<el-input
v-model="dataForm.productName"
disabled
placeholder="产品名称"
></el-input>
</el-form-item>
<el-form-item label="数量" prop="quantity">
<el-input
v-model="dataForm.quantity"
:max="dataForm.targetQuantity"
@change="changes"
type="number"
placeholder="数量"
style="width:200px"
></el-input>
<el-tag>数量最大值:{{dataForm.targetQuantity}}</el-tag>
</el-form-item>
<el-form-item label="单位" prop="unit">
<el-input
v-model="dataForm.unit"
disabled
placeholder="单位"
></el-input>
</el-form-item>
<el-form-item label="重量" prop="weight">
<el-input
v-model="dataForm.weight"
type="number"
:max="dataForm.targetWeight"
@change="changeWeight"
placeholder="重量"
style="width:200px"
></el-input>
<el-tag>重量最大值:{{dataForm.targetWeight}}</el-tag>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="visible = false">取消</el-button>
<el-button type="primary" @click="dataFormSubmit()">确定</el-button>
</span>
</el-dialog>
</template>
<script>
export default {
data () {
return {
visible: false,
dataForm: {
idenCardNum: null,
customerName: null,
materialDes: null,
orderNo: null,
productName: null,
targetQuantity: null,
quantity: null,
unit: null,
targetWeight: null,
weight: null
},
dataRule: {
idenCardNum: [
{ required: true, message: '标识卡号不能为空', trigger: 'blur' }
],
quantity: [
{ required: true, message: '数量不能为空', trigger: 'blur' }
],
weight: [{ required: true, message: '重量不能为空', trigger: 'blur' }]
},
formLoading: false,
row: null,
editIndex: null
}
},
methods: {
changes (value) {
if (/[\u4E00-\u9FA5]/g.test(value)) {
this.dataForm.quantity = null
}
if (value > this.dataForm.targetQuantity) {
this.dataForm.quantity = null
}
},
changeWeight (value) {
if (/[\u4E00-\u9FA5]/g.test(value)) {
this.dataForm.weight = null
}
if (value > this.dataForm.targetWeight) {
this.dataForm.weight = null
}
},
init (row, idx) {
this.visible = true
this.row = null
this.editIndex = null
this.formLoading = false
this.dataForm.targetQuantity = null
this.dataForm.targetWeight = null
this.$nextTick(() => {
this.$refs['dataForm'].resetFields()
if (row) {
this.row = row
this.dataForm = row
this.editIndex = idx
}
this.$refs['idenCardNum'].focus()
})
},
setIdenCardNum () {
this.formLoading = true
if (this.dataForm.idenCardNum) {
this.$http({
url: this.$http.adornUrl(`/orderInfo/getTaskInfoByIdenCardNum`),
method: 'get',
params: this.$http.adornParams({
idenCardNum: this.dataForm.idenCardNum
})
}).then(({ data }) => {
if (data && data.code === 0) {
this.dataForm = data.data
this.dataForm.targetQuantity = data.data.quantity - data.data.finishQuantity - data.data.waitQuantity
this.dataForm.targetWeight = data.data.weight - data.data.finishWeight - data.data.waitWeight
this.dataForm.weight = null
this.dataForm.quantity = null
} else {
this.$message.warning(data.msg)
}
this.formLoading = false
})
} else {
this.$message.warning('请输入标识卡号')
}
},
// 表单提交
dataFormSubmit () {
this.$refs['dataForm'].validate(valid => {
if (valid) {
if (this.editIndex || this.editIndex === 0) {
const taskList = JSON.parse(sessionStorage.getItem('autoTaskList'))
taskList.splice(this.editIndex, 1, this.dataForm)
sessionStorage.setItem('autoTaskList', JSON.stringify(taskList))
} else if (sessionStorage.getItem('autoTaskList')) {
const taskList = JSON.parse(sessionStorage.getItem('autoTaskList'))
taskList.push(this.dataForm)
sessionStorage.setItem('autoTaskList', JSON.stringify(taskList))
} else {
const arr = [this.dataForm]
sessionStorage.setItem('autoTaskList', JSON.stringify(arr))
}
this.$message({
message: '操作成功',
type: 'success',
duration: 1500,
onClose: () => {
this.visible = false
this.$emit('refreshDataList')
}
})
}
})
}
}
}
</script>

View File

View File

@@ -0,0 +1,303 @@
<!--
* @Author: gtz
* @Date: 2022-03-04 10:22:13
* @LastEditors: zwq
* @LastEditTime: 2022-08-05 09:05:08
* @Description: file content
* @FilePath: \mt-qj-wms-ui\src\views\common\order-auto-submit.vue
-->
<template>
<el-dialog
title="提交任务"
:close-on-click-modal="false"
:visible.sync="visible">
<el-form :model="dataForm" v-loading="formLoading" :rules="dataRule" ref="dataForm" label-width="120px">
<el-form-item label="自动任务类型" prop="autoTaskType">
<el-select v-model="dataForm.autoTaskType" clearable @change="changeAutoTaskType">
<el-option :value="1" label="氮化炉加工"></el-option>
<el-option :value="2" label="多功能炉加工"></el-option>
</el-select>
</el-form-item>
<el-form-item label="加工类型" prop="processType">
<el-select v-model="dataForm.processType" clearable>
<el-option :value="0" label="初始加工" />
<el-option :value="1" label="复加工" />
</el-select>
</el-form-item>
<el-form-item v-if="dataForm.autoTaskType === 2" label="第一步">
<el-form-item label="加工起点" prop="startPosition" style="margin-bottom: 24px">
<el-select v-model="dataForm.startPosition" :disabled="!(dataForm.autoTaskType)">
<el-option value="YYT001" label="液压台1"></el-option>
<el-option value="YYT002" label="液压台2"></el-option>
<el-option value="YYT003" label="液压台3"></el-option>
<el-option value="YYT004" label="液压台4"></el-option>
</el-select>
</el-form-item>
<el-form-item label="加工炉" prop="firstPosition" style="margin-bottom: 24px">
<el-select v-model="dataForm.firstPosition" @change="handleChange($event,0)" :disabled="!(dataForm.autoTaskType)">
<el-option v-for="item in kilnList" :key="item.id" :value="item.id + ',' + item.code" :label="item.kilnName" />
</el-select>
</el-form-item>
<el-form-item label="工艺" prop="firstProcess" style="margin-bottom: 24px">
<el-select v-model="dataForm.firstProcess" :disabled="!(dataForm.autoTaskType) || processDis.firstProcess">
<el-option v-for="item in processList" :key="item.id" :value="item.code" :label="item.craftCode" />
</el-select>
</el-form-item>
</el-form-item>
<el-form-item :label="dataForm.autoTaskType !== 2?'第一步':'第二步'">
<el-form-item label="加工起点" v-if="dataForm.autoTaskType !== 2" prop="startPosition" style="margin-bottom: 24px">
<el-select v-model="dataForm.startPosition" :disabled="!(dataForm.autoTaskType)">
<el-option value="YYT001" label="液压台1"></el-option>
<el-option value="YYT002" label="液压台2"></el-option>
<el-option value="YYT003" label="液压台3"></el-option>
<el-option value="YYT004" label="液压台4"></el-option>
</el-select>
</el-form-item>
<el-form-item label="加工炉" prop="secPosition" style="margin-bottom: 24px">
<el-select v-model="dataForm.secPosition" @change="handleChange($event,1)" :disabled="!(dataForm.autoTaskType)">
<el-option v-for="item in kilnList" :key="item.id" :value="item.id + ',' + item.code" :label="item.kilnName" />
</el-select>
</el-form-item>
<el-form-item label="工艺" prop="secProcess" style="margin-bottom: 24px">
<el-select v-model="dataForm.secProcess" :disabled="!(dataForm.autoTaskType) || processDis.secProcess">
<el-option v-for="item in processList" :key="item.id" :value="item.code" :label="item.craftCode" />
</el-select>
</el-form-item>
</el-form-item>
<el-form-item :label="dataForm.autoTaskType !== 2?'第二步':'第三步'">
<el-form-item label="加工炉" prop="thirdPosition" style="margin-bottom: 24px">
<el-select v-model="dataForm.thirdPosition" @change="handleChange($event,2)" :disabled="!(dataForm.autoTaskType)">
<el-option v-for="item in kilnList" :key="item.id" :value="item.id + ',' + item.code" :label="item.kilnName" />
</el-select>
</el-form-item>
<el-form-item label="工艺" prop="thirdProcess" style="margin-bottom: 24px">
<el-select v-model="dataForm.thirdProcess" :disabled="!(dataForm.autoTaskType) || processDis.thirdProcess">
<el-option v-for="item in processList" :key="item.id" :value="item.code" :label="item.craftCode" />
</el-select>
</el-form-item>
</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 {
props: {
kilnList: {
type: Array,
default: () => []
},
processList: {
type: Array,
default: () => []
}
},
data () {
return {
visible: false,
btnLoad: false,
dataForm: {
autoTaskType: null,
processType: null,
startPosition: null,
firstPosition: null,
firstProcess: null,
secPosition: null,
secProcess: null,
thirdPosition: null,
thirdProcess: null
},
dataRule: {
autoTaskType: [
{ required: true, message: '自动任务类型不能为空', trigger: 'blur' }
],
processType: [
{ required: true, message: '加工类型不能为空', trigger: 'blur' }
],
startPosition: [
{ required: true, message: '加工起点不能为空', trigger: 'blur' }
],
firstPosition: [
{ required: true, message: '加工炉不能为空', trigger: 'blur' }
],
firstProcess: [
{ required: true, message: '工艺不能为空', trigger: 'blur' }
],
secPosition: [
{ required: true, message: '加工炉不能为空', trigger: 'blur' }
],
thirdPosition: [
{ required: true, message: '加工炉不能为空', trigger: 'blur' }
],
thirdProcess: [
{ required: true, message: '工艺不能为空', trigger: 'blur' }
]
},
dataList: [],
formLoading: false,
editIndex: null,
processDis: {
secProcess: false,
thirdPosition: false,
thirdProcess: false
}
}
},
methods: {
handleChange (e, step) {
const sArr = ['firstProcess', 'secProcess', 'thirdProcess']
this.processDis[sArr[step]] = false
this.dataForm[sArr[step]] = null
this.kilnList.find(item => {
if (item.id === e.split(',')[0]) {
if (item.type === 4) {
this.dataForm[sArr[step]] = 1
this.processDis[sArr[step]] = true
}
}
}
)
},
init (list) {
this.dataList.splice(0, this.dataList.length)
this.dataList = list
this.btnLoad = false
this.processDis = {
secProcess: false,
thirdPosition: false,
thirdProcess: false
}
this.visible = true
this.$nextTick(() => {
this.$refs['dataForm'].resetFields()
})
},
changeAutoTaskType () {
this.dataForm.startPosition = null
this.dataForm.firstPosition = null
this.dataForm.firstProcess = null
this.dataForm.secPosition = null
this.dataForm.secProcess = null
this.dataForm.thirdPosition = null
this.dataForm.thirdProcess = null
},
setIdenCardNum () {
this.formLoading = true
if (this.dataForm.idenCardNum) {
this.$http({
url: this.$http.adornUrl(`/orderInfo/getTaskInfoByIdenCardNum`),
method: 'get',
params: this.$http.adornParams({
'idenCardNum': this.dataForm.idenCardNum
})
}).then(({data}) => {
console.log(data)
if (data && data.code === 0) {
this.dataForm = data.data
this.dataForm.targetQuantity = data.data.quantity
this.dataForm.targetWeight = data.data.weight
this.dataForm.weight = null
this.dataForm.quantity = null
} else {
this.$message.warning(data.msg)
}
this.formLoading = false
})
} else {
this.$message.warning('请输入标识卡号')
}
},
// 表单提交
dataFormSubmit () {
this.$refs['dataForm'].validate((valid) => {
if (valid) {
const requestData = {
taskCreateParamList: []
}
if (this.dataForm.autoTaskType === 1) {
requestData.taskCreateParamList.push({
autoTaskStep: 1,
autoTaskType: this.dataForm.autoTaskType,
craftCode: this.dataForm.secProcess,
detParams: this.dataList,
kilnId: this.dataForm.secPosition.split(',')[0],
processType: this.dataForm.processType,
startPosition: this.dataForm.startPosition,
targetPosition: this.dataForm.secPosition.split(',')[1]
})
requestData.taskCreateParamList.push({
autoTaskStep: 2,
autoTaskType: this.dataForm.autoTaskType,
craftCode: this.dataForm.thirdProcess,
detParams: this.dataList,
kilnId: this.dataForm.thirdPosition.split(',')[0],
processType: this.dataForm.processType,
startPosition: this.dataForm.secPosition.split(',')[1],
targetPosition: this.dataForm.thirdPosition.split(',')[1]
})
} else if (this.dataForm.autoTaskType === 2) {
requestData.taskCreateParamList.push({
autoTaskStep: 1,
autoTaskType: this.dataForm.autoTaskType,
craftCode: this.dataForm.firstProcess,
detParams: this.dataList,
kilnId: this.dataForm.firstPosition.split(',')[0],
processType: this.dataForm.processType,
startPosition: this.dataForm.startPosition,
targetPosition: this.dataForm.firstPosition.split(',')[1]
})
requestData.taskCreateParamList.push({
autoTaskStep: 2,
autoTaskType: this.dataForm.autoTaskType,
craftCode: this.dataForm.secProcess,
detParams: this.dataList,
kilnId: this.dataForm.secPosition.split(',')[0],
processType: this.dataForm.processType,
startPosition: this.dataForm.firstPosition.split(',')[1],
targetPosition: this.dataForm.secPosition.split(',')[1]
})
requestData.taskCreateParamList.push({
autoTaskStep: 3,
autoTaskType: this.dataForm.autoTaskType,
craftCode: this.dataForm.thirdProcess,
detParams: this.dataList,
kilnId: this.dataForm.thirdPosition.split(',')[0],
processType: this.dataForm.processType,
startPosition: this.dataForm.secPosition.split(',')[1],
targetPosition: this.dataForm.thirdPosition.split(',')[1]
})
}
this.btnLoad = true
this.$http({
url: this.$http.adornUrl(`/currTask/createAutoTask`),
method: 'post',
data: this.$http.adornData(requestData)
}).then(({data}) => {
if (data && data.code === 0) {
this.$message({
message: '操作成功',
type: 'success',
duration: 1500,
onClose: () => {
this.btnLoad = false
this.visible = false
sessionStorage.setItem('autoTaskList', '')
this.$emit('refreshDataList')
}
})
} else {
this.btnLoad = false
this.$message.warning(data.msg)
}
})
}
})
}
}
}
</script>

View File

@@ -0,0 +1,348 @@
<template>
<div class="mod-config">
<div class="auto-session">
<el-row style="margin: 10px 0; font-weight: bold">
未下发自动任务
</el-row>
<el-form :inline="true" style="display: flex; align-items: center; justify-content: right;">
<el-form-item style="flex: 1;float: left">
<el-button size="small" type="primary" @click="addOrUpdateHandle()">
<icon-svg class="iconClass" name="新建"></icon-svg>
新增
</el-button>
</el-form-item>
<el-form-item style="margin-left:1%">
<el-button type="primary" size="small" @click="handleSubmit()">提交任务</el-button>
</el-form-item>
</el-form>
<el-table
:data="dataList"
:stripe="true"
:header-cell-style="{background:'#eef1f6',color:'#606266',height: '56px'}"
style="width: 100%;">
<el-table-column
type="index"
header-align="center"
align="center"
label="序号"
width="50">
</el-table-column>
<el-table-column
prop="idenCardNum"
label="标识卡">
</el-table-column>
<el-table-column
prop="customerName"
label="客户名称">
</el-table-column>
<el-table-column
prop="orderNo"
label="订单号">
</el-table-column>
<el-table-column
prop="productName"
label="产品名称">
</el-table-column>
<el-table-column
prop="materialDes"
label="材料号牌">
</el-table-column>
<el-table-column
prop="finishQuantity"
label="已完成数">
<template slot-scope="scope">
{{ `${scope.row.finishQuantity}/${scope.row.targetQuantity}` }}
</template>
</el-table-column>
<el-table-column
prop="quantity"
label="数量">
</el-table-column>
<el-table-column
prop="weight"
label="重量">
</el-table-column>
<el-table-column
prop="unit"
label="单位">
</el-table-column>
<el-table-column
fixed="right"
header-align="center"
align="center"
label="操作">
<template slot-scope="scope">
<el-button type="text" size="small" @click="addOrUpdateHandle(scope.row, scope.$index)">
<el-tooltip class="item" effect="dark" content="修改" placement="top">
<icon-svg class="iconClass" name="编辑"></icon-svg>
</el-tooltip>
</el-button>
<el-button type="text" style="color:red" size="small" @click="deleteHandle(scope.$index)">
<el-tooltip class="item" effect="dark" content="删除" placement="top">
<icon-svg class="iconClass" name="删除"></icon-svg>
</el-tooltip>
</el-button>
</template>
</el-table-column>
</el-table>
</div>
<div class="auto-undo" v-if="false">
<el-row style="margin: 10px 0; font-weight: bold">
未完成自动任务
</el-row>
<el-table
:data="autoList"
:stripe="true"
: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="processFlowType"
label="自动任务类型">
<template slot-scope="scope">
{{ scope.row.processFlowType === 1 ? '淡化炉加工' : scope.row.processFlowType === 2 ? '多功能炉加工' : '' }}
</template>
</el-table-column>
<el-table-column
prop="status"
label="状态">
<template slot-scope="scope">
{{ scope.row.status === 0 ? '未开始' : scope.row.status === 1 ? '执行中' : scope.row.status === 2 ? '完成' : scope.row.status === 3 ? '终止' : '' }}
</template>
</el-table-column>
<!-- <el-table-column
label="详情">
<template slot-scope="scope">
<el-button type="text" @click="handleAutoDetail(scope.row.id)">详情</el-button>
</template>
</el-table-column> -->
<el-table-column
fixed="right"
header-align="center"
align="center"
label="操作">
<template slot-scope="scope">
<el-button type="text" style="color:red" size="small" @click="stopHandle(scope.row.id)">
<el-tooltip class="item" effect="dark" content="停止" placement="top">
<icon-svg class="iconClass" name="stop"></icon-svg>
</el-tooltip>
</el-button>
</template>
</el-table-column>
</el-table>
<el-pagination
@size-change="sizeChangeHandle"
@current-change="currentChangeHandle"
:current-page="pageIndex"
:page-sizes="[10, 20, 50, 100]"
:page-size="pageSize"
:total="totalPage"
layout="total, sizes, prev, pager, next, jumper">
</el-pagination>
</div>
<!-- 弹窗, 新增 / 修改 -->
<add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList" />
<process-point v-if="processPointVisible" ref="processPoint" @refreshPoint="setPoint" />
<submit-form v-if="submitFormVisible" ref="submitForm" :kilnList="eqList" :processList="processList" @refreshDataList="getDataList" />
<auto-detail v-if="autoDetailVisible" ref="autoDetail" />
</div>
</template>
<script>
import AddOrUpdate from './order-auto-add'
import SubmitForm from './order-auto-submit'
import ProcessPoint from './order-process-point'
import AutoDetail from './order-auto-detail'
export default {
data () {
return {
startPosition: '',
kilnId: '',
targetPosition: '',
dataList: [],
autoList: [],
pageIndex: 1,
pageSize: 10,
totalPage: 0,
dataListLoading: false,
processType: null,
addOrUpdateVisible: false,
processPointVisible: false,
submitFormVisible: false,
autoDetailVisible: false,
eqList: [],
processList: []
}
},
components: {
AddOrUpdate,
ProcessPoint,
SubmitForm,
AutoDetail
},
activated () {
this.getDictList()
this.getDataList()
this.getAutoDataList()
},
methods: {
// 获取工业炉、工艺列表
getDictList () {
this.$http({
url: this.$http.adornUrl('/kilnInfo/page'),
method: 'post',
data: this.$http.adornData({
current: 1,
size: 999
})
}).then(({ data }) => {
if (data && data.code === 0) {
this.eqList = data.data.records
} else {
this.eqList = []
}
})
this.$http({
url: this.$http.adornUrl('/craftInfo/page'),
method: 'post',
data: this.$http.adornData({
current: 1,
size: 999
})
}).then(({ data }) => {
if (data && data.code === 0) {
this.processList = data.data.records
} else {
this.processList = []
}
})
},
// 每页数
sizeChangeHandle (val) {
this.pageSize = val
this.pageIndex = 1
this.getAutoDataList()
},
// 当前页
currentChangeHandle (val) {
this.pageIndex = val
this.getAutoDataList()
},
// 获取数据列表
getDataList () {
this.dataList = sessionStorage.getItem('autoTaskList') ? JSON.parse(sessionStorage.getItem('autoTaskList')) : []
// if (data && data.code === 0) {
// this.dataList = data.data.records
// } else {
// this.dataList = []
// }
},
// 获取已下发自动任务
getAutoDataList () {
this.dataListLoading = true
this.$http({
url: this.$http.adornUrl('/autoTask/page'),
method: 'post',
data: this.$http.adornData({
'current': this.pageIndex,
'size': this.pageSize
})
}).then(({data}) => {
if (data && data.code === 0) {
this.autoList = data.data.records
this.totalPage = data.data.total
} else {
this.autoList = []
this.totalPage = 0
}
this.dataListLoading = false
})
},
// 新增 / 修改
addOrUpdateHandle (row, idx) {
this.addOrUpdateVisible = true
this.$nextTick(() => {
this.$refs.addOrUpdate.init(row, idx)
})
},
// 获取点位
getPoint (pointType) {
this.processPointVisible = true
this.$nextTick(() => {
this.$refs.processPoint.init(pointType)
})
},
setPoint (count, pointType) {
if (!pointType) {
this.startPosition = count
} else {
this.kilnId = count
this.targetPosition = count
}
},
// 弹出提交任务弹窗
handleSubmit () {
if (this.dataList.length) {
this.submitFormVisible = true
this.$nextTick(() => {
this.$refs.submitForm.init(this.dataList)
})
} else {
this.$message.warning('请至少添加一条任务!')
}
},
handleAutoDetail (id) {
this.autoDetailVisible = true
this.$nextTick(() => {
this.$refs.autoDetail.init(id)
})
},
// 删除
deleteHandle (idx) {
console.log(idx)
this.$confirm(`确定对第${idx + 1}项进行删除操作?`, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.dataList.splice(idx, 1)
sessionStorage.setItem('autoTaskList', JSON.stringify(this.dataList))
}).catch(() => {})
},
// 终止自动任务
stopHandle (id) {
this.$confirm(`确定对[id=${id}]进行停止操作?`, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.$http({
url: this.$http.adornUrl('/autoTask/stop'),
method: 'post',
data: this.$http.adornData({id})
}).then(({data}) => {
if (data && data.code === 0) {
this.$message({
message: '操作成功',
type: 'success',
duration: 1500,
onClose: () => {
this.getDataList()
}
})
} else {
this.$message.error(data.msg)
}
})
}).catch(() => {})
}
}
}
</script>

View File

@@ -20,13 +20,33 @@
<el-input v-model="dataForm.productName" disabled placeholder="产品名称"></el-input> <el-input v-model="dataForm.productName" disabled placeholder="产品名称"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="数量" prop="quantity"> <el-form-item label="数量" prop="quantity">
<el-input v-model="dataForm.quantity" placeholder="数量"></el-input> <el-input
v-model="dataForm.quantity"
:max="dataForm.targetQuantity"
@change="changes"
type="number"
placeholder="数量"
style="width:200px"
></el-input>
<el-tag>数量最大值:{{dataForm.targetQuantity}}</el-tag>
</el-form-item> </el-form-item>
<el-form-item label="单位" prop="unit"> <el-form-item label="单位" prop="unit">
<el-input v-model="dataForm.unit" disabled placeholder="单位"></el-input> <el-input
v-model="dataForm.unit"
disabled
placeholder="单位"
></el-input>
</el-form-item> </el-form-item>
<el-form-item label="重量" prop="weight"> <el-form-item label="重量" prop="weight">
<el-input v-model="dataForm.weight" placeholder="重量"></el-input> <el-input
v-model="dataForm.weight"
type="number"
:max="dataForm.targetWeight"
@change="changeWeight"
placeholder="重量"
style="width:200px"
></el-input>
<el-tag>重量最大值:{{dataForm.targetWeight}}</el-tag>
</el-form-item> </el-form-item>
</el-form> </el-form>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
@@ -47,8 +67,10 @@
materialDes: null, materialDes: null,
orderNo: null, orderNo: null,
productName: null, productName: null,
targetQuantity: null,
quantity: null, quantity: null,
unit: null, unit: null,
targetWeight: null,
weight: null weight: null
}, },
dataRule: { dataRule: {
@@ -68,14 +90,35 @@
} }
}, },
methods: { methods: {
changes (value) {
if (/[\u4E00-\u9FA5]/g.test(value)) {
this.dataForm.quantity = null
}
if (value > this.dataForm.targetQuantity) {
this.dataForm.quantity = null
}
},
changeWeight (value) {
if (/[\u4E00-\u9FA5]/g.test(value)) {
this.dataForm.weight = null
}
if (value > this.dataForm.targetWeight) {
this.dataForm.weight = null
}
},
init (row, idx) { init (row, idx) {
this.visible = true this.visible = true
this.row = null
this.editIndex = null
this.formLoading = false
this.dataForm.targetQuantity = null
this.dataForm.targetWeight = null
this.$nextTick(() => { this.$nextTick(() => {
this.$refs['dataForm'].resetFields() this.$refs['dataForm'].resetFields()
if (row) { if (row) {
this.row = row this.row = JSON.parse(JSON.stringify(row))
this.dataForm = row this.dataForm = JSON.parse(JSON.stringify(row))
this.editIndex = idx this.editIndex = JSON.parse(JSON.stringify(idx))
} }
this.$refs['idenCardNum'].focus() this.$refs['idenCardNum'].focus()
}) })
@@ -90,11 +133,10 @@
'idenCardNum': this.dataForm.idenCardNum 'idenCardNum': this.dataForm.idenCardNum
}) })
}).then(({data}) => { }).then(({data}) => {
console.log(data)
if (data && data.code === 0) { if (data && data.code === 0) {
this.dataForm = data.data this.dataForm = data.data
this.dataForm.targetQuantity = data.data.quantity this.dataForm.targetQuantity = data.data.quantity - data.data.finishQuantity - data.data.waitQuantity
this.dataForm.targetWeight = data.data.weight this.dataForm.targetWeight = data.data.weight - data.data.finishWeight - data.data.waitWeight
this.dataForm.weight = null this.dataForm.weight = null
this.dataForm.quantity = null this.dataForm.quantity = null
} else { } else {
@@ -110,7 +152,7 @@
dataFormSubmit () { dataFormSubmit () {
this.$refs['dataForm'].validate((valid) => { this.$refs['dataForm'].validate((valid) => {
if (valid) { if (valid) {
if (this.editIndex) { if (this.editIndex || this.editIndex === 0) {
const taskList = JSON.parse(sessionStorage.getItem('taskList')) const taskList = JSON.parse(sessionStorage.getItem('taskList'))
taskList.splice(this.editIndex, 1, this.dataForm) taskList.splice(this.editIndex, 1, this.dataForm)
sessionStorage.setItem('taskList', JSON.stringify(taskList)) sessionStorage.setItem('taskList', JSON.stringify(taskList))

View File

@@ -7,12 +7,12 @@
--> -->
<template> <template>
<el-dialog <el-dialog
:title="!pointType ? '选择起点' : '选择炉'" :title="!pointType ? '选择起点' : '选择工业炉'"
:close-on-click-modal="false" :close-on-click-modal="false"
:visible.sync="visible" :visible.sync="visible"
> >
<div class="wareBox" v-for="count in 4" v-bind:key="count" @click="setPoint(count)"> <div class="wareBox" v-for="count in 4" v-bind:key="count" @click="setPoint(count)">
<div class="plat">提升平{{count}}</div> <div class="plat">液压{{count}}</div>
</div> </div>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<el-button @click="visible = false">取消</el-button> <el-button @click="visible = false">取消</el-button>
@@ -39,7 +39,7 @@ export default {
setPoint (count) { setPoint (count) {
console.log(count, this.pointType) console.log(count, this.pointType)
this.visible = false this.visible = false
this.$emit('refreshPoint', count, this.pointType) this.$emit('refreshPoint', 'YYT00' + count, this.pointType)
} }
} }
} }

View File

@@ -0,0 +1,144 @@
<!--
* @Author: gtz
* @Date: 2022-03-04 10:22:13
* @LastEditors: zwq
* @LastEditTime: 2022-08-05 09:29:56
* @Description: file content
* @FilePath: \mt-qj-wms-ui\src\views\common\order-auto-submit.vue
-->
<template>
<el-dialog
title="提交任务"
:visible.sync="visible">
<el-form :model="dataForm" v-loading="formLoading" :rules="dataRule" ref="dataForm" label-width="120px">
<el-form-item label="加工类型" prop="processType">
<el-select v-model="dataForm.processType" size="small" placeholder="加工类型" clearable>
<el-option :value="0" label="初始加工" />
<el-option :value="1" label="复加工" />
</el-select>
</el-form-item>
<el-form-item label="加工起点" prop="startPosition" style="margin-bottom: 24px">
<el-select v-model="dataForm.startPosition" size="small" placeholder="任务起点位置" clearable>
<el-option value="YYT001" label="液压台1" />
<el-option value="YYT002" label="液压台2" />
<el-option value="YYT003" label="液压台3" />
<el-option value="YYT004" label="液压台4" />
</el-select>
<!-- <el-button style="margin-left:10px" type="primary" @click="getPoint(0)">{{startPosition}}</el-button> -->
</el-form-item>
<el-form-item label="加工炉" prop="kilnId" style="margin-bottom: 24px">
<el-select v-model="dataForm.kilnId" size="small" @change="handleChange($event)" placeholder="加工炉" clearable>
<el-option v-for="item in kilnList" :key="item.id" :value="item.id" :label="item.kilnName" />
</el-select>
<!-- <el-button style="margin-left:10px" type="primary" @click="getPoint(1)">{{kilnId}}</el-button> -->
</el-form-item>
<el-form-item label="工艺" prop="craftCode" style="margin-bottom: 24px">
<el-select v-model="dataForm.craftCode" placeholder="工艺">
<el-option v-for="item in processList" :key="item.id" :value="item.code" :label="item.craftCode" />
</el-select>
</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 {
props: {
kilnList: {
type: Array,
default: () => []
},
processList: {
type: Array,
default: () => []
}
},
data () {
return {
visible: false,
btnLoad: false,
dataForm: {
craftCode: null,
processType: null,
startPosition: null,
kilnId: null
},
dataRule: {
craftCode: [
{ required: true, message: '工艺不能为空', trigger: 'blur' }
],
processType: [
{ required: true, message: '加工类型不能为空', trigger: 'blur' }
],
startPosition: [
{ required: true, message: '加工起点不能为空', trigger: 'blur' }
],
kilnId: [
{ required: true, message: '工业炉不能为空', trigger: 'blur' }
]
},
dataList: [],
formLoading: false
}
},
methods: {
handleChange (e) {
this.dataForm.craftCode = null
this.kilnList.find(item => {
if (item.id === e) {
if (item.type === 4) {
this.dataForm.craftCode = 1
}
}
}
)
},
init (list) {
this.dataList.splice(0, this.dataList.length)
this.dataList = list
this.btnLoad = false
this.visible = true
this.$nextTick(() => {
this.$refs['dataForm'].resetFields()
})
},
// 表单提交
dataFormSubmit () {
this.$refs['dataForm'].validate((valid) => {
if (valid) {
this.btnLoad = true
this.$http({
url: this.$http.adornUrl(`/currTask/createProcessTask`),
method: 'post',
data: this.$http.adornData({
craftCode: this.dataForm.craftCode,
detParams: this.dataList,
kilnId: this.dataForm.kilnId,
processType: this.dataForm.processType,
startPosition: this.dataForm.startPosition,
targetPosition: this.dataForm.kilnId
// this.targetPosition
})
}).then(({data}) => {
if (data && data.code === 0) {
this.$message.success('任务提交成功')
this.btnLoad = false
this.visible = false
sessionStorage.setItem('taskList', '')
this.$emit('refreshDataList')
} else {
this.btnLoad = false
this.$message.warning(data.msg)
}
})
}
})
}
}
}
</script>

View File

@@ -7,27 +7,6 @@
新增 新增
</el-button> </el-button>
</el-form-item> </el-form-item>
<el-form-item>
<el-select v-model="processType" size="small" placeholder="加工类型" clearable>
<el-option :value="0" label="初始加工" />
<el-option :value="1" label="复加工" />
</el-select>
</el-form-item>
<el-form-item style="margin-left:1%">
<el-select v-model="startPosition" size="small" placeholder="任务起点位置" clearable>
<el-option :value="1" label="提升平台1" />
<el-option :value="2" label="提升平台2" />
<el-option :value="3" label="提升平台3" />
<el-option :value="4" label="提升平台4" />
</el-select>
<!-- <el-button style="margin-left:10px" type="primary" @click="getPoint(0)">{{startPosition}}</el-button> -->
</el-form-item>
<el-form-item style="margin-left:1%">
<el-select v-model="kilnId" size="small" placeholder="窑炉" clearable>
<el-option v-for="item in eqList" :key="item.id" :value="item.id" :label="item.kilnName" />
</el-select>
<!-- <el-button style="margin-left:10px" type="primary" @click="getPoint(1)">{{kilnId}}</el-button> -->
</el-form-item>
<el-form-item style="margin-left:1%"> <el-form-item style="margin-left:1%">
<el-button type="primary" size="small" @click="submitTask()">提交任务</el-button> <el-button type="primary" size="small" @click="submitTask()">提交任务</el-button>
</el-form-item> </el-form-item>
@@ -105,36 +84,42 @@
</el-table> </el-table>
<!-- 弹窗, 新增 / 修改 --> <!-- 弹窗, 新增 / 修改 -->
<add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList"></add-or-update> <add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList"></add-or-update>
<submit-form v-if="submitFormVisible" ref="submitForm" :kilnList="eqList" :processList="processList" @refreshDataList="getDataList" />
<process-point v-if="processPointVisible" ref="processPoint" @refreshPoint="setPoint"></process-point> <process-point v-if="processPointVisible" ref="processPoint" @refreshPoint="setPoint"></process-point>
</div> </div>
</template> </template>
<script> <script>
import AddOrUpdate from './order-process-add' import AddOrUpdate from './order-process-add'
import SubmitForm from './order-process-submit'
import ProcessPoint from './order-process-point' import ProcessPoint from './order-process-point'
export default { export default {
data () { data () {
return { return {
startPosition: '', startPosition: '',
kilnId: '', kilnId: '',
craftCode: '',
targetPosition: '', targetPosition: '',
dataList: [], dataList: [],
submitFormVisible: false,
processType: null, processType: null,
dataListLoading: false, dataListLoading: false,
addOrUpdateVisible: false, addOrUpdateVisible: false,
processPointVisible: false, processPointVisible: false,
eqList: [] eqList: [],
processList: []
} }
}, },
components: { components: {
AddOrUpdate, AddOrUpdate,
ProcessPoint ProcessPoint,
SubmitForm
}, },
activated () { activated () {
this.getEqList() this.getEqList()
}, },
methods: { methods: {
// 获取炉列表 // 获取工业炉列表
getEqList () { getEqList () {
this.$http({ this.$http({
url: this.$http.adornUrl('/kilnInfo/page'), url: this.$http.adornUrl('/kilnInfo/page'),
@@ -151,6 +136,21 @@
} }
this.getDataList() this.getDataList()
}) })
this.$http({
url: this.$http.adornUrl('/craftInfo/page'),
method: 'post',
data: this.$http.adornData({
current: 1,
size: 999
})
}).then(({ data }) => {
if (data && data.code === 0) {
this.processList = data.data.records
} else {
this.processList = []
}
})
}, },
// 获取数据列表 // 获取数据列表
getDataList () { getDataList () {
@@ -184,55 +184,13 @@
} }
}, },
submitTask () { submitTask () {
if (this.dataList.length === 0) { if (this.dataList.length) {
this.$message({ this.submitFormVisible = true
message: '任务为空,请新增一条托盘信息', this.$nextTick(() => {
type: 'warning' this.$refs.submitForm.init(this.dataList)
}) })
} else if (!this.startPosition) {
this.$message({
message: '请选择任务起点',
type: 'warning'
})
} else if (!this.kilnId) {
this.$message({
message: '请选择窑炉',
type: 'warning'
})
} else if (!this.processType) {
this.$message.warning('请选择加工类型')
} else { } else {
this.$confirm(`确定提交任务?`, '提示', { this.$message.warning('请至少添加一条任务!')
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.$http({
url: this.$http.adornUrl(`currTask/createProcessTask`),
method: 'post',
data: this.$http.adornData({
craftCode: '',
detParams: this.dataList,
kilnId: this.kilnId,
processType: this.processType,
startPosition: this.startPosition,
targetPosition: this.kilnId
// this.targetPosition
})
}).then(({data}) => {
console.log(data)
if (data && data.code === 0) {
this.$message.success('任务提交成功')
this.dataList = []
sessionStorage.setItem('taskList', '')
this.startPosition = '选择起点'
this.kilnId = '选择窑炉'
this.targetPosition = null
} else {
this.$message.warning(data.msg)
}
})
}).catch(() => {})
} }
}, },
// 删除 // 删除

View File

@@ -0,0 +1,135 @@
/*
* @Author: gtz
* @Date: 2022-03-04 14:09:53
* @LastEditors: gtz
* @LastEditTime: 2022-03-04 14:15:15
* @Description: file content
* @FilePath: \mt-qj-wms-ui\src\views\common\testdata.js
*/
export default {
"taskCreateParamList": [
{
"autoTaskStep": 0,
"autoTaskType": 0,
"craftCode": "",
"detParams": [
{
"customerName": "",
"idenCardNum": "",
"materialDes": "",
"orderNo": "",
"productName": "",
"quantity": 0,
"unit": "",
"weight": 0
},
{
"customerName": "",
"idenCardNum": "",
"materialDes": "",
"orderNo": "",
"productName": "",
"quantity": 0,
"unit": "",
"weight": 0
},
{
"customerName": "",
"idenCardNum": "",
"materialDes": "",
"orderNo": "",
"productName": "",
"quantity": 0,
"unit": "",
"weight": 0
}
],
"kilnId": 1,
"processType": 0,
"startPosition": "",
"targetPosition": ""
},
{
"autoTaskStep": 1,
"autoTaskType": 0,
"craftCode": "",
"detParams": [
{
"customerName": "",
"idenCardNum": "",
"materialDes": "",
"orderNo": "",
"productName": "",
"quantity": 0,
"unit": "",
"weight": 0
},
{
"customerName": "",
"idenCardNum": "",
"materialDes": "",
"orderNo": "",
"productName": "",
"quantity": 0,
"unit": "",
"weight": 0
},
{
"customerName": "",
"idenCardNum": "",
"materialDes": "",
"orderNo": "",
"productName": "",
"quantity": 0,
"unit": "",
"weight": 0
}
],
"kilnId": 1,
"processType": 0,
"startPosition": "",
"targetPosition": ""
},
{
"autoTaskStep": 2,
"autoTaskType": 0,
"craftCode": "",
"detParams": [
{
"customerName": "",
"idenCardNum": "",
"materialDes": "",
"orderNo": "",
"productName": "",
"quantity": 0,
"unit": "",
"weight": 0
},
{
"customerName": "",
"idenCardNum": "",
"materialDes": "",
"orderNo": "",
"productName": "",
"quantity": 0,
"unit": "",
"weight": 0
},
{
"customerName": "",
"idenCardNum": "",
"materialDes": "",
"orderNo": "",
"productName": "",
"quantity": 0,
"unit": "",
"weight": 0
}
],
"kilnId": 1,
"processType": 0,
"startPosition": "",
"targetPosition": ""
}
]
}

View File

@@ -250,11 +250,11 @@ const datePickerType = {
} }
} }
// 炉列表 // 工业炉列表
const yaoluList = [ const yaoluList = [
{ {
id: 1, id: 1,
label: '炉1', label: '工业炉1',
value: 63, value: 63,
percent: 11, percent: 11,
data: [ data: [
@@ -288,7 +288,7 @@ const yaoluList = [
}, },
{ {
id: 2, id: 2,
label: '炉2', label: '工业炉2',
value: 44, value: 44,
percent: 8, percent: 8,
data: [ data: [
@@ -322,7 +322,7 @@ const yaoluList = [
}, },
{ {
id: 3, id: 3,
label: '炉3', label: '工业炉3',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [
@@ -356,7 +356,7 @@ const yaoluList = [
}, },
{ {
id: 4, id: 4,
label: '炉4', label: '工业炉4',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [
@@ -390,7 +390,7 @@ const yaoluList = [
}, },
{ {
id: 5, id: 5,
label: '炉5', label: '工业炉5',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [
@@ -424,7 +424,7 @@ const yaoluList = [
}, },
{ {
id: 6, id: 6,
label: '炉6', label: '工业炉6',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [
@@ -458,7 +458,7 @@ const yaoluList = [
}, },
{ {
id: 7, id: 7,
label: '炉7', label: '工业炉7',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [
@@ -492,7 +492,7 @@ const yaoluList = [
}, },
{ {
id: 8, id: 8,
label: '炉8', label: '工业炉8',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [
@@ -526,7 +526,7 @@ const yaoluList = [
}, },
{ {
id: 9, id: 9,
label: '炉9', label: '工业炉9',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [
@@ -560,7 +560,7 @@ const yaoluList = [
}, },
{ {
id: 10, id: 10,
label: '炉10', label: '工业炉10',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [
@@ -594,7 +594,7 @@ const yaoluList = [
}, },
{ {
id: 11, id: 11,
label: '炉11', label: '工业炉11',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [

View File

@@ -272,11 +272,11 @@ const datePickerType = {
} }
} }
// 炉列表 // 工业炉列表
const yaoluList = [ const yaoluList = [
{ {
id: 1, id: 1,
label: '炉1', label: '工业炉1',
value: 63, value: 63,
percent: 11, percent: 11,
data: [ data: [
@@ -310,7 +310,7 @@ const yaoluList = [
}, },
{ {
id: 2, id: 2,
label: '炉2', label: '工业炉2',
value: 44, value: 44,
percent: 8, percent: 8,
data: [ data: [
@@ -344,7 +344,7 @@ const yaoluList = [
}, },
{ {
id: 3, id: 3,
label: '炉3', label: '工业炉3',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [
@@ -378,7 +378,7 @@ const yaoluList = [
}, },
{ {
id: 4, id: 4,
label: '炉4', label: '工业炉4',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [
@@ -412,7 +412,7 @@ const yaoluList = [
}, },
{ {
id: 5, id: 5,
label: '炉5', label: '工业炉5',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [
@@ -446,7 +446,7 @@ const yaoluList = [
}, },
{ {
id: 6, id: 6,
label: '炉6', label: '工业炉6',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [
@@ -480,7 +480,7 @@ const yaoluList = [
}, },
{ {
id: 7, id: 7,
label: '炉7', label: '工业炉7',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [
@@ -514,7 +514,7 @@ const yaoluList = [
}, },
{ {
id: 8, id: 8,
label: '炉8', label: '工业炉8',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [
@@ -548,7 +548,7 @@ const yaoluList = [
}, },
{ {
id: 9, id: 9,
label: '炉9', label: '工业炉9',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [
@@ -582,7 +582,7 @@ const yaoluList = [
}, },
{ {
id: 10, id: 10,
label: '炉10', label: '工业炉10',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [
@@ -616,7 +616,7 @@ const yaoluList = [
}, },
{ {
id: 11, id: 11,
label: '炉11', label: '工业炉11',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [

View File

@@ -122,51 +122,51 @@ const datePickerType = {
} }
} }
// 炉列表 // 工业炉列表
const yaoluList = [ const yaoluList = [
{ {
id: 1, id: 1,
label: '炉1' label: '工业炉1'
}, },
{ {
id: 2, id: 2,
label: '炉2' label: '工业炉2'
}, },
{ {
id: 3, id: 3,
label: '炉3' label: '工业炉3'
}, },
{ {
id: 4, id: 4,
label: '炉4' label: '工业炉4'
}, },
{ {
id: 5, id: 5,
label: '炉5' label: '工业炉5'
}, },
{ {
id: 6, id: 6,
label: '炉6' label: '工业炉6'
}, },
{ {
id: 7, id: 7,
label: '炉7' label: '工业炉7'
}, },
{ {
id: 8, id: 8,
label: '炉8' label: '工业炉8'
}, },
{ {
id: 9, id: 9,
label: '炉9' label: '工业炉9'
}, },
{ {
id: 10, id: 10,
label: '炉10' label: '工业炉10'
}, },
{ {
id: 11, id: 11,
label: '炉11' label: '工业炉11'
} }
] ]

View File

@@ -323,11 +323,11 @@ const datePickerType = {
} }
} }
// 炉列表 // 工业炉列表
const yaoluList = [ const yaoluList = [
{ {
id: 1, id: 1,
name: '炉1', name: '工业炉1',
value: 63, value: 63,
percent: 11, percent: 11,
data: [ data: [
@@ -361,7 +361,7 @@ const yaoluList = [
}, },
{ {
id: 2, id: 2,
name: '炉2', name: '工业炉2',
value: 44, value: 44,
percent: 8, percent: 8,
data: [ data: [
@@ -395,7 +395,7 @@ const yaoluList = [
}, },
{ {
id: 3, id: 3,
name: '炉3', name: '工业炉3',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [
@@ -429,7 +429,7 @@ const yaoluList = [
}, },
{ {
id: 4, id: 4,
name: '炉4', name: '工业炉4',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [
@@ -463,7 +463,7 @@ const yaoluList = [
}, },
{ {
id: 5, id: 5,
name: '炉5', name: '工业炉5',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [
@@ -497,7 +497,7 @@ const yaoluList = [
}, },
{ {
id: 6, id: 6,
name: '炉6', name: '工业炉6',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [
@@ -531,7 +531,7 @@ const yaoluList = [
}, },
{ {
id: 7, id: 7,
name: '炉7', name: '工业炉7',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [
@@ -565,7 +565,7 @@ const yaoluList = [
}, },
{ {
id: 8, id: 8,
name: '炉8', name: '工业炉8',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [
@@ -599,7 +599,7 @@ const yaoluList = [
}, },
{ {
id: 9, id: 9,
name: '炉9', name: '工业炉9',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [
@@ -633,7 +633,7 @@ const yaoluList = [
}, },
{ {
id: 10, id: 10,
name: '炉10', name: '工业炉10',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [
@@ -667,7 +667,7 @@ const yaoluList = [
}, },
{ {
id: 11, id: 11,
name: '炉11', name: '工业炉11',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [

View File

@@ -119,51 +119,51 @@ const datePickerType = {
} }
} }
// 炉列表 // 工业炉列表
const yaoluList = [ const yaoluList = [
{ {
id: 1, id: 1,
label: '炉1' label: '工业炉1'
}, },
{ {
id: 2, id: 2,
label: '炉2' label: '工业炉2'
}, },
{ {
id: 3, id: 3,
label: '炉3' label: '工业炉3'
}, },
{ {
id: 4, id: 4,
label: '炉4' label: '工业炉4'
}, },
{ {
id: 5, id: 5,
label: '炉5' label: '工业炉5'
}, },
{ {
id: 6, id: 6,
label: '炉6' label: '工业炉6'
}, },
{ {
id: 7, id: 7,
label: '炉7' label: '工业炉7'
}, },
{ {
id: 8, id: 8,
label: '炉8' label: '工业炉8'
}, },
{ {
id: 9, id: 9,
label: '炉9' label: '工业炉9'
}, },
{ {
id: 10, id: 10,
label: '炉10' label: '工业炉10'
}, },
{ {
id: 11, id: 11,
label: '炉11' label: '工业炉11'
} }
] ]

View File

@@ -332,11 +332,11 @@ const datePickerType = {
} }
} }
// 炉列表 // 工业炉列表
const yaoluList = [ const yaoluList = [
{ {
id: 1, id: 1,
label: '炉1', label: '工业炉1',
value: 63, value: 63,
percent: 11, percent: 11,
data: [ data: [
@@ -370,7 +370,7 @@ const yaoluList = [
}, },
{ {
id: 2, id: 2,
label: '炉2', label: '工业炉2',
value: 44, value: 44,
percent: 8, percent: 8,
data: [ data: [
@@ -404,7 +404,7 @@ const yaoluList = [
}, },
{ {
id: 3, id: 3,
label: '炉3', label: '工业炉3',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [
@@ -438,7 +438,7 @@ const yaoluList = [
}, },
{ {
id: 4, id: 4,
label: '炉4', label: '工业炉4',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [
@@ -472,7 +472,7 @@ const yaoluList = [
}, },
{ {
id: 5, id: 5,
label: '炉5', label: '工业炉5',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [
@@ -506,7 +506,7 @@ const yaoluList = [
}, },
{ {
id: 6, id: 6,
label: '炉6', label: '工业炉6',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [
@@ -540,7 +540,7 @@ const yaoluList = [
}, },
{ {
id: 7, id: 7,
label: '炉7', label: '工业炉7',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [
@@ -574,7 +574,7 @@ const yaoluList = [
}, },
{ {
id: 8, id: 8,
label: '炉8', label: '工业炉8',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [
@@ -608,7 +608,7 @@ const yaoluList = [
}, },
{ {
id: 9, id: 9,
label: '炉9', label: '工业炉9',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [
@@ -642,7 +642,7 @@ const yaoluList = [
}, },
{ {
id: 10, id: 10,
label: '炉10', label: '工业炉10',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [
@@ -676,7 +676,7 @@ const yaoluList = [
}, },
{ {
id: 11, id: 11,
label: '炉11', label: '工业炉11',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [

View File

@@ -250,11 +250,11 @@ const datePickerType = {
} }
} }
// 炉列表 // 工业炉列表
const yaoluList = [ const yaoluList = [
{ {
id: 1, id: 1,
label: '炉1', label: '工业炉1',
value: 63, value: 63,
percent: 11, percent: 11,
data: [ data: [
@@ -288,7 +288,7 @@ const yaoluList = [
}, },
{ {
id: 2, id: 2,
label: '炉2', label: '工业炉2',
value: 44, value: 44,
percent: 8, percent: 8,
data: [ data: [
@@ -322,7 +322,7 @@ const yaoluList = [
}, },
{ {
id: 3, id: 3,
label: '炉3', label: '工业炉3',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [
@@ -356,7 +356,7 @@ const yaoluList = [
}, },
{ {
id: 4, id: 4,
label: '炉4', label: '工业炉4',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [
@@ -390,7 +390,7 @@ const yaoluList = [
}, },
{ {
id: 5, id: 5,
label: '炉5', label: '工业炉5',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [
@@ -424,7 +424,7 @@ const yaoluList = [
}, },
{ {
id: 6, id: 6,
label: '炉6', label: '工业炉6',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [
@@ -458,7 +458,7 @@ const yaoluList = [
}, },
{ {
id: 7, id: 7,
label: '炉7', label: '工业炉7',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [
@@ -492,7 +492,7 @@ const yaoluList = [
}, },
{ {
id: 8, id: 8,
label: '炉8', label: '工业炉8',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [
@@ -526,7 +526,7 @@ const yaoluList = [
}, },
{ {
id: 9, id: 9,
label: '炉9', label: '工业炉9',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [
@@ -560,7 +560,7 @@ const yaoluList = [
}, },
{ {
id: 10, id: 10,
label: '炉10', label: '工业炉10',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [
@@ -594,7 +594,7 @@ const yaoluList = [
}, },
{ {
id: 11, id: 11,
label: '炉11', label: '工业炉11',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [

View File

@@ -1,8 +1,8 @@
<!-- <!--
* @Author: zwq * @Author: zwq
* @Date: 2021-11-19 10:55:33 * @Date: 2021-11-19 10:55:33
* @LastEditors: zwq * @LastEditors: gtz
* @LastEditTime: 2021-12-17 15:08:06 * @LastEditTime: 2021-12-17 17:16:10
* @Description: * @Description:
--> -->
<template> <template>
@@ -28,7 +28,7 @@
style="font-size: 16px; overflow: hidden; text-overflow:ellipsis; white-space: nowrap;" style="font-size: 16px; overflow: hidden; text-overflow:ellipsis; white-space: nowrap;"
> >
<icon-svg style="position: relative; top: 2px" class="iconClass" name="甲醇"></icon-svg> <icon-svg style="position: relative; top: 2px" class="iconClass" name="甲醇"></icon-svg>
甲醇流量立方米<strong style="font-size: 32px; color: #f78c3e">123,109</strong> 甲醇流量立方米<strong style="font-size: 32px; color: #403ef7">123,109</strong>
</p> </p>
<p style="font-size: 14px; text-indent: 20px;">昨日甲醇流量(立方米)1145</p> <p style="font-size: 14px; text-indent: 20px;">昨日甲醇流量(立方米)1145</p>
</el-col> </el-col>
@@ -272,11 +272,11 @@ const datePickerType = {
} }
} }
// 炉列表 // 工业炉列表
const yaoluList = [ const yaoluList = [
{ {
id: 1, id: 1,
label: '炉1', label: '工业炉1',
value: 63, value: 63,
percent: 11, percent: 11,
data: [ data: [
@@ -310,7 +310,7 @@ const yaoluList = [
}, },
{ {
id: 2, id: 2,
label: '炉2', label: '工业炉2',
value: 44, value: 44,
percent: 8, percent: 8,
data: [ data: [
@@ -344,7 +344,7 @@ const yaoluList = [
}, },
{ {
id: 3, id: 3,
label: '炉3', label: '工业炉3',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [
@@ -378,7 +378,7 @@ const yaoluList = [
}, },
{ {
id: 4, id: 4,
label: '炉4', label: '工业炉4',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [
@@ -412,7 +412,7 @@ const yaoluList = [
}, },
{ {
id: 5, id: 5,
label: '炉5', label: '工业炉5',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [
@@ -446,7 +446,7 @@ const yaoluList = [
}, },
{ {
id: 6, id: 6,
label: '炉6', label: '工业炉6',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [
@@ -480,7 +480,7 @@ const yaoluList = [
}, },
{ {
id: 7, id: 7,
label: '炉7', label: '工业炉7',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [
@@ -514,7 +514,7 @@ const yaoluList = [
}, },
{ {
id: 8, id: 8,
label: '炉8', label: '工业炉8',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [
@@ -548,7 +548,7 @@ const yaoluList = [
}, },
{ {
id: 9, id: 9,
label: '炉9', label: '工业炉9',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [
@@ -582,7 +582,7 @@ const yaoluList = [
}, },
{ {
id: 10, id: 10,
label: '炉10', label: '工业炉10',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [
@@ -616,7 +616,7 @@ const yaoluList = [
}, },
{ {
id: 11, id: 11,
label: '炉11', label: '工业炉11',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [

View File

@@ -272,11 +272,11 @@ const datePickerType = {
} }
} }
// 炉列表 // 工业炉列表
const yaoluList = [ const yaoluList = [
{ {
id: 1, id: 1,
label: '炉1', label: '工业炉1',
value: 63, value: 63,
percent: 11, percent: 11,
data: [ data: [
@@ -310,7 +310,7 @@ const yaoluList = [
}, },
{ {
id: 2, id: 2,
label: '炉2', label: '工业炉2',
value: 44, value: 44,
percent: 8, percent: 8,
data: [ data: [
@@ -344,7 +344,7 @@ const yaoluList = [
}, },
{ {
id: 3, id: 3,
label: '炉3', label: '工业炉3',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [
@@ -378,7 +378,7 @@ const yaoluList = [
}, },
{ {
id: 4, id: 4,
label: '炉4', label: '工业炉4',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [
@@ -412,7 +412,7 @@ const yaoluList = [
}, },
{ {
id: 5, id: 5,
label: '炉5', label: '工业炉5',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [
@@ -446,7 +446,7 @@ const yaoluList = [
}, },
{ {
id: 6, id: 6,
label: '炉6', label: '工业炉6',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [
@@ -480,7 +480,7 @@ const yaoluList = [
}, },
{ {
id: 7, id: 7,
label: '炉7', label: '工业炉7',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [
@@ -514,7 +514,7 @@ const yaoluList = [
}, },
{ {
id: 8, id: 8,
label: '炉8', label: '工业炉8',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [
@@ -548,7 +548,7 @@ const yaoluList = [
}, },
{ {
id: 9, id: 9,
label: '炉9', label: '工业炉9',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [
@@ -582,7 +582,7 @@ const yaoluList = [
}, },
{ {
id: 10, id: 10,
label: '炉10', label: '工业炉10',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [
@@ -616,7 +616,7 @@ const yaoluList = [
}, },
{ {
id: 11, id: 11,
label: '炉11', label: '工业炉11',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [

View File

@@ -250,11 +250,11 @@ const datePickerType = {
} }
} }
// 炉列表 // 工业炉列表
const yaoluList = [ const yaoluList = [
{ {
id: 1, id: 1,
label: '炉1', label: '工业炉1',
value: 63, value: 63,
percent: 11, percent: 11,
data: [ data: [
@@ -288,7 +288,7 @@ const yaoluList = [
}, },
{ {
id: 2, id: 2,
label: '炉2', label: '工业炉2',
value: 44, value: 44,
percent: 8, percent: 8,
data: [ data: [
@@ -322,7 +322,7 @@ const yaoluList = [
}, },
{ {
id: 3, id: 3,
label: '炉3', label: '工业炉3',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [
@@ -356,7 +356,7 @@ const yaoluList = [
}, },
{ {
id: 4, id: 4,
label: '炉4', label: '工业炉4',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [
@@ -390,7 +390,7 @@ const yaoluList = [
}, },
{ {
id: 5, id: 5,
label: '炉5', label: '工业炉5',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [
@@ -424,7 +424,7 @@ const yaoluList = [
}, },
{ {
id: 6, id: 6,
label: '炉6', label: '工业炉6',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [
@@ -458,7 +458,7 @@ const yaoluList = [
}, },
{ {
id: 7, id: 7,
label: '炉7', label: '工业炉7',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [
@@ -492,7 +492,7 @@ const yaoluList = [
}, },
{ {
id: 8, id: 8,
label: '炉8', label: '工业炉8',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [
@@ -526,7 +526,7 @@ const yaoluList = [
}, },
{ {
id: 9, id: 9,
label: '炉9', label: '工业炉9',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [
@@ -560,7 +560,7 @@ const yaoluList = [
}, },
{ {
id: 10, id: 10,
label: '炉10', label: '工业炉10',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [
@@ -594,7 +594,7 @@ const yaoluList = [
}, },
{ {
id: 11, id: 11,
label: '炉11', label: '工业炉11',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [

View File

@@ -1,8 +1,8 @@
<!-- <!--
* @Author: zwq * @Author: zwq
* @Date: 2021-11-19 10:55:33 * @Date: 2021-11-19 10:55:33
* @LastEditors: zwq * @LastEditors: gtz
* @LastEditTime: 2021-12-17 15:08:36 * @LastEditTime: 2021-12-17 17:16:51
* @Description: * @Description:
--> -->
<template> <template>
@@ -28,7 +28,7 @@
style="font-size: 16px; overflow: hidden; text-overflow:ellipsis; white-space: nowrap;" style="font-size: 16px; overflow: hidden; text-overflow:ellipsis; white-space: nowrap;"
> >
<icon-svg style="position: relative; top: 2px" class="iconClass" name="丙烷"></icon-svg> <icon-svg style="position: relative; top: 2px" class="iconClass" name="丙烷"></icon-svg>
丙烷流量立方米<strong style="font-size: 32px; color: #f78c3e">123,109</strong> 丙烷流量立方米<strong style="font-size: 32px; color: #1eece3">123,109</strong>
</p> </p>
<p style="font-size: 14px; text-indent: 20px;">昨日丙烷流量(立方米)1145</p> <p style="font-size: 14px; text-indent: 20px;">昨日丙烷流量(立方米)1145</p>
</el-col> </el-col>
@@ -272,11 +272,11 @@ const datePickerType = {
} }
} }
// 炉列表 // 工业炉列表
const yaoluList = [ const yaoluList = [
{ {
id: 1, id: 1,
label: '炉1', label: '工业炉1',
value: 63, value: 63,
percent: 11, percent: 11,
data: [ data: [
@@ -310,7 +310,7 @@ const yaoluList = [
}, },
{ {
id: 2, id: 2,
label: '炉2', label: '工业炉2',
value: 44, value: 44,
percent: 8, percent: 8,
data: [ data: [
@@ -344,7 +344,7 @@ const yaoluList = [
}, },
{ {
id: 3, id: 3,
label: '炉3', label: '工业炉3',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [
@@ -378,7 +378,7 @@ const yaoluList = [
}, },
{ {
id: 4, id: 4,
label: '炉4', label: '工业炉4',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [
@@ -412,7 +412,7 @@ const yaoluList = [
}, },
{ {
id: 5, id: 5,
label: '炉5', label: '工业炉5',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [
@@ -446,7 +446,7 @@ const yaoluList = [
}, },
{ {
id: 6, id: 6,
label: '炉6', label: '工业炉6',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [
@@ -480,7 +480,7 @@ const yaoluList = [
}, },
{ {
id: 7, id: 7,
label: '炉7', label: '工业炉7',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [
@@ -514,7 +514,7 @@ const yaoluList = [
}, },
{ {
id: 8, id: 8,
label: '炉8', label: '工业炉8',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [
@@ -548,7 +548,7 @@ const yaoluList = [
}, },
{ {
id: 9, id: 9,
label: '炉9', label: '工业炉9',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [
@@ -582,7 +582,7 @@ const yaoluList = [
}, },
{ {
id: 10, id: 10,
label: '炉10', label: '工业炉10',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [
@@ -616,7 +616,7 @@ const yaoluList = [
}, },
{ {
id: 11, id: 11,
label: '炉11', label: '工业炉11',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [

View File

@@ -272,11 +272,11 @@ const datePickerType = {
} }
} }
// 炉列表 // 工业炉列表
const yaoluList = [ const yaoluList = [
{ {
id: 1, id: 1,
label: '炉1', label: '工业炉1',
value: 63, value: 63,
percent: 11, percent: 11,
data: [ data: [
@@ -310,7 +310,7 @@ const yaoluList = [
}, },
{ {
id: 2, id: 2,
label: '炉2', label: '工业炉2',
value: 44, value: 44,
percent: 8, percent: 8,
data: [ data: [
@@ -344,7 +344,7 @@ const yaoluList = [
}, },
{ {
id: 3, id: 3,
label: '炉3', label: '工业炉3',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [
@@ -378,7 +378,7 @@ const yaoluList = [
}, },
{ {
id: 4, id: 4,
label: '炉4', label: '工业炉4',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [
@@ -412,7 +412,7 @@ const yaoluList = [
}, },
{ {
id: 5, id: 5,
label: '炉5', label: '工业炉5',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [
@@ -446,7 +446,7 @@ const yaoluList = [
}, },
{ {
id: 6, id: 6,
label: '炉6', label: '工业炉6',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [
@@ -480,7 +480,7 @@ const yaoluList = [
}, },
{ {
id: 7, id: 7,
label: '炉7', label: '工业炉7',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [
@@ -514,7 +514,7 @@ const yaoluList = [
}, },
{ {
id: 8, id: 8,
label: '炉8', label: '工业炉8',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [
@@ -548,7 +548,7 @@ const yaoluList = [
}, },
{ {
id: 9, id: 9,
label: '炉9', label: '工业炉9',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [
@@ -582,7 +582,7 @@ const yaoluList = [
}, },
{ {
id: 10, id: 10,
label: '炉10', label: '工业炉10',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [
@@ -616,7 +616,7 @@ const yaoluList = [
}, },
{ {
id: 11, id: 11,
label: '炉11', label: '工业炉11',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [

View File

@@ -2,18 +2,18 @@
* @Author: zwq * @Author: zwq
* @Date: 2021-11-19 10:55:33 * @Date: 2021-11-19 10:55:33
* @LastEditors: gtz * @LastEditors: gtz
* @LastEditTime: 2021-12-16 20:15:35 * @LastEditTime: 2021-12-17 18:20:17
* @Description: * @Description:
--> -->
<template> <template>
<div class="chart-container"> <div class="chart-container">
<el-row> <el-row>
<el-col :span="4"> <el-col :span="2">
<div class="kiln-electric-treebox"> <div class="kiln-electric-treebox">
<el-tree :data="yaoluList" @node-click="handleNode" /> <el-tree :data="yaoluList" @node-click="handleNode" />
</div> </div>
</el-col> </el-col>
<el-col :span="20"> <el-col :span="22">
<el-card class="base-container" style="min-height: 540px"> <el-card class="base-container" style="min-height: 540px">
<el-row style="position: absolute; z-index: 10; right: 20px"> <el-row style="position: absolute; z-index: 10; right: 20px">
<el-checkbox-group size="small" :min="1" v-model="chartType" style="float: left"> <el-checkbox-group size="small" :min="1" v-model="chartType" style="float: left">
@@ -250,11 +250,11 @@ const datePickerType = {
} }
} }
// 炉列表 // 工业炉列表
const yaoluList = [ const yaoluList = [
{ {
id: 1, id: 1,
label: '炉1', label: '工业炉1',
value: 63, value: 63,
percent: 11, percent: 11,
data: [ data: [
@@ -288,7 +288,7 @@ const yaoluList = [
}, },
{ {
id: 2, id: 2,
label: '炉2', label: '工业炉2',
value: 44, value: 44,
percent: 8, percent: 8,
data: [ data: [
@@ -322,7 +322,7 @@ const yaoluList = [
}, },
{ {
id: 3, id: 3,
label: '炉3', label: '工业炉3',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [
@@ -356,7 +356,7 @@ const yaoluList = [
}, },
{ {
id: 4, id: 4,
label: '炉4', label: '工业炉4',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [
@@ -390,7 +390,7 @@ const yaoluList = [
}, },
{ {
id: 5, id: 5,
label: '炉5', label: '工业炉5',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [
@@ -424,7 +424,7 @@ const yaoluList = [
}, },
{ {
id: 6, id: 6,
label: '炉6', label: '工业炉6',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [
@@ -458,7 +458,7 @@ const yaoluList = [
}, },
{ {
id: 7, id: 7,
label: '炉7', label: '工业炉7',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [
@@ -492,7 +492,7 @@ const yaoluList = [
}, },
{ {
id: 8, id: 8,
label: '炉8', label: '工业炉8',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [
@@ -526,7 +526,7 @@ const yaoluList = [
}, },
{ {
id: 9, id: 9,
label: '炉9', label: '工业炉9',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [
@@ -560,7 +560,7 @@ const yaoluList = [
}, },
{ {
id: 10, id: 10,
label: '炉10', label: '工业炉10',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [
@@ -594,7 +594,7 @@ const yaoluList = [
}, },
{ {
id: 11, id: 11,
label: '炉11', label: '工业炉11',
value: 56, value: 56,
percent: 9, percent: 9,
data: [ data: [

View File

@@ -121,51 +121,51 @@ const datePickerType = {
} }
} }
// 炉列表 // 工业炉列表
const yaoluList = [ const yaoluList = [
{ {
id: 1, id: 1,
label: '炉1' label: '工业炉1'
}, },
{ {
id: 2, id: 2,
label: '炉2' label: '工业炉2'
}, },
{ {
id: 3, id: 3,
label: '炉3' label: '工业炉3'
}, },
{ {
id: 4, id: 4,
label: '炉4' label: '工业炉4'
}, },
{ {
id: 5, id: 5,
label: '炉5' label: '工业炉5'
}, },
{ {
id: 6, id: 6,
label: '炉6' label: '工业炉6'
}, },
{ {
id: 7, id: 7,
label: '炉7' label: '工业炉7'
}, },
{ {
id: 8, id: 8,
label: '炉8' label: '工业炉8'
}, },
{ {
id: 9, id: 9,
label: '炉9' label: '工业炉9'
}, },
{ {
id: 10, id: 10,
label: '炉10' label: '工业炉10'
}, },
{ {
id: 11, id: 11,
label: '炉11' label: '工业炉11'
} }
] ]

View File

@@ -11,6 +11,10 @@
<icon-svg name="shouye" class="site-sidebar__menu-icon"></icon-svg> <icon-svg name="shouye" class="site-sidebar__menu-icon"></icon-svg>
<span slot="title">首页</span> <span slot="title">首页</span>
</el-menu-item> </el-menu-item>
<el-menu-item index="board" @click="getUrl">
<icon-svg name="shanchu" class="site-sidebar__menu-icon"></icon-svg>
<span slot="title">车间生产看板</span>
</el-menu-item>
<el-submenu index="task"> <el-submenu index="task">
<template slot="title"> <template slot="title">
<icon-svg name="config" class="site-sidebar__menu-icon"></icon-svg> <icon-svg name="config" class="site-sidebar__menu-icon"></icon-svg>
@@ -18,12 +22,19 @@
>任务管理</span >任务管理</span
> >
</template> </template>
<el-menu-item
index="orderProcess"
@click="$router.push({ name: 'orderAuto' })"
>
<icon-svg name="tubiao" class="site-sidebar__menu-icon"></icon-svg>
<span slot="title">多步骤自动任务</span>
</el-menu-item>
<el-menu-item <el-menu-item
index="orderProcess" index="orderProcess"
@click="$router.push({ name: 'orderProcess' })" @click="$router.push({ name: 'orderProcess' })"
> >
<icon-svg name="tubiao" class="site-sidebar__menu-icon"></icon-svg> <icon-svg name="tubiao" class="site-sidebar__menu-icon"></icon-svg>
<span slot="title">订单加工</span> <span slot="title">单步骤任务</span>
</el-menu-item> </el-menu-item>
<el-menu-item <el-menu-item
index="exWarehouse" index="exWarehouse"
@@ -121,10 +132,17 @@
@click="$router.push({ name: 'order-current-task' })" @click="$router.push({ name: 'order-current-task' })"
> >
<icon-svg name="editor" class="site-sidebar__menu-icon"></icon-svg> <icon-svg name="editor" class="site-sidebar__menu-icon"></icon-svg>
<span slot="title">当前执行任务</span> <span slot="title">当前任务列表</span>
</el-menu-item>
<el-menu-item
index="current-task"
@click="$router.push({ name: 'order-current-task-new' })"
>
<icon-svg name="editor" class="site-sidebar__menu-icon"></icon-svg>
<span slot="title">任务列表</span>
</el-menu-item> </el-menu-item>
</el-submenu> </el-submenu>
<el-submenu index="energy"> <!-- <el-submenu index="energy">
<template slot="title"> <template slot="title">
<icon-svg name="config" class="site-sidebar__menu-icon"></icon-svg> <icon-svg name="config" class="site-sidebar__menu-icon"></icon-svg>
<span>能源管理</span> <span>能源管理</span>
@@ -141,7 +159,7 @@
@click="$router.push({ name: 'energy-kiln-electric' })" @click="$router.push({ name: 'energy-kiln-electric' })"
> >
<icon-svg name="tubiao" class="site-sidebar__menu-icon"></icon-svg> <icon-svg name="tubiao" class="site-sidebar__menu-icon"></icon-svg>
<span slot="title">炉用电分析</span> <span slot="title">工业炉用电分析</span>
</el-menu-item> </el-menu-item>
<el-submenu index="kiln-gas"> <el-submenu index="kiln-gas">
<template slot="title"> <template slot="title">
@@ -149,7 +167,7 @@
name="config" name="config"
class="site-sidebar__menu-icon" class="site-sidebar__menu-icon"
></icon-svg> ></icon-svg>
<span>炉用气分析</span> <span>工业炉用气分析</span>
</template> </template>
<el-menu-item <el-menu-item
index="sulfur-dioxide" index="sulfur-dioxide"
@@ -239,7 +257,7 @@
name="tubiao" name="tubiao"
class="site-sidebar__menu-icon" class="site-sidebar__menu-icon"
></icon-svg> ></icon-svg>
<span slot="title">炉加工温度</span> <span slot="title">工业炉加工温度</span>
</el-menu-item> </el-menu-item>
<el-menu-item <el-menu-item
index="sump-temperature" index="sump-temperature"
@@ -276,9 +294,9 @@
@click="$router.push({ name: 'energy-kiln-speed' })" @click="$router.push({ name: 'energy-kiln-speed' })"
> >
<icon-svg name="tubiao" class="site-sidebar__menu-icon"></icon-svg> <icon-svg name="tubiao" class="site-sidebar__menu-icon"></icon-svg>
<span slot="title">炉速度参数</span> <span slot="title">工业炉速度参数</span>
</el-menu-item> </el-menu-item>
</el-submenu> </el-submenu> -->
<el-submenu index="report"> <el-submenu index="report">
<template slot="title"> <template slot="title">
<icon-svg name="config" class="site-sidebar__menu-icon"></icon-svg> <icon-svg name="config" class="site-sidebar__menu-icon"></icon-svg>
@@ -297,7 +315,7 @@
@click="$router.push({ name: 'report-kiln-alarm' })" @click="$router.push({ name: 'report-kiln-alarm' })"
> >
<icon-svg name="job" class="site-sidebar__menu-icon"></icon-svg> <icon-svg name="job" class="site-sidebar__menu-icon"></icon-svg>
<span slot="title">炉报警</span> <span slot="title">工业炉报警</span>
</el-menu-item> </el-menu-item>
<el-menu-item <el-menu-item
index="car-alarm" index="car-alarm"
@@ -321,7 +339,18 @@
<icon-svg name="job" class="site-sidebar__menu-icon"></icon-svg> <icon-svg name="job" class="site-sidebar__menu-icon"></icon-svg>
<span slot="title">执行任务历史列表</span> <span slot="title">执行任务历史列表</span>
</el-menu-item> </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>
</el-menu-item>
</el-submenu> </el-submenu>
<el-menu-item index="Problem" @click="$router.push({ name: 'Problem' })">
<icon-svg name="log" class="site-sidebar__menu-icon"></icon-svg>
<span slot="title">常见问题汇总</span>
</el-menu-item>
<!-- <sub-menu <!-- <sub-menu
v-for="menu in menuList" v-for="menu in menuList"
:key="menu.menuId" :key="menu.menuId"
@@ -401,6 +430,10 @@ export default {
this.routeHandle(this.$route) this.routeHandle(this.$route)
}, },
methods: { methods: {
getUrl () {
let routeData = this.$router.resolve({ path: '/board' })
window.open(routeData.href, '_blank')
},
// 路由操作 // 路由操作
routeHandle (route) { routeHandle (route) {
if (route.meta.isTab) { if (route.meta.isTab) {

View File

@@ -2,7 +2,7 @@
* @Author: zwq * @Author: zwq
* @Date: 2021-11-15 08:20:28 * @Date: 2021-11-15 08:20:28
* @LastEditors: zwq * @LastEditors: zwq
* @LastEditTime: 2021-12-06 16:47:31 * @LastEditTime: 2022-07-07 10:51:59
* @Description: * @Description:
--> -->
<template> <template>
@@ -39,7 +39,9 @@
}, },
data () { data () {
return { return {
loading: false loading: false,
websock: '',
url: ''
} }
}, },
components: { components: {
@@ -65,7 +67,9 @@
} }
}, },
created () { created () {
this.url = window.SITE_CONFIG.wbUrl
this.getUserInfo() this.getUserInfo()
this.initWebSocket()
}, },
mounted () { mounted () {
this.resetDocumentClientHeight() this.resetDocumentClientHeight()
@@ -91,6 +95,33 @@
// this.userName = data.user.username // this.userName = data.user.username
// } // }
// }) // })
},
initWebSocket () { // 初始化weosocket
const path = `ws://${this.url}/qj/websocket/1`
this.websock = new WebSocket(path)
this.websock.onmessage = this.websocketonmessage
this.websock.onopen = this.websocketonopen
this.websock.onerror = this.websocketonerror
this.websock.onclose = this.websocketclose
},
websocketonopen () { // 连接建立之后执行send方法发送数据
this.websocketsend(JSON.stringify(1))
},
websocketonerror () { // 连接建立失败重连
this.initWebSocket()
},
websocketonmessage (e) { // 数据接收
this.$notify.info({
title: '提示',
message: e.data,
duration: 15000
})
},
websocketsend (val) { // 数据发送
this.websock.send(val)
},
websocketclose (e) { // 关闭
console.log('断开连接', e)
} }
} }
} }

View File

@@ -34,16 +34,25 @@
prop="abeginTime" prop="abeginTime"
label="发起时间" label="发起时间"
> >
<template slot-scope="scope">
{{ scope.row.abeginTime ? scope.row.abeginTime.replace('T', ' ') : '' }}
</template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="aendTime" prop="aendTime"
label="完成时间" label="完成时间"
> >
<template slot-scope="scope">
{{ scope.row.aendTime ? scope.row.aendTime.replace('T', ' ') : '' }}
</template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="taskType" prop="taskType"
label="任务类型" label="任务类型"
> >
<template slot-scope="scope">
{{ scope.row.taskType === 0 ? '初始加工' : '复加工' }}
</template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="remark" prop="remark"
@@ -60,11 +69,6 @@
label="目标位置" label="目标位置"
> >
</el-table-column> </el-table-column>
<el-table-column
prop="vehicleName"
label="车辆名称"
>
</el-table-column>
<el-table-column <el-table-column
prop="kilnName" prop="kilnName"
label="加工炉" label="加工炉"

View File

@@ -0,0 +1,150 @@
<!--
* @Author: zwq
* @Date: 2021-11-18 14:16:25
* @LastEditors: zwq
* @LastEditTime: 2022-09-09 16:26:17
* @Description:
-->
<template>
<el-dialog title="修改"
:before-close="handleClose"
:visible.sync="visible">
<el-form
:model="dataForm"
:rules="dataRule"
ref="dataForm"
@keyup.enter.native="dataFormSubmit()"
label-width="80px"
>
<el-form-item label="加工炉" prop="kilnId">
<el-select
v-model="dataForm.kilnId"
filterable
placeholder="请选择加工炉"
>
<el-option
v-for="item in kilnInfoArr"
:key="item.id"
:label="item.kilnName"
:value="item.id"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="状态" prop="status">
<el-select
v-model="dataForm.status"
filterable
placeholder="请选择状态"
>
<el-option
v-for="item in statusList"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</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 {
props: {
kilnInfoArr: {
type: Array,
default: () => {
return []
}
}
},
data () {
return {
visible: false,
btnLoad: false,
dataForm: {
id: '',
kilnId: '',
status: ''
},
statusList: [
{
value: 0,
label: '等待执行'
},
{
value: 1,
label: '执行中'
},
{
value: 2,
label: '执行完成'
}
],
dataRule: {
kilnId: [
{ required: true, message: '加工炉不能为空', trigger: 'change' }
],
status: [{ required: true, message: '状态不能为空', trigger: 'change' }]
}
}
},
methods: {
init (id, status, kilnId) {
this.btnLoad = false
this.dataForm = {
id: '',
kilnId: '',
status: ''
}
this.dataForm.id = id
this.dataForm.status = status
this.dataForm.kilnId = kilnId
this.visible = true
},
// 表单提交
dataFormSubmit () {
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)
}
})
}
})
},
handleClose () {
this.visible = false
this.$refs['dataForm'].resetFields()
}
}
}
</script>

View File

@@ -0,0 +1,243 @@
<template>
<div style="margin:20px">
<el-table
:data="dataList"
ref="dataList"
size="mini"
height="250"
:header-cell-style="{
background: '#eef1f6',
color: '#606266',
width: '100%'
}"
>
<el-table-column
type="index"
header-align="center"
align="center"
label="序号"
width="50"
>
</el-table-column>
<el-table-column prop="taskCode" label="任务编码"> </el-table-column>
<el-table-column prop="createTime" label="发起时间">
<template slot-scope="scope">
{{
scope.row.createTime ? scope.row.createTime.replace("T", " ") : ""
}}
</template>
</el-table-column>
<el-table-column prop="kilnName" label="工业炉">
<template slot-scope="scope">
<span>{{
kilnInfoArr.find(item => {
return item.id === scope.row.kilnId;
})
? kilnInfoArr.find(item => {
return item.id === scope.row.kilnId;
}).kilnName
: ""
}}</span>
</template>
</el-table-column>
<el-table-column prop="status" label="任务状态">
<template slot-scope="scope">
{{ scope.row.status >= 0 ? statusList[scope.row.status] : "" }}
</template>
</el-table-column>
<!-- <el-table-column prop="taskType" label="任务类型">
<template slot-scope="scope">
<span>{{
scope.row.taskType === 0
? "入库到工业炉"
: scope.row.taskType === 1
? "入库到缓存"
: scope.row.taskType === 2
? "工业炉出库到缓存区"
: "缓存区出库"
}}</span>
</template>
</el-table-column> -->
<el-table-column prop="isAuto" label="多步骤">
<template slot-scope="scope">
<span>{{ scope.row.isAuto === 1 ? "是" : "否" }}</span>
</template>
</el-table-column>
<el-table-column prop="craftCodeId" label="工艺"> </el-table-column>
<el-table-column prop="startPosition" label="开始位置"> </el-table-column>
<el-table-column prop="targetPosition" 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.id,
scope.row.status,
scope.row.kilnId
)
"
>
<el-tooltip
class="item"
effect="dark"
content="修改"
placement="top"
>
<icon-svg class="iconClass" name="编辑"></icon-svg>
</el-tooltip>
</el-button>
<el-button
type="text"
:disabled="scope.row.status === 1"
size="small"
@click="runTask(scope.row.id)"
>
<el-tooltip
class="item"
effect="dark"
content="执行"
placement="top"
>
<icon-svg class="iconClass" name="维护开始"></icon-svg>
</el-tooltip>
</el-button>
<el-button
type="text"
style="color:red"
size="small"
@click="deleteHandle(scope.row.id)"
>
<el-tooltip
class="item"
effect="dark"
content="删除"
placement="top"
>
<icon-svg class="iconClass" name="删除"></icon-svg>
</el-tooltip>
</el-button>
</template>
</el-table-column>
</el-table>
<!-- 弹窗, 新增 / 修改 -->
<add-or-update
v-if="addOrUpdateVisible"
ref="addOrUpdate"
:kiln-info-arr="kilnInfoArr"
@refreshDataList="reDataList"
></add-or-update>
</div>
</template>
<script>
import AddOrUpdate from './current-task-new-add'
// 任务状态列表
const statusList = {
0: '等待执行',
1: '执行中',
2: '执行完成'
}
export default {
props: {
dataList: {
type: Array,
default: () => {
return []
}
},
kilnInfoArr: {
type: Array,
default: () => {
return []
}
}
},
data () {
return {
statusList,
addOrUpdateVisible: false
}
},
components: {
AddOrUpdate
},
activated () {},
methods: {
init () {
console.log(1)
},
// 新增 / 修改
addOrUpdateHandle (id, status, kilnId) {
this.addOrUpdateVisible = true
this.$nextTick(() => {
this.$refs.addOrUpdate.init(id, status, kilnId)
})
},
reDataList () {
this.$emit('refreshDataList')
},
// 删除
deleteHandle (id) {
this.$confirm(`确定对[${id}]进行删除操作?`, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
})
.then(() => {
this.$http({
url: this.$http.adornUrl('/currTask/deleteById'),
method: 'post',
data: this.$http.adornData({ id })
}).then(({ data }) => {
if (data && data.code === 0) {
this.$message({
message: '操作成功',
type: 'success',
duration: 1500,
onClose: () => {
this.reDataList()
}
})
} else {
this.$message.error(data.msg)
}
})
})
.catch(() => {})
},
// 执行
runTask (id) {
this.$http({
url: this.$http.adornUrl('/currTask/runTask'),
method: 'post',
data: this.$http.adornData({ id })
// params: this.$http.adornParams({ id }, false)
}).then(({ data }) => {
if (data && data.code === 0) {
this.$message({
message: '操作成功',
type: 'success',
duration: 1500,
onClose: () => {
this.reDataList()
}
})
} else {
this.$message.error(data.msg)
}
})
}
}
}
</script>
<style></style>

View File

@@ -0,0 +1,78 @@
<!--
* @Author: zwq
* @Date: 2022-09-09 14:35:52
* @LastEditors: zwq
* @LastEditTime: 2022-09-09 15:25:54
* @Description:
-->
<template>
<div style="margin:20px">
<el-table
:data="detDataList"
:stripe="true"
size="mini"
ref="detDataList"
height="250"
:header-cell-style="{
background: '#eef1f6',
color: '#606266',
width: '100%'
}"
>
<el-table-column
type="index"
header-align="center"
align="center"
label="序号"
width="50"
>
</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>
</div>
</template>
<script>
// 任务状态列表
const statusList = {
0: '等待执行',
1: '执行中',
2: '执行完成',
3: '追加后完成'
}
export default {
props: {
detDataList: {
type: Array,
default: () => {
return []
}
}
},
data () {
return {
statusList
}
},
components: {
},
activated () {},
methods: {
init () {
console.log(2)
}
}
}
</script>
<style></style>

View File

@@ -0,0 +1,105 @@
<!--
* @Author: zwq
* @Date: 2022-09-09 15:19:56
* @LastEditors: zwq
* @LastEditTime: 2022-09-09 15:26:04
* @Description:
-->
<template>
<div style="margin:20px">
<el-table
:data="dataList"
ref="dataList"
size="mini"
height="250"
:header-cell-style="{
background: '#eef1f6',
color: '#606266',
width: '100%'
}"
>
<el-table-column
type="index"
header-align="center"
align="center"
label="序号"
width="50"
>
</el-table-column>
<el-table-column prop="inTime" label="入库时间">
<template slot-scope="scope">
{{
scope.row.inTime ? scope.row.inTime.replace("T", " ") : ""
}}
</template>
</el-table-column>
<el-table-column prop="kilnName" label="工业炉名称"></el-table-column>
<el-table-column prop="locationName" label=" 库位名称"> </el-table-column>
<el-table-column
fixed="right"
header-align="center"
align="center"
width="80"
label="置顶"
>
<template slot-scope="scope">
<el-button type="text" size="small" @click="topList(scope.row.id)"
>置顶</el-button
>
</template>
</el-table-column>
</el-table>
</div>
</template>
<script>
// 任务状态列表
const statusList = {
0: '等待执行',
1: '执行中',
2: '执行完成',
3: '追加后完成'
}
export default {
props: {
dataList: {
type: Array,
default: () => {
return []
}
}
},
data () {
return {
statusList
}
},
components: {
},
activated () {},
methods: {
init () {
console.log(3)
},
topList (id) {
this.$http({
url: this.$http.adornUrl('/inStockInfo/top'),
method: 'post',
data: this.$http.adornData({ id })
}).then(({ data }) => {
if (data && data.code === 0) {
this.$message({
message: '操作成功',
type: 'success',
duration: 1500
})
} else {
this.$message.error(data.msg)
}
})
}
}
}
</script>
<style></style>

View File

@@ -24,18 +24,10 @@
label="序号" label="序号"
width="50"> width="50">
</el-table-column> </el-table-column>
<el-table-column
prop="createTime"
label="获取时间">
</el-table-column>
<el-table-column <el-table-column
prop="idenCardNum" prop="idenCardNum"
label="标识卡号"> label="标识卡号">
</el-table-column> </el-table-column>
<el-table-column
prop="orderNo"
label="订单号">
</el-table-column>
<el-table-column <el-table-column
prop="status" prop="status"
label="任务状态"> label="任务状态">
@@ -66,13 +58,28 @@
prop="quantity" prop="quantity"
label="物料数量"> label="物料数量">
</el-table-column> </el-table-column>
<el-table-column
prop="targetQuantity"
label="剩余数量">
</el-table-column>
<el-table-column <el-table-column
prop="weight" prop="weight"
label="物料重量"> label="物料重量">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="waitWeight" prop="targetWeight"
label="实际重量"> label="剩余重量">
</el-table-column>
<el-table-column
prop="orderNo"
label="订单号">
</el-table-column>
<el-table-column
prop="createTime"
label="获取时间">
<template slot-scope="scope">
{{ scope.row.createTime ? scope.row.createTime.replace('T', ' ') : '' }}
</template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
fixed="right" fixed="right"
@@ -171,7 +178,7 @@
components: { components: {
orderDetail orderDetail
}, },
created () { activated () {
this.getDataList() this.getDataList()
}, },
methods: { methods: {
@@ -190,6 +197,10 @@
}).then(({data}) => { }).then(({data}) => {
if (data && data.code === 0) { if (data && data.code === 0) {
this.dataList = data.data.records this.dataList = data.data.records
this.dataList.forEach(item => {
item.targetQuantity = item.quantity - item.finishQuantity - item.waitQuantity
item.targetWeight = item.weight - item.finishWeight - item.waitWeight
})
this.totalPage = data.data.total this.totalPage = data.data.total
} else { } else {
this.dataList = [] this.dataList = []

View File

@@ -0,0 +1,196 @@
<template>
<div class="mod-config">
<el-table
:data="dataList"
:row-class-name="tableRowClassName"
:header-cell-style="{
background: '#eef1f6',
color: '#606266',
height: '56px'
}"
v-loading="dataListLoading"
style="width: 100%;"
ref="dataList"
>
<el-table-column type="expand">
<template slot-scope="props">
<div style="height:300px">
<el-tabs @tab-click="val => handleClick(val, props.row)">
<el-tab-pane label="任务步骤详情">
<tab-table1
:data-list="props.row.currTaskVoList"
:kiln-info-arr="kilnInfoArr"
ref="tab1Ref"
@refreshDataList="getDataList"
>
</tab-table1>
</el-tab-pane>
<el-tab-pane label="缓存详情">
<tab-table3
:data-list="props.row.inStockInfoVoList"
ref="tab3Ref"
@refreshDataList="getDataList"
>
</tab-table3>
</el-tab-pane>
<el-tab-pane label="标识卡详情">
<tab-table2
:det-data-list="props.row.currTaskDetVoList"
ref="tab2Ref"
@refreshDataList="getDataList"
>
</tab-table2>
</el-tab-pane>
</el-tabs>
</div>
</template>
</el-table-column>
<el-table-column
type="index"
header-align="center"
align="center"
label="序号"
width="50"
>
</el-table-column>
<el-table-column prop="status" label="状态">
<template slot-scope="scope">
<span>{{
scope.row.status === 0
? "等待执行"
: scope.row.status === 1
? "执行中"
: "缓存中"
}}</span>
</template>
</el-table-column>
<el-table-column prop="allStep" width="250" label="所有步骤">
</el-table-column>
<el-table-column prop="nowStep" label="当前步骤"> </el-table-column>
<el-table-column prop="isAuto" label="多步骤">
<template slot-scope="scope">
<span>{{ scope.row.isAuto === 0 ? "" : "" }}</span>
</template>
</el-table-column>
<el-table-column prop="sheetNo" label="生产单号"> </el-table-column>
<el-table-column prop="startPosition" label="开始位置"> </el-table-column>
<el-table-column
prop="createTime"
header-align="center"
align="center"
label="添加时间"
>
<template slot-scope="scope">
{{
scope.row.createTime ? scope.row.createTime.replace("T", " ") : ""
}}
</template>
</el-table-column>
</el-table>
<!-- 弹窗, 新增 / 修改 -->
<add-or-update
v-if="addOrUpdateVisible"
ref="addOrUpdate"
@refreshDataList="getDataList"
></add-or-update>
</div>
</template>
<script>
import AddOrUpdate from './components/current-task-new-add'
import tabTable1 from './components/current-task-new-table1'
import tabTable2 from './components/current-task-new-table2'
import tabTable3 from './components/current-task-new-table3'
export default {
data () {
return {
dataList: [],
kilnInfoArr: [],
dataListLoading: false,
addOrUpdateVisible: false
}
},
components: {
AddOrUpdate,
tabTable1,
tabTable2,
tabTable3
},
activated () {
this.getDataList()
},
created () {
this.$http({
url: this.$http.adornUrl('/kilnInfo/list'),
method: 'post',
data: this.$http.adornData({
current: 1,
size: 500
})
}).then(({ data }) => {
if (data && data.code === 0) {
this.kilnInfoArr = data.data
} else {
this.kilnInfoArr = []
}
})
},
methods: {
// 获取数据列表
getDataList () {
this.dataListLoading = true
this.$http({
url: this.$http.adornUrl('/currTask/currentTaskInfo'),
method: 'post',
data: this.$http.adornData({
current: 1,
size: 500
})
}).then(({ data }) => {
if (data && data.code === 0) {
this.dataList = data.data
} else {
this.dataList = []
}
this.dataListLoading = false
})
},
// 新增 / 修改
addOrUpdateHandle (id) {
this.addOrUpdateVisible = true
this.$nextTick(() => {
this.$refs.addOrUpdate.init(id)
})
},
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 ''
}
}
}
</script>
<style>
.el-table .warning-row {
background-color: oldlace;
}
.el-table .success-row {
background-color: #f0f9eb;
}
</style>

View File

@@ -1,6 +1,10 @@
<template> <template>
<div class="mod-config"> <div class="mod-config">
<el-form style="display: flex; align-items: center; justify-content: right;" :inline="true" :model="dataForm" @keyup.enter.native="getDataList()"> <div style="margin-bottom:10px;float:right">
<el-tag type="success">加工中</el-tag>
<el-tag type="warning">缓存中</el-tag>
</div>
<!-- <el-form style="display: flex; align-items: center; justify-content: right;" :inline="true" :model="dataForm" @keyup.enter.native="getDataList()">
<el-form-item> <el-form-item>
<el-select size="small" v-model="dataForm.vehicleId" filterable placeholder="车辆名称"> <el-select size="small" v-model="dataForm.vehicleId" filterable placeholder="车辆名称">
<el-option <el-option
@@ -14,76 +18,87 @@
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button size="small" @click="getDataList()">查询</el-button> <el-button size="small" @click="getDataList()">查询</el-button>
<!-- <el-button type="primary" @click="handTask()">手动执行任务</el-button> --> <el-button type="primary" @click="handTask()">手动执行任务</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form> -->
<el-table <el-table
:data="dataList" :data="dataList"
:stripe="true" :header-cell-style="{
:header-cell-style="{background:'#eef1f6',color:'#606266',height: '56px'}" background: '#eef1f6',
color: '#606266',
height: '56px'
}"
:row-class-name="tableRowClassName"
v-loading="dataListLoading" v-loading="dataListLoading"
style="width: 100%;"> style="width: 100%;"
>
<el-table-column <el-table-column
type="index" type="index"
header-align="center" header-align="center"
align="center" align="center"
label="序号" label="序号"
width="50"> width="50"
>
</el-table-column> </el-table-column>
<el-table-column <el-table-column prop="taskCode" label="任务编码"> </el-table-column>
prop="taskCode" <el-table-column prop="createTime" label="发起时间">
label="任务编码">
</el-table-column>
<el-table-column
prop="createTime"
label="发起时间">
</el-table-column>
<el-table-column
prop="taskSource"
label="任务来源">
</el-table-column>
<el-table-column
prop="status"
label="任务状态">
<template slot-scope="scope"> <template slot-scope="scope">
{{ scope.row.status >= 0 ? statusList[scope.row.status] : '' }} {{
scope.row.createTime ? scope.row.createTime.replace("T", " ") : ""
}}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column prop="status" label="任务状态">
prop="taskType" <template slot-scope="scope">
label="任务类型"> {{ scope.row.status >= 0 ? statusList[scope.row.status] : "" }}
</template>
</el-table-column>
<el-table-column prop="taskType" label="任务类型">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ <span>{{
scope.row.taskType === 0 scope.row.taskType === 0
? "缓存到窑炉加工" ? "入库到工业炉"
: scope.row.taskType === 1 : scope.row.taskType === 1
? "出炉到缓存" ? "入库到缓存"
: scope.row.taskType === 2 : scope.row.taskType === 2
? "缓存出库" ? "工业炉出库到缓存区"
: "入库缓存" : "缓存区出库"
}}</span> }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column prop="isAuto" label="多步骤">
prop="startPosition" <template slot-scope="scope">
label="开始位置"> <span>{{ scope.row.isAuto === 1 ? "是" : "否" }}</span>
</template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column prop="craftCodeId" label="工艺"> </el-table-column>
prop="targetPosition" <el-table-column prop="startPosition" label="开始位置"> </el-table-column>
label="目标位置"> <el-table-column prop="targetPosition" label="目标位置">
</el-table-column>
<el-table-column
prop="vehicleName"
label="车辆名称">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
fixed="right" fixed="right"
header-align="center" header-align="center"
align="center" align="center"
width="80" width="80"
label="详情"> label="置顶"
>
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="text" size="small" @click="Detail(scope.row.id)">详情</el-button> <el-button type="text" size="small" @click="topList(scope.row.id)"
>置顶</el-button
>
</template>
</el-table-column>
<el-table-column
fixed="right"
header-align="center"
align="center"
width="80"
label="详情"
>
<template slot-scope="scope">
<el-button type="text" size="small" @click="Detail(scope.row.id)"
>详情</el-button
>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
@@ -91,15 +106,37 @@
header-align="center" header-align="center"
align="center" align="center"
width="120" width="120"
label="操作"> label="操作"
>
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="text" size="small" @click="addOrUpdateHandle(scope.row.id)"> <el-button
<el-tooltip class="item" effect="dark" content="执行" placement="top"> type="text"
:disabled="scope.row.status === 1"
size="small"
@click="addOrUpdateHandle(scope.row.id)"
>
<el-tooltip
class="item"
effect="dark"
content="执行"
placement="top"
>
<icon-svg class="iconClass" name="维护开始"></icon-svg> <icon-svg class="iconClass" name="维护开始"></icon-svg>
</el-tooltip> </el-tooltip>
</el-button> </el-button>
<el-button type="text" style="color:red" size="small" @click="deleteHandle(scope.row.sheetNo)"> <el-button
<el-tooltip class="item" effect="dark" content="删除" placement="top"> type="text"
:disabled="scope.row.status === 1"
style="color:red"
size="small"
@click="deleteHandle(scope.row.id)"
>
<el-tooltip
class="item"
effect="dark"
content="删除"
placement="top"
>
<icon-svg class="iconClass" name="删除"></icon-svg> <icon-svg class="iconClass" name="删除"></icon-svg>
</el-tooltip> </el-tooltip>
</el-button> </el-button>
@@ -110,96 +147,161 @@
@size-change="sizeChangeHandle" @size-change="sizeChangeHandle"
@current-change="currentChangeHandle" @current-change="currentChangeHandle"
:current-page="pageIndex" :current-page="pageIndex"
:page-sizes="[10, 20, 50, 100]" :page-sizes="[10, 20, 30, 50, 100]"
:page-size="pageSize" :page-size="pageSize"
:total="totalPage" :total="totalPage"
layout="total, sizes, prev, pager, next, jumper"> layout="total, sizes, prev, pager, next, jumper"
>
</el-pagination> </el-pagination>
</div> </div>
</template> </template>
<script> <script>
// 任务状态列表 // 任务状态列表
const statusList = { const statusList = {
0: '等待执行', 0: '等待执行',
1: '执行中', 1: '执行中',
2: '执行完成', 2: '执行完成',
3: '追加后完成' 3: '追加后完成'
} }
export default { export default {
data () { data () {
return { return {
dataForm: { dataForm: {
vehicleId: '' vehicleId: ''
}, },
dataList: [], timer: '',
options: [], dataList: [],
pageIndex: 1, options: [],
pageSize: 10, pageIndex: 1,
totalPage: 0, pageSize: 30,
dataListLoading: false, totalPage: 0,
statusList dataListLoading: false,
} statusList,
processList: []
}
},
activated () {
this.getDataList()
this.timer = setInterval(this.getDataList, 180000)
// this.$http({
// url: this.$http.adornUrl('/craftInfo/page'),
// method: 'post',
// data: this.$http.adornData({
// current: 1,
// size: 999
// })
// }).then(({ data }) => {
// if (data && data.code === 0) {
// this.processList = data.data.records
// } else {
// this.processList.splice(0, this.processList.length)
// }
// })
},
methods: {
// 获取数据列表
getDataList () {
this.dataListLoading = true
this.$http({
url: this.$http.adornUrl('/currTask/currentTaskNow'),
method: 'post',
data: this.$http.adornData({
current: this.pageIndex,
size: this.pageSize,
vehicleId: this.dataForm.vehicleId
})
}).then(({ data }) => {
if (data && data.code === 0) {
const resData = data.data.records
// resData.forEach(item => {
// if (item.craftCodeId) {
// this.processList.find(item1 => {
// if (item1.id === item.craftCodeId) { item.craftName = item1.craftCode }
// })
// }
// })
this.dataList = resData
this.totalPage = data.data.total
} else {
this.dataList = []
this.totalPage = 0
}
this.dataListLoading = false
})
}, },
activated () { // 每页数
sizeChangeHandle (val) {
this.pageSize = val
this.pageIndex = 1
this.getDataList() this.getDataList()
}, },
methods: { // 当前页
// 获取数据列表 currentChangeHandle (val) {
getDataList () { this.pageIndex = val
this.dataListLoading = true this.getDataList()
this.$http({ },
url: this.$http.adornUrl('/currTask/currentTaskNow'), Detail (id) {
method: 'post', this.$router.push({ name: 'order-current-task-detail', query: { id } })
data: this.$http.adornData({ },
'current': this.pageIndex, handTask () {
'size': this.pageSize, this.$router.push({ name: 'orderProcess' })
'vehicleId': this.dataForm.vehicleId },
// 执行
addOrUpdateHandle (id) {
this.$http({
url: this.$http.adornUrl('/currTask/runTask'),
method: 'post',
data: this.$http.adornData({ id })
// params: this.$http.adornParams({ id }, false)
}).then(({ data }) => {
if (data && data.code === 0) {
this.$message({
message: '操作成功',
type: 'success',
duration: 1500,
onClose: () => {
this.getDataList()
}
}) })
}).then(({data}) => { } else {
if (data && data.code === 0) { this.$message.error(data.msg)
this.dataList = data.data.records }
this.totalPage = data.data.total })
} else { },
this.dataList = [] topList (id) {
this.totalPage = 0 this.$http({
} url: this.$http.adornUrl('/currTask/top'),
this.dataListLoading = false method: 'post',
}) data: this.$http.adornData({ id })
}, }).then(({ data }) => {
// 每页数 if (data && data.code === 0) {
sizeChangeHandle (val) { this.$message({
this.pageSize = val message: '操作成功',
this.pageIndex = 1 type: 'success',
this.getDataList() duration: 1500,
}, onClose: () => {
// 当前页 this.getDataList()
currentChangeHandle (val) { }
this.pageIndex = val })
this.getDataList() } else {
}, this.$message.error(data.msg)
Detail (id) { }
this.$router.push({name: 'order-current-task-detail', query: {id}}) })
}, },
handTask () { // 删除
this.$router.push({name: 'orderProcess'}) deleteHandle (id) {
}, this.$confirm(`确定对[${id}]进行删除操作?`, '提示', {
// 执行 confirmButtonText: '确定',
addOrUpdateHandle (id) { cancelButtonText: '取消',
console.log('执行') type: 'warning'
}, })
// 删除 .then(() => {
deleteHandle (sheetNo) {
this.$confirm(`确定对[生产单编号=${sheetNo}]进行删除操作?`, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.$http({ this.$http({
url: this.$http.adornUrl('/currTask/deleteBySheetNo'), url: this.$http.adornUrl('/currTask/deleteById'),
method: 'post', method: 'post',
data: this.$http.adornData(sheetNo) data: this.$http.adornData({ id })
}).then(({data}) => { }).then(({ data }) => {
if (data && data.code === 0) { if (data && data.code === 0) {
this.$message({ this.$message({
message: '操作成功', message: '操作成功',
@@ -213,8 +315,30 @@
this.$message.error(data.msg) this.$message.error(data.msg)
} }
}) })
}).catch(() => {}) })
.catch(() => {})
},
tableRowClassName ({ row, rowIndex }) {
if (row.status === 1) {
return 'success-row'
} else if (row.isCache === 1) {
return 'warning-row'
} }
return ''
} }
},
beforeDestroy () {
clearInterval(this.timer)
} }
}
</script> </script>
<style>
.el-table .warning-row {
background-color: oldlace;
}
.el-table .success-row {
background-color: #f0f9eb;
}
</style>

View File

@@ -0,0 +1,310 @@
<template>
<div class="mod-config">
<el-button type="primary" @click="submit()" size="small">提交</el-button>
<el-form
ref="dataForm"
:model="dataForm"
:rules="rules"
size="medium"
label-width="110px"
>
<div>
<el-row :gutter="20">
<el-col :span="8">
<el-form-item label="开始加工时间" prop="startTime">
<el-date-picker
v-model="dataForm.startTime"
value-format="yyyy-MM-dd HH:mm:ss"
:style="{ width: '100%' }"
type="datetime"
placeholder="请选择开始加工时间"
clearable
></el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="账号" prop="startUser">
<el-input
v-model="dataForm.startUser"
placeholder="请输入账号"
readonly
prefix-icon="el-icon-user-solid"
:style="{ width: '100%' }"
></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="配炉号" prop="stoveCode">
<el-select
v-model="dataForm.stoveCode"
:style="{ width: '100%' }"
filterable
placeholder="请选择配炉号"
>
<el-option
v-for="item in stoveCodeArr"
:key="item.id"
:label="item.code"
:value="item.code"
>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="车间编码" prop="workShopCode">
<el-input
v-model="dataForm.workShopCode"
placeholder="请输入车间编码"
readonly
:style="{ width: '100%' }"
>
</el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="工艺号" prop="techCode">
<el-select
v-model="dataForm.techCode"
:style="{ width: '100%' }"
filterable
placeholder="请选择工艺号"
>
<el-option
v-for="item in techCodeArr"
:key="item.id"
:label="item.craftCode"
:value="item.craftCode"
>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="炉号备注" prop="stoveRemark">
<el-input
v-model="dataForm.stoveRemark"
placeholder="请输入炉号备注"
clearable
:style="{ width: '100%' }"
>
</el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="备注" prop="remark">
<el-input
v-model="dataForm.remark"
placeholder="请输入备注"
clearable
:style="{ width: '100%' }"
></el-input>
</el-form-item>
</el-col>
</el-row>
</div>
<el-card class="box-card">
<div slot="header" class="clearfix">
<span>生产单</span>
<el-tooltip effect="dark" content="新增" placement="top">
<el-button
style="float: right; padding: 0px;color:#409EFF;font-size:20px;border:none"
icon="el-icon-circle-plus"
@click="itemsPlus()"
></el-button>
</el-tooltip>
</div>
<div v-for="(item, index) in dataForm.items" :key="index">
<el-row :gutter="20">
<el-col :span="1">
<el-tooltip effect="dark" content="删除" placement="top">
<el-button
style="color:red"
icon="el-icon-delete"
@click="itemsDelete(index)"
></el-button>
</el-tooltip>
</el-col>
<el-col :span="7">
<el-form-item label="标识卡号" prop="itemCode">
<el-input
v-model="item.itemCode"
placeholder="请输入标识卡号"
clearable
:style="{ width: '100%' }"
>
</el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="加工数量" prop="quantity">
<el-input-number
v-model="item.quantity"
placeholder="加工数量"
:step="1"
></el-input-number>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="加工重量" prop="weight">
<el-input-number
v-model="item.weight"
placeholder="加工重量"
:step="1"
></el-input-number>
</el-form-item>
</el-col>
</el-row>
</div>
</el-card>
</el-form>
</div>
</template>
<script>
export default {
components: {},
props: [],
data () {
return {
stoveCodeArr: [],
techCodeArr: [],
dataForm: {
startTime: null,
startUser: 'QJJP03',
stoveCode: undefined,
workShopCode: 'BM',
techCode: undefined,
stoveRemark: undefined,
remark: undefined,
items: [
{
itemCode: undefined,
quantity: 0,
weight: 0
}
]
},
rules: {
startTime: [
{
required: true,
message: '请选择开始加工时间',
trigger: 'change'
}
],
startUser: [
{
required: true,
message: '请输入账号',
trigger: 'blur'
}
],
stoveCode: [
{
required: true,
message: '请输入配炉号',
trigger: 'blur'
}
],
workShopCode: [
{
required: true,
message: '请输入车间编码',
trigger: 'blur'
}
],
techCode: [],
stoveRemark: [],
remark: [],
itemCode: []
}
}
},
created () {
this.init()
},
methods: {
init () {
this.$http({
url: this.$http.adornUrl('/kilnInfo/page'),
method: 'post',
data: this.$http.adornData({
current: 1,
size: 200
// paramKey: this.dataForm.paramKey
})
}).then(({ data }) => {
if (data && data.code === 0) {
this.stoveCodeArr = data.data.records
} else {
this.stoveCodeArr = []
}
})
this.$http({
url: this.$http.adornUrl('/craftInfo/page'),
method: 'post',
data: this.$http.adornData({
current: 1,
size: 200
// paramKey: this.dataForm.paramKey
})
}).then(({ data }) => {
if (data && data.code === 0) {
this.techCodeArr = data.data.records
} else {
this.techCodeArr = []
}
})
},
itemsPlus () {
const obj = {
itemCode: undefined,
quantity: 0,
weight: 0
}
this.dataForm.items.push(obj)
},
itemsDelete (index) {
this.dataForm.items.splice(index, 1)
},
submit () {
this.$refs['dataForm'].validate(valid => {
if (valid) {
let scheck = true
this.dataForm.items.find(item => {
if (!item.itemCode) {
scheck = false
}
})
if (scheck) {
this.$http({
url: this.$http.adornUrl('/apms/createProcessSheet'),
method: 'post',
data: this.$http.adornData(this.dataForm)
}).then(({ data }) => {
if (data && data.code === 0) {
this.$message({
message: '操作成功',
type: 'success',
duration: 3000,
onClose: () => {
this.$refs['dataForm'].resetFields()
this.dataForm.items.splice(0, this.dataForm.items.length)
this.itemsPlus()
}
})
} else {
this.$message.error(data.msg)
}
})
} else {
this.$message.info('请填写完整生产单')
}
}
})
}
}
}
</script>
<style scoped></style>

View File

@@ -1,18 +1,18 @@
<template> <template>
<div class="mod-log"> <div class="mod-config">
<el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()"> <el-form style="display: flex; align-items: center; justify-content: right;" :inline="true" :model="dataForm" @keyup.enter.native="getDataList()">
<el-form-item> <el-form-item>
<el-select v-model="dataForm.key" filterable placeholder="车辆名称"> <el-select size="small" v-model="dataForm.equipmentId" clearable filterable placeholder="车辆名称">
<el-option <el-option
v-for="item in options" v-for="item in carList"
:key="item.value" :key="item.id"
:label="item.label" :label="item.vehicleName"
:value="item.value" :value="item.id"
> >
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item> <!-- <el-form-item>
<el-date-picker <el-date-picker
v-model="dataForm.time" v-model="dataForm.time"
value-format="yyyy-MM-dd" value-format="yyyy-MM-dd"
@@ -22,14 +22,15 @@
end-placeholder="结束日期" end-placeholder="结束日期"
> >
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item> -->
<el-form-item> <el-form-item>
<el-button @click="getDataList()">查询</el-button> <el-button @click="getDataList()">查询</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table <el-table
:data="dataList" :data="dataList"
border :stripe="true"
:header-cell-style="{background:'#eef1f6',color:'#606266',height: '56px'}"
v-loading="dataListLoading" v-loading="dataListLoading"
style="width: 100%"> style="width: 100%">
<el-table-column <el-table-column
@@ -40,27 +41,27 @@
width="50"> width="50">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="username" prop="equipmentName"
header-align="center"
align="center"
label="车辆名称"> label="车辆名称">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="operation" prop="taskCode"
header-align="center" label="任务编码"
align="center" >
</el-table-column>
<el-table-column
prop="createTime"
label="报警时间"> label="报警时间">
<template slot-scope="scope">
{{ scope.row.createTime ? scope.row.createTime.replace('T', ' ') : '' }}
</template>
</el-table-column> </el-table-column>
<el-table-column <!-- <el-table-column
prop="time" prop="time"
header-align="center"
align="center"
label="报警级别"> label="报警级别">
</el-table-column> </el-table-column> -->
<el-table-column <el-table-column
prop="ip" prop="alarmInfo"
header-align="center"
align="center"
label="报警内容"> label="报警内容">
</el-table-column> </el-table-column>
</el-table> </el-table>
@@ -81,8 +82,7 @@
data () { data () {
return { return {
dataForm: { dataForm: {
key: '', equipmentId: null
time: []
}, },
dataList: [], dataList: [],
options: [], options: [],
@@ -90,28 +90,49 @@
pageSize: 10, pageSize: 10,
totalPage: 0, totalPage: 0,
dataListLoading: false, dataListLoading: false,
selectionDataList: [] selectionDataList: [],
carList: []
} }
}, },
created () { activated () {
this.getDataList() this.getCarList()
}, },
methods: { methods: {
// 获取车辆列表
getCarList () {
this.dataListLoading = true
this.$http({
url: this.$http.adornUrl('/vehicle/page'),
method: 'post',
data: this.$http.adornData({
current: 1,
size: 999
})
}).then(({ data }) => {
if (data && data.code === 0) {
this.carList = data.data.records
this.getDataList()
} else {
this.carList = []
}
})
},
// 获取数据列表 // 获取数据列表
getDataList () { getDataList () {
this.dataListLoading = true this.dataListLoading = true
this.$http({ this.$http({
url: this.$http.adornUrl('/sys/log/list'), url: this.$http.adornUrl('/alarmInfo/page'),
method: 'get', method: 'post',
params: this.$http.adornParams({ data: this.$http.adornData({
'page': this.pageIndex, current: this.pageIndex,
'limit': this.pageSize, size: this.pageSize,
'key': this.dataForm.key type: 1,
equipmentId: this.dataForm.equipmentId
}) })
}).then(({data}) => { }).then(({data}) => {
if (data && data.code === 0) { if (data && data.code === 0) {
this.dataList = data.page.list this.dataList = data.data.records
this.totalPage = data.page.totalCount this.totalPage = data.data.total
} else { } else {
this.dataList = [] this.dataList = []
this.totalPage = 0 this.totalPage = 0

View File

@@ -34,11 +34,17 @@
prop="abeginTime" prop="abeginTime"
label="发起时间" label="发起时间"
> >
<template slot-scope="scope">
{{ scope.row.abeginTime ? scope.row.abeginTime.replace('T', ' ') : '' }}
</template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="aendTime" prop="aendTime"
label="完成时间" label="完成时间"
> >
<template slot-scope="scope">
{{ scope.row.aendTime ? scope.row.aendTime.replace('T', ' ') : '' }}
</template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="orderSource" prop="orderSource"

View File

@@ -0,0 +1,143 @@
<!--
* @Author: gtz
* @Date: 2022-03-05 16:06:02
* @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 :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="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 style="height: 400px">
<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="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[0].name" :id="'rot' + index" :dataList="item" :chartType="chartTypeRot[index]" />
</el-row>
</el-card>
</el-col>
<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-row style="height: 400px">
<chart height="100%" width="100%" :title="item[0].name" :id="'temp' + index" :dataList="item" :chartType="chartTypeTemp[index]" />
</el-row>
</el-card>
</el-col>
</el-row>
</div>
</template>
<script>
import Chart from '@/components/Charts/MixChart.new'
import lineChart from '@/components/Charts/LineChart.new'
export default {
name: 'electric',
components: { Chart, lineChart },
data () {
return {
dataList: {
ele: [],
gas: [],
rot: [],
temp: []
},
chartTypeEle: [],
chartTypeGas: [],
chartTypeRot: [],
chartTypeTemp: [],
showId: 0
}
},
activated () {
this.getEleList()
},
mounted () {},
methods: {
// 获取能源信息
getEleList () {
this.$http({
url: this.$http.adornUrl('/electric/energyList'),
method: 'post',
data: this.$http.adornData({
'taskId': this.$route.query.taskId
})
}).then(({data}) => {
if (data.code === 0 && data.data) {
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(['柱状'])
})
}
})
}
}
}
</script>
<style scoped>
.chart-container {
position: relative;
width: 100%;
min-height: calc(100vh - 138px);
}
</style>
<style lang="scss">
.chart-container {
.el-tabs__item{
height: 120px;
}
.el-tabs__nav-next, .el-tabs__nav-prev {
line-height: 120px;
}
}
</style>

View File

@@ -0,0 +1,256 @@
<!--
* @Author: zwq
* @Date: 2022-07-29 09:56:45
* @LastEditors: zwq
* @LastEditTime: 2022-07-29 11:23:47
* @Description:
-->
<template>
<el-dialog
title="检验结果"
:visible.sync="visible"
width="85%"
>
<el-table
:data="dataList"
border
v-loading="dataListLoading"
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="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-dialog>
</template>
<script>
export default {
data () {
return {
visible: false,
sheetNo: '',
dataList: [],
dataListLoading: false
}
},
methods: {
init (sheetNo) {
this.sheetNo = sheetNo || ''
this.visible = true
this.getDataList()
},
// 获取数据列表
getDataList () {
this.dataListLoading = true
this.$http({
url: this.$http.adornUrl('/electric/checkResultList'),
method: 'post',
data: this.$http.adornData(
{sheetNo: this.sheetNo}
)
}).then(({ data }) => {
if (data) {
this.dataList = data
} else {
this.dataList = []
}
this.dataListLoading = false
})
}
}
}
</script>

View File

@@ -1,23 +1,20 @@
<template> <template>
<div class="mod-log"> <div class="mod-config">
<el-form <el-form style="display: flex; align-items: center; justify-content: right;" :inline="true" :model="dataForm" @keyup.enter.native="getDataList()">
:inline="true"
:model="dataForm"
@keyup.enter.native="getDataList()"
>
<el-form-item> <el-form-item>
<el-select v-model="dataForm.key" filterable placeholder="炉名称"> <el-select size="small" v-model="dataForm.equipmentId" clearable filterable placeholder="工业炉名称">
<el-option <el-option
v-for="item in options" v-for="item in kilnList"
:key="item.value" :key="item.id"
:label="item.label" :label="item.kilnName"
:value="item.value" :value="item.id"
> >
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item> <!-- <el-form-item>
<el-date-picker <el-date-picker
size="small"
v-model="dataForm.time" v-model="dataForm.time"
value-format="yyyy-MM-dd" value-format="yyyy-MM-dd"
type="daterange" type="daterange"
@@ -26,14 +23,15 @@
end-placeholder="结束日期" end-placeholder="结束日期"
> >
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item> -->
<el-form-item> <el-form-item>
<el-button @click="getDataList()">查询</el-button> <el-button @click="getDataList()">查询</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table <el-table
:data="dataList" :data="dataList"
border :stripe="true"
:header-cell-style="{background:'#eef1f6',color:'#606266',height: '56px'}"
v-loading="dataListLoading" v-loading="dataListLoading"
style="width: 100%" style="width: 100%"
> >
@@ -46,30 +44,30 @@
> >
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="username" prop="equipmentName"
header-align="center" label="工业炉名称"
align="center"
label="窑炉名称"
> >
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="operation" prop="taskCode"
header-align="center" label="任务编码"
align="center" >
</el-table-column>
<el-table-column
prop="createTime"
label="报警时间" label="报警时间"
> >
<template slot-scope="scope">
{{ scope.row.createTime ? scope.row.createTime.replace('T', ' ') : '' }}
</template>
</el-table-column> </el-table-column>
<el-table-column <!-- <el-table-column
prop="time" prop="time"
header-align="center"
align="center"
label="报警级别" label="报警级别"
> > -->
</el-table-column> <!-- </el-table-column> -->
<el-table-column <el-table-column
prop="ip" prop="alarmInfo"
header-align="center"
align="center"
label="报警内容" label="报警内容"
> >
</el-table-column> </el-table-column>
@@ -92,8 +90,7 @@ export default {
data () { data () {
return { return {
dataForm: { dataForm: {
key: '', equipmentId: null
time: []
}, },
dataList: [], dataList: [],
options: [], options: [],
@@ -101,28 +98,49 @@ export default {
pageSize: 10, pageSize: 10,
totalPage: 0, totalPage: 0,
dataListLoading: false, dataListLoading: false,
selectionDataList: [] selectionDataList: [],
kilnList: []
} }
}, },
created () { activated () {
this.getDataList() this.getKilnList()
}, },
methods: { methods: {
// 获取工业炉列表
getKilnList () {
this.dataListLoading = true
this.$http({
url: this.$http.adornUrl('/kilnInfo/page'),
method: 'post',
data: this.$http.adornData({
current: 1,
size: 999
})
}).then(({ data }) => {
if (data && data.code === 0) {
this.kilnList = data.data.records
this.getDataList()
} else {
this.kilnList = []
}
})
},
// 获取数据列表 // 获取数据列表
getDataList () { getDataList () {
this.dataListLoading = true this.dataListLoading = true
this.$http({ this.$http({
url: this.$http.adornUrl('/sys/log/list'), url: this.$http.adornUrl('/alarmInfo/page'),
method: 'get', method: 'post',
params: this.$http.adornParams({ data: this.$http.adornData({
page: this.pageIndex, current: this.pageIndex,
limit: this.pageSize, size: this.pageSize,
key: this.dataForm.key type: 0,
equipmentId: this.dataForm.equipmentId
}) })
}).then(({ data }) => { }).then(({ data }) => {
if (data && data.code === 0) { if (data && data.code === 0) {
this.dataList = data.page.list this.dataList = data.data.records
this.totalPage = data.page.totalCount this.totalPage = data.data.total
} else { } else {
this.dataList = [] this.dataList = []
this.totalPage = 0 this.totalPage = 0

View File

@@ -43,6 +43,9 @@
<el-table-column <el-table-column
prop="createTime" prop="createTime"
label="获取时间"> label="获取时间">
<template slot-scope="scope">
{{ scope.row.createTime ? scope.row.createTime.replace('T', ' ') : '' }}
</template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="idenCardNum" prop="idenCardNum"
@@ -55,10 +58,16 @@
<el-table-column <el-table-column
prop="abeginTime" prop="abeginTime"
label="发起时间"> label="发起时间">
<template slot-scope="scope">
{{ scope.row.abeginTime ? scope.row.abeginTime.replace('T', ' ') : '' }}
</template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="aendTime" prop="aendTime"
label="完成时间"> label="完成时间">
<template slot-scope="scope">
{{ scope.row.aendTime ? scope.row.aendTime.replace('T', ' ') : '' }}
</template>
</el-table-column> </el-table-column>
<!-- <el-table-column <!-- <el-table-column
prop="orderSource" prop="orderSource"

View File

@@ -6,7 +6,7 @@
:model="dataForm" :model="dataForm"
@keyup.enter.native="getDataList()" @keyup.enter.native="getDataList()"
> >
<el-form-item> <!-- <el-form-item>
<el-select <el-select
size="small" size="small"
v-model="dataForm.vehicleId" v-model="dataForm.vehicleId"
@@ -21,7 +21,7 @@
> >
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item> -->
<el-form-item> <el-form-item>
<el-date-picker <el-date-picker
size="small" size="small"
@@ -62,6 +62,9 @@
prop="createTime" prop="createTime"
label="发起时间" label="发起时间"
> >
<template slot-scope="scope">
{{ scope.row.createTime ? scope.row.createTime.replace('T', ' ') : '' }}
</template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="taskSource" prop="taskSource"
@@ -83,12 +86,12 @@
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ <span>{{
scope.row.taskType === 0 scope.row.taskType === 0
? "缓存到窑炉加工" ? "入库到工业炉"
: scope.row.taskType === 1 : scope.row.taskType === 1
? "出炉到缓存" ? "入库到缓存"
: scope.row.taskType === 2 : scope.row.taskType === 2
? "缓存出库" ? "工业炉出库到缓存区"
: "入库缓存" : "缓存区出库"
}}</span> }}</span>
</template> </template>
</el-table-column> </el-table-column>
@@ -102,10 +105,30 @@
label="目标位置" label="目标位置"
> >
</el-table-column> </el-table-column>
<el-table-column <!-- <el-table-column
prop="vehicleName" prop="vehicleName"
label="车辆名称" label="车辆名称"
> >
</el-table-column> -->
<el-table-column
fixed="right"
header-align="center"
align="center"
width="80"
label="检验">
<template slot-scope="scope">
<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="80"
label="能耗情况">
<template slot-scope="scope">
<el-button type="text" size="small" @click="eleHandle(scope.row.taskId)">详情</el-button>
</template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
fixed="right" fixed="right"
@@ -115,7 +138,7 @@
label="订单详情" label="订单详情"
> >
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="text" size="small" @click="LocationBtn(scope.row.id)" <el-button type="text" size="small" @click="LocationBtn(scope.row.taskId)"
>订单详情</el-button >订单详情</el-button
> >
</template> </template>
@@ -131,10 +154,12 @@
layout="total, sizes, prev, pager, next, jumper" layout="total, sizes, prev, pager, next, jumper"
> >
</el-pagination> </el-pagination>
<task-history-result v-if="taskHistoryResultVisible" ref="addOrUpdate" @refreshDataList="getDataList"></task-history-result>
</div> </div>
</template> </template>
<script> <script>
import taskHistoryResult from './components/task-history-result'
// 任务状态列表 // 任务状态列表
const statusList = { const statusList = {
0: '等待执行', 0: '等待执行',
@@ -150,6 +175,7 @@ export default {
vehicleId: '', vehicleId: '',
time: [] time: []
}, },
taskHistoryResultVisible: false,
dataList: [], dataList: [],
options2: [], options2: [],
pageIndex: 1, pageIndex: 1,
@@ -160,6 +186,9 @@ export default {
statusList statusList
} }
}, },
components: {
taskHistoryResult
},
activated () { activated () {
this.getDataList() this.getDataList()
}, },
@@ -208,6 +237,18 @@ export default {
}, },
LocationBtn (id) { LocationBtn (id) {
this.$router.push({ name: 'report-task-history-detail', query: { id } }) this.$router.push({ name: 'report-task-history-detail', query: { id } })
},
eleHandle (taskId) {
this.$router.push({
name: 'report-task-ele',
query: { taskId }
})
},
checkResult (sheetNo) {
this.taskHistoryResultVisible = true
this.$nextTick(() => {
this.$refs.addOrUpdate.init(sheetNo)
})
} }
} }
} }

View File

@@ -1,8 +1,8 @@
/* /*
* @Author: gtz * @Author: gtz
* @Date: 2021-11-19 10:10:52 * @Date: 2021-11-19 10:10:52
* @LastEditors: gtz * @LastEditors: zwq
* @LastEditTime: 2021-12-09 11:08:41 * @LastEditTime: 2022-07-07 10:51:22
* @Description: file content * @Description: file content
* @FilePath: \mt-qj-wms-ui\static\config\index-prod.js * @FilePath: \mt-qj-wms-ui\static\config\index-prod.js
*/ */
@@ -10,13 +10,14 @@
* 生产环境 * 生产环境
*/ */
;(function () { ;(function () {
window.SITE_CONFIG = {}; window.SITE_CONFIG = {}
// api接口请求地址 // api接口请求地址
window.SITE_CONFIG['baseUrl'] = '/api'; window.SITE_CONFIG['baseUrl'] = '/api'
window.SITE_CONFIG['wbUrl'] = '192.168.1.18:8080'
// cdn地址 = 域名 + 版本号 // cdn地址 = 域名 + 版本号
window.SITE_CONFIG['domain'] = './'; // 域名 window.SITE_CONFIG['domain'] = './' // 域名
window.SITE_CONFIG['version'] = ''; // 版本号(年月日时分) window.SITE_CONFIG['version'] = '' // 版本号(年月日时分)
window.SITE_CONFIG['cdnUrl'] = window.SITE_CONFIG.domain + window.SITE_CONFIG.version; window.SITE_CONFIG['cdnUrl'] = window.SITE_CONFIG.domain + window.SITE_CONFIG.version
})(); })()

View File

@@ -2,7 +2,7 @@
* @Author: zwq * @Author: zwq
* @Date: 2021-11-15 08:20:28 * @Date: 2021-11-15 08:20:28
* @LastEditors: zwq * @LastEditors: zwq
* @LastEditTime: 2021-12-07 14:48:08 * @LastEditTime: 2022-07-08 09:06:37
* @Description: * @Description:
*/ */
/** /**
@@ -12,7 +12,8 @@
window.SITE_CONFIG = {} window.SITE_CONFIG = {}
// api接口请求地址 // api接口请求地址
window.SITE_CONFIG['baseUrl'] = 'http://192.168.0.134:8080/' window.SITE_CONFIG['baseUrl'] = 'http://192.168.1.18:8080/api/'
window.SITE_CONFIG['wbUrl'] = '192.168.1.18:8080'
// cdn地址 = 域名 + 版本号 // cdn地址 = 域名 + 版本号
window.SITE_CONFIG['domain'] = './' // 域名 window.SITE_CONFIG['domain'] = './' // 域名

View File

@@ -1,19 +1,19 @@
/* /*
* @Author: gtz * @Author: gtz
* @Date: 2021-11-19 10:10:52 * @Date: 2021-11-19 10:10:52
* @LastEditors: gtz * @LastEditors: zwq
* @LastEditTime: 2021-11-30 09:40:45 * @LastEditTime: 2022-07-12 10:47:39
* @Description: file content * @Description: file content
* @FilePath: \mt-qj-wms-ui\static\config\init.js * @FilePath: \mt-qj-wms-ui\static\config\init.js
*/ */
/** /**
* 动态加载初始资源 * 动态加载初始资源
*/ */
;(function() { ;(function () {
var resList = { var resList = {
icon: window.SITE_CONFIG.cdnUrl + '/static/img/favicon.ico', icon: window.SITE_CONFIG.cdnUrl + '/static/img/top.png',
css: [ css: [
window.SITE_CONFIG.cdnUrl + '/static/css/app.css', window.SITE_CONFIG.cdnUrl + '/static/css/app.css'
], ],
js: [ js: [
// 插件, 放置业务之前加载, 以免业务需求依赖插件时, 还未加载出错 // 插件, 放置业务之前加载, 以免业务需求依赖插件时, 还未加载出错
@@ -30,53 +30,53 @@
// 图标 // 图标
(function () { (function () {
var _icon = document.createElement('link'); var _icon = document.createElement('link')
_icon.setAttribute('rel', 'shortcut icon'); _icon.setAttribute('rel', 'shortcut icon')
_icon.setAttribute('type', 'image/x-icon'); _icon.setAttribute('type', 'image/x-icon')
_icon.setAttribute('href', resList.icon); _icon.setAttribute('href', resList.icon)
document.getElementsByTagName('head')[0].appendChild(_icon); document.getElementsByTagName('head')[0].appendChild(_icon)
})(); })();
// 样式 // 样式
(function () { (function () {
document.getElementsByTagName('html')[0].style.opacity = 0; document.getElementsByTagName('html')[0].style.opacity = 0
var i = 0; var i = 0
var _style = null; var _style = null
var createStyles = function () { var createStyles = function () {
if (i >= resList.css.length) { if (i >= resList.css.length) {
document.getElementsByTagName('html')[0].style.opacity = 1; document.getElementsByTagName('html')[0].style.opacity = 1
return; return
} }
_style = document.createElement('link'); _style = document.createElement('link')
_style.href = resList.css[i]; _style.href = resList.css[i]
_style.setAttribute('rel', 'stylesheet'); _style.setAttribute('rel', 'stylesheet')
_style.onload = function () { _style.onload = function () {
i++; i++
createStyles(); createStyles()
} }
document.getElementsByTagName('head')[0].appendChild(_style); document.getElementsByTagName('head')[0].appendChild(_style)
} }
createStyles(); createStyles()
})(); })()
// 脚本 // 脚本
document.onreadystatechange = function () { document.onreadystatechange = function () {
if (document.readyState === 'interactive') { if (document.readyState === 'interactive') {
var i = 0; var i = 0
var _script = null; var _script = null
var createScripts = function () { var createScripts = function () {
if (i >= resList.js.length) { if (i >= resList.js.length) {
return; return
} }
_script = document.createElement('script'); _script = document.createElement('script')
_script.src = resList.js[i]; _script.src = resList.js[i]
_script.onload = function () { _script.onload = function () {
i++; i++
createScripts(); createScripts()
} }
document.getElementsByTagName('body')[0].appendChild(_script); document.getElementsByTagName('body')[0].appendChild(_script)
} }
createScripts(); createScripts()
} }
}; }
})(); })()

BIN
static/img/lu/BMA1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

BIN
static/img/lu/BMA2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

BIN
static/img/lu/BMA3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

BIN
static/img/lu/BMA4.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Some files were not shown because too many files have changed in this diff Show More