<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
|
>
|
</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"
|
>IFS至库位</el-button
|
>
|
</div>
|
</div>
|
<div>
|
<el-table
|
class="pallet-transports-material-table"
|
:data="palletTransportsMaterialData"
|
style="width: 100%;"
|
height="350px"
|
border
|
@selection-change="palletTransportsMaterialSelectionChange"
|
stripe
|
ref="palletTransportsMaterialTable"
|
>
|
<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="IFS至库位"
|
align="center"
|
>
|
</el-table-column>
|
<el-table-column label="操作" align="center" width="100">
|
<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="openStockDialog"
|
>添加明细</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="executeMove"
|
>执 行</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="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="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="operationTaskNo"
|
label="工单"
|
align="center"
|
show-overflow-tooltip
|
>
|
</el-table-column>
|
<el-table-column
|
prop="transferQuantity"
|
label="移库数量"
|
align="center"
|
>
|
</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="toIfsLocationNo"
|
label="IFS至库位"
|
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">
|
<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
|
} 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'
|
|
export default {
|
data() {
|
return {
|
ajaxFun: palletTransportsFetchList,
|
currPalletTransportsRow: null,
|
palletTransportsMaterialMultipleSelection: [],
|
palletTransportsDetailMultipleSelection: [],
|
uploadInfo: {
|
// 是否展示上传EXCEL以及对应的url
|
isShow: false,
|
url: ''
|
},
|
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: [
|
{
|
text: '删除',
|
type: 'text',
|
size: 'small',
|
fun: this.deleteHandle
|
}
|
],
|
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,
|
stateOptions: [
|
{ value: 'draft', label: '草稿' },
|
{ value: 'processing', label: '进行中' },
|
{ value: 'finished', label: '已完成' }
|
]
|
}
|
},
|
components: {
|
ttable,
|
pallettransportsFormDialog,
|
partDialog,
|
ifsStockDialog,
|
detailIfsStockDialog,
|
ifsLocationDialog,
|
detailIfsLocationDialog
|
},
|
directives: {
|
adaptive
|
},
|
computed: {
|
...mapGetters(['permissions'])
|
},
|
created() {},
|
methods: {
|
// 工艺类型中文格式化
|
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
|
}
|
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
|
)
|
}
|
}
|
}
|
}
|
})
|
},
|
// 获取移库明细数据列表
|
getPalletTransportsDetailData() {
|
this.palletTransportsDetailData = []
|
if (this.palletTransportsMaterialMultipleSelection.length > 0) {
|
const currPalletTransportsMaterial = this
|
.palletTransportsMaterialMultipleSelection[
|
this.palletTransportsMaterialMultipleSelection.length - 1
|
]
|
const queryParam = Object.assign(
|
{
|
current: 1,
|
size: 200
|
},
|
{
|
transportsMaterialId: currPalletTransportsMaterial.id
|
}
|
)
|
palletTransportsDetailFetchList(queryParam).then((response) => {
|
const resData = response.data
|
if (resData.code === 0) {
|
this.palletTransportsDetailData = resData.data.records
|
}
|
})
|
}
|
},
|
// 新增 / 修改
|
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
|
console.log(this.palletTransportsMaterialMultipleSelection)
|
this.palletTransportsMaterialMultipleSelection.forEach((item) => {
|
if (item.detailExistState) {
|
flag = false
|
}
|
console.log(item.detailExistState)
|
})
|
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('物料需求删除失败')
|
}
|
})
|
},
|
// 打开ifs物料库存列表
|
openStockDialog() {
|
if (this.palletTransportsMaterialMultipleSelection.length > 0) {
|
this.showStock = true
|
} else {
|
this.$message.error('请先选择物料需求')
|
}
|
},
|
// 添加ifs物料库存回调
|
addIfsStockCallback() {
|
// 刷新物料需求、刷新移库明细
|
// this.getPalletTransportsMaterialData()
|
// 刷新货盘运输任务列表
|
// if (this.showStock) {
|
// this.getPallettransportsData()
|
// }
|
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('移库明细删除成功')
|
// this.getPalletTransportsMaterialData()
|
const currRow = this.currPalletTransportsRow
|
this.getPallettransportsData().then(() => {
|
if (currRow) {
|
this.$refs.pallettransportsTable.clickTable(currRow)
|
}
|
})
|
} else {
|
this.$message.error('移库明细删除失败')
|
}
|
})
|
},
|
// 执行移库
|
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()
|
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
|
},
|
palletTransportsChange(val) {
|
this.currPalletTransportsRow = val
|
if (this.currPalletTransportsRow) {
|
this.getPalletTransportsMaterialData()
|
this.getOptasks()
|
}
|
},
|
palletTransportsMaterialSelectionChange(val) {
|
this.palletTransportsMaterialMultipleSelection = val
|
if (this.palletTransportsMaterialMultipleSelection.length > 0) {
|
const currPalletTransportsMaterial = this
|
.palletTransportsMaterialMultipleSelection[
|
this.palletTransportsMaterialMultipleSelection.length - 1
|
]
|
this.materialRow = currPalletTransportsMaterial
|
} else {
|
this.materialRow = null
|
}
|
this.getPalletTransportsDetailData()
|
},
|
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.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>
|