Files
xxcpzs/XXCpzs/Views/PageHuanHuo.xaml.cs
2020-04-03 11:55:02 +08:00

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;
}
}
}