mirror of
				https://gitee.com/hhyykk/ipms-sjy-ui.git
				synced 2025-10-31 02:08:45 +08:00 
			
		
		
		
	订单列表:列表重构: 完善订单发货、修改地址、订单调价、订单备注
This commit is contained in:
		| @@ -109,3 +109,13 @@ export const delivery = async (data: DeliveryVO) => { | |||||||
| export const remark = async (data) => { | export const remark = async (data) => { | ||||||
|   return await request.post({ url: `/trade/order/remark`, data }) |   return await request.post({ url: `/trade/order/remark`, data }) | ||||||
| } | } | ||||||
|  |  | ||||||
|  | // 订单调价 | ||||||
|  | export const adjustPrice = async (data) => { | ||||||
|  |   return await request.post({ url: `/trade/order/adjust-price`, data }) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // 修改订单地址 | ||||||
|  | export const adjustAddress = async (data) => { | ||||||
|  |   return await request.post({ url: `/trade/order/adjust-address`, data }) | ||||||
|  | } | ||||||
|   | |||||||
| @@ -421,7 +421,7 @@ const remainingRouter: AppRouteRecordRaw[] = [ | |||||||
|     children: [ |     children: [ | ||||||
|       { |       { | ||||||
|         path: 'detail/:orderId(\\d+)', |         path: 'detail/:orderId(\\d+)', | ||||||
|         component: () => import('@/views/mall/trade/order/detail/index.vue'), |         component: () => import('@/views/mall/trade/order/components/OrderDetailForm.vue'), | ||||||
|         name: 'TradeOrderDetailForm', |         name: 'TradeOrderDetailForm', | ||||||
|         meta: { title: '订单详情', icon: '', activeMenu: '/trade/trade/order' } |         meta: { title: '订单详情', icon: '', activeMenu: '/trade/trade/order' } | ||||||
|       } |       } | ||||||
|   | |||||||
| @@ -164,5 +164,8 @@ export enum DICT_TYPE { | |||||||
|   PROMOTION_COUPON_STATUS = 'promotion_coupon_status', // 优惠劵的状态 |   PROMOTION_COUPON_STATUS = 'promotion_coupon_status', // 优惠劵的状态 | ||||||
|   PROMOTION_COUPON_TAKE_TYPE = 'promotion_coupon_take_type', // 优惠劵的领取方式 |   PROMOTION_COUPON_TAKE_TYPE = 'promotion_coupon_take_type', // 优惠劵的领取方式 | ||||||
|   PROMOTION_ACTIVITY_STATUS = 'promotion_activity_status', // 优惠活动的状态 |   PROMOTION_ACTIVITY_STATUS = 'promotion_activity_status', // 优惠活动的状态 | ||||||
|   PROMOTION_CONDITION_TYPE = 'promotion_condition_type' // 营销的条件类型枚举 |   PROMOTION_CONDITION_TYPE = 'promotion_condition_type', // 营销的条件类型枚举 | ||||||
|  |  | ||||||
|  |   // ========== MALL - 物流模块 ========== | ||||||
|  |   DELIVERY_TYPE = 'delivery_type' // 配送方式 | ||||||
| } | } | ||||||
|   | |||||||
| @@ -0,0 +1,80 @@ | |||||||
|  | <template> | ||||||
|  |   <Dialog v-model="dialogVisible" title="修改订单收货地址" width="35%"> | ||||||
|  |     <el-form ref="formRef" v-loading="formLoading" :model="formData" label-width="120px"> | ||||||
|  |       <el-form-item label="收件人名称"> | ||||||
|  |         <el-input v-model="formData.receiverName" /> | ||||||
|  |       </el-form-item> | ||||||
|  |       <el-form-item label="收件人手机"> | ||||||
|  |         <el-input v-model="formData.receiverMobile" /> | ||||||
|  |       </el-form-item> | ||||||
|  |       <el-form-item label="收件人地区编号"> | ||||||
|  |         <el-input v-model="formData.receiverAreaId" /> | ||||||
|  |       </el-form-item> | ||||||
|  |       <el-form-item label="收件人详细地址"> | ||||||
|  |         <el-input v-model="formData.receiverDetailAddress" /> | ||||||
|  |       </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' | ||||||
|  | import { copyValueToTarget } from '@/utils' | ||||||
|  |  | ||||||
|  | defineOptions({ name: 'OrderAdjustAddressForm' }) | ||||||
|  |  | ||||||
|  | const { t } = useI18n() // 国际化 | ||||||
|  | const message = useMessage() // 消息弹窗 | ||||||
|  |  | ||||||
|  | const dialogVisible = ref(false) // 弹窗的是否展示 | ||||||
|  | const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用 | ||||||
|  | const formData = ref({ | ||||||
|  |   id: 0, // 订单编号 | ||||||
|  |   receiverName: '', // 收件人名称 | ||||||
|  |   receiverMobile: '', // 收件人手机 | ||||||
|  |   receiverAreaId: null, //收件人地区编号 | ||||||
|  |   receiverDetailAddress: '' //收件人详细地址 | ||||||
|  | }) | ||||||
|  | const formRef = ref() // 表单 Ref | ||||||
|  |  | ||||||
|  | /** 打开弹窗 */ | ||||||
|  | const open = async (row: TradeOrderApi.OrderVO) => { | ||||||
|  |   resetForm() | ||||||
|  |   // 设置数据 | ||||||
|  |   copyValueToTarget(formData.value, row) | ||||||
|  |   dialogVisible.value = true | ||||||
|  | } | ||||||
|  | defineExpose({ open }) // 提供 open 方法,用于打开弹窗 | ||||||
|  |  | ||||||
|  | /** 提交表单 */ | ||||||
|  | const emit = defineEmits(['success']) // 定义 success 事件,用于操作成功后的回调 | ||||||
|  | const submitForm = async () => { | ||||||
|  |   // 提交请求 | ||||||
|  |   formLoading.value = true | ||||||
|  |   try { | ||||||
|  |     const data = unref(formData) | ||||||
|  |     await TradeOrderApi.adjustAddress(data) | ||||||
|  |     message.success(t('common.updateSuccess')) | ||||||
|  |     dialogVisible.value = false | ||||||
|  |     // 发送操作成功的事件 | ||||||
|  |     emit('success', true) | ||||||
|  |   } finally { | ||||||
|  |     formLoading.value = false | ||||||
|  |   } | ||||||
|  | } | ||||||
|  |  | ||||||
|  | /** 重置表单 */ | ||||||
|  | const resetForm = () => { | ||||||
|  |   formData.value = { | ||||||
|  |     id: 0, // 订单编号 | ||||||
|  |     receiverName: '', // 收件人名称 | ||||||
|  |     receiverMobile: '', // 收件人手机 | ||||||
|  |     receiverAreaId: null, //收件人地区编号 | ||||||
|  |     receiverDetailAddress: '' //收件人详细地址 | ||||||
|  |   } | ||||||
|  |   formRef.value?.resetFields() | ||||||
|  | } | ||||||
|  | </script> | ||||||
| @@ -0,0 +1,89 @@ | |||||||
|  | <template> | ||||||
|  |   <Dialog v-model="dialogVisible" title="订单调价" width="25%"> | ||||||
|  |     <el-form ref="formRef" v-loading="formLoading" :model="formData" label-width="100px"> | ||||||
|  |       <el-form-item label="应付金额(总)"> | ||||||
|  |         <el-input v-model="formData.payPrice" disabled /> | ||||||
|  |       </el-form-item> | ||||||
|  |       <el-form-item label="订单调价"> | ||||||
|  |         <el-input-number v-model="formData.adjustPrice" :precision="2" :step="0.1" class="w-100%" /> | ||||||
|  |         <el-tag class="mt-10px" type="warning">订单调价。 正数,加价;负数,减价</el-tag> | ||||||
|  |       </el-form-item> | ||||||
|  |       <el-form-item label="调价后"> | ||||||
|  |         <el-input v-model="formData.newPayPrice" disabled /> | ||||||
|  |       </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' | ||||||
|  | import { convertToInteger, formatToFraction } from '@/utils' | ||||||
|  | import { cloneDeep } from 'lodash-es' | ||||||
|  |  | ||||||
|  | defineOptions({ name: 'OrderAdjustPriceForm' }) | ||||||
|  |  | ||||||
|  | const { t } = useI18n() // 国际化 | ||||||
|  | const message = useMessage() // 消息弹窗 | ||||||
|  |  | ||||||
|  | const dialogVisible = ref(false) // 弹窗的是否展示 | ||||||
|  | const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用 | ||||||
|  | const formData = ref({ | ||||||
|  |   id: 0, // 订单编号 | ||||||
|  |   adjustPrice: 0, // 订单调价 | ||||||
|  |   payPrice: '', // 应付金额(总) | ||||||
|  |   newPayPrice: '' // 调价后应付金额(总) | ||||||
|  | }) | ||||||
|  | watch( | ||||||
|  |   () => formData.value.adjustPrice, | ||||||
|  |   (data: number) => { | ||||||
|  |     formData.value.newPayPrice = formData.value.payPrice.replace('元', '') * 1 + data + '元' | ||||||
|  |   } | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | const formRef = ref() // 表单 Ref | ||||||
|  |  | ||||||
|  | /** 打开弹窗 */ | ||||||
|  | const open = async (row: TradeOrderApi.OrderVO) => { | ||||||
|  |   resetForm() | ||||||
|  |   formData.value.id = row.id | ||||||
|  |   // 设置数据 | ||||||
|  |   formData.value.adjustPrice = formatToFraction(row.adjustPrice) | ||||||
|  |   formData.value.payPrice = formatToFraction(row.payPrice) + '元' | ||||||
|  |   dialogVisible.value = true | ||||||
|  | } | ||||||
|  | defineExpose({ open }) // 提供 open 方法,用于打开弹窗 | ||||||
|  |  | ||||||
|  | /** 提交表单 */ | ||||||
|  | const emit = defineEmits(['success']) // 定义 success 事件,用于操作成功后的回调 | ||||||
|  | const submitForm = async () => { | ||||||
|  |   // 提交请求 | ||||||
|  |   formLoading.value = true | ||||||
|  |   try { | ||||||
|  |     const data = cloneDeep(unref(formData)) | ||||||
|  |     data.adjustPrice = convertToInteger(data.adjustPrice) | ||||||
|  |     delete data.payPrice | ||||||
|  |     delete data.newPayPrice | ||||||
|  |     await TradeOrderApi.adjustPrice(data) | ||||||
|  |     message.success(t('common.updateSuccess')) | ||||||
|  |     dialogVisible.value = false | ||||||
|  |     // 发送操作成功的事件 | ||||||
|  |     emit('success', true) | ||||||
|  |   } finally { | ||||||
|  |     formLoading.value = false | ||||||
|  |   } | ||||||
|  | } | ||||||
|  |  | ||||||
|  | /** 重置表单 */ | ||||||
|  | const resetForm = () => { | ||||||
|  |   formData.value = { | ||||||
|  |     id: 0, // 订单编号 | ||||||
|  |     adjustPrice: 0, // 订单调价 | ||||||
|  |     payPrice: '', // 应付金额(总) | ||||||
|  |     newPayPrice: '' // 调价后应付金额(总) | ||||||
|  |   } | ||||||
|  |   formRef.value?.resetFields() | ||||||
|  | } | ||||||
|  | </script> | ||||||
| @@ -3,10 +3,11 @@ | |||||||
|     <!-- 订单信息 --> |     <!-- 订单信息 --> | ||||||
|     <el-descriptions title="订单信息"> |     <el-descriptions title="订单信息"> | ||||||
|       <el-descriptions-item label="订单号: ">{{ orderInfo.no }}</el-descriptions-item> |       <el-descriptions-item label="订单号: ">{{ orderInfo.no }}</el-descriptions-item> | ||||||
|       <el-descriptions-item label="配送方式: ">物流配送</el-descriptions-item> |       <el-descriptions-item label="配送方式: "> | ||||||
|       <!-- TODO 芋艿:待实现 --> |         <dict-tag :type="DICT_TYPE.DELIVERY_TYPE" :value="orderInfo.deliveryType" /> | ||||||
|       <el-descriptions-item label="营销活动: ">物流配送</el-descriptions-item> |       </el-descriptions-item> | ||||||
|       <!-- TODO 芋艿:待实现 --> |       <!-- TODO 营销活动待实现     --> | ||||||
|  |       <el-descriptions-item label="营销活动: ">秒杀活动</el-descriptions-item> | ||||||
|       <el-descriptions-item label="订单类型: "> |       <el-descriptions-item label="订单类型: "> | ||||||
|         <dict-tag :type="DICT_TYPE.TRADE_ORDER_TYPE" :value="orderInfo.type" /> |         <dict-tag :type="DICT_TYPE.TRADE_ORDER_TYPE" :value="orderInfo.type" /> | ||||||
|       </el-descriptions-item> |       </el-descriptions-item> | ||||||
| @@ -37,22 +38,17 @@ | |||||||
|     <!-- 订单状态 --> |     <!-- 订单状态 --> | ||||||
|     <el-descriptions :column="1" title="订单状态"> |     <el-descriptions :column="1" title="订单状态"> | ||||||
|       <el-descriptions-item label="订单状态: "> |       <el-descriptions-item label="订单状态: "> | ||||||
|         <!-- TODO xiaobai:status 一定有值哈,不用判断 --> |         <dict-tag :type="DICT_TYPE.TRADE_ORDER_STATUS" :value="orderInfo.status" /> | ||||||
|         <dict-tag |  | ||||||
|           v-if="orderInfo.status !== ''" |  | ||||||
|           :type="DICT_TYPE.TRADE_ORDER_STATUS" |  | ||||||
|           :value="orderInfo.status" |  | ||||||
|         /> |  | ||||||
|       </el-descriptions-item> |       </el-descriptions-item> | ||||||
|       <el-descriptions-item label-class-name="no-colon"> |       <el-descriptions-item label-class-name="no-colon"> | ||||||
|         <el-button size="small" type="primary">调整价格</el-button> |         <el-button size="small" type="primary" @click="openForm('adjustPrice')">调整价格</el-button> | ||||||
|         <el-button size="small" type="primary" @click="openForm('remark')">备注</el-button> |         <el-button size="small" type="primary" @click="openForm('remark')">备注</el-button> | ||||||
|         <el-button size="small" type="primary" @click="openForm('delivery')">发货</el-button> |         <el-button size="small" type="primary" @click="openForm('delivery')">发货</el-button> | ||||||
|         <!-- TODO 芋艿:待实现 --> |         <el-button size="small" type="primary" @click="openForm('adjustAddress')"> | ||||||
|         <el-button size="small" type="primary">修改地址</el-button> |           修改地址 | ||||||
|         <!-- TODO 芋艿:待实现 --> |         </el-button> | ||||||
|  |         <!-- TODO 后台商家也需要收货功能吗? --> | ||||||
|         <el-button size="small" type="primary">确认收货</el-button> |         <el-button size="small" type="primary">确认收货</el-button> | ||||||
|         <!-- TODO 芋艿:待实现 --> |  | ||||||
|       </el-descriptions-item> |       </el-descriptions-item> | ||||||
|       <el-descriptions-item> |       <el-descriptions-item> | ||||||
|         <template #label><span style="color: red">提醒: </span></template> |         <template #label><span style="color: red">提醒: </span></template> | ||||||
| @@ -62,8 +58,6 @@ | |||||||
|       </el-descriptions-item> |       </el-descriptions-item> | ||||||
|     </el-descriptions> |     </el-descriptions> | ||||||
| 
 | 
 | ||||||
|     <!-- 物流信息 TODO --> |  | ||||||
| 
 |  | ||||||
|     <!-- 商品信息 --> |     <!-- 商品信息 --> | ||||||
|     <el-descriptions title="商品信息"> |     <el-descriptions title="商品信息"> | ||||||
|       <el-descriptions-item labelClassName="no-colon"> |       <el-descriptions-item labelClassName="no-colon"> | ||||||
| @@ -98,8 +92,6 @@ | |||||||
|           <el-col :span="10" /> |           <el-col :span="10" /> | ||||||
|         </el-row> |         </el-row> | ||||||
|       </el-descriptions-item> |       </el-descriptions-item> | ||||||
|       <!-- 占位 --> |  | ||||||
|       <!-- <el-descriptions-item v-for="item in 5" label-class-name="no-colon" :key="item" /> --> |  | ||||||
|     </el-descriptions> |     </el-descriptions> | ||||||
|     <el-descriptions :column="6"> |     <el-descriptions :column="6"> | ||||||
|       <el-descriptions-item label="商品总额: "> |       <el-descriptions-item label="商品总额: "> | ||||||
| @@ -114,8 +106,7 @@ | |||||||
| 
 | 
 | ||||||
|       <el-descriptions-item> |       <el-descriptions-item> | ||||||
|         <template #label><span style="color: red">商品优惠: </span></template> |         <template #label><span style="color: red">商品优惠: </span></template> | ||||||
|         <!-- 没理解TODO  orderInfo.totalPrice - orderInfo.totalPrice --> |         {{ formatToFraction(orderInfo.couponPrice) }}元 | ||||||
|         {{ formatToFraction(orderInfo.totalPrice - orderInfo.totalPrice) }}元 |  | ||||||
|       </el-descriptions-item> |       </el-descriptions-item> | ||||||
|       <el-descriptions-item> |       <el-descriptions-item> | ||||||
|         <template #label><span style="color: red">订单优惠: </span></template> |         <template #label><span style="color: red">订单优惠: </span></template> | ||||||
| @@ -149,7 +140,7 @@ | |||||||
|           </el-timeline> |           </el-timeline> | ||||||
|         </el-descriptions-item> |         </el-descriptions-item> | ||||||
| 
 | 
 | ||||||
|         <!-- 物流信息 --> |         <!-- 物流信息 TODO 等物流接口搞定重构一下 --> | ||||||
|         <!-- TODO @xiaobai:改成一个包裹哈;目前只允许发货一次 --> |         <!-- TODO @xiaobai:改成一个包裹哈;目前只允许发货一次 --> | ||||||
|         <el-descriptions-item v-if="group.key === 'expressInfo'" labelClassName="no-colon"> |         <el-descriptions-item v-if="group.key === 'expressInfo'" labelClassName="no-colon"> | ||||||
|           <!-- 循环包裹物流信息 --> |           <!-- 循环包裹物流信息 --> | ||||||
| @@ -210,15 +201,19 @@ | |||||||
|       </el-descriptions> |       </el-descriptions> | ||||||
|     </div> |     </div> | ||||||
|   </ContentWrap> |   </ContentWrap> | ||||||
|   <DeliveryOrderForm ref="deliveryOrderFormRef" @success="getDetail" /> |   <DeliveryOrderForm ref="deliveryFormRef" @success="getDetail" /> | ||||||
|   <OrderRemarksForm ref="orderRemarksFormRef" @success="getDetail" /> |   <OrderRemarksForm ref="remarksFormRef" @success="getDetail" /> | ||||||
|  |   <OrderAdjustAddressForm ref="adjustAddressFormRef" @success="getDetail" /> | ||||||
|  |   <OrderAdjustPriceForm ref="adjustPriceFormRef" @success="getDetail" /> | ||||||
| </template> | </template> | ||||||
| <script lang="ts" setup> | <script lang="ts" setup> | ||||||
| import * as TradeOrderApi from '@/api/mall/trade/order' | import * as TradeOrderApi from '@/api/mall/trade/order' | ||||||
| import { formatToFraction } from '@/utils' | import { formatToFraction } from '@/utils' | ||||||
| import { DICT_TYPE } from '@/utils/dict' | import { DICT_TYPE } from '@/utils/dict' | ||||||
| import OrderRemarksForm from '@/views/mall/trade/order/OrderRemarksForm.vue' | import OrderRemarksForm from '@/views/mall/trade/order/components/OrderRemarksForm.vue' | ||||||
| import DeliveryOrderForm from '@/views/mall/trade/order/DeliveryOrderForm.vue' | import DeliveryOrderForm from '@/views/mall/trade/order/components/DeliveryOrderForm.vue' | ||||||
|  | import OrderAdjustAddressForm from '@/views/mall/trade/order/components/OrderAdjustAddressForm.vue' | ||||||
|  | import OrderAdjustPriceForm from '@/views/mall/trade/order/components/OrderAdjustPriceForm.vue' | ||||||
| 
 | 
 | ||||||
| defineOptions({ name: 'TradeOrderDetailForm' }) | defineOptions({ name: 'TradeOrderDetailForm' }) | ||||||
| 
 | 
 | ||||||
| @@ -287,38 +282,37 @@ const detailGroups = ref([ | |||||||
| ]) | ]) | ||||||
| 
 | 
 | ||||||
| const detailInfo = ref({ | const detailInfo = ref({ | ||||||
|   expressInfo: |   // 物流信息 | ||||||
|     // 物流信息 |   expressInfo: { | ||||||
|     { |     label: '包裹1', | ||||||
|       label: '包裹1', |     name: 'bg1', | ||||||
|       name: 'bg1', |     fhsj: '2022-11-03 16:50:45', | ||||||
|       fhsj: '2022-11-03 16:50:45', |     wlgs: '极兔', | ||||||
|       wlgs: '极兔', |     ydh: '2132123', | ||||||
|       ydh: '2132123', |     wlzt: '不支持此快递公司', | ||||||
|       wlzt: '不支持此快递公司', |     wlxq: [ | ||||||
|       wlxq: [ |       { | ||||||
|         { |         content: '正在派送途中,请您准备签收(派件人:王涛,电话:13854563814)', | ||||||
|           content: '正在派送途中,请您准备签收(派件人:王涛,电话:13854563814)', |         timestamp: '2018-04-15 15:00:16' | ||||||
|           timestamp: '2018-04-15 15:00:16' |       }, | ||||||
|         }, |       { | ||||||
|         { |         content: '快件到达 【烟台龙口东江村委营业点】', | ||||||
|           content: '快件到达 【烟台龙口东江村委营业点】', |         timestamp: '2018-04-13 14:54:19' | ||||||
|           timestamp: '2018-04-13 14:54:19' |       }, | ||||||
|         }, |       { | ||||||
|         { |         content: '快件已发车', | ||||||
|           content: '快件已发车', |         timestamp: '2018-04-11 12:55:52' | ||||||
|           timestamp: '2018-04-11 12:55:52' |       }, | ||||||
|         }, |       { | ||||||
|         { |         content: '快件已发车', | ||||||
|           content: '快件已发车', |         timestamp: '2018-04-11 12:55:52' | ||||||
|           timestamp: '2018-04-11 12:55:52' |       }, | ||||||
|         }, |       { | ||||||
|         { |         content: '快件已发车', | ||||||
|           content: '快件已发车', |         timestamp: '2018-04-11 12:55:52' | ||||||
|           timestamp: '2018-04-11 12:55:52' |       } | ||||||
|         } |     ] | ||||||
|       ] |   }, | ||||||
|     }, |  | ||||||
|   orderLog: [ |   orderLog: [ | ||||||
|     // 订单操作日志 |     // 订单操作日志 | ||||||
|     { |     { | ||||||
| @@ -333,16 +327,23 @@ const detailInfo = ref({ | |||||||
|   goodsInfo: [] // 商品详情tableData |   goodsInfo: [] // 商品详情tableData | ||||||
| }) | }) | ||||||
| 
 | 
 | ||||||
| const deliveryOrderFormRef = ref() // 发货表单 Ref | const deliveryFormRef = ref() // 发货表单 Ref | ||||||
| const orderRemarksFormRef = ref() // 订单备注表单 Ref | const remarksFormRef = ref() // 订单备注表单 Ref | ||||||
| 
 | const adjustAddressFormRef = ref() // 收货地址表单 Ref | ||||||
|  | const adjustPriceFormRef = ref() // 订单调价表单 Ref | ||||||
| const openForm = (type: string) => { | const openForm = (type: string) => { | ||||||
|   switch (type) { |   switch (type) { | ||||||
|     case 'remark': |     case 'remark': | ||||||
|       orderRemarksFormRef.value?.open(orderInfo) |       remarksFormRef.value?.open(orderInfo.value) | ||||||
|       break |       break | ||||||
|     case 'delivery': |     case 'delivery': | ||||||
|       deliveryOrderFormRef.value?.open(orderInfo.id) |       deliveryFormRef.value?.open(orderInfo.value.id) | ||||||
|  |       break | ||||||
|  |     case 'adjustAddress': | ||||||
|  |       adjustAddressFormRef.value?.open(orderInfo.value) | ||||||
|  |       break | ||||||
|  |     case 'adjustPrice': | ||||||
|  |       adjustPriceFormRef.value?.open(orderInfo.value) | ||||||
|       break |       break | ||||||
|   } |   } | ||||||
| } | } | ||||||
| @@ -1,5 +1,5 @@ | |||||||
| <template> | <template> | ||||||
|   <Dialog v-model="dialogVisible" title="订单备注" width="25%"> |   <Dialog v-model="dialogVisible" title="商家备注" width="25%"> | ||||||
|     <el-form ref="formRef" v-loading="formLoading" :model="formData" label-width="80px"> |     <el-form ref="formRef" v-loading="formLoading" :model="formData" label-width="80px"> | ||||||
|       <el-form-item label="备注"> |       <el-form-item label="备注"> | ||||||
|         <el-input v-model="formData.remark" /> |         <el-input v-model="formData.remark" /> | ||||||
| @@ -44,6 +44,7 @@ const submitForm = async () => { | |||||||
|   formLoading.value = true |   formLoading.value = true | ||||||
|   try { |   try { | ||||||
|     const data = unref(formData) |     const data = unref(formData) | ||||||
|  |     console.log(data) | ||||||
|     await TradeOrderApi.remark(data) |     await TradeOrderApi.remark(data) | ||||||
|     message.success(t('common.updateSuccess')) |     message.success(t('common.updateSuccess')) | ||||||
|     dialogVisible.value = false |     dialogVisible.value = false | ||||||
| @@ -58,8 +59,7 @@ const submitForm = async () => { | |||||||
| const resetForm = () => { | const resetForm = () => { | ||||||
|   formData.value = { |   formData.value = { | ||||||
|     id: 0, // 订单编号 |     id: 0, // 订单编号 | ||||||
|     logisticsId: null, // 物流公司编号 |     remark: '' // 订单备注 | ||||||
|     logisticsNo: '' // 物流编号 |  | ||||||
|   } |   } | ||||||
|   formRef.value?.resetFields() |   formRef.value?.resetFields() | ||||||
| } | } | ||||||
| @@ -130,10 +130,11 @@ | |||||||
|                 </div> |                 </div> | ||||||
|               </template> |               </template> | ||||||
|             </el-table-column> |             </el-table-column> | ||||||
|             <el-table-column label="商品原价" prop="price" width="150"> |             <el-table-column label="商品原价*数量" prop="price" width="150"> | ||||||
|               <template #default="{ row }">{{ formatToFraction(row.price) }}元</template> |               <template #default="{ row }"> | ||||||
|  |                 {{ formatToFraction(row.price) }}元 * {{ row.count }} | ||||||
|  |               </template> | ||||||
|             </el-table-column> |             </el-table-column> | ||||||
|             <el-table-column label="数量" prop="count" width="100" /> |  | ||||||
|             <el-table-column label="合计" prop="payPrice" width="150"> |             <el-table-column label="合计" prop="payPrice" width="150"> | ||||||
|               <template #default="{ row }">{{ formatToFraction(row.payPrice) }}元</template> |               <template #default="{ row }">{{ formatToFraction(row.payPrice) }}元</template> | ||||||
|             </el-table-column> |             </el-table-column> | ||||||
| @@ -150,7 +151,7 @@ | |||||||
|                 {{ formatToFraction(scope.row.payPrice) + '元' }} |                 {{ formatToFraction(scope.row.payPrice) + '元' }} | ||||||
|               </template> |               </template> | ||||||
|             </el-table-column> |             </el-table-column> | ||||||
|             <el-table-column label="买家/收货人" min-width="120"> |             <el-table-column label="买家/收货人" min-width="160"> | ||||||
|               <template #default> |               <template #default> | ||||||
|                 <div class="flex flex-col"> |                 <div class="flex flex-col"> | ||||||
|                   <span>买家:{{ scope.row.user.nickname }}</span> |                   <span>买家:{{ scope.row.user.nickname }}</span> | ||||||
| @@ -161,8 +162,10 @@ | |||||||
|                 </div> |                 </div> | ||||||
|               </template> |               </template> | ||||||
|             </el-table-column> |             </el-table-column> | ||||||
|             <el-table-column align="center" label="配送方式" prop="deliveryType" width="120"> |             <el-table-column align="center" label="配送方式" width="120"> | ||||||
|               <template #default> 快递</template> |               <template #default> | ||||||
|  |                 <span>{{ scope.row.deliveryType || '快递' }}</span> | ||||||
|  |               </template> | ||||||
|             </el-table-column> |             </el-table-column> | ||||||
|             <el-table-column align="center" fixed="right" label="操作" width="160"> |             <el-table-column align="center" fixed="right" label="操作" width="160"> | ||||||
|               <template #default> |               <template #default> | ||||||
| @@ -259,8 +262,8 @@ | |||||||
|  |  | ||||||
| <script lang="ts" name="Order" setup> | <script lang="ts" name="Order" setup> | ||||||
| import type { FormInstance, TableColumnCtx } from 'element-plus' | import type { FormInstance, TableColumnCtx } from 'element-plus' | ||||||
| import DeliveryOrderForm from './DeliveryOrderForm.vue' | import DeliveryOrderForm from './components/DeliveryOrderForm.vue' | ||||||
| import OrderRemarksForm from './OrderRemarksForm.vue' | import OrderRemarksForm from './components/OrderRemarksForm.vue' | ||||||
| import { dateFormatter } from '@/utils/formatTime' | import { dateFormatter } from '@/utils/formatTime' | ||||||
| import * as TradeOrderApi from '@/api/mall/trade/order' | import * as TradeOrderApi from '@/api/mall/trade/order' | ||||||
| import { OrderItemRespVO, OrderVO } from '@/api/mall/trade/order' | import { OrderItemRespVO, OrderVO } from '@/api/mall/trade/order' | ||||||
| @@ -293,7 +296,7 @@ interface SpanMethodProps { | |||||||
| } | } | ||||||
|  |  | ||||||
| const spanMethod = ({ rowIndex, columnIndex }: SpanMethodProps) => { | const spanMethod = ({ rowIndex, columnIndex }: SpanMethodProps) => { | ||||||
|   const colIndex = [5, 6, 7, 8] |   const colIndex = [4, 5, 6, 7] | ||||||
|   // 处理列 |   // 处理列 | ||||||
|   if (colIndex.includes(columnIndex)) { |   if (colIndex.includes(columnIndex)) { | ||||||
|     // 处理被合并的行 |     // 处理被合并的行 | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 puhui999
					puhui999