|
|
@@ -26,6 +26,8 @@
|
|
|
</view>
|
|
|
<view class="data-item"><text class="l">型号名称</text><text class="v">{{ model.typeName ||
|
|
|
'铝型材主料' }}</text></view>
|
|
|
+ <view class="data-item"><text class="l">单据编号</text><text class="v">{{ model.docCode || '-' }}</text></view>
|
|
|
+ <view class="data-item"><text class="l">项目号</text><text class="v">{{ model.itemNo || '-' }}</text></view>
|
|
|
<view class="data-item"><text class="l">型材材质</text><text class="v">{{ model.material ||
|
|
|
'6063-T5' }}</text></view>
|
|
|
<view class="line-split"></view>
|
|
|
@@ -48,11 +50,7 @@
|
|
|
<view class="card-head">订单详情</view>
|
|
|
<view class="data-item"><text class="l">订单单号</text><text class="v selectable">{{ order.orderNo
|
|
|
}}</text></view>
|
|
|
- <!-- ERP单号 -->
|
|
|
- <view class="data-item" v-if="order.erpDocCode">
|
|
|
- <text class="l">ERP 单号</text>
|
|
|
- <text class="v selectable erp-no">{{ order.erpDocCode }}</text>
|
|
|
- </view>
|
|
|
+ <view class="data-item"><text class="l">单据编号</text><text class="v selectable">{{ order.docCode || '-' }}</text></view>
|
|
|
<view class="data-item"><text class="l">下单日期</text><text class="v">{{ order.time }}</text></view>
|
|
|
<view class="data-item"><text class="l">支付方式</text><text class="v">月结扣款</text></view>
|
|
|
</view>
|
|
|
@@ -64,8 +62,7 @@
|
|
|
|
|
|
<!-- 3. 底部固定操作栏 -->
|
|
|
<view class="detail-action-bar-fixed" id="footer-bar">
|
|
|
- <view class="action-btn-wrap" v-if="order.status === 0">
|
|
|
- <button class="action-btn cancel" @click="doCancel">撤销该订单</button>
|
|
|
+ <view class="action-btn-wrap single" v-if="order.isConfirmed === 0">
|
|
|
<button class="action-btn primary" @click="callSales">呼叫业务员</button>
|
|
|
</view>
|
|
|
<view class="action-btn-wrap single" v-else>
|
|
|
@@ -91,7 +88,8 @@ export default {
|
|
|
salesPhone: '',
|
|
|
order: {
|
|
|
orderNo: '-',
|
|
|
- status: 1,
|
|
|
+ docCode: '',
|
|
|
+ isConfirmed: 1,
|
|
|
statusName: '加载中',
|
|
|
statusType: 'pending',
|
|
|
models: [],
|
|
|
@@ -103,12 +101,13 @@ export default {
|
|
|
computed: {
|
|
|
statusSubText() {
|
|
|
const map = {
|
|
|
- pending: '您的订单已提交,正在排队等待审核...',
|
|
|
- expired: '该订单已被驳回。',
|
|
|
- cancelled: '该订单已被撤销。',
|
|
|
- process: '审核已完成,正在由相关主管签批...',
|
|
|
- making: '订单已入库排产,工厂正在全力生产中...',
|
|
|
- finish: '该订单生产已完成并正式入库。'
|
|
|
+ pending: '您的订单已提交,正在等待管理端同步确认中...',
|
|
|
+ finish: '订单已确认,并已成功同步到 ERP 系统中。',
|
|
|
+ approved: '订单已在 ERP 系统中审核通过。',
|
|
|
+ reviewed: '订单已由相关负责人签批。',
|
|
|
+ exFinished: '订单关联的产品型材已挤压完成。',
|
|
|
+ productionFinish: '订单所含产品型材已全部生产完成!',
|
|
|
+ cancelled: '该订单已被撤销。'
|
|
|
};
|
|
|
return map[this.order.statusType] || '订单状态更新中';
|
|
|
},
|
|
|
@@ -138,29 +137,32 @@ export default {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
- // 状态展示映射(与 ErpOrderStatus 枚举对齐)
|
|
|
+ // 状态展示映射
|
|
|
const statusMap = {
|
|
|
- '-1': { name: '已撤销', type: 'cancelled' },
|
|
|
- 0: { name: '待审核', type: 'pending' },
|
|
|
- 1: { name: '已驳回', type: 'expired' },
|
|
|
- 2: { name: '待签批', type: 'process' },
|
|
|
- 3: { name: '生产中', type: 'making' },
|
|
|
- 4: { name: '已完成', type: 'finish' }
|
|
|
+ 0: { name: '待确认', type: 'pending' },
|
|
|
+ 1: { name: '已确认', type: 'finish' },
|
|
|
+ 2: { name: '已审核', type: 'approved' },
|
|
|
+ 3: { name: '已签批', type: 'reviewed' },
|
|
|
+ 4: { name: '挤压完成', type: 'exFinished' },
|
|
|
+ 5: { name: '生产完成', type: 'productionFinish' },
|
|
|
+ 6: { name: '已取消', type: 'cancelled' }
|
|
|
};
|
|
|
- const s = statusMap[data.status] || { name: '未知', type: 'expired' };
|
|
|
+ const s = statusMap[data.status] || { name: '待确认', type: 'pending' };
|
|
|
|
|
|
this.order = {
|
|
|
orderNo: data.code || '-',
|
|
|
+ docCode: data.docCode || '',
|
|
|
rowId: data.rowId,
|
|
|
- status: data.status,
|
|
|
+ isConfirmed: data.isConfirmed,
|
|
|
statusName: s.name,
|
|
|
statusType: s.type,
|
|
|
time: data.createTime || '-',
|
|
|
totalCount: data.totalCount || 0,
|
|
|
- erpDocCode: data.erpDocCode || '',
|
|
|
models: (data.details || []).map(d => ({
|
|
|
type: d.modelNum || '未知型号',
|
|
|
typeName: d.modelName || '铝型材主料',
|
|
|
+ docCode: d.docCode || '',
|
|
|
+ itemNo: d.itemNo || '',
|
|
|
material: d.material || '6063-T5',
|
|
|
surface: d.surfaceName || '无',
|
|
|
package: d.packName || '普通包装',
|
|
|
@@ -177,21 +179,7 @@ export default {
|
|
|
}
|
|
|
},
|
|
|
goBack() { uni.navigateBack(); },
|
|
|
- doCancel() {
|
|
|
- uni.showModal({
|
|
|
- title: '确认撤销',
|
|
|
- content: '确定要撤销该订单吗?',
|
|
|
- confirmColor: '#ff3b30',
|
|
|
- success: (res) => {
|
|
|
- if (res.confirm) {
|
|
|
- this.order.status = -1;
|
|
|
- this.order.statusName = '已撤销';
|
|
|
- this.order.statusType = 'cancelled';
|
|
|
- uni.showToast({ title: '撤销成功' });
|
|
|
- }
|
|
|
- }
|
|
|
- });
|
|
|
- },
|
|
|
+
|
|
|
callSales() { uni.makePhoneCall({ phoneNumber: this.salesPhone }); },
|
|
|
goHome() { uni.reLaunch({ url: '/pages/order/index' }); },
|
|
|
async loadPhone() {
|
|
|
@@ -233,27 +221,31 @@ export default {
|
|
|
}
|
|
|
|
|
|
.status-banner-container.pending {
|
|
|
- background: linear-gradient(135deg, #C1001C 0%, #FF4D4F 100%);
|
|
|
+ background: linear-gradient(135deg, #FF9900 0%, #FFB84D 100%);
|
|
|
}
|
|
|
|
|
|
-.status-banner-container.process {
|
|
|
- background: linear-gradient(135deg, #FF6A00 0%, #EE0979 100%);
|
|
|
+.status-banner-container.finish {
|
|
|
+ background: linear-gradient(135deg, #1890FF 0%, #69C0FF 100%);
|
|
|
}
|
|
|
|
|
|
-.status-banner-container.making {
|
|
|
- background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
|
|
|
+.status-banner-container.approved {
|
|
|
+ background: linear-gradient(135deg, #52C41A 0%, #95DE64 100%);
|
|
|
}
|
|
|
|
|
|
-.status-banner-container.finish {
|
|
|
- background: linear-gradient(135deg, #2af598 0%, #009efd 100%);
|
|
|
+.status-banner-container.reviewed {
|
|
|
+ background: linear-gradient(135deg, #722ED1 0%, #B37FEB 100%);
|
|
|
+}
|
|
|
+
|
|
|
+.status-banner-container.exFinished {
|
|
|
+ background: linear-gradient(135deg, #13C2C2 0%, #5CDBD3 100%);
|
|
|
}
|
|
|
|
|
|
-.status-banner-container.expired {
|
|
|
- background: linear-gradient(135deg, #868f96 0%, #596164 100%);
|
|
|
+.status-banner-container.productionFinish {
|
|
|
+ background: linear-gradient(135deg, #2F54EB 0%, #85A5FF 100%);
|
|
|
}
|
|
|
|
|
|
.status-banner-container.cancelled {
|
|
|
- background: linear-gradient(135deg, #a0a0a0 0%, #666666 100%);
|
|
|
+ background: linear-gradient(135deg, #F5222D 0%, #FF7875 100%);
|
|
|
}
|
|
|
|
|
|
/* 状态横幅内容 */
|