13 changed files with 3419 additions and 1854 deletions
-
3src/api/shopOrder/productionReport.js
-
24src/api/shopOrder/shopOrder.js
-
4src/assets/scss/global.scss
-
2src/main.js
-
27src/utils/common.js
-
0src/utils/directives.js
-
353src/views/modules/shopOrder/productionReport/common/productionLineYieldReport.vue
-
253src/views/modules/shopOrder/productionReport/searchItemToBeProduct.vue
-
631src/views/modules/shopOrder/shopOrder/common/routing.vue
-
376src/views/modules/shopOrder/shopOrder/common/routingAddAndEdit.vue
-
3590src/views/modules/shopOrder/shopOrder/shopOrder.vue
-
6src/views/modules/sys/language/common.vue
-
4src/views/modules/sys/user.vue
@ -1,34 +1,31 @@ |
|||
// 防抖
|
|||
export function debounce(fn,wait = 3000 ){ |
|||
let timer = null; |
|||
export function debounce(fn, wait = 3000) { |
|||
let timer = null; |
|||
return function () { |
|||
console.log('开始抖') |
|||
console.log(wait) |
|||
let args = arguments; |
|||
let that = this; |
|||
if (timer){ |
|||
let that = this; |
|||
if (timer) { |
|||
clearTimeout(timer) |
|||
} |
|||
console.log('开始防抖') |
|||
timer = setTimeout(function () { |
|||
timer = null; |
|||
console.log('开始防抖') |
|||
fn.apply(that,args) |
|||
},wait) |
|||
fn.apply(that, args) |
|||
}, wait) |
|||
} |
|||
} |
|||
|
|||
// 节流
|
|||
export function throttle(fn,wait = 3000 ){ |
|||
let timer = null; |
|||
export function throttle(fn, wait = 3000) { |
|||
let timer = null; |
|||
return function () { |
|||
if (timer !=null ) return; |
|||
if (timer != null) return; |
|||
let args = arguments; |
|||
let that = this; |
|||
let that = this; |
|||
clearTimeout(timer) |
|||
fn.apply(that,args) |
|||
fn.apply(that, args) |
|||
timer = setTimeout(function () { |
|||
timer = null; |
|||
},wait) |
|||
}, wait) |
|||
} |
|||
} |
|||
@ -0,0 +1,353 @@ |
|||
<template> |
|||
<div> |
|||
<el-dialog |
|||
v-drag |
|||
@close="closeDialog" |
|||
width="520px" |
|||
:title="'产量报告'" |
|||
:close-on-click-modal="false" |
|||
:visible.sync="visible"> |
|||
<el-form :inline="true" label-position="top" label-width="100px" style="margin-top: 0px;"> |
|||
<fieldset class="customer-fieldset" style="width: 482px; height: 100% ;margin-top: -10px"> |
|||
<legend class="customer-legend">产量报告</legend> |
|||
<fieldset class="customer-fieldset" style="width: 482px; height: 100%;margin-top: -5px"> |
|||
<legend class="customer-legend">订单信息</legend> |
|||
<el-row class="customer-input-color-red"> |
|||
<el-col :span="24" style="margin-top: -10px"> |
|||
<el-form-item :label="'工厂'"> |
|||
<el-input disabled v-model="itemData.site"></el-input> |
|||
</el-form-item> |
|||
<el-form-item :label="'生产订单号'"> |
|||
<el-input disabled v-model="itemData.orderNo"></el-input> |
|||
</el-form-item> |
|||
<el-form-item :label="'物料编码'"> |
|||
<el-input disabled v-model="itemData.partNo"></el-input> |
|||
</el-form-item> |
|||
</el-col> |
|||
</el-row> |
|||
<el-row class="customer-input-color-red"> |
|||
<el-col :span="24" style="margin-top: -10px"> |
|||
<el-form-item :label="'订单数量'"> |
|||
<el-input disabled v-model="itemData.qtyRequired"></el-input> |
|||
</el-form-item> |
|||
<el-form-item :label="'工序号'"> |
|||
<el-input disabled v-model="itemData.itemNo"></el-input> |
|||
</el-form-item> |
|||
<el-form-item :label="'工序名称'"> |
|||
<el-input disabled v-model="itemData.operationDesc"></el-input> |
|||
</el-form-item> |
|||
</el-col> |
|||
</el-row> |
|||
</fieldset> |
|||
<div style="margin-left: 5px"> |
|||
<el-row> |
|||
<el-col :span="24" style="margin-top: 0px"> |
|||
<el-form-item> |
|||
<span slot="label"><el-link @click="getBaseList(26)">{{'操作员'}}</el-link></span> |
|||
<el-input v-model="itemData.operator"></el-input> |
|||
</el-form-item> |
|||
<el-form-item :label="'开工时间'"> |
|||
<el-date-picker format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss" type="datetime" |
|||
style='width: 145px;' v-model="itemData.startTime"></el-date-picker> |
|||
</el-form-item> |
|||
<el-form-item :label="'生产时间'"> |
|||
<el-input class="customer-input-color-red" disabled v-model="itemData.produceTime"></el-input> |
|||
</el-form-item> |
|||
</el-col> |
|||
</el-row> |
|||
<el-row> |
|||
<el-col :span="24" style="margin-top: -10px"> |
|||
<el-form-item :label="'操作员姓名'"> |
|||
<el-input v-model="itemData.operatorName" disabled></el-input> |
|||
</el-form-item> |
|||
<el-form-item :label="'完工时间'"> |
|||
<el-date-picker format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss" type="datetime" |
|||
style='width: 145px;' v-model="itemData.finishTime"></el-date-picker> |
|||
</el-form-item> |
|||
<el-form-item :label="'停机时间'"> |
|||
<el-input type="number" oninput="value=value.replace(/[^0-9.]/g,'')" min="0" |
|||
v-model="itemData.downtime"></el-input> |
|||
</el-form-item> |
|||
</el-col> |
|||
</el-row> |
|||
<el-row> |
|||
<el-col :span="24" style="margin-top: -10px"> |
|||
<el-form-item :label="'合格数量'"> |
|||
<el-input type="number" oninput="value=value.replace(/[^0-9.]/g,'')" min="0" |
|||
v-model="itemData.qualifiedQty"></el-input> |
|||
</el-form-item> |
|||
<el-form-item :label="'不合格数量'"> |
|||
<el-input type="number" min="0" oninput="value=value.replace(/[^0-9.]/g,'')" |
|||
v-model="itemData.qualifiedNotQty"></el-input> |
|||
</el-form-item> |
|||
<el-form-item :label="'报告数量'"> |
|||
<el-input disabled class="customer-input-color-red" v-model="itemData.reportQty"></el-input> |
|||
</el-form-item> |
|||
</el-col> |
|||
</el-row> |
|||
</div> |
|||
<el-row> |
|||
<el-col :span="24" style="margin-top: -10px"> |
|||
<fieldset class="customer-fieldset" style="width: 482px; height: 100% ;margin-top: 5px"> |
|||
<legend class="customer-legend">排产班次信息</legend> |
|||
<el-row> |
|||
<el-col :span="24" style="margin-top: -10px"> |
|||
<el-form-item class="customer-item" label="排产日期:"> |
|||
<el-input v-model="pageData.scheduledDate" disabled="disabled" style="width: 120px;"></el-input> |
|||
</el-form-item> |
|||
<el-form-item class="customer-item" label="班次:"> |
|||
<el-input v-model="pageData.shiftDesc" class="customer-input-color-red" readonly="readonly" |
|||
style="width: 120px;"></el-input> |
|||
</el-form-item> |
|||
<el-button type="info" :disabled="buttonTags.selectShiftFlag" plain @click="selectSchduleShiftModal" |
|||
style="margin-left: -10px; margin-top: 20px; height: 20px; padding: 3px 3px;"> |
|||
<icon-svg name="ellipsis" style="height: 10px; width: 10px;"></icon-svg> |
|||
</el-button> |
|||
</el-col> |
|||
</el-row> |
|||
</fieldset> |
|||
</el-col> |
|||
</el-row> |
|||
<div style="margin-left: 5px"> |
|||
<el-row> |
|||
<el-col :span="24"> |
|||
<el-form-item :label="'备注'"> |
|||
<el-input v-model="itemData.remark" style="width:475PX"></el-input> |
|||
</el-form-item> |
|||
</el-col> |
|||
</el-row> |
|||
</div> |
|||
</fieldset> |
|||
</el-form> |
|||
<span slot="footer" class="dialog-footer"> |
|||
<el-button type="primary" @click="saveYieldReport">保存</el-button> |
|||
<el-button @click="visible = false" type="primary">取消</el-button> |
|||
</span> |
|||
</el-dialog> |
|||
|
|||
<!-- 班次选择组件 --> |
|||
<comSelectShift ref="comSelectShift" :close-on-click-modal="false" |
|||
:visible.sync="showShiftFlag" |
|||
@initScheduleShift="initScheduleShift"> |
|||
</comSelectShift> |
|||
<!--基础列表--> |
|||
<Chooselist ref="baseList" @getBaseData="getBaseData"></Chooselist> |
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
import { |
|||
saveYieldReport |
|||
} from "@/api/shopOrder/productionReport.js" |
|||
import {getScheduleShiftData} from '@/api/yieldReport/com_finish_roll.js'; |
|||
import comSelectShift from "../../../yieldReport/com_select_shift"; |
|||
import Chooselist from '@/views/modules/common/Chooselist' |
|||
|
|||
export default { |
|||
data() { |
|||
return { |
|||
visible: false, |
|||
showShiftFlag: false, |
|||
itemData: { |
|||
site: '', |
|||
orderNo: '', |
|||
itemNo: '', |
|||
rollNo: '*', |
|||
operator: '', |
|||
operatorName: '', |
|||
operationDesc: '', |
|||
qtyRequired: 0, |
|||
qualifiedQty: 1, |
|||
qualifiedNotQty: 0, |
|||
reportQty: 0, |
|||
startTime: this.dayjs().format('YYYY-MM-DD HH:mm:ss'), |
|||
finishTime: this.dayjs().format('YYYY-MM-DD HH:mm:ss'), |
|||
produceTime: 0, |
|||
downtime: 0, |
|||
partNo: '', |
|||
enterDate: '', |
|||
remark: '' |
|||
}, |
|||
pageData: { |
|||
site: this.$store.state.user.site, |
|||
username: this.$store.state.user.name, |
|||
resourceId: '', |
|||
reportedTime: this.dayjs().format('YYYY-MM-DD HH:mm:ss'), |
|||
reportedFlag: 'N', |
|||
scheduledDate: this.dayjs().format('YYYY-MM-DD'), |
|||
shiftDesc: '无班次' |
|||
}, |
|||
buttonTags: { |
|||
selectShiftFlag: false, |
|||
} |
|||
} |
|||
}, |
|||
watch: { |
|||
itemData: { |
|||
deep: true, |
|||
handler: function (newV, oldV) { |
|||
this.itemData.reportQty = Number(this.itemData.qualifiedQty) + Number(this.itemData.qualifiedNotQty) |
|||
let time = (this.dayjs(this.itemData.finishTime).diff(this.dayjs(this.itemData.startTime), 'minutes') / 60).toFixed(2) |
|||
this.itemData.produceTime = isNaN(time) ? 0 : time |
|||
} |
|||
} |
|||
}, |
|||
components: { |
|||
comSelectShift,/*班次选择的组件*/ |
|||
Chooselist, |
|||
}, |
|||
mounted() { |
|||
this.$nextTick(() => { |
|||
this.height = window.innerHeight - 160; |
|||
}) |
|||
}, |
|||
methods: { |
|||
closeDialog() { |
|||
this.$nextTick(() => { |
|||
Object.assign(this.$data, this.$options.data.call(this)); |
|||
}) |
|||
}, |
|||
init(row) { |
|||
this.visible = true |
|||
this.itemData = Object.assign(this.itemData, row) |
|||
// this.getScheduleShiftFlag() |
|||
}, |
|||
// 保存报工信息 |
|||
saveYieldReport() { |
|||
|
|||
if (!this.itemData.operator) { |
|||
this.$message.warning('请选择操作员!') |
|||
return |
|||
} |
|||
if (this.itemData.produceTime <= 0) { |
|||
this.$message.warning('生产时间必须大于0,请检查开工和完工时间是否正确!') |
|||
return |
|||
} |
|||
if (this.itemData.produceTime >= 12) { |
|||
this.$message.warning('生产时间不能大12个小时,请检查开工和完工时间是否正确!') |
|||
return |
|||
} |
|||
if (this.itemData.qualifiedQty.length == 0 || this.itemData.qualifiedQty <= 0) { |
|||
this.$message.warning('合格数量,必须输入,并且必须大于0!') |
|||
return |
|||
} |
|||
if (this.itemData.qualifiedNotQty.length == 0) { |
|||
this.$message.warning('不合格数量,必须输入!') |
|||
return |
|||
} |
|||
if (this.pageData.shiftDesc == '无班次') { |
|||
this.$message.warning('该时间段内没有匹配的班次信息,请联系相关人员!') |
|||
return |
|||
} |
|||
let reportDto = { |
|||
site: this.itemData.site, |
|||
orderNo: this.itemData.orderNo, |
|||
itemNo: this.itemData.itemNo, |
|||
seqNo: this.itemData.seqNo, |
|||
rollNo: '*', |
|||
sfdcReportedQty: this.itemData.reportQty, |
|||
sfdcApproveQty: this.itemData.qualifiedQty, |
|||
sfdcProdTime: this.itemData.produceTime, |
|||
sfdcDownTime: this.itemData.downtime, |
|||
startTime: this.itemData.startTime, |
|||
tillTime: this.itemData.finishTime, |
|||
remark: this.itemData.remark, |
|||
defectedQty: this.itemData.qualifiedNotQty, |
|||
operatorId: this.itemData.operator, |
|||
currentTime: this.dayjs().format('YYYY-MM-DD HH:mm:ss'), |
|||
scheduledDate: this.pageData.scheduleDate, |
|||
shiftNo: this.pageData.shiftNo, |
|||
sfdcSetupTime: 0, |
|||
sfdcSetupDownTime: 0, |
|||
sfdcProdSetupTime: 0, |
|||
sfdcManufactureTime: Number(this.itemData.produceTime)+Number(this.itemData.downtime) |
|||
} |
|||
saveYieldReport(reportDto).then(({data}) => { |
|||
if (data.code == 0) { |
|||
this.$message.success(data.msg) |
|||
} else { |
|||
this.$message.warning(data.msg) |
|||
} |
|||
}) |
|||
|
|||
}, |
|||
// 获取基础数据列表 |
|||
getBaseList(val) { |
|||
this.tagNo = val |
|||
this.$nextTick(() => { |
|||
let query = this.itemData.operator |
|||
this.$refs.baseList.init(val, query) |
|||
}) |
|||
}, |
|||
// 操作员信息 |
|||
getBaseData(val) { |
|||
this.itemData.operator = val.OperatorID |
|||
this.itemData.operatorName = val.OperatorName |
|||
this.pageData.resourceId = val.OperatorID |
|||
this.getScheduleShiftFlag() |
|||
|
|||
}, |
|||
//刷新派工单的班次信息 |
|||
getScheduleShiftFlag() { |
|||
getScheduleShiftData(this.pageData).then(({data}) => { |
|||
let specialAuth = 'N'; |
|||
//区分是否存在班次 |
|||
if (data.code == 500) { |
|||
this.pageData.shiftDesc = '无班次';//重置班次 |
|||
this.pageData.scheduledDate = '';//重置排产日期 |
|||
this.pageData.shiftNo = ''; |
|||
} else { |
|||
this.pageData.shiftDesc = data.row.shiftDesc;//重置班次 |
|||
this.pageData.scheduledDate = data.row.scheduledDate.substring(0, 10);//重置排产日期 |
|||
this.pageData.shiftNo = data.row.shiftNo; |
|||
//设置结果 |
|||
specialAuth = data.row.specialAuth; |
|||
} |
|||
//根据不同设置不同的属性 |
|||
if ("Y" === specialAuth) { |
|||
this.buttonTags.selectShiftFlag = false; |
|||
} else { |
|||
this.buttonTags.selectShiftFlag = true; |
|||
} |
|||
}); |
|||
}, |
|||
/*打开班次选择页面*/ |
|||
selectSchduleShiftModal() { |
|||
//1.首先调用菜单判断方式 打开生产过程的材料的页面 |
|||
//checkProduceButton('produceMaterialFlag'); |
|||
//打开生产过程的工具的页面 |
|||
this.$nextTick(() => { |
|||
this.showShiftFlag = true; |
|||
this.$refs.comSelectShift.init(this.pageData); |
|||
}); |
|||
}, |
|||
/*修改页面的班次和排产的时间*/ |
|||
initScheduleShift(scheduleDate, shiftDesc, username) { |
|||
//重置班次和排产的时间 |
|||
this.pageData.scheduledDate = scheduleDate.substring(0, 10); |
|||
this.pageData.shiftDesc = shiftDesc; |
|||
this.pageData.shiftNo = shiftDesc; |
|||
this.pageData.remark = username + "更改了班次." |
|||
}, |
|||
}, |
|||
created() { |
|||
this.getScheduleShiftFlag() |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style scoped lang="scss"> |
|||
/*统一的input内容颜色样式*/ |
|||
.customer-input-color-red /deep/ .el-input__inner { |
|||
color: red; |
|||
} |
|||
|
|||
.customer-fieldset /deep/ .el-input--prefix .el-input__inner { |
|||
padding-left: 20px; |
|||
} |
|||
|
|||
.customer-fieldset /deep/ .el-input__prefix { |
|||
left: 0px; |
|||
} |
|||
|
|||
</style> |
|||
@ -0,0 +1,631 @@ |
|||
<template> |
|||
<div class="mod-config"> |
|||
<el-dialog |
|||
v-drag |
|||
@close="closeDialog" |
|||
width="880px" |
|||
:title="'生产订单-工艺路线维护'" |
|||
:close-on-click-modal="false" |
|||
:visible.sync="visible"> |
|||
<el-row> |
|||
<el-col :span="24"> |
|||
<el-button @click="routAddAndEdit(0)" type="primary" style="margin-left: 2px;margin-top: 0px">{{ '新增' }} |
|||
</el-button> |
|||
<el-button @click="routAddAndEdit(1)" :disabled="disabledFlag" type="primary" |
|||
style="margin-left: 2px;margin-top: 0px">{{ '修改' }} |
|||
</el-button> |
|||
<el-button @click="removeRouteInShopOrder" :disabled="disabledFlag" type="primary" |
|||
style="margin-left: 2px;margin-top: 0px">{{ '删除' }} |
|||
</el-button> |
|||
<el-button @click="copyRouting()" :disabled="disabledFlag" type="primary" |
|||
style="margin-left: 2px;margin-top: 0px">{{ '复制' }} |
|||
</el-button> |
|||
</el-col> |
|||
</el-row> |
|||
<el-row> |
|||
<el-col style="margin-top: -5px" :span="24"> |
|||
<el-form :inline="true" label-position="top" label-width="100px" style="margin-top: 0px;"> |
|||
<el-form-item :label="'订单号'"> |
|||
<el-input class="customer-input-color-red" disabled v-model="itemData.orderNo"></el-input> |
|||
</el-form-item> |
|||
<el-form-item :label="'物料编码'"> |
|||
<el-input class="customer-input-color-red" disabled v-model="itemData.partNo"></el-input> |
|||
</el-form-item> |
|||
<el-form-item :label="'物料名称/规格'"> |
|||
<el-input class="customer-input-color-red" disabled style="width: 260px" |
|||
v-model="itemData.partDesc"></el-input> |
|||
</el-form-item> |
|||
<el-form-item :label="'工厂编号'"> |
|||
<el-input class="customer-input-color-red" disabled style="width: 80px" |
|||
v-model="itemData.site"></el-input> |
|||
</el-form-item> |
|||
</el-form> |
|||
</el-col> |
|||
</el-row> |
|||
<el-row> |
|||
<el-col :span="24"> |
|||
<el-table |
|||
ref="routingTable" |
|||
:height="height" |
|||
:data="dataList" |
|||
highlight-current-row |
|||
@current-change="handleCurrentChange" |
|||
border |
|||
v-loading="dataListLoading" |
|||
style="width: 100%;"> |
|||
<el-table-column |
|||
v-for="(item,index) in columnList" :key="index" |
|||
:sortable="item.columnSortable" |
|||
:prop="item.columnProp" |
|||
:header-align="item.headerAlign" |
|||
:show-overflow-tooltip="item.showOverflowTooltip" |
|||
:align="item.align" |
|||
:fixed="item.fixed" |
|||
:width="item.columnWidth" |
|||
:label="item.columnLabel"> |
|||
<template slot-scope="scope"> |
|||
<span v-if="!item.columnHidden"> {{ scope.row[item.columnProp] }}</span> |
|||
<span v-if="item.columnImage"><img :src="scope.row[item.columnProp]" |
|||
style="width: 100px; height: 80px"/></span> |
|||
</template> |
|||
</el-table-column> |
|||
</el-table> |
|||
</el-col> |
|||
</el-row> |
|||
</el-dialog> |
|||
|
|||
<RoutingAddAndEdit ref="routingAddAndEdit" @searchRouteInShopOrder="searchRouteInShopOrder"></RoutingAddAndEdit> |
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
import { |
|||
getRouteInShopOrder, |
|||
deleteRouteInShopOrder, |
|||
insertRouteInShopOrder, |
|||
getOrderNoRouteInMaxItemNo |
|||
} from "@/api/shopOrder/shopOrder.js" |
|||
|
|||
import RoutingAddAndEdit from './routingAddAndEdit' |
|||
|
|||
export default { |
|||
components: { |
|||
RoutingAddAndEdit |
|||
}, |
|||
data() { |
|||
return { |
|||
visible: false, |
|||
height: 350, |
|||
dataListLoading: false, |
|||
disabledFlag: true, |
|||
columnList: [ |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 6031, |
|||
serialNumber: '6031TableItemNo', |
|||
tableId: "6031Table", |
|||
tableName: "生产订单工艺路线表", |
|||
columnProp: "itemNo", |
|||
headerAlign: "center", |
|||
align: "left", |
|||
columnLabel: "序号", |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: false, |
|||
columnWidth: 40 |
|||
}, |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 6031, |
|||
serialNumber: '6031TableOperationDesc', |
|||
tableId: "6031Table", |
|||
tableName: "生产订单工艺路线表", |
|||
columnProp: "operationDesc", |
|||
headerAlign: "center", |
|||
align: "left", |
|||
columnLabel: "工序名称", |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: false, |
|||
columnWidth: 160 |
|||
}, |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 6031, |
|||
serialNumber: '6031TableWorkCenterNo', |
|||
tableId: "6031Table", |
|||
tableName: "生产订单工艺路线表", |
|||
columnProp: "workCenterNo", |
|||
headerAlign: "center", |
|||
align: "left", |
|||
columnLabel: "加工中心", |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: false, |
|||
columnWidth: 80 |
|||
}, |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 6031, |
|||
serialNumber: '6031TableWorkCenterDesc', |
|||
tableId: "6031Table", |
|||
tableName: "生产订单工艺路线表", |
|||
columnProp: "workCenterDesc", |
|||
headerAlign: "center", |
|||
align: "left", |
|||
columnLabel: "加工中心名称", |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: false, |
|||
columnWidth: 120 |
|||
}, |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 6031, |
|||
serialNumber: '6031TableMachSetupTime', |
|||
tableId: "6031Table", |
|||
tableName: "生产订单工艺路线表", |
|||
columnProp: "machSetupTime", |
|||
headerAlign: "center", |
|||
align: "right", |
|||
columnLabel: "准备时间", |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: false, |
|||
columnWidth: 80 |
|||
}, |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 6031, |
|||
serialNumber: '6031TableMachRunFactor', |
|||
tableId: "6031Table", |
|||
tableName: "生产订单工艺路线表", |
|||
columnProp: "machRunFactor", |
|||
headerAlign: "center", |
|||
align: "right", |
|||
columnLabel: "单位产出量", |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: false, |
|||
columnWidth: 100 |
|||
}, |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 6031, |
|||
serialNumber: '6031TableFactorUnit', |
|||
tableId: "6031Table", |
|||
tableName: "生产订单工艺路线表", |
|||
columnProp: "factorUnit", |
|||
headerAlign: "center", |
|||
align: "left", |
|||
columnLabel: "产出单位", |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: false, |
|||
columnWidth: 80 |
|||
}, |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 6031, |
|||
serialNumber: '6031TableTimeRequired', |
|||
tableId: "6031Table", |
|||
tableName: "生产订单工艺路线表", |
|||
columnProp: "timeRequired", |
|||
headerAlign: "center", |
|||
align: "right", |
|||
columnLabel: "需求时间", |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: false, |
|||
columnWidth: 80 |
|||
}, |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 6031, |
|||
serialNumber: '6031TableTimeReported', |
|||
tableId: "6031Table", |
|||
tableName: "生产订单工艺路线表", |
|||
columnProp: "timeReported", |
|||
headerAlign: "center", |
|||
align: "right", |
|||
columnLabel: "报告时间", |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: false, |
|||
columnWidth: 80 |
|||
}, |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 6031, |
|||
serialNumber: '6031TableEfficiency', |
|||
tableId: "6031Table", |
|||
tableName: "生产订单工艺路线表", |
|||
columnProp: "efficiency", |
|||
headerAlign: "center", |
|||
align: "right", |
|||
columnLabel: "效率", |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: false, |
|||
columnWidth: 60 |
|||
}, |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 6031, |
|||
serialNumber: '6031TableQtyRequired', |
|||
tableId: "6031Table", |
|||
tableName: "生产订单工艺路线表", |
|||
columnProp: "qtyRequired", |
|||
headerAlign: "center", |
|||
align: "right", |
|||
columnLabel: "需求数量", |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: false, |
|||
columnWidth: 80 |
|||
}, |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 6031, |
|||
serialNumber: '6031TableQtyReported', |
|||
tableId: "6031Table", |
|||
tableName: "生产订单工艺路线表", |
|||
columnProp: "qtyReported", |
|||
headerAlign: "center", |
|||
align: "right", |
|||
columnLabel: "报告数量", |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: false, |
|||
columnWidth: 80 |
|||
}, |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 6031, |
|||
serialNumber: '6031TableQtyApprove', |
|||
tableId: "6031Table", |
|||
tableName: "生产订单工艺路线表", |
|||
columnProp: "qtyApprove", |
|||
headerAlign: "center", |
|||
align: "right", |
|||
columnLabel: "合格数量", |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: false, |
|||
columnWidth: 80 |
|||
}, |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 6031, |
|||
serialNumber: '6031TablePlanStartTime', |
|||
tableId: "6031Table", |
|||
tableName: "生产订单工艺路线表", |
|||
columnProp: "planStartTime", |
|||
headerAlign: "center", |
|||
align: "left", |
|||
columnLabel: "计划开工时间", |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: false, |
|||
columnWidth: 140 |
|||
}, |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 6031, |
|||
serialNumber: '6031TablePlanFinishTime', |
|||
tableId: "6031Table", |
|||
tableName: "生产订单工艺路线表", |
|||
columnProp: "planFinishTime", |
|||
headerAlign: "center", |
|||
align: "left", |
|||
columnLabel: "计划完工时间", |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: false, |
|||
columnWidth: 140 |
|||
}, |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 6031, |
|||
serialNumber: '6031TableBarcodeID', |
|||
tableId: "6031Table", |
|||
tableName: "生产订单工艺路线表", |
|||
columnProp: "barcodeID", |
|||
headerAlign: "center", |
|||
align: "left", |
|||
columnLabel: "条形码", |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: false, |
|||
columnWidth: 150 |
|||
}, |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 6031, |
|||
serialNumber: '6031TableRemark', |
|||
tableId: "6031Table", |
|||
tableName: "生产订单工艺路线表", |
|||
columnProp: "remark", |
|||
headerAlign: "center", |
|||
align: "left", |
|||
columnLabel: "备注", |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: false, |
|||
columnWidth: 80 |
|||
}, |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 6031, |
|||
serialNumber: '6031TableClosedFlag', |
|||
tableId: "6031Table", |
|||
tableName: "生产订单工艺路线表", |
|||
columnProp: "closedFlag", |
|||
headerAlign: "center", |
|||
align: "left", |
|||
columnLabel: "是否关闭", |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: false, |
|||
columnWidth: 80 |
|||
}, |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 6031, |
|||
serialNumber: '6031TableActionNotes', |
|||
tableId: "6031Table", |
|||
tableName: "生产订单工艺路线表", |
|||
columnProp: "actionNotes", |
|||
headerAlign: "center", |
|||
align: "left", |
|||
columnLabel: "打开/关闭备忘", |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: false, |
|||
columnWidth: 200 |
|||
}, |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 6031, |
|||
serialNumber: '6031TableWorkCenterType', |
|||
tableId: "6031Table", |
|||
tableName: "生产订单工艺路线表", |
|||
columnProp: "workCenterType", |
|||
headerAlign: "center", |
|||
align: "left", |
|||
columnLabel: "加工中心类型", |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: false, |
|||
columnWidth: 120 |
|||
}, |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 6031, |
|||
serialNumber: '6031TableAvailResource', |
|||
tableId: "6031Table", |
|||
tableName: "生产订单工艺路线表", |
|||
columnProp: "availResource", |
|||
headerAlign: "center", |
|||
align: "left", |
|||
columnLabel: "可用机台", |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: false, |
|||
columnWidth: 200 |
|||
}, |
|||
|
|||
], |
|||
dataList: [], |
|||
itemData: { |
|||
orderNo: '', |
|||
partNo: '', |
|||
partDesc: '', |
|||
site: '', |
|||
lotSize: 0 |
|||
}, |
|||
selectRow: null |
|||
} |
|||
}, |
|||
watch: { |
|||
selectRow: { |
|||
deep: true, |
|||
handler: function (newV, oldV) { |
|||
if (newV == null) { |
|||
this.disabledFlag = true |
|||
} else { |
|||
this.disabledFlag = false |
|||
} |
|||
} |
|||
} |
|||
}, |
|||
methods: { |
|||
init(modelData) { |
|||
this.visible = true |
|||
this.itemData = modelData |
|||
this.searchRouteInShopOrder() |
|||
}, |
|||
// 编辑或新增 |
|||
routAddAndEdit(val) { |
|||
this.$nextTick(() => { |
|||
if (val == 1) { |
|||
this.selectRow.lotSize = this.itemData.lotSize |
|||
this.$refs.routingAddAndEdit.init(JSON.parse(JSON.stringify(this.selectRow)), 1) |
|||
} else { |
|||
let selectRow = { |
|||
actionNotes: null, |
|||
availResource: '', |
|||
barcodeID: '', |
|||
closedFlag: 'N', |
|||
crewsize: 1, |
|||
efficiency: 100, |
|||
factorUnit: '', |
|||
factorUnit_DB: null, |
|||
itemNo: null, |
|||
machRunFactor: 0, |
|||
machSetupTime: 0.0, |
|||
operationDesc: '', |
|||
orderNo: this.itemData.orderNo, |
|||
partNo: this.itemData.partNo, |
|||
planFinishTime: this.dayjs().format('YYYY-MM-DD HH:mm:ss'), |
|||
planStartTime: this.dayjs().format('YYYY-MM-DD HH:mm:ss'), |
|||
qtyApprove: 0, |
|||
qtyReported: 0, |
|||
qtyRequired: 0, |
|||
remark: null, |
|||
site: this.itemData.site, |
|||
timeReported: 0.0, |
|||
timeRequired: 0.0, |
|||
workCenterDesc: '', |
|||
workCenterNo: '', |
|||
workCenterType: '', |
|||
lotSize: this.itemData.lotSize, |
|||
} |
|||
this.$refs.routingAddAndEdit.init(JSON.parse(JSON.stringify(selectRow)), 0) |
|||
} |
|||
}) |
|||
}, |
|||
// 获取数据 |
|||
searchRouteInShopOrder() { |
|||
getRouteInShopOrder(this.itemData).then(({data}) => { |
|||
if (data.code == 0) { |
|||
this.dataList = data.dataList |
|||
} |
|||
}) |
|||
}, |
|||
// 删除 订单工序 |
|||
removeRouteInShopOrder() { |
|||
this.$confirm('确认删除该工序?', '提示', { |
|||
confirmButtonText: '确定', |
|||
cancelButtonText: '取消', |
|||
type: 'warning' |
|||
}).then(() => { |
|||
deleteRouteInShopOrder(this.selectRow).then(({data}) => { |
|||
if (data.code == 0) { |
|||
this.$message.success(data.msg) |
|||
this.searchRouteInShopOrder() |
|||
} else { |
|||
this.$message.warning(data.msg) |
|||
} |
|||
}) |
|||
}) |
|||
}, |
|||
// 复制 |
|||
copyRouting() { |
|||
// 获取最大工序 |
|||
getOrderNoRouteInMaxItemNo(this.itemData).then(({data}) => { |
|||
if (data.code == 0) { |
|||
let maxItem = JSON.parse(JSON.stringify(this.selectRow)) |
|||
maxItem.itemNo = Number(data.data) + 10 |
|||
// 保存信息 |
|||
this.addRouteInShopOrder(maxItem) |
|||
} |
|||
}) |
|||
}, |
|||
// 保存订单工序 |
|||
addRouteInShopOrder(val) { |
|||
insertRouteInShopOrder(val).then(({data}) => { |
|||
if (data.code == 0) { |
|||
this.$message.success(data.msg) |
|||
this.searchRouteInShopOrder() |
|||
} else { |
|||
this.$message.warning(data.msg) |
|||
} |
|||
}) |
|||
}, |
|||
handleCurrentChange(val) { |
|||
this.selectRow = val |
|||
}, |
|||
closeDialog() { |
|||
this.$nextTick(() => { |
|||
this.$emit('tableHanddle', this.itemData) |
|||
Object.assign(this.$data, this.$options.data.call(this)); |
|||
}) |
|||
} |
|||
}, |
|||
created() { |
|||
|
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style scoped> |
|||
.mod-config /deep/ .el-card__header { |
|||
padding: 0px 2px; |
|||
font-size: 12px; |
|||
} |
|||
|
|||
/*统一的input内容颜色样式*/ |
|||
.customer-input-color-red /deep/ .el-input__inner { |
|||
color: red; |
|||
|
|||
} |
|||
|
|||
.mod-config /deep/ .el-form-item--medium .el-form-item__content { |
|||
height: 20px; |
|||
line-height: 20px; |
|||
} |
|||
</style> |
|||
@ -0,0 +1,376 @@ |
|||
<template> |
|||
<div class="mod-config"> |
|||
<el-dialog |
|||
v-drag |
|||
@close="closeDialog" |
|||
width="690px" |
|||
class="sxm" |
|||
:title="selectRow.itemNo?'编辑工序信息':'新增工序信息'" |
|||
:close-on-click-modal="false" |
|||
:visible.sync="visible"> |
|||
<el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: 0px;"> |
|||
<el-row> |
|||
<el-col :span="24"> |
|||
<el-form-item :label="'工序号:'"> |
|||
<el-input oninput="value=value.replace(/[^0-9]/g,'')" :class="itemNoFlag?'customer-input-color-red':''" v-model="selectRow.itemNo" |
|||
:disabled="itemNoFlag" |
|||
style="width: 150px;text-align: right" |
|||
type="number"></el-input> |
|||
</el-form-item> |
|||
<el-form-item :label="'工序名称:'"> |
|||
<el-input v-model="selectRow.operationDesc" style="width: 150px"></el-input> |
|||
</el-form-item> |
|||
<el-form-item> |
|||
<span slot="label" style="" @click="getBaseList(24,0)"><a herf="#">加工中心编码:</a></span> |
|||
<el-input @input="searchWorkCenterInfo()" v-model="selectRow.workCenterNo" |
|||
style="width: 100px"></el-input> |
|||
<el-input v-model="selectRow.workCenterType" class="customer-input-color-red" disabled |
|||
style="width: 46px"></el-input> |
|||
</el-form-item> |
|||
<el-form-item> |
|||
<span slot="label" style="">加工中心名称:</span> |
|||
<el-input v-model="selectRow.workCenterDesc" class="customer-input-color-red" disabled |
|||
style="width: 150px"></el-input> |
|||
</el-form-item> |
|||
</el-col> |
|||
</el-row> |
|||
<el-row> |
|||
<el-col :span="24"> |
|||
<el-form-item :label="'准备时间:'"> |
|||
<el-input oninput="value=value.replace(/[^0-9.]/g,'')" v-model="selectRow.machSetupTime" |
|||
style="width: 150px"></el-input> |
|||
</el-form-item> |
|||
<el-form-item :label="'单位产出量:'"> |
|||
<el-input oninput="value=value.replace(/[^0-9.]/g,'')" v-model="selectRow.machRunFactor" type="number" |
|||
style="width: 150px"></el-input> |
|||
</el-form-item> |
|||
<el-form-item :label="'产出单位:'"> |
|||
<el-select filterable v-model="selectRow.factorUnit" style="width: 150px"> |
|||
<el-option label="单位/小时" value="单位/小时"></el-option> |
|||
<el-option label="小时" value="小时"></el-option> |
|||
</el-select> |
|||
</el-form-item> |
|||
<el-form-item :label="'效率:'"> |
|||
<el-input oninput="value=value.replace(/[^0-9.]/g,'')" v-model="selectRow.efficiency" |
|||
style="width: 150px"> |
|||
<span slot="suffix">%</span> |
|||
</el-input> |
|||
</el-form-item> |
|||
</el-col> |
|||
</el-row> |
|||
<el-row> |
|||
<el-col :span="24"> |
|||
<el-form-item :label="'需求时间:'"> |
|||
<el-input class="customer-input-color-red" disabled v-model="selectRow.timeRequired" |
|||
style="width: 150px"></el-input> |
|||
</el-form-item> |
|||
<el-form-item :label="'计划完工时间:'"> |
|||
<el-date-picker format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss" type="datetime" v-model="selectRow.planFinishTime" style="width: 150px"></el-date-picker> |
|||
</el-form-item> |
|||
<el-form-item :label="'计划开工时间:'"> |
|||
<el-date-picker format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss" type="datetime" v-model="selectRow.planStartTime" style="width: 150px"></el-date-picker> |
|||
</el-form-item> |
|||
<el-form-item :label="'操作工人数:'"> |
|||
<el-input oninput="value=value.replace(/[^0-9]/g,'')" v-model="selectRow.crewsize" type="number" |
|||
style="width: 150px"></el-input> |
|||
</el-form-item> |
|||
</el-col> |
|||
</el-row> |
|||
<el-row> |
|||
<el-col :span="24"> |
|||
<el-form-item :label="'备注:'"> |
|||
<el-input v-model="selectRow.remark" style="width: 150px"></el-input> |
|||
</el-form-item> |
|||
<el-form-item :label="'可用机台:'"> |
|||
<el-input v-model="selectRow.availResource" class="customer-input-color-red" disabled |
|||
style="width: 478px"></el-input> |
|||
</el-form-item> |
|||
</el-col> |
|||
</el-row> |
|||
</el-form> |
|||
<el-footer style="height:40px;margin-top: 20px;text-align:center"> |
|||
<el-button type="primary" @click="saveOrEdit">保存</el-button> |
|||
<el-button type="primary" @click="visible = false">关闭</el-button> |
|||
</el-footer> |
|||
</el-dialog> |
|||
|
|||
<Chooselist ref="baseList" @getBaseData="getBaseData"></Chooselist> |
|||
|
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
import { |
|||
getRouteInShopOrder, |
|||
insertRouteInShopOrder, |
|||
updateRouteInShopOrder, |
|||
getRoutingTimeRequired, |
|||
getWorkCenterInfo, |
|||
getOrderNoRouteInMaxItemNo, |
|||
getOrderNoItemNoCenter |
|||
} from "@/api/shopOrder/shopOrder.js" |
|||
import Chooselist from '@/views/modules/common/Chooselist' |
|||
|
|||
import {debounce, throttle} from "../../../../../utils/common"; |
|||
|
|||
export default { |
|||
components: { |
|||
Chooselist |
|||
}, |
|||
data() { |
|||
return { |
|||
visible: false, |
|||
itemNoFlag: true, |
|||
selectRow: { |
|||
actionNotes: null, |
|||
availResource: '', |
|||
barcodeID: '', |
|||
closedFlag: '', |
|||
crewsize: 1, |
|||
efficiency: 80, |
|||
factorUnit: '', |
|||
factorUnit_DB: null, |
|||
itemNo: null, |
|||
machRunFactor: 0, |
|||
machSetupTime: 0.0, |
|||
operationDesc: '', |
|||
orderNo: '', |
|||
partNo: '', |
|||
planFinishTime: '', |
|||
planStartTime: '', |
|||
qtyApprove: 0, |
|||
qtyReported: 0, |
|||
qtyRequired: 0, |
|||
remark: null, |
|||
site: '', |
|||
timeReported: 0.0, |
|||
timeRequired: 0.0, |
|||
workCenterDesc: '', |
|||
workCenterNo: '', |
|||
workCenterType: "内部", |
|||
lotSize: 0 |
|||
} |
|||
} |
|||
}, |
|||
watch: { |
|||
selectRow: { |
|||
deep: true, |
|||
handler: function (newV, oldV) { |
|||
this.getTimeRequired() |
|||
} |
|||
} |
|||
}, |
|||
methods: { |
|||
init(selectRow, operationType) { |
|||
this.visible = true |
|||
this.selectRow = Object.assign(this.selectRow, selectRow); |
|||
if (operationType == 1) { |
|||
this.itemNoFlag = true |
|||
} else { |
|||
this.itemNoFlag = false |
|||
this.searchOrderNoRouteInMaxItemNo() |
|||
} |
|||
}, |
|||
// 计算需求时间 |
|||
getTimeRequired() { |
|||
let dto = { |
|||
site:this.selectRow.site, |
|||
lotSize:this.selectRow.lotSize, |
|||
machSetupTime:this.selectRow.machSetupTime, |
|||
factorUnit:this.selectRow.factorUnit, |
|||
efficiency:this.selectRow.efficiency, |
|||
} |
|||
getRoutingTimeRequired(this.selectRow).then(({data}) => { |
|||
if (data.code == 0) { |
|||
this.selectRow.timeRequired = data.data |
|||
} |
|||
}) |
|||
}, |
|||
// 获取最大工序 , 可用机台 |
|||
searchOrderNoRouteInMaxItemNo() { |
|||
let order = { |
|||
orderNo: this.selectRow.orderNo, |
|||
site: this.selectRow.site, |
|||
} |
|||
// 工序 |
|||
getOrderNoRouteInMaxItemNo(order).then(({data}) => { |
|||
if (data.code == 0) { |
|||
this.selectRow.itemNo = Number(data.data)+10 |
|||
getOrderNoItemNoCenter( this.selectRow).then(({data})=>{ |
|||
this.selectRow.availResource = data.data |
|||
}) |
|||
} |
|||
}) |
|||
}, |
|||
// 保存或修改订单工序 |
|||
saveOrEdit() { |
|||
if (!this.selectRow.itemNo) { |
|||
this.$message.warning('工序号不能为空!') |
|||
return |
|||
} |
|||
if (!this.selectRow.operationDesc) { |
|||
this.$message.warning('工序号名称不能为空!') |
|||
return |
|||
} |
|||
if (!this.selectRow.workCenterNo) { |
|||
this.$message.warning('加工中心编码不能为空!') |
|||
return |
|||
} |
|||
if (!this.selectRow.machSetupTime) { |
|||
this.$message.warning('准备时间不能为空!') |
|||
return |
|||
} |
|||
if (!this.selectRow.factorUnit) { |
|||
this.$message.warning('请选择产出单位!') |
|||
return |
|||
} |
|||
if (!this.selectRow.efficiency) { |
|||
this.$message.warning('效率不能为空!') |
|||
return |
|||
} |
|||
if (!this.selectRow.timeRequired) { |
|||
this.$message.warning('需求时间不能为空!') |
|||
return |
|||
} |
|||
if (!this.selectRow.planFinishTime) { |
|||
this.$message.warning('计划完工时间不能为空!') |
|||
return |
|||
} if (!this.selectRow.planStartTime) { |
|||
this.$message.warning('计划开工时间不能为空!') |
|||
return |
|||
} |
|||
if (this.selectRow.planFinishTime>this.selectRow.planStartTime){ |
|||
this.$message.warning('计划开工时间不能早于计划完工时间!') |
|||
return |
|||
} |
|||
let centerInfo = { |
|||
workCenterNo: this.selectRow.workCenterNo, |
|||
active: 'Y', |
|||
site: this.$store.state.user.site |
|||
} |
|||
// 校验加功中心 |
|||
getWorkCenterInfo(centerInfo).then(({data}) => { |
|||
// itemNoFlag = true 修改 false 否则保存 |
|||
if (data.code == 0) { |
|||
if (this.itemNoFlag) { |
|||
updateRouteInShopOrder(this.selectRow).then(({data}) => { |
|||
if (data.code == 0) { |
|||
this.$message.success(data.msg) |
|||
this.visible = false |
|||
} else { |
|||
this.$message.warning(data.msg) |
|||
} |
|||
}) |
|||
} else { |
|||
this.selectRow.timeRequired = this.selectRow.lotSize |
|||
let barcodeID = '0000'+this.selectRow.itemNo |
|||
this.selectRow.barcodeID = this.selectRow.site+'-00000'+this.selectRow.orderNo+"-"+barcodeID.slice(-4) |
|||
insertRouteInShopOrder(this.selectRow).then(({data}) => { |
|||
if (data.code == 0) { |
|||
this.$message.success(data.msg) |
|||
this.visible = false |
|||
} else { |
|||
this.$message.warning(data.msg) |
|||
} |
|||
}) |
|||
} |
|||
} else { |
|||
this.$message.warning(data.msg) |
|||
} |
|||
}) |
|||
}, |
|||
// 获取数据 |
|||
searchRouteInShopOrder() { |
|||
getRouteInShopOrder(this.itemData).then(({data}) => { |
|||
if (data.code == 0) { |
|||
this.selectRow = data.dataList[0] |
|||
} |
|||
}) |
|||
}, |
|||
// 保存订单工序 |
|||
addRouteInShopOrder(val) { |
|||
|
|||
insertRouteInShopOrder(val).then(({data}) => { |
|||
if (data.code == 0) { |
|||
this.$message.success(data.msg) |
|||
this.searchRouteInShopOrder() |
|||
} else { |
|||
this.$message.warning(data.msg) |
|||
} |
|||
}) |
|||
}, |
|||
handleCurrentChange(val) { |
|||
this.selectRow = val |
|||
}, |
|||
getBaseData(val) { |
|||
if (this.tagNo === 24) { |
|||
this.selectRow.workCenterNo = val.WorkCenterNo |
|||
} |
|||
this.searchWorkCenterInfo() |
|||
}, |
|||
// 获取加工中心的信息 |
|||
searchWorkCenterInfo: debounce(function () { |
|||
let centerInfo = { |
|||
workCenterNo: this.selectRow.workCenterNo, |
|||
active: 'Y', |
|||
site: this.$store.state.user.site |
|||
} |
|||
getWorkCenterInfo(centerInfo).then(({data}) => { |
|||
if (data.code == 0) { |
|||
this.selectRow.workCenterType = data.data.workCenterType |
|||
this.selectRow.workCenterNo = data.data.workCenterNo |
|||
this.selectRow.workCenterDesc = data.data.workCenterDesc |
|||
} else { |
|||
this.selectRow.workCenterNo = '' |
|||
this.selectRow.workCenterDesc = '' |
|||
} |
|||
}) |
|||
}, 1000), |
|||
// 获取基础数据列表 |
|||
getBaseList(val, val2) { |
|||
this.tagNo = val |
|||
this.tagNo2 = val2 |
|||
this.$nextTick(() => { |
|||
let strVal = ""; |
|||
if (val === 24) { |
|||
strVal = this.selectRow.workCenterNo |
|||
} |
|||
this.$refs.baseList.init(val, strVal) |
|||
}) |
|||
}, |
|||
closeDialog() { |
|||
this.$nextTick(() => { |
|||
this.$emit('searchRouteInShopOrder') |
|||
Object.assign(this.$data, this.$options.data.call(this)); |
|||
}) |
|||
} |
|||
}, |
|||
created() { |
|||
|
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style scoped> |
|||
.mod-config /deep/ .el-card__header { |
|||
padding: 0px 2px; |
|||
font-size: 12px; |
|||
} |
|||
|
|||
.mod-config /deep/ .el-form-item--medium .el-form-item__content { |
|||
height: 20px; |
|||
line-height: 20px; |
|||
} |
|||
|
|||
.customer-input-color-red /deep/ .el-input__inner { |
|||
color: red; |
|||
} |
|||
|
|||
.sxm /deep/ .el-input--prefix .el-input__inner { |
|||
padding-left: 20px; |
|||
} |
|||
|
|||
.sxm /deep/ .el-input__prefix { |
|||
left: 0px; |
|||
} |
|||
</style> |
|||
3590
src/views/modules/shopOrder/shopOrder/shopOrder.vue
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
Write
Preview
Loading…
Cancel
Save
Reference in new issue