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 PageChuCang : ContentPage { ChuCangViewModel ViewModel; private int Uid = 0; private int MubiaoId = 0; private int deviceId = 1; private UserInfo userInfo; public PageChuCang(UserInfo userInfo) { InitializeComponent(); this.Uid = userInfo.uid; this.userInfo = userInfo; this.BindingContext = ViewModel = new ChuCangViewModel(userInfo); } void OnBumenPickerSelectedIndexChangedAsync(object sender, EventArgs e) { var picker = (Picker)sender; int selectedIndex = picker.SelectedIndex; if (selectedIndex != -1) { MubiaoId = ViewModel.CangKuItems[selectedIndex].id; } } private async void Button_ClickedAsync(object sender, EventArgs e) { if (this.MubiaoId == 0) { await DisplayAlert("注意", "请选择产品要发往的目的地", "OK"); return; } if (Uid != 0 && SerialNumber.Text != string.Empty) { Dictionary _body = new Dictionary{ {"Sn", SerialNumber.Text}, {"Uid", this.Uid.ToString()}, {"MubiaoId", this.MubiaoId.ToString()}, {"deviceId", this.deviceId.ToString()} }; var request = await HttpHelper.RequestPost(12, _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; } } } 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; } } }