migrate to new git
82
web/admin/Templates/TBS5ADM001/MasterPage.master
Normal file
@@ -0,0 +1,82 @@
|
||||
<%@ Master Language="C#" AutoEventWireup="true" CodeFile="MasterPage.master.cs" Inherits="admin_Templates_TBS5ADM001_MasterPage" %>
|
||||
<%@ Register Src="~/admin/Templates/TBS5ADM001/uc/nav.ascx" TagPrefix="uc1" TagName="nav" %>
|
||||
<%@ Register Src="~/admin/Templates/TBS5ADM001/uc/footer.ascx" TagPrefix="uc1" TagName="footer" %>
|
||||
<%@ Register Src="~/admin/Templates/TBS5ADM001/uc/menu.ascx" TagPrefix="uc1" TagName="menu" %>
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-TW">
|
||||
<head runat="server">
|
||||
<meta charset="utf-8" />
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
|
||||
<meta name="description" content="" />
|
||||
<meta name="author" content="" />
|
||||
<title><%= Page.Title %></title>
|
||||
<%--
|
||||
<%: Styles.Render("~/bundles/css") %>
|
||||
<link href="~/css/bundle.css" rel="stylesheet" />
|
||||
--%>
|
||||
<link href="~/js/bootstrap5/bootstrap.min.css" rel="stylesheet" />
|
||||
<%--<link href="~/js/fontawesome6/css/all.css" rel="stylesheet" />--%>
|
||||
<link href="~/js/mdi-font/css/materialdesignicons.min.css" rel="stylesheet" />
|
||||
<link href="~/js/vuetify_ez.css" rel="stylesheet" />
|
||||
<link href="~/js/sweetalert2/sweetalert2.min.css" rel="stylesheet" />
|
||||
|
||||
<link href="~/admin/Templates/TBS5ADM001/css/Style.css" rel="stylesheet" />
|
||||
<asp:ContentPlaceHolder id="page_header" runat="server">
|
||||
</asp:ContentPlaceHolder>
|
||||
</head>
|
||||
<body id="PageBody" class="" runat="server">
|
||||
<form id="form1" runat="server">
|
||||
<%-- ScriptManager 必需移除 --%>
|
||||
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
|
||||
<div id="app">
|
||||
<v-app>
|
||||
<uc1:nav runat="server" ID="nav"/>
|
||||
<div id="layoutSidenav" class="">
|
||||
<div id="layoutSidenav_nav" class="shadow" runat="server" ClientIDMode="static">
|
||||
<uc1:menu runat="server" id="menu" />
|
||||
</div>
|
||||
<div id="layoutSidenav_content" class="bg-light" runat="server" ClientIDMode="static">
|
||||
<main>
|
||||
<nav class="page-nav navbar bg-white navbar-light px-2 mb-2 border-bottom"
|
||||
><asp:ContentPlaceHolder id="page_nav" runat="server"></asp:ContentPlaceHolder></nav>
|
||||
<asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="server">
|
||||
</asp:ContentPlaceHolder>
|
||||
</main>
|
||||
<uc1:footer runat="server" ID="footer" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="offcanvas offcanvas-end" tabindex="-1" id="offcanvasRight" aria-labelledby="offcanvasRightLabel">
|
||||
<div class="offcanvas-header shadow">
|
||||
<h5 id="offcanvasRightLabel">查詢</h5>
|
||||
<button type="button" class="btn-close text-reset" data-bs-dismiss="offcanvas" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="offcanvas-body">
|
||||
<asp:ContentPlaceHolder id="offCanvasRight" runat="server">
|
||||
</asp:ContentPlaceHolder>
|
||||
</div>
|
||||
</div>
|
||||
</v-app>
|
||||
</div>
|
||||
<%--
|
||||
<%:Scripts.Render("~/bundles/js") %>
|
||||
<script src="<%=ResolveClientUrl("~/js/bundle.js")%>"></script>
|
||||
--%>
|
||||
<script>
|
||||
let HTTP_HOST = "<%=UrlHost()%>";
|
||||
</script>
|
||||
<script src="<%=ResolveUrl("~/js/bootstrap5/js/bootstrap.bundle.min.js")%>"></script>
|
||||
<script src="<%=ResolveUrl("~/js/jquery-3.6.0.min.js")%>"></script>
|
||||
<script src="<%=ResolveUrl("~/js/vue.min.js")%>"></script>
|
||||
<script src="<%=ResolveUrl("~/js/vuetify.min.js")%>"></script>
|
||||
<script src="<%=ResolveUrl("~/js/axios.min.js")%>"></script>
|
||||
<script src="<%=ResolveUrl("~/js/moment.min.js")%>"></script>
|
||||
<script src="<%=ResolveUrl("~/js/sweetalert2/sweetalert2.all.min.js") %>"></script>
|
||||
<script src="<%=ResolveUrl("~/admin/Templates/TBS5ADM001/js/Script.js")%>"></script>
|
||||
<asp:ContentPlaceHolder id="footer_script" runat="server">
|
||||
|
||||
</asp:ContentPlaceHolder>
|
||||
</form>
|
||||
</body>
|
||||
</html>
|
||||
33
web/admin/Templates/TBS5ADM001/MasterPage.master.cs
Normal file
@@ -0,0 +1,33 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
using System.Web.UI;
|
||||
using System.Web.UI.WebControls;
|
||||
|
||||
public partial class admin_Templates_TBS5ADM001_MasterPage : MyWeb.master
|
||||
{
|
||||
protected void Page_Load(object sender, EventArgs e)
|
||||
{
|
||||
MasterLoad();
|
||||
}
|
||||
public void set_navs(bool visible=true, string body_class="")
|
||||
{
|
||||
this.nav.Visible = visible;
|
||||
this.layoutSidenav_nav.Visible = visible;
|
||||
this.PageBody.Attributes["class"] += " "+ body_class;
|
||||
}
|
||||
/* From MyWeb.config*/
|
||||
public static bool IsHttps()
|
||||
{
|
||||
return HttpContext.Current.Request.IsSecureConnection;
|
||||
}
|
||||
public static string UrlHost()
|
||||
{
|
||||
string url = (IsHttps() ? "https://" : "http://")
|
||||
//+ HttpContext.Current.Request.Url.Host
|
||||
+ HttpContext.Current.Request.ServerVariables["HTTP_HOST"]
|
||||
+ VirtualPathUtility.ToAbsolute("~/");
|
||||
return url;
|
||||
}
|
||||
}
|
||||
675
web/admin/Templates/TBS5ADM001/css/Style.css
Normal file
@@ -0,0 +1,675 @@
|
||||
html, body {
|
||||
/* height: 100%*/
|
||||
overflow:hidden;
|
||||
}
|
||||
|
||||
#layoutAuthentication {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
min-height: 100vh
|
||||
}
|
||||
|
||||
#layoutAuthentication #layoutAuthentication_content {
|
||||
min-width: 0;
|
||||
flex-grow: 1
|
||||
}
|
||||
|
||||
#layoutAuthentication #layoutAuthentication_footer {
|
||||
min-width: 0
|
||||
}
|
||||
|
||||
#layoutSidenav {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
#layoutSidenav #layoutSidenav_nav .sb-sidenav .sb-sidenav-menu .nav .nav-link {
|
||||
padding:0.25rem 0.75rem;
|
||||
}
|
||||
#layoutSidenav #layoutSidenav_nav {
|
||||
flex-basis: 225px;
|
||||
flex-shrink: 0;
|
||||
transition: transform .15s ease-in-out;
|
||||
z-index: 1038;
|
||||
transform: translateX(-225px)
|
||||
}
|
||||
@media (max-width:991px){
|
||||
#layoutSidenav #layoutSidenav_nav{
|
||||
box-shadow:none !important;
|
||||
}
|
||||
}
|
||||
#layoutSidenav #layoutSidenav_content {
|
||||
position: relative;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
min-width: 0;
|
||||
flex-grow: 1;
|
||||
min-height: calc(100vh - 56px);
|
||||
margin-left: -225px
|
||||
}
|
||||
#layoutSidenav,
|
||||
#layoutSidenav_nav,
|
||||
#layoutSidenav_content {
|
||||
max-height: calc(100vh - 3.5rem);
|
||||
overflow-y: auto;
|
||||
}
|
||||
#layoutSidenav_nav > .sb-sidenav {
|
||||
min-height: 100%;
|
||||
height: auto;
|
||||
}
|
||||
#layoutSidenav_nav > .sb-sidenav {
|
||||
min-height: 100%;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
#layoutSidenav_nav::-webkit-scrollbar {
|
||||
height: 0.5rem;
|
||||
width: 0.5rem;
|
||||
background: #EEE;
|
||||
}
|
||||
|
||||
#layoutSidenav_nav::-webkit-scrollbar-thumb {
|
||||
background: #CCC;
|
||||
border-radius: 1ex;
|
||||
border: 2px solid transparent;
|
||||
background-clip: content-box;
|
||||
}
|
||||
|
||||
#layoutSidenav_nav::-webkit-scrollbar-thumb:hover {
|
||||
background: #AAA;
|
||||
border: 0 solid transparent;
|
||||
}
|
||||
|
||||
#layoutSidenav_nav::-webkit-scrollbar-button {
|
||||
width: 0.5rem;
|
||||
height: 0.5rem;
|
||||
background-color: #EEE;
|
||||
}
|
||||
|
||||
#layoutSidenav_nav::-webkit-scrollbar-button:hover {
|
||||
background-color: #AAA;
|
||||
}
|
||||
|
||||
#layoutSidenav_nav::-webkit-scrollbar-corner {
|
||||
}
|
||||
.sb-sidenav-toggled #layoutSidenav #layoutSidenav_nav {
|
||||
transform: translateX(0)
|
||||
}
|
||||
|
||||
.sb-sidenav-toggled #layoutSidenav #layoutSidenav_content:before {
|
||||
content: "";
|
||||
display: block;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: #000;
|
||||
z-index: 1037;
|
||||
opacity: .5;
|
||||
transition: opacity .3s ease-in-out
|
||||
}
|
||||
|
||||
@media(min-width:992px) {
|
||||
#layoutSidenav #layoutSidenav_nav {
|
||||
transform: translateX(0)
|
||||
}
|
||||
|
||||
#layoutSidenav #layoutSidenav_content {
|
||||
margin-left: 0;
|
||||
transition: margin .15s ease-in-out
|
||||
}
|
||||
|
||||
.sb-sidenav-toggled #layoutSidenav #layoutSidenav_nav {
|
||||
transform: translateX(-225px)
|
||||
}
|
||||
.sb-sidenav-toggled #layoutSidenav #layoutSidenav_content {
|
||||
margin-left: -225px
|
||||
}
|
||||
|
||||
.sb-sidenav-toggled #layoutSidenav #layoutSidenav_content:before {
|
||||
display: none
|
||||
}
|
||||
}
|
||||
|
||||
.sb-nav-fixed .sb-topnav {
|
||||
z-index: 1039
|
||||
}
|
||||
|
||||
.sb-nav-fixed #layoutSidenav #layoutSidenav_nav {
|
||||
width: 225px;
|
||||
height: 100vh;
|
||||
z-index: 1038
|
||||
}
|
||||
|
||||
.sb-nav-fixed #layoutSidenav #layoutSidenav_nav .sb-sidenav {
|
||||
padding-top: 56px
|
||||
}
|
||||
|
||||
.sb-nav-fixed #layoutSidenav #layoutSidenav_nav .sb-sidenav .sb-sidenav-menu {
|
||||
overflow-y: auto
|
||||
}
|
||||
|
||||
.sb-nav-fixed #layoutSidenav #layoutSidenav_content {
|
||||
padding-left: 225px;
|
||||
top: 56px
|
||||
}
|
||||
|
||||
#layoutError {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
min-height: 100vh
|
||||
}
|
||||
|
||||
#layoutError #layoutError_content {
|
||||
min-width: 0;
|
||||
flex-grow: 1
|
||||
}
|
||||
|
||||
#layoutError #layoutError_footer {
|
||||
min-width: 0
|
||||
}
|
||||
|
||||
.img-error {
|
||||
max-width: 20rem
|
||||
}
|
||||
|
||||
.nav .nav-link .sb-nav-link-icon, .sb-sidenav-menu .nav-link .sb-nav-link-icon {
|
||||
margin-right: .5rem
|
||||
}
|
||||
|
||||
.sb-topnav {
|
||||
padding-left: 0;
|
||||
height: 3.5rem; /*56px;*/
|
||||
z-index: 100;/*1039*/
|
||||
}
|
||||
|
||||
.sb-topnav .navbar-brand {
|
||||
|
||||
}
|
||||
.sb-topnav .breadcrumb {
|
||||
margin:0;
|
||||
}
|
||||
.sb-topnav .breadcrumb li{
|
||||
color: var(--bs-light);
|
||||
}
|
||||
.sb-topnav .breadcrumb li.active {
|
||||
color: var(--bs-white);
|
||||
}
|
||||
.sb-topnav .breadcrumb a {
|
||||
color: var(--bs-light);
|
||||
}
|
||||
.sb-topnav.navbar-dark #sidebarToggle {
|
||||
color: rgba(255,255,255,.5)
|
||||
}
|
||||
|
||||
.sb-topnav.navbar-light #sidebarToggle {
|
||||
color: #212529
|
||||
}
|
||||
|
||||
.sb-sidenav {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
height: 100%;
|
||||
flex-wrap: nowrap
|
||||
}
|
||||
|
||||
.sb-sidenav .sb-sidenav-menu {
|
||||
flex-grow: 1
|
||||
}
|
||||
|
||||
.sb-sidenav .sb-sidenav-menu .nav {
|
||||
flex-direction: column;
|
||||
flex-wrap: nowrap
|
||||
}
|
||||
|
||||
.sb-sidenav .sb-sidenav-menu .nav .sb-sidenav-menu-heading {
|
||||
padding: 1.75rem 1rem .75rem;
|
||||
font-size: .75rem;
|
||||
font-weight: bold;
|
||||
text-transform: uppercase
|
||||
}
|
||||
|
||||
.sb-sidenav .sb-sidenav-menu .nav .nav-link {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding-top: .75rem;
|
||||
padding-bottom: .75rem;
|
||||
position: relative
|
||||
}
|
||||
|
||||
.sb-sidenav .sb-sidenav-menu .nav .nav-link .sb-nav-link-icon {
|
||||
font-size: .9rem
|
||||
}
|
||||
|
||||
.sb-sidenav .sb-sidenav-menu .nav .nav-link .sb-sidenav-collapse-arrow {
|
||||
display: inline-block;
|
||||
margin-left: auto;
|
||||
transition: transform .15s ease
|
||||
}
|
||||
|
||||
.sb-sidenav .sb-sidenav-menu .nav .nav-link.collapsed .sb-sidenav-collapse-arrow {
|
||||
transform: rotate(-90deg)
|
||||
}
|
||||
|
||||
.sb-sidenav .sb-sidenav-menu .nav .sb-sidenav-menu-nested {
|
||||
margin-left: 1.5rem;
|
||||
flex-direction: column
|
||||
}
|
||||
|
||||
.sb-sidenav .sb-sidenav-footer {
|
||||
padding: .75rem;
|
||||
flex-shrink: 0
|
||||
}
|
||||
|
||||
.sb-sidenav-dark {
|
||||
background-color: #212529;
|
||||
color: rgba(255,255,255,.5)
|
||||
}
|
||||
|
||||
.sb-sidenav-dark .sb-sidenav-menu .sb-sidenav-menu-heading {
|
||||
color: rgba(255,255,255,.25)
|
||||
}
|
||||
|
||||
.sb-sidenav-dark .sb-sidenav-menu .nav-link {
|
||||
color: rgba(255,255,255,.5)
|
||||
}
|
||||
|
||||
.sb-sidenav-dark .sb-sidenav-menu .nav-link .sb-nav-link-icon {
|
||||
color: rgba(255,255,255,.25)
|
||||
}
|
||||
|
||||
.sb-sidenav-dark .sb-sidenav-menu .nav-link .sb-sidenav-collapse-arrow {
|
||||
color: rgba(255,255,255,.25)
|
||||
}
|
||||
|
||||
.sb-sidenav-dark .sb-sidenav-menu .nav-link:hover {
|
||||
color: #fff
|
||||
}
|
||||
|
||||
.sb-sidenav-dark .sb-sidenav-menu .nav-link.active {
|
||||
color: #fff
|
||||
}
|
||||
|
||||
.sb-sidenav-dark .sb-sidenav-menu .nav-link.active .sb-nav-link-icon {
|
||||
color: #fff
|
||||
}
|
||||
|
||||
.sb-sidenav-dark .sb-sidenav-footer {
|
||||
background-color: #343a40
|
||||
}
|
||||
|
||||
.sb-sidenav-light {
|
||||
background-color: #f8f9fa;
|
||||
color: #212529
|
||||
}
|
||||
|
||||
.sb-sidenav-light .sb-sidenav-menu .sb-sidenav-menu-heading {
|
||||
color: #adb5bd
|
||||
}
|
||||
|
||||
.sb-sidenav-light .sb-sidenav-menu .nav-link {
|
||||
color: #212529
|
||||
}
|
||||
|
||||
.sb-sidenav-light .sb-sidenav-menu .nav-link .sb-nav-link-icon {
|
||||
color: #adb5bd
|
||||
}
|
||||
|
||||
.sb-sidenav-light .sb-sidenav-menu .nav-link .sb-sidenav-collapse-arrow {
|
||||
color: #adb5bd
|
||||
}
|
||||
|
||||
.sb-sidenav-light .sb-sidenav-menu .nav-link:hover {
|
||||
color: #0d6efd
|
||||
}
|
||||
|
||||
.sb-sidenav-light .sb-sidenav-menu .nav-link.active {
|
||||
color: #0d6efd
|
||||
}
|
||||
|
||||
.sb-sidenav-light .sb-sidenav-menu .nav-link.active .sb-nav-link-icon {
|
||||
color: #0d6efd
|
||||
}
|
||||
|
||||
.sb-sidenav-light .sb-sidenav-footer {
|
||||
background-color: #e9ecef
|
||||
}
|
||||
|
||||
.dataTable-wrapper .dataTable-container {
|
||||
font-size: .875rem
|
||||
}
|
||||
|
||||
.btn-datatable {
|
||||
height: 20px !important;
|
||||
width: 20px !important;
|
||||
font-size: .75rem;
|
||||
border-radius: .25rem !important
|
||||
}
|
||||
.btn.rounded-circle {
|
||||
padding: 0;
|
||||
width: 2em;
|
||||
height: 2em;
|
||||
line-height: 2;
|
||||
}
|
||||
body.nav_hide #layoutSidenav {
|
||||
min-height: 100vh;
|
||||
margin: 0;
|
||||
}
|
||||
body.nav_hide #layoutSidenav #layoutSidenav_content {
|
||||
min-height: 100vh;
|
||||
margin: 0;
|
||||
}
|
||||
body.nav_hide .row.recaptcha {
|
||||
align-items: center;
|
||||
}
|
||||
body.nav_hide .validation-msg {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
padding: 0.5rem;
|
||||
color: var(--bs-red) !important;
|
||||
}
|
||||
#offcanvasRightLabel {
|
||||
margin: 0;
|
||||
}
|
||||
#offcanvasRight .offcanvas-body>div {
|
||||
display:none;
|
||||
}
|
||||
#search_btn{
|
||||
display:none;
|
||||
}
|
||||
body.home {
|
||||
/*background-image: url(../images/bg2.jpg);*/
|
||||
background-size: cover;
|
||||
background-blend-mode: unset;
|
||||
}
|
||||
body.home .card {
|
||||
background-color: rgba(255,255,255,0.25);
|
||||
backdrop-filter: blur(50px);
|
||||
}
|
||||
body.home footer{
|
||||
position:fixed;
|
||||
bottom:0;
|
||||
left:0;
|
||||
right:0;
|
||||
opacity: 0.5;
|
||||
}
|
||||
/* .bg-ani */
|
||||
body.home {
|
||||
/*body .home, :root {*/
|
||||
--bg-ani-image: url(../images/bg2.jpg);
|
||||
--bg-ani-zoom: 0.2;
|
||||
--bg-ani-duration: 30s;
|
||||
--bg-ani-transition: 5s;
|
||||
}
|
||||
body.home .bg-ani > svg {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
color:rgb(102,58,34,.4);
|
||||
}
|
||||
.bg-ani {
|
||||
overflow: hidden;
|
||||
text-align: center;
|
||||
position: fixed;
|
||||
top: 0;
|
||||
bottom: -3rem;
|
||||
left: 0;
|
||||
right: 0;
|
||||
/*z-index: -1;*/
|
||||
}
|
||||
.bg-ani .zoominheader {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-image: var(--bg-ani-image);
|
||||
background-size: cover;
|
||||
background-attachment: fixed;
|
||||
background-repeat: repeat;
|
||||
background-blend-mode: unset;
|
||||
position: relative;
|
||||
animation: zoomin var(--bg-ani-duration) ease-in infinite;
|
||||
transition: all var(--bg-ani-transition) ease-in-out;
|
||||
overflow: hidden;
|
||||
}
|
||||
.bg-ani .zoomoutheader {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
animation: zoomout var(--bg-ani-duration) ease-in infinite;
|
||||
transition: all var(--bg-ani-transition) ease-in-out;
|
||||
overflow: hidden;
|
||||
}
|
||||
@keyframes zoomin {
|
||||
0% {
|
||||
transform: scale(1);
|
||||
}
|
||||
50% {
|
||||
transform: scale(calc(1 + var(--bg-ani-zoom)));
|
||||
}
|
||||
100% {
|
||||
transform: scale(1);
|
||||
}
|
||||
}
|
||||
@keyframes zoomout {
|
||||
0% {
|
||||
transform: scale(1);
|
||||
}
|
||||
50% {
|
||||
transform: scale(calc(1 - var(--bg-ani-zoom)));
|
||||
}
|
||||
100% {
|
||||
transform: scale(1);
|
||||
}
|
||||
}
|
||||
/* /.bg-ani */
|
||||
.btn-default {
|
||||
color: #333333;
|
||||
background-color: #ffffff;
|
||||
border-color: #cccccc;
|
||||
}
|
||||
/* alert */
|
||||
main .alert {
|
||||
position: sticky;
|
||||
top: 0;
|
||||
z-index: 99;
|
||||
}
|
||||
main .page-nav {
|
||||
position: sticky;
|
||||
top: 0;
|
||||
z-index: 99;
|
||||
}
|
||||
/* bootstrap-toggle */
|
||||
main .checkbox label .toggle, main .checkbox-inline .toggle {
|
||||
margin-left: 0;
|
||||
}
|
||||
main .toggle-group label{
|
||||
font-size:.875rem;
|
||||
}
|
||||
|
||||
html, body, #layoutSidenav, #layoutSidenav_nav, #layoutSidenav_content {
|
||||
scroll-behavior: smooth;
|
||||
}
|
||||
|
||||
#sidebarToggle {
|
||||
font-size: 1.2rem;
|
||||
border-radius: 37% !important;
|
||||
color: rgba(255,255,255,0.75) !important;
|
||||
}
|
||||
.page-nav ~ #content [id]{
|
||||
scroll-margin: 60px !important;
|
||||
}
|
||||
.page-nav:empty{
|
||||
display:none;
|
||||
}
|
||||
.aspxTree a{
|
||||
color: var(--bs-dark);
|
||||
}
|
||||
.aspxTree img{
|
||||
width:12px;
|
||||
opacity:0.6;
|
||||
margin-top:-4px;
|
||||
margin-right:4px;
|
||||
}
|
||||
.aspxTree>div img{
|
||||
/*display:none;*/
|
||||
visibility:hidden;
|
||||
}
|
||||
.aspxTree a > b > * {
|
||||
color: var(--bs-primary) !important;
|
||||
}
|
||||
.sort-iframe{
|
||||
width:100%;
|
||||
min-height:500px;
|
||||
overflow:auto;
|
||||
}
|
||||
.label-right .col-form-label{
|
||||
text-align:right;
|
||||
}
|
||||
.col-form-label::after{
|
||||
/*content:":";*/
|
||||
}
|
||||
@media (min-width:576px) {
|
||||
.label-sm-right .col-form-label {
|
||||
text-align: right;
|
||||
}
|
||||
}
|
||||
@media (min-width:768px) {
|
||||
.label-md-right .col-form-label {
|
||||
text-align: right;
|
||||
}
|
||||
}
|
||||
@media (min-width:992px) {
|
||||
.label-lg-right .col-form-label {
|
||||
text-align: right;
|
||||
}
|
||||
}
|
||||
@media (min-width:1200px) {
|
||||
.label-xl-right .col-form-label {
|
||||
text-align: right;
|
||||
}
|
||||
}
|
||||
@media (min-width:1400px) {
|
||||
.label-xl-right .col-form-label {
|
||||
text-align: right;
|
||||
}
|
||||
}
|
||||
/*------------ theme: win11 ------------*/
|
||||
.sb-topnav {
|
||||
background-color: #006FC9 !important;
|
||||
}
|
||||
|
||||
.sb-topnav.navbar-dark #sidebarToggle:hover {
|
||||
background-color: rgba(255,255,255,0.3) !important;
|
||||
}
|
||||
|
||||
.breadcrumb-item + .breadcrumb-item::before {
|
||||
color: var(--bs-light);
|
||||
}
|
||||
|
||||
.sb-sidenav-light .sb-sidenav-menu .nav-link.active .sb-nav-link-icon,
|
||||
.sb-sidenav-light .sb-sidenav-menu .nav-link.active {
|
||||
color: var(--bs-primary);
|
||||
}
|
||||
|
||||
.sb-sidenav-light {
|
||||
background-color: #FFF;
|
||||
}
|
||||
|
||||
#layoutSidenav #layoutSidenav_content {
|
||||
background-color: rgb(242, 242, 242) !important;
|
||||
}
|
||||
|
||||
.card {
|
||||
border: 0 none;
|
||||
box-shadow: rgb(0 0 0 / 13%) 0px 1.6px 3.6px 0px, rgb(0 0 0 / 11%) 0px 0.3px 0.9px 0px !important;
|
||||
}
|
||||
|
||||
.card-header {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
.card-header:hover {
|
||||
background-color: rgba(0,0,0,.03);
|
||||
}
|
||||
|
||||
.nav-tabs .nav-link {
|
||||
border: 0 none;
|
||||
color: var(--bs-dark);
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.nav-tabs .nav-item.show .nav-link, .nav-tabs .nav-link:hover {
|
||||
/*outline: 1px solid rgb(0 0 0 / 10%);*/
|
||||
border-bottom: 1px solid var(--bs-blue);
|
||||
padding-bottom: calc( 0.5rem - 1px);
|
||||
color: var(--bs-blue);
|
||||
z-index: 9;
|
||||
}
|
||||
|
||||
.nav-tabs .nav-item.show .nav-link, .nav-tabs .nav-link.active {
|
||||
background-color: #FFF;
|
||||
border-bottom: 2px solid var(--bs-blue);
|
||||
padding-bottom: calc( 0.5rem - 1px);
|
||||
}
|
||||
|
||||
.dropdown-menu-macos {
|
||||
padding: .5rem;
|
||||
border-radius: .5rem;
|
||||
}
|
||||
|
||||
.dropdown-menu-macos .dropdown-item {
|
||||
border-radius: .25rem;
|
||||
}
|
||||
|
||||
table.gridview {
|
||||
}
|
||||
|
||||
table.gridview .thead {
|
||||
}
|
||||
|
||||
table.gridview .thead a {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
table.gridview .thead a:hover {
|
||||
text-decoration: underline;
|
||||
text-underline-offset: 2px;
|
||||
}
|
||||
|
||||
table.gridview tr:last-of-type:hover,
|
||||
table.gridview tr:last-of-type:hover td {
|
||||
--bs-table-accent-bg: var(--bs-white);
|
||||
}
|
||||
|
||||
table.gridview td input[type=checkbox] {
|
||||
border-radius: 0.25em;
|
||||
width: 1em;
|
||||
height: 1em;
|
||||
border: 1px solid rgba(0,0,0,.25);
|
||||
}
|
||||
/*------------ theme: win11 ------------*/
|
||||
[data-search-control] .form-control[readonly] {
|
||||
background-color:#FFF;
|
||||
}
|
||||
/*--vuetify fix--*/
|
||||
.v-application--wrap {
|
||||
min-height: auto !important;
|
||||
}
|
||||
html {
|
||||
overflow-x: auto !important;
|
||||
overflow-y: auto !important;
|
||||
}
|
||||
|
||||
.v-application .primary {
|
||||
background-color: #1976d2 !important;
|
||||
border-color: #1976d2 !important;
|
||||
}
|
||||
.readonly {
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.text-white-space-pre{
|
||||
white-space:pre;
|
||||
}
|
||||
703
web/admin/Templates/TBS5ADM001/css/vuetify_theme.css
Normal file
@@ -0,0 +1,703 @@
|
||||
.v-application a {
|
||||
color: #1976d2;
|
||||
}
|
||||
|
||||
.v-application .primary {
|
||||
background-color: #1976d2 !important;
|
||||
border-color: #1976d2 !important;
|
||||
}
|
||||
|
||||
.v-application .primary--text {
|
||||
color: #1976d2 !important;
|
||||
caret-color: #1976d2 !important;
|
||||
}
|
||||
|
||||
.v-application .primary.lighten-5 {
|
||||
background-color: #c7fdff !important;
|
||||
border-color: #c7fdff !important;
|
||||
}
|
||||
|
||||
.v-application .primary--text.text--lighten-5 {
|
||||
color: #c7fdff !important;
|
||||
caret-color: #c7fdff !important;
|
||||
}
|
||||
|
||||
.v-application .primary.lighten-4 {
|
||||
background-color: #a8e0ff !important;
|
||||
border-color: #a8e0ff !important;
|
||||
}
|
||||
|
||||
.v-application .primary--text.text--lighten-4 {
|
||||
color: #a8e0ff !important;
|
||||
caret-color: #a8e0ff !important;
|
||||
}
|
||||
|
||||
.v-application .primary.lighten-3 {
|
||||
background-color: #8ac5ff !important;
|
||||
border-color: #8ac5ff !important;
|
||||
}
|
||||
|
||||
.v-application .primary--text.text--lighten-3 {
|
||||
color: #8ac5ff !important;
|
||||
caret-color: #8ac5ff !important;
|
||||
}
|
||||
|
||||
.v-application .primary.lighten-2 {
|
||||
background-color: #6aaaff !important;
|
||||
border-color: #6aaaff !important;
|
||||
}
|
||||
|
||||
.v-application .primary--text.text--lighten-2 {
|
||||
color: #6aaaff !important;
|
||||
caret-color: #6aaaff !important;
|
||||
}
|
||||
|
||||
.v-application .primary.lighten-1 {
|
||||
background-color: #488fef !important;
|
||||
border-color: #488fef !important;
|
||||
}
|
||||
|
||||
.v-application .primary--text.text--lighten-1 {
|
||||
color: #488fef !important;
|
||||
caret-color: #488fef !important;
|
||||
}
|
||||
|
||||
.v-application .primary.darken-1 {
|
||||
background-color: #005eb6 !important;
|
||||
border-color: #005eb6 !important;
|
||||
}
|
||||
|
||||
.v-application .primary--text.text--darken-1 {
|
||||
color: #005eb6 !important;
|
||||
caret-color: #005eb6 !important;
|
||||
}
|
||||
|
||||
.v-application .primary.darken-2 {
|
||||
background-color: #00479b !important;
|
||||
border-color: #00479b !important;
|
||||
}
|
||||
|
||||
.v-application .primary--text.text--darken-2 {
|
||||
color: #00479b !important;
|
||||
caret-color: #00479b !important;
|
||||
}
|
||||
|
||||
.v-application .primary.darken-3 {
|
||||
background-color: #003180 !important;
|
||||
border-color: #003180 !important;
|
||||
}
|
||||
|
||||
.v-application .primary--text.text--darken-3 {
|
||||
color: #003180 !important;
|
||||
caret-color: #003180 !important;
|
||||
}
|
||||
|
||||
.v-application .primary.darken-4 {
|
||||
background-color: #001e67 !important;
|
||||
border-color: #001e67 !important;
|
||||
}
|
||||
|
||||
.v-application .primary--text.text--darken-4 {
|
||||
color: #001e67 !important;
|
||||
caret-color: #001e67 !important;
|
||||
}
|
||||
|
||||
.v-application .secondary {
|
||||
background-color: #424242 !important;
|
||||
border-color: #424242 !important;
|
||||
}
|
||||
|
||||
.v-application .secondary--text {
|
||||
color: #424242 !important;
|
||||
caret-color: #424242 !important;
|
||||
}
|
||||
|
||||
.v-application .secondary.lighten-5 {
|
||||
background-color: #c1c1c1 !important;
|
||||
border-color: #c1c1c1 !important;
|
||||
}
|
||||
|
||||
.v-application .secondary--text.text--lighten-5 {
|
||||
color: #c1c1c1 !important;
|
||||
caret-color: #c1c1c1 !important;
|
||||
}
|
||||
|
||||
.v-application .secondary.lighten-4 {
|
||||
background-color: #a6a6a6 !important;
|
||||
border-color: #a6a6a6 !important;
|
||||
}
|
||||
|
||||
.v-application .secondary--text.text--lighten-4 {
|
||||
color: #a6a6a6 !important;
|
||||
caret-color: #a6a6a6 !important;
|
||||
}
|
||||
|
||||
.v-application .secondary.lighten-3 {
|
||||
background-color: #8b8b8b !important;
|
||||
border-color: #8b8b8b !important;
|
||||
}
|
||||
|
||||
.v-application .secondary--text.text--lighten-3 {
|
||||
color: #8b8b8b !important;
|
||||
caret-color: #8b8b8b !important;
|
||||
}
|
||||
|
||||
.v-application .secondary.lighten-2 {
|
||||
background-color: #727272 !important;
|
||||
border-color: #727272 !important;
|
||||
}
|
||||
|
||||
.v-application .secondary--text.text--lighten-2 {
|
||||
color: #727272 !important;
|
||||
caret-color: #727272 !important;
|
||||
}
|
||||
|
||||
.v-application .secondary.lighten-1 {
|
||||
background-color: #595959 !important;
|
||||
border-color: #595959 !important;
|
||||
}
|
||||
|
||||
.v-application .secondary--text.text--lighten-1 {
|
||||
color: #595959 !important;
|
||||
caret-color: #595959 !important;
|
||||
}
|
||||
|
||||
.v-application .secondary.darken-1 {
|
||||
background-color: #2c2c2c !important;
|
||||
border-color: #2c2c2c !important;
|
||||
}
|
||||
|
||||
.v-application .secondary--text.text--darken-1 {
|
||||
color: #2c2c2c !important;
|
||||
caret-color: #2c2c2c !important;
|
||||
}
|
||||
|
||||
.v-application .secondary.darken-2 {
|
||||
background-color: #171717 !important;
|
||||
border-color: #171717 !important;
|
||||
}
|
||||
|
||||
.v-application .secondary--text.text--darken-2 {
|
||||
color: #171717 !important;
|
||||
caret-color: #171717 !important;
|
||||
}
|
||||
|
||||
.v-application .secondary.darken-3 {
|
||||
background-color: #000000 !important;
|
||||
border-color: #000000 !important;
|
||||
}
|
||||
|
||||
.v-application .secondary--text.text--darken-3 {
|
||||
color: #000000 !important;
|
||||
caret-color: #000000 !important;
|
||||
}
|
||||
|
||||
.v-application .secondary.darken-4 {
|
||||
background-color: #000000 !important;
|
||||
border-color: #000000 !important;
|
||||
}
|
||||
|
||||
.v-application .secondary--text.text--darken-4 {
|
||||
color: #000000 !important;
|
||||
caret-color: #000000 !important;
|
||||
}
|
||||
|
||||
.v-application .accent {
|
||||
background-color: #82b1ff !important;
|
||||
border-color: #82b1ff !important;
|
||||
}
|
||||
|
||||
.v-application .accent--text {
|
||||
color: #82b1ff !important;
|
||||
caret-color: #82b1ff !important;
|
||||
}
|
||||
|
||||
.v-application .accent.lighten-5 {
|
||||
background-color: #ffffff !important;
|
||||
border-color: #ffffff !important;
|
||||
}
|
||||
|
||||
.v-application .accent--text.text--lighten-5 {
|
||||
color: #ffffff !important;
|
||||
caret-color: #ffffff !important;
|
||||
}
|
||||
|
||||
.v-application .accent.lighten-4 {
|
||||
background-color: #f8ffff !important;
|
||||
border-color: #f8ffff !important;
|
||||
}
|
||||
|
||||
.v-application .accent--text.text--lighten-4 {
|
||||
color: #f8ffff !important;
|
||||
caret-color: #f8ffff !important;
|
||||
}
|
||||
|
||||
.v-application .accent.lighten-3 {
|
||||
background-color: #daffff !important;
|
||||
border-color: #daffff !important;
|
||||
}
|
||||
|
||||
.v-application .accent--text.text--lighten-3 {
|
||||
color: #daffff !important;
|
||||
caret-color: #daffff !important;
|
||||
}
|
||||
|
||||
.v-application .accent.lighten-2 {
|
||||
background-color: #bce8ff !important;
|
||||
border-color: #bce8ff !important;
|
||||
}
|
||||
|
||||
.v-application .accent--text.text--lighten-2 {
|
||||
color: #bce8ff !important;
|
||||
caret-color: #bce8ff !important;
|
||||
}
|
||||
|
||||
.v-application .accent.lighten-1 {
|
||||
background-color: #9fccff !important;
|
||||
border-color: #9fccff !important;
|
||||
}
|
||||
|
||||
.v-application .accent--text.text--lighten-1 {
|
||||
color: #9fccff !important;
|
||||
caret-color: #9fccff !important;
|
||||
}
|
||||
|
||||
.v-application .accent.darken-1 {
|
||||
background-color: #6596e2 !important;
|
||||
border-color: #6596e2 !important;
|
||||
}
|
||||
|
||||
.v-application .accent--text.text--darken-1 {
|
||||
color: #6596e2 !important;
|
||||
caret-color: #6596e2 !important;
|
||||
}
|
||||
|
||||
.v-application .accent.darken-2 {
|
||||
background-color: #467dc6 !important;
|
||||
border-color: #467dc6 !important;
|
||||
}
|
||||
|
||||
.v-application .accent--text.text--darken-2 {
|
||||
color: #467dc6 !important;
|
||||
caret-color: #467dc6 !important;
|
||||
}
|
||||
|
||||
.v-application .accent.darken-3 {
|
||||
background-color: #2364aa !important;
|
||||
border-color: #2364aa !important;
|
||||
}
|
||||
|
||||
.v-application .accent--text.text--darken-3 {
|
||||
color: #2364aa !important;
|
||||
caret-color: #2364aa !important;
|
||||
}
|
||||
|
||||
.v-application .accent.darken-4 {
|
||||
background-color: #004c90 !important;
|
||||
border-color: #004c90 !important;
|
||||
}
|
||||
|
||||
.v-application .accent--text.text--darken-4 {
|
||||
color: #004c90 !important;
|
||||
caret-color: #004c90 !important;
|
||||
}
|
||||
|
||||
.v-application .error {
|
||||
background-color: #ff5252 !important;
|
||||
border-color: #ff5252 !important;
|
||||
}
|
||||
|
||||
.v-application .error--text {
|
||||
color: #ff5252 !important;
|
||||
caret-color: #ff5252 !important;
|
||||
}
|
||||
|
||||
.v-application .error.lighten-5 {
|
||||
background-color: #ffe4d5 !important;
|
||||
border-color: #ffe4d5 !important;
|
||||
}
|
||||
|
||||
.v-application .error--text.text--lighten-5 {
|
||||
color: #ffe4d5 !important;
|
||||
caret-color: #ffe4d5 !important;
|
||||
}
|
||||
|
||||
.v-application .error.lighten-4 {
|
||||
background-color: #ffc6b9 !important;
|
||||
border-color: #ffc6b9 !important;
|
||||
}
|
||||
|
||||
.v-application .error--text.text--lighten-4 {
|
||||
color: #ffc6b9 !important;
|
||||
caret-color: #ffc6b9 !important;
|
||||
}
|
||||
|
||||
.v-application .error.lighten-3 {
|
||||
background-color: #ffa99e !important;
|
||||
border-color: #ffa99e !important;
|
||||
}
|
||||
|
||||
.v-application .error--text.text--lighten-3 {
|
||||
color: #ffa99e !important;
|
||||
caret-color: #ffa99e !important;
|
||||
}
|
||||
|
||||
.v-application .error.lighten-2 {
|
||||
background-color: #ff8c84 !important;
|
||||
border-color: #ff8c84 !important;
|
||||
}
|
||||
|
||||
.v-application .error--text.text--lighten-2 {
|
||||
color: #ff8c84 !important;
|
||||
caret-color: #ff8c84 !important;
|
||||
}
|
||||
|
||||
.v-application .error.lighten-1 {
|
||||
background-color: #ff6f6a !important;
|
||||
border-color: #ff6f6a !important;
|
||||
}
|
||||
|
||||
.v-application .error--text.text--lighten-1 {
|
||||
color: #ff6f6a !important;
|
||||
caret-color: #ff6f6a !important;
|
||||
}
|
||||
|
||||
.v-application .error.darken-1 {
|
||||
background-color: #df323b !important;
|
||||
border-color: #df323b !important;
|
||||
}
|
||||
|
||||
.v-application .error--text.text--darken-1 {
|
||||
color: #df323b !important;
|
||||
caret-color: #df323b !important;
|
||||
}
|
||||
|
||||
.v-application .error.darken-2 {
|
||||
background-color: #bf0025 !important;
|
||||
border-color: #bf0025 !important;
|
||||
}
|
||||
|
||||
.v-application .error--text.text--darken-2 {
|
||||
color: #bf0025 !important;
|
||||
caret-color: #bf0025 !important;
|
||||
}
|
||||
|
||||
.v-application .error.darken-3 {
|
||||
background-color: #9f0010 !important;
|
||||
border-color: #9f0010 !important;
|
||||
}
|
||||
|
||||
.v-application .error--text.text--darken-3 {
|
||||
color: #9f0010 !important;
|
||||
caret-color: #9f0010 !important;
|
||||
}
|
||||
|
||||
.v-application .error.darken-4 {
|
||||
background-color: #800000 !important;
|
||||
border-color: #800000 !important;
|
||||
}
|
||||
|
||||
.v-application .error--text.text--darken-4 {
|
||||
color: #800000 !important;
|
||||
caret-color: #800000 !important;
|
||||
}
|
||||
|
||||
.v-application .info {
|
||||
background-color: #2196f3 !important;
|
||||
border-color: #2196f3 !important;
|
||||
}
|
||||
|
||||
.v-application .info--text {
|
||||
color: #2196f3 !important;
|
||||
caret-color: #2196f3 !important;
|
||||
}
|
||||
|
||||
.v-application .info.lighten-5 {
|
||||
background-color: #d4ffff !important;
|
||||
border-color: #d4ffff !important;
|
||||
}
|
||||
|
||||
.v-application .info--text.text--lighten-5 {
|
||||
color: #d4ffff !important;
|
||||
caret-color: #d4ffff !important;
|
||||
}
|
||||
|
||||
.v-application .info.lighten-4 {
|
||||
background-color: #b5ffff !important;
|
||||
border-color: #b5ffff !important;
|
||||
}
|
||||
|
||||
.v-application .info--text.text--lighten-4 {
|
||||
color: #b5ffff !important;
|
||||
caret-color: #b5ffff !important;
|
||||
}
|
||||
|
||||
.v-application .info.lighten-3 {
|
||||
background-color: #95e8ff !important;
|
||||
border-color: #95e8ff !important;
|
||||
}
|
||||
|
||||
.v-application .info--text.text--lighten-3 {
|
||||
color: #95e8ff !important;
|
||||
caret-color: #95e8ff !important;
|
||||
}
|
||||
|
||||
.v-application .info.lighten-2 {
|
||||
background-color: #75ccff !important;
|
||||
border-color: #75ccff !important;
|
||||
}
|
||||
|
||||
.v-application .info--text.text--lighten-2 {
|
||||
color: #75ccff !important;
|
||||
caret-color: #75ccff !important;
|
||||
}
|
||||
|
||||
.v-application .info.lighten-1 {
|
||||
background-color: #51b0ff !important;
|
||||
border-color: #51b0ff !important;
|
||||
}
|
||||
|
||||
.v-application .info--text.text--lighten-1 {
|
||||
color: #51b0ff !important;
|
||||
caret-color: #51b0ff !important;
|
||||
}
|
||||
|
||||
.v-application .info.darken-1 {
|
||||
background-color: #007cd6 !important;
|
||||
border-color: #007cd6 !important;
|
||||
}
|
||||
|
||||
.v-application .info--text.text--darken-1 {
|
||||
color: #007cd6 !important;
|
||||
caret-color: #007cd6 !important;
|
||||
}
|
||||
|
||||
.v-application .info.darken-2 {
|
||||
background-color: #0064ba !important;
|
||||
border-color: #0064ba !important;
|
||||
}
|
||||
|
||||
.v-application .info--text.text--darken-2 {
|
||||
color: #0064ba !important;
|
||||
caret-color: #0064ba !important;
|
||||
}
|
||||
|
||||
.v-application .info.darken-3 {
|
||||
background-color: #004d9f !important;
|
||||
border-color: #004d9f !important;
|
||||
}
|
||||
|
||||
.v-application .info--text.text--darken-3 {
|
||||
color: #004d9f !important;
|
||||
caret-color: #004d9f !important;
|
||||
}
|
||||
|
||||
.v-application .info.darken-4 {
|
||||
background-color: #003784 !important;
|
||||
border-color: #003784 !important;
|
||||
}
|
||||
|
||||
.v-application .info--text.text--darken-4 {
|
||||
color: #003784 !important;
|
||||
caret-color: #003784 !important;
|
||||
}
|
||||
|
||||
.v-application .success {
|
||||
background-color: #4caf50 !important;
|
||||
border-color: #4caf50 !important;
|
||||
}
|
||||
|
||||
.v-application .success--text {
|
||||
color: #4caf50 !important;
|
||||
caret-color: #4caf50 !important;
|
||||
}
|
||||
|
||||
.v-application .success.lighten-5 {
|
||||
background-color: #dcffd6 !important;
|
||||
border-color: #dcffd6 !important;
|
||||
}
|
||||
|
||||
.v-application .success--text.text--lighten-5 {
|
||||
color: #dcffd6 !important;
|
||||
caret-color: #dcffd6 !important;
|
||||
}
|
||||
|
||||
.v-application .success.lighten-4 {
|
||||
background-color: #beffba !important;
|
||||
border-color: #beffba !important;
|
||||
}
|
||||
|
||||
.v-application .success--text.text--lighten-4 {
|
||||
color: #beffba !important;
|
||||
caret-color: #beffba !important;
|
||||
}
|
||||
|
||||
.v-application .success.lighten-3 {
|
||||
background-color: #a2ff9e !important;
|
||||
border-color: #a2ff9e !important;
|
||||
}
|
||||
|
||||
.v-application .success--text.text--lighten-3 {
|
||||
color: #a2ff9e !important;
|
||||
caret-color: #a2ff9e !important;
|
||||
}
|
||||
|
||||
.v-application .success.lighten-2 {
|
||||
background-color: #85e783 !important;
|
||||
border-color: #85e783 !important;
|
||||
}
|
||||
|
||||
.v-application .success--text.text--lighten-2 {
|
||||
color: #85e783 !important;
|
||||
caret-color: #85e783 !important;
|
||||
}
|
||||
|
||||
.v-application .success.lighten-1 {
|
||||
background-color: #69cb69 !important;
|
||||
border-color: #69cb69 !important;
|
||||
}
|
||||
|
||||
.v-application .success--text.text--lighten-1 {
|
||||
color: #69cb69 !important;
|
||||
caret-color: #69cb69 !important;
|
||||
}
|
||||
|
||||
.v-application .success.darken-1 {
|
||||
background-color: #2d9437 !important;
|
||||
border-color: #2d9437 !important;
|
||||
}
|
||||
|
||||
.v-application .success--text.text--darken-1 {
|
||||
color: #2d9437 !important;
|
||||
caret-color: #2d9437 !important;
|
||||
}
|
||||
|
||||
.v-application .success.darken-2 {
|
||||
background-color: #00791e !important;
|
||||
border-color: #00791e !important;
|
||||
}
|
||||
|
||||
.v-application .success--text.text--darken-2 {
|
||||
color: #00791e !important;
|
||||
caret-color: #00791e !important;
|
||||
}
|
||||
|
||||
.v-application .success.darken-3 {
|
||||
background-color: #006000 !important;
|
||||
border-color: #006000 !important;
|
||||
}
|
||||
|
||||
.v-application .success--text.text--darken-3 {
|
||||
color: #006000 !important;
|
||||
caret-color: #006000 !important;
|
||||
}
|
||||
|
||||
.v-application .success.darken-4 {
|
||||
background-color: #004700 !important;
|
||||
border-color: #004700 !important;
|
||||
}
|
||||
|
||||
.v-application .success--text.text--darken-4 {
|
||||
color: #004700 !important;
|
||||
caret-color: #004700 !important;
|
||||
}
|
||||
|
||||
.v-application .warning {
|
||||
background-color: #fb8c00 !important;
|
||||
border-color: #fb8c00 !important;
|
||||
}
|
||||
|
||||
.v-application .warning--text {
|
||||
color: #fb8c00 !important;
|
||||
caret-color: #fb8c00 !important;
|
||||
}
|
||||
|
||||
.v-application .warning.lighten-5 {
|
||||
background-color: #ffff9e !important;
|
||||
border-color: #ffff9e !important;
|
||||
}
|
||||
|
||||
.v-application .warning--text.text--lighten-5 {
|
||||
color: #ffff9e !important;
|
||||
caret-color: #ffff9e !important;
|
||||
}
|
||||
|
||||
.v-application .warning.lighten-4 {
|
||||
background-color: #fffb82 !important;
|
||||
border-color: #fffb82 !important;
|
||||
}
|
||||
|
||||
.v-application .warning--text.text--lighten-4 {
|
||||
color: #fffb82 !important;
|
||||
caret-color: #fffb82 !important;
|
||||
}
|
||||
|
||||
.v-application .warning.lighten-3 {
|
||||
background-color: #ffdf67 !important;
|
||||
border-color: #ffdf67 !important;
|
||||
}
|
||||
|
||||
.v-application .warning--text.text--lighten-3 {
|
||||
color: #ffdf67 !important;
|
||||
caret-color: #ffdf67 !important;
|
||||
}
|
||||
|
||||
.v-application .warning.lighten-2 {
|
||||
background-color: #ffc24b !important;
|
||||
border-color: #ffc24b !important;
|
||||
}
|
||||
|
||||
.v-application .warning--text.text--lighten-2 {
|
||||
color: #ffc24b !important;
|
||||
caret-color: #ffc24b !important;
|
||||
}
|
||||
|
||||
.v-application .warning.lighten-1 {
|
||||
background-color: #ffa72d !important;
|
||||
border-color: #ffa72d !important;
|
||||
}
|
||||
|
||||
.v-application .warning--text.text--lighten-1 {
|
||||
color: #ffa72d !important;
|
||||
caret-color: #ffa72d !important;
|
||||
}
|
||||
|
||||
.v-application .warning.darken-1 {
|
||||
background-color: #db7200 !important;
|
||||
border-color: #db7200 !important;
|
||||
}
|
||||
|
||||
.v-application .warning--text.text--darken-1 {
|
||||
color: #db7200 !important;
|
||||
caret-color: #db7200 !important;
|
||||
}
|
||||
|
||||
.v-application .warning.darken-2 {
|
||||
background-color: #bb5900 !important;
|
||||
border-color: #bb5900 !important;
|
||||
}
|
||||
|
||||
.v-application .warning--text.text--darken-2 {
|
||||
color: #bb5900 !important;
|
||||
caret-color: #bb5900 !important;
|
||||
}
|
||||
|
||||
.v-application .warning.darken-3 {
|
||||
background-color: #9d4000 !important;
|
||||
border-color: #9d4000 !important;
|
||||
}
|
||||
|
||||
.v-application .warning--text.text--darken-3 {
|
||||
color: #9d4000 !important;
|
||||
caret-color: #9d4000 !important;
|
||||
}
|
||||
|
||||
.v-application .warning.darken-4 {
|
||||
background-color: #802700 !important;
|
||||
border-color: #802700 !important;
|
||||
}
|
||||
|
||||
.v-application .warning--text.text--darken-4 {
|
||||
color: #802700 !important;
|
||||
caret-color: #802700 !important;
|
||||
}
|
||||
BIN
web/admin/Templates/TBS5ADM001/images/bg1.jpg
Normal file
|
After Width: | Height: | Size: 696 KiB |
BIN
web/admin/Templates/TBS5ADM001/images/bg2.jpg
Normal file
|
After Width: | Height: | Size: 420 KiB |
5037
web/admin/Templates/TBS5ADM001/images/lotus1.svg
Normal file
|
After Width: | Height: | Size: 508 KiB |
1190
web/admin/Templates/TBS5ADM001/images/lotus2-1.svg
Normal file
|
After Width: | Height: | Size: 129 KiB |
4272
web/admin/Templates/TBS5ADM001/images/lotus2.svg
Normal file
|
After Width: | Height: | Size: 462 KiB |
300
web/admin/Templates/TBS5ADM001/js/Script.js
Normal file
@@ -0,0 +1,300 @@
|
||||
// navigation and breadcrumb
|
||||
window.addEventListener('DOMContentLoaded', event => {
|
||||
// Toggle the side navigation
|
||||
const sidebarToggle = document.body.querySelector('#sidebarToggle');
|
||||
if (sidebarToggle) {
|
||||
// Uncomment Below to persist sidebar toggle between refreshes
|
||||
//if (localStorage.getItem('sb|sidebar-toggle') === 'true') {
|
||||
// document.body.classList.toggle('sb-sidenav-toggled');
|
||||
//}
|
||||
sidebarToggle.addEventListener('click', event => {
|
||||
event.preventDefault();
|
||||
document.body.classList.toggle('sb-sidenav-toggled');
|
||||
localStorage.setItem('sb|sidebar-toggle', document.body.classList.contains('sb-sidenav-toggled'));
|
||||
});
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
$(document).ready(function () {
|
||||
// navigation and breadcrumb
|
||||
//$(".leaf-node").parents("tr").find("img").hide();
|
||||
var breadcrumb_last = $(".breadcrumb li").last().text().trim();
|
||||
var item = $("#sideNav_1 a.nav-link").filter((i, t) => {
|
||||
//console.log($(t).text().trim(), breadcrumb_last, $(t).text().trim() == breadcrumb_last);
|
||||
return $(t).text().trim() == breadcrumb_last;
|
||||
});
|
||||
var panel = item.parents(".collapse").eq(0);
|
||||
item.addClass("active");
|
||||
panel.toggle();
|
||||
panel.prev().addClass("active");
|
||||
|
||||
$("a[data-bs-target='#offcanvasRight']").click(function (e) {
|
||||
let t = $(this).attr("href");
|
||||
console.log("right:", this, t);
|
||||
$("#offcanvasRight .offcanvas-body>div").hide();
|
||||
$(t).show();
|
||||
$("#offcanvasRightLabel").text($(t).data("title"));
|
||||
});
|
||||
let show_search = !!$("#offcanvasRight .offcanvas-body #search_panel").length;
|
||||
$("#search_btn").toggle(show_search);
|
||||
|
||||
// search-control
|
||||
$("[data-search-control]").each((i, t) => {
|
||||
console.log("[data-search-control]", i, t,
|
||||
$(t).children("button").eq(0),
|
||||
$(t).children("[type=hidden]").val(),
|
||||
$(t).children(".search-text").attr("placeholder"),
|
||||
$(t).children(".search-text").val(),
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
// Sweet Alert
|
||||
function msgbox(html, icon = '', url = '') {
|
||||
Swal.fire({
|
||||
icon: icon,
|
||||
html: html,
|
||||
confirmButtonText: '關閉',
|
||||
onClose: () => {
|
||||
if (url != '') {
|
||||
window.location = url;
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
function msgtop(html, icon = 'success') {
|
||||
const Toast = Swal.mixin({
|
||||
toast: true,
|
||||
position: 'top-end',
|
||||
showConfirmButton: false,
|
||||
timer: 3000,
|
||||
heightAuto: false,
|
||||
timerProgressBar: true,
|
||||
onOpen: (toast) => {
|
||||
toast.addEventListener('mouseenter', Swal.stopTimer)
|
||||
toast.addEventListener('mouseleave', Swal.resumeTimer)
|
||||
}
|
||||
})
|
||||
|
||||
Toast.fire({
|
||||
icon: icon,
|
||||
html: '<div class="swal2-toast-cus">' + html + '</div>'
|
||||
})
|
||||
}
|
||||
var mctmp = '0';
|
||||
function msgconfirm(html, btn, icon = 'question') {
|
||||
if (mctmp == '0') {
|
||||
Swal.fire({
|
||||
html: html,
|
||||
icon: icon,
|
||||
showCancelButton: true,
|
||||
confirmButtonText: '<i class="mdi mdi-check"></i> 確定',
|
||||
cancelButtonText: '<i class="mdi mdi-close"></i> 取消'
|
||||
}).then((result) => {
|
||||
if (result.value) {
|
||||
mctmp = '1';
|
||||
if ($(btn)[0].hasAttribute('href')) {
|
||||
var href = $(btn).attr('href');
|
||||
window.location.href = href;
|
||||
} else {
|
||||
$(btn).click();
|
||||
}
|
||||
}
|
||||
})
|
||||
mctmp = '0';
|
||||
return false;
|
||||
} else {
|
||||
mctmp = '0';
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
function clearObjProps(obj) {
|
||||
for (const prop of Object.getOwnPropertyNames(obj)) {
|
||||
obj[prop] = null;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//---------------------------------列印---------------------------------------------------
|
||||
|
||||
function PrintTagData(id) {
|
||||
|
||||
if (isFirefox = navigator.userAgent.indexOf("Firefox") > 0) {
|
||||
window.print();
|
||||
} else {
|
||||
|
||||
var Item = document.getElementById(id);
|
||||
var printdetail = window.open("", "TextareaDetail");
|
||||
printdetail.document.open();
|
||||
printdetail.document.write("<HTML><head><link href=\"../../module/js/css/adminroot.css\" rel=\"stylesheet\" type=\"text/css\">");
|
||||
printdetail.document.write("<script type =\"text/javascript\">");
|
||||
printdetail.document.write("function mouseover(obj,color_word){obj.style.backgroundColor = color_word;}");
|
||||
printdetail.document.write("function mouseout(obj,color_word){obj.style.backgroundColor = color_word;}");
|
||||
printdetail.document.write("<\/script>");
|
||||
printdetail.document.write("</head>");
|
||||
printdetail.document.write("<BODY onload=\"window.print();\"><div style=\"width:720px\">");
|
||||
printdetail.document.write(Item.outerHTML);
|
||||
printdetail.document.write("</div></BODY></HTML>");
|
||||
printdetail.document.close();
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
function PrintTagRWD(id) {
|
||||
|
||||
if (isFirefox = navigator.userAgent.indexOf("Firefox") > 0) {
|
||||
window.print();
|
||||
} else {
|
||||
|
||||
var Item = document.getElementById(id);
|
||||
var printdetail = window.open("", "TextareaDetail");
|
||||
printdetail.document.open();
|
||||
printdetail.document.write("<HTML><head>\n");
|
||||
printdetail.document.write('<link href="../../App_Script/bootstrap3/css/bootstrap.css" rel="stylesheet" />\n');
|
||||
printdetail.document.write('<link href="../../App_Script/bootstrap_datepicker/css/datepicker.css" rel="stylesheet" />\n');
|
||||
printdetail.document.write('<link href="../../admin/skin/css/style.css" rel="stylesheet" media="screen" />\n');
|
||||
printdetail.document.write('<link href="../../admin/skin/css/print.css" rel="stylesheet" media="print" />\n');
|
||||
printdetail.document.write('<!--[if lt IE 9]>\n');
|
||||
printdetail.document.write('<link href="../../admin/skin/css/ie8-and-down.css" rel="stylesheet" type="text/css" />\n');
|
||||
printdetail.document.write('<![endif]-->\n');
|
||||
|
||||
printdetail.document.write("<style type=\"text/css\">.hidden-print{display:none;}</style>");
|
||||
printdetail.document.write("</head>");
|
||||
printdetail.document.write("<BODY onload=\"window.print();\">");
|
||||
printdetail.document.write(Item.outerHTML);
|
||||
printdetail.document.write("</BODY></HTML>");
|
||||
printdetail.document.close();
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
//---------------------------------checkbox全選用---------------------------------------------------
|
||||
function Check(parentChk, ChildId) {
|
||||
var oElements = document.getElementsByTagName("INPUT");
|
||||
var bIsChecked = parentChk.checked;
|
||||
|
||||
for (i = 0; i < oElements.length; i++) {
|
||||
if (IsCheckBox(oElements[i]) &&
|
||||
IsMatch(oElements[i].id, ChildId)) {
|
||||
oElements[i].checked = bIsChecked;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
function IsMatch(id, ChildId) {
|
||||
var sPattern = '^ctl00_ContentPlaceHolder1_Repeater1.*' + ChildId + '$';
|
||||
var oRegExp = new RegExp(sPattern);
|
||||
if (oRegExp.exec(id))
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
}
|
||||
|
||||
function IsCheckBox(chk) {
|
||||
if (chk.type == 'checkbox') return true;
|
||||
else return false;
|
||||
}
|
||||
|
||||
function checkListAll(chk) {
|
||||
$('.listCheck input').each(function () {
|
||||
this.checked = chk;
|
||||
});
|
||||
}
|
||||
|
||||
function checkAll2(chk, num) {
|
||||
$('#root_' + num).show();
|
||||
$('#root_' + num + ' input:checkbox').each(function () {
|
||||
this.checked = chk;
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
// Vuetify
|
||||
let vuetify_options = {
|
||||
theme: { disable: true },
|
||||
lang: {
|
||||
locales: {
|
||||
zhHant: {
|
||||
badge: '徽章',
|
||||
close: '關閉',
|
||||
dataIterator: {
|
||||
noResultsText: '沒有符合條件的結果',
|
||||
loadingText: '讀取中...',
|
||||
},
|
||||
dataTable: {
|
||||
itemsPerPageText: '每頁列數:',
|
||||
ariaLabel: {
|
||||
sortDescending: ':降序排列。',
|
||||
sortAscending: ':升序排列。',
|
||||
sortNone: '無排序方式。點擊以升序排列。',
|
||||
activateNone: '點擊以移除排序方式。',
|
||||
activateDescending: '點擊以降序排列。',
|
||||
activateAscending: '點擊以移除排序方式。',
|
||||
},
|
||||
sortBy: '排序方式',
|
||||
},
|
||||
dataFooter: {
|
||||
itemsPerPageText: '每頁項目:',
|
||||
itemsPerPageAll: '全部',
|
||||
nextPage: '下一頁',
|
||||
prevPage: '上一頁',
|
||||
firstPage: '第一頁',
|
||||
lastPage: '最後頁',
|
||||
pageText: '{2} 項中的 {0}~{1} 項',
|
||||
},
|
||||
datePicker: {
|
||||
itemsSelected: '已選擇 {0}',
|
||||
nextMonthAriaLabel: '下個月',
|
||||
nextYearAriaLabel: '明年',
|
||||
prevMonthAriaLabel: '上個月',
|
||||
prevYearAriaLabel: '去年',
|
||||
},
|
||||
noDataText: '沒有資料',
|
||||
carousel: {
|
||||
prev: '上一張',
|
||||
next: '下一張',
|
||||
ariaLabel: {
|
||||
delimiter: '輪播圖 {0} / {1}',
|
||||
},
|
||||
},
|
||||
calendar: {
|
||||
moreEvents: '還有其他 {0} 項',
|
||||
},
|
||||
fileInput: {
|
||||
counter: '{0} 個檔案',
|
||||
counterSize: '{0} 個檔案(共 {1})',
|
||||
},
|
||||
timePicker: {
|
||||
am: 'AM',
|
||||
pm: 'PM',
|
||||
},
|
||||
pagination: {
|
||||
ariaLabel: {
|
||||
wrapper: '分頁導覽',
|
||||
next: '下一頁',
|
||||
previous: '上一頁',
|
||||
page: '到頁面 {0}',
|
||||
currentPage: '當前頁 {0}',
|
||||
},
|
||||
},
|
||||
rating: {
|
||||
ariaLabel: {
|
||||
icon: '評分 {0} / {1}',
|
||||
},
|
||||
},
|
||||
}
|
||||
},
|
||||
current: 'zhHant',
|
||||
},
|
||||
//theme: { disable: false},
|
||||
};
|
||||
11
web/admin/Templates/TBS5ADM001/uc/footer.ascx
Normal file
@@ -0,0 +1,11 @@
|
||||
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="footer.ascx.cs" Inherits="admin_Templates_TBS5ADM001_uc_footer" %>
|
||||
<footer class="py-4 bg-light mt-auto">
|
||||
<div class="container-fluid px-4">
|
||||
<div class="d-flex align-items-center justify-content-between small">
|
||||
<div class="text-muted">Copyright © 17168ERP</div>
|
||||
<div>
|
||||
<a href="#">17168ERP</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
14
web/admin/Templates/TBS5ADM001/uc/footer.ascx.cs
Normal file
@@ -0,0 +1,14 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
using System.Web.UI;
|
||||
using System.Web.UI.WebControls;
|
||||
|
||||
public partial class admin_Templates_TBS5ADM001_uc_footer : System.Web.UI.UserControl
|
||||
{
|
||||
protected void Page_Load(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
112
web/admin/Templates/TBS5ADM001/uc/menu.ascx
Normal file
@@ -0,0 +1,112 @@
|
||||
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="menu.ascx.cs" Inherits="admin_Templates_TBS5ADM001_uc_sideNav" %>
|
||||
<nav class="sb-sidenav accordion sb-sidenav-light pt-2" id="sidenavAccordion">
|
||||
<div class="sb-sidenav-menu">
|
||||
<div class="nav" id="sideNav_1">
|
||||
<asp:Repeater ID="Repeater1" runat="server" OnItemDataBound="Repeater1_ItemDataBound">
|
||||
<ItemTemplate>
|
||||
<a class="nav-link collapsed num<%#Eval("num") %>" href="#"
|
||||
data-bs-toggle="collapse" data-bs-target="#navitem_<%#Eval("num") %>" aria-expanded="false" aria-controls="navitem_<%#Eval("num") %>">
|
||||
<div class="sb-nav-link-icon"><i class="mdi mdi-folder"></i></div>
|
||||
<%#Eval("title") %>
|
||||
<div class="sb-sidenav-collapse-arrow"><i class="mdi mdi-chevron-down"></i></div>
|
||||
</a>
|
||||
<div class="collapse" id="navitem_<%#Eval("num") %>" aria-labelledby="headingOne"
|
||||
data-bs-parent="#sidenavAccordion">
|
||||
<nav class="sb-sidenav-menu-nested nav">
|
||||
<asp:Repeater ID="Repeater2" runat="server" OnItemDataBound="Repeater2_ItemDataBound">
|
||||
<ItemTemplate>
|
||||
<a class="nav-link" href="<%#ResolveUrl(ValString(Eval("url"))) %>"
|
||||
target="<%#(ValString(Eval("target"))=="B"?"_blank":"_self") %>">
|
||||
<%#Eval("title") %></a>
|
||||
</ItemTemplate>
|
||||
</asp:Repeater>
|
||||
</nav>
|
||||
</div>
|
||||
</ItemTemplate>
|
||||
</asp:Repeater>
|
||||
</div>
|
||||
<div class="nav d-none">
|
||||
<div class="sb-sidenav-menu-heading">Core</div>
|
||||
<a class="nav-link" href="index.html">
|
||||
<div class="sb-nav-link-icon"><i class="mdi mdi-gauge"></i></div>
|
||||
Dashboard
|
||||
</a>
|
||||
<div class="sb-sidenav-menu-heading">Interface</div>
|
||||
<a class="nav-link collapsed" href="#" data-bs-toggle="collapse" data-bs-target="#collapseLayouts" aria-expanded="false" aria-controls="collapseLayouts">
|
||||
<div class="sb-nav-link-icon"><i class="mdi mdi-television-guide"></i></div>
|
||||
Layouts
|
||||
|
||||
<div class="sb-sidenav-collapse-arrow"><i class="mdi mdi-chevron-down"></i></div>
|
||||
</a>
|
||||
<div class="collapse" id="collapseLayouts" aria-labelledby="headingOne" data-bs-parent="#sidenavAccordion">
|
||||
<nav class="sb-sidenav-menu-nested nav">
|
||||
<a class="nav-link" href="layout-static.html">Static Navigation</a>
|
||||
<a class="nav-link" href="layout-sidenav-light.html">Light Sidenav</a>
|
||||
</nav>
|
||||
</div>
|
||||
<a class="nav-link collapsed" href="#" data-bs-toggle="collapse" data-bs-target="#collapsePages" aria-expanded="false" aria-controls="collapsePages">
|
||||
<div class="sb-nav-link-icon"><i class="mdi mdi-book-open-blank-variant"></i></div>
|
||||
Pages
|
||||
<div class="sb-sidenav-collapse-arrow"><i class="mdi mdi-chevron-down"></i></div>
|
||||
</a>
|
||||
<div class="collapse" id="collapsePages" aria-labelledby="headingTwo" data-bs-parent="#sidenavAccordion">
|
||||
<nav class="sb-sidenav-menu-nested nav accordion" id="sidenavAccordionPages">
|
||||
<a class="nav-link collapsed" href="#" data-bs-toggle="collapse" data-bs-target="#pagesCollapseAuth" aria-expanded="false" aria-controls="pagesCollapseAuth">Authentication
|
||||
|
||||
<div class="sb-sidenav-collapse-arrow"><i class="mdi mdi-chevron-down"></i></div>
|
||||
</a>
|
||||
<div class="collapse" id="pagesCollapseAuth" aria-labelledby="headingOne" data-bs-parent="#sidenavAccordionPages">
|
||||
<nav class="sb-sidenav-menu-nested nav">
|
||||
<a class="nav-link" href="login.html">Login</a>
|
||||
<a class="nav-link" href="register.html">Register</a>
|
||||
<a class="nav-link" href="password.html">Forgot Password</a>
|
||||
</nav>
|
||||
</div>
|
||||
<a class="nav-link collapsed" href="#" data-bs-toggle="collapse" data-bs-target="#pagesCollapseError" aria-expanded="false" aria-controls="pagesCollapseError">Error
|
||||
|
||||
<div class="sb-sidenav-collapse-arrow"><i class="mdi mdi-chevron-down"></i></div>
|
||||
</a>
|
||||
<div class="collapse" id="pagesCollapseError" aria-labelledby="headingOne" data-bs-parent="#sidenavAccordionPages">
|
||||
<nav class="sb-sidenav-menu-nested nav">
|
||||
<a class="nav-link" href="401.html">401 Page</a>
|
||||
<a class="nav-link" href="404.html">404 Page</a>
|
||||
<a class="nav-link" href="500.html">500 Page</a>
|
||||
<hr />
|
||||
<a class="nav-link" href="401.html">401 Page</a>
|
||||
<a class="nav-link" href="404.html">404 Page</a>
|
||||
<a class="nav-link" href="500.html">500 Page</a>
|
||||
<a class="nav-link" href="401.html">401 Page</a>
|
||||
<a class="nav-link" href="404.html">404 Page</a>
|
||||
<a class="nav-link" href="500.html">500 Page</a>
|
||||
<a class="nav-link" href="401.html">401 Page</a>
|
||||
<a class="nav-link" href="404.html">404 Page</a>
|
||||
<a class="nav-link" href="500.html">500 Page</a>
|
||||
<a class="nav-link" href="401.html">401 Page</a>
|
||||
<a class="nav-link" href="404.html">404 Page</a>
|
||||
<a class="nav-link" href="500.html">500 Page</a>
|
||||
<a class="nav-link" href="401.html">401 Page</a>
|
||||
<a class="nav-link" href="404.html">404 Page</a>
|
||||
<a class="nav-link" href="500.html">500 Page</a>
|
||||
</nav>
|
||||
</div>
|
||||
</nav>
|
||||
</div>
|
||||
<div class="sb-sidenav-menu-heading">Addons</div>
|
||||
<a class="nav-link" href="charts.html">
|
||||
<div class="sb-nav-link-icon"><i class="mdi mdi-chart-areaspline-variant"></i></div>
|
||||
Charts
|
||||
</a>
|
||||
<a class="nav-link" href="tables.html">
|
||||
<div class="sb-nav-link-icon"><i class="mdi mdi-table"></i></div>
|
||||
Tables
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sb-sidenav-footer">
|
||||
<div class="small">名稱:</div>
|
||||
17168ERP
|
||||
</div>
|
||||
</nav>
|
||||
<asp:HiddenField ID="rtmp" runat="server" />
|
||||
<asp:HiddenField ID="HiddenField1" runat="server" />
|
||||
<asp:Literal ID="ExpandMenu" runat="server"></asp:Literal>
|
||||
156
web/admin/Templates/TBS5ADM001/uc/menu.ascx.cs
Normal file
@@ -0,0 +1,156 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
using System.Web.UI;
|
||||
using System.Web.UI.WebControls;
|
||||
using System.Data;
|
||||
using System.Data.OleDb;
|
||||
|
||||
public partial class admin_Templates_TBS5ADM001_uc_sideNav :
|
||||
MyWeb.web_uc, MyWeb.config.IMenu
|
||||
{
|
||||
string PageUrl = ""; //目前後台的路徑
|
||||
string Power = ""; //帳號權限
|
||||
bool isDesigner = false;
|
||||
List<string> nItem = new List<string>();
|
||||
int setNav = 0;
|
||||
DataTable menuDt = new DataTable();
|
||||
private string item_collapsed { get; set; }
|
||||
private string item_active { get; set; }
|
||||
|
||||
public void Data(DataTable dt)
|
||||
{
|
||||
menuDt = dt;
|
||||
}
|
||||
|
||||
protected void Page_Load(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
if (!IsPostBack)
|
||||
{
|
||||
MyWeb.admin admin = new MyWeb.admin();
|
||||
if (admin.isLoign() && HttpContext.Current.Request.RawUrl.ToLower().IndexOf("admin/index.aspx") == -1)
|
||||
{
|
||||
Power = admin.info.power;
|
||||
if (Left(Power, 1) == ",") { Power = Right(Power, Power.Length - 1); }
|
||||
if (Right(Power, 1) == ",") { Power = Left(Power, Power.Length - 1); }
|
||||
|
||||
string[] UrlTmp = Request.Url.AbsolutePath.ToLower().Split('/');
|
||||
PageUrl = UrlTmp[UrlTmp.Length - 2] + "/" + UrlTmp[UrlTmp.Length - 1];
|
||||
|
||||
if (admin.info.u_id == "Designer" && admin.info.group == "EZ") { isDesigner = true; }
|
||||
|
||||
Repeater1.DataSource = MenuRows();
|
||||
Repeater1.DataBind();
|
||||
|
||||
((MyWeb.config.MenuNav)Page.Master.FindControl("nav")).InitNav(nItem);
|
||||
}
|
||||
}
|
||||
}
|
||||
protected DataTable MenuRows(int root = 0)
|
||||
{
|
||||
DataTable dt = new DataTable();
|
||||
MyWeb.sql sql = new MyWeb.sql();
|
||||
OleDbConnection sqlConn = sql.conn(db, p_name);
|
||||
try
|
||||
{
|
||||
sqlConn.Open();
|
||||
OleDbCommand sqlCmd = new OleDbCommand("", sqlConn);
|
||||
|
||||
if (!isDesigner)
|
||||
{
|
||||
//非設計師模式檢查權限
|
||||
if (!isStrNull(Power))
|
||||
{
|
||||
sqlCmd.CommandText = "SELECT * FROM [item] Where root=? and num in (" + Power + ") order by range";
|
||||
sqlCmd.Parameters.Add(new OleDbParameter("root", root));
|
||||
dt = sql.dataTable(sqlCmd);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
sqlCmd.CommandText = "SELECT * FROM [item] Where root=? order by range";
|
||||
sqlCmd.Parameters.Add(new OleDbParameter("root", root));
|
||||
dt = sql.dataTable(sqlCmd);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
//Response.Write(ex.Message);
|
||||
}
|
||||
finally
|
||||
{
|
||||
sqlConn.Close(); sqlConn.Dispose();
|
||||
}
|
||||
return dt;
|
||||
}
|
||||
|
||||
protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
DataRowView row = (DataRowView)e.Item.DataItem;
|
||||
HiddenField1.Value = ValString(row["num"]);
|
||||
rtmp.Value = ValString(row["title"]);
|
||||
|
||||
if (menuDt.Rows.Count > 0)
|
||||
{
|
||||
DataTable dt = menuDt.Copy();
|
||||
for (int i = dt.Rows.Count - 1; i >= 0; i--) {
|
||||
if (dt.Rows[i]["root"].ToString() != HiddenField1.Value) { dt.Rows.Remove(dt.Rows[i]); }
|
||||
}
|
||||
if (dt.Rows.Count > 0)
|
||||
{
|
||||
Repeater Repeater2 = (Repeater)e.Item.FindControl("Repeater2");
|
||||
Repeater2.DataSource = dt;
|
||||
Repeater2.DataBind();
|
||||
Repeater2.DataBind();
|
||||
dt.Dispose();
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
catch(Exception ex)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
protected void Repeater2_ItemDataBound(object sender, RepeaterItemEventArgs e)
|
||||
{
|
||||
DataRowView row = (DataRowView)e.Item.DataItem;
|
||||
if (ValString(row["url"]).ToLower().IndexOf(PageUrl) > -1)
|
||||
{
|
||||
setNav++;
|
||||
}
|
||||
else if (ValString(row["other_url"]).ToLower().IndexOf(PageUrl) > -1)
|
||||
{
|
||||
setNav++;
|
||||
}
|
||||
|
||||
if (setNav == 1)
|
||||
{
|
||||
setNav++;
|
||||
ExpandMenu.Text = "<input type=\"hidden\" id=\"ExpandMenuNum\" value=\"" + HiddenField1.Value + "\" />";
|
||||
nItem.Add(rtmp.Value);
|
||||
if ((PageUrl.IndexOf("reg.aspx") > -1 || PageUrl.IndexOf("edit.aspx") > -1) && !isStrNull(Request["num"]))
|
||||
{
|
||||
nItem.Add(ValString(row["title"]).Replace("登錄", "修改").Replace("查詢", "修改").Replace("新增", "修改"));
|
||||
}
|
||||
else
|
||||
{
|
||||
nItem.Add(ValString(row["title"]));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
69
web/admin/Templates/TBS5ADM001/uc/nav.ascx
Normal file
@@ -0,0 +1,69 @@
|
||||
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="nav.ascx.cs" Inherits="admin_Templates_TBS5ADM001_uc_nav" %>
|
||||
<nav class="sb-topnav navbar navbar-expand navbar-dark bg-dark ps-1 ps-md-2">
|
||||
<!-- Sidebar Toggle-->
|
||||
<button class="btn btn-link btn-sm order-0 me-0 bg-white bg-opacity-10 rounded-circle" id="sidebarToggle" href="#!">
|
||||
<i class="mdi mdi-menu"></i>
|
||||
</button>
|
||||
<!-- Navbar Brand-->
|
||||
<asp:HyperLink ID="pageTitle" runat="server" CssClass="navbar-brand ps-sm-2 me-2"></asp:HyperLink>
|
||||
|
||||
<nav aria-label="breadcrumb">
|
||||
<ol class="breadcrumb">
|
||||
<li class="breadcrumb-item"><a href="<%=ResolveUrl("~/admin/index2.aspx") %>">
|
||||
<i class="mdi mdi-home"></i></a>
|
||||
</li>
|
||||
<asp:Repeater ID="breadCrumb" runat="server" ItemType="System.String" >
|
||||
<ItemTemplate>
|
||||
<li class="breadcrumb-item d-none d-lg-inline-block"><%# Item %></li>
|
||||
</ItemTemplate>
|
||||
</asp:Repeater>
|
||||
</ol>
|
||||
</nav>
|
||||
<!-- Navbar Search-->
|
||||
<div class="d-none d-md-none form-inline ms-auto me-0 me-md-3 my-2 my-md-0">
|
||||
<div class="input-group rounded-pill overflow-hidden">
|
||||
<input class="form-control" type="text" placeholder="搜尋..." aria-label="搜尋..." aria-describedby="btnNavbarSearch" />
|
||||
<button class="btn btn-primary" id="btnNavbarSearch" type="button"><i class="mdi mdi-magnify"></i></button>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Navbar-->
|
||||
<ul class="navbar-nav ms-auto ms-md-auto me-3 me-lg-4">
|
||||
<li class="nav-item me-2" id="search_btn">
|
||||
<a href="#search_panel" class="btn btn-outline-light rounded-pill" title="查詢"
|
||||
data-bs-toggle="offcanvas" data-bs-target="#offcanvasRight" aria-controls="offcanvasRight">
|
||||
<i class="mdi mdi-magnify"></i>查詢
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item dropdown bg-light bg-opacity-25 px-1 rounded-pill">
|
||||
<a class="nav-link dropdown-toggle text-white" id="navbarDropdown" href="#"
|
||||
role="button" data-bs-toggle="dropdown" aria-expanded="false">
|
||||
<i class="mdi mdi-account"></i>
|
||||
<span class="d-none d-md-inline"> <%=admin.info.u_id %></span>
|
||||
</a>
|
||||
<ul class="dropdown-menu dropdown-menu-macos dropdown-menu-end" aria-labelledby="navbarDropdown">
|
||||
<li class="d-md-none dropdown-item text-muted">
|
||||
<i class="mdi mdi-card-account-details-outline text-primary me-2"></i> <%=admin.info.u_id %></li>
|
||||
<li class="d-md-none"><hr class="dropdown-divider" /></li>
|
||||
<li><a class="dropdown-item text-secondary" href="#!">
|
||||
<i class="mdi mdi-cog text-primary me-2"></i> 設定</a></li>
|
||||
<li><a class="dropdown-item text-secondary" href="#!">
|
||||
<i class="mdi mdi-bell-outline text-primary me-2"></i> 通知</a></li>
|
||||
<li><a class="dropdown-item text-secondary" href="#!">
|
||||
<i class="mdi mdi-help-circle-outline text-primary me-2"></i>說明</a></li>
|
||||
<li id="attenAddLi" runat="server">
|
||||
<asp:LinkButton ID="attenAdd" runat="server" CausesValidation="false" OnClick="attenAdd_Click" CssClass="dropdown-item text-secondary">
|
||||
<i class="mdi mdi-account-check text-primary me-2"></i> 上班</asp:LinkButton>
|
||||
</li>
|
||||
<li id="attenOutLi" runat="server">
|
||||
<asp:LinkButton ID="attenOut" runat="server" CausesValidation="false" OnClick="attenOut_Click" CssClass="dropdown-item text-secondary">
|
||||
<i class="mdi mdi-account-arrow-down text-primary me-2"></i> 下班</asp:LinkButton>
|
||||
</li>
|
||||
<li><hr class="dropdown-divider" /></li>
|
||||
<li>
|
||||
<asp:LinkButton ID="logout" OnClick="logout_Click" runat="server" CausesValidation="false" CssClass="dropdown-item text-secondary">
|
||||
<i class="mdi mdi-power text-primary me-2"></i> 登出</asp:LinkButton>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
168
web/admin/Templates/TBS5ADM001/uc/nav.ascx.cs
Normal file
@@ -0,0 +1,168 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
using System.Web.UI;
|
||||
using System.Web.UI.WebControls;
|
||||
|
||||
public partial class admin_Templates_TBS5ADM001_uc_nav : MyWeb.web_uc, MyWeb.config.MenuNav
|
||||
{
|
||||
public MyWeb.admin admin = new MyWeb.admin();
|
||||
private Model.ezEntities _db = new Model.ezEntities();
|
||||
protected void Page_Load(object sender, EventArgs e)
|
||||
{
|
||||
admin.isLoign();
|
||||
MyWeb.master m = (MyWeb.master)Page.Master;
|
||||
pageTitle.Text = m.company.name;
|
||||
pageTitle.NavigateUrl = "~/admin/index2.aspx";
|
||||
|
||||
if (!IsPostBack)
|
||||
{
|
||||
//設計師模式不可打卡
|
||||
if(admin.info.u_id == "Designer")
|
||||
{
|
||||
attenAddLi.Visible = false;
|
||||
attenOutLi.Visible = false;
|
||||
}
|
||||
|
||||
//判斷考勤IP
|
||||
List<string> IPs = new List<string>();
|
||||
string[] ips = System.Configuration.ConfigurationManager.AppSettings["attendancesIP"].ToString().Split(',');
|
||||
if (ips.Length > 0)
|
||||
{
|
||||
bool success = false;
|
||||
for (int i = 0; i <= ips.Length - 1; i++)
|
||||
IPs.Add(ips[i]);
|
||||
|
||||
string myip = MyWeb.ip.Get();
|
||||
|
||||
if (IPs.Count > 0)
|
||||
foreach (string IP in IPs)
|
||||
if (myip.IndexOf(IP) == 0)
|
||||
success = true;
|
||||
|
||||
|
||||
if (!success)
|
||||
{
|
||||
attenAddLi.Visible = false;
|
||||
attenOutLi.Visible = false;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
protected void logout_Click(object sender, EventArgs e)
|
||||
{
|
||||
admin.ClearInfo();
|
||||
Response.Redirect("~/admin/index.aspx");
|
||||
}
|
||||
|
||||
public void InitNav(List<string> nItem)
|
||||
{
|
||||
breadCrumb.DataSource = nItem;
|
||||
breadCrumb.DataBind();
|
||||
this.Page.Title = String.Join("-",nItem.ToArray());
|
||||
}
|
||||
|
||||
#region 上班打卡
|
||||
protected void attenAdd_Click(object sender, EventArgs e)
|
||||
{
|
||||
int hr = _db.members.Where(q => q.admin_num == admin.info.num).Select(q => q.num).FirstOrDefault(); //人員num
|
||||
//檢查是否已打卡
|
||||
var qry = _db.member_check.Where(q => q.mem_num == hr);
|
||||
qry = qry.Where(q => q.check_type == (int)Model.member.attendances.type.Start);
|
||||
qry = qry.Where(q => q.check_date == DateTime.Today);
|
||||
Model.member_check member_check = qry.FirstOrDefault();
|
||||
if (member_check != null)
|
||||
{
|
||||
//已打卡
|
||||
ScriptManager.RegisterStartupScript(Page, GetType(), "JsStatus", "msgtop('重複打卡','" + MyWeb.function.msgIcon.warning + "')", true);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (hr != 0)
|
||||
{
|
||||
member_check = new Model.member_check();
|
||||
member_check.login_ip = Request.UserHostAddress;
|
||||
member_check.login_type = (int)Model.member.attendances.login.Account;
|
||||
member_check.mem_num = hr;
|
||||
member_check.check_type = (int)Model.member.attendances.type.Start;
|
||||
member_check.check_date = DateTime.Today;
|
||||
member_check.check_time = TimeSpan.Parse(DateTime.Now.ToString("HH:mm"));
|
||||
|
||||
try
|
||||
{
|
||||
_db.member_check.Add(member_check);
|
||||
_db.SaveChanges();
|
||||
ScriptManager.RegisterStartupScript(Page, GetType(), "JsStatus", "msgtop('打卡成功','" + MyWeb.function.msgIcon.success + "')", true);
|
||||
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
ScriptManager.RegisterStartupScript(Page, GetType(), "JsStatus", "msgtop('打卡失敗','" + MyWeb.function.msgIcon.error + "')", true);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
//未建立系統帳號
|
||||
ScriptManager.RegisterStartupScript(Page, GetType(), "JsStatus", "msgtop('人員資料請先綁定系統帳號','" + MyWeb.function.msgIcon.warning + "')", true);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 下班打卡
|
||||
protected void attenOut_Click(object sender, EventArgs e)
|
||||
{
|
||||
int hr = _db.members.Where(q => q.admin_num == admin.info.num).Select(q => q.num).FirstOrDefault(); //人員num
|
||||
//檢查是否已打卡
|
||||
var qry = _db.member_check.Where(q => q.mem_num == hr);
|
||||
qry = qry.Where(q => q.check_type == (int)Model.member.attendances.type.GetOff);
|
||||
qry = qry.Where(q => q.check_date == DateTime.Today);
|
||||
Model.member_check member_check = qry.FirstOrDefault();
|
||||
if (member_check != null)
|
||||
{
|
||||
//已打卡
|
||||
ScriptManager.RegisterStartupScript(Page, GetType(), "JsStatus", "msgtop('重複打卡','" + MyWeb.function.msgIcon.warning + "')", true);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (hr != 0)
|
||||
{
|
||||
member_check = new Model.member_check();
|
||||
member_check.login_ip = Request.UserHostAddress;
|
||||
member_check.login_type = (int)Model.member.attendances.login.Account;
|
||||
member_check.mem_num = hr;
|
||||
member_check.check_type = (int)Model.member.attendances.type.GetOff;
|
||||
member_check.check_date = DateTime.Today;
|
||||
member_check.check_time = TimeSpan.Parse(DateTime.Now.ToString("HH:mm"));
|
||||
|
||||
try
|
||||
{
|
||||
_db.member_check.Add(member_check);
|
||||
_db.SaveChanges();
|
||||
ScriptManager.RegisterStartupScript(Page, GetType(), "JsStatus", "msgtop('打卡成功','" + MyWeb.function.msgIcon.success + "')", true);
|
||||
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
ScriptManager.RegisterStartupScript(Page, GetType(), "JsStatus", "msgtop('打卡失敗','" + MyWeb.function.msgIcon.error + "')", true);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
//未建立系統帳號
|
||||
ScriptManager.RegisterStartupScript(Page, GetType(), "JsStatus", "msgtop('人員資料請先綁定系統帳號','" + MyWeb.function.msgIcon.warning + "')", true);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
|
||||
|
||||
}
|
||||
247
web/admin/Templates/Template003/MasterPage.master
Normal file
@@ -0,0 +1,247 @@
|
||||
<%@ Master Language="C#" AutoEventWireup="true" CodeFile="MasterPage.master.cs" Inherits="admin_Templates_Template003_MasterPage" %>
|
||||
<%@ Register Src="~/admin/menu.ascx" TagPrefix="uc1" TagName="menu" %>
|
||||
<%@ Register Src="~/admin/nav.ascx" TagPrefix="uc1" TagName="nav" %>
|
||||
<!DOCTYPE html>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head runat="server">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<title>後端管理</title>
|
||||
|
||||
<link href="<%=ResolveUrl("~/App_Script/bootstrap3/css/bootstrap.css") %>" rel="stylesheet" />
|
||||
<link href="<%=ResolveUrl("~/App_Script/bootstrap_datepicker/css/datepicker.css") %>" rel="stylesheet" />
|
||||
<link href="<%=ResolveUrl("~/admin/skin/ezweb-admin-icons/style.css") %>" rel="stylesheet" />
|
||||
<link href="<%=ResolveUrl("~/admin/Templates/Template003/css/style.css") %>" rel="stylesheet" media="screen" />
|
||||
<link href="<%=ResolveUrl("~/App_Script/custom-scrollbar-plugin/jquery.mCustomScrollbar.css") %>" rel="stylesheet" />
|
||||
<link href="<%=ResolveUrl("~/App_Script/fontawesome/css/all.min.css") %>" rel="stylesheet" />
|
||||
<!--[if lt IE 9]>
|
||||
<link href="../skin/css/ie8-and-down.css" rel="stylesheet" type="text/css" />
|
||||
<![endif]-->
|
||||
<script type="text/javascript" src="<%=ResolveUrl("~/App_Script/js/jquery-3.5.1.min.js") %>"></script>
|
||||
<script type="text/javascript" src="<%=ResolveUrl("~/App_Script/js/admin.js") %>"></script>
|
||||
<script type="text/javascript" src="<%=ResolveUrl("~/App_Script/bootstrap3/js/bootstrap.js") %>"></script>
|
||||
<script type="text/javascript" src="<%=ResolveUrl("~/App_Script/bootstrap_datepicker/js/bootstrap-datepicker-tw.js") %>"></script>
|
||||
<script type="text/javascript" src="<%=ResolveUrl("~/App_Script/custom-scrollbar-plugin/jquery.mCustomScrollbar.js") %>"></script>
|
||||
<script type="text/javascript" src="<%=ResolveUrl("~/App_Script/js/req.js") %>"></script>
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function () {
|
||||
|
||||
$("#goTop").click(function () {
|
||||
|
||||
$("html,body").animate({ scrollTop: 0 }, 800);
|
||||
|
||||
//$("html,body").animate({scrollTop:0},900,"easeOutBounce");
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
var side_height = $(window).height() - $('.header').height();
|
||||
//$(".side1").css({ "min-height": side_height });
|
||||
|
||||
if ($(window).width() < 768) {
|
||||
$(".main").attr({ "class": "main side_hide" });
|
||||
} else {
|
||||
$(".main").attr({ "class": "main" });
|
||||
}
|
||||
$(window).resize(function () {
|
||||
if ($(window).width() < 768) {
|
||||
$(".main").attr({ "class": "main side_hide" });
|
||||
//$(".side1").css({ "height": side_height });
|
||||
} else {
|
||||
//$(".side1").css({ "height": side_height });
|
||||
}
|
||||
});
|
||||
|
||||
/*收合左側選單*/
|
||||
$(".btn-side-toggle").click(function () {
|
||||
$(".main").toggleClass("side_hide", 500);
|
||||
});
|
||||
|
||||
/*左側選單項目收合功能*/
|
||||
$("ul.collapsible_item").hide();
|
||||
$("li.collapsible > a").click(function (e) {
|
||||
|
||||
e.preventDefault();
|
||||
|
||||
var cindex = $(this).index("li.collapsible > a");
|
||||
|
||||
var collapsibles = $("li.collapsible > a");
|
||||
for (i = 0; i < collapsibles.length; i++) {
|
||||
if ($(collapsibles[i]).hasClass("active") && i != cindex) {
|
||||
$(collapsibles[i]).removeClass("active");
|
||||
$(collapsibles[i]).parents("li.collapsible").find("ul.collapsible_item").slideUp();
|
||||
$(collapsibles[i]).find("span").attr('class', 'glyphicon glyphicon-plus');
|
||||
// break;
|
||||
} else if (i == cindex) {
|
||||
if ($(collapsibles[i]).find("span").attr('class') == 'glyphicon glyphicon-minus') {
|
||||
$(collapsibles[i]).find("span").attr('class', 'glyphicon glyphicon-plus');
|
||||
} else {
|
||||
$(collapsibles[i]).find("span").attr('class', 'glyphicon glyphicon-minus');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$(this).parents("li.collapsible").find("ul.collapsible_item")
|
||||
.slideToggle(400, function (e) {
|
||||
$(".scroll-box").mCustomScrollbar("update");
|
||||
});
|
||||
$(this).toggleClass("active");
|
||||
|
||||
});
|
||||
|
||||
/*進階搜尋收合*/
|
||||
$('.btn-search').click(function () {
|
||||
|
||||
if ($('.search_panel').css("display") == "none") {
|
||||
$(this).html('<span class="glyphicon glyphicon-search"></span> 回列表頁');
|
||||
} else {
|
||||
$(this).html('<span class="glyphicon glyphicon-search"></span> 條件搜尋');
|
||||
}
|
||||
|
||||
$('.search_panel').slideToggle();
|
||||
$('#printArea').slideToggle();
|
||||
});
|
||||
|
||||
/*日期選擇器*/
|
||||
if ($(".datepicker").length > 0) {
|
||||
$(".datepicker").datepicker().on('changeDate', function (e) {
|
||||
$(this).datepicker('hide');
|
||||
});
|
||||
$('.datepicker').css("cursor", "pointer");
|
||||
}
|
||||
|
||||
if ($('#ExpandMenuNum').length > 0) {
|
||||
var num = $('#ExpandMenuNum').val();
|
||||
$('li.collapsible > a.num' + num).siblings("ul.collapsible_item").show();
|
||||
$('li.collapsible > a.num' + num).addClass("active");
|
||||
$('li.collapsible > a.num' + num + ' span').attr('class', 'glyphicon glyphicon-minus');
|
||||
}
|
||||
|
||||
});
|
||||
$(document).ready(function () {
|
||||
$(".scroll-box").mCustomScrollbar({
|
||||
axis: "yx",
|
||||
scrollInertia: 80
|
||||
});
|
||||
});
|
||||
|
||||
</script>
|
||||
<%-- <script type="text/javascript" src="<%=ResolveUrl("~/App_Script/js/jquery-1.10.2.js") %>"></script>
|
||||
<script type="text/javascript">
|
||||
function msgbox(text) {
|
||||
$.msgbox('<div style="min-width:200px;">' + text + '</div>');
|
||||
}
|
||||
</script>--%>
|
||||
<script src="<%=ResolveUrl("~/App_Script/sweetalert2-9.10.9/dist/sweetalert2.min.js") %>"></script>
|
||||
<link href="<%=ResolveUrl("~/App_Script/sweetalert2-9.10.9/dist/sweetalert2.min.css") %>" rel="stylesheet" />
|
||||
<script>
|
||||
function msgbox(html, icon = '', url = '') {
|
||||
Swal.fire({
|
||||
icon: icon,
|
||||
html: html,
|
||||
confirmButtonText: '關閉',
|
||||
onClose: () => {
|
||||
if (url != '') {
|
||||
window.location = url;
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function msgtop(html, icon = 'success') {
|
||||
const Toast = Swal.mixin({
|
||||
toast: true,
|
||||
position: 'top-end',
|
||||
showConfirmButton: false,
|
||||
timer: 3000,
|
||||
heightAuto: false,
|
||||
timerProgressBar: true,
|
||||
onOpen: (toast) => {
|
||||
toast.addEventListener('mouseenter', Swal.stopTimer)
|
||||
toast.addEventListener('mouseleave', Swal.resumeTimer)
|
||||
}
|
||||
})
|
||||
|
||||
Toast.fire({
|
||||
icon: icon,
|
||||
html: '<div class="swal2-toast-cus">' + html + '</div>'
|
||||
})
|
||||
}
|
||||
|
||||
var mctmp = '0';
|
||||
function msgconfirm(html, btn, icon = 'question') {
|
||||
if (mctmp == '0') {
|
||||
Swal.fire({
|
||||
html: html,
|
||||
icon: icon,
|
||||
showCancelButton: true,
|
||||
confirmButtonText: '<i class="fas fa-check"></i> 確定',
|
||||
cancelButtonText: '<i class="fas fa-times"></i> 取消'
|
||||
}).then((result) => {
|
||||
if (result.value) {
|
||||
mctmp = '1';
|
||||
if ($(btn)[0].hasAttribute('href')) {
|
||||
var href = $(btn).attr('href');
|
||||
window.location.href = href;
|
||||
} else {
|
||||
$(btn).click();
|
||||
}
|
||||
}
|
||||
})
|
||||
mctmp = '0';
|
||||
return false;
|
||||
} else {
|
||||
mctmp = '0';
|
||||
return true;
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<link href="<%=ResolveUrl("~/App_Script/css/expand.css") %>" rel="stylesheet" />
|
||||
<asp:ContentPlaceHolder ID="page_header" runat="server">
|
||||
</asp:ContentPlaceHolder>
|
||||
</head>
|
||||
<body class="<% =(isHome()?"home login":"")%>" id="Body">
|
||||
<form id="form1" runat="server">
|
||||
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
|
||||
<div class="page-wrap">
|
||||
<!-- Header -->
|
||||
<div class="header hidden-print">
|
||||
<div class="page-title login-center">
|
||||
<h1><a><%=company.name %></a></h1>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /.header -->
|
||||
<div class="main">
|
||||
<div class="side1 hidden-print scroll-box">
|
||||
<ul class="list-unstyled">
|
||||
<%--<uc1:menu runat="server" ID="menu" />--%>
|
||||
<uc1:menu runat="server" ID="menu" />
|
||||
</ul>
|
||||
</div>
|
||||
<!-- /.side1 -->
|
||||
<div class="content">
|
||||
<div class="navigation hidden-login">
|
||||
<button type="button" class="btn btn-side-toggle hidden-print">
|
||||
<span class="sr-only">開合側選單</span>
|
||||
<i class="fas fa-bars" style="font-size: 20px; color: #FFF"></i>
|
||||
</button>
|
||||
<%--<uc1:nav runat="server" ID="nav" />--%>
|
||||
<uc1:nav runat="server" ID="nav" />
|
||||
</div>
|
||||
<!-- /.navbar -->
|
||||
<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
|
||||
</asp:ContentPlaceHolder>
|
||||
</div>
|
||||
<!-- /.content -->
|
||||
<div id="floating"></div>
|
||||
</div>
|
||||
<!-- /.main -->
|
||||
<div class="footer">
|
||||
</div>
|
||||
<!-- /.footer -->
|
||||
</div>
|
||||
<!-- /.page-wrap -->
|
||||
</form>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
14
web/admin/Templates/Template003/MasterPage.master.cs
Normal file
@@ -0,0 +1,14 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
using System.Web.UI;
|
||||
using System.Web.UI.WebControls;
|
||||
|
||||
public partial class admin_Templates_Template003_MasterPage : MyWeb.master
|
||||
{
|
||||
protected void Page_Load(object sender, EventArgs e)
|
||||
{
|
||||
MasterLoad();
|
||||
}
|
||||
}
|
||||
11
web/admin/Templates/Template003/config.xml
Normal file
@@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<xml id="cat_template" type="master">
|
||||
<title>樣版3</title>
|
||||
<description>
|
||||
樣版3描述
|
||||
</description>
|
||||
<img id="thumb" src="~/admin/Templates/Template003/images/body_bg.jpg"/>
|
||||
<assets>
|
||||
<file id="control" href="~/admin/Templates/Template003/default.master"/>
|
||||
</assets>
|
||||
</xml>
|
||||
1118
web/admin/Templates/Template003/css/style.css
Normal file
BIN
web/admin/Templates/Template003/images/body_bg.jpg
Normal file
|
After Width: | Height: | Size: 42 KiB |
BIN
web/admin/Templates/Template003/images/close_list.png
Normal file
|
After Width: | Height: | Size: 977 B |
BIN
web/admin/Templates/Template003/images/google_analytic.png
Normal file
|
After Width: | Height: | Size: 7.6 KiB |
BIN
web/admin/Templates/Template003/images/logo_black.png
Normal file
|
After Width: | Height: | Size: 3.9 KiB |
BIN
web/admin/Templates/Template003/images/logo_white.png
Normal file
|
After Width: | Height: | Size: 3.8 KiB |
BIN
web/admin/Templates/Template003/images/news_list_icon.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
web/admin/Templates/Template003/images/open_list.png
Normal file
|
After Width: | Height: | Size: 999 B |
BIN
web/admin/Templates/Template003/images/side_menu.jpg
Normal file
|
After Width: | Height: | Size: 24 KiB |
BIN
web/admin/Templates/Template003/images/wrp_eztrust.png
Normal file
|
After Width: | Height: | Size: 7.2 KiB |