管理员
4 months ago
3 changed files with 392 additions and 0 deletions
@ -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"> |
||||
|
   |
||||
|
<!-- <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> |
@ -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…
Reference in new issue