vue实现nginx可视化ui操作设置多网站站点代码
代码语言:html
所属分类:布局界面
代码描述:vue实现nginx可视化ui操作设置多网站站点代码
代码标签: vue nginx 可视化 ui 操作 设置 多网站 站点 代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Nginx Manager (Mock API)</title>
<link type="text/css" rel="stylesheet" href="//repo.bfw.wiki/bfwrepo/css/element-plus.index.2.10.3.css">
<style>
body { font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; margin: 0; background-color: #f4f5f7; }
#app { display: flex; height: 100vh; }
.sidebar { width: 300px; background-color: #ffffff; border-right: 1px solid #e6e6e6; padding: 20px; overflow-y: auto; flex-shrink: 0; }
.main-content { flex-grow: 1; padding: 20px; overflow-y: auto; }
.site-item { display: flex; justify-content: space-between; align-items: center; padding: 12px; border-radius: 6px; cursor: pointer; margin-bottom: 10px; transition: background-color 0.2s; }
.site-item:hover { background-color: #ecf5ff; }
.site-item.active { background-color: #d9ecff; font-weight: bold; }
.status-dot { height: 10px; width: 10px; border-radius: 50%; display: inline-block; margin-right: 8px; }
.status-enabled { background-color: #67c23a; }
.status-disabled { background-color: #909399; }
.header { margin-bottom: 20px; display: flex; justify-content: space-between; align-items: center; }
.form-section { margin-bottom: 25px; padding-bottom: 15px; border-bottom: 1px solid #ebeef5; }
.form-section-title { font-size: 16px; font-weight: 600; margin-bottom: 15px; color: #303133; }
.el-alert { margin-bottom: 20px; }
</style>
</head>
<body>
<div id="app" v-loading.fullscreen.lock="fullscreenLoading">
<div class="sidebar">
<div class="header">
<h2>站点列表</h2>
<el-button type="primary" :icon="Plus" @click="handleNewSite" size="small">新建</el-button>
</div>
<div v-for="site in sites" :key="site.filename"
class="site-item"
:class="{ active: currentSite && currentSite.filename === site.filename }"
@click="selectSite(site.filename)">
<div>
<span class="status-dot" :class="site.status === 'enabled' ? 'status-enabled' : 'status-disabled'"></span>
<span>{{ site.filename }}</span>
</div>
</div>
</div>
<div class="main-content">
<div v-if="!currentSite" class="el-empty" description="请从左侧选择一个站点或新建一个站点">
<el-empty description="请从左侧选择一个站点,或新建一个站点" :image-size="200"></el-empty>
</div>
<div v-if="currentSite">
<div class="header">
<h1>{{ currentSite.filename }}</h1>
<div>
<el-button :type="siteStatus === 'enabled' ? 'warning' : 'success'" @click="toggleSiteStatus">
{{ siteStatus === 'enabled' ? '禁用' : '启用' }}
</el-button>
<el-button type="primary" @click="reloadNginx">重载Nginx</el-button>
<el-button type="danger" :icon="Delete" @click="deleteSite"></el-button>
</div>
</div>
<el-alert v-if="configChanged" title="配置已修改,请点击“保存更改”并“重载Nginx”以生效。" type="warning" show-icon :closable="false"></el-alert>
<el-form :model="form" label-width="150px" label-position="right">
<div class="form-section">
<div class="form-section-title">基础配置</div>
<el-form-item label="配置文件名">
<el-input v-model="form.filename" disabled></el-input>
.........完整代码请登录后点击上方下载按钮下载查看
















网友评论0