管理员
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