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 PageResale : ContentPage { private ResaleViewModel ViewModel; private UserInfo userInfo; private int CauseId = 1; private int DeviceId = 1; public PageResale(UserInfo userInfo) { InitializeComponent(); this.userInfo = userInfo; this.BindingContext = ViewModel = new ResaleViewModel(userInfo.uid); } 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 && SerialNumber.Text != null) { Dictionary _body = new Dictionary{ {"Sn", SerialNumber.Text}, {"Uid", userInfo.uid.ToString()}, {"CauseId", CauseId.ToString()}, {"deviceId", this.DeviceId.ToString()} }; var request = await HttpHelper.RequestPost(18, _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; } } }