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