Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Sign in
Toggle navigation
G
GS.Terminal.VisitorSelfService
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
终端组
GS.Terminal.VisitorSelfService
Commits
c399aa0d
Commit
c399aa0d
authored
Aug 03, 2020
by
姜春辉
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
完成度75%
parent
b0057a76
Hide whitespace changes
Inline
Side-by-side
Showing
34 changed files
with
699 additions
and
47 deletions
+699
-47
Design
Design
+1
-1
MainShellWindowStyle.xaml
....Theme/CommonResourceDictionary/MainShellWindowStyle.xaml
+7
-1
App.config
...itorSelfService/GS.Terminal.VisitorSelfService/App.config
+7
-3
Config.xml
...ice/Logic/GS.Terminal.VisitorSelfService.Logic/Config.xml
+1
-0
AppointmentDetailPageHandler.cs
...torSelfService.Logic/Core/AppointmentDetailPageHandler.cs
+52
-2
AuthenticationPageHandler.cs
...isitorSelfService.Logic/Core/AuthenticationPageHandler.cs
+24
-6
FootHandler.cs
.../GS.Terminal.VisitorSelfService.Logic/Core/FootHandler.cs
+16
-0
MenuPageHandler.FindAppointment.cs
...SelfService.Logic/Core/MenuPageHandler.FindAppointment.cs
+3
-3
MenuPageHandler.cs
...Terminal.VisitorSelfService.Logic/Core/MenuPageHandler.cs
+6
-2
SubmitVisitInfoResultHandler.cs
...torSelfService.Logic/Core/SubmitVisitInfoResultHandler.cs
+16
-0
GS.Terminal.VisitorSelfService.Logic.csproj
...Service.Logic/GS.Terminal.VisitorSelfService.Logic.csproj
+5
-0
LocalSetting.cs
...ogic/GS.Terminal.VisitorSelfService.Logic/LocalSetting.cs
+1
-1
WebApiCollectionResponseBody.cs
...rvice.Logic/Remote/Models/WebApiCollectionResponseBody.cs
+13
-0
WebApiPagingResponseBody.cs
...lfService.Logic/Remote/Models/WebApiPagingResponseBody.cs
+22
-0
WebApiResponseBody.cs
...itorSelfService.Logic/Remote/Models/WebApiResponseBody.cs
+14
-0
FaceRecognization.cs
....VisitorSelfService.Logic/ThirdAddon/FaceRecognization.cs
+8
-0
Foot.cs
...minal.VisitorSelfService/ViewModelView/ViewModels/Foot.cs
+8
-0
Head.cs
...minal.VisitorSelfService/ViewModelView/ViewModels/Head.cs
+20
-0
Locator.cs
...al.VisitorSelfService/ViewModelView/ViewModels/Locator.cs
+17
-0
ViewModel.cs
...lView/ViewModels/Pages/AppointmentDetailPage/ViewModel.cs
+34
-4
ViewModel.cs
...lView/ViewModels/Pages/SubmitVisitInfoResult/ViewModel.cs
+20
-0
ViewModels.csproj
...torSelfService/ViewModelView/ViewModels/ViewModels.csproj
+2
-0
Foot.xaml
...Terminal.VisitorSelfService/ViewModelView/Views/Foot.xaml
+1
-1
Head.xaml
...Terminal.VisitorSelfService/ViewModelView/Views/Head.xaml
+21
-0
Head.xaml.cs
...minal.VisitorSelfService/ViewModelView/Views/Head.xaml.cs
+65
-0
Index.xaml
...iewModelView/Views/Pages/AppointmentDetailPage/Index.xaml
+49
-22
Style.xaml
...iewModelView/Views/Pages/AppointmentDetailPage/Style.xaml
+141
-0
Index.xaml
...iewModelView/Views/Pages/SubmitVisitInfoResult/Index.xaml
+29
-0
Index.xaml.cs
...ModelView/Views/Pages/SubmitVisitInfoResult/Index.xaml.cs
+63
-0
Style.xaml
...iewModelView/Views/Pages/SubmitVisitInfoResult/Style.xaml
+8
-0
confirm-no.png
...rSelfService/ViewModelView/Views/Resources/confirm-no.png
+0
-0
confirm-yes.png
...SelfService/ViewModelView/Views/Resources/confirm-yes.png
+0
-0
result_correct.png
...fService/ViewModelView/Views/Resources/result_correct.png
+0
-0
Views.csproj
...minal.VisitorSelfService/ViewModelView/Views/Views.csproj
+25
-1
No files found.
Design
@
d818dd2a
Subproject commit
23b4e1552047da6689d94e81b225bc6a85983f0f
Subproject commit
d818dd2a50f8e4676ceb1e747fe55f9f84d28ad1
Src/GS.Terminal.VisitorSelfService/GS.Terminal.VisitorSelfService/Addons/GS.Terminal.Theme/CommonResourceDictionary/MainShellWindowStyle.xaml
View file @
c399aa0d
...
...
@@ -31,6 +31,12 @@
</Style>
<!-- 系统名称-->
<Style x:Key="MainShell_LogoText" TargetType="TextBlock">
</Style>
<Style x:Key="MainShell_HeadLeft" TargetType="Grid">
<Setter Property="Width" Value="900"/>
</Style>
<Style x:Key="MainShell_HeadRight" TargetType="Grid">
<Setter Property="Grid.Column" Value="1"/>
</Style>
</ResourceDictionary>
\ No newline at end of file
Src/GS.Terminal.VisitorSelfService/GS.Terminal.VisitorSelfService/App.config
View file @
c399aa0d
<?
xml
version
=
"1.0"
encoding
=
"utf-8"
?>
<
configuration
>
<
startup
>
<
supportedRuntime
version
=
"v4.0"
sku
=
".NETFramework,Version=v4.5.2"
/>
</
startup
>
<
startup
>
<
supportedRuntime
version
=
"v4.0"
sku
=
".NETFramework,Version=v4.5.2"
/>
</
startup
>
<
appSettings
>
<
add
key
=
"WebPath"
value
=
"http://192.168.1.112:5000/"
/>
<
add
key
=
"tCode"
value
=
"LCFK"
/>
</
appSettings
>
</
configuration
>
\ No newline at end of file
Src/GS.Terminal.VisitorSelfService/Logic/GS.Terminal.VisitorSelfService.Logic/Config.xml
View file @
c399aa0d
...
...
@@ -15,6 +15,7 @@
</Declare>
<Datas>
<Data
Description=
"获取人员有效预约单"
Key=
"VisitorAvailableAppointment"
ServiceUri=
"/api/GS.Sub.Vistor/VisitorSelfServiceTerminal/VisitorAvailableAppointment"
/>
<Data
Description=
"提交预约单到访"
Key=
"SubmitVisitInfo"
ServiceUri=
"/api/GS.Sub.Vistor/VisitorSelfServiceTerminal/SubmitVisitInfo"
/>
</Datas>
</Structure>
</Structures>
...
...
Src/GS.Terminal.VisitorSelfService/Logic/GS.Terminal.VisitorSelfService.Logic/Core/AppointmentDetailPageHandler.cs
View file @
c399aa0d
using
GS.Terminal.LogicShell.Interface
;
using
GS.Terminal.VisitorSelfService.Logic.Remote
;
using
GS.Terminal.VisitorSelfService.Logic.Remote.Models
;
using
GS.Terminal.VisitorSelfService.Logic.ThirdAddon
;
using
System
;
using
System.Collections.Generic
;
using
System.Drawing.Imaging
;
using
System.IO
;
using
System.Linq
;
using
System.Text
;
using
System.Threading.Tasks
;
...
...
@@ -22,7 +25,48 @@ namespace GS.Terminal.VisitorSelfService.Logic.Core
private
void
VM_OnSubmitClick
(
AppointmentItem
info
)
{
var
photoContent
=
""
;
using
(
var
photo
=
FaceRecognization
.
GetCurrentVideoFrame
())
{
using
(
MemoryStream
ms
=
new
MemoryStream
())
{
photo
.
Save
(
ms
,
ImageFormat
.
Jpeg
);
photoContent
=
Convert
.
ToBase64String
(
ms
.
ToArray
());
}
}
MainShell
.
ShowLoading
(
"提交中..."
);
Submit
(
info
.
id
,
photoContent
).
ContinueWith
(
task
=>
{
MainShell
.
HideLoading
();
if
(
task
.
Result
)
{
Handlers
.
GetHandler
<
SubmitVisitInfoResultHandler
>()?.
ShowView
();
}
});
}
private
async
Task
<
bool
>
Submit
(
Guid
appointmentId
,
string
photo
)
{
var
serviceUrl
=
LocalSetting
.
ServiceList
.
GetSerivceUri
(
"SubmitVisitInfo"
);
var
result
=
await
WebApi
.
PostAsync
<
WebApiResponseBody
>(
serviceUrl
,
new
{
LocalSetting
.
AppConfig
.
tCode
,
appointmentId
,
livePhoto
=
photo
});
if
(
result
==
null
)
{
MainShell
.
ShowPrompt
(
"通讯异常.请重试"
);
return
false
;
}
if
(
result
.
Status
)
return
result
.
Status
;
if
(!
result
.
Status
&&
!
string
.
IsNullOrEmpty
(
result
.
Message
))
{
MainShell
.
ShowPrompt
(
result
.
Message
);
return
false
;
}
MainShell
.
ShowPrompt
(
"数据提交失败"
);
return
false
;
}
private
void
VM_OnExitClick
()
...
...
@@ -43,12 +87,13 @@ namespace GS.Terminal.VisitorSelfService.Logic.Core
VM
.
Datas
=
datas
.
Select
(
ss
=>
{
var
item
=
new
AppointmentItem
();
item
.
id
=
ss
.
id
;
item
.
areaName
=
ss
.
visitArea
;
item
.
beVisitPerson
=
ss
.
visitPerson
;
item
.
endDate
=
ss
.
endDate
;
item
.
idCardNum
=
ss
.
visitorIdNum
;
item
.
phoneNum
=
ss
.
visitorPhone
;
item
.
photoUrl
=
ss
.
photo
;
item
.
photoUrl
=
productPhotoUrl
(
ss
.
photo
)
;
item
.
startDate
=
ss
.
startDate
;
item
.
visitorName
=
ss
.
visitorName
;
item
.
visitPeople
=
ss
.
numberOfPeople
;
...
...
@@ -61,7 +106,7 @@ namespace GS.Terminal.VisitorSelfService.Logic.Core
items
=
g
.
Select
(
content
=>
new
ViewModels
.
Pages
.
AppointmentDetailPage
.
AppointmentExtendInfo
{
title
=
content
.
title
,
content
=
content
.
content
,
content
=
content
.
type
==
"image"
?
productPhotoUrl
(
content
.
content
)
:
content
.
content
,
infotype
=
content
.
type
}).
ToList
()
}).
ToList
();
...
...
@@ -72,5 +117,10 @@ namespace GS.Terminal.VisitorSelfService.Logic.Core
VM
.
Appointment
=
VM
.
Datas
[
0
];
ShowView
();
}
private
string
productPhotoUrl
(
string
origin
)
{
return
$"
{
LocalSetting
.
AppConfig
.
WebPath
.
TrimEnd
(
'/'
)}
/FileStore/Image/
{
origin
}
?q=H"
;
}
}
}
Src/GS.Terminal.VisitorSelfService/Logic/GS.Terminal.VisitorSelfService.Logic/Core/AuthenticationPageHandler.cs
View file @
c399aa0d
using
GalaSoft.MvvmLight.Threading
;
using
GS.Terminal.LogicShell.Interface
;
using
GS.Terminal.VisitorSelfService.Logic.ThirdAddon
;
using
Newtonsoft.Json
;
using
OpenCvSharp
;
using
OpenCvSharp.Extensions
;
...
...
@@ -33,13 +34,15 @@ namespace GS.Terminal.VisitorSelfService.Logic.Core
/*读取二代证任务*/
private
WebSocket
_faceWebSocket
;
private
bool
_faceValidating
=
false
;
private
string
_fid
=
""
;
private
byte
[]
_currentFeature
=
null
;
public
override
void
Init
()
{
VM
.
OnExitClick
+=
VM_OnExitClick
;
VM
.
OnNavigateInto
+=
VM_OnNavigateInto
;
VM
.
OnNavigateOut
+=
VM_OnNavigateOut
;
VM
.
OnAuthModeChanged
+=
VM_OnAuthModeChanged
;
_FaceEngineId
=
ThirdAddon
.
FastRecognization
.
CreateFastFaceRecognized
(
null
,
null
,
null
,
0.85f
);
_FaceEngineId
=
ThirdAddon
.
FastRecognization
.
CreateFastFaceRecognized
(
null
,
FaceAlivness
,
null
,
0.85f
);
ThirdAddon
.
FastRecognization
.
Pause
(
_FaceEngineId
);
ThirdAddon
.
FastRecognization
.
RegistFeatureExtracted
(
_FaceEngineId
,
FaceFeatureExtracted
);
_secondCardReader
=
Task
.
Factory
.
StartNew
(
_SecondCardRead
);
...
...
@@ -59,7 +62,8 @@ namespace GS.Terminal.VisitorSelfService.Logic.Core
try
{
var
result
=
JsonConvert
.
DeserializeObject
<
FaceValidateResult
>(
e
.
Message
);
if
(
result
?.
result
!=
null
)
if
(
result
?.
result
!=
null
&&
result
.
score
>=
LocalSetting
.
AddonDefaultConfig
.
FaceMinValue
)
{
_faceValidating
=
true
;
if
(
_AuthSuccessCallback
!=
null
)
...
...
@@ -72,10 +76,11 @@ namespace GS.Terminal.VisitorSelfService.Logic.Core
}
}
}
catch
(
Exception
)
catch
(
Exception
ex
)
{
throw
;
Program
.
_Context
.
Logger
.
Error
(
$"查询有效预约单异常"
,
ex
);
MainShell
.
ShowPrompt
(
$"通讯异常"
);
_faceValidating
=
false
;
}
}
...
...
@@ -101,6 +106,7 @@ namespace GS.Terminal.VisitorSelfService.Logic.Core
_faceWebSocket
.
Open
();
ThirdAddon
.
FaceRecognization
.
RegistOutPutMatEvent
(
VideoOut
);
ThirdAddon
.
FastRecognization
.
Restart
(
_FaceEngineId
);
_faceValidating
=
false
;
}
else
{
...
...
@@ -122,9 +128,21 @@ namespace GS.Terminal.VisitorSelfService.Logic.Core
private
void
FaceFeatureExtracted
(
byte
[]
feature
,
string
fid
)
{
if
(!
_faceValidating
)
_faceWebSocket
.
Send
(
feature
,
0
,
feature
.
Length
);
{
_currentFeature
=
feature
;
_fid
=
fid
;
}
}
private
void
FaceAlivness
(
string
fid
,
int
result
)
{
if
(!
_faceValidating
)
{
if
(
fid
==
_fid
&&
result
==
1
)
_faceWebSocket
.
Send
(
_currentFeature
,
0
,
_currentFeature
.
Length
);
}
}
/// <summary>
/// 开始进行身份认证
/// </summary>
...
...
Src/GS.Terminal.VisitorSelfService/Logic/GS.Terminal.VisitorSelfService.Logic/Core/FootHandler.cs
0 → 100644
View file @
c399aa0d
using
System
;
using
System.Collections.Generic
;
using
System.Linq
;
using
System.Text
;
using
System.Threading.Tasks
;
namespace
GS.Terminal.VisitorSelfService.Logic.Core
{
public
class
FootHandler
:
Corebase
<
ViewModels
.
Foot
>
{
public
override
void
Init
()
{
VM
.
TCODE
=
LocalSetting
.
AppConfig
.
tCode
;
}
}
}
Src/GS.Terminal.VisitorSelfService/Logic/GS.Terminal.VisitorSelfService.Logic/Core/MenuPageHandler.FindAppointment.cs
View file @
c399aa0d
...
...
@@ -11,14 +11,14 @@ namespace GS.Terminal.VisitorSelfService.Logic.Core
{
public
partial
class
MenuPageHandler
{
private
async
Task
<
List
<
Appointment
>>
Find
(
string
key
,
AuthenticationMode
mode
)
private
async
Task
<
List
<
Appointment
>>
Find
(
string
key
value
,
AuthenticationMode
mode
)
{
var
type
=
"idnum"
;
if
(
mode
==
AuthenticationMode
.
QRCode
)
type
=
"qrcode"
;
var
serviceUrl
=
LocalSetting
.
ServiceList
.
GetSerivceUri
(
"VisitorAvailableAppointment"
);
var
result
=
await
WebApi
.
GetTAsync
<
List
<
Appointment
>>(
$"
{
serviceUrl
}{(
serviceUrl
.
Contains
(
"?"
)
?
"&"
:
"?"
)}
searchkey=
{
key
}
&searchvalue=
{
typ
e
}
"
);
return
result
;
var
result
=
await
WebApi
.
GetTAsync
<
WebApiCollectionResponseBody
<
Appointment
>>(
$"
{
serviceUrl
}{(
serviceUrl
.
Contains
(
"?"
)
?
"&"
:
"?"
)}
searchkey=
{
type
}
&searchvalue=
{
keyvalu
e
}
"
);
return
result
?.
records
;
}
}
}
Src/GS.Terminal.VisitorSelfService/Logic/GS.Terminal.VisitorSelfService.Logic/Core/MenuPageHandler.cs
View file @
c399aa0d
...
...
@@ -35,14 +35,18 @@ namespace GS.Terminal.VisitorSelfService.Logic.Core
private
async
Task
<
bool
>
AuthSuccess
(
AuthenticationMode
mode
,
object
data
)
{
//((dynamic)data).cardid 身份证芯片号
MainShell
.
ShowLoading
(
"正在查找"
);
var
findResult
=
await
Find
(
data
.
ToString
(),
mode
);
MainShell
.
ShowPrompt
(
$"查找完成"
);
var
findResult
=
await
Find
(
mode
==
AuthenticationMode
.
IdCard
?
((
dynamic
)
data
).
number
:
data
.
ToString
(),
mode
);
MainShell
.
HideLoading
();
if
(
findResult
?.
Count
>
0
)
{
Handlers
.
GetHandler
<
AppointmentDetailPageHandler
>()?.
ShowDetail
(
findResult
);
}
else
{
MainShell
.
ShowPrompt
(
$"没有找到有效的预约单"
);
}
return
findResult
?.
Count
>
0
;
}
...
...
Src/GS.Terminal.VisitorSelfService/Logic/GS.Terminal.VisitorSelfService.Logic/Core/SubmitVisitInfoResultHandler.cs
0 → 100644
View file @
c399aa0d
using
System
;
using
System.Collections.Generic
;
using
System.Linq
;
using
System.Text
;
using
System.Threading.Tasks
;
namespace
GS.Terminal.VisitorSelfService.Logic.Core
{
public
class
SubmitVisitInfoResultHandler
:
Corebase
<
ViewModels
.
Pages
.
SubmitVisitInfoResult
.
ViewModel
>
{
public
override
void
Init
()
{
}
}
}
Src/GS.Terminal.VisitorSelfService/Logic/GS.Terminal.VisitorSelfService.Logic/GS.Terminal.VisitorSelfService.Logic.csproj
View file @
c399aa0d
...
...
@@ -109,16 +109,21 @@
<Compile
Include=
"Core\AuthenticationPageHandler.cs"
/>
<Compile
Include=
"Core\Corebase.cs"
/>
<Compile
Include=
"Core\FeatureCompareHandler.cs"
/>
<Compile
Include=
"Core\FootHandler.cs"
/>
<Compile
Include=
"Core\HistoryAppointmentPageHandler.cs"
/>
<Compile
Include=
"Core\HistoryMenuPageHandler.cs"
/>
<Compile
Include=
"Core\HistoryVisitPageHandler.cs"
/>
<Compile
Include=
"Core\MenuPageHandler.cs"
/>
<Compile
Include=
"Core\MenuPageHandler.FindAppointment.cs"
/>
<Compile
Include=
"Core\SubmitVisitInfoResultHandler.cs"
/>
<Compile
Include=
"Handlers.cs"
/>
<Compile
Include=
"LocalSetting.cs"
/>
<Compile
Include=
"Program.cs"
/>
<Compile
Include=
"Properties\AssemblyInfo.cs"
/>
<Compile
Include=
"Remote\Models\Appointment.cs"
/>
<Compile
Include=
"Remote\Models\WebApiCollectionResponseBody.cs"
/>
<Compile
Include=
"Remote\Models\WebApiPagingResponseBody.cs"
/>
<Compile
Include=
"Remote\Models\WebApiResponseBody.cs"
/>
<Compile
Include=
"Remote\WebApi.cs"
/>
<Compile
Include=
"ThirdAddon\DeviceManager.cs"
/>
<Compile
Include=
"ThirdAddon\FaceRecognization.cs"
/>
...
...
Src/GS.Terminal.VisitorSelfService/Logic/GS.Terminal.VisitorSelfService.Logic/LocalSetting.cs
View file @
c399aa0d
...
...
@@ -31,7 +31,7 @@ namespace GS.Terminal.VisitorSelfService.Logic
{
public
string
WebPath
{
get
;
set
;
}
public
string
ServerIP
{
get
;
set
;
}
public
string
d
Code
{
get
;
set
;
}
public
string
t
Code
{
get
;
set
;
}
}
public
class
ServiceList
:
IStructureSetting
<
ServiceListItem
>
...
...
Src/GS.Terminal.VisitorSelfService/Logic/GS.Terminal.VisitorSelfService.Logic/Remote/Models/WebApiCollectionResponseBody.cs
0 → 100644
View file @
c399aa0d
using
System
;
using
System.Collections.Generic
;
using
System.Linq
;
using
System.Text
;
using
System.Threading.Tasks
;
namespace
GS.Terminal.VisitorSelfService.Logic.Remote.Models
{
public
class
WebApiCollectionResponseBody
<
RECORDT
>
:
WebApiResponseBody
{
public
List
<
RECORDT
>
records
{
get
;
set
;
}
}
}
Src/GS.Terminal.VisitorSelfService/Logic/GS.Terminal.VisitorSelfService.Logic/Remote/Models/WebApiPagingResponseBody.cs
0 → 100644
View file @
c399aa0d
using
System
;
using
System.Collections.Generic
;
using
System.Drawing.Imaging
;
using
System.Linq
;
using
System.Text
;
using
System.Threading.Tasks
;
namespace
GS.Terminal.VisitorSelfService.Logic.Remote.Models
{
public
class
WebApiPagingResponseBody
<
RECORDT
>
:
WebApiCollectionResponseBody
<
RECORDT
>
{
public
Paging
paging
{
get
;
set
;
}
}
public
class
Paging
{
public
int
currentIndex
{
get
;
set
;
}
public
int
totalPage
{
get
;
set
;
}
public
int
totalRecord
{
get
;
set
;
}
}
}
Src/GS.Terminal.VisitorSelfService/Logic/GS.Terminal.VisitorSelfService.Logic/Remote/Models/WebApiResponseBody.cs
0 → 100644
View file @
c399aa0d
using
System
;
using
System.Collections.Generic
;
using
System.Linq
;
using
System.Text
;
using
System.Threading.Tasks
;
namespace
GS.Terminal.VisitorSelfService.Logic.Remote.Models
{
public
class
WebApiResponseBody
{
public
bool
Status
{
get
;
set
;
}
public
string
Message
{
get
;
set
;
}
}
}
Src/GS.Terminal.VisitorSelfService/Logic/GS.Terminal.VisitorSelfService.Logic/ThirdAddon/FaceRecognization.cs
View file @
c399aa0d
...
...
@@ -60,5 +60,13 @@ namespace GS.Terminal.VisitorSelfService.Logic.ThirdAddon
{
return
_Service
?.
MathFaceData
(
origin
,
toMatch
);
}
/// <summary>
/// 拍照
/// </summary>
/// <returns></returns>
public
static
Bitmap
GetCurrentVideoFrame
()
{
return
_Service
?.
GetCurrentVideoFrame
();
}
}
}
Src/GS.Terminal.VisitorSelfService/ViewModelView/ViewModels/Foot.cs
View file @
c399aa0d
...
...
@@ -12,6 +12,14 @@ namespace ViewModels
{
public
string
ViewID
=>
"7ba312aa-b0a2-4136-badc-52e362ddedad"
;
private
string
_TCODE
;
public
string
TCODE
{
get
{
return
_TCODE
;
}
set
{
_TCODE
=
value
;
RaisePropertyChanged
(
"TCODE"
);
}
}
public
void
Reset
()
{
...
...
Src/GS.Terminal.VisitorSelfService/ViewModelView/ViewModels/Head.cs
0 → 100644
View file @
c399aa0d
using
GalaSoft.MvvmLight
;
using
GS.Terminal.LogicShell.Interface
;
using
System
;
using
System.Collections.Generic
;
using
System.Linq
;
using
System.Text
;
using
System.Threading.Tasks
;
namespace
ViewModels
{
public
class
Head
:
ViewModelBase
,
IViewModel
{
public
string
ViewID
=>
"e6e8e46f-c8e6-4f34-b088-bba5b9276276"
;
public
void
Reset
()
{
}
}
}
Src/GS.Terminal.VisitorSelfService/ViewModelView/ViewModels/Locator.cs
View file @
c399aa0d
...
...
@@ -18,6 +18,7 @@ namespace ViewModels
{
ServiceLocator
.
SetLocatorProvider
(()
=>
SimpleIoc
.
Default
);
CheckRegistVM
<
Foot
>();
CheckRegistVM
<
Head
>();
CheckRegistVM
<
Pages
.
MenuPage
.
ViewModel
>();
CheckRegistVM
<
Pages
.
AuthenticationPage
.
ViewModel
>();
CheckRegistVM
<
Pages
.
AppointmentDetailPage
.
ViewModel
>();
...
...
@@ -25,6 +26,7 @@ namespace ViewModels
CheckRegistVM
<
Pages
.
HistoryAppointmentPage
.
ViewModel
>();
CheckRegistVM
<
Pages
.
HistoryMenuPage
.
ViewModel
>();
CheckRegistVM
<
PopWindows
.
FeatureCompare
.
ViewModel
>();
CheckRegistVM
<
Pages
.
SubmitVisitInfoResult
.
ViewModel
>();
}
private
void
CheckRegistVM
<
T
>()
where
T
:
class
...
...
@@ -46,6 +48,13 @@ namespace ViewModels
}
}
public
Head
Head
{
get
{
return
SimpleIoc
.
Default
.
GetInstance
<
Head
>();
}
}
public
Pages
.
MenuPage
.
ViewModel
MenuPage
{
get
...
...
@@ -101,5 +110,13 @@ namespace ViewModels
return
SimpleIoc
.
Default
.
GetInstance
<
PopWindows
.
FeatureCompare
.
ViewModel
>();
}
}
public
Pages
.
SubmitVisitInfoResult
.
ViewModel
SubmitVisitInfoResult
{
get
{
return
SimpleIoc
.
Default
.
GetInstance
<
Pages
.
SubmitVisitInfoResult
.
ViewModel
>();
}
}
}
}
Src/GS.Terminal.VisitorSelfService/ViewModelView/ViewModels/Pages/AppointmentDetailPage/ViewModel.cs
View file @
c399aa0d
...
...
@@ -27,11 +27,20 @@ namespace ViewModels.Pages.AppointmentDetailPage
RaisePropertyChanged
(
"Appointment"
);
RaisePropertyChanged
(
nameof
(
ShowLeftBtn
));
RaisePropertyChanged
(
nameof
(
ShowRightBtn
));
RaisePropertyChanged
(
nameof
(
HasExtendInfo
));
ShowExtendInfo
=
Visibility
.
Collapsed
;
}
}
private
Visibility
ShowLeftBtn
public
bool
HasExtendInfo
{
get
{
return
Appointment
?.
extends
?.
Count
>
0
;
}
}
public
Visibility
ShowLeftBtn
{
get
{
...
...
@@ -48,7 +57,7 @@ namespace ViewModels.Pages.AppointmentDetailPage
}
}
p
rivate
Visibility
ShowRightBtn
p
ublic
Visibility
ShowRightBtn
{
get
{
...
...
@@ -73,6 +82,14 @@ namespace ViewModels.Pages.AppointmentDetailPage
set
{
_ShowExtendInfo
=
value
;
RaisePropertyChanged
(
"ShowExtendInfo"
);
}
}
private
bool
_ShowConfirm
;
public
bool
ShowConfirm
{
get
{
return
_ShowConfirm
;
}
set
{
_ShowConfirm
=
value
;
RaisePropertyChanged
(
"ShowConfirm"
);
}
}
public
RelayCommand
ShowExtendInfoCommand
=>
new
RelayCommand
(()
=>
{
...
...
@@ -103,9 +120,21 @@ namespace ViewModels.Pages.AppointmentDetailPage
});
public
event
Action
<
AppointmentItem
>
OnSubmitClick
;
public
RelayCommand
<
AppointmentItem
>
SubmitCommand
=>
new
RelayCommand
<
AppointmentItem
>(
info
=>
public
RelayCommand
SubmitCommand
=>
new
RelayCommand
(()
=>
{
ShowConfirm
=
true
;
//OnSubmitClick?.Invoke(info);
});
public
RelayCommand
ConfirmClose
=>
new
RelayCommand
(()
=>
{
ShowConfirm
=
false
;
});
public
RelayCommand
ConfirmYes
=>
new
RelayCommand
(()
=>
{
OnSubmitClick
?.
Invoke
(
info
);
ShowConfirm
=
false
;
OnSubmitClick
?.
Invoke
(
Appointment
);
});
public
void
Reset
()
...
...
@@ -117,6 +146,7 @@ namespace ViewModels.Pages.AppointmentDetailPage
public
class
AppointmentItem
{
public
Guid
id
{
get
;
set
;
}
public
string
visitorName
{
get
;
set
;
}
public
string
photoUrl
{
get
;
set
;
}
public
string
idCardNum
{
get
;
set
;
}
...
...
Src/GS.Terminal.VisitorSelfService/ViewModelView/ViewModels/Pages/SubmitVisitInfoResult/ViewModel.cs
0 → 100644
View file @
c399aa0d
using
GalaSoft.MvvmLight
;
using
GS.Terminal.LogicShell.Interface
;
using
System
;
using
System.Collections.Generic
;
using
System.Linq
;
using
System.Text
;
using
System.Threading.Tasks
;
namespace
ViewModels.Pages.SubmitVisitInfoResult
{
public
class
ViewModel
:
ViewModelBase
,
IViewModel
{
public
string
ViewID
=>
"cc808936-9d19-4e9c-86b7-3620cedd72fe"
;
public
void
Reset
()
{
}
}
}
Src/GS.Terminal.VisitorSelfService/ViewModelView/ViewModels/ViewModels.csproj
View file @
c399aa0d
...
...
@@ -65,6 +65,7 @@
</ItemGroup>
<ItemGroup>
<Compile
Include=
"Foot.cs"
/>
<Compile
Include=
"Head.cs"
/>
<Compile
Include=
"Locator.cs"
/>
<Compile
Include=
"Pages\AppointmentDetailPage\ViewModel.cs"
/>
<Compile
Include=
"Pages\AuthenticationPage\ViewModel.cs"
/>
...
...
@@ -72,6 +73,7 @@
<Compile
Include=
"Pages\HistoryMenuPage\ViewModel.cs"
/>
<Compile
Include=
"Pages\HistoryVisitPage\ViewModel.cs"
/>
<Compile
Include=
"Pages\MenuPage\ViewModel.cs"
/>
<Compile
Include=
"Pages\SubmitVisitInfoResult\ViewModel.cs"
/>
<Compile
Include=
"PopWindows\FeatureCompare\ViewModel.cs"
/>
<Compile
Include=
"Properties\AssemblyInfo.cs"
/>
</ItemGroup>
...
...
Src/GS.Terminal.VisitorSelfService/ViewModelView/Views/Foot.xaml
View file @
c399aa0d
...
...
@@ -8,7 +8,7 @@
d:DesignHeight="45" d:DesignWidth="1080"
Title="Foot">
<Grid>
<TextBlock Text="
设备编号: SYL106
" Foreground="White" HorizontalAlignment="Right" VerticalAlignment="Center" FontSize="24"/>
<TextBlock Text="
{Binding TCODE,StringFormat={}设备编号: {0}}
" Foreground="White" HorizontalAlignment="Right" VerticalAlignment="Center" FontSize="24"/>
<TextBlock Text="青岛通软网络科技有限公司" Foreground="White" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="24"/>
</Grid>
</Page>
Src/GS.Terminal.VisitorSelfService/ViewModelView/Views/Head.xaml
0 → 100644
View file @
c399aa0d
<Page x:Class="Views.Head"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:Views"
mc:Ignorable="d"
d:DesignHeight="180" d:DesignWidth="800"
Title="Head">
<Grid>
<Border Width="100" Height="100" CornerRadius="50"
HorizontalAlignment="Right" Margin="0,0,30,0"
BorderThickness="4" BorderBrush="#4070ff">
<TextBlock Foreground="#4070ff" HorizontalAlignment="Center" VerticalAlignment="Center"
FontSize="60"
Text="59">
</TextBlock>
</Border>
</Grid>
</Page>
Src/GS.Terminal.VisitorSelfService/ViewModelView/Views/Head.xaml.cs
0 → 100644
View file @
c399aa0d
using
GS.Terminal.LogicShell.Attributes
;
using
GS.Terminal.LogicShell.Interface
;
using
GS.Unitive.Framework.Security.Core
;
using
System
;
using
System.Collections.Generic
;
using
System.ComponentModel.Composition
;
using
System.Linq
;
using
System.Text
;
using
System.Threading.Tasks
;
using
System.Windows
;
using
System.Windows.Controls
;
using
System.Windows.Data
;
using
System.Windows.Documents
;
using
System.Windows.Input
;
using
System.Windows.Media
;
using
System.Windows.Media.Imaging
;
using
System.Windows.Navigation
;
using
System.Windows.Shapes
;
namespace
Views
{
/// <summary>
/// Head.xaml 的交互逻辑
/// </summary>
[
MainShellPartView
(
PartType
.
HEAD
)]
[
Export
(
typeof
(
IView
))]
[
UnitiveView
(
"头部"
,
""
,
"e6e8e46f-c8e6-4f34-b088-bba5b9276276"
,
null
)]
public
partial
class
Head
:
Page
,
IView
{
public
Head
()
{
InitializeComponent
();
}
public
void
BindDataContext
(
IViewModel
vm
)
{
DataContext
=
vm
;
}
public
object
Clone
()
{
throw
new
NotImplementedException
();
}
public
void
GoBack
()
{
throw
new
NotImplementedException
();
}
public
void
GoForward
()
{
throw
new
NotImplementedException
();
}
public
void
NavigateToContent
(
object
content
)
{
throw
new
NotImplementedException
();
}
public
void
Reset
()
{
throw
new
NotImplementedException
();
}
}
}
Src/GS.Terminal.VisitorSelfService/ViewModelView/Views/Pages/AppointmentDetailPage/Index.xaml
View file @
c399aa0d
...
...
@@ -13,8 +13,34 @@
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Style.xaml"/>
</ResourceDictionary.MergedDictionaries>
<BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter"/>
<Storyboard x:Key="SB_ConfirmIn">
<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[3].(TranslateTransform.Y)" Storyboard.TargetName="confirm">
<EasingDoubleKeyFrame KeyTime="0:0:0.2" Value="0">
<EasingDoubleKeyFrame.EasingFunction>
<BackEase EasingMode="EaseOut" Amplitude="1"/>
</EasingDoubleKeyFrame.EasingFunction>
</EasingDoubleKeyFrame>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
<Storyboard x:Key="SB_ConfirmOut">
<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[3].(TranslateTransform.Y)" Storyboard.TargetName="confirm">
<EasingDoubleKeyFrame KeyTime="0" Value="0"/>
<EasingDoubleKeyFrame KeyTime="0:0:0.1" Value="475"/>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
</ResourceDictionary>
</Page.Resources>
<Page.Triggers>
<EventTrigger RoutedEvent="ToggleButton.Checked" SourceName="chk_showconfirm">
<BeginStoryboard Storyboard="{StaticResource SB_ConfirmIn}"/>
</EventTrigger>
<EventTrigger RoutedEvent="ToggleButton.Unchecked" SourceName="chk_showconfirm">
<BeginStoryboard x:Name="SB_ConfirmOut_BeginStoryboard" Storyboard="{StaticResource SB_ConfirmOut}"/>
</EventTrigger>
</Page.Triggers>
<Grid>
<Grid Margin="0,110,0,0">
<Grid.RowDefinitions>
...
...
@@ -34,22 +60,19 @@
<Border Grid.Column="1" CornerRadius="5"
Padding="31,31,31,0" BorderThickness="4" BorderBrush="#e5e4e6">
<StackPanel>
<Image Source="{Binding Appointment.photoUrl}" Width="260" Height="370"/>
<Image Source="{Binding Appointment.photoUrl}"
Stretch="Fill"
Width="260" Height="370"/>
<TextBlock Text="{Binding Appointment.visitorName}" FontSize="42" HorizontalAlignment="Center" Margin="0,5,0,0"/>
</StackPanel>
</Border>
<Button Width="100" Height="100" HorizontalAlignment="Left"
Command="{Binding ShowExtendInfoCommand}"
Visibility="{Binding HasExtendInfo, Converter={StaticResource BooleanToVisibilityConverter}}"
VerticalAlignment="Bottom" Margin="20,0,0,0" Grid.Column="2">
<Button.Template>
<ControlTemplate TargetType="
Button
">
<ControlTemplate TargetType="
{x:Type Button}
">
<Border x:Name="PART_bg" BorderThickness="1" BorderBrush="#e1e0df" CornerRadius="5">
<TextBlock FontSize="26"
HorizontalAlignment="Center" VerticalAlignment="Center">
<Run Text="附加"/>
<LineBreak/>
<Run Text="信息"/>
</TextBlock>
HorizontalAlignment="Center" VerticalAlignment="Center"><Run Text="附加"/><LineBreak/><Run Text="信息"/></TextBlock>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsPressed" Value="True">
...
...
@@ -89,37 +112,41 @@
<ContentControl Grid.Row="2" Template="{StaticResource AppointmentDetailPage_Line}" Grid.ColumnSpan="2"/>
<TextBlock Text="来访日期" Grid.Row="3" Style="{StaticResource AppointmentDetailPage_Title}"/>
<TextBlock Grid.Row="3" Style="{StaticResource AppointmentDetailPage_Value}">
<Run Text="{Binding Appointment.startDate,StringFormat={}{0:yyyy-MM-dd}}"/>
<Run Text=" 到 "/>
<Run Text="{Binding Appointment.endDate,StringFormat={}{0:yyyy-MM-dd}}"/>
</TextBlock>
<TextBlock Grid.Row="3" Style="{StaticResource AppointmentDetailPage_Value}"><Run Text="{Binding Appointment.startDate, StringFormat=\{0:yyyy-MM-dd\}}"/><Run Text=" "/><Run Text=" 到 "/><Run Text=" "/><Run Text="{Binding Appointment.endDate, StringFormat=\{0:yyyy-MM-dd\}}"/></TextBlock>
<TextBlock Text="来访区域" Grid.Row="4" Style="{StaticResource AppointmentDetailPage_Title}"/>
<TextBlock Text="{Binding Appointment.
photoUrl
}" Grid.Row="4" Style="{StaticResource AppointmentDetailPage_Value}"/>
<TextBlock Text="{Binding Appointment.
areaName
}" Grid.Row="4" Style="{StaticResource AppointmentDetailPage_Value}"/>
<TextBlock Text="来访人数" Grid.Row="5" Style="{StaticResource AppointmentDetailPage_Title}"/>
<TextBlock Text="{Binding Appointment.
photoUrl,StringFormat={}{0
}人}" Grid.Row="5" Style="{StaticResource AppointmentDetailPage_Value}"/>
<TextBlock Text="{Binding Appointment.
visitPeople, StringFormat=\{0\
}人}" Grid.Row="5" Style="{StaticResource AppointmentDetailPage_Value}"/>
<ContentControl Grid.Row="6" Template="{StaticResource AppointmentDetailPage_Line}" Grid.ColumnSpan="2"/>
<TextBlock Text="被访人" Grid.Row="7" Style="{StaticResource AppointmentDetailPage_Title}"/>
<TextBlock Text="{Binding Appointment.
photoUrl
}" TextWrapping="WrapWithOverflow" Grid.Row="7" Style="{StaticResource AppointmentDetailPage_Value}"/>
<TextBlock Text="{Binding Appointment.
beVisitPerson
}" TextWrapping="WrapWithOverflow" Grid.Row="7" Style="{StaticResource AppointmentDetailPage_Value}"/>
</Grid>
<!--按钮-->
<StackPanel Grid.Row="2">
<gs:ImageButtonFix Width="1010" Height="230" Image="/Views;component/Resources/detail_submit.png"/>
<gs:ImageButtonFix
Command="{Binding SubmitCommand}"
Width="1010" Height="230" Image="/Views;component/Resources/detail_submit.png"/>
<gs:ImageButtonFix Command="{Binding ExitCommand}" Width="1010" Height="190" Image="/Views;component/Resources/detail_cancel.png"/>
</StackPanel>
</Grid>
<!--附加信息-->
<Grid Background="Transparent" Grid.RowSpan="3">
<Border Width="920" Height="1630" BorderThickness="6"
CornerRadius="10"
Background="#ffffff" BorderBrush="#f1f1f1">
<ContentControl d:IsHidden="True" Template="{StaticResource AppointmentDetailPage_ExtendInfo}" Visibility="{Binding ShowExtendInfo}"/>
<ContentControl Template="{StaticResource AppointmentDetailPage_Confirm}"
x:Name="confirm"
RenderTransformOrigin="0.5,0.5">
<ContentControl.RenderTransform>
<TransformGroup>
<ScaleTransform/>
<SkewTransform/>
<RotateTransform/>
<TranslateTransform Y="475"/>
</TransformGroup>
</ContentControl.RenderTransform>
</Border
>
<
/Grid
>
</ContentControl
>
<
CheckBox x:Name="chk_showconfirm" IsChecked="{Binding ShowConfirm}" Visibility="Collapsed"/
>
</Grid>
</Page>
Src/GS.Terminal.VisitorSelfService/ViewModelView/Views/Pages/AppointmentDetailPage/Style.xaml
View file @
c399aa0d
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:gs="clr-namespace:Develop.Extension.Wpf;assembly=Develop.Extension.Wpf"
xmlns:local="clr-namespace:Views.Pages.AppointmentDetailPage">
<ControlTemplate x:Key="AppointmentDetailPage_Line" TargetType="ContentControl">
<StackPanel VerticalAlignment="Center">
...
...
@@ -24,4 +25,144 @@
<Setter Property="TextTrimming" Value="CharacterEllipsis"/>
<Setter Property="Foreground" Value="#2a2b2d"/>
</Style>
<ControlTemplate x:Key="AppointmentDetailPage_ExtendInfoListTemplate" TargetType="ListView">
<ScrollViewer HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Auto"
Style="{DynamicResource scrollviewerStyle}">
<ItemsPresenter/>
</ScrollViewer>
</ControlTemplate>
<ItemsPanelTemplate x:Key="AppointmentDetailPage_ExtendInfoListItemsPanel">
<StackPanel/>
</ItemsPanelTemplate>
<Style x:Key="AppointmentDetailPage_ExtendInfoListItemStyle" TargetType="ListViewItem">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ListViewItem">
<Border VerticalAlignment="Top" Margin="0,60,0,0"
BorderThickness="0,0,0,2" BorderBrush="#e1e2e3">
<Border BorderThickness="0,0,0,2" BorderBrush="#f4f4f4"
Padding="0,0,0,20">
<Grid>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<TextBlock Text="{Binding groupName}" FontSize="40"/>
<ListView Grid.Row="1" ItemsSource="{Binding items}">
<ListView.Template>
<ControlTemplate TargetType="ListView">
<ItemsPresenter/>
</ControlTemplate>
</ListView.Template>
<ListView.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel/>
</ItemsPanelTemplate>
</ListView.ItemsPanel>
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Style.Triggers>
<DataTrigger Binding="{Binding infotype}" Value="text">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ListViewItem">
<Grid Margin="0,20,0,20" Height="auto">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="2*"/>
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding title}" Foreground="#787f8e" FontSize="36"
TextWrapping="Wrap"
HorizontalAlignment="Left"/>
<TextBlock Text="{Binding content}"
TextWrapping="NoWrap" TextTrimming="CharacterEllipsis"
Foreground="#2a2b2d" FontSize="36"
Grid.Column="1" HorizontalAlignment="Right"/>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</DataTrigger>
<DataTrigger Binding="{Binding infotype}" Value="image">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ListViewItem">
<Grid Margin="0,20,0,20" Height="auto">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="2*"/>
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding title}"
TextWrapping="Wrap" VerticalAlignment="Center"
Foreground="#787f8e" FontSize="36"
HorizontalAlignment="Left"/>
<Image Grid.Column="1" Margin="80,0,0,0"
HorizontalAlignment="Right" Stretch="Fill"
Source="{Binding content}"/>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</ListView.ItemContainerStyle>
</ListView>
</Grid>
</Border>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<ControlTemplate x:Key="AppointmentDetailPage_ExtendInfo" TargetType="ContentControl">
<Grid Background="Transparent" >
<Border Width="920" Height="1630" BorderThickness="6"
CornerRadius="15" Padding="45,25,45,25"
Background="#ffffff" BorderBrush="#f1f1f1">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="100"/>
<RowDefinition/>
</Grid.RowDefinitions>
<TextBlock Text="附加信息" Foreground="#2a2b2d" HorizontalAlignment="Left" VerticalAlignment="Center" FontSize="48"/>
<gs:IconButton Icon="圆圈叉号" HorizontalAlignment="Right"
Command="{Binding CloseExtendInfoCommand}"
VerticalAlignment="Center" FontSize="100"/>
<ListView Grid.Row="1" Template="{StaticResource AppointmentDetailPage_ExtendInfoListTemplate}"
ItemsSource="{Binding Appointment.extends}"
ItemsPanel="{StaticResource AppointmentDetailPage_ExtendInfoListItemsPanel}"
ItemContainerStyle="{StaticResource AppointmentDetailPage_ExtendInfoListItemStyle}"/>
</Grid>
</Border>
</Grid>
</ControlTemplate>
<ControlTemplate x:Key="AppointmentDetailPage_Confirm" TargetType="ContentControl">
<Border Grid.Row="2" Height="420" Background="White"
BorderThickness="6" CornerRadius="15" BorderBrush="#f1f1f1"
Margin="50,0,50,50" Padding="50"
VerticalAlignment="Bottom" >
<Grid>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition Height="160"/>
</Grid.RowDefinitions>
<TextBlock Text="确定提交到访信息?" FontSize="48"
HorizontalAlignment="Center" VerticalAlignment="Center"
TextWrapping="Wrap"/>
<StackPanel Grid.Row="1" Orientation="Horizontal" HorizontalAlignment="Center">
<gs:ImageButtonFix Command="{Binding ConfirmClose}" Width="360" Height="160" Image="/Views;component/Resources/confirm-no.png"/>
<gs:ImageButtonFix Command="{Binding ConfirmYes}" Width="360" Height="160" Image="/Views;component/Resources/confirm-yes.png"/>
</StackPanel>
</Grid>
</Border>
</ControlTemplate>
</ResourceDictionary>
\ No newline at end of file
Src/GS.Terminal.VisitorSelfService/ViewModelView/Views/Pages/SubmitVisitInfoResult/Index.xaml
0 → 100644
View file @
c399aa0d
<Page x:Class="Views.Pages.SubmitVisitInfoResult.Index"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:Views.Pages.SubmitVisitInfoResult"
mc:Ignorable="d"
d:DesignHeight="1695" d:DesignWidth="1080"
Title="Index">
<Page.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Style.xaml"/>
<ResourceDictionary Source="../../Resources/CommonDictionary.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Page.Resources>
<Grid>
<StackPanel VerticalAlignment="Center">
<Image Source="/Views;component/Resources/result_correct.png"
Width="330" Height="330"
HorizontalAlignment="Center" VerticalAlignment="Center"/>
<TextBlock Text="登记成功!" Foreground="#62ba67" FontSize="72" Margin="0,50,0,0"/>
<TextBlock Text="欢迎来访,您已获得通行权限可以在来访区域通行了!" FontSize="36" Margin="0,70,0,0"/>
<TextBlock Text="5秒后自动跳转至首页" Margin="0,216,0,0" FontSize="24"/>
<Button Width="460" Height="80" Margin="0,70,0,0" Template="{StaticResource CommonButton}" Content="返回首页" FontSize="36"/>
</StackPanel>
</Grid>
</Page>
Src/GS.Terminal.VisitorSelfService/ViewModelView/Views/Pages/SubmitVisitInfoResult/Index.xaml.cs
0 → 100644
View file @
c399aa0d
using
GS.Terminal.LogicShell.Interface
;
using
GS.Unitive.Framework.Security.Core
;
using
System
;
using
System.Collections.Generic
;
using
System.ComponentModel.Composition
;
using
System.Linq
;
using
System.Text
;
using
System.Threading.Tasks
;
using
System.Windows
;
using
System.Windows.Controls
;
using
System.Windows.Data
;
using
System.Windows.Documents
;
using
System.Windows.Input
;
using
System.Windows.Media
;
using
System.Windows.Media.Imaging
;
using
System.Windows.Navigation
;
using
System.Windows.Shapes
;
namespace
Views.Pages.SubmitVisitInfoResult
{
/// <summary>
/// Index.xaml 的交互逻辑
/// </summary>
[
Export
(
typeof
(
IView
))]
[
UnitiveView
(
"登记结果显示"
,
""
,
"cc808936-9d19-4e9c-86b7-3620cedd72fe"
,
null
)]
public
partial
class
Index
:
Page
,
IView
{
public
Index
()
{
InitializeComponent
();
}
public
void
BindDataContext
(
IViewModel
vm
)
{
DataContext
=
vm
;
}
public
object
Clone
()
{
throw
new
NotImplementedException
();
}
public
void
GoBack
()
{
throw
new
NotImplementedException
();
}
public
void
GoForward
()
{
throw
new
NotImplementedException
();
}
public
void
NavigateToContent
(
object
content
)
{
throw
new
NotImplementedException
();
}
public
void
Reset
()
{
throw
new
NotImplementedException
();
}
}
}
Src/GS.Terminal.VisitorSelfService/ViewModelView/Views/Pages/SubmitVisitInfoResult/Style.xaml
0 → 100644
View file @
c399aa0d
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:Views.Pages.SubmitVisitInfoResult">
<Style TargetType="TextBlock">
<Setter Property="HorizontalAlignment" Value="Center"/>
<Setter Property="Foreground" Value="#2a2b2d"/>
</Style>
</ResourceDictionary>
\ No newline at end of file
Src/GS.Terminal.VisitorSelfService/ViewModelView/Views/Resources/confirm-no.png
0 → 100644
View file @
c399aa0d
33 KB
Src/GS.Terminal.VisitorSelfService/ViewModelView/Views/Resources/confirm-yes.png
0 → 100644
View file @
c399aa0d
35.7 KB
Src/GS.Terminal.VisitorSelfService/ViewModelView/Views/Resources/result_correct.png
0 → 100644
View file @
c399aa0d
37 KB
Src/GS.Terminal.VisitorSelfService/ViewModelView/Views/Views.csproj
View file @
c399aa0d
...
...
@@ -67,6 +67,9 @@
<Compile
Include=
"Foot.xaml.cs"
>
<DependentUpon>
Foot.xaml
</DependentUpon>
</Compile>
<Compile
Include=
"Head.xaml.cs"
>
<DependentUpon>
Head.xaml
</DependentUpon>
</Compile>
<Compile
Include=
"Pages\AppointmentDetailPage\Index.xaml.cs"
>
<DependentUpon>
Index.xaml
</DependentUpon>
</Compile>
...
...
@@ -85,6 +88,9 @@
<Compile
Include=
"Pages\MenuPage\Index.xaml.cs"
>
<DependentUpon>
Index.xaml
</DependentUpon>
</Compile>
<Compile
Include=
"Pages\SubmitVisitInfoResult\Index.xaml.cs"
>
<DependentUpon>
Index.xaml
</DependentUpon>
</Compile>
<Compile
Include=
"PopWindows\FeatureCompare\Index.xaml.cs"
>
<DependentUpon>
Index.xaml
</DependentUpon>
</Compile>
...
...
@@ -116,6 +122,10 @@
<SubType>
Designer
</SubType>
<Generator>
MSBuild:Compile
</Generator>
</Page>
<Page
Include=
"Head.xaml"
>
<SubType>
Designer
</SubType>
<Generator>
MSBuild:Compile
</Generator>
</Page>
<Page
Include=
"Pages\AppointmentDetailPage\Index.xaml"
>
<SubType>
Designer
</SubType>
<Generator>
MSBuild:Compile
</Generator>
...
...
@@ -152,6 +162,14 @@
<SubType>
Designer
</SubType>
<Generator>
MSBuild:Compile
</Generator>
</Page>
<Page
Include=
"Pages\SubmitVisitInfoResult\Index.xaml"
>
<SubType>
Designer
</SubType>
<Generator>
MSBuild:Compile
</Generator>
</Page>
<Page
Include=
"Pages\SubmitVisitInfoResult\Style.xaml"
>
<SubType>
Designer
</SubType>
<Generator>
MSBuild:Compile
</Generator>
</Page>
<Page
Include=
"PopWindows\FeatureCompare\Index.xaml"
>
<SubType>
Designer
</SubType>
<Generator>
MSBuild:Compile
</Generator>
...
...
@@ -165,7 +183,10 @@
<Generator>
MSBuild:Compile
</Generator>
</Page>
</ItemGroup>
<ItemGroup
/>
<ItemGroup>
<Resource
Include=
"Resources\confirm-no.png"
/>
<Resource
Include=
"Resources\confirm-yes.png"
/>
</ItemGroup>
<ItemGroup>
<Resource
Include=
"Resources\menu_btn_has.png"
/>
<Resource
Include=
"Resources\menu_btn_no.png"
/>
...
...
@@ -194,5 +215,8 @@
<Resource
Include=
"Resources\detail_left.png"
/>
<Resource
Include=
"Resources\detail_right.png"
/>
</ItemGroup>
<ItemGroup>
<Resource
Include=
"Resources\result_correct.png"
/>
</ItemGroup>
<Import
Project=
"$(MSBuildToolsPath)\Microsoft.CSharp.targets"
/>
</Project>
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment