|
|
|
@ -1,7 +1,7 @@ |
|
|
|
<template> |
|
|
|
<div class="customer-css" > |
|
|
|
<div class="customer-css"> |
|
|
|
<!-- 查询时间和产品 --> |
|
|
|
<el-form :inline="true" label-position="top" label-width="100px" style="margin-top: 0px;" > |
|
|
|
<el-form :inline="true" label-position="top" label-width="100px" style="margin-top: 0px;"> |
|
|
|
<el-row style="width: 780px;"> |
|
|
|
<el-col :span="4"> |
|
|
|
<el-form-item :label="'生产订单号:'"> |
|
|
|
@ -23,7 +23,7 @@ |
|
|
|
<el-input v-model="pageData.workCenterNo" readonly="readonly" style="width: 90px"></el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
<el-col :span="4" style="margin-left: -25px;"> |
|
|
|
<el-col :span=4 style="margin-left: -25px;"> |
|
|
|
<el-form-item :label="'加工中心名称:'"> |
|
|
|
<el-input v-model="pageData.workCenterNo" readonly="readonly" style="width: 120px"></el-input> |
|
|
|
</el-form-item> |
|
|
|
@ -59,37 +59,37 @@ |
|
|
|
</el-form> |
|
|
|
|
|
|
|
<!-- 排产信息 --> |
|
|
|
<fieldset class="customer-field" style="margin-top: -80px; width: 140px; height: 95px; padding: 0.125em;" > |
|
|
|
<fieldset class="customer-field" style="margin-top: -85px; width: 140px; height: 95px; padding: 0.125em;"> |
|
|
|
<legend>排产日期</legend> |
|
|
|
<el-form style="margin-left: 10px; height: 60px;"> |
|
|
|
<el-row style="margin-top: 10px; width: 120px; height: 20px;"> |
|
|
|
<el-col :span="18"> |
|
|
|
<el-form-item> |
|
|
|
<el-date-picker class="el-time-width" |
|
|
|
style="" |
|
|
|
v-model="pageData.scheduleDate" |
|
|
|
value-format="yyyy-MM-dd"> |
|
|
|
</el-date-picker> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
</el-row> |
|
|
|
<el-row style="margin-top: 20px; padding-bottom: 20px; width: 120px; height: 60px;"> |
|
|
|
<el-col :span="24" style="margin-left: 5px;"> |
|
|
|
<el-form-item :label="''"> |
|
|
|
<el-checkbox v-model="pageData.specifiedTime" true-label="Y" false-label="N" |
|
|
|
style="margin-top: 0px; margin-right: -20px;" ></el-checkbox> |
|
|
|
<el-time-picker |
|
|
|
format="HH:mm" |
|
|
|
arrow-control |
|
|
|
style="margin-top: -50px; width: 110px; height: 60px;" |
|
|
|
v-model="pageData.scheduleTime" |
|
|
|
value-format="HH:mm"> |
|
|
|
</el-time-picker> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
</el-row> |
|
|
|
<el-row style="margin-top: 10px; width: 120px; height: 20px;"> |
|
|
|
<el-col :span="18"> |
|
|
|
<el-form-item> |
|
|
|
<el-date-picker class="el-time-width" |
|
|
|
style="" |
|
|
|
v-model="pageData.scheduleDate" |
|
|
|
value-format="yyyy-MM-dd"> |
|
|
|
</el-date-picker> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
</el-row> |
|
|
|
<el-row style="margin-top: 20px; padding-bottom: 20px; width: 120px; height: 60px;"> |
|
|
|
<el-col :span="24" style="margin-left: 5px;"> |
|
|
|
<el-form-item :label="''"> |
|
|
|
<el-checkbox v-model="pageData.specifiedTime" true-label="Y" false-label="N" |
|
|
|
style="margin-top: 0px; margin-right: -20px;"></el-checkbox> |
|
|
|
<el-time-picker |
|
|
|
format="HH:mm" |
|
|
|
arrow-control |
|
|
|
style="margin-top: -50px; width: 110px; height: 60px;" |
|
|
|
v-model="pageData.scheduleTime" |
|
|
|
value-format="HH:mm"> |
|
|
|
</el-time-picker> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
</el-row> |
|
|
|
</el-form> |
|
|
|
</fieldset > |
|
|
|
</fieldset> |
|
|
|
<!-- 记录示意图 --> |
|
|
|
<fieldset style="margin-left: 730px; margin-top: -95px; width: 180px;"> |
|
|
|
<legend>记录示意图</legend> |
|
|
|
@ -106,88 +106,114 @@ |
|
|
|
</el-form> |
|
|
|
</fieldset> |
|
|
|
|
|
|
|
<!-- 工单主表信息 --> |
|
|
|
<el-main style="margin-left: -20px; margin-top: 5px; width: 104%;"> |
|
|
|
<el-form :inline="true" label-position="top" label-width="100px"> |
|
|
|
<el-form-item :label="'主记录'"> |
|
|
|
</el-form-item> |
|
|
|
<el-dropdown class="customer-dropdown" @command="handleCommand"> |
|
|
|
<el-button type="primary"> |
|
|
|
主菜单<i class="el-icon-arrow-down el-icon--right"></i> |
|
|
|
</el-button> |
|
|
|
<el-dropdown-menu slot="dropdown"> |
|
|
|
<el-dropdown-item class="customer-li" command="分批排产">分批排产</el-dropdown-item> |
|
|
|
<el-dropdown-item class="customer-li" command="重新排产">重新排产</el-dropdown-item> |
|
|
|
</el-dropdown-menu> |
|
|
|
</el-dropdown> |
|
|
|
<fieldset class="customer-fieldset" style="margin-bottom: 10px; width: 100%;"> |
|
|
|
<el-tabs v-model="activeTable" style="margin-top: 0px;" |
|
|
|
type="border-card" @tab-click="tabClick" class="customer-tab"> |
|
|
|
<el-tab-pane label="排产" name="scheduling"> |
|
|
|
<fieldset class="customer-mid-fieldset" style="width: 50%; margin-left: -15px; margin-top: -15px;"> |
|
|
|
<legend>可用操作员</legend> |
|
|
|
<el-row> |
|
|
|
<el-col :span="8"> |
|
|
|
<el-button class="customer-bun-mid" type="primary" @click="" |
|
|
|
style="margin-left: 10px; margin-bottom: 5px;"> |
|
|
|
排产 |
|
|
|
</el-button> |
|
|
|
</el-col> |
|
|
|
<el-col :span="8"> |
|
|
|
<el-button class="customer-bun-mid" type="primary" @click="" |
|
|
|
style="margin-left: 10px; margin-bottom: 5px;"> |
|
|
|
刷新数据 |
|
|
|
</el-button> |
|
|
|
</el-col> |
|
|
|
<el-col :span="8"> |
|
|
|
<el-button class="customer-bun-max" type="primary" @click="" |
|
|
|
style="margin-left: 10px; margin-bottom: 5px;"> |
|
|
|
虚拟机台排产 |
|
|
|
</el-button> |
|
|
|
</el-col> |
|
|
|
</el-row> |
|
|
|
<el-container> |
|
|
|
<el-main class="customer-main"> |
|
|
|
<el-table class="customer-left-table" |
|
|
|
:height="tableHeight" :width="tableWidth" |
|
|
|
:data="operatorList" |
|
|
|
border |
|
|
|
v-loading="dataListLoading" |
|
|
|
style="margin-left: -15px; margin-top: -5px;"> |
|
|
|
<el-table-column |
|
|
|
v-for="(item,index) in columnOperatorArray" :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-main> |
|
|
|
</el-container> |
|
|
|
</fieldset> |
|
|
|
|
|
|
|
|
|
|
|
</el-form> |
|
|
|
<el-table |
|
|
|
:height="height" |
|
|
|
:data="shopOrderList" |
|
|
|
border |
|
|
|
ref="routingTable" |
|
|
|
@row-click="setCurrentRoutingRow" |
|
|
|
:row-class-name="routingRowClassName" |
|
|
|
@row-dblclick="startScheduleOperation" |
|
|
|
v-loading="dataListLoading" |
|
|
|
style="margin-top: -20px; width: 100%;"> |
|
|
|
<el-table-column |
|
|
|
v-for="(item,index) in columnOrderArray" :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-main> |
|
|
|
<!-- 工单明细表信息 --> |
|
|
|
<el-main style="margin-left: -20px; margin-top: -35px; width: 104%;"> |
|
|
|
<el-form :inline="true" label-position="top" label-width="100px"> |
|
|
|
<el-form-item :label="'明细记录'"> |
|
|
|
</el-form-item> |
|
|
|
</el-form> |
|
|
|
<el-table |
|
|
|
:height="height" |
|
|
|
:data="orderScheduleList" |
|
|
|
border |
|
|
|
highlight-current-row |
|
|
|
ref="scheduleTable" |
|
|
|
@row-click="setCurrentSchedulingRow" |
|
|
|
@row-dblclick="warnCancelScheduleConfirm" |
|
|
|
v-loading="dataListLoading" |
|
|
|
style="margin-top: -20px; width: 100%;"> |
|
|
|
<el-table-column |
|
|
|
v-for="(item,index) in columnOrderScheduleArray" :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-main> |
|
|
|
<fieldset class="customer-right-field"> |
|
|
|
<legend>已排产记录</legend> |
|
|
|
<el-row> |
|
|
|
<el-col :span="8"> |
|
|
|
<el-button class="customer-bun-mid" type="primary" @click="" |
|
|
|
style="margin-left: 10px; margin-bottom: 5px;"> |
|
|
|
上移 |
|
|
|
</el-button> |
|
|
|
</el-col> |
|
|
|
<el-col :span="8"> |
|
|
|
<el-button class="customer-bun-mid" type="primary" @click="" |
|
|
|
style="margin-left: 10px; margin-bottom: 5px;"> |
|
|
|
下移 |
|
|
|
</el-button> |
|
|
|
</el-col> |
|
|
|
</el-row> |
|
|
|
<el-container> |
|
|
|
<el-main class="customer-main"> |
|
|
|
<el-table class="customer-left-table" |
|
|
|
:height="tableHeight" :width="tableWidth" |
|
|
|
:data="operatorList" |
|
|
|
border |
|
|
|
v-loading="dataListLoading" |
|
|
|
style="margin-left: -15px; margin-top: -5px;"> |
|
|
|
<el-table-column |
|
|
|
v-for="(item,index) in columnOperatorArray" :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-main> |
|
|
|
</el-container> |
|
|
|
</fieldset> |
|
|
|
</el-tab-pane> |
|
|
|
<el-tab-pane label="待排产清单" name="wait_schedule"> |
|
|
|
</el-tab-pane> |
|
|
|
</el-tabs> |
|
|
|
</fieldset> |
|
|
|
|
|
|
|
<!--列表的组件--> |
|
|
|
<Chooselist ref="baseList" @getBaseData="getBaseData"></Chooselist> |
|
|
|
<Chooselist ref="baseList" @getBaseData="getBaseData"></Chooselist> |
|
|
|
|
|
|
|
<!-- routing的menu --> |
|
|
|
<comSplitSchedule ref="comSplitSchedule" :close-on-click-modal="false" |
|
|
|
@ -205,19 +231,18 @@ |
|
|
|
|
|
|
|
<!-- 分批排产的组件 --> |
|
|
|
<comSplitSchedule ref="comSplitSchedule" :close-on-click-modal="false" |
|
|
|
:visible.sync="showSplitScheduleFlag" |
|
|
|
@initAddSplitSchedule="initAddSplitSchedule"> |
|
|
|
:visible.sync="showSplitScheduleFlag" |
|
|
|
@initAddSplitSchedule="initAddSplitSchedule"> |
|
|
|
|
|
|
|
</comSplitSchedule> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</div> |
|
|
|
</template> |
|
|
|
|
|
|
|
<script> |
|
|
|
import Chooselist from '@/views/modules/common/Chooselist';/*列表组件*/ |
|
|
|
import comSplitSchedule from '@/views/modules/schedule/com_split_schedule';/*分批排产的modal*/ |
|
|
|
import Chooselist from '@/views/modules/common/Chooselist';/*列表组件*/ |
|
|
|
import comSplitSchedule from '@/views/modules/schedule/com_split_schedule';/*分批排产的modal*/ |
|
|
|
import { |
|
|
|
getResourceRestList, |
|
|
|
getShopOrderList, |
|
|
|
@ -232,9 +257,10 @@ import { |
|
|
|
export default { |
|
|
|
data() { |
|
|
|
return { |
|
|
|
height: 200, |
|
|
|
tableHeight: 0, |
|
|
|
tableWidth: 0, |
|
|
|
tagNo: '', |
|
|
|
showRoutingMenu: false, |
|
|
|
activeTable: '', |
|
|
|
showScheduleMenu: false, |
|
|
|
showSplitScheduleFlag: false, |
|
|
|
scheduleIndex: -1, |
|
|
|
@ -242,7 +268,6 @@ export default { |
|
|
|
modelInputFlag: true, |
|
|
|
currentRoutingRow: {}, |
|
|
|
currentSchedlingRow: {}, |
|
|
|
selectList: [], |
|
|
|
pageData: { |
|
|
|
site: this.$store.state.user.site, |
|
|
|
username: this.$store.state.user.name, |
|
|
|
@ -263,6 +288,153 @@ export default { |
|
|
|
sortField: '', |
|
|
|
status: 1 |
|
|
|
}, |
|
|
|
operatorList: [], |
|
|
|
columnOperatorArray: [ |
|
|
|
{ |
|
|
|
userId: this.$store.state.user.name, |
|
|
|
functionId: 5303, |
|
|
|
serialNumber: '5303Operator', |
|
|
|
tableId: "5303Operator", |
|
|
|
tableName: "操作员表", |
|
|
|
columnProp: "operatorId", |
|
|
|
headerAlign: "center", |
|
|
|
align: "center", |
|
|
|
columnLabel: "员工编号", |
|
|
|
columnWidth: 80, |
|
|
|
columnHidden: false, |
|
|
|
columnImage: false, |
|
|
|
columnSortable: false, |
|
|
|
sortLv: 0, |
|
|
|
status: true, |
|
|
|
fixed: false |
|
|
|
}, |
|
|
|
{ |
|
|
|
userId: this.$store.state.user.name, |
|
|
|
functionId: 5303, |
|
|
|
serialNumber: '5303Operator', |
|
|
|
tableId: "5303Operator", |
|
|
|
tableName: "操作员表", |
|
|
|
columnProp: "operatorName", |
|
|
|
headerAlign: "center", |
|
|
|
align: "center", |
|
|
|
columnLabel: "员工姓名", |
|
|
|
columnWidth: 80, |
|
|
|
columnHidden: false, |
|
|
|
columnImage: false, |
|
|
|
columnSortable: false, |
|
|
|
sortLv: 0, |
|
|
|
status: true, |
|
|
|
fixed: false |
|
|
|
}, |
|
|
|
{ |
|
|
|
userId: this.$store.state.user.name, |
|
|
|
functionId: 5303, |
|
|
|
serialNumber: '5303Operator', |
|
|
|
tableId: "5303Operator", |
|
|
|
tableName: "操作员表", |
|
|
|
columnProp: "operatorId", |
|
|
|
headerAlign: "center", |
|
|
|
align: "center", |
|
|
|
columnLabel: "最后排产时间", |
|
|
|
columnWidth: 80, |
|
|
|
columnHidden: false, |
|
|
|
columnImage: false, |
|
|
|
columnSortable: false, |
|
|
|
sortLv: 0, |
|
|
|
status: true, |
|
|
|
fixed: false |
|
|
|
}, |
|
|
|
{ |
|
|
|
userId: this.$store.state.user.name, |
|
|
|
functionId: 5303, |
|
|
|
serialNumber: '5303Operator', |
|
|
|
tableId: "5303Operator", |
|
|
|
tableName: "操作员表", |
|
|
|
columnProp: "operatorName", |
|
|
|
headerAlign: "center", |
|
|
|
align: "center", |
|
|
|
columnLabel: "效率", |
|
|
|
columnWidth: 80, |
|
|
|
columnHidden: false, |
|
|
|
columnImage: false, |
|
|
|
columnSortable: false, |
|
|
|
sortLv: 0, |
|
|
|
status: true, |
|
|
|
fixed: false |
|
|
|
}, |
|
|
|
{ |
|
|
|
userId: this.$store.state.user.name, |
|
|
|
functionId: 5303, |
|
|
|
serialNumber: '5303Operator', |
|
|
|
tableId: "5303Operator", |
|
|
|
tableName: "操作员表", |
|
|
|
columnProp: "operatorName", |
|
|
|
headerAlign: "center", |
|
|
|
align: "center", |
|
|
|
columnLabel: "排产数量", |
|
|
|
columnWidth: 80, |
|
|
|
columnHidden: false, |
|
|
|
columnImage: false, |
|
|
|
columnSortable: false, |
|
|
|
sortLv: 0, |
|
|
|
status: true, |
|
|
|
fixed: false |
|
|
|
}, |
|
|
|
{ |
|
|
|
userId: this.$store.state.user.name, |
|
|
|
functionId: 5303, |
|
|
|
serialNumber: '5303Operator', |
|
|
|
tableId: "5303Operator", |
|
|
|
tableName: "操作员表", |
|
|
|
columnProp: "operatorName", |
|
|
|
headerAlign: "center", |
|
|
|
align: "center", |
|
|
|
columnLabel: "排产数量", |
|
|
|
columnWidth: 80, |
|
|
|
columnHidden: false, |
|
|
|
columnImage: false, |
|
|
|
columnSortable: false, |
|
|
|
sortLv: 0, |
|
|
|
status: true, |
|
|
|
fixed: false |
|
|
|
}, |
|
|
|
{ |
|
|
|
userId: this.$store.state.user.name, |
|
|
|
functionId: 5303, |
|
|
|
serialNumber: '5303Operator', |
|
|
|
tableId: "5303Operator", |
|
|
|
tableName: "操作员表", |
|
|
|
columnProp: "operatorName", |
|
|
|
headerAlign: "center", |
|
|
|
align: "center", |
|
|
|
columnLabel: "工作日历", |
|
|
|
columnWidth: 80, |
|
|
|
columnHidden: false, |
|
|
|
columnImage: false, |
|
|
|
columnSortable: false, |
|
|
|
sortLv: 0, |
|
|
|
status: true, |
|
|
|
fixed: false |
|
|
|
}, |
|
|
|
{ |
|
|
|
userId: this.$store.state.user.name, |
|
|
|
functionId: 5303, |
|
|
|
serialNumber: '5303Operator', |
|
|
|
tableId: "5303Operator", |
|
|
|
tableName: "操作员表", |
|
|
|
columnProp: "operatorName", |
|
|
|
headerAlign: "center", |
|
|
|
align: "center", |
|
|
|
columnLabel: "虚拟机台", |
|
|
|
columnWidth: 80, |
|
|
|
columnHidden: false, |
|
|
|
columnImage: false, |
|
|
|
columnSortable: false, |
|
|
|
sortLv: 0, |
|
|
|
status: true, |
|
|
|
fixed: false |
|
|
|
} |
|
|
|
], |
|
|
|
shopOrderList: [], |
|
|
|
orderScheduleList: [], |
|
|
|
dataListLoading: false, |
|
|
|
@ -1703,21 +1875,18 @@ export default { |
|
|
|
|
|
|
|
mounted() { |
|
|
|
this.$nextTick(() => { |
|
|
|
this.height = (window.innerHeight - 405) / 2; |
|
|
|
}) |
|
|
|
this.tableHeight = (window.innerHeight - 300); |
|
|
|
this.tableWidth = (window.innerWidth - 100) / 2; |
|
|
|
}); |
|
|
|
//设置当前的动态高度 |
|
|
|
|
|
|
|
}, |
|
|
|
methods: { |
|
|
|
/*获取机台班次信息的方法*/ |
|
|
|
getResourceShiftData() { |
|
|
|
let queryData = { |
|
|
|
site: this.$store.state.user.site, |
|
|
|
workCenterNo: this.pageData.workCenterNo, |
|
|
|
resourceId: this.pageData.resourceId, |
|
|
|
scheduleDate: this.pageData.scheduleDate |
|
|
|
} |
|
|
|
getResourceRestList(queryData).then(({data}) => { |
|
|
|
this.resourceShiftList = data.rows |
|
|
|
}) |
|
|
|
|
|
|
|
//列表表格选择替换 |
|
|
|
tabClick(tab, event) { |
|
|
|
//刷新列表数据 |
|
|
|
//this.refreshCurrentTabTable(); |
|
|
|
}, |
|
|
|
|
|
|
|
/*获取工单信息*/ |
|
|
|
@ -1734,7 +1903,7 @@ export default { |
|
|
|
getOrderScheduleList(this.pageData).then(({data}) => { |
|
|
|
this.orderScheduleList = data.rows; |
|
|
|
//判断是否需要选中当前行 |
|
|
|
if(this.scheduleIndex >= 0){ |
|
|
|
if (this.scheduleIndex >= 0) { |
|
|
|
//选中当前是的行 |
|
|
|
this.$refs.scheduleTable.setCurrentRow(this.$refs.scheduleTable.data[index]); |
|
|
|
} |
|
|
|
@ -1744,54 +1913,53 @@ export default { |
|
|
|
}, |
|
|
|
|
|
|
|
/*刷新页面table*/ |
|
|
|
refreshPageTables(){ |
|
|
|
this.getResourceShiftData(); |
|
|
|
refreshPageTables() { |
|
|
|
this.getShopOrderList(); |
|
|
|
this.getOrderScheduleList(); |
|
|
|
}, |
|
|
|
|
|
|
|
/*列表方法的回调*/ |
|
|
|
getBaseData(val){ |
|
|
|
if (this.tagNo === 88){ |
|
|
|
/*列表方法的回调*/ |
|
|
|
getBaseData(val) { |
|
|
|
if (this.tagNo === 88) { |
|
|
|
this.pageData.resourceId = val.ResourceID; |
|
|
|
//调用方法获取加工中心 |
|
|
|
this.getCurrentWorkCenterNoByResourceId(); |
|
|
|
}else if(this.tagNo == 24){ |
|
|
|
} else if (this.tagNo == 24) { |
|
|
|
this.pageData.workCenterNo = val.WorkCenterNo; |
|
|
|
} |
|
|
|
}, |
|
|
|
|
|
|
|
// 获取基础数据列表 |
|
|
|
getBaseList(val){ |
|
|
|
getBaseList(val) { |
|
|
|
this.tagNo = val |
|
|
|
this.$nextTick(() => { |
|
|
|
let strVal = ""; |
|
|
|
if (val === 88){ |
|
|
|
if (val === 88) { |
|
|
|
strVal = this.pageData.resourceId; |
|
|
|
}else if(val === 24){ |
|
|
|
} else if (val === 24) { |
|
|
|
strVal = this.pageData.workCenterNo; |
|
|
|
} |
|
|
|
this.$refs.baseList.init(val,strVal) |
|
|
|
this.$refs.baseList.init(val, strVal) |
|
|
|
}) |
|
|
|
}, |
|
|
|
|
|
|
|
/*区分不同的菜单 调用不同的方法 调用不同的方法*/ |
|
|
|
handleCommand(menuName){ |
|
|
|
handleCommand(menuName) { |
|
|
|
//区分是哪一个方法调用 |
|
|
|
if('分批排产' === menuName){ |
|
|
|
if ('分批排产' === menuName) { |
|
|
|
this.openSplitScheduleModal(); |
|
|
|
}else if('重新排产' === menuName){ |
|
|
|
} else if ('重新排产' === menuName) { |
|
|
|
//调用提示的方法 |
|
|
|
this.warnReScheduleConfirm(); |
|
|
|
this.warnReScheduleConfirm(); |
|
|
|
} |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
/*打开分批排产*/ |
|
|
|
openSplitScheduleModal(){ |
|
|
|
openSplitScheduleModal() { |
|
|
|
let routingRow = this.currentRoutingRow; |
|
|
|
//首先判断是否选好 |
|
|
|
if(null == routingRow){ |
|
|
|
if (null == routingRow) { |
|
|
|
this.$message.error("请先单击选择行!") |
|
|
|
return false; |
|
|
|
} |
|
|
|
@ -1802,17 +1970,17 @@ export default { |
|
|
|
}, |
|
|
|
|
|
|
|
/*区分不同的菜单 调用不同的方法 调用不同的方法*/ |
|
|
|
initProcessScheduleMenu(menuName){ |
|
|
|
initProcessScheduleMenu(menuName) { |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
/*获取当前的机台对应的加工中心*/ |
|
|
|
getCurrentWorkCenterNoByResourceId(){ |
|
|
|
getCurrentWorkCenterNoByResourceId() { |
|
|
|
getCurrentWorkCenterNoByResourceId(this.pageData).then(({data}) => { |
|
|
|
//区分是否成功 |
|
|
|
if (data.code == 500) { |
|
|
|
this.$message.error(data.msg); |
|
|
|
} else{ |
|
|
|
} else { |
|
|
|
this.pageData.workCenterNo = data.workCenterNo; |
|
|
|
} |
|
|
|
this.pageData.workCenterNo = data.workCenterNo; |
|
|
|
@ -1820,10 +1988,10 @@ export default { |
|
|
|
}, |
|
|
|
|
|
|
|
/*设置当前行的下标*/ |
|
|
|
routingRowClassName({row, rowIndex}){ |
|
|
|
routingRowClassName({row, rowIndex}) { |
|
|
|
row.index = rowIndex; |
|
|
|
//判断当前行颜色参数 |
|
|
|
if(row.qtyScheduled > 0){ |
|
|
|
if (row.qtyScheduled > 0) { |
|
|
|
return 'customer-row-gray'; |
|
|
|
} |
|
|
|
}, |
|
|
|
@ -1834,59 +2002,59 @@ export default { |
|
|
|
}, |
|
|
|
|
|
|
|
/*开始排产的操作*/ |
|
|
|
startScheduleOperation(row, $event, column){ |
|
|
|
startScheduleOperation(row, $event, column) { |
|
|
|
//判断排产的加工中心和机台是否为空 |
|
|
|
if(this.pageData.workCenterNo == null || '' == this.pageData.workCenterNo){ |
|
|
|
if (this.pageData.workCenterNo == null || '' == this.pageData.workCenterNo) { |
|
|
|
this.$message.error('加工中心不能为空!') |
|
|
|
return false; |
|
|
|
} |
|
|
|
if(this.pageData.resourceId == null || '' == this.pageData.resourceId){ |
|
|
|
if (this.pageData.resourceId == null || '' == this.pageData.resourceId) { |
|
|
|
this.$message.error('机台不能为空!') |
|
|
|
return false; |
|
|
|
} |
|
|
|
//赋值排产的数量 |
|
|
|
let scheduledQty = row.qtyToSchedule; |
|
|
|
row.qtyScheduled = scheduledQty; |
|
|
|
row.qtyToSchedule = parseFloat(row.qtyToSchedule) - parseFloat(row.qtyScheduled); |
|
|
|
row.qtyToSchedule = parseFloat(row.qtyToSchedule) - parseFloat(row.qtyScheduled); |
|
|
|
this.pageData.scheduledQty = scheduledQty; |
|
|
|
//设置工单和工序 |
|
|
|
this.pageData.orderNo = row.orderNo; |
|
|
|
this.pageData.itemNo = row.itemNo; |
|
|
|
//执行排产的方法 |
|
|
|
this.scheduleWorkOrderOperation(scheduledQty); |
|
|
|
this.scheduleWorkOrderOperation(scheduledQty); |
|
|
|
}, |
|
|
|
|
|
|
|
/*分批排产*/ |
|
|
|
initAddSplitSchedule(scheduledQty){ |
|
|
|
initAddSplitSchedule(scheduledQty) { |
|
|
|
//设置工单和工序 |
|
|
|
this.pageData.orderNo = this.currentRoutingRow.orderNo; |
|
|
|
this.pageData.itemNo = this.currentRoutingRow.itemNo; |
|
|
|
//判断排产的加工中心和机台是否为空 |
|
|
|
if(this.pageData.workCenterNo == null || '' == this.pageData.workCenterNo){ |
|
|
|
if (this.pageData.workCenterNo == null || '' == this.pageData.workCenterNo) { |
|
|
|
this.$message.error('加工中心不能为空!') |
|
|
|
return false; |
|
|
|
} |
|
|
|
if(this.pageData.resourceId == null || '' == this.pageData.resourceId){ |
|
|
|
if (this.pageData.resourceId == null || '' == this.pageData.resourceId) { |
|
|
|
this.$message.error('机台不能为空!') |
|
|
|
return false; |
|
|
|
} |
|
|
|
this.currentRoutingRow.qtyScheduled = parseFloat(this.currentRoutingRow.qtyScheduled) + parseFloat(scheduledQty); |
|
|
|
this.currentRoutingRow.qtyToSchedule = parseFloat(this.currentRoutingRow.qtyToSchedule) - parseFloat(scheduledQty); |
|
|
|
this.currentRoutingRow.qtyScheduled = parseFloat(this.currentRoutingRow.qtyScheduled) + parseFloat(scheduledQty); |
|
|
|
this.currentRoutingRow.qtyToSchedule = parseFloat(this.currentRoutingRow.qtyToSchedule) - parseFloat(scheduledQty); |
|
|
|
//执行排产的方法 |
|
|
|
this.scheduleWorkOrderOperation(scheduledQty); |
|
|
|
}, |
|
|
|
|
|
|
|
/*排产生产工单*/ |
|
|
|
scheduleWorkOrderOperation(scheduledQty){ |
|
|
|
scheduleWorkOrderOperation(scheduledQty) { |
|
|
|
//重置请求的参数 |
|
|
|
this.pageData.scheduledQty = scheduledQty; |
|
|
|
scheduleWorkOrder(this.pageData).then(({data}) => { |
|
|
|
if(data.code == 500){ |
|
|
|
this.currentRoutingRow.qtyScheduled = parseFloat(this.currentRoutingRow.qtyScheduled) - parseFloat(scheduledQty); |
|
|
|
this.currentRoutingRow.qtyToSchedule = parseFloat(this.currentRoutingRow.qtyToSchedule) + parseFloat(scheduledQty); |
|
|
|
if (data.code == 500) { |
|
|
|
this.currentRoutingRow.qtyScheduled = parseFloat(this.currentRoutingRow.qtyScheduled) - parseFloat(scheduledQty); |
|
|
|
this.currentRoutingRow.qtyToSchedule = parseFloat(this.currentRoutingRow.qtyToSchedule) + parseFloat(scheduledQty); |
|
|
|
this.$message.error(data.msg); |
|
|
|
this.pageData.scheduledQty = 0; |
|
|
|
}else{ |
|
|
|
} else { |
|
|
|
this.$message.success(data.msg); |
|
|
|
//刷新明细的报工页面 |
|
|
|
this.getOrderScheduleList(); |
|
|
|
@ -1901,20 +2069,20 @@ export default { |
|
|
|
}, |
|
|
|
|
|
|
|
/*提示取消派工单*/ |
|
|
|
warnCancelScheduleConfirm(row, $event, column){ |
|
|
|
warnCancelScheduleConfirm(row, $event, column) { |
|
|
|
//提示操作 |
|
|
|
this.$confirm('确实要取消该派工单吗?', '提示', { |
|
|
|
confirmButtonText: '确认', |
|
|
|
celButtonText: '取消', |
|
|
|
type: 'warning' |
|
|
|
}).then(() =>{ |
|
|
|
}).then(() => { |
|
|
|
//执行创建新卷的操作 |
|
|
|
this.cancelScheduleBun(row); |
|
|
|
}); |
|
|
|
}, |
|
|
|
|
|
|
|
/*取消派工单的操作*/ |
|
|
|
cancelScheduleBun(scheduleRow){ |
|
|
|
cancelScheduleBun(scheduleRow) { |
|
|
|
//设置参数 |
|
|
|
this.pageData.orderNo = scheduleRow.orderNo; |
|
|
|
this.pageData.itemNo = scheduleRow.itemNo; |
|
|
|
@ -1924,9 +2092,9 @@ export default { |
|
|
|
this.pageData.resourceId = scheduleRow.resourceId; |
|
|
|
//取消排产 |
|
|
|
cancelSoSchedule(this.pageData).then(({data}) => { |
|
|
|
if(data.code == 500){ |
|
|
|
if (data.code == 500) { |
|
|
|
this.$message.error(data.msg); |
|
|
|
}else{ |
|
|
|
} else { |
|
|
|
this.$message.success(data.msg); |
|
|
|
//刷新明细的报工页面 |
|
|
|
this.getOrderScheduleList(); |
|
|
|
@ -1935,20 +2103,20 @@ export default { |
|
|
|
}, |
|
|
|
|
|
|
|
/*分批排产*/ |
|
|
|
addWaitScheduleBun(){ |
|
|
|
addWaitScheduleBun() { |
|
|
|
//重置请求的参数 |
|
|
|
let waitTimes = this.pageData.waitTimes; |
|
|
|
if(waitTimes <= 0){ |
|
|
|
this.$message.error('等待时间必须大于零!') |
|
|
|
return false; |
|
|
|
} |
|
|
|
let waitTimes = this.pageData.waitTimes; |
|
|
|
if (waitTimes <= 0) { |
|
|
|
this.$message.error('等待时间必须大于零!') |
|
|
|
return false; |
|
|
|
} |
|
|
|
//发送请求 |
|
|
|
//判断排产的加工中心和机台是否为空 |
|
|
|
if(this.pageData.workCenterNo == null || '' == this.pageData.workCenterNo){ |
|
|
|
if (this.pageData.workCenterNo == null || '' == this.pageData.workCenterNo) { |
|
|
|
this.$message.error('加工中心不能为空!') |
|
|
|
return false; |
|
|
|
} |
|
|
|
if(this.pageData.resourceId == null || '' == this.pageData.resourceId){ |
|
|
|
if (this.pageData.resourceId == null || '' == this.pageData.resourceId) { |
|
|
|
this.$message.error('机台不能为空!') |
|
|
|
return false; |
|
|
|
} |
|
|
|
@ -1957,11 +2125,11 @@ export default { |
|
|
|
}, |
|
|
|
|
|
|
|
/*插入等待的派工单信息*/ |
|
|
|
addWaitScheduleOperation(){ |
|
|
|
addWaitScheduleOperation() { |
|
|
|
addWaitSchedule(this.pageData).then(({data}) => { |
|
|
|
if(data.code == 500){ |
|
|
|
if (data.code == 500) { |
|
|
|
this.$message.error(data.msg); |
|
|
|
}else{ |
|
|
|
} else { |
|
|
|
this.$message.success(data.msg); |
|
|
|
//刷新明细的报工页面 |
|
|
|
this.getOrderScheduleList(); |
|
|
|
@ -1970,14 +2138,14 @@ export default { |
|
|
|
}, |
|
|
|
|
|
|
|
/*提示取消派工单*/ |
|
|
|
warnReScheduleConfirm(){ |
|
|
|
warnReScheduleConfirm() { |
|
|
|
//判断加工中心和机台 |
|
|
|
//判断排产的加工中心和机台是否为空 |
|
|
|
if(this.pageData.workCenterNo == null || '' == this.pageData.workCenterNo){ |
|
|
|
if (this.pageData.workCenterNo == null || '' == this.pageData.workCenterNo) { |
|
|
|
this.$message.error('加工中心不能为空!') |
|
|
|
return false; |
|
|
|
} |
|
|
|
if(this.pageData.resourceId == null || '' == this.pageData.resourceId){ |
|
|
|
if (this.pageData.resourceId == null || '' == this.pageData.resourceId) { |
|
|
|
this.$message.error('机台不能为空!') |
|
|
|
return false; |
|
|
|
} |
|
|
|
@ -1986,18 +2154,18 @@ export default { |
|
|
|
confirmButtonText: '确认', |
|
|
|
celButtonText: '取消', |
|
|
|
type: 'warning' |
|
|
|
}).then(() =>{ |
|
|
|
}).then(() => { |
|
|
|
//执行创建新卷的操作 |
|
|
|
this.initReScheduleWorkOrders(); |
|
|
|
}); |
|
|
|
}, |
|
|
|
|
|
|
|
/*重新排产的方法*/ |
|
|
|
initReScheduleWorkOrders(){ |
|
|
|
initReScheduleWorkOrders() { |
|
|
|
reScheduleWorkOrders(this.pageData).then(({data}) => { |
|
|
|
if(data.code == 500){ |
|
|
|
if (data.code == 500) { |
|
|
|
this.$message.error(data.msg); |
|
|
|
}else{ |
|
|
|
} else { |
|
|
|
this.$message.success(data.msg); |
|
|
|
//刷新明细的报工页面 |
|
|
|
this.getOrderScheduleList(); |
|
|
|
@ -2007,8 +2175,6 @@ export default { |
|
|
|
|
|
|
|
}, |
|
|
|
created() { |
|
|
|
//执行查询休息时间数据 |
|
|
|
this.getResourceShiftData(); |
|
|
|
//查询工单的数据 |
|
|
|
this.getShopOrderList(); |
|
|
|
//查询派工的数据 |
|
|
|
@ -2021,26 +2187,29 @@ export default { |
|
|
|
<style scoped lang="scss"> |
|
|
|
|
|
|
|
/*针对el-card*/ |
|
|
|
.customer-card .el-form-item__content{ |
|
|
|
.customer-card .el-form-item__content { |
|
|
|
margin-top: -15px; |
|
|
|
} |
|
|
|
.customer-card .el-form-item{ |
|
|
|
|
|
|
|
.customer-card .el-form-item { |
|
|
|
height: 22px; |
|
|
|
} |
|
|
|
|
|
|
|
.customer-border .el-form-item__content{ |
|
|
|
.customer-border .el-form-item__content { |
|
|
|
margin-top: -30px; |
|
|
|
} |
|
|
|
|
|
|
|
/*全局年与日类型 宽度*/ |
|
|
|
div.el-time-width{ |
|
|
|
div.el-time-width { |
|
|
|
width: 110px !important; |
|
|
|
} |
|
|
|
|
|
|
|
/* 全局时间右边框*/ |
|
|
|
.customer-css input.el-input__inner{ |
|
|
|
.customer-css input.el-input__inner { |
|
|
|
height: 22px !important; |
|
|
|
padding-right: 0px !important; |
|
|
|
} |
|
|
|
|
|
|
|
/* 控制el-card标签的数据*/ |
|
|
|
div.customer-el-card { |
|
|
|
margin-left: 110px; |
|
|
|
@ -2048,6 +2217,7 @@ div.customer-el-card { |
|
|
|
height: 20px; |
|
|
|
width: 60px; |
|
|
|
} |
|
|
|
|
|
|
|
/* 颜色控制 */ |
|
|
|
div.customer-el-card-pink { |
|
|
|
background: #FF00FF; |
|
|
|
@ -2062,61 +2232,81 @@ div.customer-el-card-blue { |
|
|
|
} |
|
|
|
|
|
|
|
/*清掉样式*/ |
|
|
|
.el-radio+.el-radio { |
|
|
|
.el-radio + .el-radio { |
|
|
|
margin-left: 0px; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/*当前按钮的通用样式*/ |
|
|
|
.customer-css .customer-bun-mid{ |
|
|
|
.customer-css .customer-bun-mid { |
|
|
|
width: 60px; |
|
|
|
text-align: center; |
|
|
|
} |
|
|
|
|
|
|
|
.customer-css .customer-bun-min{ |
|
|
|
.customer-css .customer-bun-min { |
|
|
|
width: 50px; |
|
|
|
text-align: center; |
|
|
|
} |
|
|
|
|
|
|
|
.customer-css .customer-bun-max{ |
|
|
|
width: 80px; |
|
|
|
.customer-css .customer-bun-max { |
|
|
|
width: 85px; |
|
|
|
text-align: center; |
|
|
|
} |
|
|
|
|
|
|
|
/*当前按钮的通用样式*/ |
|
|
|
.customer-css .el-button--medium { |
|
|
|
padding: 5px 5px; |
|
|
|
} |
|
|
|
|
|
|
|
/*灰色的表格行背景颜色*/ |
|
|
|
.customer-css /deep/ tr.customer-row-gray{ |
|
|
|
.customer-css /deep/ tr.customer-row-gray { |
|
|
|
background: #7e819e; |
|
|
|
} |
|
|
|
|
|
|
|
/*去掉悬浮的样式*/ |
|
|
|
.customer-css /deep/ tr:hover > td{ |
|
|
|
.customer-css /deep/ tr:hover > td { |
|
|
|
background-color: transparent !important; |
|
|
|
} |
|
|
|
|
|
|
|
.customer-css /deep/ tr.hover-row.current-row > td{ |
|
|
|
.customer-css /deep/ tr.hover-row.current-row > td { |
|
|
|
background-color: transparent !important; |
|
|
|
} |
|
|
|
|
|
|
|
.customer-css /deep/ tr.hover-row > td{ |
|
|
|
.customer-css /deep/ tr.hover-row > td { |
|
|
|
background-color: transparent !important; |
|
|
|
} |
|
|
|
|
|
|
|
/*添加主菜单和明细菜单的样式*/ |
|
|
|
.customer-css .customer-dropdown .el-button--primary{ |
|
|
|
.customer-css .customer-dropdown .el-button--primary { |
|
|
|
padding: 2px; |
|
|
|
font-size: 12px; |
|
|
|
} |
|
|
|
|
|
|
|
.el-dropdown-menu /deep/ li.customer-li{ |
|
|
|
.el-dropdown-menu /deep/ li.customer-li { |
|
|
|
font-size: 10px; |
|
|
|
} |
|
|
|
|
|
|
|
.el-input /deep/ .el-icon-time{ |
|
|
|
.el-input /deep/ .el-icon-time { |
|
|
|
display: none; |
|
|
|
} |
|
|
|
/*控制上下间距*/ |
|
|
|
|
|
|
|
/* el-main的样式 */ |
|
|
|
.customer-css .customer-main { |
|
|
|
width: calc(50vw - 300px) !important; |
|
|
|
margin-left: -15px; |
|
|
|
margin-top: -10px; |
|
|
|
margin-right: -45px; |
|
|
|
margin-bottom: -20px; |
|
|
|
} |
|
|
|
|
|
|
|
.customer-css .customer-left-table { |
|
|
|
margin-top: -20px; |
|
|
|
} |
|
|
|
|
|
|
|
/*调整右边field的样式*/ |
|
|
|
.customer-css .customer-right-field{ |
|
|
|
margin-left: 49%; |
|
|
|
margin-top: calc(-100vh + 239px); |
|
|
|
width: 52%; |
|
|
|
} |
|
|
|
</style> |