commit
5810f2ff0c
992 changed files with 131448 additions and 0 deletions
Binary file not shown.
@ -0,0 +1,997 @@ |
|||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||
|
<!-- |
||||
|
|
||||
|
IIS configuration sections. |
||||
|
|
||||
|
For schema documentation, see |
||||
|
%IIS_BIN%\config\schema\IIS_schema.xml. |
||||
|
|
||||
|
Please make a backup of this file before making any changes to it. |
||||
|
|
||||
|
NOTE: The following environment variables are available to be used |
||||
|
within this file and are understood by the IIS Express. |
||||
|
|
||||
|
%IIS_USER_HOME% - The IIS Express home directory for the user |
||||
|
%IIS_SITES_HOME% - The default home directory for sites |
||||
|
%IIS_BIN% - The location of the IIS Express binaries |
||||
|
%SYSTEMDRIVE% - The drive letter of %IIS_BIN% |
||||
|
|
||||
|
--> |
||||
|
<configuration> |
||||
|
<!-- |
||||
|
|
||||
|
The <configSections> section controls the registration of sections. |
||||
|
Section is the basic unit of deployment, locking, searching and |
||||
|
containment for configuration settings. |
||||
|
|
||||
|
Every section belongs to one section group. |
||||
|
A section group is a container of logically-related sections. |
||||
|
|
||||
|
Sections cannot be nested. |
||||
|
Section groups may be nested. |
||||
|
|
||||
|
<section |
||||
|
name="" [Required, Collection Key] [XML name of the section] |
||||
|
allowDefinition="Everywhere" [MachineOnly|MachineToApplication|AppHostOnly|Everywhere] [Level where it can be set] |
||||
|
overrideModeDefault="Allow" [Allow|Deny] [Default delegation mode] |
||||
|
allowLocation="true" [true|false] [Allowed in location tags] |
||||
|
/> |
||||
|
|
||||
|
The recommended way to unlock sections is by using a location tag: |
||||
|
<location path="Default Web Site" overrideMode="Allow"> |
||||
|
<system.webServer> |
||||
|
<asp /> |
||||
|
</system.webServer> |
||||
|
</location> |
||||
|
|
||||
|
--> |
||||
|
<configSections> |
||||
|
<sectionGroup name="system.applicationHost"> |
||||
|
<section name="applicationPools" allowDefinition="AppHostOnly" overrideModeDefault="Deny" /> |
||||
|
<section name="configHistory" allowDefinition="AppHostOnly" overrideModeDefault="Deny" /> |
||||
|
<section name="customMetadata" allowDefinition="AppHostOnly" overrideModeDefault="Deny" /> |
||||
|
<section name="listenerAdapters" allowDefinition="AppHostOnly" overrideModeDefault="Deny" /> |
||||
|
<section name="log" allowDefinition="AppHostOnly" overrideModeDefault="Deny" /> |
||||
|
<section name="serviceAutoStartProviders" allowDefinition="AppHostOnly" overrideModeDefault="Deny" /> |
||||
|
<section name="sites" allowDefinition="AppHostOnly" overrideModeDefault="Deny" /> |
||||
|
<section name="webLimits" allowDefinition="AppHostOnly" overrideModeDefault="Deny" /> |
||||
|
</sectionGroup> |
||||
|
<sectionGroup name="system.webServer"> |
||||
|
<section name="asp" overrideModeDefault="Deny" /> |
||||
|
<section name="caching" overrideModeDefault="Allow" /> |
||||
|
<section name="cgi" overrideModeDefault="Deny" /> |
||||
|
<section name="defaultDocument" overrideModeDefault="Allow" /> |
||||
|
<section name="directoryBrowse" overrideModeDefault="Allow" /> |
||||
|
<section name="fastCgi" allowDefinition="AppHostOnly" overrideModeDefault="Deny" /> |
||||
|
<section name="globalModules" allowDefinition="AppHostOnly" overrideModeDefault="Deny" /> |
||||
|
<section name="handlers" overrideModeDefault="Deny" /> |
||||
|
<section name="httpCompression" overrideModeDefault="Allow" allowDefinition="Everywhere" /> |
||||
|
<section name="httpErrors" overrideModeDefault="Allow" /> |
||||
|
<section name="httpLogging" overrideModeDefault="Deny" /> |
||||
|
<section name="httpProtocol" overrideModeDefault="Allow" /> |
||||
|
<section name="httpRedirect" overrideModeDefault="Allow" /> |
||||
|
<section name="httpTracing" overrideModeDefault="Deny" /> |
||||
|
<section name="isapiFilters" allowDefinition="MachineToApplication" overrideModeDefault="Deny" /> |
||||
|
<section name="modules" allowDefinition="MachineToApplication" overrideModeDefault="Deny" /> |
||||
|
<section name="applicationInitialization" allowDefinition="MachineToApplication" overrideModeDefault="Allow" /> |
||||
|
<section name="odbcLogging" overrideModeDefault="Deny" /> |
||||
|
<sectionGroup name="security"> |
||||
|
<section name="access" overrideModeDefault="Deny" /> |
||||
|
<section name="applicationDependencies" overrideModeDefault="Deny" /> |
||||
|
<sectionGroup name="authentication"> |
||||
|
<section name="anonymousAuthentication" overrideModeDefault="Deny" /> |
||||
|
<section name="basicAuthentication" overrideModeDefault="Deny" /> |
||||
|
<section name="clientCertificateMappingAuthentication" overrideModeDefault="Deny" /> |
||||
|
<section name="digestAuthentication" overrideModeDefault="Deny" /> |
||||
|
<section name="iisClientCertificateMappingAuthentication" overrideModeDefault="Deny" /> |
||||
|
<section name="windowsAuthentication" overrideModeDefault="Deny" /> |
||||
|
</sectionGroup> |
||||
|
<section name="authorization" overrideModeDefault="Allow" /> |
||||
|
<section name="ipSecurity" overrideModeDefault="Deny" /> |
||||
|
<section name="dynamicIpSecurity" overrideModeDefault="Deny" /> |
||||
|
<section name="isapiCgiRestriction" allowDefinition="AppHostOnly" overrideModeDefault="Deny" /> |
||||
|
<section name="requestFiltering" overrideModeDefault="Allow" /> |
||||
|
</sectionGroup> |
||||
|
<section name="serverRuntime" overrideModeDefault="Deny" /> |
||||
|
<section name="serverSideInclude" overrideModeDefault="Deny" /> |
||||
|
<section name="staticContent" overrideModeDefault="Allow" /> |
||||
|
<sectionGroup name="tracing"> |
||||
|
<section name="traceFailedRequests" overrideModeDefault="Allow" /> |
||||
|
<section name="traceProviderDefinitions" overrideModeDefault="Deny" /> |
||||
|
</sectionGroup> |
||||
|
<section name="urlCompression" overrideModeDefault="Allow" /> |
||||
|
<section name="validation" overrideModeDefault="Allow" /> |
||||
|
<sectionGroup name="webdav"> |
||||
|
<section name="globalSettings" overrideModeDefault="Deny" /> |
||||
|
<section name="authoring" overrideModeDefault="Deny" /> |
||||
|
<section name="authoringRules" overrideModeDefault="Deny" /> |
||||
|
</sectionGroup> |
||||
|
<sectionGroup name="rewrite"> |
||||
|
<section name="allowedServerVariables" overrideModeDefault="Deny" /> |
||||
|
<section name="rules" overrideModeDefault="Allow" /> |
||||
|
<section name="outboundRules" overrideModeDefault="Allow" /> |
||||
|
<section name="globalRules" overrideModeDefault="Deny" allowDefinition="AppHostOnly" /> |
||||
|
<section name="providers" overrideModeDefault="Allow" /> |
||||
|
<section name="rewriteMaps" overrideModeDefault="Allow" /> |
||||
|
</sectionGroup> |
||||
|
<section name="webSocket" overrideModeDefault="Deny" /> |
||||
|
<section name="aspNetCore" overrideModeDefault="Allow" /> |
||||
|
</sectionGroup> |
||||
|
</configSections> |
||||
|
<configProtectedData> |
||||
|
<providers> |
||||
|
<add name="IISWASOnlyRsaProvider" type="" description="Uses RsaCryptoServiceProvider to encrypt and decrypt" keyContainerName="iisWasKey" cspProviderName="" useMachineContainer="true" useOAEP="false" /> |
||||
|
<add name="AesProvider" type="Microsoft.ApplicationHost.AesProtectedConfigurationProvider" description="Uses an AES session key to encrypt and decrypt" keyContainerName="iisConfigurationKey" cspProviderName="" useOAEP="false" useMachineContainer="true" sessionKey="AQIAAA5mAAAApAAA/HKxkz6alrlAPez0IUgujj/6k3WxCDriHp6jvpv3yEZmo7h6SMzGLxo4mTrIQVHSkB7tmElHKfUFTzE2BWF7nFWHY6Z6qmGBauFzwJMwESjril7Gjz69RBFH259HQ6aRDq9Xfx7U7H4HtdmnKNqGjgl/hwPQBGeIlWiDh+sYv3vKB0QU971tjX6H2B+9armlnC8UOuA6JYMDMI/VLLL16sng0fWAy5JYe0YVABVjiAWDW264RZW9Tr1Oax4qHZKg+SdjULxeOc2YmpX+d0yeITo1HkPF1hN1gHpIPIUDo05ilHUNfR3OkjVCIQK4cFKCq1s8NH+y+13MxUC4Fn1AlQ==" /> |
||||
|
<add name="IISWASOnlyAesProvider" type="Microsoft.ApplicationHost.AesProtectedConfigurationProvider" description="Uses an AES session key to encrypt and decrypt" keyContainerName="iisWasKey" cspProviderName="" useOAEP="false" useMachineContainer="true" sessionKey="AQIAAA5mAAAApAAALmU8lTC+v2qtfQiiiquvvLpUQqKLEXs+jSKoWCM/uPhyB++k4dwug19mGidNK5FYiWK2KYE1yhjVJcbp12E98Q0R2nT7eBiCMY2JairxQ591rqABK7keGaIjwH7PwGzSpILl3RJ4YFvJ/7ZXEJxeDZIjW8ZxWVXx+/VyHs9U3WguLEkgMUX3jrxJi8LouxaIVPJAv/YQ1ZCWs8zImitxX/C/7o7yaIxznfsN5nGQzQfpUDPeby99aw2zPVTtZI2LaWIBON8guABvZ6JtJVDWmfdK6sodbnwdZkr6/Z2rfvamT1dC1SpQrGG7ulR/f9/GXvCaW10ZVKxekBF/CYlNMg==" /> |
||||
|
</providers> |
||||
|
</configProtectedData> |
||||
|
<system.applicationHost> |
||||
|
<applicationPools> |
||||
|
<add name="Clr4IntegratedAppPool" managedRuntimeVersion="v4.0" managedPipelineMode="Integrated" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" /> |
||||
|
<add name="Clr4ClassicAppPool" managedRuntimeVersion="v4.0" managedPipelineMode="Classic" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" /> |
||||
|
<add name="Clr2IntegratedAppPool" managedRuntimeVersion="v2.0" managedPipelineMode="Integrated" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" /> |
||||
|
<add name="Clr2ClassicAppPool" managedRuntimeVersion="v2.0" managedPipelineMode="Classic" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" /> |
||||
|
<add name="UnmanagedClassicAppPool" managedRuntimeVersion="" managedPipelineMode="Classic" autoStart="true" /> |
||||
|
<add name="AMESCoreStudio.Web AppPool" managedRuntimeVersion="" /> |
||||
|
<applicationPoolDefaults managedRuntimeVersion="v4.0"> |
||||
|
<processModel loadUserProfile="true" setProfileEnvironment="false" /> |
||||
|
</applicationPoolDefaults> |
||||
|
</applicationPools> |
||||
|
<!-- |
||||
|
|
||||
|
The <listenerAdapters> section defines the protocols with which the |
||||
|
Windows Process Activation Service (WAS) binds. |
||||
|
|
||||
|
--> |
||||
|
<listenerAdapters> |
||||
|
<add name="http" /> |
||||
|
</listenerAdapters> |
||||
|
<sites> |
||||
|
<site name="WebSite1" id="1" serverAutoStart="true"> |
||||
|
<application path="/"> |
||||
|
<virtualDirectory path="/" physicalPath="%IIS_SITES_HOME%\WebSite1" /> |
||||
|
</application> |
||||
|
<bindings> |
||||
|
<binding protocol="http" bindingInformation=":8080:localhost" /> |
||||
|
</bindings> |
||||
|
</site> |
||||
|
<site name="AMESCoreStudio.Web" id="2"> |
||||
|
<application path="/" applicationPool="AMESCoreStudio.Web AppPool"> |
||||
|
<virtualDirectory path="/" physicalPath="D:\Ray_Work\AMES\AMESCoreStudio.Web" /> |
||||
|
</application> |
||||
|
<bindings> |
||||
|
<binding protocol="http" bindingInformation="*:26159:localhost" /> |
||||
|
</bindings> |
||||
|
</site> |
||||
|
<siteDefaults> |
||||
|
<!-- To enable logging, please change the below attribute "enabled" to "true" --> |
||||
|
<logFile logFormat="W3C" directory="%AppData%\Microsoft\IISExpressLogs" enabled="false" /> |
||||
|
<traceFailedRequestsLogging directory="%AppData%\Microsoft" enabled="false" maxLogFileSizeKB="1024" /> |
||||
|
</siteDefaults> |
||||
|
<applicationDefaults applicationPool="Clr4IntegratedAppPool" /> |
||||
|
<virtualDirectoryDefaults allowSubDirConfig="true" /> |
||||
|
</sites> |
||||
|
<webLimits /> |
||||
|
</system.applicationHost> |
||||
|
<system.webServer> |
||||
|
<serverRuntime /> |
||||
|
<asp scriptErrorSentToBrowser="true"> |
||||
|
<cache diskTemplateCacheDirectory="%TEMP%\iisexpress\ASP Compiled Templates" /> |
||||
|
<limits /> |
||||
|
</asp> |
||||
|
<caching enabled="true" enableKernelCache="true"></caching> |
||||
|
<cgi /> |
||||
|
<defaultDocument enabled="true"> |
||||
|
<files> |
||||
|
<add value="Default.htm" /> |
||||
|
<add value="Default.asp" /> |
||||
|
<add value="index.htm" /> |
||||
|
<add value="index.html" /> |
||||
|
<add value="iisstart.htm" /> |
||||
|
<add value="default.aspx" /> |
||||
|
</files> |
||||
|
</defaultDocument> |
||||
|
<directoryBrowse enabled="false" /> |
||||
|
<fastCgi /> |
||||
|
<!-- |
||||
|
|
||||
|
The <globalModules> section defines all native-code modules. |
||||
|
To enable a module, specify it in the <modules> section. |
||||
|
|
||||
|
--> |
||||
|
<globalModules> |
||||
|
<add name="HttpLoggingModule" image="%IIS_BIN%\loghttp.dll" /> |
||||
|
<add name="UriCacheModule" image="%IIS_BIN%\cachuri.dll" /> |
||||
|
<add name="TokenCacheModule" image="%IIS_BIN%\cachtokn.dll" /> |
||||
|
<add name="DynamicCompressionModule" image="%IIS_BIN%\compdyn.dll" /> |
||||
|
<add name="StaticCompressionModule" image="%IIS_BIN%\compstat.dll" /> |
||||
|
<add name="DefaultDocumentModule" image="%IIS_BIN%\defdoc.dll" /> |
||||
|
<add name="DirectoryListingModule" image="%IIS_BIN%\dirlist.dll" /> |
||||
|
<add name="ProtocolSupportModule" image="%IIS_BIN%\protsup.dll" /> |
||||
|
<add name="HttpRedirectionModule" image="%IIS_BIN%\redirect.dll" /> |
||||
|
<add name="ServerSideIncludeModule" image="%IIS_BIN%\iis_ssi.dll" /> |
||||
|
<add name="StaticFileModule" image="%IIS_BIN%\static.dll" /> |
||||
|
<add name="AnonymousAuthenticationModule" image="%IIS_BIN%\authanon.dll" /> |
||||
|
<add name="CertificateMappingAuthenticationModule" image="%IIS_BIN%\authcert.dll" /> |
||||
|
<add name="UrlAuthorizationModule" image="%IIS_BIN%\urlauthz.dll" /> |
||||
|
<add name="BasicAuthenticationModule" image="%IIS_BIN%\authbas.dll" /> |
||||
|
<add name="WindowsAuthenticationModule" image="%IIS_BIN%\authsspi.dll" /> |
||||
|
<add name="IISCertificateMappingAuthenticationModule" image="%IIS_BIN%\authmap.dll" /> |
||||
|
<add name="IpRestrictionModule" image="%IIS_BIN%\iprestr.dll" /> |
||||
|
<add name="DynamicIpRestrictionModule" image="%IIS_BIN%\diprestr.dll" /> |
||||
|
<add name="RequestFilteringModule" image="%IIS_BIN%\modrqflt.dll" /> |
||||
|
<add name="CustomLoggingModule" image="%IIS_BIN%\logcust.dll" /> |
||||
|
<add name="CustomErrorModule" image="%IIS_BIN%\custerr.dll" /> |
||||
|
<add name="FailedRequestsTracingModule" image="%IIS_BIN%\iisfreb.dll" /> |
||||
|
<add name="RequestMonitorModule" image="%IIS_BIN%\iisreqs.dll" /> |
||||
|
<add name="IsapiModule" image="%IIS_BIN%\isapi.dll" /> |
||||
|
<add name="IsapiFilterModule" image="%IIS_BIN%\filter.dll" /> |
||||
|
<add name="CgiModule" image="%IIS_BIN%\cgi.dll" /> |
||||
|
<add name="FastCgiModule" image="%IIS_BIN%\iisfcgi.dll" /> |
||||
|
<!-- <add name="WebDAVModule" image="%IIS_BIN%\webdav.dll" /> --> |
||||
|
<add name="RewriteModule" image="%IIS_BIN%\rewrite.dll" /> |
||||
|
<add name="ConfigurationValidationModule" image="%IIS_BIN%\validcfg.dll" /> |
||||
|
<add name="WebSocketModule" image="%IIS_BIN%\iiswsock.dll" /> |
||||
|
<add name="WebMatrixSupportModule" image="%IIS_BIN%\webmatrixsup.dll" /> |
||||
|
<add name="ManagedEngine" image="%windir%\Microsoft.NET\Framework\v2.0.50727\webengine.dll" preCondition="integratedMode,runtimeVersionv2.0,bitness32" /> |
||||
|
<add name="ManagedEngine64" image="%windir%\Microsoft.NET\Framework64\v2.0.50727\webengine.dll" preCondition="integratedMode,runtimeVersionv2.0,bitness64" /> |
||||
|
<add name="ManagedEngineV4.0_32bit" image="%windir%\Microsoft.NET\Framework\v4.0.30319\webengine4.dll" preCondition="integratedMode,runtimeVersionv4.0,bitness32" /> |
||||
|
<add name="ManagedEngineV4.0_64bit" image="%windir%\Microsoft.NET\Framework64\v4.0.30319\webengine4.dll" preCondition="integratedMode,runtimeVersionv4.0,bitness64" /> |
||||
|
<add name="ApplicationInitializationModule" image="%IIS_BIN%\warmup.dll" /> |
||||
|
<add name="AspNetCoreModule" image="%IIS_BIN%\aspnetcore.dll" /> |
||||
|
<add name="AspNetCoreModuleV2" image="%IIS_BIN%\Asp.Net Core Module\V2\aspnetcorev2.dll" /> |
||||
|
</globalModules> |
||||
|
<httpCompression directory="%TEMP%"> |
||||
|
<scheme name="gzip" dll="%IIS_BIN%\gzip.dll" /> |
||||
|
<dynamicTypes> |
||||
|
<add mimeType="text/*" enabled="true" /> |
||||
|
<add mimeType="message/*" enabled="true" /> |
||||
|
<add mimeType="application/x-javascript" enabled="true" /> |
||||
|
<add mimeType="application/javascript" enabled="true" /> |
||||
|
<add mimeType="*/*" enabled="false" /> |
||||
|
</dynamicTypes> |
||||
|
<staticTypes> |
||||
|
<add mimeType="text/*" enabled="true" /> |
||||
|
<add mimeType="message/*" enabled="true" /> |
||||
|
<add mimeType="application/javascript" enabled="true" /> |
||||
|
<add mimeType="application/atom+xml" enabled="true" /> |
||||
|
<add mimeType="application/xaml+xml" enabled="true" /> |
||||
|
<add mimeType="image/svg+xml" enabled="true" /> |
||||
|
<add mimeType="*/*" enabled="false" /> |
||||
|
</staticTypes> |
||||
|
</httpCompression> |
||||
|
<httpErrors lockAttributes="allowAbsolutePathsWhenDelegated,defaultPath"> |
||||
|
<error statusCode="401" prefixLanguageFilePath="%IIS_BIN%\custerr" path="401.htm" /> |
||||
|
<error statusCode="403" prefixLanguageFilePath="%IIS_BIN%\custerr" path="403.htm" /> |
||||
|
<error statusCode="404" prefixLanguageFilePath="%IIS_BIN%\custerr" path="404.htm" /> |
||||
|
<error statusCode="405" prefixLanguageFilePath="%IIS_BIN%\custerr" path="405.htm" /> |
||||
|
<error statusCode="406" prefixLanguageFilePath="%IIS_BIN%\custerr" path="406.htm" /> |
||||
|
<error statusCode="412" prefixLanguageFilePath="%IIS_BIN%\custerr" path="412.htm" /> |
||||
|
<error statusCode="500" prefixLanguageFilePath="%IIS_BIN%\custerr" path="500.htm" /> |
||||
|
<error statusCode="501" prefixLanguageFilePath="%IIS_BIN%\custerr" path="501.htm" /> |
||||
|
<error statusCode="502" prefixLanguageFilePath="%IIS_BIN%\custerr" path="502.htm" /> |
||||
|
</httpErrors> |
||||
|
<httpLogging dontLog="false" /> |
||||
|
<httpProtocol> |
||||
|
<customHeaders> |
||||
|
<clear /> |
||||
|
<add name="X-Powered-By" value="ASP.NET" /> |
||||
|
</customHeaders> |
||||
|
<redirectHeaders> |
||||
|
<clear /> |
||||
|
</redirectHeaders> |
||||
|
</httpProtocol> |
||||
|
<httpRedirect enabled="false" /> |
||||
|
<httpTracing /> |
||||
|
<isapiFilters> |
||||
|
<filter name="ASP.Net_2.0.50727-64" path="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_filter.dll" enableCache="true" preCondition="bitness64,runtimeVersionv2.0" /> |
||||
|
<filter name="ASP.Net_2.0.50727.0" path="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_filter.dll" enableCache="true" preCondition="bitness32,runtimeVersionv2.0" /> |
||||
|
<filter name="ASP.Net_2.0_for_v1.1" path="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_filter.dll" enableCache="true" preCondition="runtimeVersionv1.1" /> |
||||
|
<filter name="ASP.Net_4.0_32bit" path="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_filter.dll" enableCache="true" preCondition="bitness32,runtimeVersionv4.0" /> |
||||
|
<filter name="ASP.Net_4.0_64bit" path="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_filter.dll" enableCache="true" preCondition="bitness64,runtimeVersionv4.0" /> |
||||
|
</isapiFilters> |
||||
|
<odbcLogging /> |
||||
|
<security> |
||||
|
<access sslFlags="None" /> |
||||
|
<applicationDependencies> |
||||
|
<application name="Active Server Pages" groupId="ASP" /> |
||||
|
</applicationDependencies> |
||||
|
<authentication> |
||||
|
<anonymousAuthentication enabled="true" userName="" /> |
||||
|
<basicAuthentication enabled="false" /> |
||||
|
<clientCertificateMappingAuthentication enabled="false" /> |
||||
|
<digestAuthentication enabled="false" /> |
||||
|
<iisClientCertificateMappingAuthentication enabled="false"></iisClientCertificateMappingAuthentication> |
||||
|
<windowsAuthentication enabled="false"> |
||||
|
<providers> |
||||
|
<add value="Negotiate" /> |
||||
|
<add value="NTLM" /> |
||||
|
</providers> |
||||
|
</windowsAuthentication> |
||||
|
</authentication> |
||||
|
<authorization> |
||||
|
<add accessType="Allow" users="*" /> |
||||
|
</authorization> |
||||
|
<ipSecurity allowUnlisted="true" /> |
||||
|
<isapiCgiRestriction notListedIsapisAllowed="true" notListedCgisAllowed="true"> |
||||
|
<add path="%windir%\Microsoft.NET\Framework64\v4.0.30319\webengine4.dll" allowed="true" groupId="ASP.NET_v4.0" description="ASP.NET_v4.0" /> |
||||
|
<add path="%windir%\Microsoft.NET\Framework\v4.0.30319\webengine4.dll" allowed="true" groupId="ASP.NET_v4.0" description="ASP.NET_v4.0" /> |
||||
|
<add path="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" allowed="true" groupId="ASP.NET v2.0.50727" description="ASP.NET v2.0.50727" /> |
||||
|
<add path="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" allowed="true" groupId="ASP.NET v2.0.50727" description="ASP.NET v2.0.50727" /> |
||||
|
</isapiCgiRestriction> |
||||
|
<requestFiltering> |
||||
|
<fileExtensions allowUnlisted="true" applyToWebDAV="true"> |
||||
|
<add fileExtension=".asa" allowed="false" /> |
||||
|
<add fileExtension=".asax" allowed="false" /> |
||||
|
<add fileExtension=".ascx" allowed="false" /> |
||||
|
<add fileExtension=".master" allowed="false" /> |
||||
|
<add fileExtension=".skin" allowed="false" /> |
||||
|
<add fileExtension=".browser" allowed="false" /> |
||||
|
<add fileExtension=".sitemap" allowed="false" /> |
||||
|
<add fileExtension=".config" allowed="false" /> |
||||
|
<add fileExtension=".cs" allowed="false" /> |
||||
|
<add fileExtension=".csproj" allowed="false" /> |
||||
|
<add fileExtension=".vb" allowed="false" /> |
||||
|
<add fileExtension=".vbproj" allowed="false" /> |
||||
|
<add fileExtension=".webinfo" allowed="false" /> |
||||
|
<add fileExtension=".licx" allowed="false" /> |
||||
|
<add fileExtension=".resx" allowed="false" /> |
||||
|
<add fileExtension=".resources" allowed="false" /> |
||||
|
<add fileExtension=".mdb" allowed="false" /> |
||||
|
<add fileExtension=".vjsproj" allowed="false" /> |
||||
|
<add fileExtension=".java" allowed="false" /> |
||||
|
<add fileExtension=".jsl" allowed="false" /> |
||||
|
<add fileExtension=".ldb" allowed="false" /> |
||||
|
<add fileExtension=".dsdgm" allowed="false" /> |
||||
|
<add fileExtension=".ssdgm" allowed="false" /> |
||||
|
<add fileExtension=".lsad" allowed="false" /> |
||||
|
<add fileExtension=".ssmap" allowed="false" /> |
||||
|
<add fileExtension=".cd" allowed="false" /> |
||||
|
<add fileExtension=".dsprototype" allowed="false" /> |
||||
|
<add fileExtension=".lsaprototype" allowed="false" /> |
||||
|
<add fileExtension=".sdm" allowed="false" /> |
||||
|
<add fileExtension=".sdmDocument" allowed="false" /> |
||||
|
<add fileExtension=".mdf" allowed="false" /> |
||||
|
<add fileExtension=".ldf" allowed="false" /> |
||||
|
<add fileExtension=".ad" allowed="false" /> |
||||
|
<add fileExtension=".dd" allowed="false" /> |
||||
|
<add fileExtension=".ldd" allowed="false" /> |
||||
|
<add fileExtension=".sd" allowed="false" /> |
||||
|
<add fileExtension=".adprototype" allowed="false" /> |
||||
|
<add fileExtension=".lddprototype" allowed="false" /> |
||||
|
<add fileExtension=".exclude" allowed="false" /> |
||||
|
<add fileExtension=".refresh" allowed="false" /> |
||||
|
<add fileExtension=".compiled" allowed="false" /> |
||||
|
<add fileExtension=".msgx" allowed="false" /> |
||||
|
<add fileExtension=".vsdisco" allowed="false" /> |
||||
|
<add fileExtension=".rules" allowed="false" /> |
||||
|
</fileExtensions> |
||||
|
<verbs allowUnlisted="true" applyToWebDAV="true" /> |
||||
|
<hiddenSegments applyToWebDAV="true"> |
||||
|
<add segment="web.config" /> |
||||
|
<add segment="bin" /> |
||||
|
<add segment="App_code" /> |
||||
|
<add segment="App_GlobalResources" /> |
||||
|
<add segment="App_LocalResources" /> |
||||
|
<add segment="App_WebReferences" /> |
||||
|
<add segment="App_Data" /> |
||||
|
<add segment="App_Browsers" /> |
||||
|
</hiddenSegments> |
||||
|
</requestFiltering> |
||||
|
</security> |
||||
|
<serverSideInclude ssiExecDisable="false" /> |
||||
|
<staticContent lockAttributes="isDocFooterFileName"> |
||||
|
<mimeMap fileExtension=".323" mimeType="text/h323" /> |
||||
|
<mimeMap fileExtension=".3g2" mimeType="video/3gpp2" /> |
||||
|
<mimeMap fileExtension=".3gp2" mimeType="video/3gpp2" /> |
||||
|
<mimeMap fileExtension=".3gp" mimeType="video/3gpp" /> |
||||
|
<mimeMap fileExtension=".3gpp" mimeType="video/3gpp" /> |
||||
|
<mimeMap fileExtension=".aac" mimeType="audio/aac" /> |
||||
|
<mimeMap fileExtension=".aaf" mimeType="application/octet-stream" /> |
||||
|
<mimeMap fileExtension=".aca" mimeType="application/octet-stream" /> |
||||
|
<mimeMap fileExtension=".accdb" mimeType="application/msaccess" /> |
||||
|
<mimeMap fileExtension=".accde" mimeType="application/msaccess" /> |
||||
|
<mimeMap fileExtension=".accdt" mimeType="application/msaccess" /> |
||||
|
<mimeMap fileExtension=".acx" mimeType="application/internet-property-stream" /> |
||||
|
<mimeMap fileExtension=".adt" mimeType="audio/vnd.dlna.adts" /> |
||||
|
<mimeMap fileExtension=".adts" mimeType="audio/vnd.dlna.adts" /> |
||||
|
<mimeMap fileExtension=".afm" mimeType="application/octet-stream" /> |
||||
|
<mimeMap fileExtension=".ai" mimeType="application/postscript" /> |
||||
|
<mimeMap fileExtension=".aif" mimeType="audio/x-aiff" /> |
||||
|
<mimeMap fileExtension=".aifc" mimeType="audio/aiff" /> |
||||
|
<mimeMap fileExtension=".aiff" mimeType="audio/aiff" /> |
||||
|
<mimeMap fileExtension=".appcache" mimeType="text/cache-manifest" /> |
||||
|
<mimeMap fileExtension=".application" mimeType="application/x-ms-application" /> |
||||
|
<mimeMap fileExtension=".art" mimeType="image/x-jg" /> |
||||
|
<mimeMap fileExtension=".asd" mimeType="application/octet-stream" /> |
||||
|
<mimeMap fileExtension=".asf" mimeType="video/x-ms-asf" /> |
||||
|
<mimeMap fileExtension=".asi" mimeType="application/octet-stream" /> |
||||
|
<mimeMap fileExtension=".asm" mimeType="text/plain" /> |
||||
|
<mimeMap fileExtension=".asr" mimeType="video/x-ms-asf" /> |
||||
|
<mimeMap fileExtension=".asx" mimeType="video/x-ms-asf" /> |
||||
|
<mimeMap fileExtension=".atom" mimeType="application/atom+xml" /> |
||||
|
<mimeMap fileExtension=".au" mimeType="audio/basic" /> |
||||
|
<mimeMap fileExtension=".avi" mimeType="video/avi" /> |
||||
|
<mimeMap fileExtension=".axs" mimeType="application/olescript" /> |
||||
|
<mimeMap fileExtension=".bas" mimeType="text/plain" /> |
||||
|
<mimeMap fileExtension=".bcpio" mimeType="application/x-bcpio" /> |
||||
|
<mimeMap fileExtension=".bin" mimeType="application/octet-stream" /> |
||||
|
<mimeMap fileExtension=".bmp" mimeType="image/bmp" /> |
||||
|
<mimeMap fileExtension=".c" mimeType="text/plain" /> |
||||
|
<mimeMap fileExtension=".cab" mimeType="application/vnd.ms-cab-compressed" /> |
||||
|
<mimeMap fileExtension=".calx" mimeType="application/vnd.ms-office.calx" /> |
||||
|
<mimeMap fileExtension=".cat" mimeType="application/vnd.ms-pki.seccat" /> |
||||
|
<mimeMap fileExtension=".cdf" mimeType="application/x-cdf" /> |
||||
|
<mimeMap fileExtension=".chm" mimeType="application/octet-stream" /> |
||||
|
<mimeMap fileExtension=".class" mimeType="application/x-java-applet" /> |
||||
|
<mimeMap fileExtension=".clp" mimeType="application/x-msclip" /> |
||||
|
<mimeMap fileExtension=".cmx" mimeType="image/x-cmx" /> |
||||
|
<mimeMap fileExtension=".cnf" mimeType="text/plain" /> |
||||
|
<mimeMap fileExtension=".cod" mimeType="image/cis-cod" /> |
||||
|
<mimeMap fileExtension=".cpio" mimeType="application/x-cpio" /> |
||||
|
<mimeMap fileExtension=".cpp" mimeType="text/plain" /> |
||||
|
<mimeMap fileExtension=".crd" mimeType="application/x-mscardfile" /> |
||||
|
<mimeMap fileExtension=".crl" mimeType="application/pkix-crl" /> |
||||
|
<mimeMap fileExtension=".crt" mimeType="application/x-x509-ca-cert" /> |
||||
|
<mimeMap fileExtension=".csh" mimeType="application/x-csh" /> |
||||
|
<mimeMap fileExtension=".css" mimeType="text/css" /> |
||||
|
<mimeMap fileExtension=".csv" mimeType="application/octet-stream" /> |
||||
|
<mimeMap fileExtension=".cur" mimeType="application/octet-stream" /> |
||||
|
<mimeMap fileExtension=".dcr" mimeType="application/x-director" /> |
||||
|
<mimeMap fileExtension=".deploy" mimeType="application/octet-stream" /> |
||||
|
<mimeMap fileExtension=".der" mimeType="application/x-x509-ca-cert" /> |
||||
|
<mimeMap fileExtension=".dib" mimeType="image/bmp" /> |
||||
|
<mimeMap fileExtension=".dir" mimeType="application/x-director" /> |
||||
|
<mimeMap fileExtension=".disco" mimeType="text/xml" /> |
||||
|
<mimeMap fileExtension=".dll" mimeType="application/x-msdownload" /> |
||||
|
<mimeMap fileExtension=".dll.config" mimeType="text/xml" /> |
||||
|
<mimeMap fileExtension=".dlm" mimeType="text/dlm" /> |
||||
|
<mimeMap fileExtension=".doc" mimeType="application/msword" /> |
||||
|
<mimeMap fileExtension=".docm" mimeType="application/vnd.ms-word.document.macroEnabled.12" /> |
||||
|
<mimeMap fileExtension=".docx" mimeType="application/vnd.openxmlformats-officedocument.wordprocessingml.document" /> |
||||
|
<mimeMap fileExtension=".dot" mimeType="application/msword" /> |
||||
|
<mimeMap fileExtension=".dotm" mimeType="application/vnd.ms-word.template.macroEnabled.12" /> |
||||
|
<mimeMap fileExtension=".dotx" mimeType="application/vnd.openxmlformats-officedocument.wordprocessingml.template" /> |
||||
|
<mimeMap fileExtension=".dsp" mimeType="application/octet-stream" /> |
||||
|
<mimeMap fileExtension=".dtd" mimeType="text/xml" /> |
||||
|
<mimeMap fileExtension=".dvi" mimeType="application/x-dvi" /> |
||||
|
<mimeMap fileExtension=".dvr-ms" mimeType="video/x-ms-dvr" /> |
||||
|
<mimeMap fileExtension=".dwf" mimeType="drawing/x-dwf" /> |
||||
|
<mimeMap fileExtension=".dwp" mimeType="application/octet-stream" /> |
||||
|
<mimeMap fileExtension=".dxr" mimeType="application/x-director" /> |
||||
|
<mimeMap fileExtension=".eml" mimeType="message/rfc822" /> |
||||
|
<mimeMap fileExtension=".emz" mimeType="application/octet-stream" /> |
||||
|
<mimeMap fileExtension=".eot" mimeType="application/vnd.ms-fontobject" /> |
||||
|
<mimeMap fileExtension=".eps" mimeType="application/postscript" /> |
||||
|
<mimeMap fileExtension=".esd" mimeType="application/vnd.ms-cab-compressed" /> |
||||
|
<mimeMap fileExtension=".etx" mimeType="text/x-setext" /> |
||||
|
<mimeMap fileExtension=".evy" mimeType="application/envoy" /> |
||||
|
<mimeMap fileExtension=".exe" mimeType="application/octet-stream" /> |
||||
|
<mimeMap fileExtension=".exe.config" mimeType="text/xml" /> |
||||
|
<mimeMap fileExtension=".fdf" mimeType="application/vnd.fdf" /> |
||||
|
<mimeMap fileExtension=".fif" mimeType="application/fractals" /> |
||||
|
<mimeMap fileExtension=".fla" mimeType="application/octet-stream" /> |
||||
|
<mimeMap fileExtension=".flr" mimeType="x-world/x-vrml" /> |
||||
|
<mimeMap fileExtension=".flv" mimeType="video/x-flv" /> |
||||
|
<mimeMap fileExtension=".gif" mimeType="image/gif" /> |
||||
|
<mimeMap fileExtension=".glb" mimeType="model/gltf-binary" /> |
||||
|
<mimeMap fileExtension=".gtar" mimeType="application/x-gtar" /> |
||||
|
<mimeMap fileExtension=".gz" mimeType="application/x-gzip" /> |
||||
|
<mimeMap fileExtension=".h" mimeType="text/plain" /> |
||||
|
<mimeMap fileExtension=".hdf" mimeType="application/x-hdf" /> |
||||
|
<mimeMap fileExtension=".hdml" mimeType="text/x-hdml" /> |
||||
|
<mimeMap fileExtension=".hhc" mimeType="application/x-oleobject" /> |
||||
|
<mimeMap fileExtension=".hhk" mimeType="application/octet-stream" /> |
||||
|
<mimeMap fileExtension=".hhp" mimeType="application/octet-stream" /> |
||||
|
<mimeMap fileExtension=".hlp" mimeType="application/winhlp" /> |
||||
|
<mimeMap fileExtension=".hqx" mimeType="application/mac-binhex40" /> |
||||
|
<mimeMap fileExtension=".hta" mimeType="application/hta" /> |
||||
|
<mimeMap fileExtension=".htc" mimeType="text/x-component" /> |
||||
|
<mimeMap fileExtension=".htm" mimeType="text/html" /> |
||||
|
<mimeMap fileExtension=".html" mimeType="text/html" /> |
||||
|
<mimeMap fileExtension=".htt" mimeType="text/webviewhtml" /> |
||||
|
<mimeMap fileExtension=".hxt" mimeType="text/html" /> |
||||
|
<mimeMap fileExtension=".ico" mimeType="image/x-icon" /> |
||||
|
<mimeMap fileExtension=".ics" mimeType="text/calendar" /> |
||||
|
<mimeMap fileExtension=".ief" mimeType="image/ief" /> |
||||
|
<mimeMap fileExtension=".iii" mimeType="application/x-iphone" /> |
||||
|
<mimeMap fileExtension=".inf" mimeType="application/octet-stream" /> |
||||
|
<mimeMap fileExtension=".ins" mimeType="application/x-internet-signup" /> |
||||
|
<mimeMap fileExtension=".isp" mimeType="application/x-internet-signup" /> |
||||
|
<mimeMap fileExtension=".IVF" mimeType="video/x-ivf" /> |
||||
|
<mimeMap fileExtension=".jar" mimeType="application/java-archive" /> |
||||
|
<mimeMap fileExtension=".java" mimeType="application/octet-stream" /> |
||||
|
<mimeMap fileExtension=".jck" mimeType="application/liquidmotion" /> |
||||
|
<mimeMap fileExtension=".jcz" mimeType="application/liquidmotion" /> |
||||
|
<mimeMap fileExtension=".jfif" mimeType="image/pjpeg" /> |
||||
|
<mimeMap fileExtension=".jpb" mimeType="application/octet-stream" /> |
||||
|
<mimeMap fileExtension=".jpe" mimeType="image/jpeg" /> |
||||
|
<mimeMap fileExtension=".jpeg" mimeType="image/jpeg" /> |
||||
|
<mimeMap fileExtension=".jpg" mimeType="image/jpeg" /> |
||||
|
<mimeMap fileExtension=".js" mimeType="application/javascript" /> |
||||
|
<mimeMap fileExtension=".json" mimeType="application/json" /> |
||||
|
<mimeMap fileExtension=".jsonld" mimeType="application/ld+json" /> |
||||
|
<mimeMap fileExtension=".jsx" mimeType="text/jscript" /> |
||||
|
<mimeMap fileExtension=".latex" mimeType="application/x-latex" /> |
||||
|
<mimeMap fileExtension=".less" mimeType="text/css" /> |
||||
|
<mimeMap fileExtension=".lit" mimeType="application/x-ms-reader" /> |
||||
|
<mimeMap fileExtension=".lpk" mimeType="application/octet-stream" /> |
||||
|
<mimeMap fileExtension=".lsf" mimeType="video/x-la-asf" /> |
||||
|
<mimeMap fileExtension=".lsx" mimeType="video/x-la-asf" /> |
||||
|
<mimeMap fileExtension=".lzh" mimeType="application/octet-stream" /> |
||||
|
<mimeMap fileExtension=".m13" mimeType="application/x-msmediaview" /> |
||||
|
<mimeMap fileExtension=".m14" mimeType="application/x-msmediaview" /> |
||||
|
<mimeMap fileExtension=".m1v" mimeType="video/mpeg" /> |
||||
|
<mimeMap fileExtension=".m2ts" mimeType="video/vnd.dlna.mpeg-tts" /> |
||||
|
<mimeMap fileExtension=".m3u" mimeType="audio/x-mpegurl" /> |
||||
|
<mimeMap fileExtension=".m4a" mimeType="audio/mp4" /> |
||||
|
<mimeMap fileExtension=".m4v" mimeType="video/mp4" /> |
||||
|
<mimeMap fileExtension=".man" mimeType="application/x-troff-man" /> |
||||
|
<mimeMap fileExtension=".manifest" mimeType="application/x-ms-manifest" /> |
||||
|
<mimeMap fileExtension=".map" mimeType="text/plain" /> |
||||
|
<mimeMap fileExtension=".mdb" mimeType="application/x-msaccess" /> |
||||
|
<mimeMap fileExtension=".mdp" mimeType="application/octet-stream" /> |
||||
|
<mimeMap fileExtension=".me" mimeType="application/x-troff-me" /> |
||||
|
<mimeMap fileExtension=".mht" mimeType="message/rfc822" /> |
||||
|
<mimeMap fileExtension=".mhtml" mimeType="message/rfc822" /> |
||||
|
<mimeMap fileExtension=".mid" mimeType="audio/mid" /> |
||||
|
<mimeMap fileExtension=".midi" mimeType="audio/mid" /> |
||||
|
<mimeMap fileExtension=".mix" mimeType="application/octet-stream" /> |
||||
|
<mimeMap fileExtension=".mmf" mimeType="application/x-smaf" /> |
||||
|
<mimeMap fileExtension=".mno" mimeType="text/xml" /> |
||||
|
<mimeMap fileExtension=".mny" mimeType="application/x-msmoney" /> |
||||
|
<mimeMap fileExtension=".mov" mimeType="video/quicktime" /> |
||||
|
<mimeMap fileExtension=".movie" mimeType="video/x-sgi-movie" /> |
||||
|
<mimeMap fileExtension=".mp2" mimeType="video/mpeg" /> |
||||
|
<mimeMap fileExtension=".mp3" mimeType="audio/mpeg" /> |
||||
|
<mimeMap fileExtension=".mp4" mimeType="video/mp4" /> |
||||
|
<mimeMap fileExtension=".mp4v" mimeType="video/mp4" /> |
||||
|
<mimeMap fileExtension=".mpa" mimeType="video/mpeg" /> |
||||
|
<mimeMap fileExtension=".mpe" mimeType="video/mpeg" /> |
||||
|
<mimeMap fileExtension=".mpeg" mimeType="video/mpeg" /> |
||||
|
<mimeMap fileExtension=".mpg" mimeType="video/mpeg" /> |
||||
|
<mimeMap fileExtension=".mpp" mimeType="application/vnd.ms-project" /> |
||||
|
<mimeMap fileExtension=".mpv2" mimeType="video/mpeg" /> |
||||
|
<mimeMap fileExtension=".ms" mimeType="application/x-troff-ms" /> |
||||
|
<mimeMap fileExtension=".msi" mimeType="application/octet-stream" /> |
||||
|
<mimeMap fileExtension=".mso" mimeType="application/octet-stream" /> |
||||
|
<mimeMap fileExtension=".mvb" mimeType="application/x-msmediaview" /> |
||||
|
<mimeMap fileExtension=".mvc" mimeType="application/x-miva-compiled" /> |
||||
|
<mimeMap fileExtension=".nc" mimeType="application/x-netcdf" /> |
||||
|
<mimeMap fileExtension=".nsc" mimeType="video/x-ms-asf" /> |
||||
|
<mimeMap fileExtension=".nws" mimeType="message/rfc822" /> |
||||
|
<mimeMap fileExtension=".ocx" mimeType="application/octet-stream" /> |
||||
|
<mimeMap fileExtension=".oda" mimeType="application/oda" /> |
||||
|
<mimeMap fileExtension=".odc" mimeType="text/x-ms-odc" /> |
||||
|
<mimeMap fileExtension=".ods" mimeType="application/oleobject" /> |
||||
|
<mimeMap fileExtension=".oga" mimeType="audio/ogg" /> |
||||
|
<mimeMap fileExtension=".ogg" mimeType="video/ogg" /> |
||||
|
<mimeMap fileExtension=".ogv" mimeType="video/ogg" /> |
||||
|
<mimeMap fileExtension=".one" mimeType="application/onenote" /> |
||||
|
<mimeMap fileExtension=".onea" mimeType="application/onenote" /> |
||||
|
<mimeMap fileExtension=".onetoc" mimeType="application/onenote" /> |
||||
|
<mimeMap fileExtension=".onetoc2" mimeType="application/onenote" /> |
||||
|
<mimeMap fileExtension=".onetmp" mimeType="application/onenote" /> |
||||
|
<mimeMap fileExtension=".onepkg" mimeType="application/onenote" /> |
||||
|
<mimeMap fileExtension=".osdx" mimeType="application/opensearchdescription+xml" /> |
||||
|
<mimeMap fileExtension=".otf" mimeType="font/otf" /> |
||||
|
<mimeMap fileExtension=".p10" mimeType="application/pkcs10" /> |
||||
|
<mimeMap fileExtension=".p12" mimeType="application/x-pkcs12" /> |
||||
|
<mimeMap fileExtension=".p7b" mimeType="application/x-pkcs7-certificates" /> |
||||
|
<mimeMap fileExtension=".p7c" mimeType="application/pkcs7-mime" /> |
||||
|
<mimeMap fileExtension=".p7m" mimeType="application/pkcs7-mime" /> |
||||
|
<mimeMap fileExtension=".p7r" mimeType="application/x-pkcs7-certreqresp" /> |
||||
|
<mimeMap fileExtension=".p7s" mimeType="application/pkcs7-signature" /> |
||||
|
<mimeMap fileExtension=".pbm" mimeType="image/x-portable-bitmap" /> |
||||
|
<mimeMap fileExtension=".pcx" mimeType="application/octet-stream" /> |
||||
|
<mimeMap fileExtension=".pcz" mimeType="application/octet-stream" /> |
||||
|
<mimeMap fileExtension=".pdf" mimeType="application/pdf" /> |
||||
|
<mimeMap fileExtension=".pfb" mimeType="application/octet-stream" /> |
||||
|
<mimeMap fileExtension=".pfm" mimeType="application/octet-stream" /> |
||||
|
<mimeMap fileExtension=".pfx" mimeType="application/x-pkcs12" /> |
||||
|
<mimeMap fileExtension=".pgm" mimeType="image/x-portable-graymap" /> |
||||
|
<mimeMap fileExtension=".pko" mimeType="application/vnd.ms-pki.pko" /> |
||||
|
<mimeMap fileExtension=".pma" mimeType="application/x-perfmon" /> |
||||
|
<mimeMap fileExtension=".pmc" mimeType="application/x-perfmon" /> |
||||
|
<mimeMap fileExtension=".pml" mimeType="application/x-perfmon" /> |
||||
|
<mimeMap fileExtension=".pmr" mimeType="application/x-perfmon" /> |
||||
|
<mimeMap fileExtension=".pmw" mimeType="application/x-perfmon" /> |
||||
|
<mimeMap fileExtension=".png" mimeType="image/png" /> |
||||
|
<mimeMap fileExtension=".pnm" mimeType="image/x-portable-anymap" /> |
||||
|
<mimeMap fileExtension=".pnz" mimeType="image/png" /> |
||||
|
<mimeMap fileExtension=".pot" mimeType="application/vnd.ms-powerpoint" /> |
||||
|
<mimeMap fileExtension=".potm" mimeType="application/vnd.ms-powerpoint.template.macroEnabled.12" /> |
||||
|
<mimeMap fileExtension=".potx" mimeType="application/vnd.openxmlformats-officedocument.presentationml.template" /> |
||||
|
<mimeMap fileExtension=".ppam" mimeType="application/vnd.ms-powerpoint.addin.macroEnabled.12" /> |
||||
|
<mimeMap fileExtension=".ppm" mimeType="image/x-portable-pixmap" /> |
||||
|
<mimeMap fileExtension=".pps" mimeType="application/vnd.ms-powerpoint" /> |
||||
|
<mimeMap fileExtension=".ppsm" mimeType="application/vnd.ms-powerpoint.slideshow.macroEnabled.12" /> |
||||
|
<mimeMap fileExtension=".ppsx" mimeType="application/vnd.openxmlformats-officedocument.presentationml.slideshow" /> |
||||
|
<mimeMap fileExtension=".ppt" mimeType="application/vnd.ms-powerpoint" /> |
||||
|
<mimeMap fileExtension=".pptm" mimeType="application/vnd.ms-powerpoint.presentation.macroEnabled.12" /> |
||||
|
<mimeMap fileExtension=".pptx" mimeType="application/vnd.openxmlformats-officedocument.presentationml.presentation" /> |
||||
|
<mimeMap fileExtension=".prf" mimeType="application/pics-rules" /> |
||||
|
<mimeMap fileExtension=".prm" mimeType="application/octet-stream" /> |
||||
|
<mimeMap fileExtension=".prx" mimeType="application/octet-stream" /> |
||||
|
<mimeMap fileExtension=".ps" mimeType="application/postscript" /> |
||||
|
<mimeMap fileExtension=".psd" mimeType="application/octet-stream" /> |
||||
|
<mimeMap fileExtension=".psm" mimeType="application/octet-stream" /> |
||||
|
<mimeMap fileExtension=".psp" mimeType="application/octet-stream" /> |
||||
|
<mimeMap fileExtension=".pub" mimeType="application/x-mspublisher" /> |
||||
|
<mimeMap fileExtension=".qt" mimeType="video/quicktime" /> |
||||
|
<mimeMap fileExtension=".qtl" mimeType="application/x-quicktimeplayer" /> |
||||
|
<mimeMap fileExtension=".qxd" mimeType="application/octet-stream" /> |
||||
|
<mimeMap fileExtension=".ra" mimeType="audio/x-pn-realaudio" /> |
||||
|
<mimeMap fileExtension=".ram" mimeType="audio/x-pn-realaudio" /> |
||||
|
<mimeMap fileExtension=".rar" mimeType="application/octet-stream" /> |
||||
|
<mimeMap fileExtension=".ras" mimeType="image/x-cmu-raster" /> |
||||
|
<mimeMap fileExtension=".rf" mimeType="image/vnd.rn-realflash" /> |
||||
|
<mimeMap fileExtension=".rgb" mimeType="image/x-rgb" /> |
||||
|
<mimeMap fileExtension=".rm" mimeType="application/vnd.rn-realmedia" /> |
||||
|
<mimeMap fileExtension=".rmi" mimeType="audio/mid" /> |
||||
|
<mimeMap fileExtension=".roff" mimeType="application/x-troff" /> |
||||
|
<mimeMap fileExtension=".rpm" mimeType="audio/x-pn-realaudio-plugin" /> |
||||
|
<mimeMap fileExtension=".rtf" mimeType="application/rtf" /> |
||||
|
<mimeMap fileExtension=".rtx" mimeType="text/richtext" /> |
||||
|
<mimeMap fileExtension=".scd" mimeType="application/x-msschedule" /> |
||||
|
<mimeMap fileExtension=".sct" mimeType="text/scriptlet" /> |
||||
|
<mimeMap fileExtension=".sea" mimeType="application/octet-stream" /> |
||||
|
<mimeMap fileExtension=".setpay" mimeType="application/set-payment-initiation" /> |
||||
|
<mimeMap fileExtension=".setreg" mimeType="application/set-registration-initiation" /> |
||||
|
<mimeMap fileExtension=".sgml" mimeType="text/sgml" /> |
||||
|
<mimeMap fileExtension=".sh" mimeType="application/x-sh" /> |
||||
|
<mimeMap fileExtension=".shar" mimeType="application/x-shar" /> |
||||
|
<mimeMap fileExtension=".sit" mimeType="application/x-stuffit" /> |
||||
|
<mimeMap fileExtension=".sldm" mimeType="application/vnd.ms-powerpoint.slide.macroEnabled.12" /> |
||||
|
<mimeMap fileExtension=".sldx" mimeType="application/vnd.openxmlformats-officedocument.presentationml.slide" /> |
||||
|
<mimeMap fileExtension=".smd" mimeType="audio/x-smd" /> |
||||
|
<mimeMap fileExtension=".smi" mimeType="application/octet-stream" /> |
||||
|
<mimeMap fileExtension=".smx" mimeType="audio/x-smd" /> |
||||
|
<mimeMap fileExtension=".smz" mimeType="audio/x-smd" /> |
||||
|
<mimeMap fileExtension=".snd" mimeType="audio/basic" /> |
||||
|
<mimeMap fileExtension=".snp" mimeType="application/octet-stream" /> |
||||
|
<mimeMap fileExtension=".spc" mimeType="application/x-pkcs7-certificates" /> |
||||
|
<mimeMap fileExtension=".spl" mimeType="application/futuresplash" /> |
||||
|
<mimeMap fileExtension=".spx" mimeType="audio/ogg" /> |
||||
|
<mimeMap fileExtension=".src" mimeType="application/x-wais-source" /> |
||||
|
<mimeMap fileExtension=".ssm" mimeType="application/streamingmedia" /> |
||||
|
<mimeMap fileExtension=".sst" mimeType="application/vnd.ms-pki.certstore" /> |
||||
|
<mimeMap fileExtension=".stl" mimeType="application/vnd.ms-pki.stl" /> |
||||
|
<mimeMap fileExtension=".sv4cpio" mimeType="application/x-sv4cpio" /> |
||||
|
<mimeMap fileExtension=".sv4crc" mimeType="application/x-sv4crc" /> |
||||
|
<mimeMap fileExtension=".svg" mimeType="image/svg+xml" /> |
||||
|
<mimeMap fileExtension=".svgz" mimeType="image/svg+xml" /> |
||||
|
<mimeMap fileExtension=".swf" mimeType="application/x-shockwave-flash" /> |
||||
|
<mimeMap fileExtension=".t" mimeType="application/x-troff" /> |
||||
|
<mimeMap fileExtension=".tar" mimeType="application/x-tar" /> |
||||
|
<mimeMap fileExtension=".tcl" mimeType="application/x-tcl" /> |
||||
|
<mimeMap fileExtension=".tex" mimeType="application/x-tex" /> |
||||
|
<mimeMap fileExtension=".texi" mimeType="application/x-texinfo" /> |
||||
|
<mimeMap fileExtension=".texinfo" mimeType="application/x-texinfo" /> |
||||
|
<mimeMap fileExtension=".tgz" mimeType="application/x-compressed" /> |
||||
|
<mimeMap fileExtension=".thmx" mimeType="application/vnd.ms-officetheme" /> |
||||
|
<mimeMap fileExtension=".thn" mimeType="application/octet-stream" /> |
||||
|
<mimeMap fileExtension=".tif" mimeType="image/tiff" /> |
||||
|
<mimeMap fileExtension=".tiff" mimeType="image/tiff" /> |
||||
|
<mimeMap fileExtension=".toc" mimeType="application/octet-stream" /> |
||||
|
<mimeMap fileExtension=".tr" mimeType="application/x-troff" /> |
||||
|
<mimeMap fileExtension=".trm" mimeType="application/x-msterminal" /> |
||||
|
<mimeMap fileExtension=".ts" mimeType="video/vnd.dlna.mpeg-tts" /> |
||||
|
<mimeMap fileExtension=".tsv" mimeType="text/tab-separated-values" /> |
||||
|
<mimeMap fileExtension=".ttf" mimeType="application/octet-stream" /> |
||||
|
<mimeMap fileExtension=".tts" mimeType="video/vnd.dlna.mpeg-tts" /> |
||||
|
<mimeMap fileExtension=".txt" mimeType="text/plain" /> |
||||
|
<mimeMap fileExtension=".u32" mimeType="application/octet-stream" /> |
||||
|
<mimeMap fileExtension=".uls" mimeType="text/iuls" /> |
||||
|
<mimeMap fileExtension=".ustar" mimeType="application/x-ustar" /> |
||||
|
<mimeMap fileExtension=".vbs" mimeType="text/vbscript" /> |
||||
|
<mimeMap fileExtension=".vcf" mimeType="text/x-vcard" /> |
||||
|
<mimeMap fileExtension=".vcs" mimeType="text/plain" /> |
||||
|
<mimeMap fileExtension=".vdx" mimeType="application/vnd.ms-visio.viewer" /> |
||||
|
<mimeMap fileExtension=".vml" mimeType="text/xml" /> |
||||
|
<mimeMap fileExtension=".vsd" mimeType="application/vnd.visio" /> |
||||
|
<mimeMap fileExtension=".vss" mimeType="application/vnd.visio" /> |
||||
|
<mimeMap fileExtension=".vst" mimeType="application/vnd.visio" /> |
||||
|
<mimeMap fileExtension=".vsto" mimeType="application/x-ms-vsto" /> |
||||
|
<mimeMap fileExtension=".vsw" mimeType="application/vnd.visio" /> |
||||
|
<mimeMap fileExtension=".vsx" mimeType="application/vnd.visio" /> |
||||
|
<mimeMap fileExtension=".vtx" mimeType="application/vnd.visio" /> |
||||
|
<mimeMap fileExtension=".wasm" mimeType="application/wasm" /> |
||||
|
<mimeMap fileExtension=".wav" mimeType="audio/wav" /> |
||||
|
<mimeMap fileExtension=".wax" mimeType="audio/x-ms-wax" /> |
||||
|
<mimeMap fileExtension=".wbmp" mimeType="image/vnd.wap.wbmp" /> |
||||
|
<mimeMap fileExtension=".wcm" mimeType="application/vnd.ms-works" /> |
||||
|
<mimeMap fileExtension=".wdb" mimeType="application/vnd.ms-works" /> |
||||
|
<mimeMap fileExtension=".webm" mimeType="video/webm" /> |
||||
|
<mimeMap fileExtension=".wks" mimeType="application/vnd.ms-works" /> |
||||
|
<mimeMap fileExtension=".wm" mimeType="video/x-ms-wm" /> |
||||
|
<mimeMap fileExtension=".wma" mimeType="audio/x-ms-wma" /> |
||||
|
<mimeMap fileExtension=".wmd" mimeType="application/x-ms-wmd" /> |
||||
|
<mimeMap fileExtension=".wmf" mimeType="application/x-msmetafile" /> |
||||
|
<mimeMap fileExtension=".wml" mimeType="text/vnd.wap.wml" /> |
||||
|
<mimeMap fileExtension=".wmlc" mimeType="application/vnd.wap.wmlc" /> |
||||
|
<mimeMap fileExtension=".wmls" mimeType="text/vnd.wap.wmlscript" /> |
||||
|
<mimeMap fileExtension=".wmlsc" mimeType="application/vnd.wap.wmlscriptc" /> |
||||
|
<mimeMap fileExtension=".wmp" mimeType="video/x-ms-wmp" /> |
||||
|
<mimeMap fileExtension=".wmv" mimeType="video/x-ms-wmv" /> |
||||
|
<mimeMap fileExtension=".wmx" mimeType="video/x-ms-wmx" /> |
||||
|
<mimeMap fileExtension=".wmz" mimeType="application/x-ms-wmz" /> |
||||
|
<mimeMap fileExtension=".woff" mimeType="font/x-woff" /> |
||||
|
<mimeMap fileExtension=".woff2" mimeType="application/font-woff2" /> |
||||
|
<mimeMap fileExtension=".wps" mimeType="application/vnd.ms-works" /> |
||||
|
<mimeMap fileExtension=".wri" mimeType="application/x-mswrite" /> |
||||
|
<mimeMap fileExtension=".wrl" mimeType="x-world/x-vrml" /> |
||||
|
<mimeMap fileExtension=".wrz" mimeType="x-world/x-vrml" /> |
||||
|
<mimeMap fileExtension=".wsdl" mimeType="text/xml" /> |
||||
|
<mimeMap fileExtension=".wtv" mimeType="video/x-ms-wtv" /> |
||||
|
<mimeMap fileExtension=".wvx" mimeType="video/x-ms-wvx" /> |
||||
|
<mimeMap fileExtension=".x" mimeType="application/directx" /> |
||||
|
<mimeMap fileExtension=".xaf" mimeType="x-world/x-vrml" /> |
||||
|
<mimeMap fileExtension=".xaml" mimeType="application/xaml+xml" /> |
||||
|
<mimeMap fileExtension=".xap" mimeType="application/x-silverlight-app" /> |
||||
|
<mimeMap fileExtension=".xbap" mimeType="application/x-ms-xbap" /> |
||||
|
<mimeMap fileExtension=".xbm" mimeType="image/x-xbitmap" /> |
||||
|
<mimeMap fileExtension=".xdr" mimeType="text/plain" /> |
||||
|
<mimeMap fileExtension=".xht" mimeType="application/xhtml+xml" /> |
||||
|
<mimeMap fileExtension=".xhtml" mimeType="application/xhtml+xml" /> |
||||
|
<mimeMap fileExtension=".xla" mimeType="application/vnd.ms-excel" /> |
||||
|
<mimeMap fileExtension=".xlam" mimeType="application/vnd.ms-excel.addin.macroEnabled.12" /> |
||||
|
<mimeMap fileExtension=".xlc" mimeType="application/vnd.ms-excel" /> |
||||
|
<mimeMap fileExtension=".xlm" mimeType="application/vnd.ms-excel" /> |
||||
|
<mimeMap fileExtension=".xls" mimeType="application/vnd.ms-excel" /> |
||||
|
<mimeMap fileExtension=".xlsb" mimeType="application/vnd.ms-excel.sheet.binary.macroEnabled.12" /> |
||||
|
<mimeMap fileExtension=".xlsm" mimeType="application/vnd.ms-excel.sheet.macroEnabled.12" /> |
||||
|
<mimeMap fileExtension=".xlsx" mimeType="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" /> |
||||
|
<mimeMap fileExtension=".xlt" mimeType="application/vnd.ms-excel" /> |
||||
|
<mimeMap fileExtension=".xltm" mimeType="application/vnd.ms-excel.template.macroEnabled.12" /> |
||||
|
<mimeMap fileExtension=".xltx" mimeType="application/vnd.openxmlformats-officedocument.spreadsheetml.template" /> |
||||
|
<mimeMap fileExtension=".xlw" mimeType="application/vnd.ms-excel" /> |
||||
|
<mimeMap fileExtension=".xml" mimeType="text/xml" /> |
||||
|
<mimeMap fileExtension=".xof" mimeType="x-world/x-vrml" /> |
||||
|
<mimeMap fileExtension=".xpm" mimeType="image/x-xpixmap" /> |
||||
|
<mimeMap fileExtension=".xps" mimeType="application/vnd.ms-xpsdocument" /> |
||||
|
<mimeMap fileExtension=".xsd" mimeType="text/xml" /> |
||||
|
<mimeMap fileExtension=".xsf" mimeType="text/xml" /> |
||||
|
<mimeMap fileExtension=".xsl" mimeType="text/xml" /> |
||||
|
<mimeMap fileExtension=".xslt" mimeType="text/xml" /> |
||||
|
<mimeMap fileExtension=".xsn" mimeType="application/octet-stream" /> |
||||
|
<mimeMap fileExtension=".xtp" mimeType="application/octet-stream" /> |
||||
|
<mimeMap fileExtension=".xwd" mimeType="image/x-xwindowdump" /> |
||||
|
<mimeMap fileExtension=".z" mimeType="application/x-compress" /> |
||||
|
<mimeMap fileExtension=".zip" mimeType="application/x-zip-compressed" /> |
||||
|
</staticContent> |
||||
|
<tracing> |
||||
|
<traceFailedRequests> |
||||
|
<add path="*"> |
||||
|
<traceAreas> |
||||
|
<add provider="ASP" verbosity="Verbose" /> |
||||
|
<add provider="ASPNET" areas="Infrastructure,Module,Page,AppServices" verbosity="Verbose" /> |
||||
|
<add provider="ISAPI Extension" verbosity="Verbose" /> |
||||
|
<add provider="WWW Server" areas="Authentication,Security,Filter,StaticFile,CGI,Compression,Cache,RequestNotifications,Module,Rewrite,WebSocket" verbosity="Verbose" /> |
||||
|
</traceAreas> |
||||
|
<failureDefinitions statusCodes="200-999" /> |
||||
|
</add> |
||||
|
</traceFailedRequests> |
||||
|
<traceProviderDefinitions> |
||||
|
<add name="WWW Server" guid="{3a2a4e84-4c21-4981-ae10-3fda0d9b0f83}"> |
||||
|
<areas> |
||||
|
<clear /> |
||||
|
<add name="Authentication" value="2" /> |
||||
|
<add name="Security" value="4" /> |
||||
|
<add name="Filter" value="8" /> |
||||
|
<add name="StaticFile" value="16" /> |
||||
|
<add name="CGI" value="32" /> |
||||
|
<add name="Compression" value="64" /> |
||||
|
<add name="Cache" value="128" /> |
||||
|
<add name="RequestNotifications" value="256" /> |
||||
|
<add name="Module" value="512" /> |
||||
|
<add name="Rewrite" value="1024" /> |
||||
|
<add name="FastCGI" value="4096" /> |
||||
|
<add name="WebSocket" value="16384" /> |
||||
|
<add name="ANCM" value="65536" /> |
||||
|
</areas> |
||||
|
</add> |
||||
|
<add name="ASP" guid="{06b94d9a-b15e-456e-a4ef-37c984a2cb4b}"> |
||||
|
<areas> |
||||
|
<clear /> |
||||
|
</areas> |
||||
|
</add> |
||||
|
<add name="ISAPI Extension" guid="{a1c2040e-8840-4c31-ba11-9871031a19ea}"> |
||||
|
<areas> |
||||
|
<clear /> |
||||
|
</areas> |
||||
|
</add> |
||||
|
<add name="ASPNET" guid="{AFF081FE-0247-4275-9C4E-021F3DC1DA35}"> |
||||
|
<areas> |
||||
|
<add name="Infrastructure" value="1" /> |
||||
|
<add name="Module" value="2" /> |
||||
|
<add name="Page" value="4" /> |
||||
|
<add name="AppServices" value="8" /> |
||||
|
</areas> |
||||
|
</add> |
||||
|
</traceProviderDefinitions> |
||||
|
</tracing> |
||||
|
<urlCompression /> |
||||
|
<validation /> |
||||
|
<webdav> |
||||
|
<globalSettings> |
||||
|
<propertyStores> |
||||
|
<add name="webdav_simple_prop" image="%IIS_BIN%\webdav_simple_prop.dll" image32="%IIS_BIN%\webdav_simple_prop.dll" /> |
||||
|
</propertyStores> |
||||
|
<lockStores> |
||||
|
<add name="webdav_simple_lock" image="%IIS_BIN%\webdav_simple_lock.dll" image32="%IIS_BIN%\webdav_simple_lock.dll" /> |
||||
|
</lockStores> |
||||
|
</globalSettings> |
||||
|
<authoring> |
||||
|
<locks enabled="true" lockStore="webdav_simple_lock" /> |
||||
|
</authoring> |
||||
|
<authoringRules /> |
||||
|
</webdav> |
||||
|
<webSocket /> |
||||
|
<applicationInitialization /> |
||||
|
</system.webServer> |
||||
|
<location path="" overrideMode="Allow"> |
||||
|
<system.webServer> |
||||
|
<modules> |
||||
|
<add name="IsapiFilterModule" lockItem="true" /> |
||||
|
<add name="BasicAuthenticationModule" lockItem="true" /> |
||||
|
<add name="IsapiModule" lockItem="true" /> |
||||
|
<add name="HttpLoggingModule" lockItem="true" /> |
||||
|
<add name="DynamicCompressionModule" lockItem="true" /> |
||||
|
<add name="StaticCompressionModule" lockItem="true" /> |
||||
|
<add name="DefaultDocumentModule" lockItem="true" /> |
||||
|
<add name="DirectoryListingModule" lockItem="true" /> |
||||
|
<add name="ProtocolSupportModule" lockItem="true" /> |
||||
|
<add name="HttpRedirectionModule" lockItem="true" /> |
||||
|
<add name="ServerSideIncludeModule" lockItem="true" /> |
||||
|
<add name="StaticFileModule" lockItem="true" /> |
||||
|
<add name="AnonymousAuthenticationModule" lockItem="true" /> |
||||
|
<add name="CertificateMappingAuthenticationModule" lockItem="true" /> |
||||
|
<add name="UrlAuthorizationModule" lockItem="true" /> |
||||
|
<add name="WindowsAuthenticationModule" lockItem="true" /> |
||||
|
<add name="IISCertificateMappingAuthenticationModule" lockItem="true" /> |
||||
|
<add name="WebMatrixSupportModule" lockItem="true" /> |
||||
|
<add name="IpRestrictionModule" lockItem="true" /> |
||||
|
<add name="DynamicIpRestrictionModule" lockItem="true" /> |
||||
|
<add name="RequestFilteringModule" lockItem="true" /> |
||||
|
<add name="CustomLoggingModule" lockItem="true" /> |
||||
|
<add name="CustomErrorModule" lockItem="true" /> |
||||
|
<add name="FailedRequestsTracingModule" lockItem="true" /> |
||||
|
<add name="CgiModule" lockItem="true" /> |
||||
|
<add name="FastCgiModule" lockItem="true" /> |
||||
|
<!-- <add name="WebDAVModule" /> --> |
||||
|
<add name="RewriteModule" /> |
||||
|
<add name="OutputCache" type="System.Web.Caching.OutputCacheModule" preCondition="managedHandler" /> |
||||
|
<add name="Session" type="System.Web.SessionState.SessionStateModule" preCondition="managedHandler" /> |
||||
|
<add name="WindowsAuthentication" type="System.Web.Security.WindowsAuthenticationModule" preCondition="managedHandler" /> |
||||
|
<add name="FormsAuthentication" type="System.Web.Security.FormsAuthenticationModule" preCondition="managedHandler" /> |
||||
|
<add name="DefaultAuthentication" type="System.Web.Security.DefaultAuthenticationModule" preCondition="managedHandler" /> |
||||
|
<add name="RoleManager" type="System.Web.Security.RoleManagerModule" preCondition="managedHandler" /> |
||||
|
<add name="UrlAuthorization" type="System.Web.Security.UrlAuthorizationModule" preCondition="managedHandler" /> |
||||
|
<add name="FileAuthorization" type="System.Web.Security.FileAuthorizationModule" preCondition="managedHandler" /> |
||||
|
<add name="AnonymousIdentification" type="System.Web.Security.AnonymousIdentificationModule" preCondition="managedHandler" /> |
||||
|
<add name="Profile" type="System.Web.Profile.ProfileModule" preCondition="managedHandler" /> |
||||
|
<add name="UrlMappingsModule" type="System.Web.UrlMappingsModule" preCondition="managedHandler" /> |
||||
|
<add name="ApplicationInitializationModule" lockItem="true" /> |
||||
|
<add name="WebSocketModule" lockItem="true" /> |
||||
|
<add name="ServiceModel-4.0" type="System.ServiceModel.Activation.ServiceHttpModule,System.ServiceModel.Activation,Version=4.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35" preCondition="managedHandler,runtimeVersionv4.0" /> |
||||
|
<add name="ConfigurationValidationModule" lockItem="true" /> |
||||
|
<add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule" preCondition="managedHandler,runtimeVersionv4.0" /> |
||||
|
<add name="ScriptModule-4.0" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" preCondition="managedHandler,runtimeVersionv4.0" /> |
||||
|
<add name="ServiceModel" type="System.ServiceModel.Activation.HttpModule, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="managedHandler,runtimeVersionv2.0" /> |
||||
|
<add name="AspNetCoreModule" lockItem="true" /> |
||||
|
<add name="AspNetCoreModuleV2" lockItem="true" /> |
||||
|
</modules> |
||||
|
<handlers accessPolicy="Read, Script"> |
||||
|
<!-- <add name="WebDAV" path="*" verb="PROPFIND,PROPPATCH,MKCOL,PUT,COPY,DELETE,MOVE,LOCK,UNLOCK" modules="WebDAVModule" resourceType="Unspecified" requireAccess="None" /> --> |
||||
|
<add name="AXD-ISAPI-4.0_64bit" path="*.axd" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" /> |
||||
|
<add name="PageHandlerFactory-ISAPI-4.0_64bit" path="*.aspx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" /> |
||||
|
<add name="SimpleHandlerFactory-ISAPI-4.0_64bit" path="*.ashx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" /> |
||||
|
<add name="WebServiceHandlerFactory-ISAPI-4.0_64bit" path="*.asmx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" /> |
||||
|
<add name="HttpRemotingHandlerFactory-rem-ISAPI-4.0_64bit" path="*.rem" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" /> |
||||
|
<add name="HttpRemotingHandlerFactory-soap-ISAPI-4.0_64bit" path="*.soap" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" /> |
||||
|
<add name="svc-ISAPI-4.0_64bit" path="*.svc" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" /> |
||||
|
<add name="rules-ISAPI-4.0_64bit" path="*.rules" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" /> |
||||
|
<add name="xoml-ISAPI-4.0_64bit" path="*.xoml" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" /> |
||||
|
<add name="xamlx-ISAPI-4.0_64bit" path="*.xamlx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" /> |
||||
|
<add name="aspq-ISAPI-4.0_64bit" path="*.aspq" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" /> |
||||
|
<add name="cshtm-ISAPI-4.0_64bit" path="*.cshtm" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" /> |
||||
|
<add name="cshtml-ISAPI-4.0_64bit" path="*.cshtml" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" /> |
||||
|
<add name="vbhtm-ISAPI-4.0_64bit" path="*.vbhtm" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" /> |
||||
|
<add name="vbhtml-ISAPI-4.0_64bit" path="*.vbhtml" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" /> |
||||
|
<add name="svc-Integrated" path="*.svc" verb="*" type="System.ServiceModel.Activation.HttpHandler, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="integratedMode,runtimeVersionv2.0" /> |
||||
|
<add name="svc-ISAPI-2.0" path="*.svc" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" /> |
||||
|
<add name="xoml-Integrated" path="*.xoml" verb="*" type="System.ServiceModel.Activation.HttpHandler, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="integratedMode,runtimeVersionv2.0" /> |
||||
|
<add name="xoml-ISAPI-2.0" path="*.xoml" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" /> |
||||
|
<add name="rules-Integrated" path="*.rules" verb="*" type="System.ServiceModel.Activation.HttpHandler, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="integratedMode,runtimeVersionv2.0" /> |
||||
|
<add name="rules-ISAPI-2.0" path="*.rules" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" /> |
||||
|
<add name="AXD-ISAPI-4.0_32bit" path="*.axd" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" /> |
||||
|
<add name="PageHandlerFactory-ISAPI-4.0_32bit" path="*.aspx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" /> |
||||
|
<add name="SimpleHandlerFactory-ISAPI-4.0_32bit" path="*.ashx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" /> |
||||
|
<add name="WebServiceHandlerFactory-ISAPI-4.0_32bit" path="*.asmx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" /> |
||||
|
<add name="HttpRemotingHandlerFactory-rem-ISAPI-4.0_32bit" path="*.rem" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" /> |
||||
|
<add name="HttpRemotingHandlerFactory-soap-ISAPI-4.0_32bit" path="*.soap" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" /> |
||||
|
<add name="svc-ISAPI-4.0_32bit" path="*.svc" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" /> |
||||
|
<add name="rules-ISAPI-4.0_32bit" path="*.rules" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" /> |
||||
|
<add name="xoml-ISAPI-4.0_32bit" path="*.xoml" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" /> |
||||
|
<add name="xamlx-ISAPI-4.0_32bit" path="*.xamlx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" /> |
||||
|
<add name="aspq-ISAPI-4.0_32bit" path="*.aspq" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" /> |
||||
|
<add name="cshtm-ISAPI-4.0_32bit" path="*.cshtm" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" /> |
||||
|
<add name="cshtml-ISAPI-4.0_32bit" path="*.cshtml" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" /> |
||||
|
<add name="vbhtm-ISAPI-4.0_32bit" path="*.vbhtm" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" /> |
||||
|
<add name="vbhtml-ISAPI-4.0_32bit" path="*.vbhtml" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" /> |
||||
|
<add name="TraceHandler-Integrated-4.0" path="trace.axd" verb="GET,HEAD,POST,DEBUG" type="System.Web.Handlers.TraceHandler" preCondition="integratedMode,runtimeVersionv4.0" /> |
||||
|
<add name="WebAdminHandler-Integrated-4.0" path="WebAdmin.axd" verb="GET,DEBUG" type="System.Web.Handlers.WebAdminHandler" preCondition="integratedMode,runtimeVersionv4.0" /> |
||||
|
<add name="AssemblyResourceLoader-Integrated-4.0" path="WebResource.axd" verb="GET,DEBUG" type="System.Web.Handlers.AssemblyResourceLoader" preCondition="integratedMode,runtimeVersionv4.0" /> |
||||
|
<add name="PageHandlerFactory-Integrated-4.0" path="*.aspx" verb="GET,HEAD,POST,DEBUG" type="System.Web.UI.PageHandlerFactory" preCondition="integratedMode,runtimeVersionv4.0" /> |
||||
|
<add name="SimpleHandlerFactory-Integrated-4.0" path="*.ashx" verb="GET,HEAD,POST,DEBUG" type="System.Web.UI.SimpleHandlerFactory" preCondition="integratedMode,runtimeVersionv4.0" /> |
||||
|
<add name="WebServiceHandlerFactory-Integrated-4.0" path="*.asmx" verb="GET,HEAD,POST,DEBUG" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" preCondition="integratedMode,runtimeVersionv4.0" /> |
||||
|
<add name="HttpRemotingHandlerFactory-rem-Integrated-4.0" path="*.rem" verb="GET,HEAD,POST,DEBUG" type="System.Runtime.Remoting.Channels.Http.HttpRemotingHandlerFactory, System.Runtime.Remoting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="integratedMode,runtimeVersionv4.0" /> |
||||
|
<add name="HttpRemotingHandlerFactory-soap-Integrated-4.0" path="*.soap" verb="GET,HEAD,POST,DEBUG" type="System.Runtime.Remoting.Channels.Http.HttpRemotingHandlerFactory, System.Runtime.Remoting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="integratedMode,runtimeVersionv4.0" /> |
||||
|
<add name="svc-Integrated-4.0" path="*.svc" verb="*" type="System.ServiceModel.Activation.ServiceHttpHandlerFactory, System.ServiceModel.Activation, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" preCondition="integratedMode,runtimeVersionv4.0" /> |
||||
|
<add name="rules-Integrated-4.0" path="*.rules" verb="*" type="System.ServiceModel.Activation.ServiceHttpHandlerFactory, System.ServiceModel.Activation, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" preCondition="integratedMode,runtimeVersionv4.0" /> |
||||
|
<add name="xoml-Integrated-4.0" path="*.xoml" verb="*" type="System.ServiceModel.Activation.ServiceHttpHandlerFactory, System.ServiceModel.Activation, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" preCondition="integratedMode,runtimeVersionv4.0" /> |
||||
|
<add name="xamlx-Integrated-4.0" path="*.xamlx" verb="GET,HEAD,POST,DEBUG" type="System.Xaml.Hosting.XamlHttpHandlerFactory, System.Xaml.Hosting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" preCondition="integratedMode,runtimeVersionv4.0" /> |
||||
|
<add name="aspq-Integrated-4.0" path="*.aspq" verb="GET,HEAD,POST,DEBUG" type="System.Web.HttpForbiddenHandler" preCondition="integratedMode,runtimeVersionv4.0" /> |
||||
|
<add name="cshtm-Integrated-4.0" path="*.cshtm" verb="GET,HEAD,POST,DEBUG" type="System.Web.HttpForbiddenHandler" preCondition="integratedMode,runtimeVersionv4.0" /> |
||||
|
<add name="cshtml-Integrated-4.0" path="*.cshtml" verb="GET,HEAD,POST,DEBUG" type="System.Web.HttpForbiddenHandler" preCondition="integratedMode,runtimeVersionv4.0" /> |
||||
|
<add name="vbhtm-Integrated-4.0" path="*.vbhtm" verb="GET,HEAD,POST,DEBUG" type="System.Web.HttpForbiddenHandler" preCondition="integratedMode,runtimeVersionv4.0" /> |
||||
|
<add name="vbhtml-Integrated-4.0" path="*.vbhtml" verb="GET,HEAD,POST,DEBUG" type="System.Web.HttpForbiddenHandler" preCondition="integratedMode,runtimeVersionv4.0" /> |
||||
|
<add name="ScriptHandlerFactoryAppServices-Integrated-4.0" path="*_AppService.axd" verb="*" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" preCondition="integratedMode,runtimeVersionv4.0" /> |
||||
|
<add name="ScriptResourceIntegrated-4.0" path="*ScriptResource.axd" verb="GET,HEAD" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" preCondition="integratedMode,runtimeVersionv4.0" /> |
||||
|
<add name="ASPClassic" path="*.asp" verb="GET,HEAD,POST" modules="IsapiModule" scriptProcessor="%IIS_BIN%\asp.dll" resourceType="File" /> |
||||
|
<add name="SecurityCertificate" path="*.cer" verb="GET,HEAD,POST" modules="IsapiModule" scriptProcessor="%IIS_BIN%\asp.dll" resourceType="File" /> |
||||
|
<add name="ISAPI-dll" path="*.dll" verb="*" modules="IsapiModule" resourceType="File" requireAccess="Execute" allowPathInfo="true" /> |
||||
|
<add name="TraceHandler-Integrated" path="trace.axd" verb="GET,HEAD,POST,DEBUG" type="System.Web.Handlers.TraceHandler" preCondition="integratedMode,runtimeVersionv2.0" /> |
||||
|
<add name="WebAdminHandler-Integrated" path="WebAdmin.axd" verb="GET,DEBUG" type="System.Web.Handlers.WebAdminHandler" preCondition="integratedMode,runtimeVersionv2.0" /> |
||||
|
<add name="AssemblyResourceLoader-Integrated" path="WebResource.axd" verb="GET,DEBUG" type="System.Web.Handlers.AssemblyResourceLoader" preCondition="integratedMode,runtimeVersionv2.0" /> |
||||
|
<add name="PageHandlerFactory-Integrated" path="*.aspx" verb="GET,HEAD,POST,DEBUG" type="System.Web.UI.PageHandlerFactory" preCondition="integratedMode,runtimeVersionv2.0" /> |
||||
|
<add name="SimpleHandlerFactory-Integrated" path="*.ashx" verb="GET,HEAD,POST,DEBUG" type="System.Web.UI.SimpleHandlerFactory" preCondition="integratedMode,runtimeVersionv2.0" /> |
||||
|
<add name="WebServiceHandlerFactory-Integrated" path="*.asmx" verb="GET,HEAD,POST,DEBUG" type="System.Web.Services.Protocols.WebServiceHandlerFactory,System.Web.Services,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a" preCondition="integratedMode,runtimeVersionv2.0" /> |
||||
|
<add name="HttpRemotingHandlerFactory-rem-Integrated" path="*.rem" verb="GET,HEAD,POST,DEBUG" type="System.Runtime.Remoting.Channels.Http.HttpRemotingHandlerFactory,System.Runtime.Remoting,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089" preCondition="integratedMode,runtimeVersionv2.0" /> |
||||
|
<add name="HttpRemotingHandlerFactory-soap-Integrated" path="*.soap" verb="GET,HEAD,POST,DEBUG" type="System.Runtime.Remoting.Channels.Http.HttpRemotingHandlerFactory,System.Runtime.Remoting,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089" preCondition="integratedMode,runtimeVersionv2.0" /> |
||||
|
<add name="AXD-ISAPI-2.0" path="*.axd" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" responseBufferLimit="0" /> |
||||
|
<add name="PageHandlerFactory-ISAPI-2.0" path="*.aspx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" responseBufferLimit="0" /> |
||||
|
<add name="SimpleHandlerFactory-ISAPI-2.0" path="*.ashx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" responseBufferLimit="0" /> |
||||
|
<add name="WebServiceHandlerFactory-ISAPI-2.0" path="*.asmx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" responseBufferLimit="0" /> |
||||
|
<add name="HttpRemotingHandlerFactory-rem-ISAPI-2.0" path="*.rem" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" responseBufferLimit="0" /> |
||||
|
<add name="HttpRemotingHandlerFactory-soap-ISAPI-2.0" path="*.soap" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" responseBufferLimit="0" /> |
||||
|
<add name="svc-ISAPI-2.0-64" path="*.svc" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" /> |
||||
|
<add name="AXD-ISAPI-2.0-64" path="*.axd" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" responseBufferLimit="0" /> |
||||
|
<add name="PageHandlerFactory-ISAPI-2.0-64" path="*.aspx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" responseBufferLimit="0" /> |
||||
|
<add name="SimpleHandlerFactory-ISAPI-2.0-64" path="*.ashx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" responseBufferLimit="0" /> |
||||
|
<add name="WebServiceHandlerFactory-ISAPI-2.0-64" path="*.asmx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" responseBufferLimit="0" /> |
||||
|
<add name="HttpRemotingHandlerFactory-rem-ISAPI-2.0-64" path="*.rem" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" responseBufferLimit="0" /> |
||||
|
<add name="HttpRemotingHandlerFactory-soap-ISAPI-2.0-64" path="*.soap" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" responseBufferLimit="0" /> |
||||
|
<add name="rules-64-ISAPI-2.0" path="*.rules" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" /> |
||||
|
<add name="xoml-64-ISAPI-2.0" path="*.xoml" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" /> |
||||
|
<add name="CGI-exe" path="*.exe" verb="*" modules="CgiModule" resourceType="File" requireAccess="Execute" allowPathInfo="true" /> |
||||
|
<add name="SSINC-stm" path="*.stm" verb="GET,HEAD,POST" modules="ServerSideIncludeModule" resourceType="File" /> |
||||
|
<add name="SSINC-shtm" path="*.shtm" verb="GET,HEAD,POST" modules="ServerSideIncludeModule" resourceType="File" /> |
||||
|
<add name="SSINC-shtml" path="*.shtml" verb="GET,HEAD,POST" modules="ServerSideIncludeModule" resourceType="File" /> |
||||
|
<add name="TRACEVerbHandler" path="*" verb="TRACE" modules="ProtocolSupportModule" requireAccess="None" /> |
||||
|
<add name="OPTIONSVerbHandler" path="*" verb="OPTIONS" modules="ProtocolSupportModule" requireAccess="None" /> |
||||
|
<add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" /> |
||||
|
<add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" /> |
||||
|
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" responseBufferLimit="0" /> |
||||
|
<add name="StaticFile" path="*" verb="*" modules="StaticFileModule,DefaultDocumentModule,DirectoryListingModule" resourceType="Either" requireAccess="Read" /> |
||||
|
</handlers> |
||||
|
</system.webServer> |
||||
|
</location> |
||||
|
<location path="AMESCoreStudio.Web" inheritInChildApplications="false"> |
||||
|
<system.webServer> |
||||
|
<modules> |
||||
|
<remove name="WebMatrixSupportModule" /> |
||||
|
</modules> |
||||
|
<handlers> |
||||
|
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" /> |
||||
|
</handlers> |
||||
|
<aspNetCore processPath="%LAUNCHER_PATH%" stdoutLogEnabled="false" hostingModel="InProcess" startupTimeLimit="3600" requestTimeout="23:00:00" /> |
||||
|
<httpCompression> |
||||
|
<dynamicTypes> |
||||
|
<add mimeType="text/event-stream" enabled="false" /> |
||||
|
</dynamicTypes> |
||||
|
</httpCompression> |
||||
|
</system.webServer> |
||||
|
</location> |
||||
|
</configuration> |
Binary file not shown.
@ -0,0 +1,22 @@ |
|||||
|
<Project Sdk="Microsoft.NET.Sdk.Web"> |
||||
|
|
||||
|
<PropertyGroup> |
||||
|
<TargetFramework>netcoreapp3.1</TargetFramework> |
||||
|
</PropertyGroup> |
||||
|
|
||||
|
<ItemGroup> |
||||
|
<Folder Include="Views\MES\" /> |
||||
|
</ItemGroup> |
||||
|
|
||||
|
<ItemGroup> |
||||
|
<PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" Version="3.1.3" /> |
||||
|
<PackageReference Include="Microsoft.EntityFrameworkCore.Proxies" Version="5.0.8" /> |
||||
|
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="3.1.5" /> |
||||
|
<PackageReference Include="WebApiClient.JIT" Version="1.1.4" /> |
||||
|
</ItemGroup> |
||||
|
|
||||
|
<ItemGroup> |
||||
|
<ProjectReference Include="..\AMESCoreStudio.WebApi\AMESCoreStudio.WebApi.csproj" /> |
||||
|
</ItemGroup> |
||||
|
|
||||
|
</Project> |
@ -0,0 +1,15 @@ |
|||||
|
<?xml version="1.0" encoding="utf-8"?> |
||||
|
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
||||
|
<PropertyGroup> |
||||
|
<View_SelectedScaffolderID>RazorViewEmptyScaffolder</View_SelectedScaffolderID> |
||||
|
<View_SelectedScaffolderCategoryPath>root/Common/MVC/View</View_SelectedScaffolderCategoryPath> |
||||
|
<WebStackScaffolding_ViewDialogWidth>650</WebStackScaffolding_ViewDialogWidth> |
||||
|
<WebStackScaffolding_IsLayoutPageSelected>True</WebStackScaffolding_IsLayoutPageSelected> |
||||
|
<WebStackScaffolding_IsPartialViewSelected>False</WebStackScaffolding_IsPartialViewSelected> |
||||
|
<WebStackScaffolding_IsReferencingScriptLibrariesSelected>False</WebStackScaffolding_IsReferencingScriptLibrariesSelected> |
||||
|
<WebStackScaffolding_LayoutPageFile /> |
||||
|
<Controller_SelectedScaffolderID>MvcControllerEmptyScaffolder</Controller_SelectedScaffolderID> |
||||
|
<Controller_SelectedScaffolderCategoryPath>root/Common/MVC/Controller</Controller_SelectedScaffolderCategoryPath> |
||||
|
<ShowAllFiles>false</ShowAllFiles> |
||||
|
</PropertyGroup> |
||||
|
</Project> |
@ -0,0 +1,21 @@ |
|||||
|
using System; |
||||
|
using System.Collections.Generic; |
||||
|
using System.Linq; |
||||
|
using System.Threading.Tasks; |
||||
|
|
||||
|
namespace AMESCoreStudio.Web |
||||
|
{ |
||||
|
public class AppSetting |
||||
|
{ |
||||
|
/// <summary>
|
||||
|
/// MVC网站访问IP端口
|
||||
|
/// </summary>
|
||||
|
public string Urls { get; set; } |
||||
|
/// <summary>
|
||||
|
/// WebApi访问地址
|
||||
|
/// </summary>
|
||||
|
public string ApiUrl { get; set; } |
||||
|
|
||||
|
public static AppSetting Setting { get; set; } = new AppSetting(); |
||||
|
} |
||||
|
} |
@ -0,0 +1,23 @@ |
|||||
|
using System; |
||||
|
using System.Collections.Generic; |
||||
|
using System.Linq; |
||||
|
using System.Threading.Tasks; |
||||
|
using System.ComponentModel; |
||||
|
|
||||
|
namespace AMESCoreStudio.Web |
||||
|
{ |
||||
|
public class Errors |
||||
|
{ |
||||
|
public Errors() : base() { } |
||||
|
//
|
||||
|
// 摘要:
|
||||
|
// 错误字段
|
||||
|
[Description("错误字段")] |
||||
|
public string Id { get; set; } |
||||
|
//
|
||||
|
// 摘要:
|
||||
|
// 错误信息
|
||||
|
[Description("错误信息")] |
||||
|
public string Msg { get; set; } |
||||
|
} |
||||
|
} |
@ -0,0 +1,27 @@ |
|||||
|
using System.Collections.Generic; |
||||
|
using System.ComponentModel; |
||||
|
|
||||
|
namespace AMESCoreStudio.Web |
||||
|
{ |
||||
|
public interface IResultModel |
||||
|
{ |
||||
|
// Properties
|
||||
|
[Description("是否成功")] |
||||
|
bool Success { get; } |
||||
|
[Description("错误信息")] |
||||
|
string Msg { get; } |
||||
|
[Description("状态码")] |
||||
|
int Status { get; } |
||||
|
[Description("模型验证失败")] |
||||
|
List<Errors> Errors { get; } |
||||
|
} |
||||
|
|
||||
|
public interface IResultModel<T> : IResultModel |
||||
|
{ |
||||
|
//
|
||||
|
// 摘要:
|
||||
|
// 返回数据
|
||||
|
[Description("返回数据")] |
||||
|
T Data { get; } |
||||
|
} |
||||
|
} |
@ -0,0 +1,20 @@ |
|||||
|
using System; |
||||
|
using System.Collections.Generic; |
||||
|
using System.Linq; |
||||
|
using System.Threading.Tasks; |
||||
|
|
||||
|
namespace AMESCoreStudio.Web |
||||
|
{ |
||||
|
public class ResultModel<T> : IResultModel<T>, IResultModel |
||||
|
{ |
||||
|
public ResultModel() : base() { } |
||||
|
|
||||
|
public bool Success { get; set; } |
||||
|
public string Msg { get; set; } |
||||
|
public int Status { get; set; } |
||||
|
public T Data { get; set; } |
||||
|
public List<Errors> Errors { get; set; } |
||||
|
|
||||
|
//public ResultModel<T> ToSuccess(T data = default, string msg = "success");
|
||||
|
} |
||||
|
} |
@ -0,0 +1,169 @@ |
|||||
|
using Microsoft.AspNetCore.Mvc; |
||||
|
using System; |
||||
|
using System.Collections.Generic; |
||||
|
using System.Linq; |
||||
|
using System.Threading.Tasks; |
||||
|
using Microsoft.Extensions.Logging; |
||||
|
using AMESCoreStudio.Web.Models; |
||||
|
using Microsoft.AspNetCore.Authorization; |
||||
|
using Newtonsoft.Json; |
||||
|
using System.Reflection; |
||||
|
using AMESCoreStudio.WebApi; |
||||
|
|
||||
|
namespace AMESCoreStudio.Web.Controllers |
||||
|
{ |
||||
|
public class BulletinController : Controller |
||||
|
{ |
||||
|
private readonly ILogger<BulletinController> _logger; |
||||
|
public readonly IBulletin _bulletinApi; |
||||
|
|
||||
|
public BulletinController(ILogger<BulletinController> logger, IBulletin bulletinApi) |
||||
|
{ |
||||
|
_logger = logger; |
||||
|
_bulletinApi = bulletinApi; |
||||
|
} |
||||
|
|
||||
|
public IActionResult Index() |
||||
|
{ |
||||
|
if (Request.Cookies["_AMESCookie"] != null) |
||||
|
{ |
||||
|
var userID = ""; |
||||
|
HttpContext.Request.Cookies.TryGetValue("UserID", out userID); |
||||
|
if (int.Parse(userID.ToString()) >= 0) |
||||
|
{ |
||||
|
return View(); |
||||
|
} |
||||
|
} |
||||
|
return RedirectToAction("Index", "Login"); |
||||
|
//return View();
|
||||
|
} |
||||
|
|
||||
|
public IActionResult Create() |
||||
|
{ |
||||
|
ViewBag.bdt = DateTime.Now.ToString("yyyy/MM/dd HH:mm"); |
||||
|
return View(); |
||||
|
} |
||||
|
|
||||
|
public IActionResult Stop() |
||||
|
{ |
||||
|
return View(); |
||||
|
} |
||||
|
|
||||
|
//修改页面
|
||||
|
[HttpGet] |
||||
|
public async Task<IActionResult> EditAsync(int id) |
||||
|
{ |
||||
|
var result = await _bulletinApi.GetBulletin(id); |
||||
|
|
||||
|
if (result.Count==0) |
||||
|
{ |
||||
|
return View(); |
||||
|
} |
||||
|
return View(result[0]); |
||||
|
} |
||||
|
|
||||
|
//表单提交,id=0 添加,id>0 修改
|
||||
|
[HttpPost] |
||||
|
|
||||
|
public async Task<IActionResult> SaveAsync(BulletinDTO model) |
||||
|
{ |
||||
|
if (ModelState.IsValid) |
||||
|
{ |
||||
|
IResultModel result; |
||||
|
if (model.BulletinID == 0) |
||||
|
{ |
||||
|
result = await _bulletinApi.PostBulletin(JsonConvert.SerializeObject(model)); |
||||
|
} |
||||
|
else |
||||
|
{ |
||||
|
//var result = await _bulletinApi.PutBulletin(model.BulletinID, model);
|
||||
|
result = await _bulletinApi.PutBulletin(model.BulletinID, JsonConvert.SerializeObject(model)); |
||||
|
} |
||||
|
|
||||
|
if (!result.Success) |
||||
|
{ |
||||
|
var _msg = model.BulletinID == 0 ? "添加成功!" : "修改成功!"; |
||||
|
return RedirectToAction("Refresh", "Home", new { msg = _msg }); |
||||
|
} |
||||
|
else |
||||
|
{ |
||||
|
if (result.Errors.Count > 0) |
||||
|
{ |
||||
|
ModelState.AddModelError(result.Errors[0].Id, result.Errors[0].Msg); |
||||
|
} |
||||
|
else |
||||
|
{ |
||||
|
ModelState.AddModelError("error", result.Msg); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
|
||||
|
} |
||||
|
if (model.BulletinID == 0) |
||||
|
{ |
||||
|
return View("Create", model); |
||||
|
//return Json(new Result() { success = true, msg = "" });
|
||||
|
} |
||||
|
return View("Edit", model); |
||||
|
//return Json(new Result() { success = true, msg = "" });
|
||||
|
} |
||||
|
|
||||
|
public async Task<IActionResult> DeleteAsync(int id) |
||||
|
{ |
||||
|
var result = await _bulletinApi.DeleteBulletin(id); |
||||
|
return Json(new Result() { success =true, msg = "" }); |
||||
|
} |
||||
|
|
||||
|
//Layui数据表格异步获取展示列表数据
|
||||
|
[ResponseCache(Duration = 0)] |
||||
|
[HttpGet] |
||||
|
//[Authorize]
|
||||
|
public async Task<IActionResult> GetBulletinAsync(int id) |
||||
|
{ |
||||
|
var result = await _bulletinApi.GetBulletin(id); |
||||
|
|
||||
|
|
||||
|
if (result.Count > 0) |
||||
|
{ |
||||
|
string json_str = JsonConvert.SerializeObject(result); |
||||
|
|
||||
|
//string json_str = "[{\"BulletinID\":1,\"BulletinTitle\":\"系统版本1.0.0发布\",\"BulletinContent\":\"系统版本1.0.0发布\",\"BulletinTime\":\"2021 - 07 - 22T00: 00:00\",\"BulletinDays\":5}]";
|
||||
|
|
||||
|
return Json(new Table() { code = 0, msg = "", data = result, count = result.Count }); |
||||
|
//return Json(new Table() { data = JsonConvert.DeserializeObject(json_str), count = result.Count });
|
||||
|
//return Json(new Table() { code = 0, msg = "", count = result.Count, data = result });
|
||||
|
//return Json(new Table() { data = json_str, count = result.Count });
|
||||
|
} |
||||
|
|
||||
|
|
||||
|
return Json(new Table() { count = 0, data = null }); |
||||
|
|
||||
|
} |
||||
|
|
||||
|
//Layui数据表格异步获取展示列表数据
|
||||
|
[ResponseCache(Duration = 0)] |
||||
|
[HttpGet] |
||||
|
//[Authorize]
|
||||
|
public async Task<IActionResult> GetBulletinsAsync() |
||||
|
{ |
||||
|
var result = await _bulletinApi.GetBulletins(); |
||||
|
|
||||
|
|
||||
|
if (result.Count > 0) |
||||
|
{ |
||||
|
string json_str = JsonConvert.SerializeObject(result); |
||||
|
|
||||
|
//string json_str = "[{\"BulletinID\":1,\"BulletinTitle\":\"系统版本1.0.0发布\",\"BulletinContent\":\"系统版本1.0.0发布\",\"BulletinTime\":\"2021 - 07 - 22T00: 00:00\",\"BulletinDays\":5}]";
|
||||
|
|
||||
|
return Json(new Table() { code = 0, msg = "", data = result, count = result.Count }); |
||||
|
//return Json(new Table() { data = JsonConvert.DeserializeObject(json_str), count = result.Count });
|
||||
|
//return Json(new Table() { code = 0, msg = "", count = result.Count, data = result });
|
||||
|
//return Json(new Table() { data = json_str, count = result.Count });
|
||||
|
} |
||||
|
|
||||
|
|
||||
|
return Json(new Table() { count = 0,data = null }); |
||||
|
|
||||
|
} |
||||
|
} |
||||
|
} |
@ -0,0 +1,80 @@ |
|||||
|
using AMESCoreStudio.Web.Models; |
||||
|
using Microsoft.AspNetCore.Mvc; |
||||
|
using Microsoft.Extensions.Logging; |
||||
|
using System; |
||||
|
using System.Collections.Generic; |
||||
|
using System.Diagnostics; |
||||
|
using System.Linq; |
||||
|
using System.Threading.Tasks; |
||||
|
using AMESCoreStudio.WebApi; |
||||
|
using Microsoft.AspNetCore.Authorization; |
||||
|
|
||||
|
namespace AMESCoreStudio.Web.Controllers |
||||
|
{ |
||||
|
public class HomeController : Controller |
||||
|
{ |
||||
|
private readonly ILogger<HomeController> _logger; |
||||
|
public readonly IBulletin _bulletApi; |
||||
|
public readonly IAuth _authApi; |
||||
|
|
||||
|
public HomeController(ILogger<HomeController> logger, IAuth authApi) |
||||
|
{ |
||||
|
_logger = logger; |
||||
|
_authApi = authApi; |
||||
|
} |
||||
|
|
||||
|
public IActionResult Index() |
||||
|
{ |
||||
|
return View(); |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
///
|
||||
|
/// </summary>
|
||||
|
/// <returns></returns>
|
||||
|
public IActionResult Framework() |
||||
|
{ |
||||
|
if (Request.Cookies["_AMESCookie"] != null) |
||||
|
{ |
||||
|
var userID = ""; |
||||
|
HttpContext.Request.Cookies.TryGetValue("UserID", out userID); |
||||
|
if (userID != null) |
||||
|
{ |
||||
|
if (int.Parse(userID.ToString()) >= 0) |
||||
|
{ |
||||
|
return View(); |
||||
|
} |
||||
|
} |
||||
|
else |
||||
|
{ |
||||
|
return RedirectToAction("Index", "Login"); |
||||
|
} |
||||
|
} |
||||
|
return RedirectToAction("Index", "Login"); |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 弹窗子窗口,保存后刷新父级页面数据表格
|
||||
|
/// </summary>
|
||||
|
/// <param name="msg">弹窗提示信息</param>
|
||||
|
/// <param name="json">不为空时,只刷新本地数据</param>
|
||||
|
/// <returns></returns>
|
||||
|
public IActionResult Refresh(string msg = "保存成功!", string json = "") |
||||
|
{ |
||||
|
ViewBag.Msg = msg; |
||||
|
ViewBag.Data = json; |
||||
|
return View(); |
||||
|
} |
||||
|
|
||||
|
public IActionResult Privacy() |
||||
|
{ |
||||
|
return View(); |
||||
|
} |
||||
|
|
||||
|
[ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)] |
||||
|
public IActionResult Error() |
||||
|
{ |
||||
|
return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier }); |
||||
|
} |
||||
|
} |
||||
|
} |
@ -0,0 +1,112 @@ |
|||||
|
using Microsoft.AspNetCore.Mvc; |
||||
|
using System; |
||||
|
using System.Collections.Generic; |
||||
|
using System.Linq; |
||||
|
using System.Threading.Tasks; |
||||
|
using AMESCoreStudio.WebApi; |
||||
|
using Microsoft.Extensions.Logging; |
||||
|
using AMESCoreStudio.Web.Models; |
||||
|
using System.Security.Claims; |
||||
|
using Microsoft.AspNetCore.Authentication; |
||||
|
using Microsoft.AspNetCore.Authentication.Cookies; |
||||
|
using Newtonsoft.Json; |
||||
|
|
||||
|
|
||||
|
namespace AMESCoreStudio.Web.Controllers |
||||
|
{ |
||||
|
public class LoginController : Controller |
||||
|
{ |
||||
|
private readonly ILogger<LoginController> _logger; |
||||
|
public readonly IAuth _authApi; |
||||
|
|
||||
|
public LoginController(ILogger<LoginController> logger, IAuth authApi) |
||||
|
{ |
||||
|
_logger = logger; |
||||
|
_authApi = authApi; |
||||
|
} |
||||
|
|
||||
|
public IActionResult Index() |
||||
|
{ |
||||
|
var loginNo = TempData["loginNo"]; |
||||
|
if (loginNo != null) |
||||
|
return View(new LoginViewModel() { LoginNo = loginNo.ToString() }); |
||||
|
return View(new LoginViewModel()); |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
///
|
||||
|
/// </summary>
|
||||
|
/// <param name="vModel"></param>
|
||||
|
/// <returns></returns>
|
||||
|
[HttpPost] |
||||
|
[ValidateAntiForgeryToken] |
||||
|
public async Task<IActionResult> Index(LoginViewModel vModel) |
||||
|
{ |
||||
|
if (ModelState.IsValid) |
||||
|
{ |
||||
|
var model = new LoginDTO(); |
||||
|
model.LoginNo = vModel.LoginNo; |
||||
|
model.LoginPassword = vModel.LoginPassword; |
||||
|
model.Platform = EnumPlatform.Web; |
||||
|
var result = await _authApi.Login(JsonConvert.SerializeObject(model)); |
||||
|
if (result.UserID >= 0) |
||||
|
{ |
||||
|
SaveUserCookie(result); //登录成功
|
||||
|
} |
||||
|
else |
||||
|
{ |
||||
|
ModelState.AddModelError("error", result.Msg); |
||||
|
} |
||||
|
} |
||||
|
return View(vModel); |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
///
|
||||
|
/// </summary>
|
||||
|
/// <returns></returns>
|
||||
|
public async Task<IActionResult> LoginOut() |
||||
|
{ |
||||
|
await HttpContext.SignOutAsync(CookieAuthenticationDefaults.AuthenticationScheme); |
||||
|
return RedirectToAction("Index", "Login"); |
||||
|
} |
||||
|
|
||||
|
|
||||
|
/// <summary>
|
||||
|
/// ASP.NET CORE Cookie 保存身份信息
|
||||
|
/// </summary>
|
||||
|
private void SaveUserCookie(LoginDTO login) |
||||
|
{ |
||||
|
//创建 Claim 对象将用户信息存储在 Claim 类型的字符串键值对中,
|
||||
|
//将 Claim 对象传入 ClaimsIdentity 中,用来构造一个 ClaimsIdentity 对象
|
||||
|
var identity = new ClaimsIdentity(CookieAuthenticationDefaults.AuthenticationScheme); |
||||
|
|
||||
|
identity.AddClaim(new Claim("UserID", login.UserID.ToString(), ClaimValueTypes.Integer32)); |
||||
|
identity.AddClaim(new Claim("LoginNo", login.LoginNo, ClaimValueTypes.String)); |
||||
|
|
||||
|
if (Request.Cookies["_AMESCookie"] != null) |
||||
|
{ |
||||
|
HttpContext.Response.Cookies.Append("UserID", login.UserID.ToString()); |
||||
|
} |
||||
|
else |
||||
|
{ |
||||
|
HttpContext.Response.Cookies.Append("UserID", login.UserID.ToString()); |
||||
|
} |
||||
|
|
||||
|
|
||||
|
//调用 HttpContext.SignInAsync 方法,传入上面创建的 ClaimsPrincipal 对象,完成用户登录
|
||||
|
|
||||
|
HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, new ClaimsPrincipal(identity), new AuthenticationProperties |
||||
|
{ |
||||
|
//获取或设置身份验证会话是否跨多个持久化要求
|
||||
|
IsPersistent = false, |
||||
|
ExpiresUtc = null, |
||||
|
//AllowRefresh = true,
|
||||
|
RedirectUri = "/Home/Framework" |
||||
|
}); |
||||
|
|
||||
|
|
||||
|
//如果当前 Http 请求本来登录了用户 A,现在调用 HttpContext.SignInAsync 方法登录用户 B,那么相当于注销用户 A,登录用户 B
|
||||
|
} |
||||
|
} |
||||
|
} |
@ -0,0 +1,617 @@ |
|||||
|
using Microsoft.AspNetCore.Mvc; |
||||
|
using System.Threading.Tasks; |
||||
|
using Microsoft.Extensions.Logging; |
||||
|
using AMESCoreStudio.Web.Models; |
||||
|
using Newtonsoft.Json; |
||||
|
using AMESCoreStudio.WebApi; |
||||
|
using System.Collections.Generic; |
||||
|
using Microsoft.AspNetCore.Mvc.Rendering; |
||||
|
|
||||
|
namespace AMESCoreStudio.Web.Controllers |
||||
|
{ |
||||
|
public class SYSController : Controller |
||||
|
{ |
||||
|
private readonly ILogger<SYSController> _logger; |
||||
|
public readonly ISYS _sysApi; |
||||
|
|
||||
|
public SYSController(ILogger<SYSController> logger, ISYS sysApi) |
||||
|
{ |
||||
|
_logger = logger; |
||||
|
_sysApi = sysApi; |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
///
|
||||
|
/// </summary>
|
||||
|
/// <returns></returns>
|
||||
|
private async Task GetSystemList() |
||||
|
{ |
||||
|
var result = await _sysApi.GetSystemInfoes(); |
||||
|
|
||||
|
var SystemItems = new List<SelectListItem>(); |
||||
|
for (int i = 0; i < result.Count; i++) |
||||
|
{ |
||||
|
SystemItems.Add(new SelectListItem(result[i].SystemName, result[i].SystemID.ToString())); |
||||
|
} |
||||
|
ViewBag.SystemList = SystemItems; |
||||
|
} |
||||
|
|
||||
|
private async Task GetModuleList() |
||||
|
{ |
||||
|
var result = await _sysApi.GetModuleInfoes(); |
||||
|
|
||||
|
var ModuleItems = new List<SelectListItem>(); |
||||
|
for (int i = 0; i < result.Count; i++) |
||||
|
{ |
||||
|
ModuleItems.Add(new SelectListItem(result[i].ModuleName, result[i].ModuleID.ToString())); |
||||
|
} |
||||
|
ViewBag.ModuleList = ModuleItems; |
||||
|
} |
||||
|
|
||||
|
private async Task GetDeptList() |
||||
|
{ |
||||
|
var result = await _sysApi.GetDeptInfoes(); |
||||
|
|
||||
|
var DeptItems = new List<SelectListItem>(); |
||||
|
for (int i = 0; i < result.Count; i++) |
||||
|
{ |
||||
|
DeptItems.Add(new SelectListItem(result[i].DeptNo + result[i].DeptName, result[i].DeptID.ToString())); |
||||
|
} |
||||
|
ViewBag.DeptList = DeptItems; |
||||
|
} |
||||
|
|
||||
|
#region SYS001系统资料维护相关
|
||||
|
|
||||
|
public IActionResult SYS001() |
||||
|
{ |
||||
|
return View(); |
||||
|
} |
||||
|
|
||||
|
//新增頁面
|
||||
|
public IActionResult SYS001C() |
||||
|
{ |
||||
|
return View(); |
||||
|
} |
||||
|
|
||||
|
//修改页面
|
||||
|
[HttpGet] |
||||
|
public async Task<IActionResult> SYS001UAsync(int id) |
||||
|
{ |
||||
|
var result = await _sysApi.GetSystemInfo(id); |
||||
|
|
||||
|
if (result.Count == 0) |
||||
|
{ |
||||
|
return View(); |
||||
|
} |
||||
|
return View(result[0]); |
||||
|
} |
||||
|
|
||||
|
public async Task<IActionResult> SYS001DAsync(int id) |
||||
|
{ |
||||
|
var result = await _sysApi.DeleteSystemInfo(id); |
||||
|
return Json(new Result() { success = true, msg = "" }); |
||||
|
} |
||||
|
|
||||
|
//頁面提交,id=0 添加,id>0 修改
|
||||
|
[HttpPost] |
||||
|
public async Task<IActionResult> SYS001SaveAsync(SystemInfo model) |
||||
|
{ |
||||
|
if (ModelState.IsValid) |
||||
|
{ |
||||
|
IResultModel result; |
||||
|
if (model.SystemID == 0) |
||||
|
{ |
||||
|
result = await _sysApi.PostSystemInfo(JsonConvert.SerializeObject(model)); |
||||
|
} |
||||
|
else |
||||
|
{ |
||||
|
result = await _sysApi.PutSystemInfo(model.SystemID, JsonConvert.SerializeObject(model)); |
||||
|
} |
||||
|
|
||||
|
if (!result.Success) |
||||
|
{ |
||||
|
var _msg = model.SystemID == 0 ? "添加成功!" : "修改成功!"; |
||||
|
return RedirectToAction("Refresh", "Home", new { msg = _msg }); |
||||
|
} |
||||
|
else |
||||
|
{ |
||||
|
if (result.Errors.Count > 0) |
||||
|
{ |
||||
|
ModelState.AddModelError(result.Errors[0].Id, result.Errors[0].Msg); |
||||
|
} |
||||
|
else |
||||
|
{ |
||||
|
ModelState.AddModelError("error", result.Msg); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
if (model.SystemID == 0) |
||||
|
{ |
||||
|
return View("SYS001C", model); |
||||
|
} |
||||
|
return View("SYS001U", model); |
||||
|
} |
||||
|
|
||||
|
[ResponseCache(Duration = 0)] |
||||
|
[HttpGet] |
||||
|
public async Task<IActionResult> GetSystemInfoesAsync() |
||||
|
{ |
||||
|
var result = await _sysApi.GetSystemInfoes(); |
||||
|
|
||||
|
if (result.Count > 0) |
||||
|
{ |
||||
|
return Json(new Table() { code = 0, msg = "", data = result, count = result.Count }); |
||||
|
} |
||||
|
|
||||
|
return Json(new Table() { count = 0, data = null }); |
||||
|
} |
||||
|
|
||||
|
#endregion
|
||||
|
|
||||
|
#region SYS002模组资料维护相关
|
||||
|
|
||||
|
public IActionResult SYS002() |
||||
|
{ |
||||
|
return View(); |
||||
|
} |
||||
|
|
||||
|
//新增頁面
|
||||
|
public async Task<IActionResult> SYS002C() |
||||
|
{ |
||||
|
await GetSystemList(); |
||||
|
return View(); |
||||
|
} |
||||
|
|
||||
|
//修改页面
|
||||
|
[HttpGet] |
||||
|
public async Task<IActionResult> SYS002UAsync(int id) |
||||
|
{ |
||||
|
await GetSystemList(); |
||||
|
|
||||
|
var result = await _sysApi.GetModuleInfo(id); |
||||
|
|
||||
|
if (result.Count == 0) |
||||
|
{ |
||||
|
return View(); |
||||
|
} |
||||
|
return View(result[0]); |
||||
|
} |
||||
|
|
||||
|
public async Task<IActionResult> SYS002DAsync(int id) |
||||
|
{ |
||||
|
var result = await _sysApi.DeleteModuleInfo(id); |
||||
|
return Json(new Result() { success = true, msg = "" }); |
||||
|
} |
||||
|
|
||||
|
//頁面提交,id=0 添加,id>0 修改
|
||||
|
[HttpPost] |
||||
|
public async Task<IActionResult> SYS002SaveAsync(ModuleInfo model) |
||||
|
{ |
||||
|
if (ModelState.IsValid) |
||||
|
{ |
||||
|
IResultModel result; |
||||
|
if (model.ModuleID == 0) |
||||
|
{ |
||||
|
result = await _sysApi.PostModuleInfo(JsonConvert.SerializeObject(model)); |
||||
|
} |
||||
|
else |
||||
|
{ |
||||
|
result = await _sysApi.PutModuleInfo(model.ModuleID, JsonConvert.SerializeObject(model)); |
||||
|
} |
||||
|
|
||||
|
if (!result.Success) |
||||
|
{ |
||||
|
var _msg = model.ModuleID == 0 ? "添加成功!" : "修改成功!"; |
||||
|
return RedirectToAction("Refresh", "Home", new { msg = _msg }); |
||||
|
} |
||||
|
else |
||||
|
{ |
||||
|
if (result.Errors.Count > 0) |
||||
|
{ |
||||
|
ModelState.AddModelError(result.Errors[0].Id, result.Errors[0].Msg); |
||||
|
} |
||||
|
else |
||||
|
{ |
||||
|
ModelState.AddModelError("error", result.Msg); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
if (model.ModuleID == 0) |
||||
|
{ |
||||
|
return View("SYS002C", model); |
||||
|
} |
||||
|
return View("SYS002U", model); |
||||
|
} |
||||
|
|
||||
|
[ResponseCache(Duration = 0)] |
||||
|
[HttpGet] |
||||
|
public async Task<IActionResult> GetModuleInfoesAsync() |
||||
|
{ |
||||
|
var result = await _sysApi.GetModuleInfoes(); |
||||
|
|
||||
|
if (result.Count > 0) |
||||
|
{ |
||||
|
return Json(new Table() { code = 0, msg = "", data = result, count = result.Count }); |
||||
|
} |
||||
|
|
||||
|
return Json(new Table() { count = 0, data = null }); |
||||
|
} |
||||
|
|
||||
|
#endregion
|
||||
|
|
||||
|
#region SYS003功能资料维护相关
|
||||
|
|
||||
|
public IActionResult SYS003() |
||||
|
{ |
||||
|
return View(); |
||||
|
} |
||||
|
|
||||
|
//新增頁面
|
||||
|
public async Task<IActionResult> SYS003C() |
||||
|
{ |
||||
|
await GetModuleList(); |
||||
|
return View(); |
||||
|
} |
||||
|
|
||||
|
//修改页面
|
||||
|
[HttpGet] |
||||
|
public async Task<IActionResult> SYS003UAsync(int id) |
||||
|
{ |
||||
|
await GetModuleList(); |
||||
|
|
||||
|
var result = await _sysApi.GetProgramInfo(id); |
||||
|
|
||||
|
if (result.Count == 0) |
||||
|
{ |
||||
|
return View(); |
||||
|
} |
||||
|
return View(result[0]); |
||||
|
} |
||||
|
|
||||
|
public async Task<IActionResult> SYS003DAsync(int id) |
||||
|
{ |
||||
|
var result = await _sysApi.DeleteProgramInfo(id); |
||||
|
return Json(new Result() { success = true, msg = "" }); |
||||
|
} |
||||
|
|
||||
|
//頁面提交,id=0 添加,id>0 修改
|
||||
|
[HttpPost] |
||||
|
public async Task<IActionResult> SYS003SaveAsync(ProgramInfo model) |
||||
|
{ |
||||
|
if (ModelState.IsValid) |
||||
|
{ |
||||
|
IResultModel result; |
||||
|
if (model.ProgramID == 0) |
||||
|
{ |
||||
|
result = await _sysApi.PostProgramInfo(JsonConvert.SerializeObject(model)); |
||||
|
} |
||||
|
else |
||||
|
{ |
||||
|
result = await _sysApi.PutProgramInfo(model.ProgramID, JsonConvert.SerializeObject(model)); |
||||
|
} |
||||
|
|
||||
|
if (!result.Success) |
||||
|
{ |
||||
|
var _msg = model.ProgramID == 0 ? "添加成功!" : "修改成功!"; |
||||
|
return RedirectToAction("Refresh", "Home", new { msg = _msg }); |
||||
|
} |
||||
|
else |
||||
|
{ |
||||
|
if (result.Errors.Count > 0) |
||||
|
{ |
||||
|
ModelState.AddModelError(result.Errors[0].Id, result.Errors[0].Msg); |
||||
|
} |
||||
|
else |
||||
|
{ |
||||
|
ModelState.AddModelError("error", result.Msg); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
if (model.ProgramID == 0) |
||||
|
{ |
||||
|
return View("SYS003C", model); |
||||
|
} |
||||
|
return View("SYS003U", model); |
||||
|
} |
||||
|
|
||||
|
[ResponseCache(Duration = 0)] |
||||
|
[HttpGet] |
||||
|
public async Task<IActionResult> GetProgramInfoesAsync() |
||||
|
{ |
||||
|
var result = await _sysApi.GetProgramInfoes(); |
||||
|
|
||||
|
if (result.Count > 0) |
||||
|
{ |
||||
|
return Json(new Table() { code = 0, msg = "", data = result, count = result.Count }); |
||||
|
} |
||||
|
|
||||
|
return Json(new Table() { count = 0, data = null }); |
||||
|
} |
||||
|
|
||||
|
#endregion
|
||||
|
|
||||
|
#region SYS004角色资料维护相关
|
||||
|
|
||||
|
public IActionResult SYS004() |
||||
|
{ |
||||
|
return View(); |
||||
|
} |
||||
|
|
||||
|
//新增頁面
|
||||
|
public IActionResult SYS004C() |
||||
|
{ |
||||
|
return View(); |
||||
|
} |
||||
|
|
||||
|
//修改页面
|
||||
|
[HttpGet] |
||||
|
public async Task<IActionResult> SYS004UAsync(int id) |
||||
|
{ |
||||
|
var result = await _sysApi.GetRoleInfo(id); |
||||
|
|
||||
|
if (result.Count == 0) |
||||
|
{ |
||||
|
return View(); |
||||
|
} |
||||
|
return View(result[0]); |
||||
|
} |
||||
|
|
||||
|
public async Task<IActionResult> SYS004DAsync(int id) |
||||
|
{ |
||||
|
var result = await _sysApi.DeleteRoleInfo(id); |
||||
|
return Json(new Result() { success = true, msg = "" }); |
||||
|
} |
||||
|
|
||||
|
//頁面提交,id=0 添加,id>0 修改
|
||||
|
[HttpPost] |
||||
|
public async Task<IActionResult> SYS004SaveAsync(RoleInfo model) |
||||
|
{ |
||||
|
if (ModelState.IsValid) |
||||
|
{ |
||||
|
IResultModel result; |
||||
|
if (model.RoleID == 0) |
||||
|
{ |
||||
|
result = await _sysApi.PostRoleInfo(JsonConvert.SerializeObject(model)); |
||||
|
} |
||||
|
else |
||||
|
{ |
||||
|
result = await _sysApi.PutRoleInfo(model.RoleID, JsonConvert.SerializeObject(model)); |
||||
|
} |
||||
|
|
||||
|
if (!result.Success) |
||||
|
{ |
||||
|
var _msg = model.RoleID == 0 ? "添加成功!" : "修改成功!"; |
||||
|
return RedirectToAction("Refresh", "Home", new { msg = _msg }); |
||||
|
} |
||||
|
else |
||||
|
{ |
||||
|
if (result.Errors.Count > 0) |
||||
|
{ |
||||
|
ModelState.AddModelError(result.Errors[0].Id, result.Errors[0].Msg); |
||||
|
} |
||||
|
else |
||||
|
{ |
||||
|
ModelState.AddModelError("error", result.Msg); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
if (model.RoleID == 0) |
||||
|
{ |
||||
|
return View("SYS004C", model); |
||||
|
} |
||||
|
return View("SYS004U", model); |
||||
|
} |
||||
|
|
||||
|
[ResponseCache(Duration = 0)] |
||||
|
[HttpGet] |
||||
|
public async Task<IActionResult> GetRoleInfoesAsync() |
||||
|
{ |
||||
|
var result = await _sysApi.GetRoleInfoes(); |
||||
|
|
||||
|
if (result.Count > 0) |
||||
|
{ |
||||
|
return Json(new Table() { code = 0, msg = "", data = result, count = result.Count }); |
||||
|
} |
||||
|
|
||||
|
return Json(new Table() { count = 0, data = null }); |
||||
|
} |
||||
|
|
||||
|
#endregion
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
#region SYS007部门资料维护相关
|
||||
|
|
||||
|
public IActionResult SYS007() |
||||
|
{ |
||||
|
return View(); |
||||
|
} |
||||
|
|
||||
|
//新增頁面
|
||||
|
public IActionResult SYS007C(int id) |
||||
|
{ |
||||
|
var model = new DeptInfo(); |
||||
|
|
||||
|
if (id > 0) |
||||
|
{ |
||||
|
model.DeptTypeID = EnumDeptType.dept; |
||||
|
model.ParentDeptID = id; |
||||
|
} |
||||
|
else |
||||
|
{ |
||||
|
model.DeptTypeID = EnumDeptType.factory; |
||||
|
} |
||||
|
|
||||
|
return View(model); |
||||
|
} |
||||
|
|
||||
|
//修改页面
|
||||
|
[HttpGet] |
||||
|
public async Task<IActionResult> SYS007UAsync(int id) |
||||
|
{ |
||||
|
var result = await _sysApi.GetDeptInfo(id); |
||||
|
|
||||
|
if (result.Count == 0) |
||||
|
{ |
||||
|
return View(); |
||||
|
} |
||||
|
return View(result[0]); |
||||
|
} |
||||
|
|
||||
|
public async Task<IActionResult> SYS007DAsync(int id) |
||||
|
{ |
||||
|
var result = await _sysApi.DeleteDeptInfo(id); |
||||
|
return Json(new Result() { success = true, msg = "" }); |
||||
|
} |
||||
|
|
||||
|
//頁面提交,id=0 添加,id>0 修改
|
||||
|
[HttpPost] |
||||
|
public async Task<IActionResult> SYS007SaveAsync(DeptInfo model) |
||||
|
{ |
||||
|
if (ModelState.IsValid) |
||||
|
{ |
||||
|
IResultModel result; |
||||
|
if (model.DeptID == 0) |
||||
|
{ |
||||
|
result = await _sysApi.PostDeptInfo(JsonConvert.SerializeObject(model)); |
||||
|
} |
||||
|
else |
||||
|
{ |
||||
|
result = await _sysApi.PutDeptInfo(model.DeptID, JsonConvert.SerializeObject(model)); |
||||
|
} |
||||
|
|
||||
|
if (!result.Success) |
||||
|
{ |
||||
|
var _msg = model.DeptID == 0 ? "添加成功!" : "修改成功!"; |
||||
|
return RedirectToAction("Refresh", "Home", new { msg = _msg }); |
||||
|
} |
||||
|
else |
||||
|
{ |
||||
|
if (result.Errors.Count > 0) |
||||
|
{ |
||||
|
ModelState.AddModelError(result.Errors[0].Id, result.Errors[0].Msg); |
||||
|
} |
||||
|
else |
||||
|
{ |
||||
|
ModelState.AddModelError("error", result.Msg); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
if (model.DeptID == 0) |
||||
|
{ |
||||
|
return View("SYS007C", model); |
||||
|
} |
||||
|
return View("SYS007U", model); |
||||
|
} |
||||
|
|
||||
|
[ResponseCache(Duration = 0)] |
||||
|
[HttpGet] |
||||
|
public async Task<IActionResult> GetDeptInfoesAsync() |
||||
|
{ |
||||
|
var result = await _sysApi.GetDeptInfoes(); |
||||
|
|
||||
|
if (result.Count > 0) |
||||
|
{ |
||||
|
return Json(new Table() { code = 0, msg = "", data = result, count = result.Count }); |
||||
|
} |
||||
|
|
||||
|
return Json(new Table() { count = 0, data = null }); |
||||
|
} |
||||
|
|
||||
|
#endregion
|
||||
|
|
||||
|
#region SYS008用户资料维护相关
|
||||
|
|
||||
|
public IActionResult SYS008() |
||||
|
{ |
||||
|
return View(); |
||||
|
} |
||||
|
|
||||
|
//新增頁面
|
||||
|
public async Task<IActionResult> SYS008C() |
||||
|
{ |
||||
|
await GetDeptList(); |
||||
|
return View(); |
||||
|
} |
||||
|
|
||||
|
//修改页面
|
||||
|
[HttpGet] |
||||
|
public async Task<IActionResult> SYS008UAsync(int id) |
||||
|
{ |
||||
|
await GetDeptList(); |
||||
|
|
||||
|
var result = await _sysApi.GetUserInfo(id); |
||||
|
|
||||
|
if (result.Count == 0) |
||||
|
{ |
||||
|
return View(); |
||||
|
} |
||||
|
return View(result[0]); |
||||
|
} |
||||
|
|
||||
|
public async Task<IActionResult> SYS008DAsync(int id) |
||||
|
{ |
||||
|
var result = await _sysApi.DeleteUserInfo(id); |
||||
|
return Json(new Result() { success = true, msg = "" }); |
||||
|
} |
||||
|
|
||||
|
//頁面提交,id=0 添加,id>0 修改
|
||||
|
[HttpPost] |
||||
|
public async Task<IActionResult> SYS008SaveAsync(UserInfo model) |
||||
|
{ |
||||
|
if (ModelState.IsValid) |
||||
|
{ |
||||
|
IResultModel result; |
||||
|
if (model.UserID == 0) |
||||
|
{ |
||||
|
result = await _sysApi.PostUserInfo(JsonConvert.SerializeObject(model)); |
||||
|
} |
||||
|
else |
||||
|
{ |
||||
|
result = await _sysApi.PutUserInfo(model.UserID, JsonConvert.SerializeObject(model)); |
||||
|
} |
||||
|
|
||||
|
if (!result.Success) |
||||
|
{ |
||||
|
var _msg = model.UserID == 0 ? "添加成功!" : "修改成功!"; |
||||
|
return RedirectToAction("Refresh", "Home", new { msg = _msg }); |
||||
|
} |
||||
|
else |
||||
|
{ |
||||
|
if (result.Errors.Count > 0) |
||||
|
{ |
||||
|
ModelState.AddModelError(result.Errors[0].Id, result.Errors[0].Msg); |
||||
|
} |
||||
|
else |
||||
|
{ |
||||
|
ModelState.AddModelError("error", result.Msg); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
if (model.UserID == 0) |
||||
|
{ |
||||
|
return View("SYS008C", model); |
||||
|
} |
||||
|
return View("SYS008U", model); |
||||
|
} |
||||
|
|
||||
|
[ResponseCache(Duration = 0)] |
||||
|
[HttpGet] |
||||
|
public async Task<IActionResult> GetUserInfoesAsync() |
||||
|
{ |
||||
|
var result = await _sysApi.GetUserInfoes(); |
||||
|
|
||||
|
if (result.Count > 0) |
||||
|
{ |
||||
|
return Json(new Table() { code = 0, msg = "", data = result, count = result.Count }); |
||||
|
} |
||||
|
|
||||
|
return Json(new Table() { count = 0, data = null }); |
||||
|
} |
||||
|
|
||||
|
#endregion
|
||||
|
} |
||||
|
} |
@ -0,0 +1,30 @@ |
|||||
|
using System; |
||||
|
using System.Collections.Generic; |
||||
|
using System.Linq; |
||||
|
using System.Threading.Tasks; |
||||
|
using WebApiClient; |
||||
|
using WebApiClient.Attributes; |
||||
|
using AMESCoreStudio.WebApi; |
||||
|
using Microsoft.AspNetCore.Mvc; |
||||
|
|
||||
|
namespace AMESCoreStudio.Web |
||||
|
{ |
||||
|
[JsonReturn] |
||||
|
public interface IAuth:IHttpApi |
||||
|
{ |
||||
|
/// <summary>
|
||||
|
/// 登录处理
|
||||
|
/// </summary>
|
||||
|
/// <returns></returns>
|
||||
|
[WebApiClient.Attributes.HttpPost("api/Auth/Login")] |
||||
|
ITask<LoginDTO> Login([FromBody, RawJsonContent] string model); |
||||
|
|
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 获取认证信息
|
||||
|
/// </summary>
|
||||
|
/// <returns></returns>
|
||||
|
[WebApiClient.Attributes.HttpGet("api/Auth/GetAuthInfo")] |
||||
|
ITask<LoginResultDTO> AuthInfo(); |
||||
|
} |
||||
|
} |
@ -0,0 +1,64 @@ |
|||||
|
using System; |
||||
|
using System.Collections.Generic; |
||||
|
using System.Linq; |
||||
|
using System.Threading.Tasks; |
||||
|
using WebApiClient; |
||||
|
using WebApiClient.Attributes; |
||||
|
using AMESCoreStudio.WebApi; |
||||
|
using Newtonsoft.Json; |
||||
|
using Newtonsoft.Json.Converters; |
||||
|
using Newtonsoft.Json.Serialization; |
||||
|
using Microsoft.AspNetCore.Mvc; |
||||
|
|
||||
|
namespace AMESCoreStudio.Web |
||||
|
{ |
||||
|
[JsonReturn] |
||||
|
public interface IBulletin : IHttpApi |
||||
|
{ |
||||
|
/// <summary>
|
||||
|
/// 新增公告
|
||||
|
/// </summary>
|
||||
|
/// <returns></returns>
|
||||
|
[WebApiClient.Attributes.HttpPost("api/Bulletins")] |
||||
|
ITask<ResultModel<BulletinDTO>> PostBulletin([FromBody, RawJsonContent] string model); |
||||
|
|
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 更新公告
|
||||
|
/// </summary>
|
||||
|
/// <returns></returns>
|
||||
|
[WebApiClient.Attributes.HttpPut("api/Bulletins/{id}")] |
||||
|
ITask<ResultModel<BulletinDTO>> PutBulletin(int id, [FromBody, RawJsonContent] string model); |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 刪除公告
|
||||
|
/// </summary>
|
||||
|
/// <returns></returns>
|
||||
|
[WebApiClient.Attributes.HttpDelete("api/Bulletins/{id}")] |
||||
|
ITask<ResultModel<string>> DeleteBulletin(int id); |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 根據ID獲取指定公告資料
|
||||
|
/// </summary>
|
||||
|
/// <returns></returns>
|
||||
|
[WebApiClient.Attributes.HttpGet("api/Bulletins/{id}")] |
||||
|
ITask<ResultModel<BulletinDTO>> GetBulletin4Model(int id); |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 根據ID獲取指定公告資料
|
||||
|
/// </summary>
|
||||
|
/// <returns></returns>
|
||||
|
[WebApiClient.Attributes.HttpGet("api/Bulletins/{id}")] |
||||
|
ITask<List<BulletinDTO>> GetBulletin(int id); |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 獲取全部公告資料
|
||||
|
/// </summary>
|
||||
|
/// <returns></returns>
|
||||
|
[WebApiClient.Attributes.HttpGet("api/Bulletins")] |
||||
|
ITask<List<Bulletin>> GetBulletins(); |
||||
|
|
||||
|
//ITask<List<BulletinDTO>> GetBulletins();
|
||||
|
|
||||
|
} |
||||
|
} |
@ -0,0 +1,249 @@ |
|||||
|
using System.Collections.Generic; |
||||
|
using WebApiClient; |
||||
|
using WebApiClient.Attributes; |
||||
|
using AMESCoreStudio.WebApi; |
||||
|
using Microsoft.AspNetCore.Mvc; |
||||
|
|
||||
|
|
||||
|
namespace AMESCoreStudio.Web |
||||
|
{ |
||||
|
[JsonReturn] |
||||
|
public interface ISYS:IHttpApi |
||||
|
{ |
||||
|
#region SYS001系統資料維護相關
|
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 新增系統
|
||||
|
/// </summary>
|
||||
|
/// <returns></returns>
|
||||
|
[WebApiClient.Attributes.HttpPost("api/SystemInfoes")] |
||||
|
ITask<ResultModel<SystemInfo>> PostSystemInfo([FromBody, RawJsonContent] string model); |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 更新系統
|
||||
|
/// </summary>
|
||||
|
/// <returns></returns>
|
||||
|
[WebApiClient.Attributes.HttpPut("api/SystemInfoes/{id}")] |
||||
|
ITask<ResultModel<SystemInfo>> PutSystemInfo(int id, [FromBody, RawJsonContent] string model); |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 刪除系統
|
||||
|
/// </summary>
|
||||
|
/// <returns></returns>
|
||||
|
[WebApiClient.Attributes.HttpDelete("api/SystemInfoes/{id}")] |
||||
|
ITask<ResultModel<string>> DeleteSystemInfo(int id); |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 根據ID獲取指定系統資料
|
||||
|
/// </summary>
|
||||
|
/// <returns></returns>
|
||||
|
[WebApiClient.Attributes.HttpGet("api/SystemInfoes/{id}")] |
||||
|
ITask<List<SystemInfo>> GetSystemInfo(int id); |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 獲取系統資料
|
||||
|
/// </summary>
|
||||
|
/// <returns></returns>
|
||||
|
[WebApiClient.Attributes.HttpGet("api/SystemInfoes")] |
||||
|
ITask<List<SystemInfo>> GetSystemInfoes(); |
||||
|
|
||||
|
#endregion
|
||||
|
|
||||
|
#region SYS002模組資料維護相關
|
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 新增模組
|
||||
|
/// </summary>
|
||||
|
/// <returns></returns>
|
||||
|
[WebApiClient.Attributes.HttpPost("api/ModuleInfoes")] |
||||
|
ITask<ResultModel<ModuleInfo>> PostModuleInfo([FromBody, RawJsonContent] string model); |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 更新模組
|
||||
|
/// </summary>
|
||||
|
/// <returns></returns>
|
||||
|
[WebApiClient.Attributes.HttpPut("api/ModuleInfoes/{id}")] |
||||
|
ITask<ResultModel<ModuleInfo>> PutModuleInfo(int id, [FromBody, RawJsonContent] string model); |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 刪除模組
|
||||
|
/// </summary>
|
||||
|
/// <returns></returns>
|
||||
|
[WebApiClient.Attributes.HttpDelete("api/ModuleInfoes/{id}")] |
||||
|
ITask<ResultModel<string>> DeleteModuleInfo(int id); |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 根據ID獲取指定模組資料
|
||||
|
/// </summary>
|
||||
|
/// <returns></returns>
|
||||
|
[WebApiClient.Attributes.HttpGet("api/ModuleInfoes/{id}")] |
||||
|
ITask<List<ModuleInfo>> GetModuleInfo(int id); |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 獲取模組資料
|
||||
|
/// </summary>
|
||||
|
/// <returns></returns>
|
||||
|
[WebApiClient.Attributes.HttpGet("api/ModuleInfoes")] |
||||
|
ITask<List<ModuleInfo>> GetModuleInfoes(); |
||||
|
|
||||
|
#endregion
|
||||
|
|
||||
|
#region SYS003功能資料維護相關
|
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 新增功能
|
||||
|
/// </summary>
|
||||
|
/// <returns></returns>
|
||||
|
[WebApiClient.Attributes.HttpPost("api/ProgramInfoes")] |
||||
|
ITask<ResultModel<ProgramInfo>> PostProgramInfo([FromBody, RawJsonContent] string model); |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 更新功能
|
||||
|
/// </summary>
|
||||
|
/// <returns></returns>
|
||||
|
[WebApiClient.Attributes.HttpPut("api/ProgramInfoes/{id}")] |
||||
|
ITask<ResultModel<ProgramInfo>> PutProgramInfo(int id, [FromBody, RawJsonContent] string model); |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 刪除功能
|
||||
|
/// </summary>
|
||||
|
/// <returns></returns>
|
||||
|
[WebApiClient.Attributes.HttpDelete("api/ProgramInfoes/{id}")] |
||||
|
ITask<ResultModel<string>> DeleteProgramInfo(int id); |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 根據ID獲取指定功能資料
|
||||
|
/// </summary>
|
||||
|
/// <returns></returns>
|
||||
|
[WebApiClient.Attributes.HttpGet("api/ProgramInfoes/{id}")] |
||||
|
ITask<List<ProgramInfo>> GetProgramInfo(int id); |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 獲取功能資料
|
||||
|
/// </summary>
|
||||
|
/// <returns></returns>
|
||||
|
[WebApiClient.Attributes.HttpGet("api/ProgramInfoes")] |
||||
|
ITask<List<ProgramInfo>> GetProgramInfoes(); |
||||
|
|
||||
|
#endregion
|
||||
|
|
||||
|
#region SYS004角色資料維護相關
|
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 新增角色
|
||||
|
/// </summary>
|
||||
|
/// <returns></returns>
|
||||
|
[WebApiClient.Attributes.HttpPost("api/RoleInfoes")] |
||||
|
ITask<ResultModel<RoleInfo>> PostRoleInfo([FromBody, RawJsonContent] string model); |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 更新角色
|
||||
|
/// </summary>
|
||||
|
/// <returns></returns>
|
||||
|
[WebApiClient.Attributes.HttpPut("api/RoleInfoes/{id}")] |
||||
|
ITask<ResultModel<RoleInfo>> PutRoleInfo(int id, [FromBody, RawJsonContent] string model); |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 刪除角色
|
||||
|
/// </summary>
|
||||
|
/// <returns></returns>
|
||||
|
[WebApiClient.Attributes.HttpDelete("api/RoleInfoes/{id}")] |
||||
|
ITask<ResultModel<string>> DeleteRoleInfo(int id); |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 根據ID獲取指定角色資料
|
||||
|
/// </summary>
|
||||
|
/// <returns></returns>
|
||||
|
[WebApiClient.Attributes.HttpGet("api/RoleInfoes/{id}")] |
||||
|
ITask<List<RoleInfo>> GetRoleInfo(int id); |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 獲取角色資料
|
||||
|
/// </summary>
|
||||
|
/// <returns></returns>
|
||||
|
[WebApiClient.Attributes.HttpGet("api/RoleInfoes")] |
||||
|
ITask<List<RoleInfo>> GetRoleInfoes(); |
||||
|
|
||||
|
#endregion
|
||||
|
|
||||
|
|
||||
|
|
||||
|
#region SYS007部门資料維護相關
|
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 新增部门
|
||||
|
/// </summary>
|
||||
|
/// <returns></returns>
|
||||
|
[WebApiClient.Attributes.HttpPost("api/DeptInfoes")] |
||||
|
ITask<ResultModel<DeptInfo>> PostDeptInfo([FromBody, RawJsonContent] string model); |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 更新部门
|
||||
|
/// </summary>
|
||||
|
/// <returns></returns>
|
||||
|
[WebApiClient.Attributes.HttpPut("api/DeptInfoes/{id}")] |
||||
|
ITask<ResultModel<DeptInfo>> PutDeptInfo(int id, [FromBody, RawJsonContent] string model); |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 刪除部门
|
||||
|
/// </summary>
|
||||
|
/// <returns></returns>
|
||||
|
[WebApiClient.Attributes.HttpDelete("api/DeptInfoes/{id}")] |
||||
|
ITask<ResultModel<string>> DeleteDeptInfo(int id); |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 根據ID獲取指定部门資料
|
||||
|
/// </summary>
|
||||
|
/// <returns></returns>
|
||||
|
[WebApiClient.Attributes.HttpGet("api/DeptInfoes/{id}")] |
||||
|
ITask<List<DeptInfo>> GetDeptInfo(int id); |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 獲取部门資料
|
||||
|
/// </summary>
|
||||
|
/// <returns></returns>
|
||||
|
[WebApiClient.Attributes.HttpGet("api/DeptInfoes")] |
||||
|
ITask<List<DeptInfo>> GetDeptInfoes(); |
||||
|
|
||||
|
#endregion
|
||||
|
|
||||
|
#region SYS008用户資料維護相關
|
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 新增用户
|
||||
|
/// </summary>
|
||||
|
/// <returns></returns>
|
||||
|
[WebApiClient.Attributes.HttpPost("api/UserInfoes")] |
||||
|
ITask<ResultModel<UserInfo>> PostUserInfo([FromBody, RawJsonContent] string model); |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 更新用户
|
||||
|
/// </summary>
|
||||
|
/// <returns></returns>
|
||||
|
[WebApiClient.Attributes.HttpPut("api/UserInfoes/{id}")] |
||||
|
ITask<ResultModel<UserInfo>> PutUserInfo(int id, [FromBody, RawJsonContent] string model); |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 刪除用户
|
||||
|
/// </summary>
|
||||
|
/// <returns></returns>
|
||||
|
[WebApiClient.Attributes.HttpDelete("api/UserInfoes/{id}")] |
||||
|
ITask<ResultModel<string>> DeleteUserInfo(int id); |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 根據ID獲取指定用户資料
|
||||
|
/// </summary>
|
||||
|
/// <returns></returns>
|
||||
|
[WebApiClient.Attributes.HttpGet("api/UserInfoes/{id}")] |
||||
|
ITask<List<UserInfo>> GetUserInfo(int id); |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 獲取用户資料
|
||||
|
/// </summary>
|
||||
|
/// <returns></returns>
|
||||
|
[WebApiClient.Attributes.HttpGet("api/UserInfoes")] |
||||
|
ITask<List<UserInfo>> GetUserInfoes(); |
||||
|
|
||||
|
#endregion
|
||||
|
} |
||||
|
} |
@ -0,0 +1,11 @@ |
|||||
|
using System; |
||||
|
|
||||
|
namespace AMESCoreStudio.Web.Models |
||||
|
{ |
||||
|
public class ErrorViewModel |
||||
|
{ |
||||
|
public string RequestId { get; set; } |
||||
|
|
||||
|
public bool ShowRequestId => !string.IsNullOrEmpty(RequestId); |
||||
|
} |
||||
|
} |
@ -0,0 +1,22 @@ |
|||||
|
using System; |
||||
|
using System.Collections.Generic; |
||||
|
using System.Linq; |
||||
|
using System.Threading.Tasks; |
||||
|
|
||||
|
namespace AMESCoreStudio.Web.Models |
||||
|
{ |
||||
|
public class Table |
||||
|
{ |
||||
|
public int code { get; set; } = 0; |
||||
|
public string msg { get; set; } |
||||
|
public int count { get; set; } |
||||
|
public dynamic data { get; set; } |
||||
|
} |
||||
|
|
||||
|
public class Result |
||||
|
{ |
||||
|
public bool success { get; set; } = true; |
||||
|
public string msg { get; set; } = "成功!"; |
||||
|
public dynamic data { get; set; } |
||||
|
} |
||||
|
} |
@ -0,0 +1,19 @@ |
|||||
|
using System; |
||||
|
using System.Collections.Generic; |
||||
|
using System.Linq; |
||||
|
using System.Threading.Tasks; |
||||
|
using System.ComponentModel.DataAnnotations; |
||||
|
|
||||
|
namespace AMESCoreStudio.Web |
||||
|
{ |
||||
|
/// <summary>
|
||||
|
///
|
||||
|
/// </summary>
|
||||
|
public class LoginViewModel |
||||
|
{ |
||||
|
[Required] |
||||
|
public string LoginNo { get; set; } |
||||
|
[Required] |
||||
|
public string LoginPassword { get; set; } |
||||
|
} |
||||
|
} |
@ -0,0 +1,47 @@ |
|||||
|
using System; |
||||
|
using System.Collections.Generic; |
||||
|
using System.Linq; |
||||
|
using System.Threading.Tasks; |
||||
|
using Microsoft.AspNetCore.Hosting; |
||||
|
using Microsoft.Extensions.Configuration; |
||||
|
using Microsoft.Extensions.Hosting; |
||||
|
using Microsoft.Extensions.Logging; |
||||
|
|
||||
|
namespace AMESCoreStudio.Web |
||||
|
{ |
||||
|
public class Program |
||||
|
{ |
||||
|
public static void Main(string[] args) |
||||
|
{ |
||||
|
CreateHostBuilder(args).Build().Run(); |
||||
|
} |
||||
|
|
||||
|
public static IHostBuilder CreateHostBuilder(string[] args) |
||||
|
{ |
||||
|
var configuration = new ConfigurationBuilder() |
||||
|
.SetBasePath(Environment.CurrentDirectory) |
||||
|
.AddJsonFile("appsettings.json") |
||||
|
.Build(); |
||||
|
configuration.GetSection("Setting").Bind(AppSetting.Setting); |
||||
|
|
||||
|
if (AppSetting.Setting.Urls.ToString()=="") |
||||
|
AppSetting.Setting.Urls = "http://*:8080"; |
||||
|
|
||||
|
return Host.CreateDefaultBuilder(args) |
||||
|
.ConfigureWebHostDefaults(webBuilder => |
||||
|
{ |
||||
|
webBuilder.UseStartup<Startup>() |
||||
|
.UseUrls(AppSetting.Setting.Urls); |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
/* |
||||
|
public static IHostBuilder CreateHostBuilder(string[] args) => |
||||
|
Host.CreateDefaultBuilder(args) |
||||
|
.ConfigureWebHostDefaults(webBuilder => |
||||
|
{ |
||||
|
webBuilder.UseStartup<Startup>(); |
||||
|
}); |
||||
|
*/ |
||||
|
} |
||||
|
} |
@ -0,0 +1,27 @@ |
|||||
|
{ |
||||
|
"iisSettings": { |
||||
|
"windowsAuthentication": false, |
||||
|
"anonymousAuthentication": true, |
||||
|
"iisExpress": { |
||||
|
"applicationUrl": "http://localhost:26159", |
||||
|
"sslPort": 0 |
||||
|
} |
||||
|
}, |
||||
|
"profiles": { |
||||
|
"IIS Express": { |
||||
|
"commandName": "IISExpress", |
||||
|
"launchBrowser": true, |
||||
|
"environmentVariables": { |
||||
|
"ASPNETCORE_ENVIRONMENT": "Development" |
||||
|
} |
||||
|
}, |
||||
|
"AMESCoreStudio.Web": { |
||||
|
"commandName": "Project", |
||||
|
"launchBrowser": true, |
||||
|
"environmentVariables": { |
||||
|
"ASPNETCORE_ENVIRONMENT": "Development" |
||||
|
}, |
||||
|
"applicationUrl": "https://localhost:5001;http://localhost:5000" |
||||
|
} |
||||
|
} |
||||
|
} |
@ -0,0 +1,95 @@ |
|||||
|
using System; |
||||
|
using System.Collections.Generic; |
||||
|
using System.Linq; |
||||
|
using System.Threading.Tasks; |
||||
|
using Microsoft.AspNetCore.Authentication.Cookies; |
||||
|
using Microsoft.AspNetCore.Builder; |
||||
|
using Microsoft.AspNetCore.Hosting; |
||||
|
using Microsoft.AspNetCore.Http; |
||||
|
using Microsoft.Extensions.Configuration; |
||||
|
using Microsoft.Extensions.DependencyInjection; |
||||
|
using Microsoft.Extensions.Hosting; |
||||
|
using WebApiClient; |
||||
|
|
||||
|
namespace AMESCoreStudio.Web |
||||
|
{ |
||||
|
public class Startup |
||||
|
{ |
||||
|
public Startup(IConfiguration configuration) |
||||
|
{ |
||||
|
Configuration = configuration; |
||||
|
} |
||||
|
|
||||
|
public IConfiguration Configuration { get; } |
||||
|
|
||||
|
// This method gets called by the runtime. Use this method to add services to the container.
|
||||
|
public void ConfigureServices(IServiceCollection services) |
||||
|
{ |
||||
|
//services.AddControllersWithViews();
|
||||
|
|
||||
|
services.AddControllersWithViews().AddRazorRuntimeCompilation(); |
||||
|
|
||||
|
//使用Session
|
||||
|
services.AddSession(); |
||||
|
|
||||
|
services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme) |
||||
|
.AddCookie(CookieAuthenticationDefaults.AuthenticationScheme, options => |
||||
|
{ |
||||
|
options.LoginPath = new PathString("/Login/Index"); |
||||
|
options.LogoutPath = new PathString("/Login/Logout"); |
||||
|
options.AccessDeniedPath = new PathString("/Home/Error"); |
||||
|
options.Cookie.Name = "_AMESCookie"; |
||||
|
//options.Cookie.SameSite = SameSiteMode.None;
|
||||
|
|
||||
|
//当Cookie 过期时间已达一半时,是否重置为ExpireTimeSpan
|
||||
|
options.SlidingExpiration = true; |
||||
|
options.Cookie.HttpOnly = true; |
||||
|
}); |
||||
|
|
||||
|
//添加HttpClient相关
|
||||
|
var types = typeof(Startup).Assembly.GetTypes() |
||||
|
.Where(type => type.IsInterface |
||||
|
&& ((System.Reflection.TypeInfo)type).ImplementedInterfaces != null |
||||
|
&& type.GetInterfaces().Any(a => a.FullName == typeof(IHttpApi).FullName)); |
||||
|
foreach (var type in types) |
||||
|
{ |
||||
|
services.AddHttpApi(type); |
||||
|
services.ConfigureHttpApi(type, o => { |
||||
|
o.HttpHost = new Uri(AppSetting.Setting.ApiUrl); |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
|
||||
|
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
|
||||
|
public void Configure(IApplicationBuilder app, IWebHostEnvironment env) |
||||
|
{ |
||||
|
if (env.IsDevelopment()) |
||||
|
{ |
||||
|
app.UseDeveloperExceptionPage(); |
||||
|
} |
||||
|
else |
||||
|
{ |
||||
|
app.UseExceptionHandler("/Home/Error"); |
||||
|
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
|
||||
|
app.UseHsts(); |
||||
|
} |
||||
|
|
||||
|
//app.UseHttpsRedirection();
|
||||
|
app.UseStaticFiles(); |
||||
|
app.UseRouting(); |
||||
|
app.UseAuthorization(); |
||||
|
app.UseAuthentication(); |
||||
|
app.UseSession(); |
||||
|
|
||||
|
app.UseEndpoints(endpoints => |
||||
|
{ |
||||
|
endpoints.MapControllerRoute( |
||||
|
name: "default", |
||||
|
pattern: "{controller=Login}/{action=Index}/{id?}"); |
||||
|
}); |
||||
|
|
||||
|
app.UseCookiePolicy(); |
||||
|
} |
||||
|
} |
||||
|
} |
@ -0,0 +1,5 @@ |
|||||
|
|
||||
|
2021-09-01 Updated by Marvin |
||||
|
****************************************************************************** |
||||
|
1.修改admin.css,調整左上方LOGO區域大小與菜單對齊.layui-layout-admin .layui-header .logo a |
||||
|
2.修改admin.css,調整菜單點選右邊內容區域菜單顯示大小.layui-page-content .layui-tab-title |
@ -0,0 +1,340 @@ |
|||||
|
@model AMESCoreStudio.WebApi.BulletinDTO |
||||
|
|
||||
|
|
||||
|
@{ ViewData["Title"] = "Create"; |
||||
|
Layout = "~/Views/Shared/_FormLayout.cshtml"; } |
||||
|
|
||||
|
<style> |
||||
|
.control-label { |
||||
|
justify-content: flex-end !important; |
||||
|
} |
||||
|
</style> |
||||
|
|
||||
|
<div class="row"> |
||||
|
<div class="col-sm-12"> |
||||
|
<form enctype="multipart/form-data" method="post" asp-action="Save"> |
||||
|
<div asp-validation-summary="ModelOnly" class="text-danger"></div> |
||||
|
<div class="form-group form-inline my-sm-1"> |
||||
|
<label asp-for="BulletinTitle" class="control-label col-sm-3"></label> |
||||
|
<input asp-for="BulletinTitle" class="form-control col-sm-9" placeholder="請輸入公告標題" /> |
||||
|
<span asp-validation-for="BulletinTitle" class="text-danger offset-sm-3 my-sm-1"></span> |
||||
|
</div> |
||||
|
<div class="form-group form-inline my-sm-1"> |
||||
|
<label asp-for="BulletinContent" class="control-label col-sm-3"></label> |
||||
|
<input asp-for="BulletinContent" class="form-control col-sm-9" placeholder="請輸入公告內容" /> |
||||
|
<span asp-validation-for="BulletinContent" class="text-danger offset-sm-3 my-sm-1"></span> |
||||
|
</div> |
||||
|
<div class="form-group form-inline my-sm-1"> |
||||
|
<label asp-for="BulletinTime" class="control-label col-sm-3"></label> |
||||
|
<input id="bdt" asp-for="BulletinTime" class="layui-input layui-input-sm" autocomplete="off" placeholder="請輸入公告日期" /> |
||||
|
<span asp-validation-for="BulletinTime" class="text-danger offset-sm-3 my-sm-1"></span> |
||||
|
</div> |
||||
|
<div class="form-group form-inline my-sm-1"> |
||||
|
<label asp-for="BulletinDays" class="control-label col-sm-3"></label> |
||||
|
<input asp-for="BulletinDays" class="form-control col-sm-9" placeholder="請輸入公告天數" /> |
||||
|
<span asp-validation-for="BulletinDays" class="text-danger offset-sm-3 my-sm-1"></span> |
||||
|
</div> |
||||
|
<span style="color: firebrick; |
||||
|
word-break: break-all; |
||||
|
" class="text-danger offset-sm-3">@Html.ValidationMessage("error")</span> |
||||
|
<div class="form-group"> |
||||
|
<input type="submit" value="保存" class="btn btn-primary offset-sm-3" /> |
||||
|
</div> |
||||
|
|
||||
|
</form> |
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
@section Scripts { |
||||
|
@{ await Html.RenderPartialAsync("_ValidationScriptsPartial"); |
||||
|
await Html.RenderPartialAsync("_FileinputScriptsPartial"); } |
||||
|
|
||||
|
|
||||
|
<script type="text/javascript"> |
||||
|
$('#bdt').val(''); |
||||
|
layui.use('laydate', function () { |
||||
|
var laydate = layui.laydate; |
||||
|
|
||||
|
//常规用法 |
||||
|
laydate.render({ |
||||
|
elem: '#test1' |
||||
|
}); |
||||
|
|
||||
|
//国际版 |
||||
|
laydate.render({ |
||||
|
elem: '#test1-1' |
||||
|
, lang: 'en' |
||||
|
}); |
||||
|
|
||||
|
//年选择器 |
||||
|
laydate.render({ |
||||
|
elem: '#test2' |
||||
|
, type: 'year' |
||||
|
}); |
||||
|
|
||||
|
//年月选择器 |
||||
|
laydate.render({ |
||||
|
elem: '#test3' |
||||
|
, type: 'month' |
||||
|
}); |
||||
|
|
||||
|
//时间选择器 |
||||
|
laydate.render({ |
||||
|
elem: '#test4' |
||||
|
, type: 'time' |
||||
|
}); |
||||
|
|
||||
|
//日期时间选择器 |
||||
|
laydate.render({ |
||||
|
elem: '#test5' |
||||
|
, type: 'datetime' |
||||
|
, lang: 'en' |
||||
|
}); |
||||
|
|
||||
|
//日期范围 |
||||
|
laydate.render({ |
||||
|
elem: '#test6' |
||||
|
//设置开始日期、日期日期的 input 选择器 |
||||
|
//数组格式为 2.6.6 开始新增,之前版本直接配置 true 或任意分割字符即可 |
||||
|
, range: ['#test-startDate-1', '#test-endDate-1'] |
||||
|
}); |
||||
|
|
||||
|
//年范围 |
||||
|
laydate.render({ |
||||
|
elem: '#test7' |
||||
|
, type: 'year' |
||||
|
, range: true |
||||
|
}); |
||||
|
|
||||
|
//年月范围 |
||||
|
laydate.render({ |
||||
|
elem: '#test8' |
||||
|
, type: 'month' |
||||
|
, range: true |
||||
|
}); |
||||
|
|
||||
|
//时间范围 |
||||
|
laydate.render({ |
||||
|
elem: '#test9' |
||||
|
, type: 'time' |
||||
|
, range: true |
||||
|
}); |
||||
|
|
||||
|
//日期时间范围 |
||||
|
laydate.render({ |
||||
|
elem: '#test10' |
||||
|
, type: 'datetime' |
||||
|
, range: true |
||||
|
}); |
||||
|
|
||||
|
//自定义格式 |
||||
|
laydate.render({ |
||||
|
elem: '#test11' |
||||
|
, format: 'yyyy年MM月dd日' |
||||
|
}); |
||||
|
laydate.render({ |
||||
|
elem: '#test12' |
||||
|
, format: 'dd/MM/yyyy' |
||||
|
}); |
||||
|
laydate.render({ |
||||
|
elem: '#test13' |
||||
|
, format: 'yyyyMMdd' |
||||
|
}); |
||||
|
laydate.render({ |
||||
|
elem: '#test14' |
||||
|
, type: 'time' |
||||
|
, format: 'H点m分' |
||||
|
}); |
||||
|
laydate.render({ |
||||
|
elem: '#test15' |
||||
|
, type: 'month' |
||||
|
, range: '~' |
||||
|
, format: 'yyyy-MM' |
||||
|
}); |
||||
|
laydate.render({ |
||||
|
elem: '#test16' |
||||
|
, type: 'datetime' |
||||
|
, range: '到' |
||||
|
, format: 'yyyy年M月d日H时m分s秒' |
||||
|
}); |
||||
|
|
||||
|
//开启公历节日 |
||||
|
laydate.render({ |
||||
|
elem: '#test17' |
||||
|
, calendar: true |
||||
|
}); |
||||
|
|
||||
|
//自定义重要日 |
||||
|
laydate.render({ |
||||
|
elem: '#test18' |
||||
|
, mark: { |
||||
|
'0-10-14': '生日' |
||||
|
, '0-12-31': '跨年' //每年的日期 |
||||
|
, '0-0-10': '工资' //每月某天 |
||||
|
, '0-0-15': '月中' |
||||
|
, '2017-8-15': '' //如果为空字符,则默认显示数字+徽章 |
||||
|
, '2099-10-14': '呵呵' |
||||
|
} |
||||
|
, done: function (value, date) { |
||||
|
if (date.year === 2017 && date.month === 8 && date.date === 15) { //点击2017年8月15日,弹出提示语 |
||||
|
layer.msg('这一天是:中国人民抗日战争胜利72周年'); |
||||
|
} |
||||
|
} |
||||
|
}); |
||||
|
|
||||
|
//限定可选日期 |
||||
|
var ins22 = laydate.render({ |
||||
|
elem: '#test-limit1' |
||||
|
, min: '2016-10-14' |
||||
|
, max: '2080-10-14' |
||||
|
, ready: function () { |
||||
|
ins22.hint('日期可选值设定在 <br> 2016-10-14 到 2080-10-14'); |
||||
|
} |
||||
|
}); |
||||
|
|
||||
|
//前后若干天可选,这里以7天为例 |
||||
|
laydate.render({ |
||||
|
elem: '#test-limit2' |
||||
|
, min: -7 |
||||
|
, max: 7 |
||||
|
}); |
||||
|
|
||||
|
//限定可选时间 |
||||
|
laydate.render({ |
||||
|
elem: '#test-limit3' |
||||
|
, type: 'time' |
||||
|
, min: '09:30:00' |
||||
|
, max: '17:30:00' |
||||
|
, btns: ['clear', 'confirm'] |
||||
|
}); |
||||
|
|
||||
|
//同时绑定多个 |
||||
|
lay('.test-item').each(function () { |
||||
|
laydate.render({ |
||||
|
elem: this |
||||
|
, trigger: 'click' |
||||
|
}); |
||||
|
}); |
||||
|
|
||||
|
//初始赋值 |
||||
|
laydate.render({ |
||||
|
elem: '#test19' |
||||
|
, value: '1989-10-14' |
||||
|
, isInitValue: true |
||||
|
}); |
||||
|
|
||||
|
//选中后的回调 |
||||
|
laydate.render({ |
||||
|
elem: '#test20' |
||||
|
, done: function (value, date) { |
||||
|
layer.alert('你选择的日期是:' + value + '<br>获得的对象是' + JSON.stringify(date)); |
||||
|
} |
||||
|
}); |
||||
|
|
||||
|
//日期切换的回调 |
||||
|
laydate.render({ |
||||
|
elem: '#test21' |
||||
|
, change: function (value, date) { |
||||
|
layer.msg('你选择的日期是:' + value + '<br><br>获得的对象是' + JSON.stringify(date)); |
||||
|
} |
||||
|
}); |
||||
|
//不出现底部栏 |
||||
|
laydate.render({ |
||||
|
elem: '#test22' |
||||
|
, showBottom: false |
||||
|
}); |
||||
|
|
||||
|
//只出现确定按钮 |
||||
|
laydate.render({ |
||||
|
elem: '#test23' |
||||
|
, btns: ['confirm'] |
||||
|
}); |
||||
|
|
||||
|
//自定义事件 |
||||
|
laydate.render({ |
||||
|
elem: '#test24' |
||||
|
, trigger: 'mousedown' |
||||
|
}); |
||||
|
|
||||
|
//点我触发 |
||||
|
laydate.render({ |
||||
|
elem: '#test25' |
||||
|
, eventElem: '#test25-1' |
||||
|
, trigger: 'click' |
||||
|
}); |
||||
|
|
||||
|
//双击我触发 |
||||
|
lay('#test26-1').on('dblclick', function () { |
||||
|
laydate.render({ |
||||
|
elem: '#test26' |
||||
|
, show: true |
||||
|
, closeStop: '#test26-1' |
||||
|
}); |
||||
|
}); |
||||
|
|
||||
|
//日期只读 |
||||
|
laydate.render({ |
||||
|
elem: '#test27' |
||||
|
, trigger: 'click' |
||||
|
}); |
||||
|
|
||||
|
//非input元素 |
||||
|
laydate.render({ |
||||
|
elem: '#test28' |
||||
|
}); |
||||
|
|
||||
|
//墨绿主题 |
||||
|
laydate.render({ |
||||
|
elem: '#test29' |
||||
|
, theme: 'molv' |
||||
|
}); |
||||
|
|
||||
|
//自定义颜色 |
||||
|
laydate.render({ |
||||
|
elem: '#test30' |
||||
|
, theme: '#393D49' |
||||
|
}); |
||||
|
|
||||
|
//格子主题 |
||||
|
laydate.render({ |
||||
|
elem: '#test31' |
||||
|
, theme: 'grid' |
||||
|
}); |
||||
|
|
||||
|
|
||||
|
//直接嵌套显示 |
||||
|
laydate.render({ |
||||
|
elem: '#test-n1' |
||||
|
, position: 'static' |
||||
|
}); |
||||
|
laydate.render({ |
||||
|
elem: '#test-n2' |
||||
|
, position: 'static' |
||||
|
, lang: 'en' |
||||
|
}); |
||||
|
laydate.render({ |
||||
|
elem: '#test-n3' |
||||
|
, type: 'month' |
||||
|
, position: 'static' |
||||
|
}); |
||||
|
laydate.render({ |
||||
|
elem: '#test-n4' |
||||
|
, type: 'time' |
||||
|
, position: 'static' |
||||
|
}); |
||||
|
}); |
||||
|
</script> |
||||
|
|
||||
|
<script type="text/javascript"> |
||||
|
$(document).ready(function () { |
||||
|
var error = '@Html.ValidationMessage("error")'; |
||||
|
if ($(error).text() != '') { |
||||
|
parent.hg.msg(error); |
||||
|
} |
||||
|
|
||||
|
document.getElementById('bdt').value = ''; |
||||
|
}); |
||||
|
</script> |
||||
|
|
||||
|
|
||||
|
} |
@ -0,0 +1,66 @@ |
|||||
|
@model AMESCoreStudio.WebApi.BulletinDTO |
||||
|
|
||||
|
@{ |
||||
|
ViewData["Title"] = "Edit"; |
||||
|
Layout = "~/Views/Shared/_FormLayout.cshtml"; |
||||
|
} |
||||
|
|
||||
|
<style> |
||||
|
.control-label { |
||||
|
justify-content: flex-end !important; |
||||
|
} |
||||
|
</style> |
||||
|
|
||||
|
<div class="row"> |
||||
|
<div class="col-sm-12"> |
||||
|
<form enctype="multipart/form-data" method="post" asp-action="Save"> |
||||
|
<div asp-validation-summary="ModelOnly" class="text-danger"></div> |
||||
|
<input type="hidden" asp-for="BulletinID" /> |
||||
|
<input type="hidden" asp-for="CreateUserId" /> |
||||
|
<input type="hidden" asp-for="CreateDateTime" /> |
||||
|
<input type="hidden" asp-for="UpdateUserId" /> |
||||
|
<input type="hidden" asp-for="UpdateDateTime" /> |
||||
|
|
||||
|
<div class="form-group form-inline my-sm-1"> |
||||
|
<label asp-for="BulletinTitle" class="control-label col-sm-3"></label> |
||||
|
<input asp-for="BulletinTitle" class="form-control col-sm-9" placeholder="請輸入公告標題" /> |
||||
|
<span asp-validation-for="BulletinTitle" class="text-danger offset-sm-3 my-sm-1"></span> |
||||
|
</div> |
||||
|
<div class="form-group form-inline my-sm-1"> |
||||
|
<label asp-for="BulletinContent" class="control-label col-sm-3"></label> |
||||
|
<input asp-for="BulletinContent" class="form-control col-sm-9" placeholder="請輸入公告內容" /> |
||||
|
<span asp-validation-for="BulletinContent" class="text-danger offset-sm-3 my-sm-1"></span> |
||||
|
</div> |
||||
|
<div class="form-group form-inline my-sm-1"> |
||||
|
<label asp-for="BulletinTime" class="control-label col-sm-3"></label> |
||||
|
<input asp-for="BulletinTime" class="form-control col-sm-9" /> |
||||
|
<span asp-validation-for="BulletinTime" class="text-danger offset-sm-3 my-sm-1"></span> |
||||
|
</div> |
||||
|
<div class="form-group form-inline my-sm-1"> |
||||
|
<label asp-for="BulletinDays" class="control-label col-sm-3"></label> |
||||
|
<input asp-for="BulletinDays" class="form-control col-sm-9" placeholder="請輸入公告天數" /> |
||||
|
<span asp-validation-for="BulletinDays" class="text-danger offset-sm-3 my-sm-1"></span> |
||||
|
</div> |
||||
|
<div class="form-group"> |
||||
|
<input type="submit" value="保存" class="btn btn-primary offset-sm-3" /> |
||||
|
</div> |
||||
|
|
||||
|
</form> |
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
@section Scripts { |
||||
|
@{ |
||||
|
await Html.RenderPartialAsync("_ValidationScriptsPartial"); |
||||
|
await Html.RenderPartialAsync("_FileinputScriptsPartial"); |
||||
|
} |
||||
|
|
||||
|
<script type="text/javascript"> |
||||
|
$(document).ready(function () { |
||||
|
var error = '@Html.ValidationMessage("error")'; |
||||
|
if ($(error).text() != '') { |
||||
|
parent.hg.msg(error); |
||||
|
} |
||||
|
}); |
||||
|
</script> |
||||
|
} |
@ -0,0 +1,119 @@ |
|||||
|
@{ |
||||
|
ViewData["Title"] = "公告資料管理"; |
||||
|
Layout = "~/Views/Shared/_AMESLayout.cshtml"; |
||||
|
} |
||||
|
|
||||
|
<div class="layui-card"> |
||||
|
<div class="layui-card-header"> |
||||
|
<div class="layui-form"> |
||||
|
<div class="layui-form-item "> |
||||
|
<div class="layui-inline"><i class="fa fa-file-text-o fa-fw"></i> @ViewBag.Title</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="layui-card-body"> |
||||
|
<table class="layui-hide" id="test" lay-filter="test"></table> |
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
@section Scripts{ |
||||
|
<script type="text/javascript"> |
||||
|
//监听表单提交事件 |
||||
|
hg.form.onsubmit('querysubmit', function (data) { |
||||
|
table && table.reload(data); |
||||
|
}); |
||||
|
var tableCols = [[ |
||||
|
{ |
||||
|
field: 'bulletinID', |
||||
|
width: 160, |
||||
|
title: '編號', |
||||
|
sort: true |
||||
|
}, |
||||
|
{ |
||||
|
field: 'bulletinTitle', |
||||
|
width: 200, |
||||
|
title: '公告標題' |
||||
|
}, |
||||
|
{ |
||||
|
field: 'bulletinContent', |
||||
|
minWidth: 200, |
||||
|
title: '公告內容' |
||||
|
}, |
||||
|
{ |
||||
|
field: 'bulletinTime', |
||||
|
title: '公告時間', |
||||
|
width: 160, |
||||
|
sort: true, |
||||
|
templet: function (d) { |
||||
|
return layui.util.toDateString(d.bulletinTime, "yyyy-MM-dd"); |
||||
|
} |
||||
|
}, |
||||
|
{ |
||||
|
field: 'bulletinDays', |
||||
|
title: '公告天數', |
||||
|
width: 160, |
||||
|
sort: true |
||||
|
}, |
||||
|
{ |
||||
|
field: 'right', |
||||
|
width: 200, |
||||
|
title: '操作', |
||||
|
fixed: 'right', |
||||
|
templet: function (d) { |
||||
|
return '<a class="layui-btn layui-btn-normal layui-btn-xs layui-icon layui-icon-edit" lay-event="edit">修改</a> <a class="layui-btn layui-btn-danger layui-btn-xs layui-icon layui-icon-pause" lay-event="stop">停用</a> <a class="layui-btn layui-btn-danger layui-btn-xs layui-icon layui-icon-delete" lay-event="del">删除</a>' |
||||
|
} |
||||
|
}] |
||||
|
]; |
||||
|
|
||||
|
//通过行tool编辑,lay-event="edit" |
||||
|
function edit(obj) { |
||||
|
if (obj.data.bulletinID) { |
||||
|
hg.open('修改公告', '/Bulletin/Edit/' + obj.data.bulletinID, 640, 480); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
//通过行tool编辑,lay-event="edit" |
||||
|
function stop(obj) { |
||||
|
if (obj.data.bulletinID) { |
||||
|
hg.open('修改公告', '/Bulletin/Edit/' + obj.data.bulletinID, 640, 480); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
//通过行tool删除,lay-event="del" |
||||
|
function del(obj) { |
||||
|
if (obj.data.bulletinID) { |
||||
|
hg.confirm("公告:" + obj.data.bulletinTitle + ",确定要删除吗?", function () { |
||||
|
$.ajax({ |
||||
|
url: '/Bulletin/Delete', |
||||
|
data: { id: obj.data.bulletinID }, |
||||
|
type: 'POST', |
||||
|
success: function (data) { |
||||
|
if (data.success) { |
||||
|
obj.del(); //只删本地数据 |
||||
|
hg.msghide("删除成功!"); |
||||
|
} |
||||
|
else { |
||||
|
hg.msg(data.msg); |
||||
|
} |
||||
|
}, |
||||
|
error: function () { |
||||
|
hg.msg("网络请求失败!"); |
||||
|
} |
||||
|
}); |
||||
|
}); |
||||
|
} |
||||
|
} |
||||
|
var toolbar = [{ |
||||
|
text: '新增', |
||||
|
layuiicon: '', |
||||
|
class: 'layui-btn-normal', |
||||
|
handler: function () { |
||||
|
hg.open('新增公告', '/Bulletin/Create', 640, 480); |
||||
|
|
||||
|
} |
||||
|
} |
||||
|
]; |
||||
|
//基本数据表格 |
||||
|
var table = hg.table.datatable('test', '公告資料管理', '/Bulletin/GetBulletins', {}, tableCols, toolbar, true, 'full-100', ['filter', 'print', 'exports']); |
||||
|
</script> |
||||
|
} |
@ -0,0 +1,185 @@ |
|||||
|
@{ |
||||
|
ViewData["Title"] = "AMES 1.0.0"; |
||||
|
} |
||||
|
|
||||
|
<!DOCTYPE html> |
||||
|
|
||||
|
<html> |
||||
|
|
||||
|
<head> |
||||
|
<meta charset="UTF-8"> |
||||
|
<title>@ViewData["Title"]</title> |
||||
|
<meta name="renderer" content="webkit|ie-comp|ie-stand"> |
||||
|
<meta http-equiv="hg-UA-Compatible" content="IE=edge,chrome=1"> |
||||
|
<meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no"> |
||||
|
<meta http-equiv="Cache-Control" content="no-siteapp" /> |
||||
|
<link rel="stylesheet" href="~/css/font-awesome.min.css"> |
||||
|
<link rel="stylesheet" href="~/lib/layui/css/layui.css" media="all"> |
||||
|
<link rel="stylesheet" href="~/lib/admin/admin.css" media="all"> |
||||
|
<link rel="stylesheet" href="~/lib/Scrollbar/jquery.scrollbar.css"> |
||||
|
<link rel='stylesheet' href='~/lib/nprogress/nprogress.css' /> |
||||
|
<script type="text/javascript" src="~/lib/layui/layui.js"></script> |
||||
|
<script type="text/javascript" src="~/lib/admin/admin.js"></script> |
||||
|
|
||||
|
<!-- 让IE8/9支持媒体查询,从而兼容栅格 --> |
||||
|
<!--[if lt IE 9]> |
||||
|
<script src="https://cdn.staticfile.org/html5shiv/r29/html5.min.js"></script> |
||||
|
<script src="https://cdn.staticfile.org/respond.js/1.4.2/respond.min.js"></script> |
||||
|
<![endif]--> |
||||
|
</head> |
||||
|
|
||||
|
<body class="layui-layout-body" style="display: none;"> |
||||
|
<div class="layui-layout layui-layout-admin"> |
||||
|
<!-- 顶部 --> |
||||
|
<div class="layui-header" align="left"> |
||||
|
<div class="logo"> |
||||
|
<a href="javascript:;" onclick="$('.layui-tab-title .home').eq(0).click();"> |
||||
|
<img src="~/images/logo.png" class="layui-nav-img"> |
||||
|
<span class="layui-hide-xs">@ViewData["Title"]</span> |
||||
|
</a> |
||||
|
</div> |
||||
|
<ul class="layui-nav left layui-hide-xs" lay-filter="nav-top"> |
||||
|
<li meun_id="0" class="layui-nav-item layui-this"><a href="javascript:;">製造執行系統</a></li> |
||||
|
</ul> |
||||
|
<ul class="layui-nav left layui-hide-sm layui-hide-md layui-hide-lg" lay-filter="nav-top"> |
||||
|
<li class="layui-nav-item"> |
||||
|
<a href="javascript:;">菜单</a> |
||||
|
<dl class="layui-nav-child"> |
||||
|
<dd meun_id="0" lay-unselect><a onclick=""><i class="fa fa-pencil-square fa-fw"></i>製造執行系統</a></dd> |
||||
|
</dl> |
||||
|
</li> |
||||
|
</ul> |
||||
|
<ul class="layui-nav right"> |
||||
|
<li class="layui-nav-item layui-hide-xs" lay-unselect> |
||||
|
<a href="javascript:;" hg-event="fullscreen" title="全屏"> |
||||
|
<i class="fa fa-arrows-alt fa-lg"></i> |
||||
|
</a> |
||||
|
</li> |
||||
|
<li class="layui-nav-item layui-hide-xs" lay-unselect> |
||||
|
<a href="javascript:;" onclick="cleancache()" hg-event="delSkinConfig" title="清除缓存"> |
||||
|
<i class="fa fa-trash-o fa-lg"></i> |
||||
|
</a> |
||||
|
</li> |
||||
|
<li class="layui-nav-item"> |
||||
|
<a href="javascript:;"><img src="~/images/touxiang.jpg" class="layui-nav-img"><span> @ViewData["Name"] </span></a> |
||||
|
<dl class="layui-nav-child"> |
||||
|
<dd lay-unselect><a href="/Login/LoginOut"><i class="fa fa-sign-out fa-fw"></i>退出</a></dd> |
||||
|
</dl> |
||||
|
</li> |
||||
|
<li class="layui-nav-item layui-hide-xs" lay-unselect> |
||||
|
<a href="javascript:;" hg-event="skinConfig"> |
||||
|
<i class="fa fa-ellipsis-v fa-lg"></i> |
||||
|
</a> |
||||
|
</li> |
||||
|
</ul> |
||||
|
</div> |
||||
|
|
||||
|
<!-- 左侧菜单 --> |
||||
|
<div class="layui-left-nav scrollBox"> |
||||
|
<div id="side-nav"> |
||||
|
<!-- meun_id=0;UI组件 --> |
||||
|
<ul id="nav" class="layui-tab-item layui-show"> |
||||
|
<li> |
||||
|
<a> |
||||
|
<i class="fa fa-cog fa-fw"></i><cite>開發測試範例</cite><i class="fa fa-angle-down fa-fw nav_right"></i> |
||||
|
</a> |
||||
|
<ul class="sub-menu"> |
||||
|
<li class="sub-tab" hg-title="公告資料維護" hg-nav="/Bulletin/Index"> |
||||
|
<a><i class="fa fa-book fa-fw"></i><cite>公告資料維護</cite></a> |
||||
|
</li> |
||||
|
</ul> |
||||
|
</li> |
||||
|
<li class="open"> |
||||
|
<a class="border active"> |
||||
|
<i class="fa fa-star fa-fw"></i><cite>系統管理模組</cite><i class="fa fa-angle-up fa-fw nav_right"></i> |
||||
|
</a> |
||||
|
<ul class="sub-menu" style="display: block;"> |
||||
|
<li class="sub-tab" hg-title="系統資料維護" hg-nav="/SYS/SYS001"> |
||||
|
<a><i class="fa fa-key fa-fw"></i><cite>系統資料維護</cite></a> |
||||
|
</li> |
||||
|
<li class="sub-tab" hg-title="模組資料維護" hg-nav="/SYS/SYS002"> |
||||
|
<a><i class="fa fa-key fa-fw"></i><cite>模組資料維護</cite></a> |
||||
|
</li> |
||||
|
<li class="sub-tab" hg-title="功能資料維護" hg-nav="/SYS/SYS003"> |
||||
|
<a><i class="fa fa-key fa-fw"></i><cite>功能資料維護</cite></a> |
||||
|
</li> |
||||
|
<li class="sub-tab" hg-title="角色資料維護" hg-nav="/SYS/SYS004"> |
||||
|
<a><i class="fa fa-key fa-fw"></i><cite>角色資料維護</cite></a> |
||||
|
</li> |
||||
|
<li class="sub-tab" hg-title="角色模组維護" hg-nav="/SYS/SYS005"> |
||||
|
<a><i class="fa fa-key fa-fw"></i><cite>角色模组維護</cite></a> |
||||
|
</li> |
||||
|
<li class="sub-tab" hg-title="角色功能維護" hg-nav="/SYS/SYS006"> |
||||
|
<a><i class="fa fa-key fa-fw"></i><cite>角色功能維護</cite></a> |
||||
|
</li> |
||||
|
<li class="sub-tab" hg-title="部门資料維護" hg-nav="/SYS/SYS007"> |
||||
|
<a><i class="fa fa-user-o fa-fw"></i><cite>部门資料維護</cite></a> |
||||
|
</li> |
||||
|
<li class="sub-tab" hg-title="用户資料維護" hg-nav="/SYS/SYS008"> |
||||
|
<a><i class="fa fa-user-o fa-fw"></i><cite>用户資料維護</cite></a> |
||||
|
</li> |
||||
|
</ul> |
||||
|
</li> |
||||
|
</ul> |
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
<!-- 内容 --> |
||||
|
<div class="layui-page-content"> |
||||
|
<div class="layui-tab tab" lay-unauto lay-allowClose="true" lay-filter="xbs_tab"> |
||||
|
<span class="indent-tab left" title="侧边伸缩"><i class="fa fa-dedent fa-lg"></i></span> |
||||
|
<div class="indent-tab left fa fa-step-backward fa-fw"></div> |
||||
|
<ul class="layui-nav"> |
||||
|
<li class="layui-nav-item"> |
||||
|
<a href="javascript:;"><i class="fa fa-dot-circle-o fa-fw"></i> 页面操作</a> |
||||
|
<dl class="layui-nav-child"> |
||||
|
<dd lay-unselect data-page-close="this"> |
||||
|
<a href="javascript:;"><i class="fa fa-refresh fa-fw"></i> 刷新当前</a> |
||||
|
</dd> |
||||
|
<dd lay-unselect data-page-close="other"> |
||||
|
<a href="javascript:;"><i class="fa fa-ban fa-fw"></i> 关闭其他</a> |
||||
|
</dd> |
||||
|
<dd lay-unselect data-page-close="all"> |
||||
|
<a href="javascript:;"><i class="fa fa-power-off fa-fw"></i> 关闭全部</a> |
||||
|
</dd> |
||||
|
</dl> |
||||
|
</li> |
||||
|
</ul> |
||||
|
<div class="indent-tab right fa fa-step-forward fa-fw"></div> |
||||
|
<ul class="layui-tab-title"> |
||||
|
<li class="home layui-this"><i class="fa fa-home fa-fw"></i></li> |
||||
|
</ul> |
||||
|
<div class="layui-tab-content"> |
||||
|
<div class="layui-tab-item layui-show"> |
||||
|
<iframe src='/Home/Index' frameborder="0" scrolling="yes" class="hg-iframe"></iframe> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
|
||||
|
<script> |
||||
|
//注意:element未作封装处理,使用layui.use引用 |
||||
|
layui.use(['element'], function () { |
||||
|
var element = layui.element; |
||||
|
console.log('触发了layui.element'); |
||||
|
|
||||
|
}); |
||||
|
function cleancache() { |
||||
|
var a = hg.load(function () { |
||||
|
var that = this; |
||||
|
setTimeout(function () { |
||||
|
//that.close(); //关闭加载层 |
||||
|
a.close(); |
||||
|
hg.msghide('清除服务器缓存成功.'); |
||||
|
}, 2000); |
||||
|
}) |
||||
|
}</script> |
||||
|
<script type="text/javascript" src="~/lib/admin/jquery-1.9.1.min.js"></script> |
||||
|
<script type="text/javascript" src="~/lib/Scrollbar/jquery.scrollBar.js"></script> |
||||
|
<!-- 请求进度条插件 --> |
||||
|
<script src='~/lib/nprogress/nprogress.js'></script> |
||||
|
</body> |
||||
|
|
||||
|
</html> |
@ -0,0 +1,23 @@ |
|||||
|
@{ |
||||
|
ViewData["Title"] = "AMES 1.0.0"; |
||||
|
} |
||||
|
<!DOCTYPE html> |
||||
|
|
||||
|
<html> |
||||
|
<head> |
||||
|
<meta name="viewport" content="width=device-width" /> |
||||
|
<title>Home</title> |
||||
|
<style> |
||||
|
html, body { |
||||
|
height: 98%; |
||||
|
} |
||||
|
</style> |
||||
|
</head> |
||||
|
<body> |
||||
|
<div style="text-align:center; background:#fff;width:100%;height:100%;overflow:hidden"> |
||||
|
<div style="margin-top:16%;"> |
||||
|
<img src="~/images/welcome.png" /> |
||||
|
</div> |
||||
|
</div> |
||||
|
</body> |
||||
|
</html> |
@ -0,0 +1,6 @@ |
|||||
|
@{ |
||||
|
ViewData["Title"] = "Privacy Policy"; |
||||
|
} |
||||
|
<h1>@ViewData["Title"]</h1> |
||||
|
|
||||
|
<p>Use this page to detail your site's privacy policy.</p> |
@ -0,0 +1,25 @@ |
|||||
|
|
||||
|
@{ |
||||
|
ViewData["Title"] = "ShowMsg"; |
||||
|
Layout = "~/Views/Shared/_AMESLayout.cshtml"; |
||||
|
} |
||||
|
|
||||
|
@section Scripts { |
||||
|
<script type="text/javascript"> |
||||
|
//关闭弹出层 |
||||
|
hg.close(); |
||||
|
hg.msg('@ViewBag.Msg'); |
||||
|
@if(ViewBag.Data == "") |
||||
|
{ |
||||
|
//刷新列表 |
||||
|
@: parent.table && parent.table.reload(); |
||||
|
} |
||||
|
else |
||||
|
{ |
||||
|
//本地修改 |
||||
|
@: parent.table && parent.table.update('@Html.Raw(ViewBag.Data)'); |
||||
|
} |
||||
|
</script> |
||||
|
} |
||||
|
|
||||
|
|
@ -0,0 +1,65 @@ |
|||||
|
@model LoginViewModel |
||||
|
@{ |
||||
|
ViewData["Title"] = "AMES 1.0.0"; |
||||
|
Layout = null; |
||||
|
} |
||||
|
|
||||
|
<!DOCTYPE html> |
||||
|
|
||||
|
<html xmlns="http://www.w3.org/1999/xhtml"> |
||||
|
<head> |
||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
||||
|
<title>@ViewData["Title"]</title> |
||||
|
<link rel="stylesheet" href="~/css/style.css"> |
||||
|
<link rel="stylesheet" href="~/lib/layui/css/layui.css" media="all"> |
||||
|
<script type="text/javascript" src="~/lib/admin/jquery-1.9.1.min.js"></script> |
||||
|
<script type="text/javascript" src="~/lib/layui/layui.js"></script> |
||||
|
<script>var device = layui.device(); |
||||
|
if (device.android || device.ios || device.weixin) { |
||||
|
location.href = "/Login/Index"; |
||||
|
} |
||||
|
console.log(device);</script> |
||||
|
</head> |
||||
|
|
||||
|
<body class="layui-login"> |
||||
|
<form id="frmlogin" action="/Login/Index" method="post" class="layui-form"> |
||||
|
@Html.AntiForgeryToken() |
||||
|
<div class="login-wrap"> |
||||
|
<div class="login-right"> |
||||
|
<div class="login-cir"></div> |
||||
|
<div class="login-logo" alt="AMES"></div> |
||||
|
<div class="login-form" style="padding: 20px 30px"> |
||||
|
<div class="col"> |
||||
|
@Html.TextBoxFor(model => model.LoginNo, new { @id = "userid", @class = "login-input", @placeholder = "用戶", @lay_verify = "required", @lay_verType = "tips" }) |
||||
|
@*<input name="username" lay-verify="required" placeholder="用户名" type="text" class="login-input">*@ |
||||
|
<label class="icon user" for="txtUserName"></label> |
||||
|
</div> |
||||
|
<div class="col"> |
||||
|
@Html.TextBoxFor(model => model.LoginPassword, new { @id = "userid", @class = "login-input", @placeholder = "密碼", @lay_verify = "required", @lay_verType = "tips", @type = "password" }) |
||||
|
@*<input name="password" lay-verify="required" placeholder="密碼" type="password" lay-verType="tips" class="login-input">*@ |
||||
|
<label class="icon pwd" for="txtPassword" ></label> |
||||
|
</div> |
||||
|
|
||||
|
<div class="col"> |
||||
|
<input type="submit" value="登錄" lay-submit="" lay-filter="login" class="login-btn"> |
||||
|
</div> |
||||
|
<span style="color:firebrick;word-break: break-all;">@Html.ValidationSummary()</span> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="login-left"><img src="~/images/mes_logo.png" style="width:607px;height:445px;" asp-append-version="true" /></div> |
||||
|
</div> |
||||
|
<div class="footer "> |
||||
|
<div class=" layui-row" style="width:980px; margin:0 auto;"> |
||||
|
<div class="layui-col-md6"><a href="#" style=" color: #fff;"></a></div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</form> |
||||
|
<script>$(function () { |
||||
|
layui.use('form', function () { |
||||
|
var form = layui.form; |
||||
|
form.on('submit(login)', function (data) { |
||||
|
}); |
||||
|
}); |
||||
|
})</script> |
||||
|
</body> |
||||
|
</html> |
@ -0,0 +1,108 @@ |
|||||
|
@{ |
||||
|
ViewData["Title"] = "系統資料管理"; |
||||
|
Layout = "~/Views/Shared/_AMESLayout.cshtml"; |
||||
|
} |
||||
|
|
||||
|
<div class="layui-card"> |
||||
|
<div class="layui-card-header"> |
||||
|
<div class="layui-form"> |
||||
|
<div class="layui-form-item "> |
||||
|
<div class="layui-inline"><i class="fa fa-file-text-o fa-fw"></i> @ViewBag.Title</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="layui-card-body"> |
||||
|
<table class="layui-hide" id="test" lay-filter="test"></table> |
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
@section Scripts{ |
||||
|
<script type="text/javascript"> |
||||
|
//监听表单提交事件 |
||||
|
hg.form.onsubmit('querysubmit', function (data) { |
||||
|
table && table.reload(data); |
||||
|
}); |
||||
|
var tableCols = [[ |
||||
|
{ |
||||
|
field: 'systemID', |
||||
|
width: 160, |
||||
|
title: '系統編號', |
||||
|
sort: true |
||||
|
}, |
||||
|
{ |
||||
|
field: 'systemNo', |
||||
|
width: 200, |
||||
|
title: '系統代碼' |
||||
|
}, |
||||
|
{ |
||||
|
field: 'systemName', |
||||
|
minWidth: 200, |
||||
|
title: '系統名稱' |
||||
|
}, |
||||
|
{ |
||||
|
field: 'systemDesc', |
||||
|
title: '系統描述', |
||||
|
width: 160 |
||||
|
}, |
||||
|
{ |
||||
|
field: 'sortSeq', |
||||
|
title: '排序', |
||||
|
width: 160, |
||||
|
sort: true |
||||
|
}, |
||||
|
{ |
||||
|
field: 'right', |
||||
|
width: 200, |
||||
|
title: '操作', |
||||
|
fixed: 'right', |
||||
|
templet: function (d) { |
||||
|
return '<a class="layui-btn layui-btn-normal layui-btn-xs layui-icon layui-icon-edit" lay-event="edit">修改</a> <a class="layui-btn layui-btn-danger layui-btn-xs layui-icon layui-icon-delete" lay-event="del">删除</a>' |
||||
|
} |
||||
|
}] |
||||
|
]; |
||||
|
|
||||
|
//通过行tool编辑,lay-event="edit" |
||||
|
function edit(obj) { |
||||
|
if (obj.data.systemID) { |
||||
|
hg.open('修改系統', '/SYS/SYS001U/' + obj.data.systemID, 720, 600); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
//通过行tool删除,lay-event="del" |
||||
|
function del(obj) { |
||||
|
if (obj.data.systemID) { |
||||
|
hg.confirm("系統:" + obj.data.systemName + ",确定要删除吗?", function () { |
||||
|
$.ajax({ |
||||
|
url: '/SYS/SYS001D', |
||||
|
data: { id: obj.data.systemID }, |
||||
|
type: 'POST', |
||||
|
success: function (data) { |
||||
|
if (data.success) { |
||||
|
obj.del(); //只删本地数据 |
||||
|
hg.msghide("删除成功!"); |
||||
|
} |
||||
|
else { |
||||
|
hg.msg(data.msg); |
||||
|
} |
||||
|
}, |
||||
|
error: function () { |
||||
|
hg.msg("网络请求失败!"); |
||||
|
} |
||||
|
}); |
||||
|
}); |
||||
|
} |
||||
|
} |
||||
|
var toolbar = [{ |
||||
|
text: '新增', |
||||
|
layuiicon: '', |
||||
|
class: 'layui-btn-normal', |
||||
|
handler: function () { |
||||
|
hg.open('新增系統', '/SYS/SYS001C', 720, 600); |
||||
|
|
||||
|
} |
||||
|
} |
||||
|
]; |
||||
|
//基本数据表格 |
||||
|
var table = hg.table.datatable('test', '系統資料管理', '/SYS/GetSystemInfoes', {}, tableCols, toolbar, true, 'full-100', ['filter', 'print', 'exports']); |
||||
|
</script> |
||||
|
} |
@ -0,0 +1,74 @@ |
|||||
|
@model AMESCoreStudio.WebApi.SystemInfo |
||||
|
|
||||
|
|
||||
|
@{ ViewData["Title"] = "SYS001C"; |
||||
|
Layout = "~/Views/Shared/_FormLayout.cshtml"; } |
||||
|
|
||||
|
<style> |
||||
|
.control-label { |
||||
|
justify-content: flex-end !important; |
||||
|
} |
||||
|
</style> |
||||
|
|
||||
|
<div class="row"> |
||||
|
<div class="col-sm-12"> |
||||
|
<form enctype="multipart/form-data" method="post" asp-action="SYS001Save"> |
||||
|
<div asp-validation-summary="ModelOnly" class="text-danger"></div> |
||||
|
<div class="form-group form-inline my-sm-1"> |
||||
|
<label asp-for="SystemNo" class="control-label col-sm-3"></label> |
||||
|
<input asp-for="SystemNo" class="form-control col-sm-9" placeholder="請輸入系統代碼" /> |
||||
|
<span asp-validation-for="SystemNo" class="text-danger offset-sm-3 my-sm-1"></span> |
||||
|
</div> |
||||
|
<div class="form-group form-inline my-sm-1"> |
||||
|
<label asp-for="SystemName" class="control-label col-sm-3"></label> |
||||
|
<input asp-for="SystemName" class="form-control col-sm-9" placeholder="請輸入系統名稱" /> |
||||
|
<span asp-validation-for="SystemName" class="text-danger offset-sm-3 my-sm-1"></span> |
||||
|
</div> |
||||
|
<div class="form-group form-inline my-sm-1"> |
||||
|
<label asp-for="SystemDesc" class="control-label col-sm-3"></label> |
||||
|
<input id="test1" asp-for="SystemDesc" class="form-control col-sm-9" placeholder="請輸入系統描述" /> |
||||
|
<span asp-validation-for="SystemDesc" class="text-danger offset-sm-3 my-sm-1"></span> |
||||
|
</div> |
||||
|
<div class="form-group form-inline my-sm-1"> |
||||
|
<label asp-for="HideFlag" class="control-label col-sm-3"></label> |
||||
|
<div class="col-sm-9"> |
||||
|
<div class="radio icheck-primary form-check-inline"> |
||||
|
<input type="radio" id="Yes" asp-for="HideFlag" value="Y" /> |
||||
|
<label for="Yes"> 是 </label> |
||||
|
</div> |
||||
|
<div class="radio icheck-primary form-check-inline"> |
||||
|
<input type="radio" id="N" asp-for="HideFlag" value="N" checked /> |
||||
|
<label for="No"> 否 </label> |
||||
|
</div> |
||||
|
</div> |
||||
|
<span asp-validation-for="HideFlag" class="text-danger offset-sm-3 my-sm-1"></span> |
||||
|
</div> |
||||
|
<div class="form-group form-inline my-sm-1"> |
||||
|
<label asp-for="SortSeq" class="control-label col-sm-3"></label> |
||||
|
<input asp-for="SortSeq" class="form-control col-sm-9" placeholder="請輸入排序值" /> |
||||
|
<span asp-validation-for="SortSeq" class="text-danger offset-sm-3 my-sm-1"></span> |
||||
|
</div> |
||||
|
<span style="color: firebrick;word-break: break-all;" class="text-danger offset-sm-3">@Html.ValidationMessage("error")</span> |
||||
|
<div class="form-group"> |
||||
|
<input type="submit" value="保存" class="btn btn-primary offset-sm-3" /> |
||||
|
</div> |
||||
|
|
||||
|
</form> |
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
@section Scripts { |
||||
|
@{ await Html.RenderPartialAsync("_ValidationScriptsPartial"); |
||||
|
await Html.RenderPartialAsync("_FileinputScriptsPartial"); } |
||||
|
|
||||
|
<script type="text/javascript"> |
||||
|
$(document).ready(function () { |
||||
|
var error = '@Html.ValidationMessage("error")'; |
||||
|
if ($(error).text() != '') { |
||||
|
parent.hg.msg(error); |
||||
|
} |
||||
|
}); |
||||
|
</script> |
||||
|
|
||||
|
|
||||
|
} |
@ -0,0 +1,80 @@ |
|||||
|
@model AMESCoreStudio.WebApi.SystemInfo |
||||
|
|
||||
|
@{ |
||||
|
ViewData["Title"] = "SYS001U"; |
||||
|
Layout = "~/Views/Shared/_FormLayout.cshtml"; |
||||
|
} |
||||
|
|
||||
|
<style> |
||||
|
.control-label { |
||||
|
justify-content: flex-end !important; |
||||
|
} |
||||
|
</style> |
||||
|
|
||||
|
<div class="row"> |
||||
|
<div class="col-sm-12"> |
||||
|
<form enctype="multipart/form-data" method="post" asp-action="SYS001Save"> |
||||
|
<div asp-validation-summary="ModelOnly" class="text-danger"></div> |
||||
|
<input type="hidden" asp-for="SystemID" /> |
||||
|
<input type="hidden" asp-for="CreateUserId" /> |
||||
|
<input type="hidden" asp-for="CreateDateTime" /> |
||||
|
<input type="hidden" asp-for="UpdateUserId" /> |
||||
|
<input type="hidden" asp-for="UpdateDateTime" /> |
||||
|
|
||||
|
<div class="form-group form-inline my-sm-1"> |
||||
|
<label asp-for="SystemNo" class="control-label col-sm-3"></label> |
||||
|
<input asp-for="SystemNo" class="form-control col-sm-9" placeholder="請輸入系統代碼" /> |
||||
|
<span asp-validation-for="SystemNo" class="text-danger offset-sm-3 my-sm-1"></span> |
||||
|
</div> |
||||
|
<div class="form-group form-inline my-sm-1"> |
||||
|
<label asp-for="SystemName" class="control-label col-sm-3"></label> |
||||
|
<input asp-for="SystemName" class="form-control col-sm-9" placeholder="請輸入系統名稱" /> |
||||
|
<span asp-validation-for="SystemName" class="text-danger offset-sm-3 my-sm-1"></span> |
||||
|
</div> |
||||
|
<div class="form-group form-inline my-sm-1"> |
||||
|
<label asp-for="SystemDesc" class="control-label col-sm-3"></label> |
||||
|
<input asp-for="SystemDesc" class="form-control col-sm-9" placeholder="請輸入系統描述" /> |
||||
|
<span asp-validation-for="SystemDesc" class="text-danger offset-sm-3 my-sm-1"></span> |
||||
|
</div> |
||||
|
<div class="form-group form-inline my-sm-1"> |
||||
|
<label asp-for="HideFlag" class="control-label col-sm-3"></label> |
||||
|
<div class="col-sm-9"> |
||||
|
<div class="radio icheck-primary form-check-inline"> |
||||
|
<input type="radio" id="Yes" asp-for="HideFlag" value="Y" /> |
||||
|
<label for="Yes"> 是 </label> |
||||
|
</div> |
||||
|
<div class="radio icheck-primary form-check-inline"> |
||||
|
<input type="radio" id="N" asp-for="HideFlag" value="N" /> |
||||
|
<label for="No"> 否 </label> |
||||
|
</div> |
||||
|
</div> |
||||
|
<span asp-validation-for="HideFlag" class="text-danger offset-sm-3 my-sm-1"></span> |
||||
|
</div> |
||||
|
<div class="form-group form-inline my-sm-1"> |
||||
|
<label asp-for="SortSeq" class="control-label col-sm-3"></label> |
||||
|
<input asp-for="SortSeq" class="form-control col-sm-9" placeholder="請輸入排序" /> |
||||
|
<span asp-validation-for="SortSeq" class="text-danger offset-sm-3 my-sm-1"></span> |
||||
|
</div> |
||||
|
<div class="form-group"> |
||||
|
<input type="submit" value="保存" class="btn btn-primary offset-sm-3" /> |
||||
|
</div> |
||||
|
|
||||
|
</form> |
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
@section Scripts { |
||||
|
@{ |
||||
|
await Html.RenderPartialAsync("_ValidationScriptsPartial"); |
||||
|
await Html.RenderPartialAsync("_FileinputScriptsPartial"); |
||||
|
} |
||||
|
|
||||
|
<script type="text/javascript"> |
||||
|
$(document).ready(function () { |
||||
|
var error = '@Html.ValidationMessage("error")'; |
||||
|
if ($(error).text() != '') { |
||||
|
parent.hg.msg(error); |
||||
|
} |
||||
|
}); |
||||
|
</script> |
||||
|
} |
@ -0,0 +1,108 @@ |
|||||
|
@{ |
||||
|
ViewData["Title"] = "模組資料管理"; |
||||
|
Layout = "~/Views/Shared/_AMESLayout.cshtml"; |
||||
|
} |
||||
|
|
||||
|
<div class="layui-card"> |
||||
|
<div class="layui-card-header"> |
||||
|
<div class="layui-form"> |
||||
|
<div class="layui-form-item "> |
||||
|
<div class="layui-inline"><i class="fa fa-file-text-o fa-fw"></i> @ViewBag.Title</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="layui-card-body"> |
||||
|
<table class="layui-hide" id="test" lay-filter="test"></table> |
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
@section Scripts{ |
||||
|
<script type="text/javascript"> |
||||
|
//监听表单提交事件 |
||||
|
hg.form.onsubmit('querysubmit', function (data) { |
||||
|
table && table.reload(data); |
||||
|
}); |
||||
|
var tableCols = [[ |
||||
|
{ |
||||
|
field: 'moduleID', |
||||
|
width: 160, |
||||
|
title: '模組編號', |
||||
|
sort: true |
||||
|
}, |
||||
|
{ |
||||
|
field: 'moduleNo', |
||||
|
width: 200, |
||||
|
title: '模組代碼' |
||||
|
}, |
||||
|
{ |
||||
|
field: 'moduleName', |
||||
|
minWidth: 200, |
||||
|
title: '模組名稱' |
||||
|
}, |
||||
|
{ |
||||
|
field: 'moduleDesc', |
||||
|
title: '模組描述', |
||||
|
width: 160 |
||||
|
}, |
||||
|
{ |
||||
|
field: 'sortSeq', |
||||
|
title: '排序', |
||||
|
width: 160, |
||||
|
sort: true |
||||
|
}, |
||||
|
{ |
||||
|
field: 'right', |
||||
|
width: 200, |
||||
|
title: '操作', |
||||
|
fixed: 'right', |
||||
|
templet: function (d) { |
||||
|
return '<a class="layui-btn layui-btn-normal layui-btn-xs layui-icon layui-icon-edit" lay-event="edit">修改</a> <a class="layui-btn layui-btn-danger layui-btn-xs layui-icon layui-icon-delete" lay-event="del">删除</a>' |
||||
|
} |
||||
|
}] |
||||
|
]; |
||||
|
|
||||
|
//通过行tool编辑,lay-event="edit" |
||||
|
function edit(obj) { |
||||
|
if (obj.data.moduleID) { |
||||
|
hg.open('修改模組', '/SYS/SYS002U/' + obj.data.moduleID, 720, 600); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
//通过行tool删除,lay-event="del" |
||||
|
function del(obj) { |
||||
|
if (obj.data.moduleID) { |
||||
|
hg.confirm("模組:" + obj.data.moduleName + ",确定要删除吗?", function () { |
||||
|
$.ajax({ |
||||
|
url: '/SYS/SYS002D', |
||||
|
data: { id: obj.data.moduleID }, |
||||
|
type: 'POST', |
||||
|
success: function (data) { |
||||
|
if (data.success) { |
||||
|
obj.del(); //只删本地数据 |
||||
|
hg.msghide("删除成功!"); |
||||
|
} |
||||
|
else { |
||||
|
hg.msg(data.msg); |
||||
|
} |
||||
|
}, |
||||
|
error: function () { |
||||
|
hg.msg("网络请求失败!"); |
||||
|
} |
||||
|
}); |
||||
|
}); |
||||
|
} |
||||
|
} |
||||
|
var toolbar = [{ |
||||
|
text: '新增', |
||||
|
layuiicon: '', |
||||
|
class: 'layui-btn-normal', |
||||
|
handler: function () { |
||||
|
hg.open('新增模組', '/SYS/SYS002C', 720, 600); |
||||
|
|
||||
|
} |
||||
|
} |
||||
|
]; |
||||
|
//基本数据表格 |
||||
|
var table = hg.table.datatable('test', '模組資料管理', '/SYS/GetModuleInfoes', {}, tableCols, toolbar, true, 'full-100', ['filter', 'print', 'exports']); |
||||
|
</script> |
||||
|
} |
@ -0,0 +1,80 @@ |
|||||
|
@model AMESCoreStudio.WebApi.ModuleInfo |
||||
|
|
||||
|
|
||||
|
@{ ViewData["Title"] = "SYS002C"; |
||||
|
Layout = "~/Views/Shared/_FormLayout.cshtml"; } |
||||
|
|
||||
|
<style> |
||||
|
.control-label { |
||||
|
justify-content: flex-end !important; |
||||
|
} |
||||
|
</style> |
||||
|
|
||||
|
<div class="row"> |
||||
|
<div class="col-sm-12"> |
||||
|
<form enctype="multipart/form-data" method="post" asp-action="SYS002Save"> |
||||
|
<div asp-validation-summary="ModelOnly" class="text-danger"></div> |
||||
|
<div class="form-group form-inline my-sm-1"> |
||||
|
<label asp-for="ModuleNo" class="control-label col-sm-3"></label> |
||||
|
<input asp-for="ModuleNo" class="form-control col-sm-9" placeholder="請輸入模组代碼" /> |
||||
|
<span asp-validation-for="ModuleNo" class="text-danger offset-sm-3 my-sm-1"></span> |
||||
|
</div> |
||||
|
<div class="form-group form-inline my-sm-1"> |
||||
|
<label asp-for="ModuleName" class="control-label col-sm-3"></label> |
||||
|
<input asp-for="ModuleName" class="form-control col-sm-9" placeholder="請輸入模组名稱" /> |
||||
|
<span asp-validation-for="ModuleName" class="text-danger offset-sm-3 my-sm-1"></span> |
||||
|
</div> |
||||
|
<div class="form-group form-inline my-sm-1"> |
||||
|
<label asp-for="ModuleDesc" class="control-label col-sm-3"></label> |
||||
|
<input id="test1" asp-for="ModuleDesc" class="form-control col-sm-9" placeholder="請輸入模组描述" /> |
||||
|
<span asp-validation-for="ModuleDesc" class="text-danger offset-sm-3 my-sm-1"></span> |
||||
|
</div> |
||||
|
<div class="form-group form-inline my-sm-1"> |
||||
|
<label asp-for="SystemID" class="control-label col-sm-3"></label> |
||||
|
<select asp-for="SystemID" asp-items="@ViewBag.SystemList" class="custom-select col-sm-9"></select> |
||||
|
<span asp-validation-for="SystemID" class="text-danger offset-sm-3 my-sm-1"></span> |
||||
|
</div> |
||||
|
<div class="form-group form-inline my-sm-1"> |
||||
|
<label asp-for="HideFlag" class="control-label col-sm-3"></label> |
||||
|
<div class="col-sm-9"> |
||||
|
<div class="radio icheck-primary form-check-inline"> |
||||
|
<input type="radio" id="Yes" asp-for="HideFlag" value="Y" /> |
||||
|
<label for="Yes"> 是 </label> |
||||
|
</div> |
||||
|
<div class="radio icheck-primary form-check-inline"> |
||||
|
<input type="radio" id="N" asp-for="HideFlag" value="N" checked /> |
||||
|
<label for="No"> 否 </label> |
||||
|
</div> |
||||
|
</div> |
||||
|
<span asp-validation-for="HideFlag" class="text-danger offset-sm-3 my-sm-1"></span> |
||||
|
</div> |
||||
|
<div class="form-group form-inline my-sm-1"> |
||||
|
<label asp-for="SortSeq" class="control-label col-sm-3"></label> |
||||
|
<input asp-for="SortSeq" class="form-control col-sm-9" placeholder="請輸入排序值" /> |
||||
|
<span asp-validation-for="SortSeq" class="text-danger offset-sm-3 my-sm-1"></span> |
||||
|
</div> |
||||
|
|
||||
|
<span style="color: firebrick;word-break: break-all;" class="text-danger offset-sm-3">@Html.ValidationMessage("error")</span> |
||||
|
<div class="form-group"> |
||||
|
<input type="submit" value="保存" class="btn btn-primary offset-sm-3" /> |
||||
|
</div> |
||||
|
|
||||
|
</form> |
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
@section Scripts { |
||||
|
@{ await Html.RenderPartialAsync("_ValidationScriptsPartial"); |
||||
|
await Html.RenderPartialAsync("_FileinputScriptsPartial"); } |
||||
|
|
||||
|
<script type="text/javascript"> |
||||
|
$(document).ready(function () { |
||||
|
var error = '@Html.ValidationMessage("error")'; |
||||
|
if ($(error).text() != '') { |
||||
|
parent.hg.msg(error); |
||||
|
} |
||||
|
}); |
||||
|
</script> |
||||
|
|
||||
|
|
||||
|
} |
@ -0,0 +1,85 @@ |
|||||
|
@model AMESCoreStudio.WebApi.ModuleInfo |
||||
|
|
||||
|
@{ |
||||
|
ViewData["Title"] = "SYS002U"; |
||||
|
Layout = "~/Views/Shared/_FormLayout.cshtml"; |
||||
|
} |
||||
|
|
||||
|
<style> |
||||
|
.control-label { |
||||
|
justify-content: flex-end !important; |
||||
|
} |
||||
|
</style> |
||||
|
|
||||
|
<div class="row"> |
||||
|
<div class="col-sm-12"> |
||||
|
<form enctype="multipart/form-data" method="post" asp-action="SYS002Save"> |
||||
|
<div asp-validation-summary="ModelOnly" class="text-danger"></div> |
||||
|
<input type="hidden" asp-for="ModuleID" /> |
||||
|
<input type="hidden" asp-for="CreateUserId" /> |
||||
|
<input type="hidden" asp-for="CreateDateTime" /> |
||||
|
<input type="hidden" asp-for="UpdateUserId" /> |
||||
|
<input type="hidden" asp-for="UpdateDateTime" /> |
||||
|
|
||||
|
<div class="form-group form-inline my-sm-1"> |
||||
|
<label asp-for="ModuleNo" class="control-label col-sm-3"></label> |
||||
|
<input asp-for="ModuleNo" class="form-control col-sm-9" placeholder="請輸入模组代碼" /> |
||||
|
<span asp-validation-for="ModuleNo" class="text-danger offset-sm-3 my-sm-1"></span> |
||||
|
</div> |
||||
|
<div class="form-group form-inline my-sm-1"> |
||||
|
<label asp-for="ModuleName" class="control-label col-sm-3"></label> |
||||
|
<input asp-for="ModuleName" class="form-control col-sm-9" placeholder="請輸入模组名稱" /> |
||||
|
<span asp-validation-for="ModuleName" class="text-danger offset-sm-3 my-sm-1"></span> |
||||
|
</div> |
||||
|
<div class="form-group form-inline my-sm-1"> |
||||
|
<label asp-for="ModuleDesc" class="control-label col-sm-3"></label> |
||||
|
<input id="test1" asp-for="ModuleDesc" class="form-control col-sm-9" placeholder="請輸入模组描述" /> |
||||
|
<span asp-validation-for="ModuleDesc" class="text-danger offset-sm-3 my-sm-1"></span> |
||||
|
</div> |
||||
|
<div class="form-group form-inline my-sm-1"> |
||||
|
<label asp-for="SystemID" class="control-label col-sm-3"></label> |
||||
|
<select asp-for="SystemID" asp-items="@ViewBag.SystemList" class="custom-select col-sm-9"></select> |
||||
|
<span asp-validation-for="SystemID" class="text-danger offset-sm-3 my-sm-1"></span> |
||||
|
</div> |
||||
|
<div class="form-group form-inline my-sm-1"> |
||||
|
<label asp-for="HideFlag" class="control-label col-sm-3"></label> |
||||
|
<div class="col-sm-9"> |
||||
|
<div class="radio icheck-primary form-check-inline"> |
||||
|
<input type="radio" id="Yes" asp-for="HideFlag" value="Y" /> |
||||
|
<label for="Yes"> 是 </label> |
||||
|
</div> |
||||
|
<div class="radio icheck-primary form-check-inline"> |
||||
|
<input type="radio" id="N" asp-for="HideFlag" value="N" /> |
||||
|
<label for="No"> 否 </label> |
||||
|
</div> |
||||
|
</div> |
||||
|
<span asp-validation-for="HideFlag" class="text-danger offset-sm-3 my-sm-1"></span> |
||||
|
</div> |
||||
|
<div class="form-group form-inline my-sm-1"> |
||||
|
<label asp-for="SortSeq" class="control-label col-sm-3"></label> |
||||
|
<input asp-for="SortSeq" class="form-control col-sm-9" placeholder="請輸入排序值" /> |
||||
|
<span asp-validation-for="SortSeq" class="text-danger offset-sm-3 my-sm-1"></span> |
||||
|
</div> |
||||
|
<div class="form-group"> |
||||
|
<input type="submit" value="保存" class="btn btn-primary offset-sm-3" /> |
||||
|
</div> |
||||
|
|
||||
|
</form> |
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
@section Scripts { |
||||
|
@{ |
||||
|
await Html.RenderPartialAsync("_ValidationScriptsPartial"); |
||||
|
await Html.RenderPartialAsync("_FileinputScriptsPartial"); |
||||
|
} |
||||
|
|
||||
|
<script type="text/javascript"> |
||||
|
$(document).ready(function () { |
||||
|
var error = '@Html.ValidationMessage("error")'; |
||||
|
if ($(error).text() != '') { |
||||
|
parent.hg.msg(error); |
||||
|
} |
||||
|
}); |
||||
|
</script> |
||||
|
} |
@ -0,0 +1,108 @@ |
|||||
|
@{ |
||||
|
ViewData["Title"] = "功能資料管理"; |
||||
|
Layout = "~/Views/Shared/_AMESLayout.cshtml"; |
||||
|
} |
||||
|
|
||||
|
<div class="layui-card"> |
||||
|
<div class="layui-card-header"> |
||||
|
<div class="layui-form"> |
||||
|
<div class="layui-form-item "> |
||||
|
<div class="layui-inline"><i class="fa fa-file-text-o fa-fw"></i> @ViewBag.Title</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="layui-card-body"> |
||||
|
<table class="layui-hide" id="test" lay-filter="test"></table> |
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
@section Scripts{ |
||||
|
<script type="text/javascript"> |
||||
|
//监听表单提交事件 |
||||
|
hg.form.onsubmit('querysubmit', function (data) { |
||||
|
table && table.reload(data); |
||||
|
}); |
||||
|
var tableCols = [[ |
||||
|
{ |
||||
|
field: 'programID', |
||||
|
width: 160, |
||||
|
title: '功能編號', |
||||
|
sort: true |
||||
|
}, |
||||
|
{ |
||||
|
field: 'programNo', |
||||
|
width: 200, |
||||
|
title: '功能代碼' |
||||
|
}, |
||||
|
{ |
||||
|
field: 'programName', |
||||
|
minWidth: 200, |
||||
|
title: '功能名稱' |
||||
|
}, |
||||
|
{ |
||||
|
field: 'programDesc', |
||||
|
title: '功能描述', |
||||
|
width: 160 |
||||
|
}, |
||||
|
{ |
||||
|
field: 'sortSeq', |
||||
|
title: '排序', |
||||
|
width: 160, |
||||
|
sort: true |
||||
|
}, |
||||
|
{ |
||||
|
field: 'right', |
||||
|
width: 200, |
||||
|
title: '操作', |
||||
|
fixed: 'right', |
||||
|
templet: function (d) { |
||||
|
return '<a class="layui-btn layui-btn-normal layui-btn-xs layui-icon layui-icon-edit" lay-event="edit">修改</a> <a class="layui-btn layui-btn-danger layui-btn-xs layui-icon layui-icon-delete" lay-event="del">删除</a>' |
||||
|
} |
||||
|
}] |
||||
|
]; |
||||
|
|
||||
|
//通过行tool编辑,lay-event="edit" |
||||
|
function edit(obj) { |
||||
|
if (obj.data.programID) { |
||||
|
hg.open('修改功能', '/SYS/SYS003U/' + obj.data.programID, 720, 600); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
//通过行tool删除,lay-event="del" |
||||
|
function del(obj) { |
||||
|
if (obj.data.programID) { |
||||
|
hg.confirm("功能:" + obj.data.programName + ",确定要删除吗?", function () { |
||||
|
$.ajax({ |
||||
|
url: '/SYS/SYS003D', |
||||
|
data: { id: obj.data.programID }, |
||||
|
type: 'POST', |
||||
|
success: function (data) { |
||||
|
if (data.success) { |
||||
|
obj.del(); //只删本地数据 |
||||
|
hg.msghide("删除成功!"); |
||||
|
} |
||||
|
else { |
||||
|
hg.msg(data.msg); |
||||
|
} |
||||
|
}, |
||||
|
error: function () { |
||||
|
hg.msg("网络请求失败!"); |
||||
|
} |
||||
|
}); |
||||
|
}); |
||||
|
} |
||||
|
} |
||||
|
var toolbar = [{ |
||||
|
text: '新增', |
||||
|
layuiicon: '', |
||||
|
class: 'layui-btn-normal', |
||||
|
handler: function () { |
||||
|
hg.open('新增模組', '/SYS/SYS003C', 720, 600); |
||||
|
|
||||
|
} |
||||
|
} |
||||
|
]; |
||||
|
//基本数据表格 |
||||
|
var table = hg.table.datatable('test', '功能資料管理', '/SYS/GetProgramInfoes', {}, tableCols, toolbar, true, 'full-100', ['filter', 'print', 'exports']); |
||||
|
</script> |
||||
|
} |
@ -0,0 +1,85 @@ |
|||||
|
@model AMESCoreStudio.WebApi.ProgramInfo |
||||
|
|
||||
|
|
||||
|
@{ ViewData["Title"] = "SYS003C"; |
||||
|
Layout = "~/Views/Shared/_FormLayout.cshtml"; } |
||||
|
|
||||
|
<style> |
||||
|
.control-label { |
||||
|
justify-content: flex-end !important; |
||||
|
} |
||||
|
</style> |
||||
|
|
||||
|
<div class="row"> |
||||
|
<div class="col-sm-12"> |
||||
|
<form enctype="multipart/form-data" method="post" asp-action="SYS003Save"> |
||||
|
<div asp-validation-summary="ModelOnly" class="text-danger"></div> |
||||
|
<div class="form-group form-inline my-sm-1"> |
||||
|
<label asp-for="ProgramNo" class="control-label col-sm-3"></label> |
||||
|
<input asp-for="ProgramNo" class="form-control col-sm-9" placeholder="請輸入功能代碼" /> |
||||
|
<span asp-validation-for="ProgramNo" class="text-danger offset-sm-3 my-sm-1"></span> |
||||
|
</div> |
||||
|
<div class="form-group form-inline my-sm-1"> |
||||
|
<label asp-for="ProgramName" class="control-label col-sm-3"></label> |
||||
|
<input asp-for="ProgramName" class="form-control col-sm-9" placeholder="請輸入功能名稱" /> |
||||
|
<span asp-validation-for="ProgramName" class="text-danger offset-sm-3 my-sm-1"></span> |
||||
|
</div> |
||||
|
<div class="form-group form-inline my-sm-1"> |
||||
|
<label asp-for="ProgramDesc" class="control-label col-sm-3"></label> |
||||
|
<input id="test1" asp-for="ProgramDesc" class="form-control col-sm-9" placeholder="請輸入功能描述" /> |
||||
|
<span asp-validation-for="ProgramDesc" class="text-danger offset-sm-3 my-sm-1"></span> |
||||
|
</div> |
||||
|
<div class="form-group form-inline my-sm-1"> |
||||
|
<label asp-for="ProgramPath" class="control-label col-sm-3"></label> |
||||
|
<input id="test1" asp-for="ProgramPath" class="form-control col-sm-9" placeholder="請輸入功能路徑" /> |
||||
|
<span asp-validation-for="ProgramPath" class="text-danger offset-sm-3 my-sm-1"></span> |
||||
|
</div> |
||||
|
<div class="form-group form-inline my-sm-1"> |
||||
|
<label asp-for="ModuleID" class="control-label col-sm-3"></label> |
||||
|
<select asp-for="ModuleID" asp-items="@ViewBag.ModuleList" class="custom-select col-sm-9"></select> |
||||
|
<span asp-validation-for="ModuleID" class="text-danger offset-sm-3 my-sm-1"></span> |
||||
|
</div> |
||||
|
<div class="form-group form-inline my-sm-1"> |
||||
|
<label asp-for="HideFlag" class="control-label col-sm-3"></label> |
||||
|
<div class="col-sm-9"> |
||||
|
<div class="radio icheck-primary form-check-inline"> |
||||
|
<input type="radio" id="Yes" asp-for="HideFlag" value="Y" /> |
||||
|
<label for="Yes"> 是 </label> |
||||
|
</div> |
||||
|
<div class="radio icheck-primary form-check-inline"> |
||||
|
<input type="radio" id="N" asp-for="HideFlag" value="N" checked /> |
||||
|
<label for="No"> 否 </label> |
||||
|
</div> |
||||
|
</div> |
||||
|
<span asp-validation-for="HideFlag" class="text-danger offset-sm-3 my-sm-1"></span> |
||||
|
</div> |
||||
|
<div class="form-group form-inline my-sm-1"> |
||||
|
<label asp-for="SortSeq" class="control-label col-sm-3"></label> |
||||
|
<input asp-for="SortSeq" class="form-control col-sm-9" placeholder="請輸入排序值" /> |
||||
|
<span asp-validation-for="SortSeq" class="text-danger offset-sm-3 my-sm-1"></span> |
||||
|
</div> |
||||
|
|
||||
|
<span style="color: firebrick;word-break: break-all;" class="text-danger offset-sm-3">@Html.ValidationMessage("error")</span> |
||||
|
<div class="form-group"> |
||||
|
<input type="submit" value="保存" class="btn btn-primary offset-sm-3" /> |
||||
|
</div> |
||||
|
|
||||
|
</form> |
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
@section Scripts { |
||||
|
@{ await Html.RenderPartialAsync("_ValidationScriptsPartial"); |
||||
|
await Html.RenderPartialAsync("_FileinputScriptsPartial"); } |
||||
|
|
||||
|
<script type="text/javascript"> |
||||
|
$(document).ready(function () { |
||||
|
var error = '@Html.ValidationMessage("error")'; |
||||
|
if ($(error).text() != '') { |
||||
|
parent.hg.msg(error); |
||||
|
} |
||||
|
}); |
||||
|
</script> |
||||
|
|
||||
|
|
||||
|
} |
@ -0,0 +1,90 @@ |
|||||
|
@model AMESCoreStudio.WebApi.ProgramInfo |
||||
|
|
||||
|
@{ |
||||
|
ViewData["Title"] = "SYS003U"; |
||||
|
Layout = "~/Views/Shared/_FormLayout.cshtml"; |
||||
|
} |
||||
|
|
||||
|
<style> |
||||
|
.control-label { |
||||
|
justify-content: flex-end !important; |
||||
|
} |
||||
|
</style> |
||||
|
|
||||
|
<div class="row"> |
||||
|
<div class="col-sm-12"> |
||||
|
<form enctype="multipart/form-data" method="post" asp-action="SYS003Save"> |
||||
|
<div asp-validation-summary="ModelOnly" class="text-danger"></div> |
||||
|
<input type="hidden" asp-for="ProgramID" /> |
||||
|
<input type="hidden" asp-for="CreateUserId" /> |
||||
|
<input type="hidden" asp-for="CreateDateTime" /> |
||||
|
<input type="hidden" asp-for="UpdateUserId" /> |
||||
|
<input type="hidden" asp-for="UpdateDateTime" /> |
||||
|
|
||||
|
<div class="form-group form-inline my-sm-1"> |
||||
|
<label asp-for="ProgramNo" class="control-label col-sm-3"></label> |
||||
|
<input asp-for="ProgramNo" class="form-control col-sm-9" placeholder="請輸入功能代碼" /> |
||||
|
<span asp-validation-for="ProgramNo" class="text-danger offset-sm-3 my-sm-1"></span> |
||||
|
</div> |
||||
|
<div class="form-group form-inline my-sm-1"> |
||||
|
<label asp-for="ProgramName" class="control-label col-sm-3"></label> |
||||
|
<input asp-for="ProgramName" class="form-control col-sm-9" placeholder="請輸入功能名稱" /> |
||||
|
<span asp-validation-for="ProgramName" class="text-danger offset-sm-3 my-sm-1"></span> |
||||
|
</div> |
||||
|
<div class="form-group form-inline my-sm-1"> |
||||
|
<label asp-for="ProgramDesc" class="control-label col-sm-3"></label> |
||||
|
<input id="test1" asp-for="ProgramDesc" class="form-control col-sm-9" placeholder="請輸入功能描述" /> |
||||
|
<span asp-validation-for="ProgramDesc" class="text-danger offset-sm-3 my-sm-1"></span> |
||||
|
</div> |
||||
|
<div class="form-group form-inline my-sm-1"> |
||||
|
<label asp-for="ProgramPath" class="control-label col-sm-3"></label> |
||||
|
<input id="test1" asp-for="ProgramPath" class="form-control col-sm-9" placeholder="請輸入功能路徑" /> |
||||
|
<span asp-validation-for="ProgramPath" class="text-danger offset-sm-3 my-sm-1"></span> |
||||
|
</div> |
||||
|
<div class="form-group form-inline my-sm-1"> |
||||
|
<label asp-for="ModuleID" class="control-label col-sm-3"></label> |
||||
|
<select asp-for="ModuleID" asp-items="@ViewBag.ModuleList" class="custom-select col-sm-9"></select> |
||||
|
<span asp-validation-for="ModuleID" class="text-danger offset-sm-3 my-sm-1"></span> |
||||
|
</div> |
||||
|
<div class="form-group form-inline my-sm-1"> |
||||
|
<label asp-for="HideFlag" class="control-label col-sm-3"></label> |
||||
|
<div class="col-sm-9"> |
||||
|
<div class="radio icheck-primary form-check-inline"> |
||||
|
<input type="radio" id="Yes" asp-for="HideFlag" value="Y" /> |
||||
|
<label for="Yes"> 是 </label> |
||||
|
</div> |
||||
|
<div class="radio icheck-primary form-check-inline"> |
||||
|
<input type="radio" id="N" asp-for="HideFlag" value="N" /> |
||||
|
<label for="No"> 否 </label> |
||||
|
</div> |
||||
|
</div> |
||||
|
<span asp-validation-for="HideFlag" class="text-danger offset-sm-3 my-sm-1"></span> |
||||
|
</div> |
||||
|
<div class="form-group form-inline my-sm-1"> |
||||
|
<label asp-for="SortSeq" class="control-label col-sm-3"></label> |
||||
|
<input asp-for="SortSeq" class="form-control col-sm-9" placeholder="請輸入排序值" /> |
||||
|
<span asp-validation-for="SortSeq" class="text-danger offset-sm-3 my-sm-1"></span> |
||||
|
</div> |
||||
|
<div class="form-group"> |
||||
|
<input type="submit" value="保存" class="btn btn-primary offset-sm-3" /> |
||||
|
</div> |
||||
|
|
||||
|
</form> |
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
@section Scripts { |
||||
|
@{ |
||||
|
await Html.RenderPartialAsync("_ValidationScriptsPartial"); |
||||
|
await Html.RenderPartialAsync("_FileinputScriptsPartial"); |
||||
|
} |
||||
|
|
||||
|
<script type="text/javascript"> |
||||
|
$(document).ready(function () { |
||||
|
var error = '@Html.ValidationMessage("error")'; |
||||
|
if ($(error).text() != '') { |
||||
|
parent.hg.msg(error); |
||||
|
} |
||||
|
}); |
||||
|
</script> |
||||
|
} |
@ -0,0 +1,102 @@ |
|||||
|
@{ |
||||
|
ViewData["Title"] = "角色資料管理"; |
||||
|
Layout = "~/Views/Shared/_AMESLayout.cshtml"; |
||||
|
} |
||||
|
|
||||
|
<div class="layui-card"> |
||||
|
<div class="layui-card-header"> |
||||
|
<div class="layui-form"> |
||||
|
<div class="layui-form-item "> |
||||
|
<div class="layui-inline"><i class="fa fa-file-text-o fa-fw"></i> @ViewBag.Title</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="layui-card-body"> |
||||
|
<table class="layui-hide" id="test" lay-filter="test"></table> |
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
@section Scripts{ |
||||
|
<script type="text/javascript"> |
||||
|
//监听表单提交事件 |
||||
|
hg.form.onsubmit('querysubmit', function (data) { |
||||
|
table && table.reload(data); |
||||
|
}); |
||||
|
var tableCols = [[ |
||||
|
{ |
||||
|
field: 'roleID', |
||||
|
width: 160, |
||||
|
title: '角色編號', |
||||
|
sort: true |
||||
|
}, |
||||
|
{ |
||||
|
field: 'roleNo', |
||||
|
width: 200, |
||||
|
title: '角色代碼' |
||||
|
}, |
||||
|
{ |
||||
|
field: 'roleName', |
||||
|
minWidth: 200, |
||||
|
title: '角色名稱' |
||||
|
}, |
||||
|
{ |
||||
|
field: 'roleDesc', |
||||
|
title: '角色描述', |
||||
|
width: 160 |
||||
|
}, |
||||
|
{ |
||||
|
field: 'right', |
||||
|
width: 200, |
||||
|
title: '操作', |
||||
|
fixed: 'right', |
||||
|
templet: function (d) { |
||||
|
return '<a class="layui-btn layui-btn-normal layui-btn-xs layui-icon layui-icon-edit" lay-event="edit">修改</a> <a class="layui-btn layui-btn-danger layui-btn-xs layui-icon layui-icon-delete" lay-event="del">删除</a>' |
||||
|
} |
||||
|
}] |
||||
|
]; |
||||
|
|
||||
|
//通过行tool编辑,lay-event="edit" |
||||
|
function edit(obj) { |
||||
|
if (obj.data.roleID) { |
||||
|
hg.open('修改角色', '/SYS/SYS004U/' + obj.data.roleID, 720, 600); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
//通过行tool删除,lay-event="del" |
||||
|
function del(obj) { |
||||
|
if (obj.data.roleID) { |
||||
|
hg.confirm("角色:" + obj.data.roleName + ",确定要删除吗?", function () { |
||||
|
$.ajax({ |
||||
|
url: '/SYS/SYS004D', |
||||
|
data: { id: obj.data.roleID }, |
||||
|
type: 'POST', |
||||
|
success: function (data) { |
||||
|
if (data.success) { |
||||
|
obj.del(); //只删本地数据 |
||||
|
hg.msghide("删除成功!"); |
||||
|
} |
||||
|
else { |
||||
|
hg.msg(data.msg); |
||||
|
} |
||||
|
}, |
||||
|
error: function () { |
||||
|
hg.msg("网络请求失败!"); |
||||
|
} |
||||
|
}); |
||||
|
}); |
||||
|
} |
||||
|
} |
||||
|
var toolbar = [{ |
||||
|
text: '新增', |
||||
|
layuiicon: '', |
||||
|
class: 'layui-btn-normal', |
||||
|
handler: function () { |
||||
|
hg.open('新增角色', '/SYS/SYS004C', 720, 600); |
||||
|
|
||||
|
} |
||||
|
} |
||||
|
]; |
||||
|
//基本数据表格 |
||||
|
var table = hg.table.datatable('test', '角色資料管理', '/SYS/GetRoleInfoes', {}, tableCols, toolbar, true, 'full-100', ['filter', 'print', 'exports']); |
||||
|
</script> |
||||
|
} |
@ -0,0 +1,55 @@ |
|||||
|
@model AMESCoreStudio.WebApi.RoleInfo |
||||
|
|
||||
|
|
||||
|
@{ ViewData["Title"] = "SYS004C"; |
||||
|
Layout = "~/Views/Shared/_FormLayout.cshtml"; } |
||||
|
|
||||
|
<style> |
||||
|
.control-label { |
||||
|
justify-content: flex-end !important; |
||||
|
} |
||||
|
</style> |
||||
|
|
||||
|
<div class="row"> |
||||
|
<div class="col-sm-12"> |
||||
|
<form enctype="multipart/form-data" method="post" asp-action="SYS004Save"> |
||||
|
<div asp-validation-summary="ModelOnly" class="text-danger"></div> |
||||
|
<div class="form-group form-inline my-sm-1"> |
||||
|
<label asp-for="RoleNo" class="control-label col-sm-3"></label> |
||||
|
<input asp-for="RoleNo" class="form-control col-sm-9" placeholder="請輸入角色代碼" /> |
||||
|
<span asp-validation-for="RoleNo" class="text-danger offset-sm-3 my-sm-1"></span> |
||||
|
</div> |
||||
|
<div class="form-group form-inline my-sm-1"> |
||||
|
<label asp-for="RoleName" class="control-label col-sm-3"></label> |
||||
|
<input asp-for="RoleName" class="form-control col-sm-9" placeholder="請輸入角色名稱" /> |
||||
|
<span asp-validation-for="RoleName" class="text-danger offset-sm-3 my-sm-1"></span> |
||||
|
</div> |
||||
|
<div class="form-group form-inline my-sm-1"> |
||||
|
<label asp-for="RoleDesc" class="control-label col-sm-3"></label> |
||||
|
<input id="test1" asp-for="RoleDesc" class="form-control col-sm-9" placeholder="請輸入角色描述" /> |
||||
|
<span asp-validation-for="RoleDesc" class="text-danger offset-sm-3 my-sm-1"></span> |
||||
|
</div> |
||||
|
<span style="color: firebrick;word-break: break-all;" class="text-danger offset-sm-3">@Html.ValidationMessage("error")</span> |
||||
|
<div class="form-group"> |
||||
|
<input type="submit" value="保存" class="btn btn-primary offset-sm-3" /> |
||||
|
</div> |
||||
|
|
||||
|
</form> |
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
@section Scripts { |
||||
|
@{ await Html.RenderPartialAsync("_ValidationScriptsPartial"); |
||||
|
await Html.RenderPartialAsync("_FileinputScriptsPartial"); } |
||||
|
|
||||
|
<script type="text/javascript"> |
||||
|
$(document).ready(function () { |
||||
|
var error = '@Html.ValidationMessage("error")'; |
||||
|
if ($(error).text() != '') { |
||||
|
parent.hg.msg(error); |
||||
|
} |
||||
|
}); |
||||
|
</script> |
||||
|
|
||||
|
|
||||
|
} |
@ -0,0 +1,61 @@ |
|||||
|
@model AMESCoreStudio.WebApi.RoleInfo |
||||
|
|
||||
|
@{ |
||||
|
ViewData["Title"] = "SYS004U"; |
||||
|
Layout = "~/Views/Shared/_FormLayout.cshtml"; |
||||
|
} |
||||
|
|
||||
|
<style> |
||||
|
.control-label { |
||||
|
justify-content: flex-end !important; |
||||
|
} |
||||
|
</style> |
||||
|
|
||||
|
<div class="row"> |
||||
|
<div class="col-sm-12"> |
||||
|
<form enctype="multipart/form-data" method="post" asp-action="SYS004Save"> |
||||
|
<div asp-validation-summary="ModelOnly" class="text-danger"></div> |
||||
|
<input type="hidden" asp-for="RoleID" /> |
||||
|
<input type="hidden" asp-for="CreateUserId" /> |
||||
|
<input type="hidden" asp-for="CreateDateTime" /> |
||||
|
<input type="hidden" asp-for="UpdateUserId" /> |
||||
|
<input type="hidden" asp-for="UpdateDateTime" /> |
||||
|
|
||||
|
<div class="form-group form-inline my-sm-1"> |
||||
|
<label asp-for="RoleNo" class="control-label col-sm-3"></label> |
||||
|
<input asp-for="RoleNo" class="form-control col-sm-9" placeholder="請輸入角色代碼" /> |
||||
|
<span asp-validation-for="RoleNo" class="text-danger offset-sm-3 my-sm-1"></span> |
||||
|
</div> |
||||
|
<div class="form-group form-inline my-sm-1"> |
||||
|
<label asp-for="RoleName" class="control-label col-sm-3"></label> |
||||
|
<input asp-for="RoleName" class="form-control col-sm-9" placeholder="請輸入角色名稱" /> |
||||
|
<span asp-validation-for="RoleName" class="text-danger offset-sm-3 my-sm-1"></span> |
||||
|
</div> |
||||
|
<div class="form-group form-inline my-sm-1"> |
||||
|
<label asp-for="RoleDesc" class="control-label col-sm-3"></label> |
||||
|
<input id="test1" asp-for="RoleDesc" class="form-control col-sm-9" placeholder="請輸入角色描述" /> |
||||
|
<span asp-validation-for="RoleDesc" class="text-danger offset-sm-3 my-sm-1"></span> |
||||
|
</div> |
||||
|
<div class="form-group"> |
||||
|
<input type="submit" value="保存" class="btn btn-primary offset-sm-3" /> |
||||
|
</div> |
||||
|
|
||||
|
</form> |
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
@section Scripts { |
||||
|
@{ |
||||
|
await Html.RenderPartialAsync("_ValidationScriptsPartial"); |
||||
|
await Html.RenderPartialAsync("_FileinputScriptsPartial"); |
||||
|
} |
||||
|
|
||||
|
<script type="text/javascript"> |
||||
|
$(document).ready(function () { |
||||
|
var error = '@Html.ValidationMessage("error")'; |
||||
|
if ($(error).text() != '') { |
||||
|
parent.hg.msg(error); |
||||
|
} |
||||
|
}); |
||||
|
</script> |
||||
|
} |
@ -0,0 +1,222 @@ |
|||||
|
@{ |
||||
|
ViewData["Title"] = "部门資料管理"; |
||||
|
Layout = "~/Views/Shared/_AMESLayout.cshtml"; |
||||
|
} |
||||
|
|
||||
|
<div class="layui-card"> |
||||
|
<div class="layui-card-header"> |
||||
|
<div class="layui-form"> |
||||
|
<div class="layui-form-item "> |
||||
|
<div class="layui-inline"><i class="fa fa-file-text-o fa-fw"></i> @ViewBag.Title</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="layui-card-body"> |
||||
|
<div class="layui-form"> |
||||
|
<div class="layui-form-item"> |
||||
|
<div class="layui-inline"> |
||||
|
<button type="button" id="btnAdd" class="layui-btn layui-btn-normal layui-btn-sm"><i class="layui-icon"></i>添加部门</button> |
||||
|
</div> |
||||
|
<div class="layui-inline" style="margin-left:10px;"> |
||||
|
<div class="layui-btn-group"> |
||||
|
<button type="button" class="layui-btn layui-btn-primary layui-btn-sm refresh"><i class="layui-icon"></i>刷新</button> |
||||
|
<button type="button" class="layui-btn layui-btn-primary layui-btn-sm open-all"><i class="layui-icon"></i>展开</button> |
||||
|
<button type="button" class="layui-btn layui-btn-primary layui-btn-sm close-all"><i class="layui-icon"></i>折叠</button> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="layui-inline" style="margin-right:0px;"> |
||||
|
<input type="text" class="layui-input" id="edtSearch" value="" placeholder="输入关键字" style="display: inline-block;width: 140px;height: 30px;line-height: 30px;margin-left:20px;" /> |
||||
|
</div> |
||||
|
<div class="layui-inline" style="margin-left:0px;"> |
||||
|
<div class="layui-btn-group"> |
||||
|
<button id="btnSearch" class="layui-btn layui-btn-sm layui-btn-normal"> |
||||
|
<i class="layui-icon"></i>搜索 |
||||
|
</button> |
||||
|
<button id="btnClearSearch" class="layui-btn layui-btn-sm layui-btn-primary"> |
||||
|
<i class="layui-icon">ဆ</i>清除 |
||||
|
</button> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<table class="layui-hide" id="test" lay-filter="test"></table> |
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
@section Scripts{ |
||||
|
<script type="text/javascript"> |
||||
|
var treeTable; |
||||
|
layui.config({ |
||||
|
base: '../lib/layui_ext/' |
||||
|
}).extend({ |
||||
|
treeTable: 'treetable/treeTable' |
||||
|
}).use(['treeTable'], function () { |
||||
|
treeTable = layui.treeTable; |
||||
|
|
||||
|
treeTable.on('tool(test)', function (obj) { |
||||
|
if (obj.event == 'add') { |
||||
|
hg.open('添加部门', '/SYS/SYS007C/' + obj.data.deptID, 600, 480); |
||||
|
} |
||||
|
if (obj.event == 'edit') { |
||||
|
hg.open('编辑部门', '/SYS/SYS007U/' + obj.data.deptID, 600, 480); |
||||
|
} |
||||
|
if (obj.event == 'del') { |
||||
|
hg.confirm('确定删除[' + obj.data.deptName + ']吗?', function () { |
||||
|
$.ajax({ |
||||
|
url: '/SYS/SYS007D', |
||||
|
data: { id: obj.data.deptID }, |
||||
|
type: 'POST', |
||||
|
success: function (result) { |
||||
|
if (result.success) { |
||||
|
hg.msghide("删除成功!"); |
||||
|
//本地移除数据 |
||||
|
layui.each(data, function (i, d) { |
||||
|
if (d.id == obj.data.deptID) { |
||||
|
data.splice(i, 1); |
||||
|
return false; |
||||
|
} |
||||
|
}); |
||||
|
init(data); |
||||
|
request(); |
||||
|
} |
||||
|
else { |
||||
|
hg.msg(result.msg); |
||||
|
} |
||||
|
}, |
||||
|
error: function () { |
||||
|
hg.msg("网络请求失败!"); |
||||
|
} |
||||
|
}); |
||||
|
|
||||
|
}); |
||||
|
} |
||||
|
}); |
||||
|
}); |
||||
|
|
||||
|
var data = []; |
||||
|
$(document).ready(function () { |
||||
|
request(); |
||||
|
}); |
||||
|
|
||||
|
function request() { |
||||
|
hg.request('/SYS/GetDeptInfoes', function (result) { |
||||
|
data = result.data; |
||||
|
init(data); |
||||
|
}); |
||||
|
} |
||||
|
var insTb; |
||||
|
function init(data) { |
||||
|
insTb = treeTable.render({ |
||||
|
elem: '#test', |
||||
|
height: 'full-180', |
||||
|
text: { |
||||
|
none: '<div style="padding: 18px 0;">暂无数据</div>' |
||||
|
}, |
||||
|
data: data, |
||||
|
tree: { |
||||
|
iconIndex: 0, |
||||
|
isPidData: true, |
||||
|
idName: 'deptID', |
||||
|
pidName: 'parentDeptID', |
||||
|
arrowType: 'arrow2', |
||||
|
getIcon: function (item) { |
||||
|
if (item.children != null && item.children.length > 0) { |
||||
|
return '<i class="ew-tree-icon ew-tree-icon-folder"></i>'; |
||||
|
} else { |
||||
|
return '<i class="ew-tree-icon ew-tree-icon-file"></i>'; |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
cols: [ |
||||
|
{ field: 'deptID', title: '部门编号', width: 200 }, |
||||
|
{ field: 'deptNo', title: '部门代碼', width: 200 }, |
||||
|
{ field: 'deptName', title: '部门名称', width: 300 }, |
||||
|
{ field: 'deptDesc', title: '部门描述' }, |
||||
|
{ |
||||
|
align: 'center', title: '操作', |
||||
|
templet: function (item) { |
||||
|
var btns = ''; |
||||
|
if (item.deptTypeID == 0) { |
||||
|
btns = btns + '<a class="layui-btn layui-btn-xs layui-btn-normal" lay-event="add">添加</a>'; |
||||
|
} |
||||
|
else { |
||||
|
btns = btns + '<a class="layui-btn layui-btn-xs layui-btn-disabled" lay-event="add">添加</a>'; |
||||
|
} |
||||
|
btns = btns + '<a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a>'; |
||||
|
|
||||
|
if (item.children != null && item.children.length > 0) { |
||||
|
btns = btns + '<a class="layui-btn layui-btn-danger layui-btn-xs layui-btn-disabled">删除</button>'; |
||||
|
} |
||||
|
else { |
||||
|
|
||||
|
btns = btns + '<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>'; |
||||
|
} |
||||
|
return btns; |
||||
|
} |
||||
|
} |
||||
|
], |
||||
|
style: 'margin-top:0;', |
||||
|
done: function () { |
||||
|
} |
||||
|
}); |
||||
|
insTb.expandAll(); |
||||
|
} |
||||
|
|
||||
|
// 全部展开 |
||||
|
$('.open-all').click(function () { |
||||
|
insTb.expandAll(); |
||||
|
}); |
||||
|
|
||||
|
// 全部折叠 |
||||
|
$('.close-all').click(function () { |
||||
|
insTb.foldAll(); |
||||
|
}); |
||||
|
|
||||
|
//刷新 |
||||
|
$('.refresh').click(function () { |
||||
|
request(); |
||||
|
}); |
||||
|
|
||||
|
//搜索 |
||||
|
$('#btnSearch').click(function () { |
||||
|
var keywords = $('#edtSearch').val(); |
||||
|
if (keywords) { |
||||
|
insTb.filterData(keywords); |
||||
|
} else { |
||||
|
insTb.clearFilter(); |
||||
|
} |
||||
|
}); |
||||
|
//清除 |
||||
|
$('#btnClearSearch').click(function () { |
||||
|
$('#edtSearch').val(""); |
||||
|
insTb.clearFilter(); |
||||
|
}); |
||||
|
|
||||
|
$('#btnAdd').click(function () { |
||||
|
hg.open('添加部门', '/SYS/SYS007C/0', 600, 480); |
||||
|
}); |
||||
|
|
||||
|
//通过table定义reload刷新列表,update本地填充一条数据 |
||||
|
var TABLE = function () { |
||||
|
return { |
||||
|
reload: function () { |
||||
|
request(); |
||||
|
}, |
||||
|
update: function (d) { |
||||
|
var model = $.parseJSON(d); |
||||
|
var up = false; |
||||
|
layui.each(data, function (i, d) { |
||||
|
if (d.id == model.id) { |
||||
|
data[i] = model; |
||||
|
up = true; |
||||
|
return false; |
||||
|
} |
||||
|
}); |
||||
|
up || data.push(model); |
||||
|
init(data); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
var table = new TABLE(); |
||||
|
</script> |
||||
|
} |
@ -0,0 +1,69 @@ |
|||||
|
@model AMESCoreStudio.WebApi.DeptInfo |
||||
|
|
||||
|
|
||||
|
@{ ViewData["Title"] = "SYS007C"; |
||||
|
Layout = "~/Views/Shared/_FormLayout.cshtml"; } |
||||
|
|
||||
|
<style> |
||||
|
.control-label { |
||||
|
justify-content: flex-end !important; |
||||
|
} |
||||
|
</style> |
||||
|
|
||||
|
<div class="row"> |
||||
|
<div class="col-sm-12"> |
||||
|
<form enctype="multipart/form-data" method="post" asp-action="SYS007Save"> |
||||
|
<div asp-validation-summary="ModelOnly" class="text-danger"></div> |
||||
|
<input type="hidden" asp-for="ParentDeptID" /> |
||||
|
<input type="hidden" asp-for="DeptTypeID" /> |
||||
|
|
||||
|
<div class="form-group form-inline my-sm-1"> |
||||
|
<label asp-for="DeptNo" class="control-label col-sm-3"></label> |
||||
|
<input asp-for="DeptNo" class="form-control col-sm-9" placeholder="請輸入部门代碼" /> |
||||
|
<span asp-validation-for="DeptNo" class="text-danger offset-sm-3 my-sm-1"></span> |
||||
|
</div> |
||||
|
<div class="form-group form-inline my-sm-1"> |
||||
|
<label asp-for="DeptName" class="control-label col-sm-3"></label> |
||||
|
<input asp-for="DeptName" class="form-control col-sm-9" placeholder="請輸入部门名称" /> |
||||
|
<span asp-validation-for="DeptName" class="text-danger offset-sm-3 my-sm-1"></span> |
||||
|
</div> |
||||
|
<div class="form-group form-inline my-sm-1"> |
||||
|
<label asp-for="DeptDesc" class="control-label col-sm-3"></label> |
||||
|
<input asp-for="DeptDesc" class="form-control col-sm-9" placeholder="請輸入部门描述" /> |
||||
|
<span asp-validation-for="DeptDesc" class="text-danger offset-sm-3 my-sm-1"></span> |
||||
|
</div> |
||||
|
<div class="form-group form-inline my-sm-1"> |
||||
|
<label asp-for="DeptTypeID" class="control-label col-sm-3"></label> |
||||
|
<select asp-for="DeptTypeID" asp-items="Html.GetEnumSelectList<AMESCoreStudio.WebApi.EnumDeptType>()" class="custom-select col-sm-8" disabled></select> |
||||
|
<span asp-validation-for="DeptTypeID" class="text-danger offset-sm-3 my-sm-1"></span> |
||||
|
</div> |
||||
|
<div class="form-group form-inline my-sm-1"> |
||||
|
<label asp-for="SortSeq" class="control-label col-sm-3"></label> |
||||
|
<input asp-for="SortSeq" class="form-control col-sm-9" placeholder="請輸入排序值" /> |
||||
|
<span asp-validation-for="SortSeq" class="text-danger offset-sm-3 my-sm-1"></span> |
||||
|
</div> |
||||
|
|
||||
|
<span style="color: firebrick;word-break: break-all;" class="text-danger offset-sm-3">@Html.ValidationMessage("error")</span> |
||||
|
<div class="form-group"> |
||||
|
<input type="submit" value="保存" class="btn btn-primary offset-sm-3" /> |
||||
|
</div> |
||||
|
|
||||
|
</form> |
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
@section Scripts { |
||||
|
@{ await Html.RenderPartialAsync("_ValidationScriptsPartial"); |
||||
|
await Html.RenderPartialAsync("_FileinputScriptsPartial"); } |
||||
|
|
||||
|
<script type="text/javascript"> |
||||
|
$(document).ready(function () { |
||||
|
var error = '@Html.ValidationMessage("error")'; |
||||
|
if ($(error).text() != '') { |
||||
|
parent.hg.msg(error); |
||||
|
} |
||||
|
}); |
||||
|
</script> |
||||
|
|
||||
|
|
||||
|
} |
@ -0,0 +1,69 @@ |
|||||
|
@model AMESCoreStudio.WebApi.DeptInfo |
||||
|
|
||||
|
@{ |
||||
|
ViewData["Title"] = "SYS007U"; |
||||
|
Layout = "~/Views/Shared/_FormLayout.cshtml"; |
||||
|
} |
||||
|
|
||||
|
<style> |
||||
|
.control-label { |
||||
|
justify-content: flex-end !important; |
||||
|
} |
||||
|
</style> |
||||
|
|
||||
|
<div class="row"> |
||||
|
<div class="col-sm-12"> |
||||
|
<form enctype="multipart/form-data" method="post" asp-action="SYS007Save"> |
||||
|
<div asp-validation-summary="ModelOnly" class="text-danger"></div> |
||||
|
<input type="hidden" asp-for="DeptID" /> |
||||
|
<input type="hidden" asp-for="ParentDeptID" /> |
||||
|
<input type="hidden" asp-for="DeptTypeID" /> |
||||
|
|
||||
|
<<div class="form-group form-inline my-sm-1"> |
||||
|
<label asp-for="DeptNo" class="control-label col-sm-3"></label> |
||||
|
<input asp-for="DeptNo" class="form-control col-sm-9" placeholder="請輸入部门代碼" /> |
||||
|
<span asp-validation-for="DeptNo" class="text-danger offset-sm-3 my-sm-1"></span> |
||||
|
</div> |
||||
|
<div class="form-group form-inline my-sm-1"> |
||||
|
<label asp-for="DeptName" class="control-label col-sm-3"></label> |
||||
|
<input asp-for="DeptName" class="form-control col-sm-9" placeholder="請輸入部门名称" /> |
||||
|
<span asp-validation-for="DeptName" class="text-danger offset-sm-3 my-sm-1"></span> |
||||
|
</div> |
||||
|
<div class="form-group form-inline my-sm-1"> |
||||
|
<label asp-for="DeptDesc" class="control-label col-sm-3"></label> |
||||
|
<input asp-for="DeptDesc" class="form-control col-sm-9" placeholder="請輸入部门描述" /> |
||||
|
<span asp-validation-for="DeptDesc" class="text-danger offset-sm-3 my-sm-1"></span> |
||||
|
</div> |
||||
|
<div class="form-group form-inline my-sm-1"> |
||||
|
<label asp-for="DeptTypeID" class="control-label col-sm-3"></label> |
||||
|
<select asp-for="DeptTypeID" asp-items="Html.GetEnumSelectList<AMESCoreStudio.WebApi.EnumDeptType>()" class="custom-select col-sm-8" disabled></select> |
||||
|
<span asp-validation-for="DeptTypeID" class="text-danger offset-sm-3 my-sm-1"></span> |
||||
|
</div> |
||||
|
<div class="form-group form-inline my-sm-1"> |
||||
|
<label asp-for="SortSeq" class="control-label col-sm-3"></label> |
||||
|
<input asp-for="SortSeq" class="form-control col-sm-9" placeholder="請輸入排序值" /> |
||||
|
<span asp-validation-for="SortSeq" class="text-danger offset-sm-3 my-sm-1"></span> |
||||
|
</div> |
||||
|
<div class="form-group"> |
||||
|
<input type="submit" value="保存" class="btn btn-primary offset-sm-3" /> |
||||
|
</div> |
||||
|
|
||||
|
</form> |
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
@section Scripts { |
||||
|
@{ |
||||
|
await Html.RenderPartialAsync("_ValidationScriptsPartial"); |
||||
|
await Html.RenderPartialAsync("_FileinputScriptsPartial"); |
||||
|
} |
||||
|
|
||||
|
<script type="text/javascript"> |
||||
|
$(document).ready(function () { |
||||
|
var error = '@Html.ValidationMessage("error")'; |
||||
|
if ($(error).text() != '') { |
||||
|
parent.hg.msg(error); |
||||
|
} |
||||
|
}); |
||||
|
</script> |
||||
|
} |
@ -0,0 +1,107 @@ |
|||||
|
@{ |
||||
|
ViewData["Title"] = "用户資料管理"; |
||||
|
Layout = "~/Views/Shared/_AMESLayout.cshtml"; |
||||
|
} |
||||
|
|
||||
|
<div class="layui-card"> |
||||
|
<div class="layui-card-header"> |
||||
|
<div class="layui-form"> |
||||
|
<div class="layui-form-item "> |
||||
|
<div class="layui-inline"><i class="fa fa-file-text-o fa-fw"></i> @ViewBag.Title</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="layui-card-body"> |
||||
|
<table class="layui-hide" id="dat" lay-filter="dat"></table> |
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
@section Scripts{ |
||||
|
<script type="text/javascript"> |
||||
|
//监听表单提交事件 |
||||
|
hg.form.onsubmit('querysubmit', function (data) { |
||||
|
table && table.reload(data); |
||||
|
}); |
||||
|
var tableCols = [[ |
||||
|
{ |
||||
|
field: 'userID', |
||||
|
width: 160, |
||||
|
title: '用户編號', |
||||
|
sort: true |
||||
|
}, |
||||
|
{ |
||||
|
field: 'userNo', |
||||
|
width: 160, |
||||
|
title: '用户代碼', |
||||
|
sort: true |
||||
|
}, |
||||
|
{ |
||||
|
field: 'userName', |
||||
|
title: '用户名称', |
||||
|
width:200 |
||||
|
}, |
||||
|
{ |
||||
|
field: 'userEMail', |
||||
|
title: '電子郵件', |
||||
|
width: 200 |
||||
|
}, |
||||
|
{ |
||||
|
field: 'userCellPhone', |
||||
|
title: '手機號碼' |
||||
|
}, |
||||
|
{ |
||||
|
field: 'right', |
||||
|
width: 200, |
||||
|
title: '操作', |
||||
|
fixed: 'right', |
||||
|
templet: function (d) { |
||||
|
return '<a class="layui-btn layui-btn-normal layui-btn-xs layui-icon layui-icon-edit" lay-event="edit">修改</a> <a class="layui-btn layui-btn-danger layui-btn-xs layui-icon layui-icon-delete" lay-event="del">删除</a>' |
||||
|
} |
||||
|
}] |
||||
|
]; |
||||
|
|
||||
|
//通过行tool编辑,lay-event="edit" |
||||
|
function edit(obj) { |
||||
|
if (obj.data.userID) { |
||||
|
hg.open('修改用户', '/SYS/SYS008U/' + obj.data.userID, 640, 640); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
//通过行tool删除,lay-event="del" |
||||
|
function del(obj) { |
||||
|
if (obj.data.userID) { |
||||
|
hg.confirm("用户:" + obj.data.userName + ",确定要删除吗?", function () { |
||||
|
$.ajax({ |
||||
|
url: '/SYS/SYS008D', |
||||
|
data: { id: obj.data.userID }, |
||||
|
type: 'POST', |
||||
|
success: function (data) { |
||||
|
if (data.success) { |
||||
|
obj.del(); //只删本地数据 |
||||
|
hg.msghide("删除成功!"); |
||||
|
} |
||||
|
else { |
||||
|
hg.msg(data.msg); |
||||
|
} |
||||
|
}, |
||||
|
error: function () { |
||||
|
hg.msg("网络请求失败!"); |
||||
|
} |
||||
|
}); |
||||
|
}); |
||||
|
} |
||||
|
} |
||||
|
var toolbar = [{ |
||||
|
text: '新增', |
||||
|
layuiicon: '', |
||||
|
class: 'layui-btn-normal', |
||||
|
handler: function () { |
||||
|
hg.open('新增用户', '/SYS/SYS008C', 640, 640); |
||||
|
|
||||
|
} |
||||
|
} |
||||
|
]; |
||||
|
//基本数据表格 |
||||
|
var table = hg.table.datatable('dat', '用户資料管理', '/SYS/GetUserInfoes', {}, tableCols, toolbar, true, 'full-100', ['filter', 'print', 'exports']); |
||||
|
</script> |
||||
|
} |
@ -0,0 +1,81 @@ |
|||||
|
@model AMESCoreStudio.WebApi.UserInfo |
||||
|
|
||||
|
|
||||
|
@{ ViewData["Title"] = "SYS008C"; |
||||
|
Layout = "~/Views/Shared/_FormLayout.cshtml"; } |
||||
|
|
||||
|
<style> |
||||
|
.control-label { |
||||
|
justify-content: flex-end !important; |
||||
|
} |
||||
|
</style> |
||||
|
|
||||
|
<div class="row"> |
||||
|
<div class="col-sm-12"> |
||||
|
<form enctype="multipart/form-data" method="post" asp-action="SYS008Save"> |
||||
|
<div asp-validation-summary="ModelOnly" class="text-danger"></div> |
||||
|
|
||||
|
<div class="form-group form-inline my-sm-1"> |
||||
|
<label asp-for="UserNo" class="control-label col-sm-3"></label> |
||||
|
<input asp-for="UserNo" class="form-control col-sm-9" placeholder="請輸入用户代碼" /> |
||||
|
<span asp-validation-for="UserNo" class="text-danger offset-sm-3 my-sm-1"></span> |
||||
|
</div> |
||||
|
<div class="form-group form-inline my-sm-1"> |
||||
|
<label asp-for="UserName" class="control-label col-sm-3"></label> |
||||
|
<input asp-for="UserName" class="form-control col-sm-9" placeholder="請輸入用户名称" /> |
||||
|
<span asp-validation-for="UserName" class="text-danger offset-sm-3 my-sm-1"></span> |
||||
|
</div> |
||||
|
<div class="form-group form-inline my-sm-1"> |
||||
|
<label asp-for="DeptID" class="control-label col-sm-3"></label> |
||||
|
<select asp-for="DeptID" asp-items="@ViewBag.DeptList" class="custom-select col-sm-9"></select> |
||||
|
<span asp-validation-for="DeptID" class="text-danger offset-sm-3 my-sm-1"></span> |
||||
|
</div> |
||||
|
<div class="form-group form-inline my-sm-1"> |
||||
|
<label asp-for="LoginNo" class="control-label col-sm-3"></label> |
||||
|
<input asp-for="LoginNo" class="form-control col-sm-9" placeholder="請輸入登入帳號" /> |
||||
|
<span asp-validation-for="LoginNo" class="text-danger offset-sm-3 my-sm-1"></span> |
||||
|
</div> |
||||
|
<div class="form-group form-inline my-sm-1"> |
||||
|
<label asp-for="LoginPassword" class="control-label col-sm-3"></label> |
||||
|
<input asp-for="LoginPassword" type="password" class="form-control col-sm-9" placeholder="請輸入登入密碼" /> |
||||
|
<span asp-validation-for="LoginPassword" class="text-danger offset-sm-3 my-sm-1"></span> |
||||
|
</div> |
||||
|
<div class="form-group form-inline my-sm-1"> |
||||
|
<label asp-for="UserEMail" class="control-label col-sm-3"></label> |
||||
|
<input asp-for="UserEMail" type="email" class="form-control col-sm-9" placeholder="請輸入用户郵件" /> |
||||
|
<span asp-validation-for="UserEMail" class="text-danger offset-sm-3 my-sm-1"></span> |
||||
|
</div> |
||||
|
<div class="form-group form-inline my-sm-1"> |
||||
|
<label asp-for="UserCellPhone" class="control-label col-sm-3"></label> |
||||
|
<input asp-for="UserCellPhone" type="tel" class="form-control col-sm-9" placeholder="請輸入用戶手機" /> |
||||
|
<span asp-validation-for="UserCellPhone" class="text-danger offset-sm-3 my-sm-1"></span> |
||||
|
</div> |
||||
|
<div class="form-group form-inline my-sm-1"> |
||||
|
<label asp-for="UserStatusID" class="control-label col-sm-3"></label> |
||||
|
<select asp-for="UserStatusID" asp-items="Html.GetEnumSelectList<AMESCoreStudio.WebApi.EnumUserStatus>()" class="custom-select col-sm-8" disabled></select> |
||||
|
<span asp-validation-for="UserStatusID" class="text-danger offset-sm-3 my-sm-1"></span> |
||||
|
</div> |
||||
|
<span style="color: firebrick;word-break: break-all;" class="text-danger offset-sm-3">@Html.ValidationMessage("error")</span> |
||||
|
<div class="form-group"> |
||||
|
<input type="submit" value="保存" class="btn btn-primary offset-sm-3" /> |
||||
|
</div> |
||||
|
|
||||
|
</form> |
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
@section Scripts { |
||||
|
@{ await Html.RenderPartialAsync("_ValidationScriptsPartial"); |
||||
|
await Html.RenderPartialAsync("_FileinputScriptsPartial"); } |
||||
|
|
||||
|
<script type="text/javascript"> |
||||
|
$(document).ready(function () { |
||||
|
var error = '@Html.ValidationMessage("error")'; |
||||
|
if ($(error).text() != '') { |
||||
|
parent.hg.msg(error); |
||||
|
} |
||||
|
}); |
||||
|
</script> |
||||
|
|
||||
|
|
||||
|
} |
@ -0,0 +1,83 @@ |
|||||
|
@model AMESCoreStudio.WebApi.UserInfo |
||||
|
|
||||
|
@{ |
||||
|
ViewData["Title"] = "SYS008U"; |
||||
|
Layout = "~/Views/Shared/_FormLayout.cshtml"; |
||||
|
} |
||||
|
|
||||
|
<style> |
||||
|
.control-label { |
||||
|
justify-content: flex-end !important; |
||||
|
} |
||||
|
</style> |
||||
|
|
||||
|
<div class="row"> |
||||
|
<div class="col-sm-12"> |
||||
|
<form enctype="multipart/form-data" method="post" asp-action="SYS008Save"> |
||||
|
<div asp-validation-summary="ModelOnly" class="text-danger"></div> |
||||
|
<input type="hidden" asp-for="UserID" /> |
||||
|
<input type="hidden" asp-for="LoginPassword" /> |
||||
|
|
||||
|
<div class="form-group form-inline my-sm-1"> |
||||
|
<label asp-for="UserNo" class="control-label col-sm-3"></label> |
||||
|
<input asp-for="UserNo" class="form-control col-sm-9" placeholder="請輸入用户代碼" /> |
||||
|
<span asp-validation-for="UserNo" class="text-danger offset-sm-3 my-sm-1"></span> |
||||
|
</div> |
||||
|
<div class="form-group form-inline my-sm-1"> |
||||
|
<label asp-for="UserName" class="control-label col-sm-3"></label> |
||||
|
<input asp-for="UserName" class="form-control col-sm-9" placeholder="請輸入用户名称" /> |
||||
|
<span asp-validation-for="UserName" class="text-danger offset-sm-3 my-sm-1"></span> |
||||
|
</div> |
||||
|
<div class="form-group form-inline my-sm-1"> |
||||
|
<label asp-for="DeptID" class="control-label col-sm-3"></label> |
||||
|
<select asp-for="DeptID" asp-items="@ViewBag.DeptList" class="custom-select col-sm-9"></select> |
||||
|
<span asp-validation-for="DeptID" class="text-danger offset-sm-3 my-sm-1"></span> |
||||
|
</div> |
||||
|
<div class="form-group form-inline my-sm-1"> |
||||
|
<label asp-for="LoginNo" class="control-label col-sm-3"></label> |
||||
|
<input asp-for="LoginNo" class="form-control col-sm-9" placeholder="請輸入登入帳號" /> |
||||
|
<span asp-validation-for="LoginNo" class="text-danger offset-sm-3 my-sm-1"></span> |
||||
|
</div> |
||||
|
<div class="form-group form-inline my-sm-1"> |
||||
|
<label asp-for="LoginPassword" class="control-label col-sm-3"></label> |
||||
|
<input asp-for="LoginPassword" type="password" class="form-control col-sm-9" placeholder="請輸入登入密碼" /> |
||||
|
<span asp-validation-for="LoginPassword" class="text-danger offset-sm-3 my-sm-1"></span> |
||||
|
</div> |
||||
|
<div class="form-group form-inline my-sm-1"> |
||||
|
<label asp-for="UserEMail" class="control-label col-sm-3"></label> |
||||
|
<input asp-for="UserEMail" type="email" class="form-control col-sm-9" placeholder="請輸入用户郵件" /> |
||||
|
<span asp-validation-for="UserEMail" class="text-danger offset-sm-3 my-sm-1"></span> |
||||
|
</div> |
||||
|
<div class="form-group form-inline my-sm-1"> |
||||
|
<label asp-for="UserCellPhone" class="control-label col-sm-3"></label> |
||||
|
<input asp-for="UserCellPhone" type="tel" class="form-control col-sm-9" placeholder="請輸入用戶手機" /> |
||||
|
<span asp-validation-for="UserCellPhone" class="text-danger offset-sm-3 my-sm-1"></span> |
||||
|
</div> |
||||
|
<div class="form-group form-inline my-sm-1"> |
||||
|
<label asp-for="UserStatusID" class="control-label col-sm-3"></label> |
||||
|
<select asp-for="UserStatusID" asp-items="Html.GetEnumSelectList<AMESCoreStudio.WebApi.EnumUserStatus>()" class="custom-select col-sm-8"></select> |
||||
|
<span asp-validation-for="UserStatusID" class="text-danger offset-sm-3 my-sm-1"></span> |
||||
|
</div> |
||||
|
<div class="form-group"> |
||||
|
<input type="submit" value="保存" class="btn btn-primary offset-sm-3" /> |
||||
|
</div> |
||||
|
|
||||
|
</form> |
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
@section Scripts { |
||||
|
@{ |
||||
|
await Html.RenderPartialAsync("_ValidationScriptsPartial"); |
||||
|
await Html.RenderPartialAsync("_FileinputScriptsPartial"); |
||||
|
} |
||||
|
|
||||
|
<script type="text/javascript"> |
||||
|
$(document).ready(function () { |
||||
|
var error = '@Html.ValidationMessage("error")'; |
||||
|
if ($(error).text() != '') { |
||||
|
parent.hg.msg(error); |
||||
|
} |
||||
|
}); |
||||
|
</script> |
||||
|
} |
@ -0,0 +1,25 @@ |
|||||
|
@model ErrorViewModel |
||||
|
@{ |
||||
|
ViewData["Title"] = "Error"; |
||||
|
} |
||||
|
|
||||
|
<h1 class="text-danger">Error.</h1> |
||||
|
<h2 class="text-danger">An error occurred while processing your request.</h2> |
||||
|
|
||||
|
@if (Model.ShowRequestId) |
||||
|
{ |
||||
|
<p> |
||||
|
<strong>Request ID:</strong> <code>@Model.RequestId</code> |
||||
|
</p> |
||||
|
} |
||||
|
|
||||
|
<h3>Development Mode</h3> |
||||
|
<p> |
||||
|
Swapping to <strong>Development</strong> environment will display more detailed information about the error that occurred. |
||||
|
</p> |
||||
|
<p> |
||||
|
<strong>The Development environment shouldn't be enabled for deployed applications.</strong> |
||||
|
It can result in displaying sensitive information from exceptions to end users. |
||||
|
For local debugging, enable the <strong>Development</strong> environment by setting the <strong>ASPNETCORE_ENVIRONMENT</strong> environment variable to <strong>Development</strong> |
||||
|
and restarting the app. |
||||
|
</p> |
@ -0,0 +1,40 @@ |
|||||
|
<!DOCTYPE html> |
||||
|
|
||||
|
<html> |
||||
|
<head> |
||||
|
<meta charset="UTF-8"> |
||||
|
<title>@ViewBag.Title - AMES 1.0.0</title> |
||||
|
<meta name="renderer" content="webkit|ie-comp|ie-stand"> |
||||
|
<meta http-equiv="hg-UA-Compatible" content="IE=edge,chrome=1"> |
||||
|
<meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no"> |
||||
|
<meta http-equiv="Cache-Control" content="no-siteapp" /> |
||||
|
<link rel="stylesheet" href="~/css/font-awesome.min.css"> |
||||
|
<link rel="stylesheet" href="~/lib/layui/css/layui.css" media="all"> |
||||
|
<link rel="stylesheet" href="~/lib/layui_ext/dtree/dtree.css" /> |
||||
|
<link rel="stylesheet" href="~/lib/layui_ext/dtree/font/dtreefont.css" /> |
||||
|
<link rel="stylesheet" href="~/lib/admin/admin.css" media="all"> |
||||
|
<link rel="stylesheet" href="~/lib/Scrollbar/jquery.scrollbar.css"> |
||||
|
<link rel='stylesheet' href='~/lib/nprogress/nprogress.css' /> |
||||
|
<link rel="stylesheet" href="~/css/style.css" asp-append-version="true"> |
||||
|
|
||||
|
<!-- 让IE8/9支持媒体查询,从而兼容栅格 --> |
||||
|
<!--[if lt IE 9]> |
||||
|
<script src="https://cdn.staticfile.org/html5shiv/r29/html5.min.js"></script> |
||||
|
<script src="https://cdn.staticfile.org/respond.js/1.4.2/respond.min.js"></script> |
||||
|
<![endif]--> |
||||
|
</head> |
||||
|
<body class="layui-body-content"> |
||||
|
<div class="layui-fluid"> |
||||
|
@RenderBody() |
||||
|
</div> |
||||
|
<script type="text/javascript" src="~/lib/layui/layui.js"></script> |
||||
|
<script type="text/javascript" src="~/lib/admin/admin.js" asp-append-version="true"></script> |
||||
|
<script type="text/javascript" src="~/lib/admin/jquery-1.9.1.min.js"></script> |
||||
|
<script type="text/javascript" src="~/lib/Scrollbar/jquery.scrollBar.js"></script> |
||||
|
<script type="text/javascript" src='~/lib/nprogress/nprogress.js'></script> |
||||
|
|
||||
|
<!-- 业务公共方法 --> |
||||
|
<script src="~/js/site.js" asp-append-version="true"></script> |
||||
|
@RenderSection("Scripts", required: false) |
||||
|
</body> |
||||
|
</html> |
@ -0,0 +1,3 @@ |
|||||
|
<link rel="stylesheet" href="~/lib/bootstrap-fileinput/fileinput.min.css" /> |
||||
|
<script src="~/lib/bootstrap-fileinput/fileinput.min.js"></script> |
||||
|
<script src="~/lib/bootstrap-fileinput/zh.js"></script> |
@ -0,0 +1,22 @@ |
|||||
|
<!DOCTYPE html> |
||||
|
<html lang="en"> |
||||
|
<head> |
||||
|
<meta charset="utf-8" /> |
||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> |
||||
|
<title>@ViewData["Title"]</title> |
||||
|
<link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap.min.css" /> |
||||
|
<link rel="stylesheet" href="~/lib/bootstrap/dist/css/icheck-bootstrap.min.css" /> |
||||
|
<link rel="stylesheet" href="~/css/style.css" asp-append-version="true"> |
||||
|
</head> |
||||
|
<body> |
||||
|
<div class="container"> |
||||
|
<main role="main" class="py-3"> |
||||
|
@RenderBody() |
||||
|
</main> |
||||
|
</div> |
||||
|
<script src="~/lib/jquery/dist/jquery.min.js"></script> |
||||
|
<script src="~/lib/bootstrap/dist/js/bootstrap.bundle.min.js"></script> |
||||
|
<script src="~/js/site.js" asp-append-version="true"></script> |
||||
|
@RenderSection("Scripts", required: false) |
||||
|
</body> |
||||
|
</html> |
@ -0,0 +1,30 @@ |
|||||
|
<!DOCTYPE html> |
||||
|
<html lang="en"> |
||||
|
<head> |
||||
|
<meta charset="utf-8" /> |
||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> |
||||
|
<title>@ViewData["Title"] - AMESCoreStudio.Web</title> |
||||
|
<link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap.min.css" /> |
||||
|
<link rel="stylesheet" href="~/css/site.css" /> |
||||
|
</head> |
||||
|
<body> |
||||
|
<header> |
||||
|
|
||||
|
</header> |
||||
|
<div class="container" style="max-width:100%;padding-left:0px;padding-right:0px"> |
||||
|
<main role="main" class="pb-3"> |
||||
|
@RenderBody() |
||||
|
</main> |
||||
|
</div> |
||||
|
|
||||
|
<footer class="border-top footer text-muted"> |
||||
|
<div class="container" style="text-align:center"> |
||||
|
© 2021 - AMESCoreStudio |
||||
|
</div> |
||||
|
</footer> |
||||
|
<script src="~/lib/jquery/dist/jquery.min.js"></script> |
||||
|
<script src="~/lib/bootstrap/dist/js/bootstrap.bundle.min.js"></script> |
||||
|
<script src="~/js/site.js" asp-append-version="true"></script> |
||||
|
@RenderSection("Scripts", required: false) |
||||
|
</body> |
||||
|
</html> |
@ -0,0 +1,48 @@ |
|||||
|
<!DOCTYPE html> |
||||
|
<html lang="en"> |
||||
|
<head> |
||||
|
<meta charset="utf-8" /> |
||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> |
||||
|
<title>@ViewData["Title"] - AMESCoreStudio.Web</title> |
||||
|
<link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap.min.css" /> |
||||
|
<link rel="stylesheet" href="~/css/site.css" /> |
||||
|
</head> |
||||
|
<body> |
||||
|
<header> |
||||
|
<nav class="navbar navbar-expand-sm navbar-toggleable-sm navbar-light bg-white border-bottom box-shadow mb-3"> |
||||
|
<div class="container"> |
||||
|
<a class="navbar-brand" asp-area="" asp-controller="Home" asp-action="Index">AMESCoreStudio.Web</a> |
||||
|
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target=".navbar-collapse" aria-controls="navbarSupportedContent" |
||||
|
aria-expanded="false" aria-label="Toggle navigation"> |
||||
|
<span class="navbar-toggler-icon"></span> |
||||
|
</button> |
||||
|
<div class="navbar-collapse collapse d-sm-inline-flex flex-sm-row-reverse"> |
||||
|
<ul class="navbar-nav flex-grow-1"> |
||||
|
<li class="nav-item"> |
||||
|
<a class="nav-link text-dark" asp-area="" asp-controller="Home" asp-action="Index">Home</a> |
||||
|
</li> |
||||
|
<li class="nav-item"> |
||||
|
<a class="nav-link text-dark" asp-area="" asp-controller="Home" asp-action="Privacy">Privacy</a> |
||||
|
</li> |
||||
|
</ul> |
||||
|
</div> |
||||
|
</div> |
||||
|
</nav> |
||||
|
</header> |
||||
|
<div class="container"> |
||||
|
<main role="main" class="pb-3"> |
||||
|
@RenderBody() |
||||
|
</main> |
||||
|
</div> |
||||
|
|
||||
|
<footer class="border-top footer text-muted"> |
||||
|
<div class="container" style="text-align:center"> |
||||
|
© 2021 - AMESCoreStudio |
||||
|
</div> |
||||
|
</footer> |
||||
|
<script src="~/lib/jquery/dist/jquery.min.js"></script> |
||||
|
<script src="~/lib/bootstrap/dist/js/bootstrap.bundle.min.js"></script> |
||||
|
<script src="~/js/site.js" asp-append-version="true"></script> |
||||
|
@RenderSection("Scripts", required: false) |
||||
|
</body> |
||||
|
</html> |
@ -0,0 +1,2 @@ |
|||||
|
<script src="~/lib/jquery-validation/dist/jquery.validate.min.js"></script> |
||||
|
<script src="~/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js"></script> |
@ -0,0 +1,3 @@ |
|||||
|
@using AMESCoreStudio.Web |
||||
|
@using AMESCoreStudio.Web.Models |
||||
|
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers |
@ -0,0 +1,3 @@ |
|||||
|
@{ |
||||
|
Layout = "_Layout"; |
||||
|
} |
@ -0,0 +1,9 @@ |
|||||
|
{ |
||||
|
"Logging": { |
||||
|
"LogLevel": { |
||||
|
"Default": "Information", |
||||
|
"Microsoft": "Warning", |
||||
|
"Microsoft.Hosting.Lifetime": "Information" |
||||
|
} |
||||
|
} |
||||
|
} |
@ -0,0 +1,14 @@ |
|||||
|
{ |
||||
|
"Setting": { |
||||
|
"Urls": "http://*:8080", |
||||
|
"ApiUrl": "http://127.0.0.1:5821" |
||||
|
}, |
||||
|
"Logging": { |
||||
|
"LogLevel": { |
||||
|
"Default": "Information", |
||||
|
"Microsoft": "Warning", |
||||
|
"Microsoft.Hosting.Lifetime": "Information" |
||||
|
} |
||||
|
}, |
||||
|
"AllowedHosts": "*" |
||||
|
} |
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,9 @@ |
|||||
|
{ |
||||
|
"runtimeOptions": { |
||||
|
"additionalProbingPaths": [ |
||||
|
"C:\\Users\\RayLin\\.dotnet\\store\\|arch|\\|tfm|", |
||||
|
"C:\\Users\\RayLin\\.nuget\\packages", |
||||
|
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages" |
||||
|
] |
||||
|
} |
||||
|
} |
@ -0,0 +1,13 @@ |
|||||
|
{ |
||||
|
"runtimeOptions": { |
||||
|
"tfm": "netcoreapp3.1", |
||||
|
"framework": { |
||||
|
"name": "Microsoft.AspNetCore.App", |
||||
|
"version": "3.1.0" |
||||
|
}, |
||||
|
"configProperties": { |
||||
|
"System.GC.Server": true, |
||||
|
"System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false |
||||
|
} |
||||
|
} |
||||
|
} |
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,9 @@ |
|||||
|
{ |
||||
|
"runtimeOptions": { |
||||
|
"additionalProbingPaths": [ |
||||
|
"C:\\Users\\RayLin\\.dotnet\\store\\|arch|\\|tfm|", |
||||
|
"C:\\Users\\RayLin\\.nuget\\packages", |
||||
|
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages" |
||||
|
] |
||||
|
} |
||||
|
} |
@ -0,0 +1,13 @@ |
|||||
|
{ |
||||
|
"runtimeOptions": { |
||||
|
"tfm": "netcoreapp3.1", |
||||
|
"framework": { |
||||
|
"name": "Microsoft.AspNetCore.App", |
||||
|
"version": "3.1.0" |
||||
|
}, |
||||
|
"configProperties": { |
||||
|
"System.GC.Server": true, |
||||
|
"System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false |
||||
|
} |
||||
|
} |
||||
|
} |
File diff suppressed because it is too large
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files changed in this diff
Loading…
Reference in new issue