diff --git a/src/main/core/Nginx.js b/src/main/core/Nginx.js
index 51dae93f..7d7ad066 100644
--- a/src/main/core/Nginx.js
+++ b/src/main/core/Nginx.js
@@ -135,16 +135,21 @@ export default class Nginx {
}
}
-
-
- static async websiteExists(serverName, port) {
+ static async websiteExists(serverName, port = null) {
const vhostsPath = GetPath.getNginxVhostsDir()
const files = await DirUtil.GetFiles(vhostsPath)
- const filterArr = await files.filterAsync(async (path) => {
- let confText = await FileUtil.ReadAll(path)
+ const filterFn = async (path) => {
+ const confText = await FileUtil.ReadAll(path)
const serverNames = this.getAllServerName(confText)
- return serverNames.includes(serverName) && this.getPortByConfPath(path) === port
- })
+ if (serverNames.includes(serverName)) {
+ if (port != null) {
+ return this.getPortByConfPath(path) === port
+ }
+ return true
+ }
+ return false
+ }
+ const filterArr = await files.filterAsync(filterFn)
return filterArr.length > 0
}
diff --git a/src/main/core/website/Website.js b/src/main/core/website/Website.js
index 23ec4aa5..e06fe82e 100644
--- a/src/main/core/website/Website.js
+++ b/src/main/core/website/Website.js
@@ -9,7 +9,7 @@ export default class Website {
* @param websiteInfo {WebsiteItem}
*/
static async add(websiteInfo) {
- if (await Nginx.websiteExists(websiteInfo.serverName, websiteInfo.port)) {
+ if (await this.exists(websiteInfo.serverName, websiteInfo.port)) {
throw new Error(`${websiteInfo.serverName}:${websiteInfo.port}\n已经存在,不能重复!`)
}
@@ -19,6 +19,10 @@ export default class Website {
await Nginx.addWebsite(websiteInfo);
}
+ static async exists(serverName, port = null) {
+ return await Nginx.websiteExists(serverName, port)
+ }
+
static async delete(confName) {
await Nginx.delWebsite(confName);
}
diff --git a/src/renderer/components/WebSite/EditWebSite/BasicSetting.vue b/src/renderer/components/WebSite/EditWebSite/BasicSetting.vue
index ee984d24..1a5ea45a 100644
--- a/src/renderer/components/WebSite/EditWebSite/BasicSetting.vue
+++ b/src/renderer/components/WebSite/EditWebSite/BasicSetting.vue
@@ -1,131 +1,135 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/renderer/views/Website.vue b/src/renderer/views/Website.vue
index 5bdb5f7c..009c10f5 100644
--- a/src/renderer/views/Website.vue
+++ b/src/renderer/views/Website.vue
@@ -159,34 +159,40 @@ search();
const del = async (item) => {
try {
let options = {
- content:t('areYouSure'),
+ content:t('Delete')+` ${item.serverName}:${item.port} ?`,
okText:t('Confirm'),
cancelText:t('Cancel'),
};
if (await MessageBox.confirm(options)) {
await Website.delete(item.confName);
}
- } catch (error) {
+ } catch (error) {
MessageBox.error(error.message ?? error, '删除出错!');
return;
}
- //// 会删除所有port的ServerName,需要优化
- // if (item.syncHosts) {
- // try {
- // await Hosts.delete(item.serverName);
- // //删除第二域名时,删除对应的hosts文件配置
- // if (item.extraServerName) {
- // await Hosts.delete(item.extraServerName);
- // }
- // } catch (error) {
- // MessageBox.error(error.message ?? error, t('errorOccurredDuring', [mt('sync', 'ws') + 'hosts']))
- // }
- // }
+ if (item.syncHosts) {
+ const { serverName, extraServerName } = item
+ syncHosts(serverName, extraServerName)
+ }
search();
}
+async function syncHosts(serverName, extraServerName) {
+ try {
+ if (!await Website.exists(serverName)) {
+ await Hosts.delete(serverName);
+ }
+
+ if (extraServerName && !await Website.exists(extraServerName)) {
+ await Hosts.delete(extraServerName);
+ }
+ } catch {
+ /* empty */
+ }
+}
+
const showAdd = () => {
addModalVisible.value = true;
};
@@ -222,12 +228,11 @@ const openRootPath = (item) => {
.web-header {
display: flex;
justify-content: space-between;
- //padding: 15px 15px;
}
:deep(td) {
height: 57px;
}
:deep(.ant-table-pagination) {
- margin: 6px 0!important;
+ margin: 6px 10px !important;
}