235 lines
		
	
	
		
			17 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			235 lines
		
	
	
		
			17 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
@page "/login"
 | 
						||
@layout EmptyLayout
 | 
						||
 | 
						||
@using System.ComponentModel;
 | 
						||
@using log4net;
 | 
						||
 | 
						||
 | 
						||
<style>
 | 
						||
    body{
 | 
						||
    background-image: url(/images/body-bg.png);
 | 
						||
    /* background-repeat:repeat; */
 | 
						||
    /* background: var(--rz-primary-light) no-repeat 100% 70% fixed url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIwNCIgaGVpZ2h0PSIxNDU4IiB2aWV3Qm94PSIwIDAgMTIwNCAxNDU4IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8ZyBvcGFjaXR5PSIwLjUiIGZpbHRlcj0idXJsKCNmaWx0ZXIwX2ZfNDkzXzEwMTM0KSI+CjxjaXJjbGUgY3g9IjcyMi4xMjgiIGN5PSI4MzkuMDIiIHI9IjQ4MS40MTkiIGZpbGw9InVybCgjcGFpbnQwX3JhZGlhbF80OTNfMTAxMzQpIi8+CjwvZz4KPGcgb3BhY2l0eT0iMC41IiBmaWx0ZXI9InVybCgjZmlsdGVyMV9mXzQ5M18xMDEzNCkiPgo8Y2lyY2xlIGN4PSI0NzAuMzMzIiBjeT0iNTcwLjMzMyIgcj0iNDcwLjMzMyIgZmlsbD0idXJsKCNwYWludDFfcmFkaWFsXzQ5M18xMDEzNCkiLz4KPC9nPgo8ZyBvcGFjaXR5PSIwLjUiIGZpbHRlcj0idXJsKCNmaWx0ZXIyX2ZfNDkzXzEwMTM0KSI+CjxjaXJjbGUgY3g9IjY5MS41MTEiIGN5PSI1MjIuMjk3IiByPSIzMzEuNTAzIiBmaWxsPSJ1cmwoI3BhaW50Ml9yYWRpYWxfNDkzXzEwMTM0KSIvPgo8L2c+CjxnIG9wYWNpdHk9IjAuNSIgZmlsdGVyPSJ1cmwoI2ZpbHRlcjNfZl80OTNfMTAxMzQpIj4KPGNpcmNsZSBjeD0iNjA4LjI0NCIgY3k9IjEwNzkuOTciIHI9IjMzMS41MDMiIHRyYW5zZm9ybT0icm90YXRlKC04MS4yMjQ0IDYwOC4yNDQgMTA3OS45NykiIGZpbGw9InVybCgjcGFpbnQzX3JhZGlhbF80OTNfMTAxMzQpIi8+CjwvZz4KPGRlZnM+CjxmaWx0ZXIgaWQ9ImZpbHRlcjBfZl80OTNfMTAxMzQiIHg9IjE0MC43MDkiIHk9IjI1Ny42MDEiIHdpZHRoPSIxMTYyLjg0IiBoZWlnaHQ9IjExNjIuODQiIGZpbHRlclVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPSJzUkdCIj4KPGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT0iMCIgcmVzdWx0PSJCYWNrZ3JvdW5kSW1hZ2VGaXgiLz4KPGZlQmxlbmQgbW9kZT0ibm9ybWFsIiBpbj0iU291cmNlR3JhcGhpYyIgaW4yPSJCYWNrZ3JvdW5kSW1hZ2VGaXgiIHJlc3VsdD0ic2hhcGUiLz4KPGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj0iNTAiIHJlc3VsdD0iZWZmZWN0MV9mb3JlZ3JvdW5kQmx1cl80OTNfMTAxMzQiLz4KPC9maWx0ZXI+CjxmaWx0ZXIgaWQ9ImZpbHRlcjFfZl80OTNfMTAxMzQiIHg9Ii0xMDAiIHk9IjAiIHdpZHRoPSIxMTQwLjY3IiBoZWlnaHQ9IjExNDAuNjciIGZpbHRlclVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPSJzUkdCIj4KPGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT0iMCIgcmVzdWx0PSJCYWNrZ3JvdW5kSW1hZ2VGaXgiLz4KPGZlQmxlbmQgbW9kZT0ibm9ybWFsIiBpbj0iU291cmNlR3JhcGhpYyIgaW4yPSJCYWNrZ3JvdW5kSW1hZ2VGaXgiIHJlc3VsdD0ic2hhcGUiLz4KPGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj0iNTAiIHJlc3VsdD0iZWZmZWN0MV9mb3JlZ3JvdW5kQmx1cl80OTNfMTAxMzQiLz4KPC9maWx0ZXI+CjxmaWx0ZXIgaWQ9ImZpbHRlcjJfZl80OTNfMTAxMzQiIHg9IjI2MC4wMDgiIHk9IjkwLjc5MzkiIHdpZHRoPSI4NjMuMDA2IiBoZWlnaHQ9Ijg2My4wMDYiIGZpbHRlclVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPSJzUkdCIj4KPGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT0iMCIgcmVzdWx0PSJCYWNrZ3JvdW5kSW1hZ2VGaXgiLz4KPGZlQmxlbmQgbW9kZT0ibm9ybWFsIiBpbj0iU291cmNlR3JhcGhpYyIgaW4yPSJCYWNrZ3JvdW5kSW1hZ2VGaXgiIHJlc3VsdD0ic2hhcGUiLz4KPGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj0iNTAiIHJlc3VsdD0iZWZmZWN0MV9mb3JlZ3JvdW5kQmx1cl80OTNfMTAxMzQiLz4KPC9maWx0ZXI+CjxmaWx0ZXIgaWQ9ImZpbHRlcjNfZl80OTNfMTAxMzQiIHg9IjE3Ni42OTQiIHk9IjY0OC40MjMiIHdpZHRoPSI4NjMuMSIgaGVpZ2h0PSI4NjMuMSIgZmlsdGVyVW5pdHM9InVzZXJTcGFjZU9uVXNlIiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9InNSR0IiPgo8ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PSIwIiByZXN1bHQ9IkJhY2tncm91bmRJbWFnZUZpeCIvPgo8ZmVCbGVuZCBtb2RlPSJub3JtYWwiIGluPSJTb3VyY2VHcmFwaGljIiBpbjI9IkJhY2tncm91bmRJbWFnZUZpeCIgcmVzdWx0PSJzaGFwZSIvPgo8ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPSI1MCIgcmVzdWx0PSJlZmZlY3QxX2ZvcmVncm91bmRCbHVyXzQ5M18xMDEzNCIvPgo8L2ZpbHRlcj4KPHJhZGlhbEdyYWRpZW50IGlkPSJwYWludDBfcmFkaWFsXzQ5M18xMDEzNCIgY3g9IjAiIGN5PSIwIiByPSIxIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgZ3JhZGllbnRUcmFuc2Zvcm09InRyYW5zbGF0ZSg3MjIuMTI4IDgzOS4wMikgcm90YXRlKDkwKSBzY2FsZSg0ODEuNDE5KSI+CjxzdG9wIHN0b3AtY29sb3I9IiNGRjFBNkMiLz4KPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjRkYxQTZDIiBzdG9wLW9wYWNpdHk9IjAiLz4KPC9yYWRpYWxHcmFkaWVudD4KPHJhZGlhbEdyYWRpZW50IGlkPSJwYWludDFfcmFkaWFsXzQ5M18xMDEzNCIgY3g9IjAiIGN5PSIwIiByPSIxIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgZ3JhZGllbnRUcmFuc2Zvcm09InRyYW5zbGF0ZSg0NzAuMzMzIDU3MC4zMzMpIHJvdGF0ZSg5MCkgc2NhbGUoNDcwLjMzMykiPgo8c3RvcCBzdG9wLWNvbG9yPSIjM0FBQ0ZGIi8+CjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzNBOTVGRiIgc3RvcC1vcGFjaXR5PSIwIi8+CjwvcmFkaWFsR3JhZGllbnQ+CjxyYWRpYWxHcmFkaWVudCBpZD0icGFpbnQyX3JhZGlhbF80OTNfMTAxMzQiIGN4PSIwIiBjeT0iMCIgcj0iMSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIGdyYWRpZW50VHJhbnNmb3JtPSJ0cmFuc2xhdGUoNjkxLjUxMSA1MjIuMjk3KSByb3RhdGUoOTApIHNjYWxlKDMzMS41MDMpIj4KPHN0b3Agc3RvcC1jb2xvcj0iIzQ4M0FGRiIvPgo8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiM0ODNBRkYiIHN0b3Atb3BhY2l0eT0iMCIvPgo8L3JhZGlhbEdyYWRpZW50Pgo8cmFkaWFsR3JhZGllbnQgaWQ9InBhaW50M19yYWRpYWxfNDkzXzEwMTM0IiBjeD0iMCIgY3k9IjAiIHI9IjEiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiBncmFkaWVudFRyYW5zZm9ybT0idHJhbnNsYXRlKDYwOC4yNDQgMTA3OS45Nykgcm90YXRlKDkwKSBzY2FsZSgzMzEuNTAzKSI+CjxzdG9wIHN0b3AtY29sb3I9IiNGRkM4M0EiLz4KPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjRkZDODNBIiBzdG9wLW9wYWNpdHk9IjAiLz4KPC9yYWRpYWxHcmFkaWVudD4KPC9kZWZzPgo8L3N2Zz4K'); */
 | 
						||
    width: 100vw;
 | 
						||
    height: 100vh;
 | 
						||
    }
 | 
						||
 | 
						||
    .finner-bg {
 | 
						||
    background: url('/images/finger-bg-r.png') repeat;
 | 
						||
    }
 | 
						||
 | 
						||
</style>
 | 
						||
<RadzenStack Orientation="Orientation.Horizontal" JustifyContent="JustifyContent.Center" AlignItems="AlignItems.Center" Style="width:100vw;height:100vh">
 | 
						||
 | 
						||
    <RadzenRow>
 | 
						||
        <RadzenColumn></RadzenColumn>
 | 
						||
    </RadzenRow>
 | 
						||
 | 
						||
    <RadzenRow Gap="0" Class="rz-my-12 rz-mx-auto rz-border-radius-3 rz-shadow-10" Style="overflow: hidden;width:55vw;height:45vh">
 | 
						||
        <RadzenColumn Size="12" SizeMD="5">
 | 
						||
            <RadzenCard class="rz-shadow-0 rz-border-radius-0 rz-text-align-center rz-p-12" Style="height: 100%; background: var(--rz-primary-light) no-repeat 100% 70% fixed url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIwNCIgaGVpZ2h0PSIxNDU4IiB2aWV3Qm94PSIwIDAgMTIwNCAxNDU4IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8ZyBvcGFjaXR5PSIwLjUiIGZpbHRlcj0idXJsKCNmaWx0ZXIwX2ZfNDkzXzEwMTM0KSI+CjxjaXJjbGUgY3g9IjcyMi4xMjgiIGN5PSI4MzkuMDIiIHI9IjQ4MS40MTkiIGZpbGw9InVybCgjcGFpbnQwX3JhZGlhbF80OTNfMTAxMzQpIi8+CjwvZz4KPGcgb3BhY2l0eT0iMC41IiBmaWx0ZXI9InVybCgjZmlsdGVyMV9mXzQ5M18xMDEzNCkiPgo8Y2lyY2xlIGN4PSI0NzAuMzMzIiBjeT0iNTcwLjMzMyIgcj0iNDcwLjMzMyIgZmlsbD0idXJsKCNwYWludDFfcmFkaWFsXzQ5M18xMDEzNCkiLz4KPC9nPgo8ZyBvcGFjaXR5PSIwLjUiIGZpbHRlcj0idXJsKCNmaWx0ZXIyX2ZfNDkzXzEwMTM0KSI+CjxjaXJjbGUgY3g9IjY5MS41MTEiIGN5PSI1MjIuMjk3IiByPSIzMzEuNTAzIiBmaWxsPSJ1cmwoI3BhaW50Ml9yYWRpYWxfNDkzXzEwMTM0KSIvPgo8L2c+CjxnIG9wYWNpdHk9IjAuNSIgZmlsdGVyPSJ1cmwoI2ZpbHRlcjNfZl80OTNfMTAxMzQpIj4KPGNpcmNsZSBjeD0iNjA4LjI0NCIgY3k9IjEwNzkuOTciIHI9IjMzMS41MDMiIHRyYW5zZm9ybT0icm90YXRlKC04MS4yMjQ0IDYwOC4yNDQgMTA3OS45NykiIGZpbGw9InVybCgjcGFpbnQzX3JhZGlhbF80OTNfMTAxMzQpIi8+CjwvZz4KPGRlZnM+CjxmaWx0ZXIgaWQ9ImZpbHRlcjBfZl80OTNfMTAxMzQiIHg9IjE0MC43MDkiIHk9IjI1Ny42MDEiIHdpZHRoPSIxMTYyLjg0IiBoZWlnaHQ9IjExNjIuODQiIGZpbHRlclVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPSJzUkdCIj4KPGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT0iMCIgcmVzdWx0PSJCYWNrZ3JvdW5kSW1hZ2VGaXgiLz4KPGZlQmxlbmQgbW9kZT0ibm9ybWFsIiBpbj0iU291cmNlR3JhcGhpYyIgaW4yPSJCYWNrZ3JvdW5kSW1hZ2VGaXgiIHJlc3VsdD0ic2hhcGUiLz4KPGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj0iNTAiIHJlc3VsdD0iZWZmZWN0MV9mb3JlZ3JvdW5kQmx1cl80OTNfMTAxMzQiLz4KPC9maWx0ZXI+CjxmaWx0ZXIgaWQ9ImZpbHRlcjFfZl80OTNfMTAxMzQiIHg9Ii0xMDAiIHk9IjAiIHdpZHRoPSIxMTQwLjY3IiBoZWlnaHQ9IjExNDAuNjciIGZpbHRlclVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPSJzUkdCIj4KPGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT0iMCIgcmVzdWx0PSJCYWNrZ3JvdW5kSW1hZ2VGaXgiLz4KPGZlQmxlbmQgbW9kZT0ibm9ybWFsIiBpbj0iU291cmNlR3JhcGhpYyIgaW4yPSJCYWNrZ3JvdW5kSW1hZ2VGaXgiIHJlc3VsdD0ic2hhcGUiLz4KPGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj0iNTAiIHJlc3VsdD0iZWZmZWN0MV9mb3JlZ3JvdW5kQmx1cl80OTNfMTAxMzQiLz4KPC9maWx0ZXI+CjxmaWx0ZXIgaWQ9ImZpbHRlcjJfZl80OTNfMTAxMzQiIHg9IjI2MC4wMDgiIHk9IjkwLjc5MzkiIHdpZHRoPSI4NjMuMDA2IiBoZWlnaHQ9Ijg2My4wMDYiIGZpbHRlclVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPSJzUkdCIj4KPGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT0iMCIgcmVzdWx0PSJCYWNrZ3JvdW5kSW1hZ2VGaXgiLz4KPGZlQmxlbmQgbW9kZT0ibm9ybWFsIiBpbj0iU291cmNlR3JhcGhpYyIgaW4yPSJCYWNrZ3JvdW5kSW1hZ2VGaXgiIHJlc3VsdD0ic2hhcGUiLz4KPGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj0iNTAiIHJlc3VsdD0iZWZmZWN0MV9mb3JlZ3JvdW5kQmx1cl80OTNfMTAxMzQiLz4KPC9maWx0ZXI+CjxmaWx0ZXIgaWQ9ImZpbHRlcjNfZl80OTNfMTAxMzQiIHg9IjE3Ni42OTQiIHk9IjY0OC40MjMiIHdpZHRoPSI4NjMuMSIgaGVpZ2h0PSI4NjMuMSIgZmlsdGVyVW5pdHM9InVzZXJTcGFjZU9uVXNlIiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9InNSR0IiPgo8ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PSIwIiByZXN1bHQ9IkJhY2tncm91bmRJbWFnZUZpeCIvPgo8ZmVCbGVuZCBtb2RlPSJub3JtYWwiIGluPSJTb3VyY2VHcmFwaGljIiBpbjI9IkJhY2tncm91bmRJbWFnZUZpeCIgcmVzdWx0PSJzaGFwZSIvPgo8ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPSI1MCIgcmVzdWx0PSJlZmZlY3QxX2ZvcmVncm91bmRCbHVyXzQ5M18xMDEzNCIvPgo8L2ZpbHRlcj4KPHJhZGlhbEdyYWRpZW50IGlkPSJwYWludDBfcmFkaWFsXzQ5M18xMDEzNCIgY3g9IjAiIGN5PSIwIiByPSIxIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgZ3JhZGllbnRUcmFuc2Zvcm09InRyYW5zbGF0ZSg3MjIuMTI4IDgzOS4wMikgcm90YXRlKDkwKSBzY2FsZSg0ODEuNDE5KSI+CjxzdG9wIHN0b3AtY29sb3I9IiNGRjFBNkMiLz4KPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjRkYxQTZDIiBzdG9wLW9wYWNpdHk9IjAiLz4KPC9yYWRpYWxHcmFkaWVudD4KPHJhZGlhbEdyYWRpZW50IGlkPSJwYWludDFfcmFkaWFsXzQ5M18xMDEzNCIgY3g9IjAiIGN5PSIwIiByPSIxIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgZ3JhZGllbnRUcmFuc2Zvcm09InRyYW5zbGF0ZSg0NzAuMzMzIDU3MC4zMzMpIHJvdGF0ZSg5MCkgc2NhbGUoNDcwLjMzMykiPgo8c3RvcCBzdG9wLWNvbG9yPSIjM0FBQ0ZGIi8+CjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzNBOTVGRiIgc3RvcC1vcGFjaXR5PSIwIi8+CjwvcmFkaWFsR3JhZGllbnQ+CjxyYWRpYWxHcmFkaWVudCBpZD0icGFpbnQyX3JhZGlhbF80OTNfMTAxMzQiIGN4PSIwIiBjeT0iMCIgcj0iMSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIGdyYWRpZW50VHJhbnNmb3JtPSJ0cmFuc2xhdGUoNjkxLjUxMSA1MjIuMjk3KSByb3RhdGUoOTApIHNjYWxlKDMzMS41MDMpIj4KPHN0b3Agc3RvcC1jb2xvcj0iIzQ4M0FGRiIvPgo8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiM0ODNBRkYiIHN0b3Atb3BhY2l0eT0iMCIvPgo8L3JhZGlhbEdyYWRpZW50Pgo8cmFkaWFsR3JhZGllbnQgaWQ9InBhaW50M19yYWRpYWxfNDkzXzEwMTM0IiBjeD0iMCIgY3k9IjAiIHI9IjEiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiBncmFkaWVudFRyYW5zZm9ybT0idHJhbnNsYXRlKDYwOC4yNDQgMTA3OS45Nykgcm90YXRlKDkwKSBzY2FsZSgzMzEuNTAzKSI+CjxzdG9wIHN0b3AtY29sb3I9IiNGRkM4M0EiLz4KPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjRkZDODNBIiBzdG9wLW9wYWNpdHk9IjAiLz4KPC9yYWRpYWxHcmFkaWVudD4KPC9kZWZzPgo8L3N2Zz4K')">
 | 
						||
                @if(loginMode == 2)
 | 
						||
                {
 | 
						||
                    <RadzenText TextStyle="TextStyle.H6" class="rz-color-white"><3E><><EFBFBD><EFBFBD><EFBFBD>ˣ<EFBFBD>@globalStateService.Operator?.NickName</RadzenText>
 | 
						||
                    <RadzenText TextStyle="TextStyle.H6" class="rz-color-white"><3E><><EFBFBD><EFBFBD><EFBFBD>ˣ<EFBFBD>@globalStateService.Reviewer?.NickName</RadzenText>
 | 
						||
                }
 | 
						||
            </RadzenCard>
 | 
						||
        </RadzenColumn>
 | 
						||
        <RadzenColumn Size="12" SizeMD="7">
 | 
						||
            <RadzenCard Class="rz-shadow-0 rz-border-radius-0 rz-p-12" Style="width:100%;height:100%">
 | 
						||
                <RadzenText TextStyle="TextStyle.H5" TagName="TagName.H2" class="rz-mb-6">
 | 
						||
                    <20><>¼
 | 
						||
                </RadzenText>
 | 
						||
                <RadzenTemplateForm Data="@loginModel" Submit="@((Pojo.User args) => { Submit(args); })" Style="width:100%;height:100%" >
 | 
						||
                    <div class="rz-form-row">
 | 
						||
                        <label class="rz-label" for="username"><3E>˺<EFBFBD></label>
 | 
						||
                        <div class="rz-form-input-wrapper">
 | 
						||
                            <RadzenTextBox id="username" Name="Username" @bind-Value="@loginModel.Username" Style="width:100%" />
 | 
						||
                            <RadzenRequiredValidator Component="Username" Text="<22><><EFBFBD><EFBFBD>д<EFBFBD>û<EFBFBD><C3BB><EFBFBD>" />
 | 
						||
                        </div>
 | 
						||
                    </div>
 | 
						||
                    <div class="rz-form-row">
 | 
						||
                        <label class="rz-label" for="password"><3E><><EFBFBD><EFBFBD></label>
 | 
						||
                        <div class="rz-form-input-wrapper">
 | 
						||
                            <RadzenPassword id="password" Name="Password" @bind-Value="@loginModel.Password" Style="width:100%" />
 | 
						||
                            <RadzenRequiredValidator Component="Password" Text="<22><><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD>" />
 | 
						||
                        </div>
 | 
						||
                    </div>
 | 
						||
                    <div class="rz-form-row">
 | 
						||
                        <label class="rz-label"></label>
 | 
						||
                        <div class="rz-form-input-wrapper rz-login-buttons">
 | 
						||
                            <RadzenButton  Style="background:#255dd4;color:white;width:110px" ButtonType="ButtonType.Submit" Text="<22><>¼" />
 | 
						||
                            <RadzenButton  Style="border-color:#255dd4;width:110px" Variant="Variant.Outlined" Text="<22>˳<EFBFBD>" Click="@Exit" />
 | 
						||
 | 
						||
                        </div>
 | 
						||
                    </div>
 | 
						||
                </RadzenTemplateForm>
 | 
						||
            </RadzenCard>
 | 
						||
        </RadzenColumn>
 | 
						||
 | 
						||
    </RadzenRow>
 | 
						||
</RadzenStack>
 | 
						||
 | 
						||
 | 
						||
 | 
						||
@code {
 | 
						||
 | 
						||
    @inject FingerprintUtil FingerprintUtil;
 | 
						||
    @inject PortUtil PortUtil;
 | 
						||
    @inject NavigationManager na;
 | 
						||
    @inject NotificationService _message
 | 
						||
    @inject GlobalStateService globalStateService;
 | 
						||
    @inject IUserDao userDao;
 | 
						||
    @inject Microsoft.Extensions.Options.IOptions<Pojo.Config.SettingConfig> setting;
 | 
						||
 | 
						||
 | 
						||
 | 
						||
    private readonly ILog logger = LogManager.GetLogger(typeof(Index));
 | 
						||
 | 
						||
    private int loginMode = 1;
 | 
						||
    private bool opFirst = true;
 | 
						||
 | 
						||
 | 
						||
 | 
						||
    bool isShow;
 | 
						||
 | 
						||
    private Pojo.User loginModel = new();
 | 
						||
 | 
						||
    protected override Task OnInitializedAsync()
 | 
						||
    {
 | 
						||
        FingerprintUtil.axCZKEM1.OnAttTransactionEx += axCZKEM1_OnAttTransactionEx;
 | 
						||
 | 
						||
        loginMode = setting.Value.loginMode;
 | 
						||
        opFirst = setting.Value.opFirst;
 | 
						||
 | 
						||
        return base.OnInitializedAsync();
 | 
						||
    }
 | 
						||
 | 
						||
    private void SetUser(Pojo.User user)
 | 
						||
    {
 | 
						||
 | 
						||
        // <20>ж<EFBFBD><D0B6>Ƿ<EFBFBD>Ϊ˫<CEAA>˵<EFBFBD>¼ģʽ
 | 
						||
        if (loginMode == 2)
 | 
						||
        {
 | 
						||
            // <20>ж<EFBFBD><D0B6>Ƿ<EFBFBD><C7B7>Dz<EFBFBD><C7B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȵ<EFBFBD>¼
 | 
						||
            if (opFirst)
 | 
						||
            {
 | 
						||
                // <20>жϲ<D0B6><CFB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7>Ѿ<EFBFBD><D1BE><EFBFBD>¼<EFBFBD><C2BC><EFBFBD>Ѿ<EFBFBD><D1BE><EFBFBD>¼˵<C2BC><CBB5><EFBFBD><EFBFBD>ʱΪ<CAB1>ڶ<EFBFBD><DAB6>˵<EFBFBD>¼
 | 
						||
                if (globalStateService.Operator != null)
 | 
						||
                {
 | 
						||
                    // <20>ж<EFBFBD><D0B6>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>Dz<EFBFBD><C7B2><EFBFBD><EFBFBD>˵<EFBFBD><CBB5><EFBFBD>֤
 | 
						||
                    if (globalStateService.Operator.Id != user.Id)
 | 
						||
                    {
 | 
						||
                        FingerprintUtil.axCZKEM1.OnAttTransactionEx -= axCZKEM1_OnAttTransactionEx;
 | 
						||
                        globalStateService.Reviewer = user;
 | 
						||
                        na.NavigateTo("/home");
 | 
						||
                        logger.Info($"˫<>˵<EFBFBD>¼ģʽ<C4A3><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˡ<EFBFBD>{globalStateService.Operator.NickName}<7D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˡ<EFBFBD>{user.NickName}<7D><><EFBFBD><EFBFBD>¼");
 | 
						||
                    } else
 | 
						||
                    {
 | 
						||
                        _message.Notify(
 | 
						||
                            new NotificationMessage { Severity = NotificationSeverity.Error, Summary = "<22><>ʾ", Detail = $"<22><>֤<EFBFBD>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˺<EFBFBD>", Duration = 3000 }
 | 
						||
                        );
 | 
						||
                    }
 | 
						||
                } else
 | 
						||
                {
 | 
						||
                    // <20><>ʱΪ<CAB1><CEAA>һ<EFBFBD>˵<EFBFBD>¼
 | 
						||
                    globalStateService.Operator = user;
 | 
						||
                    InvokeAsync(StateHasChanged);
 | 
						||
                    loginModel = new();
 | 
						||
                }
 | 
						||
            }
 | 
						||
            // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>ڶ<EFBFBD><DAB6>˵<EFBFBD>¼
 | 
						||
            else
 | 
						||
            {
 | 
						||
                // <20>жϸ<D0B6><CFB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7>Ѿ<EFBFBD><D1BE><EFBFBD>¼<EFBFBD><C2BC><EFBFBD>Ѿ<EFBFBD><D1BE><EFBFBD>¼˵<C2BC><CBB5><EFBFBD><EFBFBD>ʱΪ<CAB1>ڶ<EFBFBD><DAB6>˵<EFBFBD>¼
 | 
						||
                if (globalStateService.Reviewer != null)
 | 
						||
                {
 | 
						||
                    // <20>ж<EFBFBD><D0B6>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>Ǹ<EFBFBD><C7B8><EFBFBD><EFBFBD>˵<EFBFBD><CBB5><EFBFBD>֤
 | 
						||
                    if (globalStateService.Reviewer.Id != user.Id)
 | 
						||
                    {
 | 
						||
                        FingerprintUtil.axCZKEM1.OnAttTransactionEx -= axCZKEM1_OnAttTransactionEx;
 | 
						||
                        globalStateService.Operator = user;
 | 
						||
                        na.NavigateTo("/home");
 | 
						||
                        logger.Info($"˫<>˵<EFBFBD>¼ģʽ<C4A3><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˡ<EFBFBD>{user.NickName}<7D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˡ<EFBFBD>{globalStateService.Reviewer.NickName}<7D><><EFBFBD><EFBFBD>¼");
 | 
						||
                    }
 | 
						||
                    else
 | 
						||
                    {
 | 
						||
                        _message.Notify(
 | 
						||
                            new NotificationMessage { Severity = NotificationSeverity.Error, Summary = "<22><>ʾ", Detail = $"<22><>֤<EFBFBD>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˺<EFBFBD>", Duration = 3000 }
 | 
						||
                        );
 | 
						||
                    }
 | 
						||
                }
 | 
						||
                else
 | 
						||
                {
 | 
						||
                    // <20><>ʱΪ<CAB1><CEAA>һ<EFBFBD>˵<EFBFBD>¼
 | 
						||
                    globalStateService.Reviewer = user;
 | 
						||
                    InvokeAsync(StateHasChanged);
 | 
						||
                    loginModel = new();
 | 
						||
                }
 | 
						||
 | 
						||
            }
 | 
						||
 | 
						||
        } else
 | 
						||
        {
 | 
						||
            FingerprintUtil.axCZKEM1.OnAttTransactionEx -= axCZKEM1_OnAttTransactionEx;
 | 
						||
            globalStateService.Operator = user;
 | 
						||
            na.NavigateTo("/home");
 | 
						||
            logger.Info($"<22><><EFBFBD>˵<EFBFBD>¼ģʽ<C4A3><CABD><EFBFBD>û<EFBFBD><C3BB><EFBFBD>{user.NickName}<7D><><EFBFBD><EFBFBD>¼");
 | 
						||
        }
 | 
						||
    }
 | 
						||
 | 
						||
    
 | 
						||
 | 
						||
    private void Submit(Pojo.User user)
 | 
						||
    {
 | 
						||
        Pojo.User u = userDao.GetByUsername(loginModel.Username);
 | 
						||
        if (u != null)
 | 
						||
        {
 | 
						||
            if (Util.MD5.GetMD5Hash(loginModel.Password).ToLower().Equals(u.Password))
 | 
						||
            {
 | 
						||
                SetUser(u);
 | 
						||
            } else
 | 
						||
            {
 | 
						||
                _message.Notify(
 | 
						||
                    new NotificationMessage { Severity = NotificationSeverity.Error, Summary = "<22><>ʾ", Detail = $"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", Duration = 4000 }
 | 
						||
                );
 | 
						||
                logger.Info($"<22>û<EFBFBD><C3BB><EFBFBD>{u.NickName}<7D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
 | 
						||
 | 
						||
            }
 | 
						||
 | 
						||
        }
 | 
						||
        else
 | 
						||
        {
 | 
						||
            _message.Notify(
 | 
						||
                new NotificationMessage { Severity = NotificationSeverity.Error, Summary = "<22><>ʾ", Detail = $"<22><EFBFBD><DEB4>û<EFBFBD>", Duration = 4000 }
 | 
						||
            );
 | 
						||
            logger.Info($"û<><C3BB><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>{loginModel.Username}<7D><>");
 | 
						||
        }
 | 
						||
    }
 | 
						||
 | 
						||
    private void axCZKEM1_OnAttTransactionEx(string sEnrollNumber, int iIsInValid, int iAttState, int iVerifyMethod, int iYear, int iMonth, int iDay, int iHour, int iMinute, int iSecond, int iWorkCode)
 | 
						||
    {
 | 
						||
 | 
						||
        Pojo.User u = userDao.GetById(Convert.ToInt32(sEnrollNumber));
 | 
						||
        if(u != null)
 | 
						||
        {
 | 
						||
            SetUser(u);
 | 
						||
        } else
 | 
						||
        {
 | 
						||
            _message.Notify(
 | 
						||
                new NotificationMessage { Severity = NotificationSeverity.Error, Summary = "<22><>ʾ", Detail = $"ϵͳ<CFB5><CDB3>û<EFBFBD><C3BB>IDΪ<44><CEAA>{sEnrollNumber}<7D><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>", Duration = 4000 }
 | 
						||
            );
 | 
						||
            logger.Info($"ָ<>ƻ<EFBFBD><C6BB><EFBFBD>֤ͨ<D6A4><CDA8>idΪ<64><CEAA>{sEnrollNumber}<7D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǻ<EFBFBD><C7BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD><EFBFBD><EFBFBD><DEB4>û<EFBFBD>");
 | 
						||
        }
 | 
						||
 | 
						||
    }
 | 
						||
 | 
						||
    private void Exit()
 | 
						||
    {
 | 
						||
        
 | 
						||
        Environment.Exit(0);
 | 
						||
    }
 | 
						||
 | 
						||
 | 
						||
}
 |