|
|
|
@ -30,6 +30,7 @@ type TableStatus = 'available' | 'using' | 'waiting' | 'reserved' |
|
|
|
// 台球桌数据接口
|
|
|
|
// 台球桌数据接口
|
|
|
|
interface BilliardTable { |
|
|
|
interface BilliardTable { |
|
|
|
id: string |
|
|
|
id: string |
|
|
|
|
|
|
|
grpSn?: string // 设备编码,接口对接后必填
|
|
|
|
name: string |
|
|
|
name: string |
|
|
|
status: TableStatus |
|
|
|
status: TableStatus |
|
|
|
waitTime?: string |
|
|
|
waitTime?: string |
|
|
|
@ -50,6 +51,7 @@ interface BilliardCategory { |
|
|
|
// 棋牌桌数据接口
|
|
|
|
// 棋牌桌数据接口
|
|
|
|
interface ChessTable { |
|
|
|
interface ChessTable { |
|
|
|
id: string |
|
|
|
id: string |
|
|
|
|
|
|
|
grpSn?: string // 设备编码,接口对接后必填
|
|
|
|
name: string |
|
|
|
name: string |
|
|
|
status: TableStatus |
|
|
|
status: TableStatus |
|
|
|
statusText?: string |
|
|
|
statusText?: string |
|
|
|
@ -212,17 +214,27 @@ const StoreDetail = () => { |
|
|
|
}) |
|
|
|
}) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 进入开台页面
|
|
|
|
// 进入开台页面 - 必须经过 qrHandler 调用 getTableInfo,确保 tableStore.scanInfo 正确初始化
|
|
|
|
const handleStartTable = (tableId: string) => { |
|
|
|
const handleStartTable = (grpSn?: string) => { |
|
|
|
|
|
|
|
if (!grpSn) { |
|
|
|
|
|
|
|
// 门店详情接口尚未对接,grpSn 暂时不可用
|
|
|
|
|
|
|
|
Taro.showToast({ title: '设备信息暂未加载', icon: 'none' }) |
|
|
|
|
|
|
|
return |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
const qrContent = JSON.stringify({ type: 'table_start', grpSn }) |
|
|
|
Taro.navigateTo({ |
|
|
|
Taro.navigateTo({ |
|
|
|
url: '/pageScan/startTable/index?tableId=' + tableId |
|
|
|
url: `/pages/qrHandler/index?qrContent=${encodeURIComponent(qrContent)}` |
|
|
|
}) |
|
|
|
}) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 进入预约开台页面
|
|
|
|
// 进入预约开台页面
|
|
|
|
const handleAppointmentStart = (tableId: string) => { |
|
|
|
const handleAppointmentStart = (grpSn?: string) => { |
|
|
|
|
|
|
|
if (!grpSn) { |
|
|
|
|
|
|
|
Taro.showToast({ title: '设备信息暂未加载', icon: 'none' }) |
|
|
|
|
|
|
|
return |
|
|
|
|
|
|
|
} |
|
|
|
Taro.navigateTo({ |
|
|
|
Taro.navigateTo({ |
|
|
|
url: '/pageStore/appointmentStart/index?tableId=' + tableId |
|
|
|
url: '/pageStore/appointmentStart/index?grpSn=' + grpSn |
|
|
|
}) |
|
|
|
}) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@ -375,7 +387,7 @@ const StoreDetail = () => { |
|
|
|
// 单个按钮
|
|
|
|
// 单个按钮
|
|
|
|
<Text |
|
|
|
<Text |
|
|
|
className="table_btn_single" |
|
|
|
className="table_btn_single" |
|
|
|
onClick={() => table.buttons[0].type === 'reserve' ? handleReserve(table.id) : handleStartTable(table.id)} |
|
|
|
onClick={() => table.buttons[0].type === 'reserve' ? handleReserve(table.id) : handleStartTable(table.grpSn)} |
|
|
|
> |
|
|
|
> |
|
|
|
{table.buttons[0].text} |
|
|
|
{table.buttons[0].text} |
|
|
|
</Text> |
|
|
|
</Text> |
|
|
|
@ -386,7 +398,7 @@ const StoreDetail = () => { |
|
|
|
<Text |
|
|
|
<Text |
|
|
|
key={btnIndex} |
|
|
|
key={btnIndex} |
|
|
|
className="table_btn" |
|
|
|
className="table_btn" |
|
|
|
onClick={() => btn.type === 'reserve' ? handleReserve(table.id) : handleStartTable(table.id)} |
|
|
|
onClick={() => btn.type === 'reserve' ? handleReserve(table.id) : handleStartTable(table.grpSn)} |
|
|
|
> |
|
|
|
> |
|
|
|
{btn.text} |
|
|
|
{btn.text} |
|
|
|
</Text> |
|
|
|
</Text> |
|
|
|
@ -431,9 +443,9 @@ const StoreDetail = () => { |
|
|
|
<View className="table_content"> |
|
|
|
<View className="table_content"> |
|
|
|
<Text className="table_name">{table.name}</Text> |
|
|
|
<Text className="table_name">{table.name}</Text> |
|
|
|
{table.status === 'available' ? ( |
|
|
|
{table.status === 'available' ? ( |
|
|
|
<Text className="table_btn_single" onClick={() => handleStartTable(table.id)}>{table.buttonText}</Text> |
|
|
|
<Text className="table_btn_single" onClick={() => handleStartTable(table.grpSn)}>{table.buttonText}</Text> |
|
|
|
) : table.status === 'reserved' ? ( |
|
|
|
) : table.status === 'reserved' ? ( |
|
|
|
<Text className="table_btn_single" onClick={() => handleAppointmentStart(table.id)}>{table.buttonText}</Text> |
|
|
|
<Text className="table_btn_single" onClick={() => handleAppointmentStart(table.grpSn)}>{table.buttonText}</Text> |
|
|
|
) : ( |
|
|
|
) : ( |
|
|
|
<Text className="table_status"> |
|
|
|
<Text className="table_status"> |
|
|
|
{table.statusText} |
|
|
|
{table.statusText} |
|
|
|
|