179 lines
8.5 KiB
Plaintext
179 lines
8.5 KiB
Plaintext
<%@ 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>
|
||
|
||
<script>
|
||
//全局的VUE組件,操作提示組件
|
||
Vue.component('message-modal', {
|
||
data() {
|
||
return {
|
||
show: false,
|
||
title: '提示',
|
||
message: '',
|
||
status: 'success', // 'success' or 'error'
|
||
callback: null
|
||
};
|
||
},
|
||
methods: {
|
||
open({ title = '提示', message = '', status = 'success', callback = null }) {
|
||
this.title = title;
|
||
this.message = message;
|
||
this.status = status;
|
||
this.callback = callback;
|
||
this.show = true;
|
||
},
|
||
close() {
|
||
this.show = false;
|
||
if (this.callback) this.callback();
|
||
}
|
||
},
|
||
template: `
|
||
<div class="modal fade" tabindex="-1" :class="{ show: show }" style="display: block;" v-if="show" @click.self="close">
|
||
<div class="modal-dialog modal-dialog-centered">
|
||
<div class="modal-content">
|
||
<div class="modal-header" :class="status === 'success' ? 'bg-success text-white' : 'bg-danger text-white'">
|
||
<h5 class="modal-title">{{ title }}</h5>
|
||
<button type="button" class="btn-close" @click="close"></button>
|
||
</div>
|
||
<div class="modal-body">
|
||
<p>{{ message }}</p>
|
||
</div>
|
||
<div class="modal-footer">
|
||
<button type="button" class="btn" :class="status === 'success' ? 'btn-success' : 'btn-danger'" @click="close">確定</button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
`
|
||
});
|
||
Vue.component('confirm-modal', {
|
||
data() {
|
||
return {
|
||
show: false,
|
||
title: '確認操作',
|
||
message: '是否確定要執行此操作?',
|
||
confirmCallback: null,
|
||
cancelCallback: null
|
||
};
|
||
},
|
||
methods: {
|
||
open(opts) {
|
||
this.title = opts.title || '確認操作';
|
||
this.message = opts.message || '是否確定要執行此操作?';
|
||
this.confirmCallback = opts.onConfirm || null;
|
||
this.cancelCallback = opts.onCancel || null;
|
||
this.show = true;
|
||
},
|
||
confirm() {
|
||
this.show = false;
|
||
if (this.confirmCallback) this.confirmCallback();
|
||
},
|
||
cancel() {
|
||
this.show = false;
|
||
if (this.cancelCallback) this.cancelCallback();
|
||
}
|
||
},
|
||
template: `
|
||
<div class="modal fade" tabindex="-1"
|
||
:class="{ show: show }"
|
||
style="display:block;" v-if="show"
|
||
@click.self="cancel">
|
||
<div class="modal-dialog modal-dialog-centered">
|
||
<div class="modal-content">
|
||
<div class="modal-header bg-warning text-white">
|
||
<h5 class="modal-title">{{ title }}</h5>
|
||
<button type="button" class="btn-close" @click="cancel"></button>
|
||
</div>
|
||
<div class="modal-body">
|
||
<p>{{ message }}</p>
|
||
</div>
|
||
<div class="modal-footer">
|
||
<button type="button" class="btn btn-secondary" @click="cancel">取消</button>
|
||
<button type="button" class="btn btn-danger" @click="confirm">確認</button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>`
|
||
});
|
||
</script>
|
||
|
||
<asp:ContentPlaceHolder id="footer_script" runat="server">
|
||
|
||
</asp:ContentPlaceHolder>
|
||
</form>
|
||
</body>
|
||
</html>
|