7 changed files with 783 additions and 6 deletions
-
22src/api/warehouse/crossSiteHuTransfer.js
-
2src/views/modules/haianWarehouse/automatedWarehouse/notifyDetailQuery54.vue
-
7src/views/modules/haianWarehouse/noOrderIssue/noOrderNotification54.vue
-
32src/views/modules/haianWarehouse/poOrder/searchPoIssureNotify54.vue
-
32src/views/modules/haianWarehouse/shipment/shipmentNotification54.vue
-
32src/views/modules/haianWarehouse/shopOrderIssueNotify/searchIssureNotify54.vue
-
662src/views/modules/warehouse/crossSiteHuTransfer.vue
@ -0,0 +1,22 @@ |
|||
import { createAPI } from "@/utils/httpRequest.js"; |
|||
|
|||
/** |
|||
* 分页查询可跨小site调拨的在库未预留标签 - rqrq |
|||
* @param {Object} data 查询参数:site=登录大site,searchSite=可选小site,page/limit |
|||
* @returns {Promise} |
|||
*/ |
|||
export const searchHandlingUnitList = data => createAPI('/warehouse/crossSiteHuTransfer/searchHandlingUnitList', 'POST', data) |
|||
|
|||
/** |
|||
* 查询目标小site下拉,排除当前标签来源site - rqrq |
|||
* @param {Object} data site=登录大site,excludeSite=来源小site |
|||
* @returns {Promise} |
|||
*/ |
|||
export const listTargetSubSites = data => createAPI('/warehouse/crossSiteHuTransfer/listTargetSubSites', 'POST', data) |
|||
|
|||
/** |
|||
* 提交跨小site调拨:后台二次校验后写STO/STI并改标签site - rqrq |
|||
* @param {Object} data site/fromSite/toSite/createdBy/selectedItems |
|||
* @returns {Promise} |
|||
*/ |
|||
export const transferHuSite = data => createAPI('/warehouse/crossSiteHuTransfer/transferHuSite', 'POST', data) |
|||
@ -0,0 +1,662 @@ |
|||
<template> |
|||
<div class="mod-config"> |
|||
<!-- 查询表单:必须至少填一个条件;登录大site由store传入,不作为筛选框 - rqrq --> |
|||
<el-form :inline="true" label-position="top"> |
|||
<el-form-item label="条码号"> |
|||
<el-input style="width: 120px;" v-model="queryHeaderData.unitId" placeholder="请输入条码号" @keyup.enter.native="getDataList()"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="物料编号"> |
|||
<el-input style="width: 120px;" v-model="queryHeaderData.partNo" placeholder="请输入物料编号" @keyup.enter.native="getDataList()"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="批次号"> |
|||
<el-input style="width: 120px;" v-model="queryHeaderData.batchNo" placeholder="请输入批次号" @keyup.enter.native="getDataList()"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="库位"> |
|||
<el-input style="width: 120px;" v-model="queryHeaderData.locationId" placeholder="请输入库位" @keyup.enter.native="getDataList()"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="仓库"> |
|||
<el-input style="width: 120px;" v-model="queryHeaderData.warehouseId" placeholder="请输入仓库" @keyup.enter.native="getDataList()"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="site"> |
|||
<el-input style="width: 120px;" v-model="queryHeaderData.searchSite" placeholder="请输入site" @keyup.enter.native="getDataList()"></el-input> |
|||
</el-form-item> |
|||
<el-form-item style="margin-top: 20px;"> |
|||
<el-button @click="getDataList()" type="primary" :disabled="dataListLoading">{{ $t('warehouse.common.search') }}</el-button> |
|||
<el-button @click="resetQuery()" type="default" :disabled="dataListLoading">{{ $t('warehouse.common.reset') }}</el-button> |
|||
</el-form-item> |
|||
</el-form> |
|||
|
|||
<!-- 功能按钮区:整批只能来自同一个小site - rqrq --> |
|||
<el-form :inline="true" label-position="top" style="margin-top: 3px"> |
|||
<el-button @click="openTransferDialog()" type="primary" :disabled="dataListSelections.length === 0 || transferLoading">跨site调拨</el-button> |
|||
</el-form> |
|||
|
|||
<!-- 主表格 - rqrq --> |
|||
<el-table |
|||
:height="height" |
|||
:data="dataList" |
|||
border |
|||
v-loading="dataListLoading" |
|||
@selection-change="selectionChangeHandle" |
|||
style="width: 100%; margin-bottom: 15px;margin-top:3px"> |
|||
|
|||
<el-table-column |
|||
type="selection" |
|||
header-align="center" |
|||
align="center" |
|||
width="50" |
|||
:selectable="checkSelectable"> |
|||
</el-table-column> |
|||
|
|||
<el-table-column |
|||
v-for="(item,index) in columnList" :key="index" |
|||
:sortable="item.columnSortable" |
|||
:prop="item.columnProp" |
|||
:header-align="item.headerAlign" |
|||
:show-overflow-tooltip="item.showOverflowTooltip" |
|||
:align="item.align" |
|||
:fixed="item.fixed==''?false:item.fixed" |
|||
:min-width="item.columnWidth" |
|||
:label="item.columnLabel"> |
|||
<template slot-scope="scope"> |
|||
<span v-if="item.columnProp === 'inStockFlag'"> |
|||
<span v-if="scope.row.inStockFlag === 'Y'">在库</span> |
|||
<span v-else-if="scope.row.inStockFlag === 'N'">已出库</span> |
|||
<span v-else-if="scope.row.inStockFlag === 'X'">未入库</span> |
|||
<span v-else>{{ scope.row.inStockFlag }}</span> |
|||
</span> |
|||
<span v-else-if="item.columnProp === 'reserveFlag'"> |
|||
{{ scope.row.reserveFlag === 'Y' ? '是' : '否' }} |
|||
</span> |
|||
<span v-else-if="item.columnProp === 'qty'"> |
|||
{{ formatQty(scope.row.qty) }} |
|||
</span> |
|||
<span v-else-if="item.columnProp === 'manufactureDate' || item.columnProp === 'expiredDate' || item.columnProp === 'receiveDate' || item.columnProp === 'createdDate' || item.columnProp === 'modifiedDate' || item.columnProp === 'lastPrintDate'"> |
|||
{{ formatDate(scope.row[item.columnProp]) }} |
|||
</span> |
|||
<span v-else>{{ scope.row[item.columnProp] }}</span> |
|||
</template> |
|||
</el-table-column> |
|||
|
|||
<el-table-column label="操作" min-width="120" fixed="right" header-align="center" align="center"> |
|||
<template slot-scope="scope"> |
|||
<a @click="viewDetail(scope.row)" type="primary">查看详细</a> |
|||
</template> |
|||
</el-table-column> |
|||
</el-table> |
|||
|
|||
<el-pagination |
|||
@size-change="sizeChangeHandle" |
|||
@current-change="currentChangeHandle" |
|||
:current-page="pageIndex" |
|||
:page-sizes="[30, 100, 500]" |
|||
:page-size="pageSize" |
|||
:total="totalPage" |
|||
layout="total, sizes, prev, pager, next, jumper"> |
|||
</el-pagination> |
|||
|
|||
<!-- 查看详细信息弹窗 - rqrq --> |
|||
<el-dialog |
|||
title="查看详细信息" |
|||
:visible.sync="dialogVisible" |
|||
:close-on-click-modal="false" |
|||
v-drag |
|||
width="900px"> |
|||
|
|||
<el-form :model="formData" ref="dataForm" label-position="top" style="margin-top: 1px; margin-left: 0px;"> |
|||
<el-row :gutter="20"> |
|||
<el-col :span="6"> |
|||
<el-form-item label="条码号"> |
|||
<el-input v-model="formData.unitId" readonly></el-input> |
|||
</el-form-item> |
|||
</el-col> |
|||
<el-col :span="6"> |
|||
<el-form-item label="site"> |
|||
<el-input v-model="formData.site" readonly></el-input> |
|||
</el-form-item> |
|||
</el-col> |
|||
<el-col :span="6"> |
|||
<el-form-item label="物料编号"> |
|||
<el-input v-model="formData.partNo" readonly></el-input> |
|||
</el-form-item> |
|||
</el-col> |
|||
<el-col :span="6"> |
|||
<el-form-item label="批次号"> |
|||
<el-input v-model="formData.batchNo" readonly></el-input> |
|||
</el-form-item> |
|||
</el-col> |
|||
</el-row> |
|||
|
|||
<el-row :gutter="20"> |
|||
<el-col :span="6"> |
|||
<el-form-item label="数量"> |
|||
<el-input :value="formatQty(formData.qty)" readonly></el-input> |
|||
</el-form-item> |
|||
</el-col> |
|||
<el-col :span="6"> |
|||
<el-form-item label="库位"> |
|||
<el-input v-model="formData.locationId" readonly></el-input> |
|||
</el-form-item> |
|||
</el-col> |
|||
<el-col :span="6"> |
|||
<el-form-item label="仓库"> |
|||
<el-input v-model="formData.warehouseId" readonly></el-input> |
|||
</el-form-item> |
|||
</el-col> |
|||
<el-col :span="6"> |
|||
<el-form-item label="WDR"> |
|||
<el-input v-model="formData.wdr" readonly></el-input> |
|||
</el-form-item> |
|||
</el-col> |
|||
</el-row> |
|||
|
|||
<el-row :gutter="20"> |
|||
<el-col :span="8"> |
|||
<el-form-item label="订单参考1"> |
|||
<el-input v-model="formData.orderRef1" readonly></el-input> |
|||
</el-form-item> |
|||
</el-col> |
|||
<el-col :span="8"> |
|||
<el-form-item label="订单参考2"> |
|||
<el-input v-model="formData.orderRef2" readonly></el-input> |
|||
</el-form-item> |
|||
</el-col> |
|||
<el-col :span="8"> |
|||
<el-form-item label="订单参考3"> |
|||
<el-input v-model="formData.orderRef3" readonly></el-input> |
|||
</el-form-item> |
|||
</el-col> |
|||
</el-row> |
|||
|
|||
<el-row :gutter="20"> |
|||
<el-col :span="12"> |
|||
<el-form-item label="供应商ID"> |
|||
<el-input v-model="formData.supplierId" readonly></el-input> |
|||
</el-form-item> |
|||
</el-col> |
|||
<el-col :span="12"> |
|||
<el-form-item label="客户ID"> |
|||
<el-input v-model="formData.customerId" readonly></el-input> |
|||
</el-form-item> |
|||
</el-col> |
|||
</el-row> |
|||
|
|||
<el-row :gutter="20"> |
|||
<el-col :span="12"> |
|||
<el-form-item label="生产日期"> |
|||
<el-input v-model="formData.manufactureDate" readonly></el-input> |
|||
</el-form-item> |
|||
</el-col> |
|||
<el-col :span="12"> |
|||
<el-form-item label="失效日期"> |
|||
<el-input v-model="formData.expiredDate" readonly></el-input> |
|||
</el-form-item> |
|||
</el-col> |
|||
</el-row> |
|||
|
|||
<el-row> |
|||
<el-col :span="24"> |
|||
<el-form-item label="备注"> |
|||
<el-input v-model="formData.remark" type="textarea" :rows="3" resize="none" readonly></el-input> |
|||
</el-form-item> |
|||
</el-col> |
|||
</el-row> |
|||
</el-form> |
|||
|
|||
<div slot="footer" class="dialog-footer" style="margin-top: 52px"> |
|||
<el-button type="primary" @click="dialogVisible = false">{{ $t('warehouse.common.close') }}</el-button> |
|||
</div> |
|||
</el-dialog> |
|||
|
|||
<!-- 跨site调拨弹窗:目标site来自当前登录大site的 site_sub,排除来源site - rqrq --> |
|||
<el-dialog |
|||
title="跨site调拨" |
|||
:visible.sync="transferDialogVisible" |
|||
:close-on-click-modal="false" |
|||
v-drag |
|||
append-to-body |
|||
width="420px"> |
|||
|
|||
<el-form label-position="top" style="margin-top: 1px; margin-left: 0px;"> |
|||
<el-form-item label="来源site"> |
|||
<el-input v-model="transferForm.fromSite" readonly></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="目标site"> |
|||
<el-select |
|||
v-model="transferForm.toSite" |
|||
placeholder="请选择目标site" |
|||
filterable |
|||
style="width: 100%;" |
|||
:disabled="transferLoading" |
|||
v-loading="targetSiteListLoading"> |
|||
<el-option |
|||
v-for="item in targetSubSiteList" |
|||
:key="item.subSiteId" |
|||
:label="item.subSiteId" |
|||
:value="item.subSiteId"> |
|||
</el-option> |
|||
</el-select> |
|||
</el-form-item> |
|||
</el-form> |
|||
|
|||
<div slot="footer" class="dialog-footer"> |
|||
<el-button type="primary" @click="confirmTransfer()" :disabled="transferLoading || targetSiteListLoading"> |
|||
{{ transferLoading ? '提交中...' : '确认调拨' }} |
|||
</el-button> |
|||
<el-button @click="closeTransferDialog()" :disabled="transferLoading">{{ $t('warehouse.common.cancel') }}</el-button> |
|||
</div> |
|||
</el-dialog> |
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
import { searchHandlingUnitList, listTargetSubSites, transferHuSite } from '@/api/warehouse/crossSiteHuTransfer' |
|||
|
|||
export default { |
|||
data() { |
|||
return { |
|||
// 页面状态 - rqrq |
|||
height: 500, |
|||
dataListLoading: false, |
|||
dialogVisible: false, |
|||
|
|||
// 调拨弹窗状态 - rqrq |
|||
transferDialogVisible: false, |
|||
transferLoading: false, |
|||
targetSiteListLoading: false, |
|||
targetSubSiteList: [], |
|||
transferForm: { |
|||
fromSite: '', |
|||
toSite: '' |
|||
}, |
|||
|
|||
dataList: [], |
|||
dataListSelections: [], |
|||
|
|||
// site=登录大site;searchSite=可选小site过滤 - rqrq |
|||
queryHeaderData: { |
|||
site: this.$store.state.user.site, |
|||
searchSite: '', |
|||
unitId: '', |
|||
partNo: '', |
|||
batchNo: '', |
|||
locationId: '', |
|||
warehouseId: '' |
|||
}, |
|||
|
|||
formData: {}, |
|||
|
|||
pageIndex: 1, |
|||
pageSize: 30, |
|||
totalPage: 0, |
|||
|
|||
columnList: [ |
|||
{ |
|||
columnProp: "unitId", |
|||
headerAlign: "center", |
|||
align: "center", |
|||
columnLabel: "条码号", |
|||
columnWidth: 150, |
|||
columnSortable: false, |
|||
showOverflowTooltip: true, |
|||
fixed: "" |
|||
}, |
|||
{ |
|||
columnProp: "site", |
|||
headerAlign: "center", |
|||
align: "center", |
|||
columnLabel: "site", |
|||
columnWidth: 80, |
|||
columnSortable: false, |
|||
showOverflowTooltip: false, |
|||
fixed: "" |
|||
}, |
|||
{ |
|||
columnProp: "partNo", |
|||
headerAlign: "center", |
|||
align: "center", |
|||
columnLabel: "物料编号", |
|||
columnWidth: 100, |
|||
columnSortable: false, |
|||
showOverflowTooltip: true, |
|||
fixed: "" |
|||
}, |
|||
{ |
|||
columnProp: "batchNo", |
|||
headerAlign: "center", |
|||
align: "center", |
|||
columnLabel: "批次号", |
|||
columnWidth: 140, |
|||
columnSortable: false, |
|||
showOverflowTooltip: true, |
|||
fixed: "" |
|||
}, |
|||
{ |
|||
columnProp: "qty", |
|||
headerAlign: "center", |
|||
align: "right", |
|||
columnLabel: "数量", |
|||
columnWidth: 70, |
|||
columnSortable: false, |
|||
showOverflowTooltip: false, |
|||
fixed: "" |
|||
}, |
|||
{ |
|||
columnProp: "locationId", |
|||
headerAlign: "center", |
|||
align: "center", |
|||
columnLabel: "库位", |
|||
columnWidth: 90, |
|||
columnSortable: false, |
|||
showOverflowTooltip: true, |
|||
fixed: "" |
|||
}, |
|||
{ |
|||
columnProp: "warehouseId", |
|||
headerAlign: "center", |
|||
align: "center", |
|||
columnLabel: "仓库", |
|||
columnWidth: 60, |
|||
columnSortable: false, |
|||
showOverflowTooltip: false, |
|||
fixed: "" |
|||
}, |
|||
{ |
|||
columnProp: "wdr", |
|||
headerAlign: "center", |
|||
align: "center", |
|||
columnLabel: "WDR", |
|||
columnWidth: 100, |
|||
columnSortable: false, |
|||
showOverflowTooltip: true, |
|||
fixed: "" |
|||
}, |
|||
{ |
|||
columnProp: "availabilityControlId", |
|||
headerAlign: "center", |
|||
align: "center", |
|||
columnLabel: "Availability Control Id", |
|||
columnWidth: 150, |
|||
columnSortable: false, |
|||
showOverflowTooltip: true, |
|||
fixed: "" |
|||
}, |
|||
{ |
|||
columnProp: "expiredDate", |
|||
headerAlign: "center", |
|||
align: "center", |
|||
columnLabel: "失效日期", |
|||
columnWidth: 100, |
|||
columnSortable: false, |
|||
showOverflowTooltip: false, |
|||
fixed: "" |
|||
}, |
|||
{ |
|||
columnProp: "engChgLevel", |
|||
headerAlign: "center", |
|||
align: "center", |
|||
columnLabel: "EngChgLevel", |
|||
columnWidth: 90, |
|||
columnSortable: false, |
|||
showOverflowTooltip: false, |
|||
fixed: "" |
|||
}, |
|||
{ |
|||
columnProp: "manufactureDate", |
|||
headerAlign: "center", |
|||
align: "center", |
|||
columnLabel: "生产日期", |
|||
columnWidth: 100, |
|||
columnSortable: false, |
|||
showOverflowTooltip: false, |
|||
fixed: "" |
|||
}, |
|||
{ |
|||
columnProp: "partDesc", |
|||
headerAlign: "center", |
|||
align: "center", |
|||
columnLabel: "物料描述", |
|||
columnWidth: 200, |
|||
columnSortable: false, |
|||
showOverflowTooltip: true, |
|||
fixed: "" |
|||
} |
|||
] |
|||
} |
|||
}, |
|||
mounted() { |
|||
this.$nextTick(() => { |
|||
this.height = window.innerHeight - 220 |
|||
}) |
|||
}, |
|||
methods: { |
|||
// 至少填一个查询条件才允许查询,避免把大site下全部在库标签拉出来 - rqrq |
|||
hasAnySearchCondition() { |
|||
const query = this.queryHeaderData |
|||
return !!(query.unitId || query.partNo || query.batchNo || query.locationId || query.warehouseId || query.searchSite) |
|||
}, |
|||
|
|||
// 查询列表:每次显式带登录大site;无条件直接提示不发请求 - rqrq |
|||
getDataList() { |
|||
this.queryHeaderData.site = this.$store.state.user.site |
|||
if (!this.queryHeaderData.site) { |
|||
this.$alert('登录工厂site不能为空', this.$t('warehouse.common.error'), { confirmButtonText: this.$t('warehouse.common.confirm') }) |
|||
return |
|||
} |
|||
if (!this.hasAnySearchCondition()) { |
|||
this.$message.warning('请至少填写一个查询条件') |
|||
return |
|||
} |
|||
this.dataListLoading = true |
|||
const params = { |
|||
...this.queryHeaderData, |
|||
page: this.pageIndex, |
|||
limit: this.pageSize |
|||
} |
|||
searchHandlingUnitList(params).then(({ data }) => { |
|||
if (data && data.code === 0) { |
|||
this.dataList = data.page.list || [] |
|||
this.pageIndex = data.page.currPage |
|||
this.totalPage = data.page.totalCount |
|||
} else { |
|||
this.dataList = [] |
|||
this.totalPage = 0 |
|||
this.$alert(data.msg || this.$t('warehouse.message.queryFailed'), this.$t('warehouse.common.error'), { confirmButtonText: this.$t('warehouse.common.confirm') }) |
|||
} |
|||
}).catch(() => { |
|||
this.dataList = [] |
|||
this.totalPage = 0 |
|||
this.$message.error(this.$t('warehouse.message.queryFailed')) |
|||
}).finally(() => { |
|||
this.dataListLoading = false |
|||
}) |
|||
}, |
|||
|
|||
// 重置查询条件,不自动查询,避免无条件触发后端校验 - rqrq |
|||
resetQuery() { |
|||
this.queryHeaderData = { |
|||
site: this.$store.state.user.site, |
|||
searchSite: '', |
|||
unitId: '', |
|||
partNo: '', |
|||
batchNo: '', |
|||
locationId: '', |
|||
warehouseId: '' |
|||
} |
|||
this.pageIndex = 1 |
|||
this.dataList = [] |
|||
this.totalPage = 0 |
|||
this.dataListSelections = [] |
|||
}, |
|||
|
|||
sizeChangeHandle(val) { |
|||
this.pageSize = val |
|||
this.pageIndex = 1 |
|||
this.getDataList() |
|||
}, |
|||
|
|||
currentChangeHandle(val) { |
|||
this.pageIndex = val |
|||
this.getDataList() |
|||
}, |
|||
|
|||
selectionChangeHandle(val) { |
|||
this.dataListSelections = val |
|||
}, |
|||
|
|||
viewDetail(row) { |
|||
this.formData = JSON.parse(JSON.stringify(row)) |
|||
this.dialogVisible = true |
|||
}, |
|||
|
|||
formatDate(dateStr) { |
|||
if (!dateStr) return '' |
|||
const date = new Date(dateStr) |
|||
const year = date.getFullYear() |
|||
const month = String(date.getMonth() + 1).padStart(2, '0') |
|||
const day = String(date.getDate()).padStart(2, '0') |
|||
const hours = String(date.getHours()).padStart(2, '0') |
|||
const minutes = String(date.getMinutes()).padStart(2, '0') |
|||
const seconds = String(date.getSeconds()).padStart(2, '0') |
|||
if (hours === '00' && minutes === '00' && seconds === '00') { |
|||
return `${year}-${month}-${day}` |
|||
} |
|||
return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}` |
|||
}, |
|||
|
|||
// 数量去尾零,空值按0展示 - rqrq |
|||
formatQty(val) { |
|||
if (val === null || val === undefined || val === '') { |
|||
return 0 |
|||
} |
|||
const num = Number(val) |
|||
if (isNaN(num)) { |
|||
return val |
|||
} |
|||
return parseFloat(String(num)) |
|||
}, |
|||
|
|||
// 无物料编号的行不允许勾选,避免空物料写出入库明细 - rqrq |
|||
checkSelectable(row) { |
|||
return !!(row.partNo) |
|||
}, |
|||
|
|||
// 打开调拨弹窗:整批必须同一小site,再按登录大site拉目标下拉 - rqrq |
|||
openTransferDialog() { |
|||
if (this.dataListSelections.length === 0) { |
|||
this.$message.warning('请先选择要调拨的标签') |
|||
return |
|||
} |
|||
const siteSet = [...new Set(this.dataListSelections.map(item => item.site).filter(item => !!item))] |
|||
if (siteSet.length === 0) { |
|||
this.$alert('选中标签缺少site,无法调拨', this.$t('warehouse.common.error'), { confirmButtonText: this.$t('warehouse.common.confirm') }) |
|||
return |
|||
} |
|||
if (siteSet.length > 1) { |
|||
this.$alert('选中标签来自多个site,不允许一起调拨:' + siteSet.join(', '), this.$t('warehouse.common.error'), { confirmButtonText: this.$t('warehouse.common.confirm') }) |
|||
return |
|||
} |
|||
this.transferForm = { |
|||
fromSite: siteSet[0], |
|||
toSite: '' |
|||
} |
|||
this.transferDialogVisible = true |
|||
this.loadTargetSubSites() |
|||
}, |
|||
|
|||
// 按登录大site查 site_sub,排除当前来源site - rqrq |
|||
loadTargetSubSites() { |
|||
this.targetSiteListLoading = true |
|||
this.targetSubSiteList = [] |
|||
const params = { |
|||
site: this.$store.state.user.site, |
|||
excludeSite: this.transferForm.fromSite |
|||
} |
|||
listTargetSubSites(params).then(({ data }) => { |
|||
if (data && data.code === 0) { |
|||
this.targetSubSiteList = data.rows || [] |
|||
if (this.targetSubSiteList.length === 0) { |
|||
this.$alert('当前工厂没有可调拨的目标site', this.$t('warehouse.common.tip'), { confirmButtonText: this.$t('warehouse.common.confirm') }) |
|||
} |
|||
} else { |
|||
this.$alert(data.msg || this.$t('warehouse.message.queryFailed'), this.$t('warehouse.common.error'), { confirmButtonText: this.$t('warehouse.common.confirm') }) |
|||
} |
|||
}).catch(() => { |
|||
this.$message.error(this.$t('warehouse.message.queryFailed')) |
|||
}).finally(() => { |
|||
this.targetSiteListLoading = false |
|||
}) |
|||
}, |
|||
|
|||
closeTransferDialog() { |
|||
this.transferDialogVisible = false |
|||
this.transferForm = { |
|||
fromSite: '', |
|||
toSite: '' |
|||
} |
|||
this.targetSubSiteList = [] |
|||
}, |
|||
|
|||
// 确认调拨:二次确认后提交,成功刷新列表 - rqrq |
|||
confirmTransfer() { |
|||
if (!this.transferForm.toSite) { |
|||
this.$message.warning('请选择目标site') |
|||
return |
|||
} |
|||
const selectedCount = this.dataListSelections.length |
|||
const confirmMsg = `确认将选中的 ${selectedCount} 个标签从 ${this.transferForm.fromSite} 调拨到 ${this.transferForm.toSite} 吗?` |
|||
this.$confirm(confirmMsg, '确认调拨', { |
|||
confirmButtonText: this.$t('warehouse.common.confirm'), |
|||
cancelButtonText: this.$t('warehouse.common.cancel'), |
|||
type: 'warning' |
|||
}).then(() => { |
|||
this.doTransfer() |
|||
}).catch(() => {}) |
|||
}, |
|||
|
|||
doTransfer() { |
|||
this.transferLoading = true |
|||
const requestData = { |
|||
site: this.$store.state.user.site, |
|||
fromSite: this.transferForm.fromSite, |
|||
toSite: this.transferForm.toSite, |
|||
createdBy: this.$store.state.user.name, |
|||
selectedItems: this.dataListSelections |
|||
} |
|||
transferHuSite(requestData).then(({ data }) => { |
|||
if (data && data.code === 0) { |
|||
const result = data.row || {} |
|||
const htmlContent = `<div style="line-height: 1.8;">` |
|||
+ `<p><b>成功数量:</b>${result.successCount || 0}</p>` |
|||
+ `<p><b>出库事务号:</b>${result.stoTransNo || ''}</p>` |
|||
+ `<p><b>入库事务号:</b>${result.stiTransNo || ''}</p>` |
|||
+ `<p>${result.message || ''}</p>` |
|||
+ `</div>` |
|||
this.$alert(htmlContent, '跨site调拨结果', { |
|||
dangerouslyUseHTMLString: true, |
|||
confirmButtonText: this.$t('warehouse.common.confirm'), |
|||
type: 'success', |
|||
callback: () => { |
|||
this.closeTransferDialog() |
|||
this.getDataList() |
|||
} |
|||
}) |
|||
} else { |
|||
this.$alert(data.msg || '跨site调拨失败', this.$t('warehouse.common.error'), { confirmButtonText: this.$t('warehouse.common.confirm') }) |
|||
} |
|||
}).catch(() => { |
|||
this.$message.error('跨site调拨失败') |
|||
}).finally(() => { |
|||
this.transferLoading = false |
|||
}) |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style scoped> |
|||
.el-button:disabled { |
|||
opacity: 0.6; |
|||
cursor: not-allowed; |
|||
} |
|||
</style> |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue