|
@@ -9,7 +9,7 @@
|
|
|
@back="handleFormBack"
|
|
|
@save-success="handleFormSaveSuccess"
|
|
|
/>
|
|
|
-
|
|
|
+
|
|
|
<!-- 订单列表 -->
|
|
|
<avue-crud
|
|
|
v-else
|
|
@@ -72,7 +72,16 @@
|
|
|
|
|
|
<!-- 自定义操作菜单 -->
|
|
|
<template slot-scope="{row}" slot="menu">
|
|
|
- <!-- 明细管理按钮已移除 -->
|
|
|
+ <el-button
|
|
|
+ type="text"
|
|
|
+ size="small"
|
|
|
+ icon="el-icon-upload2"
|
|
|
+ @click="handleSubmitToU9(row)"
|
|
|
+ v-if="canSubmitToU9(row)"
|
|
|
+ style="color: #409eff"
|
|
|
+ >
|
|
|
+ 提交
|
|
|
+ </el-button>
|
|
|
</template>
|
|
|
|
|
|
<!-- 行展开插槽 - 显示订单明细 -->
|
|
@@ -96,6 +105,7 @@
|
|
|
<script>
|
|
|
import { option } from './option'
|
|
|
import { getList, add, update, getDetail } from '@/api/order/order'
|
|
|
+import { submitOrderToU9 } from '@/api/order/sales-order'
|
|
|
import {
|
|
|
ORDER_TYPES,
|
|
|
ORDER_STATUS,
|
|
@@ -132,7 +142,7 @@ export default {
|
|
|
orderFormVisible: false,
|
|
|
isEditMode: false,
|
|
|
editOrderId: null,
|
|
|
-
|
|
|
+
|
|
|
// 事件常量
|
|
|
ORDER_FORM_EVENTS
|
|
|
}
|
|
@@ -239,7 +249,7 @@ export default {
|
|
|
// 不调用done(),阻止默认弹窗打开
|
|
|
return
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
if (type === 'add') {
|
|
|
// 新增模式也使用新的表单组件
|
|
|
this.isEditMode = false
|
|
@@ -248,7 +258,7 @@ export default {
|
|
|
// 不调用done(),阻止默认弹窗打开
|
|
|
return
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
// 其他模式(如查看)使用默认弹窗
|
|
|
done()
|
|
|
},
|
|
@@ -325,6 +335,58 @@ export default {
|
|
|
this.onLoad(this.page)
|
|
|
},
|
|
|
|
|
|
+ /**
|
|
|
+ * 判断订单是否可以提交到U9
|
|
|
+ * @param {OrderItem} row - 订单数据
|
|
|
+ * @returns {boolean}
|
|
|
+ */
|
|
|
+ canSubmitToU9(row) {
|
|
|
+ // 只有草稿(0)和未提交(1)状态的订单可以提交
|
|
|
+ return row.status === ORDER_STATUS.DRAFT || row.status === ORDER_STATUS.SUBMITTED
|
|
|
+ },
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 提交订单到U9系统
|
|
|
+ * @param {OrderItem} row - 订单数据
|
|
|
+ * @returns {Promise<void>}
|
|
|
+ */
|
|
|
+ async handleSubmitToU9(row) {
|
|
|
+ let loading = null
|
|
|
+ try {
|
|
|
+ await this.$confirm('确认要提交该订单到U9系统吗?', '提示', {
|
|
|
+ confirmButtonText: '确定',
|
|
|
+ cancelButtonText: '取消',
|
|
|
+ type: 'warning'
|
|
|
+ })
|
|
|
+
|
|
|
+ loading = this.$loading({
|
|
|
+ lock: true,
|
|
|
+ text: '正在提交到U9系统...',
|
|
|
+ spinner: 'el-icon-loading',
|
|
|
+ background: 'rgba(0, 0, 0, 0.7)'
|
|
|
+ })
|
|
|
+
|
|
|
+ const response = await submitOrderToU9({ id: row.id })
|
|
|
+
|
|
|
+ if (response.data && response.data.success) {
|
|
|
+ this.$message.success('订单提交成功')
|
|
|
+ // 刷新列表数据
|
|
|
+ this.onLoad(this.page)
|
|
|
+ } else {
|
|
|
+ this.$message.error(response.data?.msg || '提交失败')
|
|
|
+ }
|
|
|
+ } catch (error) {
|
|
|
+ if (error !== 'cancel') {
|
|
|
+ console.error('提交订单到U9失败:', error)
|
|
|
+ }
|
|
|
+ } finally {
|
|
|
+ // 关闭loading
|
|
|
+ if (loading) {
|
|
|
+ loading.close()
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+
|
|
|
// 工具方法
|
|
|
getOrderTypeLabel,
|
|
|
getOrderTypeTagType,
|
|
@@ -383,4 +445,4 @@ export default {
|
|
|
color: #303133;
|
|
|
font-weight: 600;
|
|
|
}
|
|
|
-</style>
|
|
|
+</style>
|