diff --git a/index.html b/index.html index 960f5d1..d6be3f8 100644 --- a/index.html +++ b/index.html @@ -4,7 +4,7 @@ - 后台管理系统 + 供应商后台管理系统 diff --git a/src/views/Orders.vue b/src/views/Orders.vue index 7ec1ddf..fbb8c47 100644 --- a/src/views/Orders.vue +++ b/src/views/Orders.vue @@ -78,7 +78,7 @@ {{ formatDate(row.created_at) }} - + + + + + + + + + 发货 + + + + + + + + + + + + + + + + @@ -222,6 +261,7 @@ import dayjs from 'dayjs'; const loading = ref(false); const orders = ref([]); const dialogVisible = ref(false); +const deliveryDialogVisible = ref(false); const selectedOrder = ref(null); const filters = reactive({ @@ -237,6 +277,12 @@ const pagination = reactive({ total: 0, }); +const deliveryForm = reactive({ + logistics_company: '', + logistics_no: '', + id: '', +}); + // 加载订单列表 const loadOrders = async () => { loading.value = true; @@ -259,6 +305,7 @@ const loadOrders = async () => { pagination.total = data.data.total; } catch (error) { ElMessage.error('加载订单列表失败'); + console.error('加载订单列表失败:', error); } finally { loading.value = false; } @@ -314,6 +361,12 @@ const updateOrderStatus = async (order, newStatus) => { // 关闭对话框 const closeDialog = () => { dialogVisible.value = false; + deliveryDialogVisible.value = false; + deliveryForm.value = { + logistics_company: '', + logistics_no: '', + id: '', + }; selectedOrder.value = null; }; @@ -340,6 +393,23 @@ const getStatusText = (status) => { return texts[status] || status; }; +const deliveryRules = reactive({ + logistics_company: [{ required: true, message: '请输入物流公司名称', trigger: 'blur' }], + logistics_no: [{ required: true, message: '请输入物流单号', trigger: 'blur' }], +}); + +const submitDelivery = async () => { + try { + await api.products.delivery(deliveryForm); + ElMessage.success('发货成功'); + closeDialog(); + loadOrders(); + } catch (error) { + ElMessage.error('发货失败'); + console.error('发货失败:', error); + } +}; + // 格式化日期 const formatDate = (dateString) => { return dayjs(dateString).format('YYYY-MM-DD HH:mm:ss'); @@ -419,4 +489,11 @@ onMounted(() => { display: flex; justify-content: center; } + +.delivery-btn { + display: flex; + justify-content: center; + margin: 0 auto; + margin-top: 10px; +} diff --git a/src/views/ProductForm.vue b/src/views/ProductForm.vue index 7fe72b5..d454e4e 100644 --- a/src/views/ProductForm.vue +++ b/src/views/ProductForm.vue @@ -496,7 +496,8 @@ const loadProduct = async () => { console.log('表单数据:', form); } catch (error) { - ElMessage.error('加载商品信息失败',error) + ElMessage.error('加载商品信息失败'); + console.error('加载商品信息失败:', error); // router.back() } } diff --git a/vite.config.js b/vite.config.js index 896b563..2524314 100644 --- a/vite.config.js +++ b/vite.config.js @@ -16,16 +16,17 @@ export default defineConfig({ host: '0.0.0.0', proxy: { '/api': { - target: 'http://192.168.0.11:3000', - changeOrigin: true + target: 'http://192.168.0.12:3008', + changeOrigin: true, + rewrite: (path) => path.replace(/^\/api/, '') }, '/mid': { - target: 'http://localhost:3005', + target: 'http://192.168.0.4:3005/', changeOrigin: true, rewrite: (path) => path.replace(/^\/mid/, '') }, '/uploads': { - target: 'http://localhost:3000', + target: 'http://192.168.0.12:3008', changeOrigin: true } }