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

93 lines
3.1 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 PageRuCang : ContentPage
{
RuCangViewModel ViewModel;
private int Uid = 0;
private int deviceId = 1;
private UserInfo userInfo;
public PageRuCang(UserInfo userInfo)
{
InitializeComponent();
this.Uid = userInfo.uid;
this.userInfo = userInfo;
this.BindingContext = ViewModel = new RuCangViewModel(userInfo);
}
private int CangkuId = 0;
void OnBumenPickerSelectedIndexChangedAsync(object sender, EventArgs e)
{
var picker = (Picker)sender;
int selectedIndex = picker.SelectedIndex;
if (selectedIndex != -1)
{
CangkuId = ViewModel.CangKuItems[selectedIndex].id;
}
}
private async void Button_ClickedAsync(object sender, EventArgs e)
{
if (this.CangkuId == 0)
{
await DisplayAlert("注意", "请选择产品要存放的仓库", "OK"); return;
}
if (Uid != 0 && SerialNumber.Text != string.Empty)
{
Dictionary<string, string> _body = new Dictionary<string, string>{
{"Sn", SerialNumber.Text},
{"Uid", this.Uid.ToString()},
{"CangkuId", this.CangkuId.ToString()},
{"deviceId", this.deviceId.ToString()}
};
var request = await HttpHelper.RequestPost(10, _body);
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;
Button_ClickedAsync(sender, e);
}
}
}
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;
}
}
}