Compare commits

...

21 Commits

Author SHA1 Message Date
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
73 changed files with 1248 additions and 585 deletions

View File

@@ -1,8 +1,8 @@
/*
* @Author: gtz
* @Date: 2021-11-19 10:10:51
* @LastEditors: gtz
* @LastEditTime: 2022-03-05 16:16:24
* @LastEditors: zwq
* @LastEditTime: 2022-07-06 15:07:51
* @Description: file content
* @FilePath: \mt-qj-wms-ui\config\index.js
*/
@@ -22,7 +22,7 @@ module.exports = {
// 代理列表, 是否开启代理通过[./dev.env.js]配置
proxyTable: devEnv.OPEN_PROXY === false ? {} : {
'/proxyApi': {
target: 'http://192.168.1.7:8080',
target: 'http://192.168.1.18:8080',
changeOrigin: true,
pathRewrite: {
'^/proxyApi': '/api'
@@ -31,7 +31,7 @@ module.exports = {
},
// Various Dev Server settings
host: '0.0.0.0', // can be overwritten by process.env.HOST
host: 'localhost', // 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
autoOpenBrowser: true,
errorOverlay: true,

View File

@@ -18,7 +18,7 @@
<script>document.write('<script src="./config/index.js?t=' + new Date().getTime() + '"><\/script>');</script>
<% }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/plugins/mock-1.0.0-beta3/mock-min.js"></script>
<script src="./static/plugins/ueditor-1.4.3.3/ueditor.config.js"></script>

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

@@ -1,7 +1,7 @@
<?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">
<!-- Generator: Sketch 60 (88103) - https://sketch.com -->
<title>维护开始</title>
<title>执行</title>
<desc>Created with Sketch.</desc>
<g id="组件" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<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,8 +1,8 @@
/*
* @Author: zwq
* @Date: 2021-11-15 08:20:28
* @LastEditors: gtz
* @LastEditTime: 2022-03-05 16:05:35
* @LastEditors: zwq
* @LastEditTime: 2022-07-07 09:48:49
* @Description:
*/
/**
@@ -23,7 +23,8 @@ const _import = require('./import-' + process.env.NODE_ENV)
// 全局路由(无需嵌套上左右整体布局)
const globalRoutes = [
{ 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 } }
]
// 主入口路由(需嵌套上左右整体布局)
@@ -54,9 +55,9 @@ const mainRoutes = {
{ 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-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-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-order-history', component: _import('report/order-history'), name: 'report-order-history', 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 } },
@@ -65,7 +66,7 @@ const mainRoutes = {
{ path: '/report-task-ele', component: _import('report/components/task-ele'), name: 'report-task-ele', meta: { title: '任务能源消耗' } }
// { path: '/energy-sulfur-dioxide', component: _import('energy/sulfur-dioxide'), name: 'energy-sulfur-dioxide', meta: { title: '二氧化硫流量分析', isTab: true } },
// { path: '/energy-electric', component: _import('energy/electric'), name: 'energy-electric', meta: { title: '用电能源分析', isTab: true } },
// { path: '/energy-kiln-electric', component: _import('energy/kiln-electric'), name: 'energy-kiln-electric', meta: { title: '炉用电分析', isTab: true } },
// { path: '/energy-kiln-electric', component: _import('energy/kiln-electric'), name: 'energy-kiln-electric', meta: { title: '工业炉用电分析', isTab: true } },
// { path: '/energy-ammonia', component: _import('energy/ammonia'), name: 'energy-ammonia', meta: { title: '氨气流量分析', isTab: true } },
// { path: '/energy-methanol', component: _import('energy/methanol'), name: 'energy-methanol', meta: { title: '甲醇流量分析', isTab: true } },
// { path: '/energy-propane', component: _import('energy/propane'), name: 'energy-propane', meta: { title: '丙烷流量分析', isTab: true } },
@@ -73,10 +74,10 @@ const mainRoutes = {
// { path: '/energy-electric-acquisition', component: _import('energy/electric-acquisition'), name: 'energy-electric-acquisition', meta: { title: '电能采集数据', isTab: true } },
// { path: '/energy-gas-acquisition', component: _import('energy/gas-acquisition'), name: 'energy-gas-acquisition', meta: { title: '用气采集数据', isTab: true } },
// { path: '/energy-temperature-acquisition', component: _import('energy/temperature-acquisition'), name: 'energy-temperature-acquisition', meta: { title: '温度采集数据', isTab: true } },
// { path: '/energy-process-temperature', component: _import('energy/process-temperature'), name: 'energy-process-temperature', meta: { title: '炉加工温度', isTab: true } },
// { path: '/energy-process-temperature', component: _import('energy/process-temperature'), name: 'energy-process-temperature', meta: { title: '工业炉加工温度', isTab: true } },
// { path: '/energy-sump-temperature', component: _import('energy/sump-temperature'), name: 'energy-sump-temperature', 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 } }
// { path: '/energy-kiln-speed', component: _import('energy/kiln-speed'), name: 'energy-kiln-speed', meta: { title: '工业炉速度参数', isTab: true } }
],
beforeEnter (to, from, next) {
let token = Vue.cookie.get('token')

View File

@@ -1,6 +1,12 @@
<template>
<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-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-select size="small" v-model="dataForm.paramKey" filterable placeholder="名称">
<el-option
@@ -51,6 +57,18 @@
prop="code"
label="编码">
</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
prop="vehicleAlias"
label="缩写">
@@ -120,6 +138,34 @@
this.getDataList()
},
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 () {
this.dataListLoading = true

View File

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

@@ -2,7 +2,7 @@
* @Author: zwq
* @Date: 2021-11-15 15:17:30
* @LastEditors: zwq
* @LastEditTime: 2022-03-18 15:00:32
* @LastEditTime: 2022-07-13 09:51:46
* @Description:
-->
<template>
@@ -36,7 +36,7 @@
<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>
<div class="plat" style="font-size: 24px">出库液压台{{ count }}</div>
</el-card>
</el-col>
</el-row>
@@ -63,7 +63,7 @@ export default {
components: {
ExWarehouseInfo
},
created () {
activated () {
this.getWarehouseList()
},
methods: {

View File

@@ -1,7 +1,7 @@
<template>
<div>
<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' })">
<p class="box-card-header">
<icon-svg class="iconClass" name="进工业炉加工"></icon-svg>
@@ -10,7 +10,7 @@
<p class="box-card-footer">Processing</p>
</el-card>
</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' })">
<p class="box-card-header">
<icon-svg class="iconClass" name="出库"></icon-svg>
@@ -19,7 +19,7 @@
<p class="box-card-footer">Warehouse</p>
</el-card>
</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' })">
<p class="box-card-header">
<icon-svg class="iconClass" name="追加加工"></icon-svg>
@@ -27,7 +27,7 @@
</p>
<p class="box-card-footer">Append</p>
</el-card>
</el-col>
</el-col> -->
</el-row>
<el-card class="mod-log">
<h3>当前任务列表</h3>
@@ -82,7 +82,7 @@
</el-table-column>
<el-table-column
prop="kilnName"
label="炉"
label="工业炉"
>
</el-table-column>
<el-table-column
@@ -100,7 +100,7 @@
<template slot-scope="scope">
<span>{{
scope.row.taskType === 0
? "缓存到炉加工"
? "缓存到工业炉加工"
: scope.row.taskType === 1
? "出炉到缓存"
: scope.row.taskType === 2

View File

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

View File

@@ -2,31 +2,79 @@
<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">
: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-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-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-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-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-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-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-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-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">
@@ -47,8 +95,10 @@
materialDes: null,
orderNo: null,
productName: null,
targetQuantity: null,
quantity: null,
unit: null,
targetWeight: null,
weight: null
},
dataRule: {
@@ -58,9 +108,7 @@
quantity: [
{ required: true, message: '数量不能为空', trigger: 'blur' }
],
weight: [
{ required: true, message: '重量不能为空', trigger: 'blur' }
]
weight: [{ required: true, message: '重量不能为空', trigger: 'blur' }]
},
formLoading: false,
row: null,
@@ -68,8 +116,29 @@
}
},
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) {
@@ -87,14 +156,13 @@
url: this.$http.adornUrl(`/orderInfo/getTaskInfoByIdenCardNum`),
method: 'get',
params: this.$http.adornParams({
'idenCardNum': this.dataForm.idenCardNum
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.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 {
@@ -108,9 +176,9 @@
},
// 表单提交
dataFormSubmit () {
this.$refs['dataForm'].validate((valid) => {
this.$refs['dataForm'].validate(valid => {
if (valid) {
if (this.editIndex) {
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))

View File

@@ -1,8 +1,8 @@
<!--
* @Author: gtz
* @Date: 2022-03-04 10:22:13
* @LastEditors: gtz
* @LastEditTime: 2022-03-05 12:09:38
* @LastEditors: zwq
* @LastEditTime: 2022-07-13 10:11:05
* @Description: file content
* @FilePath: \mt-qj-wms-ui\src\views\common\order-auto-submit.vue
-->
@@ -15,7 +15,7 @@
<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="1" label="化炉加工"></el-option>
<el-option :value="2" label="多功能炉加工"></el-option>
</el-select>
</el-form-item>
@@ -25,50 +25,54 @@
<el-option :value="1" label="复加工" />
</el-select>
</el-form-item>
<el-form-item v-if="dataForm.autoTaskType === 2" label="开始加工炉">
<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" :disabled="!(dataForm.autoTaskType)">
<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)">
<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="清洗炉">
<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" :disabled="!(dataForm.autoTaskType)">
<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)">
<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="结束加工炉">
<el-form-item :label="dataForm.autoTaskType !== 2?'第二步':'第三步'">
<el-form-item label="加工炉" prop="thirdPosition" style="margin-bottom: 24px">
<el-select v-model="dataForm.thirdPosition" :disabled="!(dataForm.autoTaskType)">
<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)">
<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>
@@ -76,7 +80,7 @@
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="visible = false">取消</el-button>
<el-button type="primary" @click="dataFormSubmit()">确定</el-button>
<el-button type="primary" :loading="btnLoad" @click="dataFormSubmit()">确定</el-button>
</span>
</el-dialog>
</template>
@@ -96,6 +100,7 @@
data () {
return {
visible: false,
btnLoad: false,
dataForm: {
autoTaskType: null,
processType: null,
@@ -126,9 +131,6 @@
secPosition: [
{ required: true, message: '加工炉不能为空', trigger: 'blur' }
],
secProcess: [
{ required: true, message: '工艺不能为空', trigger: 'blur' }
],
thirdPosition: [
{ required: true, message: '加工炉不能为空', trigger: 'blur' }
],
@@ -139,12 +141,38 @@
dataList: [],
formLoading: false,
row: null,
editIndex: null
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()
@@ -217,7 +245,7 @@
requestData.taskCreateParamList.push({
autoTaskStep: 1,
autoTaskType: this.dataForm.autoTaskType,
craftCode: this.dataForm.secProcess,
craftCode: this.dataForm.firstProcess,
detParams: this.dataList,
kilnId: this.dataForm.firstPosition.split(',')[0],
processType: this.dataForm.processType,
@@ -245,18 +273,26 @@
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}) => {
console.log(data)
if (data && data.code === 0) {
this.$message.success('任务提交成功')
this.dataList = []
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)
}
})

View File

@@ -86,7 +86,7 @@
</el-table-column>
</el-table>
</div>
<div class="auto-undo">
<div class="auto-undo" v-if="false">
<el-row style="margin: 10px 0; font-weight: bold">
未完成自动任务
</el-row>
@@ -193,7 +193,7 @@
this.getAutoDataList()
},
methods: {
// 获取炉、工艺列表
// 获取工业炉、工艺列表
getDictList () {
this.$http({
url: this.$http.adornUrl('/kilnInfo/page'),

View File

@@ -20,13 +20,33 @@
<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-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-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-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">
@@ -47,8 +67,10 @@
materialDes: null,
orderNo: null,
productName: null,
targetQuantity: null,
quantity: null,
unit: null,
targetWeight: null,
weight: null
},
dataRule: {
@@ -68,14 +90,35 @@
}
},
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.row = JSON.parse(JSON.stringify(row))
this.dataForm = JSON.parse(JSON.stringify(row))
this.editIndex = JSON.parse(JSON.stringify(idx))
}
this.$refs['idenCardNum'].focus()
})
@@ -90,11 +133,10 @@
'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.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 {
@@ -110,7 +152,7 @@
dataFormSubmit () {
this.$refs['dataForm'].validate((valid) => {
if (valid) {
if (this.editIndex) {
if (this.editIndex || this.editIndex === 0) {
const taskList = JSON.parse(sessionStorage.getItem('taskList'))
taskList.splice(this.editIndex, 1, this.dataForm)
sessionStorage.setItem('taskList', JSON.stringify(taskList))

View File

@@ -7,7 +7,7 @@
-->
<template>
<el-dialog
:title="!pointType ? '选择起点' : '选择炉'"
:title="!pointType ? '选择起点' : '选择工业炉'"
:close-on-click-modal="false"
:visible.sync="visible"
>

View File

@@ -23,13 +23,18 @@
<!-- <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-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>
<el-select v-model="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-item style="margin-left:1%">
<el-button type="primary" size="small" @click="submitTask()">提交任务</el-button>
<el-button type="primary" size="small" :loading="btnLoad" @click="submitTask()">提交任务</el-button>
</el-form-item>
</el-form>
<el-table
@@ -115,15 +120,18 @@
export default {
data () {
return {
btnLoad: false,
startPosition: '',
kilnId: '',
craftCode: '',
targetPosition: '',
dataList: [],
processType: null,
dataListLoading: false,
addOrUpdateVisible: false,
processPointVisible: false,
eqList: []
eqList: [],
processList: []
}
},
components: {
@@ -134,7 +142,7 @@
this.getEqList()
},
methods: {
// 获取炉列表
// 获取工业炉列表
getEqList () {
this.$http({
url: this.$http.adornUrl('/kilnInfo/page'),
@@ -151,6 +159,21 @@
}
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 () {
@@ -196,12 +219,18 @@
})
} else if (!this.kilnId) {
this.$message({
message: '请选择炉',
message: '请选择工业炉',
type: 'warning'
})
} else if (!this.processType) {
} else if (!this.craftCode) {
this.$message({
message: '请选择工艺',
type: 'warning'
})
} else if (this.processType !== 0 && this.processType !== 1) {
this.$message.warning('请选择加工类型')
} else {
this.btnLoad = true
this.$confirm(`确定提交任务?`, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
@@ -211,7 +240,7 @@
url: this.$http.adornUrl(`/currTask/createProcessTask`),
method: 'post',
data: this.$http.adornData({
craftCode: '',
craftCode: this.craftCode,
detParams: this.dataList,
kilnId: this.kilnId,
processType: this.processType,
@@ -220,15 +249,16 @@
// this.targetPosition
})
}).then(({data}) => {
console.log(data)
if (data && data.code === 0) {
this.$message.success('任务提交成功')
this.btnLoad = false
this.dataList = []
sessionStorage.setItem('taskList', '')
this.startPosition = '选择起点'
this.kilnId = '选择炉'
this.kilnId = '选择工业炉'
this.targetPosition = null
} else {
this.btnLoad = false
this.$message.warning(data.msg)
}
})

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -11,6 +11,10 @@
<icon-svg name="shouye" class="site-sidebar__menu-icon"></icon-svg>
<span slot="title">首页</span>
</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">
<template slot="title">
<icon-svg name="config" class="site-sidebar__menu-icon"></icon-svg>
@@ -23,7 +27,7 @@
@click="$router.push({ name: 'orderAuto' })"
>
<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
index="orderProcess"
@@ -128,7 +132,7 @@
@click="$router.push({ name: 'order-current-task' })"
>
<icon-svg name="editor" class="site-sidebar__menu-icon"></icon-svg>
<span slot="title">当前执行任务</span>
<span slot="title">当前任务列表</span>
</el-menu-item>
</el-submenu>
<!-- <el-submenu index="energy">
@@ -148,7 +152,7 @@
@click="$router.push({ name: 'energy-kiln-electric' })"
>
<icon-svg name="tubiao" class="site-sidebar__menu-icon"></icon-svg>
<span slot="title">炉用电分析</span>
<span slot="title">工业炉用电分析</span>
</el-menu-item>
<el-submenu index="kiln-gas">
<template slot="title">
@@ -156,7 +160,7 @@
name="config"
class="site-sidebar__menu-icon"
></icon-svg>
<span>炉用气分析</span>
<span>工业炉用气分析</span>
</template>
<el-menu-item
index="sulfur-dioxide"
@@ -246,7 +250,7 @@
name="tubiao"
class="site-sidebar__menu-icon"
></icon-svg>
<span slot="title">炉加工温度</span>
<span slot="title">工业炉加工温度</span>
</el-menu-item>
<el-menu-item
index="sump-temperature"
@@ -283,7 +287,7 @@
@click="$router.push({ name: 'energy-kiln-speed' })"
>
<icon-svg name="tubiao" class="site-sidebar__menu-icon"></icon-svg>
<span slot="title">炉速度参数</span>
<span slot="title">工业炉速度参数</span>
</el-menu-item>
</el-submenu> -->
<el-submenu index="report">
@@ -304,7 +308,7 @@
@click="$router.push({ name: 'report-kiln-alarm' })"
>
<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
index="car-alarm"
@@ -408,6 +412,10 @@ export default {
this.routeHandle(this.$route)
},
methods: {
getUrl () {
let routeData = this.$router.resolve({ path: '/board' })
window.open(routeData.href, '_blank')
},
// 路由操作
routeHandle (route) {
if (route.meta.isTab) {

View File

@@ -2,7 +2,7 @@
* @Author: zwq
* @Date: 2021-11-15 08:20:28
* @LastEditors: zwq
* @LastEditTime: 2022-03-18 14:48:46
* @LastEditTime: 2022-07-07 10:51:59
* @Description:
-->
<template>
@@ -67,8 +67,7 @@
}
},
created () {
const baseurl = window.SITE_CONFIG.baseUrl
this.url = baseurl.slice(5)
this.url = window.SITE_CONFIG.wbUrl
this.getUserInfo()
this.initWebSocket()
},
@@ -98,7 +97,7 @@
// })
},
initWebSocket () { // 初始化weosocket
const path = `ws:${this.url}/qj/websocket/${'id'}`
const path = `ws://${this.url}/qj/websocket/1`
this.websock = new WebSocket(path)
this.websock.onmessage = this.websocketonmessage
this.websock.onopen = this.websocketonopen
@@ -106,7 +105,7 @@
this.websock.onclose = this.websocketclose
},
websocketonopen () { // 连接建立之后执行send方法发送数据
this.websocketsend(JSON.stringify())
this.websocketsend(JSON.stringify(1))
},
websocketonerror () { // 连接建立失败重连
this.initWebSocket()
@@ -118,8 +117,8 @@
duration: 15000
})
},
websocketsend () { // 数据发送
this.websock.send()
websocketsend (val) { // 数据发送
this.websock.send(val)
},
websocketclose (e) { // 关闭
console.log('断开连接', e)

View File

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

View File

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

View File

@@ -1,6 +1,6 @@
<template>
<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-select size="small" v-model="dataForm.vehicleId" filterable placeholder="车辆名称">
<el-option
@@ -14,76 +14,91 @@
</el-form-item>
<el-form-item>
<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>
</el-form> -->
<el-table
:data="dataList"
:stripe="true"
:header-cell-style="{background:'#eef1f6',color:'#606266',height: '56px'}"
:header-cell-style="{
background: '#eef1f6',
color: '#606266',
height: '56px'
}"
v-loading="dataListLoading"
style="width: 100%;">
style="width: 100%;"
>
<el-table-column
type="index"
header-align="center"
align="center"
label="序号"
width="50">
width="50"
>
</el-table-column>
<el-table-column
prop="taskCode"
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="任务状态">
<el-table-column prop="taskCode" label="任务编码"> </el-table-column>
<el-table-column prop="createTime" label="发起时间">
<template slot-scope="scope">
{{ scope.row.status >= 0 ? statusList[scope.row.status] : '' }}
{{
scope.row.createTime ? scope.row.createTime.replace("T", " ") : ""
}}
</template>
</el-table-column>
<el-table-column
prop="taskType"
label="任务类型">
<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="startPosition"
label="开始位置">
<el-table-column prop="isAuto" label="多步骤">
<template slot-scope="scope">
<span>{{
scope.row.isAuto === 1
? "是"
: "否"
}}</span>
</template>
</el-table-column>
<el-table-column
prop="targetPosition"
label="目标位置">
</el-table-column>
<el-table-column
prop="vehicleName"
label="车辆名称">
<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="80"
label="详情">
label="置顶"
>
<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>
</el-table-column>
<el-table-column
@@ -91,15 +106,37 @@
header-align="center"
align="center"
width="120"
label="操作">
label="操作"
>
<template slot-scope="scope">
<el-button type="text" size="small" @click="addOrUpdateHandle(scope.row.id)">
<el-tooltip class="item" effect="dark" content="执行" placement="top">
<el-button
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>
</el-tooltip>
</el-button>
<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-button
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>
</el-tooltip>
</el-button>
@@ -113,7 +150,8 @@
:page-sizes="[10, 20, 50, 100]"
:page-size="pageSize"
:total="totalPage"
layout="total, sizes, prev, pager, next, jumper">
layout="total, sizes, prev, pager, next, jumper"
>
</el-pagination>
</div>
</template>
@@ -132,17 +170,34 @@
dataForm: {
vehicleId: ''
},
timer: '',
dataList: [],
options: [],
pageIndex: 1,
pageSize: 10,
totalPage: 0,
dataListLoading: false,
statusList
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: {
// 获取数据列表
@@ -152,13 +207,21 @@
url: this.$http.adornUrl('/currTask/currentTaskNow'),
method: 'post',
data: this.$http.adornData({
'current': this.pageIndex,
'size': this.pageSize,
'vehicleId': this.dataForm.vehicleId
current: this.pageIndex,
size: this.pageSize,
vehicleId: this.dataForm.vehicleId
})
}).then(({ data }) => {
if (data && data.code === 0) {
this.dataList = data.data.records
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 = []
@@ -206,17 +269,11 @@
}
})
},
// 删除
deleteHandle (sheetNo) {
this.$confirm(`确定对[生产单编号=${sheetNo}]进行删除操作?`, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
topList (id) {
this.$http({
url: this.$http.adornUrl('/currTask/deleteBySheetNo'),
url: this.$http.adornUrl('/currTask/top'),
method: 'post',
data: this.$http.adornData(sheetNo)
data: this.$http.adornData({ id })
}).then(({ data }) => {
if (data && data.code === 0) {
this.$message({
@@ -231,8 +288,39 @@
this.$message.error(data.msg)
}
})
}).catch(() => {})
},
// 删除
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.getDataList()
}
})
} else {
this.$message.error(data.msg)
}
})
})
.catch(() => {})
}
},
beforeDestroy () {
clearInterval(this.timer)
}
}
</script>

View File

@@ -52,6 +52,9 @@
<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="time"
@@ -91,7 +94,7 @@
carList: []
}
},
created () {
activated () {
this.getCarList()
},
methods: {

View File

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

View File

@@ -2,7 +2,7 @@
<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-item>
<el-select size="small" v-model="dataForm.equipmentId" clearable filterable placeholder="炉名称">
<el-select size="small" v-model="dataForm.equipmentId" clearable filterable placeholder="工业炉名称">
<el-option
v-for="item in kilnList"
:key="item.id"
@@ -45,7 +45,7 @@
</el-table-column>
<el-table-column
prop="equipmentName"
label="炉名称"
label="工业炉名称"
>
</el-table-column>
<el-table-column
@@ -57,6 +57,9 @@
prop="createTime"
label="报警时间"
>
<template slot-scope="scope">
{{ scope.row.createTime ? scope.row.createTime.replace('T', ' ') : '' }}
</template>
</el-table-column>
<!-- <el-table-column
prop="time"
@@ -99,11 +102,11 @@ export default {
kilnList: []
}
},
created () {
activated () {
this.getKilnList()
},
methods: {
// 获取炉列表
// 获取工业炉列表
getKilnList () {
this.dataListLoading = true
this.$http({

View File

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

View File

@@ -6,7 +6,7 @@
:model="dataForm"
@keyup.enter.native="getDataList()"
>
<el-form-item>
<!-- <el-form-item>
<el-select
size="small"
v-model="dataForm.vehicleId"
@@ -21,7 +21,7 @@
>
</el-option>
</el-select>
</el-form-item>
</el-form-item> -->
<el-form-item>
<el-date-picker
size="small"
@@ -62,6 +62,9 @@
prop="createTime"
label="发起时间"
>
<template slot-scope="scope">
{{ scope.row.createTime ? scope.row.createTime.replace('T', ' ') : '' }}
</template>
</el-table-column>
<el-table-column
prop="taskSource"
@@ -83,12 +86,12 @@
<template slot-scope="scope">
<span>{{
scope.row.taskType === 0
? "缓存到窑炉加工"
? "入库到工业炉"
: scope.row.taskType === 1
? "出炉到缓存"
? "入库到缓存"
: scope.row.taskType === 2
? "缓存出库"
: "入库缓存"
? "工业炉出库到缓存区"
: "缓存区出库"
}}</span>
</template>
</el-table-column>
@@ -102,10 +105,10 @@
label="目标位置"
>
</el-table-column>
<el-table-column
<!-- <el-table-column
prop="vehicleName"
label="车辆名称"
>
> -->
</el-table-column>
<el-table-column
fixed="right"

View File

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

View File

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

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

BIN
static/img/top.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB