103 lines
3.5 KiB
C#
103 lines
3.5 KiB
C#
using Plugin.Permissions;
|
|
using Plugin.Permissions.Abstractions;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Threading.Tasks;
|
|
using Xamarin.Forms;
|
|
using Xamarin.Forms.Xaml;
|
|
using XXCpzs.helper;
|
|
using XXCpzs.Models;
|
|
using XXCpzs.ViewModels;
|
|
using ZXing.Mobile;
|
|
|
|
namespace XXCpzs.Views
|
|
{
|
|
[XamlCompilation(XamlCompilationOptions.Compile)]
|
|
public partial class PageHuanHuo : ContentPage
|
|
{
|
|
|
|
private HuanHuoViewModel ViewModel;
|
|
private int CauseId = 1;
|
|
private UserInfo userInfo;
|
|
private int DeviceId = 1;
|
|
public PageHuanHuo(UserInfo userInfo)
|
|
{
|
|
InitializeComponent();
|
|
this.userInfo = userInfo;
|
|
this.BindingContext = ViewModel = new HuanHuoViewModel(userInfo.uid);
|
|
}
|
|
|
|
private void OnCauseSelectedIndexChangedAsync(object sender, EventArgs e)
|
|
{
|
|
var picker = (Picker)sender;
|
|
int selectedIndex = picker.SelectedIndex;
|
|
if (selectedIndex != -1)
|
|
{
|
|
CauseId = ViewModel.CauseItems[selectedIndex].id;
|
|
|
|
}
|
|
}
|
|
private async void Button_ClickedAsync(object sender, EventArgs e)
|
|
{
|
|
if (this.CauseId == 0)
|
|
{
|
|
await DisplayAlert("注意", "请选择产品 换货 的原因", "OK"); return;
|
|
}
|
|
if (userInfo == null && userInfo.uid != 0 && SerialNumber.Text != string.Empty && NewSerialNumber.Text != string.Empty)
|
|
{
|
|
var request = await HttpHelper.RequestPost(20,
|
|
new Dictionary<string, string>{
|
|
{"Sn", SerialNumber.Text},
|
|
{"NewSn", NewSerialNumber.Text},
|
|
{"Uid", userInfo.uid.ToString()},
|
|
{"CauseId", CauseId.ToString()},
|
|
{"deviceId", this.DeviceId.ToString()}
|
|
});
|
|
if (request.Code == 200)
|
|
{
|
|
ViewModel.Items.Add(new ResultModel() { Code = request.Code, Data = request.Data, Msg = request.Msg });
|
|
}
|
|
else
|
|
{
|
|
await DisplayAlert("访问出错", request.Msg, "OK");
|
|
}
|
|
}
|
|
}
|
|
private async void OnScan(object sender, EventArgs e)
|
|
{
|
|
if (await CheckPerssion())
|
|
{
|
|
var scanner = new MobileBarcodeScanner();
|
|
var result = await scanner.Scan();
|
|
if (result != null)
|
|
{
|
|
SerialNumber.Text = result.Text;
|
|
}
|
|
}
|
|
}
|
|
private async void OnScan1(object sender, EventArgs e)
|
|
{
|
|
if (await CheckPerssion())
|
|
{
|
|
var scanner = new MobileBarcodeScanner();
|
|
var result = await scanner.Scan();
|
|
if (result != null)
|
|
{
|
|
NewSerialNumber.Text = result.Text;
|
|
}
|
|
}
|
|
}
|
|
private async Task<bool> CheckPerssion()
|
|
{
|
|
var current = CrossPermissions.Current;
|
|
//检查权限
|
|
var status = await current.CheckPermissionStatusAsync(Permission.Camera);
|
|
if (status != PermissionStatus.Granted)
|
|
{
|
|
var result = await current.RequestPermissionsAsync(Permission.Camera);
|
|
status = result[Permission.Camera];
|
|
}
|
|
return status == PermissionStatus.Granted;
|
|
}
|
|
}
|
|
} |