Compare commits
3 Commits
57b92d146a
...
837a48b372
Author | SHA1 | Date | |
---|---|---|---|
837a48b372 | |||
d894c8bbfa | |||
504cf1af05 |
@ -2,7 +2,7 @@
|
|||||||
* @Author: gtz
|
* @Author: gtz
|
||||||
* @Date: 2021-11-19 10:10:51
|
* @Date: 2021-11-19 10:10:51
|
||||||
* @LastEditors: gtz
|
* @LastEditors: gtz
|
||||||
* @LastEditTime: 2021-12-17 14:40:57
|
* @LastEditTime: 2022-03-05 16:16:24
|
||||||
* @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.189:8080',
|
target: 'http://192.168.1.66:8080',
|
||||||
changeOrigin: true,
|
changeOrigin: true,
|
||||||
pathRewrite: {
|
pathRewrite: {
|
||||||
'^/proxyApi': '/api'
|
'^/proxyApi': '/api'
|
||||||
@ -31,7 +31,7 @@ module.exports = {
|
|||||||
},
|
},
|
||||||
|
|
||||||
// Various Dev Server settings
|
// Various Dev Server settings
|
||||||
host: 'localhost', // can be overwritten by process.env.HOST
|
host: '0.0.0.0', // can be overwritten by process.env.HOST
|
||||||
port: 8001, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined
|
port: 8001, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined
|
||||||
autoOpenBrowser: true,
|
autoOpenBrowser: true,
|
||||||
errorOverlay: true,
|
errorOverlay: true,
|
||||||
|
46
package-lock.json
generated
46
package-lock.json
generated
@ -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",
|
||||||
@ -5594,14 +5593,12 @@
|
|||||||
"balanced-match": {
|
"balanced-match": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
"dev": true,
|
"dev": true
|
||||||
"optional": true
|
|
||||||
},
|
},
|
||||||
"brace-expansion": {
|
"brace-expansion": {
|
||||||
"version": "1.1.11",
|
"version": "1.1.11",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"optional": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"balanced-match": "^1.0.0",
|
"balanced-match": "^1.0.0",
|
||||||
"concat-map": "0.0.1"
|
"concat-map": "0.0.1"
|
||||||
@ -5616,20 +5613,17 @@
|
|||||||
"code-point-at": {
|
"code-point-at": {
|
||||||
"version": "1.1.0",
|
"version": "1.1.0",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
"dev": true,
|
"dev": true
|
||||||
"optional": true
|
|
||||||
},
|
},
|
||||||
"concat-map": {
|
"concat-map": {
|
||||||
"version": "0.0.1",
|
"version": "0.0.1",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
"dev": true,
|
"dev": true
|
||||||
"optional": true
|
|
||||||
},
|
},
|
||||||
"console-control-strings": {
|
"console-control-strings": {
|
||||||
"version": "1.1.0",
|
"version": "1.1.0",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
"dev": true,
|
"dev": true
|
||||||
"optional": true
|
|
||||||
},
|
},
|
||||||
"core-util-is": {
|
"core-util-is": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
@ -5746,8 +5740,7 @@
|
|||||||
"inherits": {
|
"inherits": {
|
||||||
"version": "2.0.3",
|
"version": "2.0.3",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
"dev": true,
|
"dev": true
|
||||||
"optional": true
|
|
||||||
},
|
},
|
||||||
"ini": {
|
"ini": {
|
||||||
"version": "1.3.5",
|
"version": "1.3.5",
|
||||||
@ -5759,7 +5752,6 @@
|
|||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"optional": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"number-is-nan": "^1.0.0"
|
"number-is-nan": "^1.0.0"
|
||||||
}
|
}
|
||||||
@ -5774,7 +5766,6 @@
|
|||||||
"version": "3.0.4",
|
"version": "3.0.4",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"optional": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"brace-expansion": "^1.1.7"
|
"brace-expansion": "^1.1.7"
|
||||||
}
|
}
|
||||||
@ -5782,14 +5773,12 @@
|
|||||||
"minimist": {
|
"minimist": {
|
||||||
"version": "0.0.8",
|
"version": "0.0.8",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
"dev": true,
|
"dev": true
|
||||||
"optional": true
|
|
||||||
},
|
},
|
||||||
"minipass": {
|
"minipass": {
|
||||||
"version": "2.3.5",
|
"version": "2.3.5",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"optional": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"safe-buffer": "^5.1.2",
|
"safe-buffer": "^5.1.2",
|
||||||
"yallist": "^3.0.0"
|
"yallist": "^3.0.0"
|
||||||
@ -5808,7 +5797,6 @@
|
|||||||
"version": "0.5.1",
|
"version": "0.5.1",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"optional": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"minimist": "0.0.8"
|
"minimist": "0.0.8"
|
||||||
}
|
}
|
||||||
@ -5889,8 +5877,7 @@
|
|||||||
"number-is-nan": {
|
"number-is-nan": {
|
||||||
"version": "1.0.1",
|
"version": "1.0.1",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
"dev": true,
|
"dev": true
|
||||||
"optional": true
|
|
||||||
},
|
},
|
||||||
"object-assign": {
|
"object-assign": {
|
||||||
"version": "4.1.1",
|
"version": "4.1.1",
|
||||||
@ -5902,7 +5889,6 @@
|
|||||||
"version": "1.4.0",
|
"version": "1.4.0",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"optional": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"wrappy": "1"
|
"wrappy": "1"
|
||||||
}
|
}
|
||||||
@ -5988,8 +5974,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",
|
||||||
@ -6025,7 +6010,6 @@
|
|||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"optional": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"code-point-at": "^1.0.0",
|
"code-point-at": "^1.0.0",
|
||||||
"is-fullwidth-code-point": "^1.0.0",
|
"is-fullwidth-code-point": "^1.0.0",
|
||||||
@ -6045,7 +6029,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 +6072,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 +10362,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",
|
||||||
|
@ -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
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
BIN
src/assets/img/2.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 17 KiB |
139
src/components/Charts/LineChart.new.vue
Normal file
139
src/components/Charts/LineChart.new.vue
Normal 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>
|
355
src/components/Charts/MixChart.new.vue
Normal file
355
src/components/Charts/MixChart.new.vue
Normal 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>
|
1
src/icons/svg/icon-stop.svg
Normal file
1
src/icons/svg/icon-stop.svg
Normal 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 |
@ -1,8 +1,8 @@
|
|||||||
/*
|
/*
|
||||||
* @Author: zwq
|
* @Author: zwq
|
||||||
* @Date: 2021-11-15 08:20:28
|
* @Date: 2021-11-15 08:20:28
|
||||||
* @LastEditors: zwq
|
* @LastEditors: gtz
|
||||||
* @LastEditTime: 2021-12-17 14:51:08
|
* @LastEditTime: 2022-03-05 16:05:35
|
||||||
* @Description:
|
* @Description:
|
||||||
*/
|
*/
|
||||||
/**
|
/**
|
||||||
@ -40,6 +40,7 @@ const mainRoutes = {
|
|||||||
// 提示: 如需要通过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: '/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 } },
|
||||||
@ -61,20 +62,21 @@ const mainRoutes = {
|
|||||||
{ 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')
|
||||||
|
@ -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) {
|
||||||
|
@ -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}) => {
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* @Author: zwq
|
* @Author: zwq
|
||||||
* @Date: 2021-11-17 15:49:18
|
* @Date: 2021-11-17 15:49:18
|
||||||
* @LastEditors: gtz
|
* @LastEditors: gtz
|
||||||
* @LastEditTime: 2021-12-17 17:02:25
|
* @LastEditTime: 2021-12-21 10:23:09
|
||||||
* @Description:
|
* @Description:
|
||||||
-->
|
-->
|
||||||
<template>
|
<template>
|
||||||
@ -74,7 +74,7 @@
|
|||||||
data: this.$http.adornData({ id })
|
data: this.$http.adornData({ id })
|
||||||
}).then(({data}) => {
|
}).then(({data}) => {
|
||||||
if (data && data.code === 0) {
|
if (data && data.code === 0) {
|
||||||
this.dataForm = data.data
|
this.dataList = data.data
|
||||||
} else {
|
} else {
|
||||||
this.$message.error(data.msg)
|
this.$message.error(data.msg)
|
||||||
}
|
}
|
||||||
|
@ -2,33 +2,45 @@
|
|||||||
* @Author: zwq
|
* @Author: zwq
|
||||||
* @Date: 2021-11-15 15:17:30
|
* @Date: 2021-11-15 15:17:30
|
||||||
* @LastEditors: gtz
|
* @LastEditors: gtz
|
||||||
* @LastEditTime: 2021-12-17 17:05:22
|
* @LastEditTime: 2021-12-21 15:33:40
|
||||||
* @Description:
|
* @Description:
|
||||||
-->
|
-->
|
||||||
<template>
|
<template>
|
||||||
<div v-loading="dataListLoading">
|
<div v-loading="dataListLoading">
|
||||||
<div class="mainDiv" style="margin:10px 0 100px">
|
<el-card class="base-container" style="min-height: 300px">
|
||||||
<div
|
<el-card
|
||||||
class="wareBox"
|
class="wareBox"
|
||||||
|
shadow="hover"
|
||||||
:class="[
|
:class="[
|
||||||
item.empty === 1 ? 'enableBox' : 'disableBox',
|
item.empty ? 'disableBox' : 'enableBox',
|
||||||
{ active: item.locationId === isActive }
|
{ active: item.locationId === isActive }
|
||||||
]"
|
]"
|
||||||
@click="selectBox(item.locationId)"
|
:disabled="item.empty"
|
||||||
|
@click.native="item.empty ? '' : selectBox(item.locationId)"
|
||||||
v-for="item in warehouseList"
|
v-for="item in warehouseList"
|
||||||
:key="item.locationId"
|
:key="item.locationId"
|
||||||
>
|
>
|
||||||
<div class="plat">{{ item.locationName }}</div>
|
<div class="plat">{{ item.locationName }}</div>
|
||||||
</div>
|
<el-button
|
||||||
</div>
|
v-if="!item.empty"
|
||||||
<div class="line"></div>
|
@click.stop="showDetail(item.locationId)"
|
||||||
<div class="mainDiv" style="margin:100px 0 10px">
|
class="wareBox-button"
|
||||||
<div class="flexDiv">
|
type="text"
|
||||||
<div class="wareBox end-plat" @click="selectPlat(count)" v-for="count in 4" v-bind:key="count">
|
size="mini"
|
||||||
<div class="plat">提升台{{ count }}</div>
|
icon="el-icon-search"
|
||||||
</div>
|
circle
|
||||||
</div>
|
/>
|
||||||
</div>
|
</el-card>
|
||||||
|
</el-card>
|
||||||
|
<el-card class="base-container" style="margin-top: 20px; min-height: 200px">
|
||||||
|
<el-row :gutter="30" style="padding: 20px;">
|
||||||
|
<el-col class="footer-item-container" :span="6" v-for="count in 4" :key="count">
|
||||||
|
<el-card class="footer-item-box base-container" @click.native="selectPlat(count)">
|
||||||
|
<div class="plat" style="font-size: 24px">提升台{{ count }}</div>
|
||||||
|
</el-card>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</el-card>
|
||||||
<ex-warehouse-info
|
<ex-warehouse-info
|
||||||
v-if="ExWarehouseInfoVisible"
|
v-if="ExWarehouseInfoVisible"
|
||||||
ref="ExWarehouseInfoRef"
|
ref="ExWarehouseInfoRef"
|
||||||
@ -70,7 +82,13 @@ export default {
|
|||||||
})
|
})
|
||||||
},
|
},
|
||||||
selectBox (id) {
|
selectBox (id) {
|
||||||
|
if (this.isActive === id) {
|
||||||
|
this.isActive = null
|
||||||
|
} else {
|
||||||
this.isActive = id
|
this.isActive = id
|
||||||
|
}
|
||||||
|
},
|
||||||
|
showDetail (id) {
|
||||||
this.ExWarehouseInfoVisible = true
|
this.ExWarehouseInfoVisible = true
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
this.$refs.ExWarehouseInfoRef.init(id)
|
this.$refs.ExWarehouseInfoRef.init(id)
|
||||||
@ -94,11 +112,10 @@ export default {
|
|||||||
if (data && data.code === 0) {
|
if (data && data.code === 0) {
|
||||||
this.$message({
|
this.$message({
|
||||||
type: 'success',
|
type: 'success',
|
||||||
message: '出库成功!',
|
message: '出库成功!'
|
||||||
onClose: () => {
|
|
||||||
this.getWarehouseList()
|
|
||||||
}
|
|
||||||
})
|
})
|
||||||
|
this.isActive = null
|
||||||
|
this.getWarehouseList()
|
||||||
} else {
|
} else {
|
||||||
this.$message.error(data.msg)
|
this.$message.error(data.msg)
|
||||||
}
|
}
|
||||||
@ -121,46 +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;
|
||||||
width: 100px;
|
width: 104px;
|
||||||
height: 100px;
|
height: 112px;
|
||||||
padding: 10px;
|
line-height: 72px;
|
||||||
line-height: 90px;
|
|
||||||
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;
|
||||||
@ -170,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>
|
||||||
|
139
src/views/common/order-auto-add.vue
Normal file
139
src/views/common/order-auto-add.vue
Normal file
@ -0,0 +1,139 @@
|
|||||||
|
<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" placeholder="数量"></el-input>
|
||||||
|
</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" 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: {
|
||||||
|
idenCardNum: null,
|
||||||
|
customerName: null,
|
||||||
|
materialDes: null,
|
||||||
|
orderNo: null,
|
||||||
|
productName: null,
|
||||||
|
quantity: null,
|
||||||
|
unit: 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: {
|
||||||
|
init (row, idx) {
|
||||||
|
this.visible = true
|
||||||
|
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}) => {
|
||||||
|
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) {
|
||||||
|
if (this.editIndex) {
|
||||||
|
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>
|
0
src/views/common/order-auto-detail.vue
Normal file
0
src/views/common/order-auto-detail.vue
Normal file
268
src/views/common/order-auto-submit.vue
Normal file
268
src/views/common/order-auto-submit.vue
Normal file
@ -0,0 +1,268 @@
|
|||||||
|
<!--
|
||||||
|
* @Author: gtz
|
||||||
|
* @Date: 2022-03-04 10:22:13
|
||||||
|
* @LastEditors: gtz
|
||||||
|
* @LastEditTime: 2022-03-05 12:09:38
|
||||||
|
* @Description: file content
|
||||||
|
* @FilePath: \mt-qj-wms-ui\src\views\common\order-auto-submit.vue
|
||||||
|
-->
|
||||||
|
|
||||||
|
<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="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="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" :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)">
|
||||||
|
<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="清洗炉">
|
||||||
|
<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="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" :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)">
|
||||||
|
<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="结束加工炉">
|
||||||
|
<el-form-item label="加工炉" prop="thirdPosition" style="margin-bottom: 24px">
|
||||||
|
<el-select v-model="dataForm.thirdPosition" :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)">
|
||||||
|
<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" @click="dataFormSubmit()">确定</el-button>
|
||||||
|
</span>
|
||||||
|
</el-dialog>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
props: {
|
||||||
|
kilnList: {
|
||||||
|
type: Array,
|
||||||
|
default: () => []
|
||||||
|
},
|
||||||
|
processList: {
|
||||||
|
type: Array,
|
||||||
|
default: () => []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
data () {
|
||||||
|
return {
|
||||||
|
visible: 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' }
|
||||||
|
],
|
||||||
|
secProcess: [
|
||||||
|
{ required: true, message: '工艺不能为空', trigger: 'blur' }
|
||||||
|
],
|
||||||
|
thirdPosition: [
|
||||||
|
{ required: true, message: '加工炉不能为空', trigger: 'blur' }
|
||||||
|
],
|
||||||
|
thirdProcess: [
|
||||||
|
{ required: true, message: '工艺不能为空', trigger: 'blur' }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
dataList: [],
|
||||||
|
formLoading: false,
|
||||||
|
row: null,
|
||||||
|
editIndex: null
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
init (list) {
|
||||||
|
this.dataList = list
|
||||||
|
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.secProcess,
|
||||||
|
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.$http({
|
||||||
|
url: this.$http.adornUrl(`currTask/createAutoTask`),
|
||||||
|
method: 'post',
|
||||||
|
data: this.$http.adornData(requestData)
|
||||||
|
}).then(({data}) => {
|
||||||
|
console.log(data)
|
||||||
|
if (data && data.code === 0) {
|
||||||
|
this.$message.success('任务提交成功')
|
||||||
|
this.dataList = []
|
||||||
|
sessionStorage.setItem('autoTaskList', '')
|
||||||
|
this.$emit('refreshDataList')
|
||||||
|
} else {
|
||||||
|
this.$message.warning(data.msg)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
344
src/views/common/order-auto.vue
Normal file
344
src/views/common/order-auto.vue
Normal file
@ -0,0 +1,344 @@
|
|||||||
|
<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">
|
||||||
|
<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 () {
|
||||||
|
this.submitFormVisible = true
|
||||||
|
this.$nextTick(() => {
|
||||||
|
this.$refs.submitForm.init(this.dataList)
|
||||||
|
})
|
||||||
|
},
|
||||||
|
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>
|
135
src/views/common/testdata.js
Normal file
135
src/views/common/testdata.js
Normal 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": ""
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -18,6 +18,13 @@
|
|||||||
>任务管理</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' })"
|
||||||
@ -124,7 +131,7 @@
|
|||||||
<span slot="title">当前执行任务</span>
|
<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>
|
||||||
@ -151,7 +158,7 @@
|
|||||||
></icon-svg>
|
></icon-svg>
|
||||||
<span>窑炉用气分析</span>
|
<span>窑炉用气分析</span>
|
||||||
</template>
|
</template>
|
||||||
<!-- <el-menu-item
|
<el-menu-item
|
||||||
index="sulfur-dioxide"
|
index="sulfur-dioxide"
|
||||||
@click="$router.push({ name: 'energy-sulfur-dioxide' })"
|
@click="$router.push({ name: 'energy-sulfur-dioxide' })"
|
||||||
>
|
>
|
||||||
@ -160,7 +167,7 @@
|
|||||||
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="methanol"
|
index="methanol"
|
||||||
@click="$router.push({ name: 'energy-methanol' })"
|
@click="$router.push({ name: 'energy-methanol' })"
|
||||||
@ -278,7 +285,7 @@
|
|||||||
<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>
|
||||||
|
@ -98,7 +98,7 @@
|
|||||||
<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 type="text" v-if="!(scope.row.isAuto)" style="color:red" size="small" @click="deleteHandle(scope.row.sheetNo)">
|
||||||
<el-tooltip class="item" effect="dark" content="删除" placement="top">
|
<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>
|
||||||
@ -186,7 +186,31 @@
|
|||||||
},
|
},
|
||||||
// 执行
|
// 执行
|
||||||
addOrUpdateHandle (id) {
|
addOrUpdateHandle (id) {
|
||||||
console.log('执行')
|
this.$confirm(`确定对[任务id=${id}]进行删除操作?`, '提示', {
|
||||||
|
confirmButtonText: '确定',
|
||||||
|
cancelButtonText: '取消',
|
||||||
|
type: 'warning'
|
||||||
|
}).then(() => {
|
||||||
|
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()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
this.$message.error(data.msg)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}).catch(() => {})
|
||||||
},
|
},
|
||||||
// 删除
|
// 删除
|
||||||
deleteHandle (sheetNo) {
|
deleteHandle (sheetNo) {
|
||||||
|
143
src/views/report/components/task-ele.vue
Normal file
143
src/views/report/components/task-ele.vue
Normal 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>
|
@ -107,6 +107,16 @@
|
|||||||
label="车辆名称"
|
label="车辆名称"
|
||||||
>
|
>
|
||||||
</el-table-column>
|
</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.id)">详情</el-button>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
fixed="right"
|
fixed="right"
|
||||||
header-align="center"
|
header-align="center"
|
||||||
@ -208,6 +218,12 @@ 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 }
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user