|
|
|
@ -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> |
|
|
|
<el-form-item :label=labels.enterDate> |
|
|
|
<el-date-picker class="el-time-width" |
|
|
|
@ -40,20 +40,21 @@ |
|
|
|
</el-date-picker> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item> |
|
|
|
<span slot="label" style="" @click="getBaseList(88)"><a herf="#">{{labels.resourceId}}</a></span> |
|
|
|
<span slot="label" style="" @click="getBaseList(88)"><a herf="#">{{ labels.resourceId }}</a></span> |
|
|
|
<el-input v-model="pageData.resourceId" style="width: 120px"></el-input> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item> |
|
|
|
<span slot="label" style="" @click="getBaseList(24)"><a herf="#">{{labels.workCenterNo}}</a></span> |
|
|
|
<span slot="label" style="" @click="getBaseList(24)"><a herf="#">{{ labels.workCenterNo }}</a></span> |
|
|
|
<el-input v-model="pageData.workCenterNo" style="width: 120px"></el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-row> |
|
|
|
</el-row> |
|
|
|
</el-form> |
|
|
|
|
|
|
|
<!-- 排序规则 --> |
|
|
|
<fieldset class="customer-field" style="margin-left: 520px; margin-top: -75px; width: 135px;" > |
|
|
|
<legend>{{ labels.sortNo }}</legend><br> |
|
|
|
<el-form :inline="true" style="margin-top: -10px; margin-bottom: 10px;" label-position="top" label-width="100px" > |
|
|
|
<fieldset class="customer-field" style="margin-left: 520px; margin-top: -75px; width: 135px;"> |
|
|
|
<legend>{{ labels.sortNo }}</legend> |
|
|
|
<br> |
|
|
|
<el-form :inline="true" style="margin-top: -10px; margin-bottom: 10px;" label-position="top" label-width="100px"> |
|
|
|
<el-form-item :label="''" style="margin-bottom: 10px;"> |
|
|
|
<el-radio-group v-model="pageData.sortField"> |
|
|
|
<el-radio label="needDate">{{ labels.sortNeedDate }}</el-radio> |
|
|
|
@ -66,36 +67,43 @@ |
|
|
|
|
|
|
|
<!-- 菜单 --> |
|
|
|
<el-form :inline="true" label-position="top" label-width="100px" |
|
|
|
style="margin-left: 660px; margin-top: -40px;" > |
|
|
|
style="margin-left: 660px; margin-top: -40px;"> |
|
|
|
<el-row> |
|
|
|
<el-form-item :label="''"> |
|
|
|
<el-form-item :label="''" style="margin-left: 30px;"> |
|
|
|
<el-button class="customer-bun-min" type="primary" @click="refreshPageTables" style="margin-left: 10px; margin-bottom: 5px;">{{buttons.refreshButton}}</el-button> |
|
|
|
<el-col :span="24"> |
|
|
|
<el-form-item :label="''"> |
|
|
|
<el-form-item :label="''" style="margin-left: 30px;"> |
|
|
|
<el-button class="customer-bun-min" type="primary" @click="refreshPageTables" |
|
|
|
style="margin-left: 10px; margin-bottom: 5px;">{{ buttons.refreshButton }} |
|
|
|
</el-button> |
|
|
|
<el-button :disabled="dataListSelections.length <= 0" type="primary" @click="scheduleBatchDialog()" |
|
|
|
style="margin-left: 10px; margin-bottom: 5px;">{{ buttons.scheduleBatch }} |
|
|
|
</el-button> |
|
|
|
</el-form-item> |
|
|
|
</el-form-item> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
</el-row> |
|
|
|
</el-form> |
|
|
|
|
|
|
|
<!-- 工单主表信息 --> |
|
|
|
<el-main style="margin-top: 25px; padding: 0px; width: 100%;"> |
|
|
|
<el-form :inline="true" label-position="top" label-width="100px"> |
|
|
|
<el-form :inline="true" label-position="top" label-width="100px"> |
|
|
|
<el-form-item :label=labels.primaryRecord> |
|
|
|
</el-form-item> |
|
|
|
<el-dropdown trigger="click" class="customer-dropdown" size="small" @command="orderHandleCommand"> |
|
|
|
<el-button type="primary" :disabled = "authEdit" @click="controlPrimaryMenuBun"> |
|
|
|
{{buttons.primaryMenu}}<i class="el-icon-arrow-down el-icon--right"></i> |
|
|
|
<el-button type="primary" :disabled="authEdit" @click="controlPrimaryMenuBun"> |
|
|
|
{{ buttons.primaryMenu }}<i class="el-icon-arrow-down el-icon--right"></i> |
|
|
|
</el-button> |
|
|
|
<el-dropdown-menu slot="dropdown"> |
|
|
|
<el-dropdown-item class="customer-li" command="生产工单" |
|
|
|
:disabled="primaryMenuButton.shopOrderFlag">{{buttons.shopOrder}}</el-dropdown-item> |
|
|
|
<hr width="95%" /> |
|
|
|
<el-dropdown-item class="customer-li" command="查看物料库存" |
|
|
|
:disabled="primaryMenuButton.partStockFlag">{{buttons.viewPartStock}}</el-dropdown-item> |
|
|
|
:disabled="primaryMenuButton.shopOrderFlag">{{ buttons.shopOrder }} |
|
|
|
</el-dropdown-item> |
|
|
|
<hr width="95%"/> |
|
|
|
<el-dropdown-item class="customer-li" command="查看物料库存" |
|
|
|
:disabled="primaryMenuButton.partStockFlag">{{ buttons.viewPartStock }} |
|
|
|
</el-dropdown-item> |
|
|
|
</el-dropdown-menu> |
|
|
|
</el-dropdown> |
|
|
|
<el-button @click="userSetting" type="primary">{{ buttons.settingTable }}</el-button> |
|
|
|
<el-button v-if="showDefault" @click="saveColumnList()" type="primary">{{ buttons.defaultTable }}</el-button> |
|
|
|
<el-button v-if="showDefault" @click="saveMultiLanguage()" type="primary">多语言设置</el-button> |
|
|
|
</el-form> |
|
|
|
<el-table |
|
|
|
:height="height" |
|
|
|
@ -103,11 +111,19 @@ |
|
|
|
border |
|
|
|
ref="routingTable" |
|
|
|
highlight-current-row |
|
|
|
@selection-change="handleSelectionChange" |
|
|
|
@row-click="setCurrentRoutingRow" |
|
|
|
:row-class-name="routingRowClassName" |
|
|
|
@row-dblclick="startScheduleOperation" |
|
|
|
v-loading="dataListLoading" |
|
|
|
style="margin-top: -20px; width: 100%;"> |
|
|
|
<el-table-column |
|
|
|
type="selection" |
|
|
|
header-align="center" |
|
|
|
fixed="left" |
|
|
|
align="center" |
|
|
|
width="55"> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column |
|
|
|
v-for="(item,index) in columnList" :key="index" |
|
|
|
:sortable="item.columnSortable" |
|
|
|
@ -119,68 +135,139 @@ |
|
|
|
: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> |
|
|
|
<span v-if="!item.columnHidden && item.columnProp == 'resourceList'"> |
|
|
|
<el-select class="table-select-input" v-model="scope.row.resourceId"> |
|
|
|
<el-option v-for="(item,index) in scope.row.resourceList.split(';')" :key="index" |
|
|
|
:value="item.split(':')[0]" :label="item.split(':')[1]"> |
|
|
|
</el-option> |
|
|
|
</el-select> |
|
|
|
</span> |
|
|
|
<span v-if="!item.columnHidden && item.columnProp == 'qtyToSchedule'"> |
|
|
|
<el-input v-model="scope.row.qtyToSchedule" type="number"> |
|
|
|
</el-input> |
|
|
|
</span> |
|
|
|
<span v-else> {{ scope.row[item.columnProp] }}</span> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
</el-table> |
|
|
|
</el-main> |
|
|
|
|
|
|
|
<!--列表的组件--> |
|
|
|
<Chooselist ref="baseList" @getBaseData="getBaseData"></Chooselist> |
|
|
|
<Chooselist ref="baseList" @getBaseData="getBaseData"></Chooselist> |
|
|
|
|
|
|
|
<!-- 物料库存查询 --> |
|
|
|
<comPartStock ref="comPartStock" :close-on-click-modal="false" |
|
|
|
:visible.sync="showPartStockFlag"> |
|
|
|
:visible.sync="showPartStockFlag"> |
|
|
|
</comPartStock> |
|
|
|
|
|
|
|
<!-- 物料库存查询 --> |
|
|
|
<comScheduleOrderExpand ref="comScheduleOrderExpand" :close-on-click-modal="false" |
|
|
|
:visible.sync="showScheduleOrderFlag" |
|
|
|
@refreshPageTables = "refreshPageTables"> |
|
|
|
:visible.sync="showScheduleOrderFlag" |
|
|
|
@refreshPageTables="refreshPageTables"> |
|
|
|
</comScheduleOrderExpand> |
|
|
|
|
|
|
|
<!-- 动态列 --> |
|
|
|
<column v-if="visible" ref="column" @refreshData="getTableUserColumn" v-drag></column> |
|
|
|
|
|
|
|
<el-dialog |
|
|
|
width="702px" |
|
|
|
:title="'已选工单'" |
|
|
|
:close-on-click-modal="false" |
|
|
|
:visible.sync="scheduleVisible"> |
|
|
|
<el-row> |
|
|
|
<el-col :span="24"> |
|
|
|
<el-form :inline="true" label-position="top" style="height: 60px;" |
|
|
|
label-width="80px"> |
|
|
|
<el-form-item :label=labels.scheduledDate> |
|
|
|
<el-date-picker class="el-time-width" |
|
|
|
style="" |
|
|
|
v-model="scheduleDate" |
|
|
|
value-format="yyyy-MM-dd"> |
|
|
|
</el-date-picker> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item :label="''" style="margin-top: -5px;"> |
|
|
|
<el-checkbox v-model="specifiedTime" true-label="Y" false-label="N" |
|
|
|
style="margin-top: 28px; margin-right: -20px;"></el-checkbox> |
|
|
|
<el-time-picker |
|
|
|
format="HH:mm" |
|
|
|
style="margin-top: 30px; width: 65px" |
|
|
|
v-model="scheduleTime" |
|
|
|
value-format="HH:mm"> |
|
|
|
</el-time-picker> |
|
|
|
</el-form-item> |
|
|
|
</el-form> |
|
|
|
</el-col> |
|
|
|
</el-row> |
|
|
|
<el-row> |
|
|
|
<el-col :span="24"> |
|
|
|
<el-table |
|
|
|
:height="300" |
|
|
|
:data="dataListSelections" |
|
|
|
border |
|
|
|
style="margin-top: -15px; width: 100%;"> |
|
|
|
<el-table-column |
|
|
|
v-for="(item,index) in scheduleColumnList" :key="index" |
|
|
|
:sortable="item.columnSortable" |
|
|
|
:prop="item.columnProp" |
|
|
|
:header-align="item.headerAlign" |
|
|
|
:show-overflow-tooltip="item.showOverflowTooltip" |
|
|
|
:align="item.align" |
|
|
|
:fixed="item.fixed==''?false:item.fixed" |
|
|
|
:width="item.columnWidth" |
|
|
|
:label="item.columnLabel"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<span v-if="!item.columnHidden"> |
|
|
|
{{ scope.row[item.columnProp] }} |
|
|
|
</span> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
</el-table> |
|
|
|
</el-col> |
|
|
|
</el-row> |
|
|
|
|
|
|
|
<span slot="footer" class="dialog-footer"> |
|
|
|
<el-button type="primary" @click="batchScheduleOrderWithExpandStart()">确定</el-button> |
|
|
|
<el-button type="primary" @click="scheduleVisible = false">取消</el-button> |
|
|
|
</span> |
|
|
|
</el-dialog> |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
|
|
|
|
<script> |
|
|
|
import Chooselist from '@/views/modules/common/Chooselist';/*列表组件*/ |
|
|
|
import comPartStock from "../common/com_part_stock";/*展示物料库存的组件*/ |
|
|
|
import comScheduleOrderExpand from '@/views/modules/schedule/com_schedule_order_expand';/*排产扩展 排产单个工单*/ |
|
|
|
import column from '@/views/modules/common/column';/*动态表头*/ |
|
|
|
import Chooselist from '@/views/modules/common/Chooselist';/*列表组件*/ |
|
|
|
import comPartStock from "../common/com_part_stock";/*展示物料库存的组件*/ |
|
|
|
import comScheduleOrderExpand from '@/views/modules/schedule/com_schedule_order_expand';/*排产扩展 排产单个工单*/ |
|
|
|
import column from '@/views/modules/common/column';/*动态表头*/ |
|
|
|
|
|
|
|
import { |
|
|
|
getShopOrderList, |
|
|
|
getCurrentWorkCenterNoByResourceId, |
|
|
|
batchScheduleOrderWithExpand |
|
|
|
} from '@/api/schedule/order_schedule_expand.js'; |
|
|
|
|
|
|
|
/*动态表头*/ |
|
|
|
import { |
|
|
|
saveTableDefaultList, |
|
|
|
getTableDefaultListLanguage, |
|
|
|
getTableUserListLanguage, |
|
|
|
removerDefault, |
|
|
|
removerUser |
|
|
|
} from "@/api/table.js"; |
|
|
|
|
|
|
|
import { |
|
|
|
searchSysLanguagePackList, |
|
|
|
searchSysLanguageParam, |
|
|
|
searchFunctionButtonList, |
|
|
|
saveButtonList, |
|
|
|
searchSysLanguage, |
|
|
|
searchLanguageListByLanguageCode, |
|
|
|
saveSysLanguageOne, |
|
|
|
searchPageLanguageData, |
|
|
|
removerLanguage, |
|
|
|
saveSysLanguageList |
|
|
|
} from "@/api/sysLanguage.js"; |
|
|
|
|
|
|
|
var functionId = '104002004'; |
|
|
|
/*动态表头*/ |
|
|
|
import { |
|
|
|
saveTableDefaultList, |
|
|
|
getTableDefaultListLanguage, |
|
|
|
getTableUserListLanguage, |
|
|
|
removerDefault, |
|
|
|
removerUser |
|
|
|
} from "@/api/table.js"; |
|
|
|
|
|
|
|
import { |
|
|
|
searchSysLanguagePackList, |
|
|
|
searchSysLanguageParam, |
|
|
|
searchFunctionButtonList, |
|
|
|
saveButtonList, |
|
|
|
searchSysLanguage, |
|
|
|
searchLanguageListByLanguageCode, |
|
|
|
saveSysLanguageOne, |
|
|
|
searchPageLanguageData, |
|
|
|
removerLanguage, |
|
|
|
saveSysLanguageList |
|
|
|
} from "@/api/sysLanguage.js"; |
|
|
|
|
|
|
|
var functionId = '104002004'; |
|
|
|
|
|
|
|
export default { |
|
|
|
data() { |
|
|
|
@ -190,6 +277,140 @@ export default { |
|
|
|
authEdit: false, |
|
|
|
authAdd: false, |
|
|
|
authDelete: false, |
|
|
|
scheduleVisible: false, |
|
|
|
scheduleDate: this.dayjs().format('YYYY-MM-DD'), |
|
|
|
specifiedTime: 'N', |
|
|
|
scheduleTime: '08:30', |
|
|
|
dataListSelections: [], |
|
|
|
scheduleColumnList: [ |
|
|
|
{ |
|
|
|
userId: this.$store.state.user.name, |
|
|
|
functionId: 5301, |
|
|
|
serialNumber: '5301OrderOrderNo', |
|
|
|
tableId: "5301Order", |
|
|
|
tableName: "工单表", |
|
|
|
columnProp: "orderNo", |
|
|
|
headerAlign: "center", |
|
|
|
align: "center", |
|
|
|
columnLabel: "订单号", |
|
|
|
columnWidth: 80, |
|
|
|
columnHidden: false, |
|
|
|
columnImage: false, |
|
|
|
columnSortable: true, |
|
|
|
sortLv: 0, |
|
|
|
status: true, |
|
|
|
fixed: false |
|
|
|
}, |
|
|
|
{ |
|
|
|
userId: this.$store.state.user.name, |
|
|
|
functionId: 5301, |
|
|
|
serialNumber: '5301OrderItemNo', |
|
|
|
tableId: "5301Order", |
|
|
|
tableName: "工单表", |
|
|
|
columnProp: "itemNo", |
|
|
|
headerAlign: "center", |
|
|
|
align: "center", |
|
|
|
columnLabel: "工序号", |
|
|
|
columnWidth: 80, |
|
|
|
columnHidden: false, |
|
|
|
columnImage: false, |
|
|
|
columnSortable: true, |
|
|
|
sortLv: 0, |
|
|
|
status: true, |
|
|
|
fixed: false |
|
|
|
}, |
|
|
|
{ |
|
|
|
userId: this.$store.state.user.name, |
|
|
|
functionId: 5301, |
|
|
|
serialNumber: '5301OrderItemDesc', |
|
|
|
tableId: "5301Order", |
|
|
|
tableName: "工单表", |
|
|
|
columnProp: "itemDesc", |
|
|
|
headerAlign: "center", |
|
|
|
align: "center", |
|
|
|
columnLabel: "工序名称", |
|
|
|
columnWidth: 100, |
|
|
|
columnHidden: false, |
|
|
|
columnImage: false, |
|
|
|
columnSortable: true, |
|
|
|
sortLv: 0, |
|
|
|
status: true, |
|
|
|
fixed: false |
|
|
|
}, |
|
|
|
{ |
|
|
|
userId: this.$store.state.user.name, |
|
|
|
functionId: 5301, |
|
|
|
serialNumber: '5301OrderPartNo', |
|
|
|
tableId: "5301Order", |
|
|
|
tableName: "工单表", |
|
|
|
columnProp: "partNo", |
|
|
|
headerAlign: "center", |
|
|
|
align: "center", |
|
|
|
columnLabel: "产品编码", |
|
|
|
columnWidth: 100, |
|
|
|
columnHidden: false, |
|
|
|
columnImage: false, |
|
|
|
columnSortable: true, |
|
|
|
sortLv: 0, |
|
|
|
status: true, |
|
|
|
fixed: false |
|
|
|
}, |
|
|
|
|
|
|
|
{ |
|
|
|
userId: this.$store.state.user.name, |
|
|
|
functionId: 5301, |
|
|
|
serialNumber: '5301OrderQtyToSchedule', |
|
|
|
tableId: "5301Order", |
|
|
|
tableName: "工单表", |
|
|
|
columnProp: "qtyToSchedule", |
|
|
|
headerAlign: "center", |
|
|
|
align: "center", |
|
|
|
columnLabel: "待排产数量", |
|
|
|
columnWidth: 120, |
|
|
|
columnHidden: false, |
|
|
|
columnImage: false, |
|
|
|
columnSortable: true, |
|
|
|
sortLv: 0, |
|
|
|
status: true, |
|
|
|
fixed: false |
|
|
|
}, |
|
|
|
{ |
|
|
|
userId: this.$store.state.user.name, |
|
|
|
functionId: 5301, |
|
|
|
serialNumber: '5301OrderWorkCenterNo', |
|
|
|
tableId: "5301Order", |
|
|
|
tableName: "工单表", |
|
|
|
columnProp: "workCenterNo", |
|
|
|
headerAlign: "center", |
|
|
|
align: "center", |
|
|
|
columnLabel: "加工中心", |
|
|
|
columnWidth: 100, |
|
|
|
columnHidden: false, |
|
|
|
columnImage: false, |
|
|
|
columnSortable: true, |
|
|
|
sortLv: 0, |
|
|
|
status: true, |
|
|
|
fixed: false |
|
|
|
}, |
|
|
|
{ |
|
|
|
userId: this.$store.state.user.name, |
|
|
|
functionId: 5301, |
|
|
|
serialNumber: '5301OrderWorkCenterNo', |
|
|
|
tableId: "5301Order", |
|
|
|
tableName: "工单表", |
|
|
|
columnProp: "resourceId", |
|
|
|
headerAlign: "center", |
|
|
|
align: "center", |
|
|
|
columnLabel: "机台", |
|
|
|
columnWidth: 100, |
|
|
|
columnHidden: false, |
|
|
|
columnImage: false, |
|
|
|
columnSortable: true, |
|
|
|
sortLv: 0, |
|
|
|
status: true, |
|
|
|
fixed: false |
|
|
|
}, |
|
|
|
], |
|
|
|
menuId: this.$route.meta.menuId, |
|
|
|
showDefault: false, |
|
|
|
visible: false, |
|
|
|
@ -859,7 +1080,7 @@ export default { |
|
|
|
shopOrderFlag: true, |
|
|
|
partStockFlag: true, |
|
|
|
}, |
|
|
|
queryTable:{ |
|
|
|
queryTable: { |
|
|
|
userId: this.$store.state.user.name, |
|
|
|
functionId: this.$route.meta.menuId, |
|
|
|
tableId: "5301Order", |
|
|
|
@ -882,9 +1103,10 @@ export default { |
|
|
|
viewPartStock: '查看物料库存', |
|
|
|
settingTable: '设置列表', |
|
|
|
defaultTable: '设置默认配置', |
|
|
|
scheduleBatch: '批量排产', |
|
|
|
}, |
|
|
|
buttonList: [ |
|
|
|
{ |
|
|
|
{ |
|
|
|
functionId: functionId, |
|
|
|
languageValue: '刷新', |
|
|
|
objectId: 'refreshButton', |
|
|
|
@ -941,6 +1163,12 @@ export default { |
|
|
|
sortPartNo: '产品编码', |
|
|
|
primaryRecord: '主记录', |
|
|
|
pleaseSelectOrder: '请选择工单!', |
|
|
|
scheduleBatchWarning: '选中的工单中,包含未选择的机台的工单!', |
|
|
|
scheduledDate: '排产日期', |
|
|
|
pleaseEnterThisScheduleQty: '请输入本次排产数量!', |
|
|
|
thisScheduleQtyMustMoreThanZero: '本次排产数量必须大于零!', |
|
|
|
pleaseSelectAvailableResourceId: '请选择可用机台!', |
|
|
|
scheduleQtyMoreThanZeroWaitScheduleQty: '排产数量超过本次待排产数量!', |
|
|
|
}, |
|
|
|
labelsList: [ |
|
|
|
{ |
|
|
|
@ -1003,7 +1231,7 @@ export default { |
|
|
|
objectId: 'sortPartNo', |
|
|
|
objectType: 'label', |
|
|
|
tableId: '*' |
|
|
|
}, { |
|
|
|
}, { |
|
|
|
functionId: functionId, |
|
|
|
languageValue: '主记录', |
|
|
|
objectId: 'primaryRecord', |
|
|
|
@ -1040,9 +1268,103 @@ export default { |
|
|
|
}) |
|
|
|
}, |
|
|
|
methods: { |
|
|
|
|
|
|
|
// 开始排产 |
|
|
|
batchScheduleOrderWithExpandStart() { |
|
|
|
let newItemList = [] |
|
|
|
for (let i = 0; i < this.dataListSelections.length; i++) { |
|
|
|
let item = this.dataListSelections[i] |
|
|
|
let qtyToSchedule = item.qtyToSchedule; |
|
|
|
if (qtyToSchedule == null || qtyToSchedule == '') { |
|
|
|
this.$message.error(this.labels.pleaseEnterThisScheduleQty) |
|
|
|
return false; |
|
|
|
} |
|
|
|
//判断数量是否超限 |
|
|
|
if (item.scheduledQty <= 0) { |
|
|
|
this.$message.error(this.labels.thisScheduleQtyMustMoreThanZero) |
|
|
|
return false; |
|
|
|
} |
|
|
|
//验证可用机台 |
|
|
|
let resourceId = item.resourceId; |
|
|
|
if (resourceId == null || resourceId == '' || resourceId == '请选择') { |
|
|
|
this.$message.error(this.labels.pleaseSelectAvailableResourceId) |
|
|
|
return false; |
|
|
|
} |
|
|
|
let scheduledQty = parseFloat(item.scheduledQty); |
|
|
|
if (qtyToSchedule > scheduledQty) { |
|
|
|
this.$message.error(this.labels.scheduleQtyMoreThanZeroWaitScheduleQty) |
|
|
|
return false; |
|
|
|
} |
|
|
|
let newItem = { |
|
|
|
checkFlag: true, |
|
|
|
itemNo: item.itemNo, |
|
|
|
orderNo: item.orderNo, |
|
|
|
qtyToSchedule: item.scheduledQty, |
|
|
|
resourceId: item.resourceId, |
|
|
|
scheduleDate: this.scheduleDate, |
|
|
|
scheduleTime: this.scheduleTime, |
|
|
|
scheduledQty: item.qtyToSchedule, |
|
|
|
site: item.site, |
|
|
|
specifiedTime: this.specifiedTime, |
|
|
|
username: this.$store.state.user.name, |
|
|
|
workCenterNo: item.workCenterNo |
|
|
|
} |
|
|
|
newItemList.push(newItem) |
|
|
|
} |
|
|
|
batchScheduleOrderWithExpand(newItemList).then(({data}) => { |
|
|
|
if (data.code == 200) { |
|
|
|
this.$message.success(data.msg) |
|
|
|
} else if (data.code == 201) { |
|
|
|
this.$confirm(data.msg, '提示', { |
|
|
|
confirmButtonText: this.labels.confirmLabel, |
|
|
|
celButtonText: this.labels.cancelLabel, |
|
|
|
type: 'warning' |
|
|
|
}).then(() => { |
|
|
|
for (let i = 0; i < this.dataListSelections.length; i++) { |
|
|
|
let item = this.dataListSelections[i] |
|
|
|
let newItem = { |
|
|
|
checkFlag: false, |
|
|
|
itemNo: item.itemNo, |
|
|
|
orderNo: item.orderNo, |
|
|
|
qtyToSchedule: item.scheduledQty, |
|
|
|
resourceId: item.resourceId, |
|
|
|
scheduleDate: this.scheduleDate, |
|
|
|
scheduleTime: this.scheduleTime, |
|
|
|
scheduledQty: item.qtyToSchedule, |
|
|
|
site: item.site, |
|
|
|
specifiedTime: this.specifiedTime, |
|
|
|
username: this.$store.state.user.name, |
|
|
|
workCenterNo: item.workCenterNo |
|
|
|
} |
|
|
|
newItemList.push(newItem) |
|
|
|
} |
|
|
|
batchScheduleOrderWithExpand(newItemList).then(({data}) => { |
|
|
|
if (data.code == 200) { |
|
|
|
this.$message.success(data.msg) |
|
|
|
} else if (data.code == 500) { |
|
|
|
this.$message.error(data.msg) |
|
|
|
} |
|
|
|
}) |
|
|
|
}); |
|
|
|
this.$message.warning(data.msg) |
|
|
|
} else if (data.code == 500) { |
|
|
|
this.$message.error(data.msg) |
|
|
|
} |
|
|
|
}) |
|
|
|
}, |
|
|
|
// scheduleBatchDialog |
|
|
|
scheduleBatchDialog() { |
|
|
|
if (this.dataListSelections.find(item => item.resourceId == '' || item.resourceId == null)) { |
|
|
|
this.$message.warning(this.labels.scheduleBatchWarning) |
|
|
|
return |
|
|
|
} |
|
|
|
this.scheduleVisible = true |
|
|
|
}, |
|
|
|
// 选中记录 |
|
|
|
handleSelectionChange(val) { |
|
|
|
this.dataListSelections = val |
|
|
|
}, |
|
|
|
/*刷新页面table*/ |
|
|
|
refreshPageTables(){ |
|
|
|
refreshPageTables() { |
|
|
|
this.getShopOrderList(); |
|
|
|
}, |
|
|
|
|
|
|
|
@ -1056,35 +1378,35 @@ export default { |
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
/*列表方法的回调*/ |
|
|
|
getBaseData(val){ |
|
|
|
if (this.tagNo === 88){ |
|
|
|
/*列表方法的回调*/ |
|
|
|
getBaseData(val) { |
|
|
|
if (this.tagNo === 88) { |
|
|
|
this.pageData.resourceId = val.ResourceID; |
|
|
|
}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, " AND WorkCenterNo <> 'FQC'") |
|
|
|
this.$refs.baseList.init(val, strVal, " AND WorkCenterNo <> 'FQC'") |
|
|
|
}) |
|
|
|
}, |
|
|
|
|
|
|
|
/*区分不同的菜单 调用不同的方法 调用不同的方法*/ |
|
|
|
orderHandleCommand(menuName){ |
|
|
|
orderHandleCommand(menuName) { |
|
|
|
//区分是哪一个方法调用 |
|
|
|
if('生产工单' === menuName){ |
|
|
|
if ('生产工单' === menuName) { |
|
|
|
//判断是否选择好了工单 |
|
|
|
if(this.currentRoutingRow == null || this.currentRoutingRow == {}){ |
|
|
|
if (this.currentRoutingRow == null || this.currentRoutingRow == {}) { |
|
|
|
//重置按钮 |
|
|
|
this.primaryMenuButton.shopOrderFlag = true; |
|
|
|
//返回错误 |
|
|
|
@ -1099,9 +1421,9 @@ export default { |
|
|
|
user: this.$store.state.user.name |
|
|
|
} |
|
|
|
}) |
|
|
|
}else if('查看物料库存' === menuName){ |
|
|
|
} else if ('查看物料库存' === menuName) { |
|
|
|
//判断是否选择好了工单 |
|
|
|
if(this.currentRoutingRow == null || this.currentRoutingRow == {}){ |
|
|
|
if (this.currentRoutingRow == null || this.currentRoutingRow == {}) { |
|
|
|
//重置按钮 |
|
|
|
this.primaryMenuButton.partStockFlag = true; |
|
|
|
//返回错误 |
|
|
|
@ -1118,12 +1440,12 @@ export default { |
|
|
|
}, |
|
|
|
|
|
|
|
/*获取当前的机台对应的加工中心*/ |
|
|
|
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; |
|
|
|
@ -1131,10 +1453,10 @@ export default { |
|
|
|
}, |
|
|
|
|
|
|
|
/*设置当前行的下标*/ |
|
|
|
routingRowClassName({row, rowIndex}){ |
|
|
|
routingRowClassName({row, rowIndex}) { |
|
|
|
row.index = rowIndex; |
|
|
|
//判断当前行颜色参数 |
|
|
|
if(row.qtyScheduled > 0){ |
|
|
|
if (row.qtyScheduled > 0) { |
|
|
|
return 'customer-row-gray'; |
|
|
|
} |
|
|
|
}, |
|
|
|
@ -1146,13 +1468,13 @@ export default { |
|
|
|
|
|
|
|
|
|
|
|
/*开始排产的操作*/ |
|
|
|
startScheduleOperation(row, $event, column){ |
|
|
|
startScheduleOperation(row, $event, column) { |
|
|
|
//刷新当前派工单的数据 打开当前工单+工序的排产的 |
|
|
|
this.startScheduleOrderModal(row); |
|
|
|
}, |
|
|
|
|
|
|
|
/*刷新当前的页面的显示数据*/ |
|
|
|
startScheduleOrderModal(orderRow){ |
|
|
|
startScheduleOrderModal(orderRow) { |
|
|
|
//刷新排产的数量 |
|
|
|
this.$nextTick(() => { |
|
|
|
this.showScheduleOrderFlag = true; |
|
|
|
@ -1161,19 +1483,17 @@ export default { |
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*判断主菜单的样式*/ |
|
|
|
controlPrimaryMenuBun(){ |
|
|
|
controlPrimaryMenuBun() { |
|
|
|
//没有选择行 所有的按钮都是灰色 |
|
|
|
if(this.currentRoutingRow == null || this.currentRoutingRow == {}){ |
|
|
|
if (this.currentRoutingRow == null || this.currentRoutingRow == {}) { |
|
|
|
this.primaryMenuButton.shopOrderFlag = true; |
|
|
|
this.primaryMenuButton.partStockFlag = true; |
|
|
|
}else{ |
|
|
|
} else { |
|
|
|
// 判断是否具有该页面权限 |
|
|
|
let menList = JSON.parse(sessionStorage.getItem('dynamicMenuRoutes') || '[]') |
|
|
|
.filter(item => item.path == 'shopOrder-shopOrder/shopOrder') |
|
|
|
if (menList.length>0){ |
|
|
|
if (menList.length > 0) { |
|
|
|
this.primaryMenuButton.shopOrderFlag = false; |
|
|
|
} |
|
|
|
this.primaryMenuButton.partStockFlag = false; |
|
|
|
@ -1266,12 +1586,12 @@ export default { |
|
|
|
|
|
|
|
|
|
|
|
//获取按钮的权限数据 |
|
|
|
getButtonAuthData(){ |
|
|
|
let updateFlag = this.isAuth(this.menuId+":revise"); |
|
|
|
let fullControFlag = this.isAuth(this.menuId+":fullContro"); |
|
|
|
let deleteFlag = this.isAuth(this.menuId+":remove"); |
|
|
|
getButtonAuthData() { |
|
|
|
let updateFlag = this.isAuth(this.menuId + ":revise"); |
|
|
|
let fullControFlag = this.isAuth(this.menuId + ":fullContro"); |
|
|
|
let deleteFlag = this.isAuth(this.menuId + ":remove"); |
|
|
|
//处理页面的权限数据 |
|
|
|
this.authEdit = !updateFlag ||!fullControFlag; |
|
|
|
this.authEdit = !updateFlag || !fullControFlag; |
|
|
|
this.authAdd = !fullControFlag; |
|
|
|
this.authDelete = !deleteFlag; |
|
|
|
}, |
|
|
|
@ -1289,7 +1609,7 @@ export default { |
|
|
|
getMultiLanguageList() { |
|
|
|
//首先查询当前按钮的多语言 |
|
|
|
searchFunctionButtonList(this.queryButton).then(({data}) => { |
|
|
|
if (data && data.code == 0 ) { |
|
|
|
if (data && data.code == 0) { |
|
|
|
this.buttons = data.data |
|
|
|
} else { |
|
|
|
// saveButtonList(this.buttonList).then(({data}) => { |
|
|
|
@ -1298,7 +1618,7 @@ export default { |
|
|
|
}); |
|
|
|
//其次查询当前标签的多语言 |
|
|
|
searchFunctionButtonList(this.queryLabel).then(({data}) => { |
|
|
|
if (data && data.code == 0 ) { |
|
|
|
if (data && data.code == 0) { |
|
|
|
this.labels = data.data |
|
|
|
} else { |
|
|
|
// saveButtonList(this.buttonList).then(({data}) => { |
|
|
|
@ -1308,7 +1628,6 @@ export default { |
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}, |
|
|
|
created() { |
|
|
|
//查询工单的数据 |
|
|
|
@ -1324,7 +1643,7 @@ export default { |
|
|
|
}, |
|
|
|
|
|
|
|
/*利用监听器处理大小写*/ |
|
|
|
watch:{ |
|
|
|
watch: { |
|
|
|
pageData: { |
|
|
|
deep: true, |
|
|
|
handler: function (newV, oldV) { |
|
|
|
@ -1340,26 +1659,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; |
|
|
|
@ -1367,6 +1689,7 @@ div.customer-el-card { |
|
|
|
height: 20px; |
|
|
|
width: 60px; |
|
|
|
} |
|
|
|
|
|
|
|
/* 颜色控制 */ |
|
|
|
div.customer-el-card-pink { |
|
|
|
background: #FF00FF; |
|
|
|
@ -1381,26 +1704,27 @@ 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{ |
|
|
|
.customer-css .customer-bun-max { |
|
|
|
width: 80px; |
|
|
|
text-align: center; |
|
|
|
} |
|
|
|
|
|
|
|
/*当前按钮的通用样式*/ |
|
|
|
.customer-css .el-button--medium { |
|
|
|
padding: 5px 5px; |
|
|
|
@ -1412,7 +1736,7 @@ div.customer-el-card-blue { |
|
|
|
} |
|
|
|
|
|
|
|
/*灰色的表格行背景颜色*/ |
|
|
|
.customer-css /deep/ tr.customer-row-gray > td{ |
|
|
|
.customer-css /deep/ tr.customer-row-gray > td { |
|
|
|
background: #7e819e; |
|
|
|
} |
|
|
|
|
|
|
|
@ -1430,23 +1754,30 @@ div.customer-el-card-blue { |
|
|
|
}*/ |
|
|
|
|
|
|
|
/*添加主菜单和明细菜单的样式*/ |
|
|
|
.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: 12px; |
|
|
|
line-height: 16px; |
|
|
|
padding: 4px 8px; |
|
|
|
} |
|
|
|
|
|
|
|
.el-input /deep/ .el-icon-time{ |
|
|
|
.el-input /deep/ .el-icon-time { |
|
|
|
display: none; |
|
|
|
} |
|
|
|
|
|
|
|
/*控制上下间距*/ |
|
|
|
hr { |
|
|
|
margin-top: 0px; |
|
|
|
} |
|
|
|
|
|
|
|
/deep/ .el-table .cell { |
|
|
|
line-height: 20px; |
|
|
|
font-size: 12px; |
|
|
|
height: 20px; |
|
|
|
} |
|
|
|
</style> |