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

90 lines
3.0 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 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<string, string> _body = new Dictionary<string, string>{
{"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<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;
}
}
}