diff --git a/db/schema_phase1.sql b/db/schema_phase1.sql
index 4e0a9c8..e6a3021 100644
--- a/db/schema_phase1.sql
+++ b/db/schema_phase1.sql
@@ -127,7 +127,7 @@ CREATE TABLE IF NOT EXISTS `fa_order` (
`service_id` int(10) unsigned NOT NULL DEFAULT '0',
`service_name` varchar(100) NOT NULL DEFAULT '' COMMENT '服务名称(快照)',
`service_image` varchar(255) NOT NULL DEFAULT '' COMMENT '服务主图(快照)',
- `price_type` enum('fixed','quote','range') NOT NULL DEFAULT 'fixed',
+ `price_type` enum('fixed','quote','range','custom') NOT NULL DEFAULT 'fixed' COMMENT '一口价/报价竞价/区间/用户自主定价',
`goods_images` varchar(1000) NOT NULL DEFAULT '' COMMENT '商品图片(json)',
`goods_model` varchar(100) NOT NULL DEFAULT '' COMMENT '商品型号',
`goods_num` int(11) NOT NULL DEFAULT '1',
diff --git a/db/schema_phase6.sql b/db/schema_phase6.sql
new file mode 100644
index 0000000..140b09c
--- /dev/null
+++ b/db/schema_phase6.sql
@@ -0,0 +1,15 @@
+-- ============================================================================
+-- 优匠优服 · Phase 6 下单三种计价方式
+-- 一口价 fixed / 师傅报价竞价 quote / 用户自主定价 custom
+-- fa_service 仍使用 fixed / quote / range(服务默认价态)
+-- 下单时用户可覆盖 price_type,因此 fa_order 增加 custom
+-- ============================================================================
+SET NAMES utf8mb4;
+
+ALTER TABLE `fa_order`
+ MODIFY COLUMN `price_type` enum('fixed','quote','range','custom') NOT NULL DEFAULT 'fixed'
+ COMMENT '一口价/师傅报价竞价/区间/用户自主定价';
+
+-- 回滚(先确认没有 custom 订单):
+-- SELECT COUNT(*) FROM fa_order WHERE price_type='custom';
+-- ALTER TABLE fa_order MODIFY COLUMN price_type enum('fixed','quote','range') NOT NULL DEFAULT 'fixed';
diff --git a/pages/master/hall.vue b/pages/master/hall.vue
index 5d2ec07..a44304b 100644
--- a/pages/master/hall.vue
+++ b/pages/master/hall.vue
@@ -23,6 +23,8 @@
急单
+ 师傅报价
+ 用户定价
{{ o.service_name }}
¥{{ o.pay_amount }}
@@ -36,7 +38,7 @@
{{ o.left_seconds > 0 ? ('剩余 ' + countdown(o.left_seconds)) : '即将关闭' }}
我要报价({{ o.quote_count }})
- 立即抢单
+ {{ o.price_type === 'custom' ? '按此价接单' : '立即抢单' }}
@@ -64,7 +66,8 @@
const typeTabs = [
{ key: 'all', name: '全部订单' },
{ key: 'fixed', name: '一口价' },
- { key: 'quote', name: '报价订单' }
+ { key: 'quote', name: '报价订单' },
+ { key: 'custom', name: '用户定价' }
];
const sortTabs = [
{ key: 'new', name: '最新' },
@@ -147,6 +150,9 @@
.item { background: #fff; border-radius: 20rpx; margin-bottom: 20rpx; padding: 22rpx 24rpx; box-shadow: 0 6rpx 20rpx rgba(240,129,31,0.06); }
.hd { display: flex; align-items: center; padding-bottom: 14rpx; border-bottom: 1rpx solid #F4F4F4; }
.tag-urgent { padding: 0 12rpx; line-height: 34rpx; border-radius: 8rpx; background: #FDEEEB; color: #E8331B; font-size: 20rpx; margin-right: 10rpx; }
+ .tag-mode { padding: 0 12rpx; line-height: 34rpx; border-radius: 8rpx; font-size: 20rpx; margin-right: 10rpx; }
+ .tag-mode.quote { background: #F0EDFF; color: #5B3FD8; }
+ .tag-mode.custom { background: #E9F7EE; color: #2FA84F; }
.svc { flex: 1; font-size: 30rpx; font-weight: 700; color: #1F1F1F; }
.amt { font-size: 32rpx; font-weight: 700; color: #F0710D; }
.bd { display: flex; flex-direction: column; padding: 16rpx 0; }
diff --git a/pages/order/create.vue b/pages/order/create.vue
index 65c8b8c..419db95 100644
--- a/pages/order/create.vue
+++ b/pages/order/create.vue
@@ -6,11 +6,38 @@
{{ svc ? svc.name : '' }}
{{ svc ? svc.price_text : '' }}
-
+
{{ urgent ? '已加急 +20%' : '加急' }}
+
+
+ 选择下单方式
+
+
+ {{ m.name }}
+ {{ m.desc }}
+ ✓
+
+
+ {{ modeNote }}
+
+
+ 我的出价
+
+ ¥
+
+
+
+
+
服务地址
@@ -61,22 +88,42 @@
- 费用明细
- 基础价¥{{ amount.base_amount }}
- 楼层费¥{{ amount.floor_amount }}
- 加急费¥{{ amount.urgent_amount }}
- 应付合计¥{{ amount.pay_amount }}
+ {{ priceType === 'quote' ? '费用预估' : '费用明细' }}
+
+ {{ priceType === 'custom' ? '您的出价' : '基础价' }}
+ ¥{{ amount.base_amount }}
+
+
+ 楼层费
+ ¥{{ amount.floor_amount }}
+
+
+ 加急费
+ ¥{{ amount.urgent_amount }}
+
+
+ 优惠券抵扣
+ -¥{{ amount.discount_amount }}
+
+
+ {{ priceType === 'quote' ? '参考合计' : '应付合计' }}
+ ¥{{ amount.pay_amount }}
+
+ 先支付参考价,选定师傅报价后按最终报价结算
+ 自主定价为含楼层/加急的总价,师傅接单即按此价服务
- 合计¥{{ amount ? amount.pay_amount : 0 }}
- {{ submitting ? '提交中...' : '提交并支付' }}
+ {{ priceType === 'quote' ? '参考价' : '合计' }}¥{{ amount ? amount.pay_amount : 0 }}
+
+ {{ submitting ? '提交中...' : (priceType === 'quote' ? '发布需求' : '提交并支付') }}
+