“虞渠成” cb14d1a847 debug
2026-06-26 13:29:59 +08:00

107 lines
3.4 KiB
C#

using System;
using System.Collections;
using System.Collections.Generic;
using System.Threading.Tasks;
using Kill.Managers;
using Kill.Network;
using Kill.UI.Components;
using UnityEngine;
using UnityEngine.UI;
namespace Kill.UI.Pages
{
public class ShareDevicePage : MonoBehaviour
{
public InputField userIdInput;
public Button shareButton;
public ScanQRcode scanQRcode;
public Button backButton;
void Start()
{
UIManager.Instance.RegisterBackAction(Back);
backButton.onClick.RemoveAllListeners();
backButton.onClick.AddListener(Back);
userIdInput.text = "";
shareButton.onClick.RemoveAllListeners();
shareButton.onClick.AddListener(async () => await Share());
scanQRcode.OnQRCodeScanned += ScanOver;
}
public void BeginScan()
{
scanQRcode.scanType = ScanQRcode.ScanType.Other;
scanQRcode.gameObject.SetActive(true);
}
public void ScanOver(string scannedData)
{
userIdInput.text = scannedData;
scanQRcode.gameObject.SetActive(false);
}
public void Back()
{
UIManager.Instance.RegisterBackAction(GetComponentInParent<DeviceInfoPage>().Back);
Destroy(gameObject);
}
public async Task Share()
{
string targetUserId = userIdInput.text.Trim();
if (string.IsNullOrEmpty(targetUserId))
{
ToastUI.Show("100204");
return;
}
// 调用后端接口共享设备
LoadingUI.Show();
var requestData = new ShareDeviceRequest
{
device_sn = DataManager.Instance.selectedDevice.ble_mac,
target_user_id = targetUserId,
owner_id = DataManager.Instance.userInfo.id
};
try
{
var response = await NetworkCtrl.Instance.Post<NoDataResponse>("/api/v1/device/share", requestData);
LoadingUI.Hide();
ResponseCodeHandler.HandleResponse(response,
onSuccess: (data) =>
{
Debug.Log("设备共享成功");
ToastUI.Show("100205");
Back();
},
onError: (code, msg) =>
{
//610 重复分享
//404 用户不存在
//608 已达上限
switch(code)
{
case 404:
ToastUI.Show("100282");
break;
case 610:
ToastUI.Show("100299");
break;
case 608:
ToastUI.Show("100298");
break;
default:
ToastUI.Show("100282");
break;
}
}
);
}
catch (Exception ex)
{
LoadingUI.Hide();
Debug.LogError("设备共享失败: " + ex.Message);
}
}
}
}