|
|
@ -77,6 +77,10 @@ |
|
|
v-if="canShipPoOrder(scope.row.status)" |
|
|
v-if="canShipPoOrder(scope.row.status)" |
|
|
type="primary" |
|
|
type="primary" |
|
|
@click.stop="handleShipPoOrder(scope.row)">shipped</el-link> |
|
|
@click.stop="handleShipPoOrder(scope.row)">shipped</el-link> |
|
|
|
|
|
<el-link |
|
|
|
|
|
v-if="canReceivePoOrder(scope.row)" |
|
|
|
|
|
type="primary" |
|
|
|
|
|
@click.stop="handleReceivePoOrder(scope.row)">收货</el-link> |
|
|
<el-link |
|
|
<el-link |
|
|
v-if="canClosePoOrder(scope.row.status)" |
|
|
v-if="canClosePoOrder(scope.row.status)" |
|
|
type="primary" |
|
|
type="primary" |
|
|
@ -365,6 +369,35 @@ |
|
|
</div> |
|
|
</div> |
|
|
</el-dialog> |
|
|
</el-dialog> |
|
|
|
|
|
|
|
|
|
|
|
<!-- 打样单收货确认弹窗:填写收货日期,确定后回写 c_po_actual_ready_date 并自动生成已排程验货申请 --> |
|
|
|
|
|
<el-dialog |
|
|
|
|
|
title="收货确认" |
|
|
|
|
|
v-drag |
|
|
|
|
|
:visible.sync="receiveDialogVisible" |
|
|
|
|
|
width="360px" |
|
|
|
|
|
append-to-body |
|
|
|
|
|
:close-on-click-modal="false" |
|
|
|
|
|
@closed="resetReceiveDialog"> |
|
|
|
|
|
<el-form label-position="top"> |
|
|
|
|
|
<el-row :gutter="10"> |
|
|
|
|
|
<el-col :span="24"> |
|
|
|
|
|
<el-form-item label="收货日期" required> |
|
|
|
|
|
<el-date-picker |
|
|
|
|
|
v-model="receiveDialogForm.receiveDate" |
|
|
|
|
|
type="date" |
|
|
|
|
|
value-format="yyyy-MM-dd" |
|
|
|
|
|
placeholder="选择收货日期" |
|
|
|
|
|
style="width: 100%" /> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
</el-col> |
|
|
|
|
|
</el-row> |
|
|
|
|
|
</el-form> |
|
|
|
|
|
<div slot="footer" class="dialog-footer ship-dialog-footer"> |
|
|
|
|
|
<el-button type="primary" :loading="receiveDialogSaving" @click="submitReceiveDialog">确定</el-button> |
|
|
|
|
|
<el-button @click="receiveDialogVisible = false">取消</el-button> |
|
|
|
|
|
</div> |
|
|
|
|
|
</el-dialog> |
|
|
|
|
|
|
|
|
<ChooselistEam ref="eamList" @getBaseData="getEamData" /> |
|
|
<ChooselistEam ref="eamList" @getBaseData="getEamData" /> |
|
|
|
|
|
|
|
|
<po-order-advanced-query |
|
|
<po-order-advanced-query |
|
|
@ -659,6 +692,7 @@ import { |
|
|
issuePoDetail, |
|
|
issuePoDetail, |
|
|
shipPoDetailPreview, |
|
|
shipPoDetailPreview, |
|
|
shipPoDetail, |
|
|
shipPoDetail, |
|
|
|
|
|
receivePoDetail, |
|
|
createPoOrder, |
|
|
createPoOrder, |
|
|
getPoCustomerOptions, |
|
|
getPoCustomerOptions, |
|
|
getPoBuyerOptions, |
|
|
getPoBuyerOptions, |
|
|
@ -682,6 +716,7 @@ import { |
|
|
PO_ORDER_STATUS_OPTIONS, |
|
|
PO_ORDER_STATUS_OPTIONS, |
|
|
canIssuePoOrder, |
|
|
canIssuePoOrder, |
|
|
canShipPoOrder, |
|
|
canShipPoOrder, |
|
|
|
|
|
canReceivePoOrder, |
|
|
canClosePoOrder, |
|
|
canClosePoOrder, |
|
|
canOpenPoOrder, |
|
|
canOpenPoOrder, |
|
|
canEditPoColumnByStatus, |
|
|
canEditPoColumnByStatus, |
|
|
@ -923,6 +958,17 @@ export default { |
|
|
flexid: '' |
|
|
flexid: '' |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
// ===== 打样单收货确认弹窗状态 ===== |
|
|
|
|
|
receiveDialogVisible: false, |
|
|
|
|
|
receiveDialogSaving: false, |
|
|
|
|
|
receiveDialogForm: { |
|
|
|
|
|
id: null, |
|
|
|
|
|
site: '', |
|
|
|
|
|
orderNo: '', |
|
|
|
|
|
itemNo: null, |
|
|
|
|
|
receiveDate: '' |
|
|
|
|
|
}, |
|
|
|
|
|
|
|
|
// ===== 主表编辑与列渲染状态 ===== |
|
|
// ===== 主表编辑与列渲染状态 ===== |
|
|
currentRow: null, |
|
|
currentRow: null, |
|
|
// 各列下拉:select 列通过 selectOptionsKey 指向此处;也可在列定义里写 selectOptions 数组 - rqrq |
|
|
// 各列下拉:select 列通过 selectOptionsKey 指向此处;也可在列定义里写 selectOptions 数组 - rqrq |
|
|
@ -2108,6 +2154,7 @@ export default { |
|
|
methods: { |
|
|
methods: { |
|
|
canIssuePoOrder, |
|
|
canIssuePoOrder, |
|
|
canShipPoOrder, |
|
|
canShipPoOrder, |
|
|
|
|
|
canReceivePoOrder, |
|
|
canClosePoOrder, |
|
|
canClosePoOrder, |
|
|
canOpenPoOrder, |
|
|
canOpenPoOrder, |
|
|
canEditPoColumnByStatus, |
|
|
canEditPoColumnByStatus, |
|
|
@ -2735,6 +2782,82 @@ export default { |
|
|
}) |
|
|
}) |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
* 当天日期字符串(yyyy-MM-dd),收货日期默认值用。 |
|
|
|
|
|
*/ |
|
|
|
|
|
getTodayDateStr () { |
|
|
|
|
|
const d = new Date() |
|
|
|
|
|
const month = String(d.getMonth() + 1).padStart(2, '0') |
|
|
|
|
|
const day = String(d.getDate()).padStart(2, '0') |
|
|
|
|
|
return d.getFullYear() + '-' + month + '-' + day |
|
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
* 点击收货(仅打样单+已下达): |
|
|
|
|
|
* 1) 校验行标识后打开收货确认弹窗,收货日期默认当天; |
|
|
|
|
|
* 2) 确认后由后端同事务回写 c_po_actual_ready_date、PO 转待验货并自动生成已排程验货申请。 |
|
|
|
|
|
*/ |
|
|
|
|
|
handleReceivePoOrder (row) { |
|
|
|
|
|
const params = buildPoDetailActionParams(row, this.$store.state.user.site) |
|
|
|
|
|
if (!params.id && !(params.orderNo && params.site && params.itemNo != null)) { |
|
|
|
|
|
this.$message.error('无法识别订单行,请刷新后重试') |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
this.receiveDialogForm = { |
|
|
|
|
|
id: params.id != null ? params.id : null, |
|
|
|
|
|
site: params.site, |
|
|
|
|
|
orderNo: params.orderNo, |
|
|
|
|
|
itemNo: params.itemNo, |
|
|
|
|
|
receiveDate: this.getTodayDateStr() |
|
|
|
|
|
} |
|
|
|
|
|
this.receiveDialogVisible = true |
|
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
* 关闭收货弹窗时重置状态,避免上次缓存污染下一次操作。 |
|
|
|
|
|
*/ |
|
|
|
|
|
resetReceiveDialog () { |
|
|
|
|
|
this.receiveDialogSaving = false |
|
|
|
|
|
this.receiveDialogForm = { |
|
|
|
|
|
id: null, |
|
|
|
|
|
site: '', |
|
|
|
|
|
orderNo: '', |
|
|
|
|
|
itemNo: null, |
|
|
|
|
|
receiveDate: '' |
|
|
|
|
|
} |
|
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
* 提交收货:仅校验收货日期必填;成功后提示并刷新列表(状态已联动为待验货)。 |
|
|
|
|
|
*/ |
|
|
|
|
|
submitReceiveDialog () { |
|
|
|
|
|
if (!this.receiveDialogForm.receiveDate) { |
|
|
|
|
|
this.$message.error('请选择收货日期') |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
const payload = { |
|
|
|
|
|
id: this.receiveDialogForm.id != null ? this.receiveDialogForm.id : undefined, |
|
|
|
|
|
site: this.receiveDialogForm.site, |
|
|
|
|
|
orderNo: this.receiveDialogForm.orderNo, |
|
|
|
|
|
itemNo: this.receiveDialogForm.itemNo, |
|
|
|
|
|
receiveDate: this.receiveDialogForm.receiveDate |
|
|
|
|
|
} |
|
|
|
|
|
this.receiveDialogSaving = true |
|
|
|
|
|
receivePoDetail(payload).then(({ data }) => { |
|
|
|
|
|
this.receiveDialogSaving = false |
|
|
|
|
|
if (data && data.code === 0) { |
|
|
|
|
|
this.$message.success('收货成功,已生成验货申请') |
|
|
|
|
|
this.receiveDialogVisible = false |
|
|
|
|
|
this.getDataList() |
|
|
|
|
|
} else { |
|
|
|
|
|
this.$message.error((data && data.msg) || '收货失败') |
|
|
|
|
|
} |
|
|
|
|
|
}).catch(err => { |
|
|
|
|
|
this.receiveDialogSaving = false |
|
|
|
|
|
this.$message.error((err && err.message) || '收货失败') |
|
|
|
|
|
}) |
|
|
|
|
|
}, |
|
|
|
|
|
|
|
|
handleOpenPoOrder (row) { |
|
|
handleOpenPoOrder (row) { |
|
|
const params = buildPoDetailActionParams(row, this.$store.state.user.site) |
|
|
const params = buildPoDetailActionParams(row, this.$store.state.user.site) |
|
|
if (!params.id && !(params.orderNo && params.site && params.itemNo != null)) { |
|
|
if (!params.id && !(params.orderNo && params.site && params.itemNo != null)) { |
|
|
|