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) }}
-
+
@@ -97,6 +97,18 @@
+
+
+ {{ row.producer }}
+
+
+
+
+ 快递单号:{{ row.delivery_code || '暂无' }}
+
+ 物流公司:{{ row.logistics_company || '暂无' }}
+
+
@@ -206,7 +218,34 @@
+
+ 发货
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 提交发货
+
+
+
+
+
@@ -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
}
}