From 4825cd13f2feedd84e31100ad51aed36d092b2ed Mon Sep 17 00:00:00 2001 From: HongxuanG <1359774872@qq.com> Date: Mon, 9 Nov 2026 13:45:12 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E8=AF=A6=E6=83=85?= =?UTF-8?q?=E9=A1=B5=E6=B6=88=E5=AE=A1=E6=98=BE=E7=A4=BA=E5=B9=B6=E8=B7=B3?= =?UTF-8?q?=E8=BD=AC=E7=BC=96=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/common/storeFabricBusinessOut.js | 29 ++++++++++++++----- src/common/storeGoodsProcessIn.js | 29 ++++++++++++++----- src/common/storeGoodsProcessOut.js | 29 ++++++++++++++----- src/common/storeGoodsProcessReturnIn.js | 29 ++++++++++++++----- src/common/storeGoodsPurchaseIn.js | 29 ++++++++++++++----- .../storeFabricBusinessOutView.vue | 24 +++++++++------ .../storegoods/storeGoodsProcessInView.vue | 24 +++++++++------ .../storegoods/storeGoodsProcessOutView.vue | 24 +++++++++------ .../storeGoodsProcessReturnInView.vue | 24 +++++++++------ .../storegoods/storeGoodsPurchaseInView.vue | 24 +++++++++------ 10 files changed, 185 insertions(+), 80 deletions(-) diff --git a/src/common/storeFabricBusinessOut.js b/src/common/storeFabricBusinessOut.js index 23eb783..01156d7 100644 --- a/src/common/storeFabricBusinessOut.js +++ b/src/common/storeFabricBusinessOut.js @@ -18,6 +18,13 @@ export const AUDIT_STATUS = { export const DRAFT_AUDIT_STATUS = 0; export const DRAFT_AUDIT_STATUS_NAME = '待保存'; +/** 将接口状态统一为数字,避免字符串导致按钮判断失效 */ +export function toAuditStatus(status) { + const n = Number(status); + return Number.isFinite(n) ? n : DRAFT_AUDIT_STATUS; +} + + export const AUDIT_STATUS_MAP = { 1: '待审核', 2: '已审核', @@ -117,8 +124,8 @@ export function normalizeOrder(order) { return { id: order.id, order_no: order.order_no || '', - audit_status: order.audit_status, - audit_status_name: order.audit_status_name || AUDIT_STATUS_MAP[order.audit_status] || '', + audit_status: toAuditStatus(order.audit_status), + audit_status_name: order.audit_status_name || AUDIT_STATUS_MAP[toAuditStatus(order.audit_status)] || '', // 表头 sale_system_id: order.sale_system_id || '', sale_system_name: order.sale_system_name || '', @@ -470,11 +477,13 @@ export function formatDisplayTime(value, format = 'YYYY-MM-DD') { } export function canScanAtStatus(status) { - return [AUDIT_STATUS.PENDING, AUDIT_STATUS.REJECTED].includes(status); + const s = toAuditStatus(status); + return s === AUDIT_STATUS.PENDING || s === AUDIT_STATUS.REJECTED; } export function isLockedOrderStatus(status) { - return [AUDIT_STATUS.APPROVED, AUDIT_STATUS.VOIDED].includes(status); + const s = toAuditStatus(status); + return s === AUDIT_STATUS.APPROVED || s === AUDIT_STATUS.VOIDED; } /** 分页拉取全部列表(直至末页) */ @@ -491,7 +500,12 @@ export function fetchAllOrderList(listFn, params = {}, pageSize = LIST_PAGE_SIZE /** 新增/编辑页底部:审核、作废 */ export function getFormStatusActionButtons(headerSaved, orderId, status) { - if (!headerSaved || !orderId || !canScanAtStatus(status)) return []; + if (!headerSaved || !orderId) return []; + const s = toAuditStatus(status); + if (s === AUDIT_STATUS.APPROVED) { + return [{ label: '消审', action: 'unapprove' }]; + } + if (!canScanAtStatus(s)) return []; return [ { label: '审核', action: 'approve' }, { label: '作废', action: 'void' }, @@ -500,14 +514,15 @@ export function getFormStatusActionButtons(headerSaved, orderId, status) { /** 查看页底部:编辑、审核、作废 / 消审 */ export function getViewStatusActionButtons(status) { - if (status === AUDIT_STATUS.PENDING || status === AUDIT_STATUS.REJECTED) { + const s = toAuditStatus(status); + if (s === AUDIT_STATUS.PENDING || s === AUDIT_STATUS.REJECTED) { return [ { label: '编辑', action: 'edit' }, { label: '审核', action: 'approve' }, { label: '作废', action: 'void' }, ]; } - if (status === AUDIT_STATUS.APPROVED) { + if (s === AUDIT_STATUS.APPROVED) { return [{ label: '消审', action: 'unapprove' }]; } return []; diff --git a/src/common/storeGoodsProcessIn.js b/src/common/storeGoodsProcessIn.js index 053e48a..e1cd741 100644 --- a/src/common/storeGoodsProcessIn.js +++ b/src/common/storeGoodsProcessIn.js @@ -15,6 +15,13 @@ export const AUDIT_STATUS = { export const DRAFT_AUDIT_STATUS = 0; export const DRAFT_AUDIT_STATUS_NAME = '待保存'; +/** 将接口状态统一为数字,避免字符串导致按钮判断失效 */ +export function toAuditStatus(status) { + const n = Number(status); + return Number.isFinite(n) ? n : DRAFT_AUDIT_STATUS; +} + + export const AUDIT_STATUS_MAP = { 1: '待审核', 2: '已审核', @@ -98,8 +105,8 @@ export function normalizeOrder(order) { return { id: order.id, order_no: order.order_no || '', - audit_status: order.audit_status, - audit_status_name: order.audit_status_name || AUDIT_STATUS_MAP[order.audit_status] || '', + audit_status: toAuditStatus(order.audit_status), + audit_status_name: order.audit_status_name || AUDIT_STATUS_MAP[toAuditStatus(order.audit_status)] || '', process_unit_id: order.process_unit_id || '', process_name: order.process_name || '', warehouse_id: order.warehouse_id || '', @@ -333,11 +340,13 @@ export function formatDisplayTime(value, format = 'YYYY-MM-DD') { } export function canScanAtStatus(status) { - return [AUDIT_STATUS.PENDING, AUDIT_STATUS.REJECTED].includes(status); + const s = toAuditStatus(status); + return s === AUDIT_STATUS.PENDING || s === AUDIT_STATUS.REJECTED; } export function isLockedOrderStatus(status) { - return [AUDIT_STATUS.APPROVED, AUDIT_STATUS.VOIDED].includes(status); + const s = toAuditStatus(status); + return s === AUDIT_STATUS.APPROVED || s === AUDIT_STATUS.VOIDED; } export function fetchAllOrderList(listFn, params = {}, pageSize = LIST_PAGE_SIZE) { @@ -372,7 +381,12 @@ export function fetchAllOrderList(listFn, params = {}, pageSize = LIST_PAGE_SIZE } export function getFormStatusActionButtons(headerSaved, orderId, status) { - if (!headerSaved || !orderId || !canScanAtStatus(status)) return []; + if (!headerSaved || !orderId) return []; + const s = toAuditStatus(status); + if (s === AUDIT_STATUS.APPROVED) { + return [{ label: '消审', action: 'unapprove' }]; + } + if (!canScanAtStatus(s)) return []; return [ { label: '审核', action: 'approve' }, { label: '作废', action: 'void' }, @@ -380,14 +394,15 @@ export function getFormStatusActionButtons(headerSaved, orderId, status) { } export function getViewStatusActionButtons(status) { - if (status === AUDIT_STATUS.PENDING || status === AUDIT_STATUS.REJECTED) { + const s = toAuditStatus(status); + if (s === AUDIT_STATUS.PENDING || s === AUDIT_STATUS.REJECTED) { return [ { label: '编辑', action: 'edit' }, { label: '审核', action: 'approve' }, { label: '作废', action: 'void' }, ]; } - if (status === AUDIT_STATUS.APPROVED) { + if (s === AUDIT_STATUS.APPROVED) { return [{ label: '消审', action: 'unapprove' }]; } return []; diff --git a/src/common/storeGoodsProcessOut.js b/src/common/storeGoodsProcessOut.js index 280f280..b0b9090 100644 --- a/src/common/storeGoodsProcessOut.js +++ b/src/common/storeGoodsProcessOut.js @@ -15,6 +15,13 @@ export const AUDIT_STATUS = { export const DRAFT_AUDIT_STATUS = 0; export const DRAFT_AUDIT_STATUS_NAME = '待保存'; +/** 将接口状态统一为数字,避免字符串导致按钮判断失效 */ +export function toAuditStatus(status) { + const n = Number(status); + return Number.isFinite(n) ? n : DRAFT_AUDIT_STATUS; +} + + export const AUDIT_STATUS_MAP = { 1: '待审核', 2: '已审核', @@ -78,8 +85,8 @@ export function normalizeOrder(order) { return { id: order.id, order_no: order.order_no || '', - audit_status: order.audit_status, - audit_status_name: order.audit_status_name || AUDIT_STATUS_MAP[order.audit_status] || '', + audit_status: toAuditStatus(order.audit_status), + audit_status_name: order.audit_status_name || AUDIT_STATUS_MAP[toAuditStatus(order.audit_status)] || '', process_unit_id: order.process_unit_id || '', process_name: order.process_name || '', warehouse_id: order.warehouse_id || '', @@ -275,11 +282,13 @@ export function formatDisplayTime(value, format = 'YYYY-MM-DD') { } export function canScanAtStatus(status) { - return [AUDIT_STATUS.PENDING, AUDIT_STATUS.REJECTED].includes(status); + const s = toAuditStatus(status); + return s === AUDIT_STATUS.PENDING || s === AUDIT_STATUS.REJECTED; } export function isLockedOrderStatus(status) { - return [AUDIT_STATUS.APPROVED, AUDIT_STATUS.VOIDED].includes(status); + const s = toAuditStatus(status); + return s === AUDIT_STATUS.APPROVED || s === AUDIT_STATUS.VOIDED; } export function fetchAllOrderList(listFn, params = {}, pageSize = LIST_PAGE_SIZE) { @@ -314,7 +323,12 @@ export function fetchAllOrderList(listFn, params = {}, pageSize = LIST_PAGE_SIZE } export function getFormStatusActionButtons(headerSaved, orderId, status) { - if (!headerSaved || !orderId || !canScanAtStatus(status)) return []; + if (!headerSaved || !orderId) return []; + const s = toAuditStatus(status); + if (s === AUDIT_STATUS.APPROVED) { + return [{ label: '消审', action: 'unapprove' }]; + } + if (!canScanAtStatus(s)) return []; return [ { label: '审核', action: 'approve' }, { label: '作废', action: 'void' }, @@ -322,14 +336,15 @@ export function getFormStatusActionButtons(headerSaved, orderId, status) { } export function getViewStatusActionButtons(status) { - if (status === AUDIT_STATUS.PENDING || status === AUDIT_STATUS.REJECTED) { + const s = toAuditStatus(status); + if (s === AUDIT_STATUS.PENDING || s === AUDIT_STATUS.REJECTED) { return [ { label: '编辑', action: 'edit' }, { label: '审核', action: 'approve' }, { label: '作废', action: 'void' }, ]; } - if (status === AUDIT_STATUS.APPROVED) { + if (s === AUDIT_STATUS.APPROVED) { return [{ label: '消审', action: 'unapprove' }]; } return []; diff --git a/src/common/storeGoodsProcessReturnIn.js b/src/common/storeGoodsProcessReturnIn.js index be0220f..e227224 100644 --- a/src/common/storeGoodsProcessReturnIn.js +++ b/src/common/storeGoodsProcessReturnIn.js @@ -15,6 +15,13 @@ export const AUDIT_STATUS = { export const DRAFT_AUDIT_STATUS = 0; export const DRAFT_AUDIT_STATUS_NAME = '待保存'; +/** 将接口状态统一为数字,避免字符串导致按钮判断失效 */ +export function toAuditStatus(status) { + const n = Number(status); + return Number.isFinite(n) ? n : DRAFT_AUDIT_STATUS; +} + + export const AUDIT_STATUS_MAP = { 1: '待审核', 2: '已审核', @@ -74,8 +81,8 @@ export function normalizeOrder(order) { return { id: order.id, order_no: order.order_no || '', - audit_status: order.audit_status, - audit_status_name: order.audit_status_name || AUDIT_STATUS_MAP[order.audit_status] || '', + audit_status: toAuditStatus(order.audit_status), + audit_status_name: order.audit_status_name || AUDIT_STATUS_MAP[toAuditStatus(order.audit_status)] || '', process_unit_id: order.process_unit_id || order.biz_unit_id || '', process_name: order.process_name || order.biz_unit_name || '', warehouse_id: order.warehouse_id || '', @@ -271,11 +278,13 @@ export function formatDisplayTime(value, format = 'YYYY-MM-DD') { } export function canScanAtStatus(status) { - return [AUDIT_STATUS.PENDING, AUDIT_STATUS.REJECTED].includes(status); + const s = toAuditStatus(status); + return s === AUDIT_STATUS.PENDING || s === AUDIT_STATUS.REJECTED; } export function isLockedOrderStatus(status) { - return [AUDIT_STATUS.APPROVED, AUDIT_STATUS.VOIDED].includes(status); + const s = toAuditStatus(status); + return s === AUDIT_STATUS.APPROVED || s === AUDIT_STATUS.VOIDED; } export function fetchAllOrderList(listFn, params = {}, pageSize = LIST_PAGE_SIZE) { @@ -310,7 +319,12 @@ export function fetchAllOrderList(listFn, params = {}, pageSize = LIST_PAGE_SIZE } export function getFormStatusActionButtons(headerSaved, orderId, status) { - if (!headerSaved || !orderId || !canScanAtStatus(status)) return []; + if (!headerSaved || !orderId) return []; + const s = toAuditStatus(status); + if (s === AUDIT_STATUS.APPROVED) { + return [{ label: '消审', action: 'unapprove' }]; + } + if (!canScanAtStatus(s)) return []; return [ { label: '审核', action: 'approve' }, { label: '作废', action: 'void' }, @@ -318,14 +332,15 @@ export function getFormStatusActionButtons(headerSaved, orderId, status) { } export function getViewStatusActionButtons(status) { - if (status === AUDIT_STATUS.PENDING || status === AUDIT_STATUS.REJECTED) { + const s = toAuditStatus(status); + if (s === AUDIT_STATUS.PENDING || s === AUDIT_STATUS.REJECTED) { return [ { label: '编辑', action: 'edit' }, { label: '审核', action: 'approve' }, { label: '作废', action: 'void' }, ]; } - if (status === AUDIT_STATUS.APPROVED) { + if (s === AUDIT_STATUS.APPROVED) { return [{ label: '消审', action: 'unapprove' }]; } return []; diff --git a/src/common/storeGoodsPurchaseIn.js b/src/common/storeGoodsPurchaseIn.js index ee3b116..f63a0a9 100644 --- a/src/common/storeGoodsPurchaseIn.js +++ b/src/common/storeGoodsPurchaseIn.js @@ -15,6 +15,13 @@ export const AUDIT_STATUS = { export const DRAFT_AUDIT_STATUS = 0; export const DRAFT_AUDIT_STATUS_NAME = '待保存'; +/** 将接口状态统一为数字,避免字符串导致按钮判断失效 */ +export function toAuditStatus(status) { + const n = Number(status); + return Number.isFinite(n) ? n : DRAFT_AUDIT_STATUS; +} + + export const AUDIT_STATUS_MAP = { 1: '待审核', 2: '已审核', @@ -111,8 +118,8 @@ export function normalizeOrder(order) { return { id: order.id, order_no: order.order_no || '', - audit_status: order.audit_status, - audit_status_name: order.audit_status_name || AUDIT_STATUS_MAP[order.audit_status] || '', + audit_status: toAuditStatus(order.audit_status), + audit_status_name: order.audit_status_name || AUDIT_STATUS_MAP[toAuditStatus(order.audit_status)] || '', biz_unit_id: order.biz_unit_id || '', biz_unit_name: order.biz_unit_name || '', warehouse_id: order.warehouse_id || '', @@ -349,11 +356,13 @@ export function formatDisplayTime(value, format = 'YYYY-MM-DD') { } export function canScanAtStatus(status) { - return [AUDIT_STATUS.PENDING, AUDIT_STATUS.REJECTED].includes(status); + const s = toAuditStatus(status); + return s === AUDIT_STATUS.PENDING || s === AUDIT_STATUS.REJECTED; } export function isLockedOrderStatus(status) { - return [AUDIT_STATUS.APPROVED, AUDIT_STATUS.VOIDED].includes(status); + const s = toAuditStatus(status); + return s === AUDIT_STATUS.APPROVED || s === AUDIT_STATUS.VOIDED; } export function fetchAllOrderList(listFn, params = {}, pageSize = LIST_PAGE_SIZE) { @@ -388,7 +397,12 @@ export function fetchAllOrderList(listFn, params = {}, pageSize = LIST_PAGE_SIZE } export function getFormStatusActionButtons(headerSaved, orderId, status) { - if (!headerSaved || !orderId || !canScanAtStatus(status)) return []; + if (!headerSaved || !orderId) return []; + const s = toAuditStatus(status); + if (s === AUDIT_STATUS.APPROVED) { + return [{ label: '消审', action: 'unapprove' }]; + } + if (!canScanAtStatus(s)) return []; return [ { label: '审核', action: 'approve' }, { label: '作废', action: 'void' }, @@ -396,14 +410,15 @@ export function getFormStatusActionButtons(headerSaved, orderId, status) { } export function getViewStatusActionButtons(status) { - if (status === AUDIT_STATUS.PENDING || status === AUDIT_STATUS.REJECTED) { + const s = toAuditStatus(status); + if (s === AUDIT_STATUS.PENDING || s === AUDIT_STATUS.REJECTED) { return [ { label: '编辑', action: 'edit' }, { label: '审核', action: 'approve' }, { label: '作废', action: 'void' }, ]; } - if (status === AUDIT_STATUS.APPROVED) { + if (s === AUDIT_STATUS.APPROVED) { return [{ label: '消审', action: 'unapprove' }]; } return []; diff --git a/src/pages/storefabric/storeFabricBusinessOutView.vue b/src/pages/storefabric/storeFabricBusinessOutView.vue index 9d04f60..7532985 100644 --- a/src/pages/storefabric/storeFabricBusinessOutView.vue +++ b/src/pages/storefabric/storeFabricBusinessOutView.vue @@ -122,15 +122,21 @@ export default { confirmOrderStatusAction(this, { orderId: this.orderId, action, - onSuccess: () => this.$u.api.gfmOtherDeliveryOrder.detail({ id: this.orderId }) - .then((res) => { - uni.hideLoading(); - const order = normalizeOrder(res); - if (order) this.order = order; - const voice = util.statusSuccessVoice(action); - util.playSuccessAudio(voice); - uni.showToast({ title: voice, icon: 'success' }); - }), + onSuccess: () => { + uni.hideLoading(); + const voice = util.statusSuccessVoice(action); + util.playSuccessAudio(voice); + uni.showToast({ title: voice, icon: 'success' }); + if (action === 'unapprove') { + uni.redirectTo({ url: `./storeFabricBusinessOutEdit?id=${this.orderId}` }); + return; + } + return this.$u.api.gfmOtherDeliveryOrder.detail({ id: this.orderId }) + .then((res) => { + const order = normalizeOrder(res); + if (order) this.order = order; + }); + }, }); }, showError(message) { diff --git a/src/pages/storegoods/storeGoodsProcessInView.vue b/src/pages/storegoods/storeGoodsProcessInView.vue index ea0e558..aefdd86 100644 --- a/src/pages/storegoods/storeGoodsProcessInView.vue +++ b/src/pages/storegoods/storeGoodsProcessInView.vue @@ -121,15 +121,21 @@ export default { confirmOrderStatusAction(this, { orderId: this.orderId, action, - onSuccess: () => this.$u.api.fpmProcessInOrder.detail({ id: this.orderId }) - .then((res) => { - uni.hideLoading(); - const order = normalizeOrder(res); - if (order) this.order = order; - const voice = util.statusSuccessVoice(action); - util.playSuccessAudio(voice); - uni.showToast({ title: voice, icon: 'success' }); - }), + onSuccess: () => { + uni.hideLoading(); + const voice = util.statusSuccessVoice(action); + util.playSuccessAudio(voice); + uni.showToast({ title: voice, icon: 'success' }); + if (action === 'unapprove') { + uni.redirectTo({ url: `./storeGoodsProcessInEdit?id=${this.orderId}` }); + return; + } + return this.$u.api.fpmProcessInOrder.detail({ id: this.orderId }) + .then((res) => { + const order = normalizeOrder(res); + if (order) this.order = order; + }); + }, }); }, showError(message) { diff --git a/src/pages/storegoods/storeGoodsProcessOutView.vue b/src/pages/storegoods/storeGoodsProcessOutView.vue index eea4369..8679791 100644 --- a/src/pages/storegoods/storeGoodsProcessOutView.vue +++ b/src/pages/storegoods/storeGoodsProcessOutView.vue @@ -106,15 +106,21 @@ export default { confirmOrderStatusAction(this, { orderId: this.orderId, action, - onSuccess: () => this.$u.api.fpmProcessOutOrder.detail({ id: this.orderId }) - .then((res) => { - uni.hideLoading(); - const order = normalizeOrder(res); - if (order) this.order = order; - const voice = util.statusSuccessVoice(action); - util.playSuccessAudio(voice); - uni.showToast({ title: voice, icon: 'success' }); - }), + onSuccess: () => { + uni.hideLoading(); + const voice = util.statusSuccessVoice(action); + util.playSuccessAudio(voice); + uni.showToast({ title: voice, icon: 'success' }); + if (action === 'unapprove') { + uni.redirectTo({ url: `./storeGoodsProcessOutEdit?id=${this.orderId}` }); + return; + } + return this.$u.api.fpmProcessOutOrder.detail({ id: this.orderId }) + .then((res) => { + const order = normalizeOrder(res); + if (order) this.order = order; + }); + }, }); }, showError(message) { diff --git a/src/pages/storegoods/storeGoodsProcessReturnInView.vue b/src/pages/storegoods/storeGoodsProcessReturnInView.vue index 2397b76..86d0e26 100644 --- a/src/pages/storegoods/storeGoodsProcessReturnInView.vue +++ b/src/pages/storegoods/storeGoodsProcessReturnInView.vue @@ -106,15 +106,21 @@ export default { confirmOrderStatusAction(this, { orderId: this.orderId, action, - onSuccess: () => this.$u.api.fpmProcessReturnInOrder.detail({ id: this.orderId }) - .then((res) => { - uni.hideLoading(); - const order = normalizeOrder(res); - if (order) this.order = order; - const voice = util.statusSuccessVoice(action); - util.playSuccessAudio(voice); - uni.showToast({ title: voice, icon: 'success' }); - }), + onSuccess: () => { + uni.hideLoading(); + const voice = util.statusSuccessVoice(action); + util.playSuccessAudio(voice); + uni.showToast({ title: voice, icon: 'success' }); + if (action === 'unapprove') { + uni.redirectTo({ url: `./storeGoodsProcessReturnInEdit?id=${this.orderId}` }); + return; + } + return this.$u.api.fpmProcessReturnInOrder.detail({ id: this.orderId }) + .then((res) => { + const order = normalizeOrder(res); + if (order) this.order = order; + }); + }, }); }, showError(message) { diff --git a/src/pages/storegoods/storeGoodsPurchaseInView.vue b/src/pages/storegoods/storeGoodsPurchaseInView.vue index 0635d1b..b6c9733 100644 --- a/src/pages/storegoods/storeGoodsPurchaseInView.vue +++ b/src/pages/storegoods/storeGoodsPurchaseInView.vue @@ -121,15 +121,21 @@ export default { confirmOrderStatusAction(this, { orderId: this.orderId, action, - onSuccess: () => this.$u.api.fpmPrcInOrder.detail({ id: this.orderId }) - .then((res) => { - uni.hideLoading(); - const order = normalizeOrder(res); - if (order) this.order = order; - const voice = util.statusSuccessVoice(action); - util.playSuccessAudio(voice); - uni.showToast({ title: voice, icon: 'success' }); - }), + onSuccess: () => { + uni.hideLoading(); + const voice = util.statusSuccessVoice(action); + util.playSuccessAudio(voice); + uni.showToast({ title: voice, icon: 'success' }); + if (action === 'unapprove') { + uni.redirectTo({ url: `./storeGoodsPurchaseInEdit?id=${this.orderId}` }); + return; + } + return this.$u.api.fpmPrcInOrder.detail({ id: this.orderId }) + .then((res) => { + const order = normalizeOrder(res); + if (order) this.order = order; + }); + }, }); }, showError(message) {