初始化

This commit is contained in:
2025-11-25 17:41:24 +08:00
commit 4cdf0f0f85
3383 changed files with 1050962 additions and 0 deletions

View File

@@ -0,0 +1,31 @@
@using Face.Web.Areas.App.Models;
@{
Layout = null;
List<FileDetails> Akplist = (List<FileDetails>)ViewData["Akplists"];
}
<div class="table-responsive">
<table class="table table-bordered table-hover ">
<tbody>
@if (Akplist.Count != 0)
{
<tr class="table table-striped ">
<td>文件名</td>
<td>文件大小</td>
<td>文件日期</td>
</tr>
for (int i = 0; i < Akplist.Count; i++)
{
<tr onclick="OnShow('@Akplist[i].Filename')">
<td><a>@Akplist[i].Filename</a></td>
<td><a>@Akplist[i].FileSize</a></td>
<td><a>@Akplist[i].UploadDate</a></td>
</tr>
}
}
</tbody>
</table>
</div>
<script>
</script>

View File

@@ -0,0 +1,94 @@
@using Face.Domain.Entities;
@using Face.Web.Areas.App.Models
@{
Layout = null;
//List<Face.Domain.Entities.Hotels> Hotellist = Face.Services.Cache.CacheHelp.GetHotelslist();
}
<style>
#btnaddPLineShow {
background-color: #008CBA;
border: none;
color: white;
padding: 5px 20px;
text-align: center;
text-decoration: none;
display: inline-block;
font-size: 16px;
}
</style>
<section class="content" style="padding:0px;">
<div class="container-fluid">
<div class="row">
<div class="col-md-12">
<div class="card">
<div class="card-header">
<div class="card-tools">
<button type="button" class="btn btn-tool" data-card-widget="remove" title="Remove">
<i class="fas fa-times"></i>
</button>
</div>
</div>
<div class="ibox float-e-margins">
<div class="ibox-title">
<h5 id="SNno">人脸机sn号@Session["StrNo"]</h5>
<div class="ibox-tools">
<a class="collapse-link-partial">
</a>
<a class="close-link-partial">
</a>
</div>
</div>
</div>
<div class="card-body">
<select class="form-control" id="OrgIds">
@{List<HotelsItem> Hotellist = (List<HotelsItem>)Session["qxHotels"];}
@foreach (var item in Hotellist)
{
<option class="ComboBox" value="@item.HotelId" )>
@item.HotelName
</option>
}
</select>
<button class="btn btn-xs btn-success" id="btnaddPLineShow" onclick="accretion()">为酒店添加人脸机</button>
</div>
</div>
</div>
</div>
</div>
</section>
<script>
function accretion() {
var myType = document.getElementById("OrgIds");//获取select对象
var index = myType.selectedIndex;//获取选项中的索引selectIndex表示的是当前所选中的index
var code = myType.options[index].value;//获取酒店编号
var objects = {
hotel: code,
faceNo: "@Session["StrNo"]"
};
$.ajax({
url: "/App/Face/addfacehotel",
type: "post",
data: objects,
async: true,
success: function (res) {
if (res.Status == 200) {
alert(res.Message)
var link = "/App/Face/testFaceall";
window.location.href = link;
} else
{
alert('添加失败')
}
}
});
}
</script>

View File

@@ -0,0 +1,125 @@

@{
Layout = null;
List<Face.Domain.Entities.Hotels> Hotellist = (List<Face.Domain.Entities.Hotels>)ViewData["hh"];
}
<style>
#btnaddPLineShow {
background-color: #008CBA;
border: none;
color: white;
padding: 5px 20px;
text-align: center;
text-decoration: none;
display: inline-block;
font-size: 16px;
}
</style>
<section class="content" style="padding:0px;">
<div class="container-fluid">
<div class="row">
<div class="col-md-12">
<div class="card">
<div class="card-header">
<div class="card-tools">
<button type="button" class="btn btn-tool" data-card-widget="remove" title="Remove">
<i class="fas fa-times"></i>
</button>
</div>
</div>
<div class="ibox float-e-margins">
<div class="ibox-title">
<h5 id="SNno">人脸机sn号@Session["SnoNO"]</h5>
<div class="ibox-tools">
<a class="collapse-link-partial">
</a>
<a class="close-link-partial">
</a>
</div>
</div>
</div>
<div class="card-body">
<select class="form-control" id="hotelShow" style="width:250px; height:35px;float:left">
<option class="ComboBox" value="@Session["hotelcode"]" )>
@Hotellist.Single(s => s.Id == int.Parse(Session["hotelcode"].ToString())).Name
</option>
</select>
<select class="form-control" id="RoomShow" style="width:250px; height:35px; float:left;display:none;">
</select>
<button class="btn btn-xs btn-success" id="btnaddPLineShow" onclick="accretion()">为房间添加人脸机</button>
</div>
</div>
</div>
</div>
</div>
</section>
<script>
$(function () {
Show();
})
function accretion() {
var myType = document.getElementById("hotelShow");//获取select对象
var index = myType.selectedIndex;//获取选项中的索引selectIndex表示的是当前所选中的index
var code = myType.options[index].value;//获取酒店编号
if (code != 0) {
var rommNo = document.getElementById("RoomShow").value;//获取房间号
console.log(rommNo)
var objects = {
hotel: code,
romm: rommNo,
faceNo: "@Session["SnoNO"]"
};
$.ajax({
url: "/App/Face/addfaceroom",
type: "post",
data: objects,
async: true,
success: function (res) {
if (res.Status == 200) {
alert('添加成功')
var link = "/App/Face/testFaceall";
window.location.href = link;
} else {
alert('添加失败')
}
}
});
}
else {
alert('请选择酒店')
}
}
function Show() {
var myType = document.getElementById("hotelShow");//获取select对象
var index = myType.selectedIndex;//获取选项中的索引selectIndex表示的是当前所选中的index
var code = myType.options[index].value;//获取酒店编号
document.getElementById('RoomShow').innerHTML = "";
$.ajax({
url: "/App/Face/officialHotel",
type: "post",
data: { "hotelId": code },
success: function (res) {
debugger
res.forEach(x => {
$('#RoomShow').append('<option value=' + x.ID + '>' + x.ROOM_NUMBER + '</option>')
});
}
});
$('#RoomShow').show();
};
</script>

View File

@@ -0,0 +1,96 @@

@{
ViewBag.Title = "ClientInformation";
Layout = "~/Areas/App/Views/Shared/_Layout.cshtml";
}
<style>
.table > thead > tr > th, .table > tbody > tr > th, .table > tfoot > tr > th, .table > thead > tr > td, .table > tbody > tr > td, .table > tfoot > tr > td {
padding: 0px;
border: 0px;
}
.table > tbody > tr > td, .table > tbody > tr > th, .table > tfoot > tr > td, .table > tfoot > tr > th, .table > thead > tr > td, .table > thead > tr > th {
padding: 5px;
}
#style-format {
float: right;
}
#btnaddPLine {
float: right;
}
</style>
<div class="content-wrapper">
<section class="content" style="padding:0px;">
<div class="container-fluid">
<div class="row">
<div class="col-sm-8">
<!-- Default box -->
<div class="card">
<div class="card-header">
<div></div>
<div class="card-tools">
<button class="btn btn-md btn-primary" type="button" id="btnaddPLine" onclick="userDetailss()">添加管理员</button>
<button type="button" class="btn btn-tool" data-card-widget="collapse" title="Collapse"></button>
<button type="button" class="btn btn-tool" data-card-widget="remove" title="Remove">
<i class="fas fa-times"></i>
</button>
</div>
</div>
<div class="card-body">
@*条件筛选*@
</div>
@*内容筛选*@
<div class="ibox-content" style="padding:0px;">
<div id="project">
<table class="table dataTables-example" border="0">
<tbody class="tbodyList">
<tr>
<td rowspan="5" style="margin:0px;padding:0px;width:75px">
<input type="hidden" id="ID" value="2">
<div class="lightBoxGallery">
</div>
</td>
<td style="text-align:left;width:60%;">编号:<span class="gray"></span></td>
<td style="color:#6495ED;"><strong>asdas</strong></td>
</tr>
<tr>
<td style="font-size:15px;">创建时间:<span class="gray">asd</span> </td>
<td>
</td>
</tr>
<tr>
<td colspan="2" style="font-size:15px;">
属于部门:<span class="gray">asdasd)</span>
</td>
</tr>
<tr></tr>
<tr>
<td rowspan="2" colspan="2" style="font-size:15px;">
是否有效:<span class="gray">
xsd
</span>
</tr>
</table>
</div>
</div>
<!-- /.card-body -->
</div>
</div>
<!-- /.card -->
<div class="col-sm-4" id="userDetailsBox">
</div>
</div>
</div>
</section>
</div>

View File

@@ -0,0 +1,7 @@

@{
ViewBag.Title = "DeletePeople";
Layout = "~/Areas/App/Views/Shared/_Layout.cshtml";
}

View File

@@ -0,0 +1,19 @@
@model List<Face.Domain.Entities.pmsLog>
@if (Model != null)
{
foreach (var item in Model)
{
<tbody class="tbodyList">
<tr>
<td style="text-align:left;width:30%;">@(item.step==3? "Tx" : "Rx")时间:</td>
<td style="">@(item.step==3? "Tx" : "Rx")内容:</td>
</tr>
<tr>
<td style="text-align: left; width: 30%;"><span class="gray">@item.Creationtime</span></td>
<td style="word-break: break-all;"><span style="color:#0094ff">@item.Data</span></td>
</tr>
</tbody>
}
}

View File

@@ -0,0 +1,596 @@
@model PagedList.IPagedList<Face.Domain.Entities.DeviceManage>
@using PagedList.Mvc;
@using Face.Web.Areas.App.Models;
@using Face.Domain.Entities;
@using Face.Domain.Application
@{
ViewBag.Title = "Faceall";
Layout = "~/Areas/App/Views/Shared/_Layout.cshtml";
List<Face.Domain.Entities.Hotels> Hotellist =(List<Face.Domain.Entities.Hotels>) Session["qxHotels"];
List<AuthItem> authItem = (List<AuthItem>)Session["authItems"];
List<TBL_ROOM_BASIC_INFO> ZongRoominfo = (List<TBL_ROOM_BASIC_INFO>)Session["ZongRoominfo"];
}
@*<script src="~/Scripts/jquery-3.3.1.js"></script>*@
<style>
.table > thead > tr > th, .table > tbody > tr > th, .table > tfoot > tr > th, .table > thead > tr > td, .table > tbody > tr > td, .table > tfoot > tr > td {
padding: 0px;
border: 0px;
}
.table > tbody > tr > td, .table > tbody > tr > th, .table > tfoot > tr > td, .table > tfoot > tr > th, .table > thead > tr > td, .table > thead > tr > th {
padding: 3px;
}
#order {
border-top: solid 2px #ddd;
}
.chaxun {
text-indent: 5px;
}
.PagedList-skipToLast page-item {
display: none;
}
</style>
<div class="content-wrapper">
<section class="content" style="padding:0px;">
<div class="container-fluid">
<div class="row">
<div class="col-sm-8">
<!-- Default box -->
<div class="card">
<div class="card-header">
<span style="font-size:30px">所有人脸机信息</span>
<div class="card-tools">
<button type="button" class="btn btn-tool" data-card-widget="collapse" title="Collapse"></button>
<button type="button" class="btn btn-tool" data-card-widget="remove" title="Remove">
<i class="fas fa-times"></i>
</button>
</div>
</div>
<div class="card-body">
<input type="text" placeholder="人脸机筛选" name="username" style="height:35px;margin-left:5px;" id="txtOpname"><button class="btn btn-md btn-primary" id="Btnmodify" onclick="search()">搜索</button>
@*<input type="text" placeholder="房间筛选" name="username" style="height:35px;margin-left:5px;" id="txtroom"><button class="btn btn-md btn-primary" id="Btnmodify" onclick="selectroom()">搜索</button>*@
<select class="form-control" id="OrgId" style="width:300px; float:left">
@if (ViewData["hotelson"] != null && int.Parse(ViewData["hotelson"].ToString()) != 0 && ViewData["hotelson"].ToString() != "-1")
{
<option value="@ViewData["hotelson"]">
@(Hotellist.Single(s => s.Id == int.Parse(ViewData["hotelson"].ToString())).Name)
</option>
}
<option value="0">
所有酒店
</option>
@{
List<int> sum = (List<int>)Session["list"];
foreach (int item in sum)
{
foreach (var iten in Hotellist)
{
if (iten.Id == item)
{
if (ViewData["hotelson"] != null)
{
if (iten.Id != int.Parse(ViewData["hotelson"].ToString()))
{
<option class="ComboBox" value="@iten.Id" )>
@iten.Name
</option>
}
}
else
{
<option class="ComboBox" value="@iten.Id" )>
@iten.Name
</option>
}
}
}
}
for (int i = 0; i < authItem.Count; i++)
{
if (authItem[i].AuthorityId == 3)
{
<option value="-1" @(ViewData["hotelson"] != null && ViewData["hotelson"].ToString() == "-1" ? "selected='selected'" : "")>
未绑定酒店
</option>
break;
}
}
}
</select>
<select class="form-control" id="OrgId3" style="width:300px; float:left">
<option value="-1" @(ViewData["states"] != null && int.Parse(ViewData["states"].ToString()) == -1 ? "selected='selected'" : "")>
全部人脸机
</option>
<option value="1" @(ViewData["states"] != null && int.Parse(ViewData["states"].ToString()) == 1 ? "selected='selected'" : "")>在线</option>
<option value="0" @(ViewData["states"] != null && int.Parse(ViewData["states"].ToString()) == 0 ? "selected='selected'" : "")>不在线</option>
</select>
<select class="form-control" id="OrgId2" style="width:300px; float:left">
<option value="0">
全部房间
</option>
<option value="1" @(ViewData["zhi"] != null && ViewData["zhi"].ToString() == "1" ? "selected='selected'" : "")>
未绑定房间
</option>
<option value="3" @(ViewData["zhi"] != null && ViewData["zhi"].ToString() == "3" ? "selected='selected'" : "")>
已绑定房间
</option>
@{
}
</select>
</div>
@*条件筛选*@
@*内容筛选*@
<div class="ibox-content" style="padding:0px;">
<div id="project">
<table class="table dataTables-example" border="0" id="order">
@if (Model != null && ZongRoominfo != null)
{
foreach (var item in Model)
{
<tbody class="tbodyList" onclick="Show(this)">
<tr>
<td rowspan="5" style="margin:0px;padding:0px; ">
<input type="hidden" id="ID" value="2">
<div class="lightBoxGallery">
</div>
</td>
<td id="mobile" style="text-align:left; ">编号: @Html.DisplayFor(modelItem => item.Facelid)<span class="gray"></span></td>
<td style="" id="mobile2">
状态:<span style="color:#0094ff" id="@item.SerialNo">
@{if (item.Status == true)
{<strong>在线</strong>}
else
{<strong style="color:crimson">离线</strong>}
}
</span>
</td>
</tr>
<tr></tr>
<tr>
<td>
创建时间:
@if (item.CreatedDate != null)
{
@item.CreatedDate.Value.ToString("yyyy/MM/dd")
}
</td>
@{ TBL_ROOM_BASIC_INFO isok = ZongRoominfo.FirstOrDefault(s => s.ROOM_OLD_ID == item.RoomId); }
<td>绑定房间: @(item.RoomId.ToString() != "" ? (isok == null ? "" : isok.ROOM_NUMBER) : "无房间") </td>
@if (item.RoomId == null && item.RoomId.ToString() == "" && item.HotelCode != null && item.HotelCode != "")
{
<td><button class="btn btn-xs btn-success" id="btnaddPLine" onclick="addhotel('@item.SerialNo','@item.HotelCode')" style="background-color:cornflowerblue">绑定房间</button></td>
}
else if (item.RoomId != null && item.HotelCode != null)
{
<td><button class="btn btn-xs btn-success" id="btnaddPLine" onclick="unbundleBtn('@item.SerialNo','@item.HotelCode','@item.RoomId')" style="background-color:brown">解绑房间</button></td>
}
</tr>
<tr>
<td>SN号:@Html.DisplayFor(modelItem => item.SerialNo)</td>
<td>
故障状态:
@if (item.maintainStatus == 1)
{
<span style="color:crimson;cursor:hand" onclick="trouble(@item.Facelid)">故障</span>
}
else
{
<span style="color:#0094ff">正常</span>
}
</td>
@{
for (int i = 0; i < authItem.Count; i++)
{
if (authItem[i].AuthorityId == 4)
{
if (item.HotelCode != null && item.HotelCode != "")
{
if (item.Status == true)
{
<td><a href="#asd"></a><button class="btn btn-xs btn-success" id="btnaddPLine" onclick="transfer('@item.SerialNo','@item.HotelCode')">测试操作</button></td>
}
}
break;
}
}
}
</tr>
<tr>
<td>
绑定酒店: @(Html.DisplayFor(modelItem => item.HotelCode).ToString() != "" ? Hotellist.Single(s => s.Id == int.Parse(item.HotelCode)) != null ? Hotellist.Single(s => s.Id == int.Parse(item.HotelCode)).Name : "" : "")
</td>
@*<td>
人脸数量:
@{ int ser = 0;
foreach (var info in ViewBag.sungo)
{
if (info.Roomid == item.RoomId)
{
ser++;
}
}
}
<span>@ser</span>
</td>*@
<td>
开房状态:
@if (item.RoomId != null && item.RoomId != 0)
{
if (isok != null && isok.ToString() != "")
{
if (isok.ROOM_TYPE_ID == 2)
{
<span> 出租 </span>
}
else if (isok.ROOM_TYPE_ID == 4)
{
<span> 待租 </span>
}
else if (isok.ROOM_TYPE_ID == 8)
{
<span> 退房 </span>
}
else if (isok.ROOM_TYPE_ID == 16)
{
<span> 空房 </span>
}
}
else
{
<span></span>
}
}
</td>
@if (item.HotelCode != "" && item.HotelCode != null)
{
<td><a href="@Url.Action("Facetest", "Face")"></a> <button class="btn btn-xs btn-success" id="btnaddPLine" onclick="Unlinkhotel('@item.SerialNo','@item.HotelCode','@item.RoomId')" style="background-color:red">解绑酒店</button></td>
}
else
{
<td><a href="@Url.Action("Facetest", "Face")"></a> <button class="btn btn-xs btn-success" id="btnaddPLine" style="background-color:cornflowerblue" onclick="bingdihotel('@item.SerialNo')">绑定酒店</button></td>
}
</tr>
@{
List<CheckInInfo> ci = (List<CheckInInfo>)ViewData["sungo"];
foreach (var info in ci)
{
if (info.Roomid == item.RoomId)
{
<tr class="acet" style="border-top: 1px solid #0b93d5;">
<td></td>
<td><img id="images" style="height:50px;" src="/ImgServer/FileImage?ftp=1&&url=@info.picture">@info.Name</td>
@*<td>开房时间:@info.CheckTime</td>*@
<td></td>
</tr>
<tr class="acet">
<td></td>
<td>身份证:@info.IdNumber</td>
</tr>
}
}
}
</tbody>
}
}
</table>
<div style="text-align:center" class="chaxun" id="asd">
@*分页主要代码*@
共 @Model.PageCount 页,当前第 @Model.PageNumber 页
<nav aria-label="Contacts Page Navigation">
<ul class="pagination justify-content-center m-0">
@if (ViewData["TiaoJian"] != null)
{
string TiaoJian = ViewData["TiaoJian"].ToString();
@Html.PagedListPager(Model, page => Url.Action("Faceall", new { page, TiaoJian }), new PagedListRenderOptions() { DisplayItemSliceAndTotal = false, MaximumPageNumbersToDisplay = 5 });
}
else if (ViewData["hotelson"] != null)
{
string hotelson = ViewData["hotelson"].ToString();
@Html.PagedListPager(Model, page => Url.Action("Faceall", new { page, hotelson }), new PagedListRenderOptions() { DisplayItemSliceAndTotal = false, MaximumPageNumbersToDisplay = 5 })
}
else if (ViewData["notbing"] != null)
{
string notbing = ViewData["notbing"].ToString();
@Html.PagedListPager(Model, page => Url.Action("Faceall", new { page, notbing }), new PagedListRenderOptions() { DisplayItemSliceAndTotal = false, MaximumPageNumbersToDisplay = 5 })
}
else if (ViewData["zhi"] != null)
{
int zhi = int.Parse(ViewData["zhi"].ToString());
@Html.PagedListPager(Model, page => Url.Action("Faceall", new { page, zhi }), new PagedListRenderOptions() { DisplayItemSliceAndTotal = false, MaximumPageNumbersToDisplay = 5 })
}
else if (ViewData["states"] != null)
{
int state = int.Parse(ViewData["states"].ToString());
@Html.PagedListPager(Model, page => Url.Action("Faceall", new { page, state }), new PagedListRenderOptions() { DisplayItemSliceAndTotal = false, MaximumPageNumbersToDisplay = 5 })
}
else
{
@Html.PagedListPager(Model, page => Url.Action("Faceall", new { page }), new PagedListRenderOptions() { DisplayItemSliceAndTotal = false, MaximumPageNumbersToDisplay = 5 })
}
</ul>
</nav>
</div>
<div id="btn" onclick="tip()"></div>
</div>
</div>
</div>
</div>
<!-- /.card -->
<div class="col-sm-4" id="faceDetailsBox">
</div>
</div>
</div>
</section>
</div>
<script type="text/javascript">
$('.acet').hide();//隐藏
$(".pagination").addClass("pagination pagination-sm");
$(".pagination").children("li").addClass("page-item");
$(".page-item").children("a").addClass("page-link");
if ($(document).width() >= 764) {
}
else {
$(".content-wrapper *").css("font-size", "10px");
}
$(".pagination").addClass("pagination pagination-sm");
//$(".pagination").children("li").addClass("page-item");//分页样式
$(".page-item").children("a").addClass("page-link");
function transfer(sn, hotelcode) {
event.stopPropagation()
if ($(document).width() < 764)
{
$('html,body').animate({ scrollTop: $('#btn').offset().top }, 1); //页面滚动到底部
}
var data = {
faceNo: sn,
hotel: hotelcode
}
//var t = document.body.clientHeight;
//window.scroll({ top: t, left: 0, behavior: 'smooth' });
$.ajax({
url: "/App/Face/Facetest",
data: { data }, // data为String类型必须为 Key/Value 格式。
type: "post", // 提交方式
success: function (res) { // 请求成功后的回调函数其中的参数data为controller返回的map,也就是说然后通过data这个参数取JSON数据中的值
$("#faceDetailsBox").html(res)
}
});
};
function addhotel(sn) {
$.ajax({
url: "/App/Face/BingInfo",
data: { "sn": sn }, // data为String类型必须为 Key/Value 格式。
type: "post", // 提交方式
success: function (res) { // 请求成功后的回调函数其中的参数data为controller返回的map,也就是说然后通过data这个参数取JSON数据中的值
$("#faceDetailsBox").html(res)
}
});
}
function bingdihotel(sn) {
$.ajax({
url: "/App/Face/Bing",
data: { "StrNo": sn }, // data为String类型必须为 Key/Value 格式。
type: "post", // 提交方式
success: function (res) { // 请求成功后的回调函数其中的参数data为controller返回的map,也就是说然后通过data这个参数取JSON数据中的值
$("#faceDetailsBox").html(res)
}
});
}
/////////////////////////////
function tip() {//更新状态
$.ajax({
url: "/App/Face/Status",
type: "post", // 提交方式
dataType: "json",
success: function (res) {
res.forEach(x => {
$("#" + x.SerialNo).html(x.Status ? "<strong>在线</strong>" : "<strong>离线</strong>")
$("#" + x.SerialNo).css("color", x.Status ? "#0094ff" : "crimson")
});
}
});
}
var myVar;
function myFunction() {
myVar = setInterval(function () {
// IE浏览器
if (document.all) {
document.getElementById("btn").click();
}
// 其它浏览器
else {
var e = document.createEvent("MouseEvents");
e.initEvent("click", true, true);
document.getElementById("btn").dispatchEvent(e);
}
}, 20000);
}
function selectroom() {//查询房间号按钮
var src = document.getElementById("txtroom").value
var link = "/App/Face/Faceall" + '?TiaoJian=' + src
window.location.href = link;
}
function search() {//查询SN号按钮
var src = document.getElementById("txtOpname").value
var link = "/App/Face/Faceall" + '?TiaoJian=' + src
window.location.href = link;
}
myFunction();
$('#OrgId').change(function () {//查询酒店按钮
var myType = document.getElementById("OrgId");//获取select对象
var index = myType.selectedIndex;//获取选项中的索引selectIndex表示的是当前所选中的index
var code = myType.options[index].value;//获取酒店编号
var link = "/App/Face/Faceall" + '?hotelson=' + code
window.location.href = link;
})
function notallocation() {//查询没有绑定酒店的人脸机
var link = "/App/Face/Faceall" + '?notbing=' + 1
window.location.href = link;
}
$('#OrgId2').change(function () {//查询酒店按钮
var myType1 = document.getElementById("OrgId");//获取select对象
var index1 = myType1.selectedIndex;//获取选项中的索引selectIndex表示的是当前所选中的index
var code1 = myType1.options[index1].value;//获取酒店编号
var myType = document.getElementById("OrgId2");//获取select对象
var index = myType.selectedIndex;//获取选项中的索引selectIndex表示的是当前所选中的index
var code = myType.options[index].value;//获取酒店编号
if (code1 != 0) {
var link = "/App/Face/Faceall" + '?zhi=' + code + '&hotelson=' + code1
window.location.href = link;
} else {
var link = "/App/Face/Faceall" + '?zhi=' + code
window.location.href = link;
}
})
$('#OrgId3').change(function () {//查询酒店按钮
var myType1 = document.getElementById("OrgId");//获取select对象
var index1 = myType1.selectedIndex;//获取选项中的索引selectIndex表示的是当前所选中的index
var code1 = myType1.options[index1].value;//获取酒店编号
var myType = document.getElementById("OrgId3");//获取select对象
var index = myType.selectedIndex;//获取选项中的索引selectIndex表示的是当前所选中的index
var code = myType.options[index].value;//获取状态
var link = "/App/Face/Faceall" + '?state=' + code + '&hotelson=' + code1
window.location.href = link;
})
function addhotel(sn, jiu) {
var t = document.body.clientHeight;
window.scroll({ top: t, left: 0, behavior: 'smooth' });
var inse = {
faceNo: sn,
hotel: jiu
}
$.ajax({
url: "/App/Face/BingInfo",
data: inse, // data为String类型必须为 Key/Value 格式。
type: "post", // 提交方式
success: function (res) { // 请求成功后的回调函数其中的参数data为controller返回的map,也就是说然后通过data这个参数取JSON数据中的值
$("#faceDetailsBox").html(res)
}
});
}
function unbundleBtn(sn, hotels, room) {
var list = {
faceNo: sn,
romm: room,
hotel: hotels
}
var srt = confirm("确定要解绑房间吗?")
if (srt == true) {
$.ajax({
url: "/App/Face/unbundleoperate",
data: list,
type: "post",// 提交方式
success: function (res) {
if (res.Status == 200) {
console.log(res.Status)
alert('解绑成功')
var link = "/App/Face/Faceall" + '?page=' + @Session["page"];
window.location.href = link;
}
else {
alert('解绑失败请查看人脸机是否在线')
}
}
});
}
}
function Unlinkhotel(sn, hotels, room) {
var list = {
faceNo: sn,
romm: room,
hotel: hotels
}
var s = confirm("确定要解绑酒店?")
if (s == true) {
$.ajax({
url: "/App/Face/unbundlehotel",
data: list,
type: "post",// 提交方式
success: function (res) {
if (res.Status == 200) {
alert('解绑酒店成功')
var link = "/App/Face/Faceall" + '?page=' + @Session["page"];
window.location.href = link;
}
else {
alert('解绑失败请查看人脸机是否在线')
}
}
});
}
}
function trouble(id) {
var s = confirm("确定人工修复?")
if (s == true) {
$.ajax({
url: "/App/Face/faultmaintain",
data: { 'id': id },
type: "post",
success: function (res) {
if (res != null) {
alert('已正常')
var link = "/App/Face/Faceall" + '?page=' + @Session["page"];
window.location.href = link;
}
}
});
}
}
function Show(that) {
$(that).find('.acet').toggle();
}
</script>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,103 @@
@model List<Face.Domain.Application.FaceAll.facedevicerxtxinfo>
@using PagedList.Mvc;
@{
Layout = null;
}
<style>
.table > thead > tr > th, .table > tbody > tr > th, .table > tfoot > tr > th, .table > thead > tr > td, .table > tbody > tr > td, .table > tfoot > tr > td {
padding: 0px;
border: 0px;
}
.table > tbody > tr > td, .table > tbody > tr > th, .table > tfoot > tr > td, .table > tfoot > tr > th, .table > thead > tr > td, .table > thead > tr > th {
padding: 3px;
}
#order {
border-top: solid 2px #ddd;
}
.chaxun {
text-indent: 5px;
}
.PagedList-skipToLast page-item {
display: none;
}
</style>
<div id="project">
<table class="table dataTables-example" border="0" id="order" style="word-break: break-all;">
@if (Model != null)
{
foreach (var item in Model)
{
<tbody class="tbodyList">
<tr>
<td rowspan="5" style="margin:0px;padding:0px; ">
<input type="hidden" id="ID" value="2">
<div class="lightBoxGallery">
</div>
</td>
<td id="mobile" style="text-align:left; ">
<span style="color:#0094ff;">
@if (item.datatime != null)
{
@item.datatime.Value.ToString("yyyy/MM/dd HH:mm:ss")
}
</span>
</td>
<td style="" id="mobile2"><span style="color: darkgray;">序列号:</span><span style="color:#0094ff"><strong>@item.sn</strong></span>&nbsp;<span style="color: darkgray;">pmsid: @item.pmsid</span></td>
</tr>
<tr></tr>
<tr>
<td>
<span style="color: darkgray;">命令: </span><span style="color:#0094ff;">@item.cmd</span>
</td>
<td>
@{
string colorfinal = "#28a745;";
string strtext = "";
if (item.trresult == 0 && item.direction == "Tx")
{
colorfinal = "crimson";
strtext = "失败";
}
else
{
colorfinal = "#28a745;";
strtext = "成功";
}
}
<span style="color:@colorfinal">@item.direction</span><span style="color:@colorfinal">- @strtext</span>
</td>
</tr>
<tr>
<td colspan="2" style="color:darkgray;font-size:smaller;">@item.data</td>
</tr>
</tbody>
}
}
</table>
@*<div id="btn" onclick="tip()"></div>*@
<div>
<nav style="text-align:center;">
<ul class="pagination" id="page">
<li class="first" onclick="firstPage16('/App/Face/InquireFaceLogAll')"><a>&laquo;</a></li>
<li class="left"><a>…</a></li>
@for (int i = 0; i < ViewBag.allpage; i++)
{
<li class="pages" onclick="SpecifyPage16('/App/Face/InquireFaceLogAll',@(i+1))"><a>@(i + 1)</a></li>
}
<li class="right"><a>…</a></li>
<li class="finally"><a onclick="lastPage16('/App/Face/InquireFaceLogAll')">&raquo;</a></li>
</ul>
</nav>
</div>
</div>
<script>
$(".pagination").addClass("pagination pagination-sm");
$(".pagination").children("li").addClass("page-item");
$(".page-item").children("a").addClass("page-link");
</script>

View File

@@ -0,0 +1,358 @@
@model List<Face.Domain.Entities.DeviceManage>
@using PagedList.Mvc;
@using Face.Web.Areas.App.Models;
@using Face.Domain.Entities;
@using Face.Domain.Application
@{
List<Face.Domain.Entities.Hotels> Hotellist = SqlSugarBase.authoriydb.Queryable<Hotels>().ToList();
List<AuthItem> authItem = (List<AuthItem>)Session["authItems"];
List<TBL_ROOM_BASIC_INFO> ZongRoominfo = (List<TBL_ROOM_BASIC_INFO>)Session["ZongRoominfo"];
}
<style>
.table > thead > tr > th, .table > tbody > tr > th, .table > tfoot > tr > th, .table > thead > tr > td, .table > tbody > tr > td, .table > tfoot > tr > td {
padding: 0px;
border: 0px;
}
.table > tbody > tr > td, .table > tbody > tr > th, .table > tfoot > tr > td, .table > tfoot > tr > th, .table > thead > tr > td, .table > thead > tr > th {
padding: 3px;
}
#order {
border-top: solid 2px #ddd;
}
.chaxun {
text-indent: 5px;
}
.PagedList-skipToLast page-item {
display: none;
}
</style>
<div id="project">
<table class="table dataTables-example" border="0" id="order">
@if (Model != null && ZongRoominfo != null)
{
foreach (var item in Model)
{
<tbody class="tbodyList" onclick="Show(this)">
<tr>
<td rowspan="5" style="margin:0px;padding:0px; ">
<input type="hidden" id="ID" value="2">
<div class="lightBoxGallery">
</div>
</td>
<td id="mobile" style="text-align:left; ">编号: @item.Facelid<span class="gray"></span></td>
<td style="" id="mobile2">
状态:<span style="color:#0094ff" id="@item.SerialNo">
@{if (item.Status == true)
{<strong>在线</strong>}
else
{<strong style="color:crimson">离线</strong>}
}
</span>
</td>
</tr>
<tr></tr>
<tr>
<td>
创建时间:
@if (item.CreatedDate != null)
{
@item.CreatedDate.Value.ToString("yyyy/MM/dd")
}
</td>
@{ TBL_ROOM_BASIC_INFO isok = ZongRoominfo.FirstOrDefault(s => s.ROOM_OLD_ID == item.RoomId); }
<td>绑定房间: @(item.RoomId.ToString() != ""&& item.RoomId.ToString() != "0" ? (isok == null ? "" : isok.ROOM_NUMBER) : "无房间") </td>
@if ((item.RoomId == null || item.RoomId.ToString() == "" || item.RoomId.ToString() == "0") && item.HotelCode != null && item.HotelCode != "" && item.HotelCode != "0")
{
<td><button class="btn btn-xs btn-success" id="btnaddPLine" onclick="addhotel('@item.SerialNo','@item.HotelCode')" style="background-color:cornflowerblue">绑定房间</button></td>
}
else if (item.RoomId != null && item.HotelCode != null && item.RoomId != 0)
{
<td><button class="btn btn-xs btn-success" id="btnaddPLine" onclick="unbundleBtn('@item.SerialNo','@item.HotelCode','@item.RoomId')" style="background-color:brown">解绑房间</button></td>
}
</tr>
<tr>
<td>
SN号:@item.SerialNo
(REV:@if (item.APKVersion == " " || item.APKVersion == null)
{
<span>无,</span>
}
else
{
<span>@item.APKVersion</span>
}
厂牌:@if (item.Factory == " " || item.Factory == null)
{
<span>无</span>
}
else
{
<span>@item.Factory</span>
})
</td>
<td>
故障状态:
@if (item.maintainStatus == 1)
{
<span style="color:crimson;cursor:hand" onclick="trouble(@item.Facelid)">故障</span>
}
else
{
<span style="color:#0094ff">正常</span>
}
</td>
@{
for (int i = 0; i < authItem.Count; i++)
{
if (authItem[i].AuthorityId == 4)
{
if (item.HotelCode != null && item.HotelCode != "")
{
if (item.Status == true)
{
<td><a href="#asd"></a><button class="btn btn-xs btn-success" id="btnaddPLine" onclick="transfer('@item.SerialNo','@item.HotelCode')">测试操作</button></td>
}
}
break;
}
}
}
</tr>
<tr>
@if (item.HotelCode != null && item.HotelCode != "0")
{
<td>
绑定酒店: @(item.HotelCode.ToString() != "" && int.Parse(item.HotelCode) != 0 ? Hotellist.Single(s => s.Id == int.Parse(item.HotelCode)) != null ? Hotellist.Single(s => s.Id == int.Parse(item.HotelCode)).Name : "" : "")
</td>
}
<td>
开房状态:
@if (item.RoomId != null && item.RoomId != 0)
{
if (isok != null && isok.ToString() != "")
{
if (isok.RoomStatusID == 2)
{
<span> 出租 </span>
}
else if (isok.RoomStatusID == 4)
{
<span> 待租 </span>
}
else if (isok.RoomStatusID == 8)
{
<span> 退房 </span>
}
else if (isok.RoomStatusID == 16)
{
<span> 空房 </span>
}
}
else
{
<span></span>
}
}
</td>
@if (item.HotelCode != "" && item.HotelCode != null && item.HotelCode != "0")
{
<td><a href="@Url.Action("Facetest", "Face")"></a> <button class="btn btn-xs btn-success" id="btnaddPLine" onclick="Unlinkhotel('@item.SerialNo','@item.HotelCode','@item.RoomId')" style="background-color:red">解绑酒店</button></td>
}
else
{
<td><a href="@Url.Action("Facetest", "Face")"></a> <button class="btn btn-xs btn-success" id="btnaddPLine" style="background-color:cornflowerblue" onclick="bingdihotel('@item.SerialNo')">绑定酒店</button></td>
}
</tr>
@{
List<CheckInInfo> ci = (List<CheckInInfo>)ViewData["sungo"];
foreach (var info in ci)
{
if (info.Roomid == item.RoomId)
{
<tr class="acet" style="border-top: 1px solid #0b93d5;">
<td></td>
<td><img id="images" style="height:50px;" src="/ImgServer/FileImage?ftp=1&&url=@info.picture">@info.Name</td>
@*<td>开房时间:@info.CheckTime</td>*@
<td></td>
</tr>
<tr class="acet">
<td></td>
<td>身份证:@info.IdNumber</td>
</tr>
}
}
}
</tbody>
}
}
</table>
@*<div id="btn" onclick="tip()"></div>*@
<div>
<nav style="text-align:center;">
<ul class="pagination" id="page">
<li class="first" onclick="firstPage('/App/Face/InquireFaceall')"><a>&laquo;</a></li>
<li class="left"><a>…</a></li>
@for (int i = 0; i < ViewBag.allpage; i++)
{
<li class="pages" onclick="SpecifyPage('/App/Face/InquireFaceall',@(i+1))"><a>@(i + 1)</a></li>
}
<li class="right"><a>…</a></li>
<li class="finally"><a onclick="lastPage('/App/Face/InquireFaceall')">&raquo;</a></li>
</ul>
</nav>
</div>
</div>
<script>
$(".pagination").addClass("pagination pagination-sm");
$(".pagination").children("li").addClass("page-item");
$(".page-item").children("a").addClass("page-link");
function bingdihotel(sn) {
$.ajax({
url: "/App/Face/Bing",
data: { "StrNo": sn }, // data为String类型必须为 Key/Value 格式。
type: "post", // 提交方式
success: function (res) { // 请求成功后的回调函数其中的参数data为controller返回的map,也就是说然后通过data这个参数取JSON数据中的值
$("#faceDetailsBox").html(res)
}
});
}
$('.acet').hide();//隐藏
function transfer(sn, hotelcode) {
event.stopPropagation();
//if ($(document).width() < 764) {
// $('html,body').animate({ scrollTop: $('#btn').offset().top }, 1); //页面滚动到底部
//}
var data = {
faceNo: sn,
hotel: hotelcode
}
$.ajax({
url: "/App/Face/Facetest",
data: { data }, // data为String类型必须为 Key/Value 格式。
type: "post", // 提交方式
success: function (res) { // 请求成功后的回调函数其中的参数data为controller返回的map,也就是说然后通过data这个参数取JSON数据中的值
$("#faceDetailsBox").html(res)
}
});
};
function Unlinkhotel(sn, hotels, room) {
var list = {
faceNo: sn,
romm: room,
hotel: hotels
}
var s = confirm("确定要解绑酒店?")
if (s == true) {
$.ajax({
url: "/App/Face/unbundlehotel",
data: list,
type: "post",// 提交方式
success: function (res) {
if (res.Status == 200) {
alert('解绑酒店成功');
var link = "/App/Face/testFaceall";
window.location.href = link;
}
else {
alert('解绑失败请查看人脸机是否在线')
}
}
});
}
}
function addhotel(sn, jiu) {
var t = document.body.clientHeight;
window.scroll({ top: t, left: 0, behavior: 'smooth' });
var inse = {
faceNo: sn,
hotel: jiu
}
$.ajax({
url: "/App/Face/BingInfo",
data: inse, // data为String类型必须为 Key/Value 格式。
type: "post", // 提交方式
success: function (res) { // 请求成功后的回调函数其中的参数data为controller返回的map,也就是说然后通过data这个参数取JSON数据中的值
$("#faceDetailsBox").html(res)
}
});
}
function unbundleBtn(sn, hotels, room) {
var list = {
faceNo: sn,
romm: room,
hotel: hotels
}
var srt = confirm("确定要解绑房间吗?")
if (srt == true) {
$.ajax({
url: "/App/Face/unbundleoperate",
data: list,
type: "post",// 提交方式
success: function (res) {
if (res.Status == 200) {
console.log(res.Status)
alert('解绑成功')
var link = "/App/Face/testFaceall";
window.location.href = link;
}
else {
alert('解绑失败请查看人脸机是否在线')
}
}
});
}
}
function trouble(id) {
var s = confirm("确定人工修复?")
if (s == true) {
$.ajax({
url: "/App/Face/faultmaintain",
data: { 'id': id },
type: "post",
success: function (res) {
if (res != null) {
alert('已正常')
var link = "/App/Face/testFaceall";
window.location.href = link;
}
}
});
}
}
function Show(that) {
$(that).find('.acet').toggle();
}
</script>

View File

@@ -0,0 +1,217 @@

@{
ViewBag.Title = "IssuedPeople";
Layout = "~/Areas/App/Views/Shared/_Layout.cshtml";
}
<link href="~/Theme/css/plugins/datapicker/datepicker3.css" rel="stylesheet">
<style>
.table > thead > tr > th, .table > tbody > tr > th, .table > tfoot > tr > th, .table > thead > tr > td, .table > tbody > tr > td, .table > tfoot > tr > td {
padding: 0px;
border: 0px;
}
.table > tbody > tr > td, .table > tbody > tr > th, .table > tfoot > tr > td, .table > tfoot > tr > th, .table > thead > tr > td, .table > thead > tr > th {
padding: 1px;
}
#order {
border-top: solid 2px #ddd;
}
</style>
<div class="content-wrapper">
<section class="content" style="padding:0px;">
<div class="container-fluid">
<div class="row">
<div class="col-sm-8">
<!-- Default box -->
<div class="card">
<div class="card-header">
<div></div>
<div class="card-tools">
<button type="button" class="btn btn-tool" data-card-widget="collapse" title="Collapse"></button>
<button type="button" class="btn btn-tool" data-card-widget="remove" title="Remove">
<i class="fas fa-times"></i>
</button>
</div>
</div>
<div class="card-body">
</div>
@*内容筛选*@
<div style="display:none">人脸机的SN号@ViewData["sn"] </div>
<div class="ibox-content" style="padding:0px;">
<div id="project">
<div class="card-body">
<form class="form-horizontal" id="AddresidentFrom">
<div class="form-group">
<label for="exampleInputEmail1"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">客户名字</font></font></label>
<input type="email" class="form-control" id="name" placeholder="输入客户名字">
<p></p>
<label for="exampleInputEmail1"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">客户身份证</font></font></label>
<input type="email" class="form-control" id="id_no" placeholder="输入客户身份证">
<p></p>
<label for="exampleInputFile"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">客户照片</font></font></label>
<div class="form-group">
<div class="input-group">
<div class="custom-file">
<input type="file" onchange="uploadimg()" class=" custom-file-input" accept="image/*" id="photo">
<label class="custom-file-label" id="exampleInputFile"></label>
</div>
<div class="input-group-append">
<span class="input-group-text" onclick="Upload()">上传</span>
</div>
</div>
</div>
<div id="faceDetailsBox"> </div>
<label for="exampleInputEmail1"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">开房时间至退房时间</font></font></label>
<div class="col-sm-4 m-b-xs" id="data_ovform">
<div class="input-group m-b">
<div class="input-daterange input-group" id="datepicker">
<input type="text" class="input-sm form-control" readOnly id="startTs" />
<span class="input-group-addon">to</span>
<input type="text" class="input-sm form-control" readOnly id="endTs" />
</div>
</div>
</div>
<p></p>
<div class="col-md-offset-3 col-md-9">
<button class="btn btn-md btn-primary" type="button" id="btnAddShow">保存</button>
</div>
</div>
</form>
</div>
<div id="btn" onclick="tip()"></div>
</div>
</div>
<!-- /.card-body -->
</div>
</div>
<!-- /.card -->
<div class="col-sm-4" id="faceDetailsBox">
</div>
</div>
</div>
</section>
</div>
<script src="~/Theme/js/plugins/datapicker/bootstrap-datepicker.js"></script>
<script src="~/Theme/js/plugins/datapicker/locales/bootstrap-datepicker.zh-CN.js"></script>
<script src="~/Theme/js/plugins/peity/jquery.peity.min.js"></script>
<script src="~/Theme/js/plugins/pace/pace.min.js"></script>
<script>
var srclocation
var url = "/Theme/js/jquery.form.min.js";
$.getScript(url);
$('#data_ovform .input-daterange').datepicker({
language: "zh-CN",//语言
todayBtn: "linked",//今日按钮
keyboardNavigation: false,
forceParse: false,
autoclose: true,
format: "yyyy/mm/dd"//日期格式
});
function ToUploadPictures(file,back) {
var reader = new FileReader();
var AllowImgFileSize = 2100000; //上传图片最大值(单位字节) 2 M = 2097152 B 超过2M上传失败
var imgUrlBase64;
if (file) {
//将文件以Data URL形式读入页面
imgUrlBase64 = reader.readAsDataURL(file);
reader.onload = function (e) {
var ImgFileSize = reader.result.substring(reader.result.indexOf(",") + 1);//截取base64码部分可选可不选需要与后台沟通
if (AllowImgFileSize != 0 && AllowImgFileSize < reader.result.length) {
alert('上传失败请上传不大于2M的图片');
return;
} else {
//执行上传操作
console.log(ImgFileSize);
back(ImgFileSize)
}
}
}
}
function uploadimg(type) {
let files = $("#photo").prop("files");
if (files.length <= 0)
return;
$("#photo").closest(".input-group").find("label").html(files[0].name);
if (type != 1)
return;
console.log(files[0])
upload();
}
//上传图片
function Upload() {
upload();
}
function upload() {
var formData = new FormData() //创建一个forData
formData.append('img', $('#photo')[0].files[0]) //把file添加进去 name命名为img
$.ajax({
url: "/ImgServer/Update",
data: formData,
type: "POST",
async: false,
cache: false,
contentType: false,
processData: false,
success: function (data) {//成功
srclocation = data.data.src;
alert("上传成功");
$("#faceDetailsBox").html('<img id="images" src="/ImgServer/FileImage?url=' + data.data.src + '">')
},
error: function () {
alert("上传失败")
}
})
}
$("#btnAddShow").click(function () {
var name = $('#name').val();
var id_no = $('#id_no').val();
var photo = srclocation;
//var photo = $('#photo')[0].files[0].name;
var startTs = $('#startTs').val();
var endTs = $('#endTs').val();
var InfoBodyShow = {
name: name,
id_no: id_no,
photo: photo,
startTs: startTs,
endTs: endTs
};
$.ajax({
url: "/App/Face/IssuedSandShow",
type: "post",
data: InfoBodyShow,
async: true,
success: function (res) {
alert(res)
}
});
})
function addLodger() {
$.ajax({
url: "/App/Lodger/Openhouse",
type: "post", // 提交方式
success: function (res) { // 请求成功后的回调函数其中的参数data为controller返回的map,也就是说然后通过data这个参数取JSON数据中的值
$("#faceDetailsBox").html(res)
}
});
}
</script>

View File

@@ -0,0 +1,167 @@
@model PagedList.IPagedList<Face.Domain.Entities.DeviceManage>
@using PagedList.Mvc;
@using Face.Web.Areas.App.Models
@{
ViewBag.Title = "Roomselect";
Layout = "~/Areas/App/Views/Shared/_Layout.cshtml";
List<Face.Domain.Entities.Hotels> Hotellist = (List<Face.Domain.Entities.Hotels>)ViewData["he"];
List<Face.Domain.Entities.Hosts> Roomlist = Face.Services.Cache.CacheHelp.GetRoomCheck();
int roomid = int.Parse(Session["roll"].ToString());
List<Face.Domain.Entities.Hosts> hostslist = Face.Services.Cache.CacheHelp.GetRoomGroup();
}
<style>
.table > thead > tr > th, .table > tbody > tr > th, .table > tfoot > tr > th, .table > thead > tr > td, .table > tbody > tr > td, .table > tfoot > tr > td {
padding: 0px;
border: 0px;
}
.table > tbody > tr > td, .table > tbody > tr > th, .table > tfoot > tr > td, .table > tfoot > tr > th, .table > thead > tr > td, .table > thead > tr > th {
padding: 3px;
}
#order {
border-top: solid 2px #ddd;
}
.chaxun {
text-indent: 5px;
}
.PagedList-skipToLast page-item {
display: none;
}
</style>
<div class="content-wrapper">
<section class="content" style="padding:0px;">
<div class="container-fluid">
<div class="row">
<div class="col-sm-8">
<!-- Default box -->
<div class="card">
<div class="card-header">
<span style="font-size:30px">所有人脸机信息</span>
<div class="card-tools">
<button type="button" class="btn btn-tool" data-card-widget="collapse" title="Collapse"></button>
<button type="button" class="btn btn-tool" data-card-widget="remove" title="Remove">
<i class="fas fa-times"></i>
</button>
</div>
</div>
<div class="card-body">
<input type="text" placeholder="人脸机筛选" name="username" style="height:35px;margin-left:5px;" id="txtOpname"><button class="btn btn-md btn-primary" id="Btnmodify" onclick="search()">搜索</button>
</div>
@*条件筛选*@
@*内容筛选*@
<div class="ibox-content" style="padding:0px;">
<div id="project">
<table class="table dataTables-example" border="0" id="order">
@if (Model != null)
{
foreach (var item in Model)
{
<tbody class="tbodyList">
<tr>
<td rowspan="5" style="margin:0px;padding:0px; ">
<input type="hidden" id="ID" value="2">
<div class="lightBoxGallery">
</div>
</td>
<td id="mobile" style="text-align:left; ">编号: @Html.DisplayFor(modelItem => item.Facelid)<span class="gray"></span></td>
<td style="" id="mobile2">
状态:<span style="color:#0094ff" id="@item.SerialNo">
@{if (item.Status == true)
{<strong>在线</strong>}
else
{<strong style="color:crimson">离线</strong>}
}
</span>
</td>
</tr>
<tr></tr>
<tr>
<td>
创建时间: @if (item.CreatedDate != null)
{
@item.CreatedDate.Value.ToString("yyyy/MM/dd");
}
else
{
<span> 无</span>
}
</td>
<td><button class="btn btn-xs btn-success" id="btnaddPLine" onclick="bingdingRoom('@item.SerialNo','@item.HotelCode','@Session["roll"]')" style="background-color:cornflowerblue" >绑定房间</button></td>
</tr>
<tr>
<td>SN号: @Html.DisplayFor(modelItem => item.SerialNo)</td>
<td></td>
</tr>
<tr>
<td>
绑定酒店: @(Html.DisplayFor(modelItem => item.HotelCode).ToString() != "" ? Hotellist.Single(s => s.Id == int.Parse(item.HotelCode)) != null ? Hotellist.Single(s => s.Id == int.Parse(item.HotelCode)).Name : "" : "")
</td>
</tr>
</tbody>
}
}
</table>
<div style="text-align:center" class="chaxun">
@*分页主要代码*@
共 @Model.PageCount 页,当前第 @Model.PageNumber 页
<nav aria-label="Contacts Page Navigation">
<ul class="pagination justify-content-center m-0">
@if (Session["hoteloperation"].ToString() != "")
{
string hotel = Session["hoteloperation"].ToString();
string roll = Session["roll"].ToString();
@Html.PagedListPager(Model, page => Url.Action("Roomselect", new { page, hotel , roll }), new PagedListRenderOptions() { DisplayItemSliceAndTotal = false, MaximumPageNumbersToDisplay = 5 });
}
else
{
@Html.PagedListPager(Model, page => Url.Action("Roomselect", new { page }), new PagedListRenderOptions() { DisplayItemSliceAndTotal = false, MaximumPageNumbersToDisplay = 5 })
}
</ul>
</nav>
</div>
<div id="btn" onclick="tip()"></div>
</div>
</div>
<!-- /.card-body -->
</div>
</div>
<!-- /.card -->
<div class="col-sm-4" id="faceDetailsBox">
</div>
</div>
</div>
</section>
</div>
<script>
function bingdingRoom(no1, hotel1, room1) {
var list = {
hotel: hotel1,
romm: room1,
faceNo: no1
}
$.ajax({
url: "/App/Face/bingdingRoomoperate",
data: list,
type: "post", // 提交方式
success: function (res) { // 请求成功后的回调函数其中的参数data为controller返回的map,也就是说然后通过data这个参数取JSON数据中的值
alert(res.Message)
}
});
}
</script>

View File

@@ -0,0 +1,133 @@
@model PagedList.IPagedList<Face.Domain.Entities.DeviceManage>
@using PagedList.Mvc;
@using Face.Web.Areas.App.Models;
@using Face.Domain.Entities;
@using Face.Domain.Application
@{
ViewBag.Title = "TestFaceall";
Layout = "~/Areas/App/Views/Shared/_Layout.cshtml";
}
<style>
.table > thead > tr > th, .table > tbody > tr > th, .table > tfoot > tr > th, .table > thead > tr > td, .table > tbody > tr > td, .table > tfoot > tr > td {
padding: 0px;
border: 0px;
}
.table > tbody > tr > td, .table > tbody > tr > th, .table > tfoot > tr > td, .table > tfoot > tr > th, .table > thead > tr > td, .table > thead > tr > th {
padding: 3px;
}
#order {
border-top: solid 2px #ddd;
}
.chaxun {
text-indent: 5px;
}
.PagedList-skipToLast page-item {
display: none;
}
</style>
<link href="~/Theme/css/plugins/datapicker/datepicker3.css" rel="stylesheet">
<div class="content-wrapper">
<section class="content" style="padding:0px;">
<div class="container-fluid">
<div class="row">
<div class="col-sm-12">
<!-- Default box -->
<div class="card">
<div class="card-header">
<span style="font-size:30px">所有人脸机设备日志</span>
<div class="card-tools">
<button type="button" class="btn btn-tool" data-card-widget="collapse" title="Collapse"></button>
<button type="button" class="btn btn-tool" data-card-widget="remove" title="Remove">
<i class="fas fa-times"></i>
</button>
</div>
</div>
@*条件筛选放在card body部分*@
<div class="card-body col-sm-12">
<div class="form-horizontal">
<div class="form-group row">
<label for="txtOpname" class="col-md-2 col-sm-12 col-form-label">人脸机序列号</label>
<div class="col-md-10 col-sm-12">
<input type="text" class="form-control" id="txtOpname" placeholder="人脸机序列号">
</div>
</div>
<div class="form-group row">
<label for="" class="col-md-2 col-sm-12 col-form-label">时间范围</label>
<div class="col-md-10 col-sm-12">
<div class="row">
<div class="col-md-5 col-sm-12">
<div class="input-group mb-3">
<input type="text" class="input-sm form-control mytimer" name="start" id="startTs" readonly="">
<span class="input-group-btn" style="width: 25%">
<button class="btn default" type="button">
<i class="fa fa-calendar-alt"></i>
</button>
</span>
</div>
</div>
<div class="col-md-2 col-sm-12">至</div>
<div class="col-md-5 col-sm-12">
<div class="input-group mb-3">
<input type="text" class="input-sm form-control mytimer" name="end" id="endTs" readonly="">
<span class="input-group-btn" style="width: 25%">
<button class="btn default" type="button">
<i class="fa fa-calendar-alt"></i>
</button>
</span>
</div>
</div>
</div>
</div>
</div>
<button type="submit" class="btn btn-lg btn-default" onclick="search('/App/Face/InquireFaceLogAll')" style="float:right;">查询</button>
</div>
</div>
@*内容筛选*@
<div class="ibox-content" style="padding:0px;">
</div>
</div>
</div>
</div>
</div>
</section>
</div>
<script src="~/Theme/js/plugins/datapicker/bootstrap-datepicker.js"></script>
<script src="~/Theme/js/plugins/datapicker/locales/bootstrap-datepicker.zh-CN.js"></script>
<script src="~/Plugin/allPages.js"></script>
<script>
$(function () {
var inParam = getQueryVariable("sn");
if (inParam) {
$("#txtOpname").val = inParam
search('/App/Face/InquireFaceLogAll', 0, 16, 1, {
FaceName: inParam
});
}
else {
search('/App/Face/InquireFaceLogAll');
}
});
if ($(document).width() >= 764) {
}
else {
$(".content-wrapper *").css("font-size", "10px");
}
$('.mytimer').datepicker({
language: "zh-CN",//语言
todayBtn: "linked",//今日按钮
autoclose: true,//选择后关闭日期选择
format: "yyyy-mm-dd",//日期格式
});
</script>

View File

@@ -0,0 +1,157 @@
@model PagedList.IPagedList<Face.Domain.Entities.DeviceManage>
@using PagedList.Mvc;
@using Face.Web.Areas.App.Models;
@using Face.Domain.Entities;
@using Face.Domain.Application
@{
ViewBag.Title = "TestFaceall";
Layout = "~/Areas/App/Views/Shared/_Layout.cshtml";
List<Face.Domain.Entities.Hotels> Hotellist = SqlSugarBase.authoriydb.Queryable<Hotels>().ToList();
List<AuthItem> authItem = (List<AuthItem>)Session["authItems"];
List<TBL_ROOM_BASIC_INFO> ZongRoominfo = (List<TBL_ROOM_BASIC_INFO>)Session["ZongRoominfo"];
}
@*<script src="~/Scripts/jquery-3.3.1.js"></script>*@
<style>
.table > thead > tr > th, .table > tbody > tr > th, .table > tfoot > tr > th, .table > thead > tr > td, .table > tbody > tr > td, .table > tfoot > tr > td {
padding: 0px;
border: 0px;
}
.table > tbody > tr > td, .table > tbody > tr > th, .table > tfoot > tr > td, .table > tfoot > tr > th, .table > thead > tr > td, .table > thead > tr > th {
padding: 3px;
}
#order {
border-top: solid 2px #ddd;
}
.chaxun {
text-indent: 5px;
}
.PagedList-skipToLast page-item {
display: none;
}
</style>
<div class="content-wrapper">
<section class="content" style="padding:0px;">
<div class="container-fluid">
<div class="row">
<div class="col-sm-8">
<!-- Default box -->
<div class="card">
<div class="card-header">
<span style="font-size:30px">所有人脸机信息</span>
<div class="card-tools">
<button type="button" class="btn btn-tool" data-card-widget="collapse" title="Collapse"></button>
<button type="button" class="btn btn-tool" data-card-widget="remove" title="Remove">
<i class="fas fa-times"></i>
</button>
</div>
</div>
<div class="card-body">
@* <input type="text" placeholder="人脸机筛选" name="username" style="height:35px;margin-left:5px;" id="txtOpname"><button class="btn btn-md btn-primary" id="Btnmodify" onclick="search('/App/Face/InquireFaceall')">搜索</button>*@
<select class="form-control" id="OrgId" style="width:300px; float:left">
<option value="0">
所有酒店
</option>
@{
List<int> sum = (List<int>)Session["list"];
foreach (int item in sum)
{
foreach (var iten in Hotellist)
{
if (iten.Id == item)
{
<option class="ComboBox" value="@iten.Id" )>
@iten.Name
</option>
}
}
}
for (int i = 0; i < authItem.Count; i++)
{
if (authItem[i].AuthorityId == 3)
{
<option value="-1">
未绑定酒店
</option>
break;
}
}
}
</select>
<select class="form-control" id="OrgId3" style="width:300px; float:left">
<option value="-1">
全部人脸机
</option>
<option value="1">在线</option>
<option value="0">不在线</option>
</select>
<select class="form-control" id="OrgId2" style="width:300px; float:left">
<option value="-1">
全部房间
</option>
<option value="0" )>
未绑定房间
</option>
<option value="1">
已绑定房间
</option>
@{
}
</select>
<div class="input-group " style="width:300px; float:left;">
<input type="search" style="height:40px;" id="txtOpname" value="@ViewData["SnDing"]" class="form-control form-control-lg" placeholder="人脸机筛选">
<div class="input-group-append">
<button type="submit" class="btn btn-lg btn-default" onclick="search('/App/Face/InquireFaceall')" id=" ">
<i class="fa fa-search"></i>
</button>
</div>
</div>
</div>
@*条件筛选*@
@*内容筛选*@
<div class="ibox-content" style="padding:0px;">
</div>
</div>
</div>
<!-- /.card -->
<div class="col-sm-4" id="faceDetailsBox">
</div>
</div>
</div>
</section>
</div>
<script src="~/Plugin/allPages.js"></script>
<script>
$(function () {
var inParamH = getQueryVariable("hotelid");
var inParamS = getQueryVariable("sn");
if (inParamH || inParamS) {
search('/App/Face/InquireFaceall', 0, 8, 1, {
HotelID: inParamH || 0,
FaceName: inParamS
});
}
else {
search('/App/Face/InquireFaceall');
}
});
if ($(document).width() >= 764) {
}
else {
$(".content-wrapper *").css("font-size", "10px");
}
</script>

View File

@@ -0,0 +1,170 @@
@model PagedList.IPagedList<Face.Domain.Entities.DeviceManage>
@using PagedList.Mvc;
@using Face.Web.Areas.App.Models;
@{
ViewBag.Title = "adminjurisdiction";
Layout = "~/Areas/App/Views/Shared/_Layout.cshtml";
List<Face.Domain.Entities.DeviceManage> facellist = Face.Services.Cache.CacheHelp.GetFaceList();
}
<style>
.table > thead > tr > th, .table > tbody > tr > th, .table > tfoot > tr > th, .table > thead > tr > td, .table > tbody > tr > td, .table > tfoot > tr > td {
padding: 0px;
border: 0px;
}
.table > tbody > tr > td, .table > tbody > tr > th, .table > tfoot > tr > td, .table > tfoot > tr > th, .table > thead > tr > td, .table > thead > tr > th {
padding: 3px;
}
#order {
border-top: solid 2px #ddd;
}
.chaxun {
text-indent: 5px;
}
.PagedList-skipToLast page-item {
display: none;
}
</style>
<div class="content-wrapper">
<section class="content" style="padding:0px;">
<div class="container-fluid">
<div class="row">
<div class="col-sm-8">
<!-- Default box -->
<div class="card">
<div class="card-header">
<span style="font-size:30px">所有人脸机信息</span>
</div>
<div class="card-body">
<input type="text" placeholder="人脸机筛选" name="username" style="height:35px;margin-left:5px;" id="txtOpname"><button class="btn btn-md btn-primary" id="Btnmodify" onclick="search()">搜索</button>
<select class="form-control" id="OrgId" style="width:300px; float:left">
@if (ViewData["location"] != null)
{
<option>
@ViewData["location"]
</option>
}
@foreach (var item in ViewData["groups"] as List<string>)
{
<option>
@item
</option>
}
</select>
</div>
@*条件筛选*@
@*内容筛选*@
<div class="ibox-content" style="padding:0px;">
<div id="project">
<table class="table dataTables-example" border="0" id="order">
@if (Model != null)
{
foreach (var item in Model)
{
<tbody class="tbodyList">
<tr>
<td rowspan="5" style="margin:0px;padding:0px;width:40px">
<input type="hidden" id="ID" value="2">
<div class="lightBoxGallery">
</div>
</td>
<td style="text-align:left;width:60%;">编号: @Html.DisplayFor(modelItem => item.Facelid)<span class="gray"></span></td>
<td style="width:200px;">
状态:<span style="color:#0094ff" id="@item.SerialNo">
@{if (item.Status == true)
{<strong>在线</strong>}
else
{<strong>离线</strong> }
}
</span>
</td>
</tr>
<tr></tr>
<tr>
<td>地理位置:@Html.DisplayFor(modelItem => item.faceAddress)</td>
<td>创建时间: @item.CreatedDate.Value.ToString("yyyy/MM/dd")</td>
</tr>
<tr>
<td>SN号: @Html.DisplayFor(modelItem => item.SerialNo)</td>
<td><button class="btn btn-xs btn-success" id="btnaddPLine" onclick="addhotel('@item.SerialNo')">绑定酒店</button></td>
</tr>
<tr>
</tr>
</tbody>
}
}
</table>
<div style="text-align:center" class="chaxun">
分页主要代码
共 @Model.PageCount 页,当前第 @Model.PageNumber 页
<nav aria-label="Contacts Page Navigation">
<ul class="pagination justify-content-center m-0">
@if (ViewData["location"] != null)
{
string tion = ViewData["location"].ToString();
@Html.PagedListPager(Model, page => Url.Action("adminjurisdiction", new { page, tion }), new PagedListRenderOptions() { DisplayItemSliceAndTotal = false, MaximumPageNumbersToDisplay = 5 })
}
else
{
@Html.PagedListPager(Model, page => Url.Action("adminjurisdiction", new { page }), new PagedListRenderOptions() { DisplayItemSliceAndTotal = false, MaximumPageNumbersToDisplay = 5 })
}
</ul>
</nav>
</div>
<div id="btn" onclick="tip()"></div>
</div>
</div>
<!-- /.card-body -->
</div>
</div>
<!-- /.card -->
<div class="col-sm-4" id="faceDetailsBox">
</div>
</div>
</div>
</section>
</div>
<script>
$(".pagination").addClass("pagination pagination-sm");
$(".pagination").children("li").addClass("page-item");
$(".page-item").children("a").addClass("page-link");
function addhotel(sn) {
var t = document.body.clientHeight;
window.scroll({ top: t, left: 0, behavior: 'smooth' });
$.ajax({
url: "/App/Face/Bing",
data: { "StrNo": sn }, // data为String类型必须为 Key/Value 格式。
type: "post", // 提交方式
success: function (res) { // 请求成功后的回调函数其中的参数data为controller返回的map,也就是说然后通过data这个参数取JSON数据中的值
$("#faceDetailsBox").html(res)
}
});
}
$('#OrgId').change(function () {//查询酒店按钮
var myType = document.getElementById("OrgId").value;//获取select对象
console.log(myType);
var link = "/App/Face/adminjurisdiction" + '?location=' + myType
window.location.href = link;
})
function searcsh() {//查询SN号按钮
var src = document.getElementById("txtOpname").value
var link = "/App/Face/adminjurisdiction" + '?Sno=' + src
window.location.href = link;
}
</script>

View File

@@ -0,0 +1,189 @@
@model PagedList.IPagedList<Face.Domain.Entities.DeviceManage>
@using PagedList.Mvc;
@using Face.Web.Areas.App.Models
@{
ViewBag.Title = "bindingRoom";
Layout = "~/Areas/App/Views/Shared/_Layout.cshtml";
List<Face.Domain.Entities.Hotels> Hotellist = (List<Face.Domain.Entities.Hotels>)ViewData["hw"];
List<Face.Domain.Entities.Hosts> Roomlist = Face.Services.Cache.CacheHelp.GetRoomCheck();
}
<style>
.table > thead > tr > th, .table > tbody > tr > th, .table > tfoot > tr > th, .table > thead > tr > td, .table > tbody > tr > td, .table > tfoot > tr > td {
padding: 0px;
border: 0px;
}
.table > tbody > tr > td, .table > tbody > tr > th, .table > tfoot > tr > td, .table > tfoot > tr > th, .table > thead > tr > td, .table > thead > tr > th {
padding: 3px;
}
#order {
border-top: solid 2px #ddd;
}
.chaxun {
text-indent: 5px;
}
.PagedList-skipToLast page-item {
display: none;
}
</style>
<div class="content-wrapper">
<section class="content" style="padding:0px;">
<div class="container-fluid">
<div class="row">
<div class="col-sm-8">
<!-- Default box -->
<div class="card">
<div class="card-header">
<span style="font-size:30px">绑定人脸机操作</span>
<div class="card-tools">
<button type="button" class="btn btn-tool" data-card-widget="collapse" title="Collapse"></button>
<button type="button" class="btn btn-tool" data-card-widget="remove" title="Remove">
<i class="fas fa-times"></i>
</button>
</div>
</div>
<div class="card-body">
<input type="text" placeholder="根据人脸机SN号" name="username" style="height:35px;margin-left:5px;" id="txtOpname"><button class="btn btn-md btn-primary" id="Btnmodify" onclick="search()">搜索</button>
</div>
@*条件筛选*@
@*内容筛选*@
<div class="ibox-content" style="padding:0px;">
<div id="project">
<table class="table dataTables-example" border="0" id="order">
@if (Model != null)
{
foreach (var item in Model)
{
<tbody class="tbodyList">
<tr>
<td rowspan="5" style="margin:0px;padding:0px;width:40px">
<input type="hidden" id="ID" value="2">
<div class="lightBoxGallery">
</div>
</td>
<td style="text-align:left;width:60%;">编号 @Html.DisplayFor(modelItem => item.Facelid)<span class="gray"></span></td>
<td style="width:200px;">
状态: @if (item.bindingStatus == true)
{
<strong>已绑定</strong>
}
else
{
<strong>未绑定</strong>
}
</td>
</tr>
<tr></tr>
<tr>
<td>SN号: @Html.DisplayFor(modelItem => item.SerialNo) </td>
<td>
绑定房间: @(item.RoomId.ToString() != "" ? Roomlist.Single(s => s.Id == item.RoomId).RoomNumber : "无")
</td>
</tr>
<tr>
<td>绑定酒店: @(Html.DisplayFor(modelItem => item.HotelCode).ToString() != "" ? Hotellist.Single(s => s.Id == int.Parse(item.HotelCode))!=null? Hotellist.Single(s => s.Id == int.Parse(item.HotelCode)).Name :"": "")</td>
</tr>
<tr>
@if (@item.bindingDate != null)
{
<td>绑定时间 @item.bindingDate.Value.ToString("yyyy/MM/dd")</td>
}
else
{
<td>绑定时间</td>}
@{
List<AuthItem> authItem = (List<AuthItem>)ViewData["authItems"];
for (int i = 0; i < authItem.Count; i++)
{
if (authItem[i].AuthorityId == 8)
{
<td><button class="btn btn-xs btn-success" id="btnaddPLine" onclick="addhotel('@item.SerialNo','@item.HotelCode')">绑定房间</button></td>
break;
}
}
}
</tr>
</tbody>
}
}
</table>
<div style="text-align:center" class="chaxun">
共 @Model.PageCount 页,当前第 @Model.PageNumber 页
<nav aria-label="Contacts Page Navigation">
<ul class="pagination justify-content-center m-0">
@if (ViewData["sun"] != null)
{
string sunn = ViewData["sun"].ToString();
@Html.PagedListPager(Model, page => Url.Action("Faceall", new { page, sunn }), new PagedListRenderOptions() { DisplayItemSliceAndTotal = false, MaximumPageNumbersToDisplay = 5 });
}
else
{ @Html.PagedListPager(Model, page => Url.Action("Faceall", new { page }), new PagedListRenderOptions() { DisplayItemSliceAndTotal = false, MaximumPageNumbersToDisplay = 5 })}
</ul>
</nav>
</div>
<div id="btn" onclick="tip()"></div>
</div>
</div>
<!-- /.card-body -->
</div>
</div>
<!-- /.card -->
<div class="col-sm-4" id="faceDetailsBox">
</div>
</div>
</div>
</section>
</div>
<script>
$(".pagination").addClass("pagination pagination-sm");
$(".pagination").children("li").addClass("page-item");
$(".page-item").children("a").addClass("page-link");
function addhotel(sn, jiu) {
var t = document.body.clientHeight;
window.scroll({ top: t, left: 0, behavior: 'smooth' });
var inse = {
faceNo: sn,
hotel: jiu
}
$.ajax({
url: "/App/Face/BingInfo",
data: inse, // data为String类型必须为 Key/Value 格式。
type: "post", // 提交方式
success: function (res) { // 请求成功后的回调函数其中的参数data为controller返回的map,也就是说然后通过data这个参数取JSON数据中的值
$("#faceDetailsBox").html(res)
}
});
}
function search() {//查询SN号按钮
var src = document.getElementById("txtOpname").value
var link = "/App/Face/bindingRoom" + '?sun=' + src
window.location.href = link;
}
</script>

View File

@@ -0,0 +1,94 @@

@{
Layout = null;
List<Face.Domain.Entities.Hotels> Hotellist = Face.Services.Cache.CacheHelp.GetHotelslist();
}
<style>
#btnaddPLineShow {
background-color: #008CBA;
border: none;
color: white;
padding: 5px 20px;
text-align: center;
text-decoration: none;
display: inline-block;
font-size: 16px;
}
</style>
<section class="content" style="padding:0px;">
<div class="container-fluid">
<div class="row">
<div class="col-md-12">
<div class="card">
<div class="card-header">
<div class="card-tools">
<button type="button" class="btn btn-tool" data-card-widget="remove" title="Remove">
<i class="fas fa-times"></i>
</button>
</div>
</div>
<div class="ibox float-e-margins">
<div class="ibox-title">
<h5 id="SNno">人脸机sn号@ViewData["no"]</h5>
<div class="ibox-tools">
<a class="collapse-link-partial">
</a>
<a class="close-link-partial">
</a>
</div>
</div>
</div>
<div class="card-body">
<select class="form-control" id="hotelShow" style="width:250px; height:35px;float:left">
@foreach (var item in Hotellist)
{
<option class="ComboBox" value="@item.Id" )>
@item.Name
</option>
}
</select>
<button class="btn btn-xs btn-success" id="btnaddPLineShow" onclick="addhotel()">为酒店添加人脸机</button>
</div>
</div>
</div>
</div>
</div>
</section>
<script>
function addhotel() {
var myType = document.getElementById("hotelShow");//获取select对象
var index = myType.selectedIndex;//获取选项中的索引selectIndex表示的是当前所选中的index
var code = myType.options[index].value;//获取酒店编号
var inse = {
hotel: code,
faceNo: "@ViewData["no"]"
}
console.log(inse)
$.ajax({
url: "/App/Face/addfacehotel",
type: "post",
data: inse,
async: true,
success: function (res) {
if (res.Status == 200) {
alert(res.Message)
window.location.href = "/App/Face/Faceall";
} else {
alert('添加失败')
}
}
});
</script>

View File

@@ -0,0 +1,109 @@

@{
ViewBag.Title = "selectpeople";
Layout = "~/Areas/App/Views/Shared/_Layout.cshtml";
}
<style>
.table > thead > tr > th, .table > tbody > tr > th, .table > tfoot > tr > th, .table > thead > tr > td, .table > tbody > tr > td, .table > tfoot > tr > td {
padding: 0px;
border: 0px;
}
.table > tbody > tr > td, .table > tbody > tr > th, .table > tfoot > tr > td, .table > tfoot > tr > th, .table > thead > tr > td, .table > thead > tr > th {
padding: 3px;
}
#order {
border-top: solid 2px #ddd;
}
.chaxun {
text-indent: 5px;
}
.PagedList-skipToLast page-item {
display: none;
}
</style>
<div class="content-wrapper">
<section class="content" style="padding:0px;">
<div class="container-fluid">
<div class="row">
<div class="col-sm-8">
<!-- Default box -->
<div class="card">
<div class="card-header">
<div></div>
<div class="card-tools">
<button type="button" class="btn btn-tool" data-card-widget="collapse" title="Collapse"></button>
<button type="button" class="btn btn-tool" data-card-widget="remove" title="Remove">
<i class="fas fa-times"></i>
</button>
</div>
</div>
<div class="card-body">
<input type="text" placeholder="通过客户身份证查询" name="username" style="height:35px;margin-left:5px;" id="txtOpname"><button class="btn btn-md btn-primary" id="Btnmodify" onclick="search()">搜索</button>
</div>
@*条件筛选*@
@*内容筛选*@
<div class="ibox-content" style="padding:0px;">
<div id="project">
<table class="table dataTables-example" border="0" id="order">
<tbody class="tbodyList">
<tr>
<td rowspan="5" style="margin:0px;padding:0px;width:40px">
<input type="hidden" id="ID" value="2">
<div class="lightBoxGallery">
</div>
</td>
<td style="text-align:left;width:60%;">客户名称:<span class="gray"></span></td>
<td style="width:200px;">@*卡号:*@ </td>
</tr>
<tr></tr>
<tr>
<td style="width:200px;">客户身份证: </td>
<td>@*>过闸时间段:*@</td>
</tr>
<tr>
<td>入住时间:</td>
<td> @*最大过闸次数:*@</td>
</tr>
<tr>
<td>退房时间:</td>
<td> @*是否为访客*@</td>
</tr>
</tbody>
</table>
<div style="text-align:center" class="chaxun">
@*分页主要代码*@
</div>
</div>
<!-- /.card-body -->
</div>
</div>
<!-- /.card -->
<div class="col-sm-4" id="faceDetailsBox">
</div>
</div>
</div>
</section>
</div>
<script>
function inquire() {
}
</script>

View File

@@ -0,0 +1,184 @@
@model PagedList.IPagedList<Face.Domain.Entities.DeviceManage>
@using PagedList.Mvc;
@using Face.Web.Areas.App.Models
@{
ViewBag.Title = "unbundle";
List<Face.Domain.Entities.Hotels> Hotellist = (List<Face.Domain.Entities.Hotels>)ViewData["ho"];
Layout = "~/Areas/App/Views/Shared/_Layout.cshtml";
}
<style>
.table > thead > tr > th, .table > tbody > tr > th, .table > tfoot > tr > th, .table > thead > tr > td, .table > tbody > tr > td, .table > tfoot > tr > td {
padding: 0px;
border: 0px;
}
.table > tbody > tr > td, .table > tbody > tr > th, .table > tfoot > tr > td, .table > tfoot > tr > th, .table > thead > tr > td, .table > thead > tr > th {
padding: 3px;
}
#order {
border-top: solid 2px #ddd;
}
.chaxun {
text-indent: 5px;
}
.PagedList-skipToLast page-item {
display: none;
}
</style>
<div class="content-wrapper">
<section class="content" style="padding:0px;">
<div class="container-fluid">
<div class="row">
<div class="col-sm-8">
<!-- Default box -->
<div class="card">
<div class="card-header">
<span style="font-size:30px">解绑人脸机操作</span>
<div class="card-tools">
<button type="button" class="btn btn-tool" data-card-widget="collapse" title="Collapse"></button>
<button type="button" class="btn btn-tool" data-card-widget="remove" title="Remove">
<i class="fas fa-times"></i>
</button>
</div>
</div>
<div class="card-body">
<input type="text" placeholder="根据房间号查询" name="username" style="height:35px;margin-left:5px;" id="txtOpname"><button class="btn btn-md btn-primary" id="Btnmodify" onclick="search()">搜索</button>
</div>
@*条件筛选*@
@*内容筛选*@
<div class="ibox-content" style="padding:0px;">
<div id="project">
<table class="table dataTables-example" border="0" id="order">
@if (Model != null)
{
foreach (var item in Model)
{
<tbody class="tbodyList">
<tr>
<td rowspan="5" style="margin:0px;padding:0px;width:40px">
<input type="hidden" id="ID" value="2">
<div class="lightBoxGallery">
</div>
</td>
<td style="text-align:left;width:60%;">编号 @Html.DisplayFor(modelItem => item.Facelid)<span class="gray"></span></td>
<td style="width:200px;">
状态: @if (item.bindingStatus == true)
{
<strong>已绑定</strong>
}
else
{
<strong>未绑定</strong>
}
</td>
</tr>
<tr></tr>
<tr>
<td>SN号: @Html.DisplayFor(modelItem => item.SerialNo) </td>
<td>
绑定房间: @(Html.DisplayFor(modelItem => item.RoomId) != null ? Hotellist.Single(s => s.Id == int.Parse(item.HotelCode)).Name : "")
</td>
</tr>
<tr>
<td>
绑定酒店: @(Html.DisplayFor(modelItem => item.HotelCode).ToString() != "" ? Hotellist.Single(s => s.Id == int.Parse(item.HotelCode)) != null ? Hotellist.Single(s => s.Id == int.Parse(item.HotelCode)).Name : "" : "")
</td>
</tr>
<tr>
<td>绑定时间 @(item.bindingDate)</td>
@{
List<AuthItem> authItem = (List<AuthItem>)ViewData["authItems"];
for (int i = 0; i < authItem.Count; i++)
{
<td><button class="btn btn-xs btn-success" id="btnaddPLine" onclick="unbundleBtn('@item.SerialNo','@item.HotelCode','@item.RoomId')">解绑房间</button></td>
break;
}
}
</tr>
</tbody>
}
}
</table>
<div style="text-align:center" class="chaxun">
共 @Model.PageCount 页,当前第 @Model.PageNumber 页
<nav aria-label="Contacts Page Navigation">
<ul class="pagination justify-content-center m-0">
@if (ViewData["skip"] != null)
{
string skip = ViewData["skip"].ToString();
@Html.PagedListPager(Model, page => Url.Action("Faceall", new { page, skip }), new PagedListRenderOptions() { DisplayItemSliceAndTotal = false, MaximumPageNumbersToDisplay = 5 });
}
else
{ @Html.PagedListPager(Model, page => Url.Action("Faceall", new { page }), new PagedListRenderOptions() { DisplayItemSliceAndTotal = false, MaximumPageNumbersToDisplay = 5 })}
</ul>
</nav>
</div>
<div id="btn" onclick="tip()"></div>
</div>
</div>
<!-- /.card-body -->
</div>
</div>
<!-- /.card -->
<div class="col-sm-4" id="faceDetailsBox">
</div>
</div>
</div>
</section>
</div>
<script>
$(".pagination").addClass("pagination pagination-sm");
$(".pagination").children("li").addClass("page-item");
$(".page-item").children("a").addClass("page-link");
function unbundleBtn(sn, hotels, room) {
var list = {
faceNo: sn,
romm: room,
hotel: hotels
}
$.ajax({
url: "/App/Face/unbundleoperate",
data: list,
type: "post",// 提交方式
success: function (res) {
if (res.Status == 200) {
console.log(res.Status)
alert('解绑成功')
window.location.href = "/App/Face/unbundle";
}
else {
alert('解绑失败请查看人脸机是否在线')
}
}
});
}
function search() {//查询房间号按钮
var src = document.getElementById("txtOpname").value
var link = "/App/Face/unbundle" + '?skip=' + src
window.location.href = link;
}
</script>

View File

@@ -0,0 +1,44 @@
@using Face.Web.Areas.App.Models;
@{
Layout = null;
List<FileDetails> Akplist = (List<FileDetails>)ViewData["Akplist"];
}
<div class="table-responsive">
<table class="table table-bordered table-hover ">
<tbody>
@if (Akplist.Count != 0)
{
<tr class="table table-striped ">
<td>文件名</td>
<td>文件大小</td>
<td>文件日期</td>
</tr>
for (int i = 0; i < Akplist.Count; i++)
{
<tr onclick="issueAKP('@Akplist[i].Filename')">
<td ><a>@Akplist[i].Filename</a></td>
<td ><a>@Akplist[i].FileSize</a></td>
<td><a>@Akplist[i].UploadDate</a></td>
</tr>
}
}
</tbody>
</table>
</div>
<script>
function issueAKP(Filename) {//下发固件
var name = confirm('确定要下发固件名为' + Filename);
if (name != null && name != "") {
$.ajax({
url: "/App/Face/SetAPKSand",
type: "get",
data: { "ApkName": Filename },
success: function (res) {
alert('更新固件中...')
}
});
}
}
</script>

View File

@@ -0,0 +1,64 @@
@using Face.Web.Areas.App.Models;
@{
Layout = null;
List<FileDetails> Akplist = (List<FileDetails>)ViewData["Akplists"];
}
@*<div class="table-responsive">
<table class="table table-bordered table-hover ">
<tbody>*@
@*<select class="form-control" id="gujianinfos" onchange="gujianinfo()">
<option>
请选择固件
</option>
@if (Akplist.Count != 0)
{*@
@*<tr class="table table-striped ">
<td>文件名</td>
<td>文件大小</td>
<td>文件日期</td>
</tr>*@
@*for (int i = 0; i < Akplist.Count; i++)
{
<option value="@Akplist[i].Filename">
@Akplist[i].Filename
</option>*@
@*<tr onclick="OnShow('@Akplist[i].Filename')">
<td><a>@Akplist[i].Filename</a></td>
<td><a>@Math.Round(double.Parse(Akplist[i].FileSize) / (1024 * 1024))Mb</a></td>
<td><a>@Akplist[i].UploadDate</a></td>
</tr>*@
@*}
}
</select>*@
@*</tbody>
</table>
</div>*@
<script>
//function gujianinfo() {
// debugger
// console.log("uhfyushfudhuyf")
// var myType1 = document.getElementById("gujianinfo");//获取select对象
// console.log(myType1)
// var index1 = myType1.selectedIndex;//获取选项中的索引selectIndex表示的是当前所选中的index
// var code1 = myType1.options[index1].value;//获取固件名称
// console.log(code1)
//}
//function issueAKP(Filename) {//下发固件
// var name = confirm('确定要下发固件名为' + Filename);
// if (name != null && name != "") {
// $.ajax({
// url: "/App/Face/BatchSetAPKSand",
// type: "get",
// data: { "ApkName": Filename },
// success: function (res) {
// alert('更新固件中...')
// }
// });
// }
//}
</script>

View File

@@ -0,0 +1,38 @@
@using Face.Web.Areas.App.Models;
@{
Layout = null;
List<FileDetails> Akplist = (List<FileDetails>)ViewData["Akplists"];
}
<div class="table-responsive">
<table class="table table-bordered table-hover ">
<tbody>
@if (Akplist.Count != 0)
{
<tr class="table table-striped ">
<td>文件名</td>
<td>文件大小</td>
<td>文件日期</td>
</tr>
for (int i = 0; i < Akplist.Count; i++)
{
<tr onclick="issueBkgPngLogo('@Akplist[i].Filename')">
<td><a>@Akplist[i].Filename</a></td>
<td><a>@Akplist[i].FileSize</a></td>
<td><a>@Akplist[i].UploadDate</a></td>
</tr>
}
}
</tbody>
</table>
</div>
<script>
function issueBkgPngLogo(Filename) {//下发固件
var name = confirm('确定要下发图片名为' + Filename);
if (name != null && name != "") {
$("#photo").closest(".input-group").find("label").html(Filename);
$("#myModal").css("display", "none");
}
}
</script>

View File

@@ -0,0 +1,39 @@

@using Face.Web.Areas.App.Models;
@{
Layout = null;
List<FileDetails> Akplist = (List<FileDetails>)ViewData["Akplists"];
}
<div class="table-responsive">
<table class="table table-bordered table-hover ">
<tbody>
@if (Akplist.Count != 0)
{
<tr class="table table-striped ">
<td>文件名</td>
<td>文件大小</td>
<td>文件日期</td>
</tr>
for (int i = 0; i < Akplist.Count; i++)
{
<tr onclick="issueBkgPngLogo('@Akplist[i].Filename')">
<td><a>@Akplist[i].Filename</a></td>
<td><a>@Akplist[i].FileSize</a></td>
<td><a>@Akplist[i].UploadDate</a></td>
</tr>
}
}
</tbody>
</table>
</div>
<script>
function issueBkgPngLogo(Filename) {
var name = confirm('确定要下发图片名为' + Filename);
if (name != null && name != "") {
$("#photologo").closest(".input-group").find("label").html(Filename);
$("#myModal").css("display", "none");
}
}
</script>