diff --git a/src/api/mall/trade/delivery/express/index.ts b/src/api/mall/trade/delivery/express/index.ts
index 95429a40..76ac93ec 100644
--- a/src/api/mall/trade/delivery/express/index.ts
+++ b/src/api/mall/trade/delivery/express/index.ts
@@ -19,6 +19,11 @@ export const getDeliveryExpress = async (id: number) => {
   return await request.get({ url: '/trade/delivery/express/get?id=' + id })
 }
 
+// 获得商品品牌精简信息列表
+export const getSimpleDeliveryExpressList = () => {
+  return request.get({ url: '/trade/delivery/express/list-all-simple' })
+}
+
 // 新增快递公司
 export const createDeliveryExpress = async (data: DeliveryExpressVO) => {
   return await request.post({ url: '/trade/delivery/express/create', data })
diff --git a/src/api/mall/trade/order/index.ts b/src/api/mall/trade/order/index.ts
index 8acb9941..8dfbfab8 100644
--- a/src/api/mall/trade/order/index.ts
+++ b/src/api/mall/trade/order/index.ts
@@ -94,17 +94,18 @@ export const getOrder = async (id: number | null) => {
   return await request.get({ url: `/trade/order/get-detail?id=` + id })
 }
 
-// 新增交易订单
-export const createOrder = async (data: OrderVO) => {
-  return await request.post({ url: `/trade/order/create`, data })
+export interface DeliveryVO {
+  id: number // 订单编号
+  logisticsId: number | null // 物流公司编号
+  logisticsNo: string // 物流编号
 }
 
-// 修改交易订单
-export const updateOrder = async (data: OrderVO) => {
-  return await request.put({ url: `/trade/order/update`, data })
+// 订单发货
+export const delivery = async (data: DeliveryVO) => {
+  return await request.post({ url: `/trade/order/delivery`, data })
 }
 
-// 删除交易订单
-export const deleteOrder = async (id: number | null) => {
-  return await request.delete({ url: `/trade/order/delete?id=` + id })
+// 订单备注
+export const remark = async (data) => {
+  return await request.post({ url: `/trade/order/remark`, data })
 }
diff --git a/src/views/mall/trade/order/DeliveryOrderForm.vue b/src/views/mall/trade/order/DeliveryOrderForm.vue
new file mode 100644
index 00000000..579a376c
--- /dev/null
+++ b/src/views/mall/trade/order/DeliveryOrderForm.vue
@@ -0,0 +1,93 @@
+<template>
+  <Dialog v-model="dialogVisible" title="订单发货" width="25%">
+    <el-form ref="formRef" v-loading="formLoading" :model="formData" label-width="80px">
+      <el-form-item label="发货方式">
+        <el-radio-group v-model="radio">
+          <el-radio border label="1">快递物流</el-radio>
+          <el-radio border label="2">无需发货</el-radio>
+        </el-radio-group>
+      </el-form-item>
+      <template v-if="radio === '1'">
+        <el-form-item label="物流公司">
+          <el-select v-model="formData.logisticsId" placeholder="请选择" style="width: 100%">
+            <el-option
+              v-for="item in deliveryExpressList"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            />
+          </el-select>
+        </el-form-item>
+        <el-form-item label="物流单号">
+          <el-input v-model="formData.logisticsNo" />
+        </el-form-item>
+      </template>
+    </el-form>
+    <template #footer>
+      <el-button :disabled="formLoading" type="primary" @click="submitForm">确 定</el-button>
+      <el-button @click="dialogVisible = false">取 消</el-button>
+    </template>
+  </Dialog>
+</template>
+<script lang="ts" setup>
+import * as DeliveryExpressApi from '@/api/mall/trade/delivery/express'
+import * as TradeOrderApi from '@/api/mall/trade/order'
+
+defineOptions({ name: 'DeliveryOrderForm' })
+
+const { t } = useI18n() // 国际化
+const message = useMessage() // 消息弹窗
+
+const dialogVisible = ref(false) // 弹窗的是否展示
+const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用
+const radio = ref('1')
+const formData = ref<TradeOrderApi.DeliveryVO>({
+  id: 0, // 订单编号
+  logisticsId: null, // 物流公司编号
+  logisticsNo: '' // 物流编号
+})
+const formRef = ref() // 表单 Ref
+
+/** 打开弹窗 */
+const open = async (orderId: number) => {
+  resetForm()
+  // 设置数据
+  formData.value.id = orderId
+  dialogVisible.value = true
+}
+defineExpose({ open }) // 提供 open 方法,用于打开弹窗
+
+/** 提交表单 */
+const emit = defineEmits(['success']) // 定义 success 事件,用于操作成功后的回调
+const submitForm = async () => {
+  // 提交请求
+  formLoading.value = true
+  try {
+    const data = unref(formData)
+    if (radio.value === '2') {
+      data.logisticsId = 0
+    }
+    await TradeOrderApi.delivery(data)
+    message.success(t('common.updateSuccess'))
+    dialogVisible.value = false
+    // 发送操作成功的事件
+    emit('success', true)
+  } finally {
+    formLoading.value = false
+  }
+}
+
+/** 重置表单 */
+const resetForm = () => {
+  formData.value = {
+    id: 0, // 订单编号
+    logisticsId: null, // 物流公司编号
+    logisticsNo: '' // 物流编号
+  }
+  formRef.value?.resetFields()
+}
+const deliveryExpressList = ref([])
+onMounted(async () => {
+  deliveryExpressList.value = await DeliveryExpressApi.getSimpleDeliveryExpressList()
+})
+</script>
diff --git a/src/views/mall/trade/order/OrderRemarksForm.vue b/src/views/mall/trade/order/OrderRemarksForm.vue
new file mode 100644
index 00000000..fdcf72dc
--- /dev/null
+++ b/src/views/mall/trade/order/OrderRemarksForm.vue
@@ -0,0 +1,66 @@
+<template>
+  <Dialog v-model="dialogVisible" title="订单备注" width="25%">
+    <el-form ref="formRef" v-loading="formLoading" :model="formData" label-width="80px">
+      <el-form-item label="备注">
+        <el-input v-model="formData.remark" />
+      </el-form-item>
+    </el-form>
+    <template #footer>
+      <el-button :disabled="formLoading" type="primary" @click="submitForm">确 定</el-button>
+      <el-button @click="dialogVisible = false">取 消</el-button>
+    </template>
+  </Dialog>
+</template>
+<script lang="ts" setup>
+import * as TradeOrderApi from '@/api/mall/trade/order'
+
+defineOptions({ name: 'OrderRemarksForm' })
+
+const { t } = useI18n() // 国际化
+const message = useMessage() // 消息弹窗
+
+const dialogVisible = ref(false) // 弹窗的是否展示
+const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用
+const formData = ref({
+  id: 0, // 订单编号
+  remark: '' // 订单备注
+})
+const formRef = ref() // 表单 Ref
+
+/** 打开弹窗 */
+const open = async (row: TradeOrderApi.OrderVO) => {
+  resetForm()
+  // 设置数据
+  formData.value.id = row.id
+  formData.value.remark = row.remark
+  dialogVisible.value = true
+}
+defineExpose({ open }) // 提供 open 方法,用于打开弹窗
+
+/** 提交表单 */
+const emit = defineEmits(['success']) // 定义 success 事件,用于操作成功后的回调
+const submitForm = async () => {
+  // 提交请求
+  formLoading.value = true
+  try {
+    const data = unref(formData)
+    await TradeOrderApi.remark(data)
+    message.success(t('common.updateSuccess'))
+    dialogVisible.value = false
+    // 发送操作成功的事件
+    emit('success', true)
+  } finally {
+    formLoading.value = false
+  }
+}
+
+/** 重置表单 */
+const resetForm = () => {
+  formData.value = {
+    id: 0, // 订单编号
+    logisticsId: null, // 物流公司编号
+    logisticsNo: '' // 物流编号
+  }
+  formRef.value?.resetFields()
+}
+</script>
diff --git a/src/views/mall/trade/order/detail/index.vue b/src/views/mall/trade/order/detail/index.vue
index c8e00f99..dc5e4bcc 100644
--- a/src/views/mall/trade/order/detail/index.vue
+++ b/src/views/mall/trade/order/detail/index.vue
@@ -47,9 +47,9 @@
       <el-descriptions-item label-class-name="no-colon">
         <el-button size="small" type="primary">调整价格</el-button>
         <!-- TODO 芋艿:待实现 -->
-        <el-button size="small" type="primary">备注</el-button>
+        <el-button size="small" type="primary" @click="openForm('remark')">备注</el-button>
         <!-- TODO 芋艿:待实现 -->
-        <el-button size="small" type="primary">发货</el-button>
+        <el-button size="small" type="primary" @click="openForm('delivery')">发货</el-button>
         <!-- TODO 芋艿:待实现 -->
         <el-button size="small" type="primary">修改地址</el-button>
         <!-- TODO 芋艿:待实现 -->
@@ -212,17 +212,20 @@
       </el-descriptions>
     </div>
   </ContentWrap>
+  <DeliveryOrderForm ref="deliveryOrderFormRef" @success="getDetail" />
+  <OrderRemarksForm ref="orderRemarksFormRef" @success="getDetail" />
 </template>
 <script lang="ts" setup>
 import * as TradeOrderApi from '@/api/mall/trade/order'
 import { formatToFraction } from '@/utils'
 import { DICT_TYPE } from '@/utils/dict'
+import OrderRemarksForm from '@/views/mall/trade/order/OrderRemarksForm.vue'
+import DeliveryOrderForm from '@/views/mall/trade/order/DeliveryOrderForm.vue'
 
 defineOptions({ name: 'TradeOrderDetailForm' })
 
 const message = useMessage() // 消息弹窗
 const { params } = useRoute() // 查询参数
-// const loading = ref(false)
 const orderInfo = ref<TradeOrderApi.OrderVO>({
   no: '',
   createTime: null,
@@ -332,6 +335,20 @@ const detailInfo = ref({
   goodsInfo: [] // 商品详情tableData
 })
 
+const deliveryOrderFormRef = ref() // 发货表单 Ref
+const orderRemarksFormRef = ref() // 订单备注表单 Ref
+
+const openForm = (type: string) => {
+  switch (type) {
+    case 'remark':
+      orderRemarksFormRef.value?.open(orderInfo)
+      break
+    case 'delivery':
+      deliveryOrderFormRef.value?.open(orderInfo.id)
+      break
+  }
+}
+
 /** 获得详情 */
 const getDetail = async () => {
   const id = params.orderId as unknown as number
diff --git a/src/views/mall/trade/order/index.vue b/src/views/mall/trade/order/index.vue
index 6076cb4b..72ef6cac 100644
--- a/src/views/mall/trade/order/index.vue
+++ b/src/views/mall/trade/order/index.vue
@@ -178,6 +178,10 @@
                     </el-button>
                     <template #dropdown>
                       <el-dropdown-menu>
+                        <el-dropdown-item command="delivery">
+                          <Icon icon="ep:takeaway-box" />
+                          发货
+                        </el-dropdown-item>
                         <el-dropdown-item command="orderRemarks">
                           <Icon icon="ep:chat-line-square" />
                           订单备注
@@ -186,14 +190,6 @@
                           <Icon icon="ep:credit-card" />
                           立即退款
                         </el-dropdown-item>
-                        <el-dropdown-item command="printReceipt">
-                          <Icon icon="ep:takeaway-box" />
-                          打印小票
-                        </el-dropdown-item>
-                        <el-dropdown-item command="printInvoice">
-                          <Icon icon="ep:takeaway-box" />
-                          打印配货单
-                        </el-dropdown-item>
                       </el-dropdown-menu>
                     </template>
                   </el-dropdown>
@@ -257,10 +253,14 @@
       @pagination="getList"
     />
   </ContentWrap>
+  <DeliveryOrderForm ref="deliveryOrderFormRef" @success="getList" />
+  <OrderRemarksForm ref="orderRemarksFormRef" @success="getList" />
 </template>
 
 <script lang="ts" name="Order" setup>
 import type { FormInstance, TableColumnCtx } from 'element-plus'
+import DeliveryOrderForm from './DeliveryOrderForm.vue'
+import OrderRemarksForm from './OrderRemarksForm.vue'
 import { dateFormatter } from '@/utils/formatTime'
 import * as TradeOrderApi from '@/api/mall/trade/order'
 import { OrderItemRespVO, OrderVO } from '@/api/mall/trade/order'
@@ -275,7 +275,9 @@ const { currentRoute, push } = useRouter() // 路由跳转
 const loading = ref(true) // 列表的加载中
 const total = ref(2) // 列表的总页数
 const list = ref<OrderVO[]>([]) // 列表的数据
-const openForm = (id) => {
+const deliveryOrderFormRef = ref()
+const orderRemarksFormRef = ref()
+const openForm = (id: number) => {
   push('/trade/order/detail/' + id)
 }
 /** 商品图预览 */
@@ -314,19 +316,17 @@ const handleCommand = (command: string, row: OrderVO) => {
   console.log(row)
   switch (command) {
     case 'orderRemarks':
+      orderRemarksFormRef.value?.open(row)
       break
     case 'refund':
       break
-    case 'printReceipt':
-      break
-    case 'printInvoice':
-      break
-    default:
+    case 'delivery':
+      deliveryOrderFormRef.value?.open(row.id)
       break
   }
 }
 const queryFormRef = ref<FormInstance>() // 搜索的表单
-//表单搜索
+//表单搜索 TODO 订单相关操作完成后立马实现
 const queryParams = reactive({
   pageNo: 1, //首页
   pageSize: 10, //页面大小