Browse Source

rev:增加看板

master
管理员 4 months ago
parent
commit
a7ff525aa7
  1. 8
      lms/nladmin-ui/src/router/routers.js
  2. 235
      lms/nladmin-ui/src/views/wms/produceScreen/index.vue
  3. 149
      lms/nladmin-ui/src/views/wms/produceScreen/produceScreen.js

8
lms/nladmin-ui/src/router/routers.js

@ -5,6 +5,14 @@ import Layout from '../layout/index'
Vue.use(Router)
export const constantRouterMap = [
{
path: '/produceScreen/:id',
component: (resolve) => require(['@/views/wms/produceScreen/index'], resolve),
hidden: true,
meta: { title: '加工看板' }
},
{
path: '/login',
meta: { title: '登录', noCache: true },

235
lms/nladmin-ui/src/views/wms/produceScreen/index.vue

@ -0,0 +1,235 @@
<template>
<div style="border: 1px solid #938d8d;margin-left: 10px;margin-right: 10px;">
<el-row>
<el-col :span="18">
<div class="grid-content bg-purple"><h2 style="margin-left: 30px;padding-top: 10px;">车间加工看板</h2></div>
<div class="grid-content bg-purple">
&ensp;&ensp;
<!-- <el-button type="primary" icon="el-icon-search" @click="queryTask(query.device_code)">搜索</el-button>-->
<el-button type="primary" icon="el-icon-thumb" @click="fresh">界面刷新</el-button>
<el-button style="margin-left: 30px;" type="warning" icon="el-icon-position" @click="callMaterial">生产叫料</el-button>
<el-button style="margin-left: 30px;" type="success" icon="el-icon-finished" @click="finish">生产完成</el-button>
<el-button style="margin-left: 30px;" type="danger" icon="el-icon-top-left" @click="materialBack">余料回库</el-button>
<el-button style="margin-left: 30px;" type="info" icon="el-icon-top-left" @click="emptyVehicleBack">空托回库</el-button>
</div>
</el-col>
<el-col :span="6">
<div class="grid-content bg-purple-light">
<h2 style="text-align:right;margin-right: 140px;">{{ getTime }}</h2>
</div>
<div class="grid-content bg-purple-light">
<p style="text-align:right;margin-right: 110px;"><b>{{ getDate }}</b></p>
</div>
</el-col>
</el-row>
<br>
<br>
<div>
<!--表格渲染-->
<el-table
ref="table"
:data="tableData"
size="small"
style="width: 100%;"
@selection-change="handleSelectionChange"
>
<el-table-column
type="selection"
width="55">
</el-table-column>
<el-table-column v-if="false" prop="produce_uuid" label="生产标识"/>
<el-table-column prop="produce_code" label="生产编码"/>
<el-table-column prop="produce_status_name" label="生产状态" :formatter="formatStatusName"/>
<el-table-column prop="device_code" label="生产设备"/>
<el-table-column prop="produce_qty" label="加工数量"/>
<el-table-column prop="finishproduce_qty" label="完工数量"/>
<el-table-column prop="order_seq" label="顺序号"/>
<el-table-column prop="formula" label="配方"/>
<el-table-column prop="pcsn" label="批次"/>
<el-table-column v-if="false" prop="material_code" label="物料编码"/>
<el-table-column prop="material_name" label="物料名字"/>
<el-table-column prop="start_time" label="开始生产时间"/>
</el-table>
<!--分页组件-->
</div>
</div>
</template>
<script>
import crudProduceTask from '@/views/wms/produceScreen/produceScreen'
import crud from '@/mixins/crud'
export default {
name: 'ProduceScreen',
mixins: [crud],
data() {
return {
currentDate: new Date(),
getTime: '',
getDate: '',
deviceList: [],
choice: '',
ProduceStatusList: [],
materialList: [],
tableData: [],
id: null
}
},
created() {
this.id = this.$route.params.id
crudProduceTask.getDevice().then(res => {
this.deviceList = res
})
crudProduceTask.getProduceStatus().then(res => {
this.ProduceStatusList = res
})
crudProduceTask.getMaterial().then(res => {
this.materialList = res
})
this.queryId()
},
mounted() {
//
const timer = setInterval(() => {
this.settime()//
}, 1000)
//
this.$once('hook:beforeDestroy', () => {
clearInterval(timer)
})
},
methods: {
settime() {
const _this = this
const yy = new Date().getFullYear()
const mm = new Date().getMonth() + 1
const dd = new Date().getDate()
const hh = new Date().getHours()
const mf = new Date().getMinutes() < 10 ? '0' + new Date().getMinutes() : new Date().getMinutes()
const ss = new Date().getSeconds() < 10 ? '0' + new Date().getSeconds() : new Date().getSeconds()
_this.getDate = yy + '年' + mm + '月' + dd + '日 ' + '星期' + '日一二三四五六'.charAt(new Date().getDay())
_this.getTime = hh + ':' + mf + ':' + ss
},
queryTask(value) {
crudProduceTask.queryTask(value).then(res => {
this.tableData = res
})
},
notify(title, type) {
this.$notify({
title: title,
type: type,
duration: 2500
})
},
fresh() {
this.queryId()
this.notify('操作成功', 'success')
},
callMaterial() {
if (this.$refs.table.selection.length === 0) {
this.notify('请选中一条记录!', 'info')
return
}
const data = this.$refs.table.selection[0]
crudProduceTask.callMaterial(data).then(res => {
this.notify('操作成功', 'success')
this.queryId()
}).cache(err => {
console.log(err.response.data.message)
})
},
finish() {
debugger
if (this.$refs.table.selection.length === 0) {
this.notify('请选中一条记录!', 'info')
return
}
// <
for (const i in this.$refs.table.selection) {
console.log(this.$refs.table.selection[i])
if (this.$refs.table.selection[i].finishproduce_qty <= this.$refs.table.selection[i].produce_qty) {
this.$confirm('完工数量小于加工数量,是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
const data = this.$refs.table.selection[0]
crudProduceTask.finish(data).then(res => {
this.notify('操作成功', 'success')
this.queryId()
}).cache(err => {
console.log(err.response.data.message)
})
}).catch(() => {
/*this.$message({
type: 'info',
message: '已取消'
})*/
})
}
}
},
materialBack() {
if (this.$refs.table.selection.length === 0) {
this.notify('请选中一条记录!', 'info')
return
}
const data = this.$refs.table.selection[0]
crudProduceTask.materialBack(data).then(res => {
this.notify('操作成功', 'success')
this.queryId()
}).cache(err => {
console.log(err.response.data.message)
})
},
emptyVehicleBack() {
const data = {
id: this.id
}
debugger
crudProduceTask.emptyVehicleBack(data).then(res => {
this.notify('操作成功', 'success')
this.queryId()
}).cache(err => {
console.log(err.response.data.message)
})
},
formatStatusName(row, column) {
for (const item of this.ProduceStatusList) {
if (item.code === row.produce_status) {
return item.name
}
}
},
changeFun(val) {
this.choice = val[0]
if (val.length > 1) {
return this.$message.error('请选择一条信息操作')
}
},
handleSelectionChange(val) {
this.multipleSelection = val
if (val.length > 1) {
this.$refs.table.clearSelection()
this.$refs.table.toggleRowSelection(val.pop())
}
},
queryId() {
const id = this.$route.params.id
crudProduceTask.queryIdDevice(id).then(res => {
this.tableData = res
})
}
}
}
</script>
<style rel="stylesheet/scss" lang="scss" scoped>
</style>

149
lms/nladmin-ui/src/views/wms/produceScreen/produceScreen.js

@ -0,0 +1,149 @@
import request from '@/utils/request'
export function add(data) {
return request({
url: 'api/produceTask/add',
method: 'post',
data
})
}
export function del(ids) {
return request({
url: 'api/produceTask/',
method: 'delete',
data: ids
})
}
export function edit(data) {
return request({
url: 'api/produceTask',
method: 'put',
data
})
}
export function getDevice() {
return request({
url: 'api/produceTask/getDevice',
method: 'get'
})
}
export function getMaterial() {
return request({
url: 'api/produceTask/getMaterial',
method: 'get'
})
}
export function getProduceStatus() {
return request({
url: 'api/produceTask/getProduceStatus',
method: 'get'
})
}
export function importExcel(id) {
return request({
url: 'api/produceTask/importExcel/' + id,
method: 'get'
})
}
export function queryTask(device_code) {
debugger
return request({
url: 'api/produceTask/queryTask/' + device_code,
method: 'get'
})
}
export function querAllTask() {
return request({
url: 'api/produceTask/querAllTask',
method: 'get'
})
}
export function callMaterial(data) {
return request({
url: 'api/produceTask/callMaterial',
method: 'put',
data
})
}
export function finish(data) {
return request({
url: 'api/produceTask/finish',
method: 'put',
data
})
}
export function materialBack(data) {
return request({
url: 'api/produceTask/materialBack',
method: 'put',
data
})
}
export function emptyVehicleBack(data) {
return request({
url: 'api/produceTask/emptyVehicleBack',
method: 'post',
data
})
}
export function queryIdDevice(id) {
return request({
url: 'api/produceTask/' + id,
method: 'get'
})
}
export function popSeek(code) {
return request({
url: 'api/produceTask/popSeek/' + code,
method: 'get'
})
}
export function queryOne() {
return request({
url: 'api/produceTask/queryOne',
method: 'get'
})
}
export function saveOrder(data) {
return request({
url: 'api/produceTask/saveOrder',
method: 'put',
data: data
})
}
export function forceFinish(data) {
return request({
url: 'api/produceTask/forceFinish',
method: 'post',
data: data
})
}
export function queryIvtByPscn(data) {
return request({
url: 'api/produceTask/queryIvtByPscn',
method: 'post',
data: data
})
}
export default {
add, edit, del, getDevice, getMaterial,
getProduceStatus, importExcel, queryTask, querAllTask,
callMaterial, finish, queryIdDevice, popSeek, queryOne, saveOrder, forceFinish, materialBack, queryIvtByPscn, emptyVehicleBack
}
Loading…
Cancel
Save