Files
aio-hl-new/src/pages/modules/workorder/work-order-assignment.vue

188 lines
6.0 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<div class="order-wraper">
<div class="wrap-filter-buttons">
<div class="wrap-filters">
<div class="filter_item">
<div class="filter_label">设备</div>
<div class="filter-input-wrap">
<el-select v-model="value" placeholder="请选择">
<el-option
v-for="item in options"
:key="item.device_code"
:label="item.device_name"
:value="item.device_code">
</el-option>
</el-select>
</div>
</div>
</div>
<div class="wrap-buttons">
<button class="button button--primary" @click="getDatas">查询</button>
<button class="button button--primary" :class="{'button--defalut': pkId === ''}" :disabled="disabled1" @click="_openStart">开工</button>
<button class="button button--primary" :class="{'button--defalut': pkId === ''}" :disabled="disabled2" @click="_saveReport">报工</button>
<button class="button button--primary" :class="{'button--defalut': pkId === ''}" :disabled="disabled3" @click="showDialog">强制完成</button>
</div>
</div>
<div class="grid_wraper">
<table class="filter-table">
<tr>
<th width="4%"></th>
<th width="8%">工单日期</th>
<th width="8%">工单号</th>
<th width="10%">状态</th>
<th width="8%">设备</th>
<th width="10%">物料规格</th>
<th width="10%">工序</th>
<th width="10%">计划生产</th>
<th width="9%">待生产</th>
<th width="9%">已生产</th>
<th width="13%">开工时间</th>
</tr>
<tr v-for="e in dataList" :key="e.workorder_id">
<td>
<button class="iconfont select_icon" :class="{'selected_icon': pkId === e.workorder_id}" @click="toRadio(e)"></button>
</td>
<td>{{e.create_time}}</td>
<td>{{e.workorder_code}}</td>
<td>{{['创建','下发','生产中','暂停', '完成'][Number(e.workorder_status) - 1]}}</td>
<td>{{e.device_code}}</td>
<td>{{e.material_spec}}</td>
<td>{{e.workprocedure_name}}</td>
<td>{{e.plan_qty}}</td>
<td>{{ e.report_qty }}</td>
<td>{{ e.real_qty }}</td>
<td>{{ e.realproducestart_date }}</td>
</tr>
</table>
</div>
<jxDialog
ref="child"
title="提示"
@toSure="toSureDialog"
>
<div class="form_wraper">当前操作为强制确认确定继续操作吗</div>
</jxDialog>
</div>
</template>
<script>
import { deviceList, getTable, openStart, tofinish, saveReport } from '../../../config/getData2.js'
import jxDialog from '@components/dialog.vue'
import {accSubtract} from '@config/utils.js'
export default {
components: {
jxDialog
},
data () {
return {
options: [],
value: '',
disabled1: false,
disabled2: false,
disabled3: false,
dataList: [],
pkId: '',
pkObj: {}
}
},
created () {
this._deviceList()
},
methods: {
async _deviceList () {
let res = await deviceList()
if (res.code === 200) {
this.options = [...res.content]
}
},
async getDatas () {
let res = await getTable(this.value)
res.content.map(el => {
let qty = '0'
if (Number(accSubtract(el.plan_qty, el.real_qty)) > 0) {
qty = accSubtract(el.plan_qty, el.real_qty)
}
this.$set(el, 'report_qty', qty)
})
this.dataList = [...res.content]
},
// 开工
async _openStart () {
this.disabled1 = true
if (!this.pkId) {
this.toast('请选择一行')
this.disabled1 = false
return
}
try {
let res = await openStart(this.pkId, this.value)
this.toast(res.message)
this.disabled1 = false
this.pkId = ''
this.pkObj = {}
this.getDatas()
} catch (e) {
this.disabled1 = false
}
},
// 报工
async _saveReport () {
this.disabled2 = true
if (!this.pkId) {
this.toast('请选择一行')
this.disabled2 = false
return
}
try {
let res = await saveReport(this.pkId, this.pkObj.report_qty, this.pkObj.nok_qty, this.pkObj.repare_qty)
this.toast(res.message)
this.disabled2 = false
this.pkId = ''
this.pkObj = {}
this.getDatas()
} catch (e) {
this.disabled2 = false
}
},
showDialog () {
if (!this.pkId) {
this.toast('请选择一行')
return
}
this.$refs.child.active = true
},
// 完工
async _tofinish () {
this.$refs.child.disabled = true
this.disabled3 = true
try {
let res = await tofinish(this.pkObj)
this.toast(res.message)
this.disabled3 = false
this.$refs.child.active = false
this.$refs.child.disabled = false
this.getDatas()
} catch (e) {
this.disabled3 = false
this.$refs.child.active = false
this.$refs.child.disabled = false
}
},
toSureDialog () {
this._tofinish()
},
toRadio (e) {
this.pkId = this.pkId === e.workorder_id ? '' : e.workorder_id
this.pkObj = this.pkId === e.workorder_id ? e : {}
}
}
}
</script>
<style lang="stylus" scoped>
.filter_label
width 32px
.filter-input-wrap
width calc(100% - 32px)
</style>