diff --git a/pages/order/components/OrderCard/InfoRow.vue b/pages/order/components/OrderCard/InfoRow.vue new file mode 100644 index 0000000..dea93f0 --- /dev/null +++ b/pages/order/components/OrderCard/InfoRow.vue @@ -0,0 +1,45 @@ + + + + + diff --git a/pages/order/components/OrderCard/OrderCardContent.vue b/pages/order/components/OrderCard/OrderCardContent.vue new file mode 100644 index 0000000..77356e3 --- /dev/null +++ b/pages/order/components/OrderCard/OrderCardContent.vue @@ -0,0 +1,104 @@ + + + + + diff --git a/pages/order/components/OrderCard/README.md b/pages/order/components/OrderCard/README.md new file mode 100644 index 0000000..04f7067 --- /dev/null +++ b/pages/order/components/OrderCard/README.md @@ -0,0 +1,109 @@ +# OrderCard 组件 + +订单卡片组件,用于显示订单和工单信息。 + +## 组件结构 + +``` +OrderCard/ +├── index.vue # 主组件 +├── OrderCardContent.vue # 卡片内容组件 +├── InfoRow.vue # 信息行组件 +├── images/ # 图片资源 +├── styles/ # 样式文件 +└── README.md # 说明文档 +``` + +## 组件说明 + +### OrderCard (主组件) +- 负责整体布局和事件处理 +- 包含卡片头部、分割线、内容区域和操作区域 +- 处理点击、呼叫等交互事件 + +### OrderCardContent (内容组件) +- 负责根据 `orderType` 动态渲染不同的内容 +- 支持订单类型(0-酒店订单,1-门票订单,2-其他订单)和工单类型 +- 使用条件渲染显示对应的信息字段 + +### InfoRow (信息行组件) +- 可复用的信息展示组件 +- 统一的标签和值的显示格式 +- 支持字符串和数字类型的值 + +## 使用方式 + +```vue + + + +``` + +## Props + +### orderData (Object) + +| 字段 | 类型 | 说明 | 必填 | +|------|------|------|------| +| id | String | 订单ID | 是 | +| commodityName | String | 商品名称 | 是 | +| orderType | Number/undefined | 订单类型:0-酒店订单,1-门票订单,2-其他订单,undefined-工单 | 否 | +| orderNumber | String | 订单编号 | 否 | +| checkInTime | String | 入住时间(orderType=0时使用) | 否 | +| visitorName | String | 游客姓名/联系房客 | 否 | +| contactPhone | String | 联系电话 | 否 | +| quantity | Number | 份数(orderType=1,2时使用) | 否 | +| createTime | String | 创建时间(工单时使用) | 否 | +| orderStatus | String | 订单状态 | 否 | +| status | String | 状态 | 否 | + +## Events + +| 事件名 | 说明 | 参数 | +|--------|------|------| +| click | 卡片点击事件 | orderData | +| call | 呼叫事件 | orderData | +| complete | 完成事件 | orderData | + +## 显示逻辑 + +### 订单类型 (orderType !== undefined) + +- **orderType = 0 (酒店订单)**:显示订单编号、入住时间、游客姓名、联系电话 +- **orderType = 1 (门票订单)**:显示订单编号、份数 +- **orderType = 2 (其他订单)**:显示订单编号、份数 + +### 工单类型 (orderType === undefined) + +显示创建时间、联系房客、联系电话 + +## 优势 + +1. **可读性**:组件职责单一,代码结构清晰 +2. **可维护性**:组件化拆分,便于独立维护和测试 +3. **可复用性**:InfoRow 组件可在其他地方复用 +4. **健壮性**:类型检查和默认值处理 +5. **扩展性**:新增订单类型只需修改 OrderCardContent 组件 \ No newline at end of file diff --git a/pages/order/components/OrderCard/index.vue b/pages/order/components/OrderCard/index.vue index c8971df..5f99480 100644 --- a/pages/order/components/OrderCard/index.vue +++ b/pages/order/components/OrderCard/index.vue @@ -3,15 +3,20 @@ - - {{ orderData.commodityName }} + + + {{ orderData.workOrderTypeName || orderData.commodityName }} + - {{ getStatusText(orderData.orderStatus) }} + {{ getStatusText(orderData.orderStatus || orderData.workOrderStatus) }} @@ -19,31 +24,19 @@ - - - 创建时间: - {{ orderData.createTime }} - - - 联系房客: - {{ orderData.visitorName }} - - - 联系电话: - {{ orderData.contactPhone }} - - + - +