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 _body = new Dictionary{ {"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 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; } } }