<template>
|
<div class="mod-config">
|
<basic-container>
|
<el-row>
|
<el-col :span="9">
|
|
<ttable :table="table" @currentChange="palletTransportsChange" :uploadInfo="uploadInfo" :prelang="prelang"
|
:options="options" :ajaxFun="ajaxFun" :fixedHeight="palletTransportsFixedHeight" ref="pallettransportsTable">
|
<template #toolbar>
|
<el-button v-if="permissions.warehouse_pallettransports_add" type="primary"
|
@click="addOrUpdateHandle()">新增</el-button>
|
<el-dropdown style="margin-left: 20px;" @command="handleCommand">
|
<el-button >
|
状态变更<i class="el-icon-arrow-down el-icon--right"></i>
|
</el-button>
|
<el-dropdown-menu slot="dropdown">
|
<el-dropdown-item :key="index"
|
:command="item.label"
|
v-for="(item,index) in taskTypeArr"
|
>{{ item.label }}</el-dropdown-item
|
>
|
</el-dropdown-menu>
|
</el-dropdown>
|
</template>
|
</ttable>
|
|
<div style="margin:0px 20px 0px;display:flex;height:36px;justify-content: space-between;align-items:center;">
|
<div>
|
<span style="font-weight:bold;">对应工单</span>
|
</div>
|
<div></div>
|
</div>
|
<div style="padding:0px 20px 0px;">
|
<el-table class="pallet-transports-optask-table" :data="palletTransportsOptaskData"
|
style="width: 100%;"
|
v-adaptive="{ bottomOffset: 20, fixedHeight: 0 }" height="100px" border highlight-current-row
|
@row-click="optaskRowClick" stripe ref="palletTransportsOptaskTable">
|
<el-table-column align="center" width="55" label="单选">
|
<template slot-scope="scope">
|
<el-checkbox class="optask-table-single-checkbox" v-model="scope.row.commonChecked"
|
disabled></el-checkbox>
|
</template>
|
</el-table-column>
|
<el-table-column prop="optaskNo" label="工单号" align="center" show-overflow-tooltip>
|
</el-table-column>
|
<el-table-column prop="partName" label="零件" align="center" show-overflow-tooltip>
|
</el-table-column>
|
<el-table-column prop="workCenter" label="工作中心" align="center" show-overflow-tooltip>
|
</el-table-column>
|
<el-table-column prop="workstationName" label="工作站" align="center" show-overflow-tooltip>
|
</el-table-column>
|
<el-table-column prop="plannedQuantity" label="计划数量" align="center" show-overflow-tooltip>
|
</el-table-column>
|
<el-table-column prop="unit" label="单位" align="center" show-overflow-tooltip>
|
</el-table-column>
|
</el-table>
|
</div>
|
</el-col>
|
<el-col :span="15" style="padding-left: 10px;padding-right: 10px">
|
<div style="display:flex;height:36px;justify-content: space-between;align-items:center;">
|
<div><span style="font-weight:bold;">物料需求</span></div>
|
<div>
|
<el-button type="text" v-if="permissions.warehouse_pallettransports_demand_add"
|
@click="openPartDialog">新增</el-button><el-button type="text"
|
v-if="permissions.warehouse_pallettransports_ifs" @click="openLocationDialog">移至库位</el-button>
|
</div>
|
</div>
|
<div>
|
<el-table class="pallet-transports-material-table" @selection-change="handleCurrentChange" :data="palletTransportsMaterialData" style="width: 100%;"
|
height="350px" border stripe
|
ref="palletTransportsMaterialTable">
|
<!--单选框 @selection-change="palletTransportsMaterialSelectionChange"-->
|
<!-- <el-table-column align="center" width="55" label="多选">
|
<template slot-scope="scope">
|
<el-checkbox v-model="scope.row.commonChecked" @change="handleCurrentChange(scope.row)" ></el-checkbox>
|
</template>
|
</el-table-column> -->
|
<el-table-column type="selection" width="55"> </el-table-column>
|
<el-table-column prop="partNo" label="零件号" align="center" show-overflow-tooltip>
|
</el-table-column>
|
<el-table-column prop="partDesc" label="零件描述" align="center" show-overflow-tooltip>
|
</el-table-column>
|
<el-table-column prop="demandQuantity" label="需求数量" align="center">
|
<template slot-scope="scope">
|
<el-input v-show="scope.row.canEdit" v-model="scope.row.demandQuantity"></el-input>
|
<span v-show="!scope.row.canEdit">{{
|
scope.row.demandQuantity
|
}}</span>
|
</template>
|
</el-table-column>
|
<el-table-column prop="transferQuantity" label="移库数量" align="center">
|
</el-table-column>
|
<el-table-column prop="surplusQuantity" label="剩余数量" align="center">
|
</el-table-column>
|
<el-table-column prop="unit" label="计量单位" align="center">
|
</el-table-column>
|
<el-table-column prop="toIfsLocationNo" label="移至库位" align="center">
|
</el-table-column>
|
<el-table-column label="操作" align="center" width="100" v-if="permissions.warehouse_pallettransports_demand_edit">
|
<template slot-scope="scope">
|
<!-- <el-button v-show="!scope.row.canEdit" type="text" :disabled="scope.row.detailExistState"
|
@click="scope.row.canEdit = true">编辑</el-button> -->
|
<!-- <el-button v-show="scope.row.canEdit" type="text" :disabled="scope.row.detailExistState"
|
@click="updateMaterial(scope.row)">保存</el-button> -->
|
<el-button type="text" :disabled="scope.row.detailExistState"
|
@click="delMaterial(scope.row)">删除</el-button>
|
</template>
|
</el-table-column>
|
</el-table>
|
</div>
|
<div style="margin-top:10px;display:flex;height:36px;justify-content: space-between;align-items:center;">
|
<div>
|
<span style="font-weight:bold;">移库明细</span>
|
<!-- <span style="color:red;">({{
|
palletTransportsMaterialMultipleSelection.length > 0
|
? palletTransportsMaterialMultipleSelection[
|
palletTransportsMaterialMultipleSelection.length - 1
|
].partDesc
|
: ''
|
}})</span> -->
|
</div>
|
<div>
|
<el-button type="primary" v-if="permissions.warehouse_pallettransports_detail_add" round
|
@click="getPalletTransportsDetailData">添加明细</el-button>
|
<!-- <el-button type="warning" v-if="permissions.warehouse_pallettransports_detail_library" round
|
@click="openDetailLocationDialog">一键至库位</el-button> -->
|
<el-button type="success" v-if="permissions.warehouse_pallettransports_detail_execute" round
|
@click="updateStockFun">执 行</el-button>
|
</div>
|
</div>
|
<div>
|
<el-table class="pallet-transports-detail-table" :data="palletTransportsDetailData" style="width: 100%;"
|
v-adaptive="{ bottomOffset: 20, fixedHeight: 0 }" height="100px" border
|
@selection-change="palletTransportsDetailSelectionChange" stripe ref="palletTransportsDetailTable">
|
<el-table-column type="selection" width="55"> </el-table-column>
|
|
<el-table-column prop="part_no" label="零件号" align="center" show-overflow-tooltip>
|
</el-table-column>
|
<el-table-column prop="part_desc" label="零件描述" align="center" show-overflow-tooltip>
|
</el-table-column>
|
<!-- <el-table-column prop="batchNo" label="批次号" align="center" show-overflow-tooltip>
|
</el-table-column>
|
<el-table-column prop="wdr" label="WDR" align="center">
|
</el-table-column> -->
|
<el-table-column prop="operation_task_no" label="工单" align="center" show-overflow-tooltip>
|
</el-table-column>
|
|
|
<el-table-column prop="transfer_quantity" label="移库数量" align="center">
|
<template slot-scope="scope">
|
<el-input v-model="scope.row.transfer_quantity" @change="moveLocation(scope.row)" :disabled = "scope.row.state == '02submitted' " border="none"></el-input>
|
</template>
|
</el-table-column>
|
|
|
<el-table-column prop="unit" label="单位" align="center">
|
</el-table-column>
|
<!-- <el-table-column prop="fromIfsLocationNo" label="IFS从库位" align="center">
|
</el-table-column> -->
|
<el-table-column prop="to_ifs_location_no" label="移至库位" align="center">
|
<!-- <template slot-scope="scope">
|
<el-link type="primary" @click="openSingleLocationDialog(scope.row)">{{ scope.row.toIfsLocationNo
|
}}</el-link>
|
</template> -->
|
</el-table-column>
|
<el-table-column prop="state" label="状态" align="center">
|
<template slot-scope="scope">
|
<span>{{
|
scope.row.state == null
|
? ''
|
: scope.row.state === '01initial'
|
? '已创建'
|
: '已执行'
|
}}</span>
|
</template>
|
</el-table-column>
|
<el-table-column label="操作" align="center" width="85" v-if="permissions.warehouse_pallettransports_detail_edit">
|
<template slot-scope="scope">
|
<!-- <el-button type="text" @click="openEditStockDialog(scope.row)"
|
:disabled="scope.row.state === '01initial' ? false : true">编辑</el-button> -->
|
<el-button type="text" @click="delDetail(scope.row)"
|
:disabled="scope.row.state === '01initial' ? false : true">删除</el-button>
|
</template>
|
</el-table-column>
|
</el-table>
|
</div>
|
</el-col>
|
</el-row>
|
<!-- 弹窗, 新增 / 修改 -->
|
<pallettransportsFormDialog :currshowlist.sync="showPallettransportsForm" :palletTransportsId="palletTransportsId"
|
@refreshPalletTransports="getPallettransportsData" />
|
<!-- 弹窗, 零件列表 -->
|
<partDialog :currshowlist.sync="showPart" @listenToPartEvent="selectPartCallback" />
|
<!-- 弹窗, IFS库位列表 -->
|
<ifsLocationDialog :currshowlist.sync="showLocation" :transportsList="palletTransportsMaterialMultipleSelection"
|
@refreshDataList="selectLocationCallback" />
|
<!-- 弹窗, IFS库存列表 -->
|
<ifsStockDialog :currshowlist.sync="showStock" :materialRow="materialRow" :transportsRow="currPalletTransportsRow"
|
:optask="currOptask" @refreshDataList="addIfsStockCallback" />
|
<!-- 弹窗, 编辑IFS库存列表 -->
|
<detailIfsStockDialog :currshowlist.sync="showDetailStock" :materialRow="materialRow"
|
:transportsRow="currPalletTransportsRow" :detailRow="currDetailRow" @refreshDataList="addIfsStockCallback" />
|
<!-- 弹窗, 明细的IFS库位列表 -->
|
<detailIfsLocationDialog :currshowlist.sync="showDetailLocation" :detailList="detailList"
|
@refreshDataList="selectDetailLocationCallback" />
|
|
</basic-container>
|
</div>
|
</template>
|
<script>
|
import {
|
palletTransportsFetchList,
|
delPalletTransportsObj,
|
addPalletTransportsMaterial,
|
palletTransportsMaterialFetchList,
|
putPalletTransportsMaterial,
|
delPalletTransportsMaterialObj,
|
palletTransportsDetailFetchList,
|
delPalletTransportsDetailObj,
|
executeMoveLocation,
|
selectAll,
|
updateStock,
|
updataStatus,
|
} from '@/api/warehouse/pallettransports'
|
import { getByPalletTransId } from '@/api/plan/operationtask'
|
import ttable from '@/views/common/ztt-table.vue'
|
import pallettransportsFormDialog from './pallettransports-form'
|
import partDialog from '@/views/common/part.vue'
|
import ifsStockDialog from './ifsstock-form'
|
import detailIfsStockDialog from './detailifsstock-form'
|
import ifsLocationDialog from './ifslocation-form'
|
import detailIfsLocationDialog from './detail-ifslocation-form'
|
import adaptive from '@/util/adaptive'
|
import { mapGetters } from 'vuex'
|
import { saveBatchPalletTransportsDetail } from '@/api/warehouse/pallettransports'
|
export default {
|
data() {
|
return {
|
taskTypeArr: [
|
{label:"草稿"},
|
{label:"进行中"},
|
{label:"已完成"},
|
],
|
command:"",
|
forbidden:false,
|
partDesc: null,
|
ajaxFun: palletTransportsFetchList,
|
currPalletTransportsRow: null,
|
palletTransportsMaterialMultipleSelection: [],
|
palletTransportsDetailMultipleSelection: [],
|
uploadInfo: {
|
// 是否展示上传EXCEL以及对应的url
|
isShow: false,
|
url: ''
|
},
|
WorkOrder:{},
|
datalistAPI:'',
|
prelang: 'pallettransports',
|
options: {
|
height: 300, // 默认高度-为了表头固定
|
stripe: true, // 是否为斑马纹 table
|
highlightCurrentRow: false, // 是否要高亮当前行
|
border: true, // 是否有纵向边框
|
lazy: false, // 是否需要懒加载
|
fit: true, // 列的宽度是否自撑开
|
multiSelect: false, //
|
seqNo: true,
|
isRefresh: true, // 是否显示刷新按钮
|
isShowHide: true, // 是否显示显影按钮
|
isSearch: false, // 高级查询按钮
|
defaultOrderBy: { column: 'id', direction: 'desc' }
|
},
|
palletTransportsBottomOffset: 301,
|
palletTransportsFixedHeight: 260,
|
table: {
|
total: 0,
|
currentPage: 1,
|
pageSize: 20,
|
data: [],
|
// 标题
|
column: [
|
// 货盘运输任务标识号
|
{
|
minWidth: '140',
|
prop: 'transportsNo',
|
label: '货盘运输任务标识号',
|
sort: true,
|
isTrue: true,
|
isSearch: true,
|
searchInfoType: 'text',
|
render: { fun: this.addOrUpdateHandle }
|
},
|
// 申请人
|
{
|
minWidth: '120',
|
prop: 'staffName',
|
label: '申请人',
|
sort: true,
|
isTrue: true,
|
isSearch: true,
|
searchInfoType: 'text'
|
},
|
// 状态
|
{
|
minWidth: '120',
|
prop: 'state',
|
label: '状态',
|
sort: true,
|
isTrue: true,
|
isSearch: true,
|
searchInfoType: 'select',
|
formatter: this.formatStateType,
|
optList: () => {
|
return this.stateOptions
|
}
|
},
|
// 创建时间
|
{
|
minWidth: '200',
|
prop: 'createTime',
|
label: '创建时间',
|
sort: true,
|
isTrue: true,
|
isSearch: true,
|
searchInfoType: 'datetimerange'
|
},
|
// 创建人
|
{
|
minWidth: '120',
|
prop: 'createUser',
|
label: '创建人',
|
sort: true,
|
isTrue: true,
|
isSearch: true,
|
searchInfoType: 'text'
|
}
|
],
|
toolbar: [],
|
operator: null,
|
operatorConfig: {
|
fixed: 'right',
|
label: '操作',
|
width: 100,
|
minWidth: 100
|
}
|
},
|
palletTransportsMaterialData: [],
|
palletTransportsDetailData: [],
|
showPallettransportsForm: false,
|
palletTransportsId: null,
|
showPart: false,
|
showStock: false,
|
showDetailStock: false,
|
showLocation: false,
|
showDetailLocation: false,
|
materialRow: null,
|
currDetailRow: null,
|
detailList: [],
|
palletTransportsOptaskData: [],
|
currOptask: null,
|
cid:null,
|
stateOptions: [
|
{ value: 'draft', label: '草稿' },
|
{ value: 'processing', label: '进行中' },
|
{ value: 'finished', label: '已完成' }
|
]
|
}
|
},
|
components: {
|
ttable,
|
pallettransportsFormDialog,
|
partDialog,
|
ifsStockDialog,
|
detailIfsStockDialog,
|
ifsLocationDialog,
|
detailIfsLocationDialog
|
},
|
directives: {
|
adaptive
|
},
|
computed: {
|
...mapGetters(['permissions'])
|
},
|
watch:{
|
},
|
created() {
|
if(this.permissions.warehouse_pallettransports_edit){
|
this.table.operator = [
|
{
|
text: '删除',
|
type: 'text',
|
size: 'small',
|
fun: this.deleteHandle
|
}
|
]
|
}
|
},
|
methods: {
|
palletTransportsChange(val) {
|
this.cid = val.id
|
this.currPalletTransportsRow = val
|
if (this.currPalletTransportsRow) {
|
this.getPalletTransportsMaterialData()
|
this.getOptasks()
|
this.palletTransportsMaterialSelectionChange(val)
|
}
|
},
|
palletTransportsMaterialSelectionChange() {
|
if(this.cid){
|
selectAll({transportsId:this.cid}).then((res)=>{
|
this.palletTransportsDetailData = res.data.data.map(el =>{
|
return{
|
part_no:el.partNo,
|
part_desc:el.partDesc,
|
operation_task_no:el.operationTaskNo,
|
transfer_quantity:el.transferQuantity,
|
unit:el.unit,
|
to_ifs_location_no:el.toIfsLocationName,
|
state:el.state,
|
id:el.id,
|
}
|
})
|
|
})}
|
// this.palletTransportsMaterialMultipleSelection = val
|
// if(val && val.length>0){
|
// let ids =[]
|
// this.palletTransportsMaterialMultipleSelection.forEach(el =>{ids.push(el.id)})
|
// let pId = ids[ids.length - 1];
|
// if(pId!=null){
|
// selectAll({
|
// transportsId:this.currPalletTransportsRow.id,
|
// transportsMaterialId: pId
|
// }).then((res) =>{
|
// this.palletTransportsDetailData = []
|
// if(res.data.data){
|
// this.palletTransportsDetailData.push(res.data.data)
|
// }
|
// })
|
// }else{
|
// this.palletTransportsDetailData = []
|
// }
|
// }
|
},
|
//状态
|
handleCommand(event){
|
let str = ""
|
console.log(event);
|
if (event == "草稿") {
|
str = "draft"
|
}else if (event == "进行中") {
|
str = "processing"
|
}else{
|
str = "finished"
|
}
|
|
if (this.cid) {
|
updataStatus({id:this.cid,state:str}).then((res) =>{
|
this.$refs.pallettransportsTable.getDataList()
|
})
|
}else{
|
this.$message.error('请选择' + str + '的对象')
|
}
|
},
|
// 单行选中
|
handleCurrentChange(row) {
|
this.palletTransportsMaterialMultipleSelection = row
|
// this.palletTransportsMaterialData.forEach((item) => {
|
// // 排他,每次选择时把其他选项都清除
|
// if (item.id !== row.id) {
|
// item.commonChecked = false
|
// }else{
|
// item.commonChecked = true
|
// }
|
// })
|
// this.palletTransportsMaterialSelectionChange([row])
|
// this.palletTransportsDetailData = data
|
},
|
// 工艺类型中文格式化
|
formatStateType(row, column, cellValue) {
|
this.stateOptions.forEach((obj) => {
|
if (obj.value === cellValue) {
|
cellValue = obj.label
|
}
|
})
|
return cellValue
|
},
|
// 获取货盘运输任务数据列表
|
getPallettransportsData() {
|
if (this.$refs.pallettransportsTable !== undefined) {
|
return this.$refs.pallettransportsTable.getDataList()
|
}
|
},
|
// 获取物料需求数据列表
|
getPalletTransportsMaterialData() {
|
const currRow = this.materialRow
|
const queryParam = Object.assign(
|
{
|
current: 1,
|
size: 100
|
},
|
{
|
transportsId: this.currPalletTransportsRow.id
|
}
|
)
|
this.palletTransportsMaterialData = []
|
palletTransportsMaterialFetchList(queryParam).then((response) => {
|
const resData = response.data
|
if (resData.code === 0) {
|
const records = resData.data.records
|
if (records.length > 0) {
|
let palletTransportsMaterial
|
records.forEach((item) => {
|
palletTransportsMaterial = {
|
id: item.id,
|
partDesc: item.partDesc,
|
demandQuantity: item.demandQuantity,
|
partId: item.partId,
|
partNo: item.partNo,
|
surplusQuantity: item.surplusQuantity,
|
toIfsLocationName: item.toIfsLocationName,
|
toIfsLocationNo: item.toIfsLocationNo,
|
transferQuantity: item.transferQuantity,
|
unit: item.unit,
|
transportsId: item.transportsId,
|
detailExistState: item.detailExistState,
|
canEdit: false,
|
commonChecked: false
|
}
|
this.palletTransportsMaterialData.push(palletTransportsMaterial)
|
})
|
|
if (currRow != null) {
|
const selectedRow = this.palletTransportsMaterialData.find(
|
(item) => {
|
return item.id === currRow.id
|
}
|
)
|
if (selectedRow) {
|
this.$refs.palletTransportsMaterialTable.toggleRowSelection(
|
selectedRow,
|
true
|
)
|
}
|
}
|
}
|
}
|
})
|
},
|
// 新增 / 修改
|
addOrUpdateHandle(row) {
|
if (row != null) {
|
this.palletTransportsId = row.id
|
} else {
|
this.palletTransportsId = 0
|
}
|
this.showPallettransportsForm = true
|
},
|
// 删除
|
deleteHandle(row) {
|
this.$confirm('是否确认删除货盘运输任务为:' + row.transportsNo, '提示', {
|
confirmButtonText: '确定',
|
cancelButtonText: '取消',
|
closeOnClickModal: false,
|
type: 'warning'
|
})
|
.then(function () {
|
return delPalletTransportsObj(row.id)
|
})
|
.then((data) => {
|
this.$message.success('删除成功')
|
this.getPallettransportsData()
|
this.palletTransportsMaterialData = []
|
this.palletTransportsDetailData = []
|
})
|
.catch(() => { })
|
},
|
// 打开零件列表
|
openPartDialog() {
|
if (this.currPalletTransportsRow != null) {
|
this.showPart = true
|
} else {
|
this.$message.error('请先选择货盘运输任务')
|
}
|
},
|
// 物料选中后的回调
|
selectPartCallback(row) {
|
if (row) {
|
const palletTransportsMaterial = {
|
partId: row.id,
|
transportsId: this.currPalletTransportsRow.id
|
}
|
addPalletTransportsMaterial(palletTransportsMaterial).then(
|
(response) => {
|
const resData = response.data
|
if (resData.code === 0) {
|
// this.getPalletTransportsMaterialData()
|
this.$message.success('物料需求新增成功')
|
const currRow = this.currPalletTransportsRow
|
this.getPallettransportsData().then(() => {
|
if (currRow) {
|
this.$refs.pallettransportsTable.clickTable(currRow)
|
}
|
})
|
} else {
|
this.$message.error('物料需求新增失败')
|
}
|
}
|
)
|
}
|
},
|
selectLocationCallback() {
|
this.getPalletTransportsMaterialData()
|
},
|
// 打开ifs库位选择框
|
openLocationDialog() {
|
if (this.palletTransportsMaterialMultipleSelection.length > 0) {
|
let flag = true
|
this.palletTransportsMaterialMultipleSelection.forEach((item) => {
|
if (item.detailExistState) {
|
flag = false
|
}
|
})
|
if (flag) {
|
this.showLocation = true
|
} else {
|
this.$message.error('物料需求已有移库明细,不可进行修改')
|
}
|
} else {
|
this.$message.error('请先选择物料需求,再进行IFS库位添加')
|
}
|
},
|
// 修改保存物料需求
|
updateMaterial(row) {
|
const updateParam = {
|
id: row.id,
|
demandQuantity: row.demandQuantity
|
}
|
putPalletTransportsMaterial(updateParam).then((response) => {
|
const resData = response.data
|
if (resData.code === 0) {
|
row.canEdit = false
|
row.transferQuantity = resData.data.transferQuantity
|
row.surplusQuantity = resData.data.surplusQuantity
|
this.$message.success('物料需求保存成功')
|
} else {
|
this.$message.error('物料需求保存失败')
|
}
|
})
|
},
|
// 删除物料需求
|
delMaterial(row) {
|
/* const delRow = this.palletTransportsMaterialData.find((item) => {
|
return item.id === row.id
|
}) */
|
|
delPalletTransportsMaterialObj(row.id).then((response) => {
|
const resData = response.data
|
if (resData.code === 0) {
|
// const findRowIndex = this.palletTransportsMaterialData.indexOf(delRow)
|
// this.palletTransportsMaterialData.splice(findRowIndex, 1)
|
// this.getPalletTransportsMaterialData()
|
const currRow = this.currPalletTransportsRow
|
this.getPallettransportsData().then(() => {
|
if (currRow) {
|
this.$refs.pallettransportsTable.clickTable(currRow)
|
}
|
})
|
this.$message.success('物料需求删除成功')
|
} else {
|
this.$message.error('物料需求删除失败')
|
}
|
})
|
},
|
// 获取移库明细数据列表
|
getPalletTransportsDetailData() {
|
let transportsDetails =[]
|
transportsDetails = this.palletTransportsMaterialMultipleSelection.map(el =>{
|
return{
|
partNo:el.partNo,
|
partDesc: el.partDesc,
|
transferQuantity: 0,
|
toIfsLocationNo:el.toIfsLocationNo,
|
toIfsLocationName: el.toIfsLocationName,
|
transportsId: el.transportsId,
|
transportsMaterialId:el.id,
|
operationTaskNo:this.WorkOrder.optaskNo,
|
operationTaskId:this.WorkOrder.id,
|
unit: el.unit,
|
}})
|
// this.palletTransportsDetailData = transportsDetails
|
if (transportsDetails.length > 0) {
|
let selectionList = this.palletTransportsMaterialMultipleSelection
|
saveBatchPalletTransportsDetail(transportsDetails)
|
.then((response) => {
|
const resData = response.data
|
if (resData.code === 0) {
|
this.innerVisible = false
|
this.$message.success('添加移库明细成功')
|
let materialRow = selectionList[selectionList.length - 1]
|
this.palletTransportsMaterialData.forEach(ele=>{
|
if(ele.id==materialRow.id){
|
ele.transferQuantity = materialRow.surplusQuantity
|
ele.surplusQuantity = 0
|
}
|
})
|
this.getPalletTransportsMaterialData()
|
} else {
|
this.$message.error('添加移库明细失败')
|
}
|
// this.getPalletTransportsMaterialData()
|
this.palletTransportsMaterialSelectionChange()
|
})
|
// .catch(() => {
|
// })
|
}
|
},
|
// 添加ifs物料库存回调
|
addIfsStockCallback() {
|
const currRow = this.currPalletTransportsRow
|
this.getPallettransportsData().then(() => {
|
if (currRow) {
|
this.$refs.pallettransportsTable.clickTable(currRow)
|
}
|
})
|
},
|
// 打开明细批量更新库位弹框
|
openDetailLocationDialog() {
|
if (this.palletTransportsDetailData.length > 0) {
|
let flag = true
|
this.palletTransportsDetailData.forEach((item) => {
|
if (item.state === '02submitted') {
|
flag = false
|
}
|
})
|
if (flag) {
|
this.detailList = this.palletTransportsDetailData
|
this.showDetailLocation = true
|
} else {
|
this.$message.error('存在已完成状态的明细,无法一键至库位')
|
}
|
} else {
|
this.$message.error('不存在移库明细')
|
}
|
},
|
// 打开单个明细批量更新库位弹框
|
openSingleLocationDialog(row) {
|
if (row.state === '01initial') {
|
this.detailList = []
|
this.detailList.push(row)
|
// this.showDetailLocation = true
|
} else {
|
this.$message.error('移库明细已执行')
|
}
|
},
|
// 删除移库明细
|
delDetail(row) {
|
const delRow = this.palletTransportsDetailData.find((item) => {
|
return item.id === row.id
|
})
|
delPalletTransportsDetailObj(row.id).then((response) => {
|
const resData = response.data
|
if (resData.code === 0) {
|
const findRowIndex = this.palletTransportsDetailData.indexOf(delRow)
|
this.palletTransportsDetailData.splice(findRowIndex, 1)
|
this.$message.success('移库明细删除成功')
|
const currRow = this.currPalletTransportsRow
|
this.getPallettransportsData().then(() => {
|
if (currRow) {
|
this.$refs.pallettransportsTable.clickTable(currRow)
|
}
|
})
|
} else {
|
this.$message.error('移库明细删除失败')
|
}
|
})
|
},
|
//改变
|
moveLocation(val){
|
let num = Number(val.transfer_quantity)
|
this.palletTransportsDetailMultipleSelection.forEach(el =>{
|
el.transfer_quantity = num
|
})
|
},
|
updateStockFun(){
|
let data = []
|
data = this.palletTransportsDetailMultipleSelection.map(el =>{
|
return {
|
id:el.id,
|
transferQuantity:el.transfer_quantity
|
}
|
})
|
updateStock(data).then((res) =>{
|
if(res.data.code===0){
|
this.getPalletTransportsMaterialData()
|
this.executeMove()
|
}
|
})
|
},
|
// 执行移库
|
executeMove() {
|
if (
|
this.palletTransportsDetailMultipleSelection &&
|
this.palletTransportsDetailMultipleSelection.length > 0
|
) {
|
let flag = true
|
const ids = []
|
this.palletTransportsDetailMultipleSelection.forEach((item) => {
|
ids.push(item.id)
|
if (item.state === '02submitted') {
|
flag = false
|
}
|
})
|
if (flag) {
|
executeMoveLocation(ids).then((response) => {
|
const resData = response.data
|
if (resData.code === 0) {
|
this.$message.success('执行成功')
|
// this.getPalletTransportsMaterialData()
|
this.palletTransportsDetailData=[]
|
const currRow = this.currPalletTransportsRow
|
this.getPallettransportsData().then(() => {
|
if (currRow) {
|
this.$refs.pallettransportsTable.clickTable(currRow)
|
}
|
})
|
} else {
|
this.$message.error('执行失败')
|
}
|
})
|
} else {
|
this.$message.error('只有已创建状态的明细,才能被执行')
|
}
|
} else {
|
this.$message.error('请选择移库明细')
|
}
|
|
},
|
selectDetailLocationCallback() {
|
this.getPalletTransportsDetailData()
|
},
|
// 打开移库明细编辑页面
|
openEditStockDialog(row) {
|
this.currDetailRow = row
|
this.showDetailStock = true
|
},
|
palletTransportsDetailSelectionChange(val) {
|
this.palletTransportsDetailMultipleSelection = val
|
},
|
getOptasks() {
|
this.currOptask = null
|
// 查询货盘运输任务对应的工单列表信息
|
this.palletTransportsOptaskData = []
|
getByPalletTransId(this.currPalletTransportsRow.id).then((response) => {
|
const resData = response.data
|
if (resData.code === 0) {
|
this.palletTransportsOptaskData = resData.data
|
}
|
})
|
},
|
optaskRowClick(row, column) {
|
this.WorkOrder = row
|
this.palletTransportsOptaskData.forEach((item) => {
|
if (row.id !== item.id) {
|
item.commonChecked = false
|
}
|
})
|
if (row.commonChecked) {
|
row.commonChecked = false
|
this.currOptask = null
|
this.$refs.palletTransportsOptaskTable.setCurrentRow()
|
} else {
|
row.commonChecked = true
|
this.currOptask = row
|
this.$refs.palletTransportsOptaskTable.setCurrentRow(row)
|
}
|
}
|
}
|
}
|
</script>
|
<style scoped>
|
.pallet-transports-material-table>>>.el-table__header th {
|
color: #666666;
|
}
|
|
.pallet-transports-material-table>>>th {
|
padding: 3px 0px;
|
height: 31px;
|
}
|
|
.pallet-transports-material-table>>>td {
|
padding: 1px 0 0 0;
|
}
|
|
.pallet-transports-detail-table>>>.el-table__header th {
|
color: #666666;
|
}
|
|
.pallet-transports-detail-table>>>th {
|
padding: 3px 0px;
|
height: 31px;
|
}
|
|
.pallet-transports-detail-table>>>td {
|
padding: 1px 0 0 0;
|
}
|
|
.pallet-transports-optask-table>>>.el-table__header th {
|
color: #666666;
|
}
|
|
.pallet-transports-optask-table>>>th {
|
padding: 3px 0px;
|
height: 31px;
|
}
|
|
.pallet-transports-optask-table>>>td {
|
padding: 1px 0 0 0;
|
}
|
|
.optask-table-single-checkbox>>>.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner {
|
background-color: #006eff;
|
border-color: #006eff;
|
}
|
|
.optask-table-single-checkbox>>>.el-checkbox__input.is-disabled .el-checkbox__inner {
|
background-color: #ffffff;
|
cursor: pointer;
|
}
|
|
.optask-table-single-checkbox>>>.el-checkbox__inner::after {
|
border: 1px solid #fff !important;
|
border-left: 0 !important;
|
border-top: 0 !important;
|
cursor: pointer !important;
|
}
|
</style>
|