|
@@ -20,11 +20,12 @@
|
|
:data="[
|
|
:data="[
|
|
{ title: 'IP集合', id: '1'},
|
|
{ title: 'IP集合', id: '1'},
|
|
]"
|
|
]"
|
|
- @update="(item: any) => ipAdd = !ipAdd"
|
|
|
|
|
|
+ @update="(item: any) => listEditOpen = true"
|
|
@delete="(item: any) => ipDeletable = !ipDeletable"
|
|
@delete="(item: any) => ipDeletable = !ipDeletable"
|
|
:deleteText="t('marketingConfig.deleteText')"
|
|
:deleteText="t('marketingConfig.deleteText')"
|
|
:updateText="'新增'"
|
|
:updateText="'新增'"
|
|
style="margin-top: 30px;"
|
|
style="margin-top: 30px;"
|
|
|
|
+ :activeNames="['1']"
|
|
>
|
|
>
|
|
<template #default>
|
|
<template #default>
|
|
<div class="border-b p-2 items-center flex flex-wrap collapse-group">
|
|
<div class="border-b p-2 items-center flex flex-wrap collapse-group">
|
|
@@ -91,15 +92,17 @@
|
|
:data="[
|
|
:data="[
|
|
{ title: '域名集合', id: '1'},
|
|
{ title: '域名集合', id: '1'},
|
|
]"
|
|
]"
|
|
- @update="(item: any) => domainAdd = !domainAdd"
|
|
|
|
|
|
+ @update="(item: any) => domainEditOpen = true"
|
|
@delete="(item: any) => domainDeletable = !domainDeletable"
|
|
@delete="(item: any) => domainDeletable = !domainDeletable"
|
|
:deleteText="t('marketingConfig.deleteText')"
|
|
:deleteText="t('marketingConfig.deleteText')"
|
|
:updateText="'新增'"
|
|
:updateText="'新增'"
|
|
style="margin-top: 30px;"
|
|
style="margin-top: 30px;"
|
|
|
|
+ :activeNames="['1']"
|
|
>
|
|
>
|
|
<template #default>
|
|
<template #default>
|
|
<div class="p-2 items-center flex flex-wrap">
|
|
<div class="p-2 items-center flex flex-wrap">
|
|
- <el-tag v-for="item in domains" :key="item" effect="light" :closable="domainDeletable"
|
|
|
|
|
|
+ <el-tag v-for="item in domains" :key="item"
|
|
|
|
+ @close="handleDelectDomain(item)" effect="light" :closable="domainDeletable"
|
|
style="margin-bottom: 4px;" color="#f4f4f4" round class="ml-1 cursor-pointer">
|
|
style="margin-bottom: 4px;" color="#f4f4f4" round class="ml-1 cursor-pointer">
|
|
{{ item.domain }}
|
|
{{ item.domain }}
|
|
</el-tag>
|
|
</el-tag>
|
|
@@ -120,16 +123,39 @@
|
|
</span>
|
|
</span>
|
|
</template>
|
|
</template>
|
|
</el-dialog>
|
|
</el-dialog>
|
|
|
|
+ <ListEdit v-model:open="listEditOpen" />
|
|
|
|
+ <DomainEdit v-model:open="domainEditOpen" />
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
|
|
|
|
<script setup lang="ts" name="systemMenuDialog">
|
|
<script setup lang="ts" name="systemMenuDialog">
|
|
import {useI18n} from 'vue-i18n';
|
|
import {useI18n} from 'vue-i18n';
|
|
-import JCollapse from '/@/components/JCollapse/index.vue';
|
|
|
|
|
|
+const JCollapse = defineAsyncComponent(() => import('/@/components/JCollapse/index.vue'));
|
|
|
|
+const ListEdit = defineAsyncComponent(() => import('./listEdit.vue'));
|
|
|
|
+const DomainEdit = defineAsyncComponent(() => import('./domainEdit.vue'));
|
|
|
|
+
|
|
|
|
+interface IpItem {
|
|
|
|
+ id: String;
|
|
|
|
+ ipMode: Number;
|
|
|
|
+ ipType: Number;
|
|
|
|
+ sourceType: Number; // 1:分组 2:具体Ip(段)
|
|
|
|
+ startIp: String;
|
|
|
|
+ endIp: String;
|
|
|
|
+ groupId: String;
|
|
|
|
+ groupName: String;
|
|
|
|
+}
|
|
|
|
|
|
interface Ips {
|
|
interface Ips {
|
|
- blacklist: String[];
|
|
|
|
- whitelist: String[];
|
|
|
|
|
|
+ blacklist: IpItem[];
|
|
|
|
+ whitelist: IpItem[];
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+interface DomianItem {
|
|
|
|
+ id: String;
|
|
|
|
+ domain: String;
|
|
|
|
+ sourceType: Number; // 1:分组 2:具体域名
|
|
|
|
+ groupId: String;
|
|
|
|
+ groupName: String;
|
|
}
|
|
}
|
|
|
|
|
|
// 定义子组件向父组件传值/事件
|
|
// 定义子组件向父组件传值/事件
|
|
@@ -145,11 +171,13 @@ const ips = ref<Ips>({
|
|
blacklist: [],
|
|
blacklist: [],
|
|
whitelist: []
|
|
whitelist: []
|
|
});
|
|
});
|
|
-const domains = ref<string[]>([]);
|
|
|
|
|
|
+const domains = ref<DomianItem[]>([]);
|
|
const ipDeletable = ref(false);// 控制 IP 列表项是否可删除
|
|
const ipDeletable = ref(false);// 控制 IP 列表项是否可删除
|
|
const domainDeletable = ref(false);// 控制域名列表项是否可删除
|
|
const domainDeletable = ref(false);// 控制域名列表项是否可删除
|
|
const ipAdd = ref(false);
|
|
const ipAdd = ref(false);
|
|
const domainAdd = ref(false);
|
|
const domainAdd = ref(false);
|
|
|
|
+const listEditOpen = ref(false);
|
|
|
|
+const domainEditOpen = ref(false);
|
|
|
|
|
|
// 定义需要的数据
|
|
// 定义需要的数据
|
|
const state = reactive({
|
|
const state = reactive({
|
|
@@ -176,14 +204,15 @@ const getIpList = (detail) => {
|
|
}
|
|
}
|
|
|
|
|
|
// 删除ip
|
|
// 删除ip
|
|
-const handleDelectIp = (delectItem)=>{
|
|
|
|
- ips.value.whitelist = ips.value.whitelist.filter((item: any) => item.id != delectItem.id);
|
|
|
|
- ips.value.blacklist = ips.value.blacklist.filter((item: any) => item.id != delectItem.id);
|
|
|
|
|
|
+const handleDelectIp = (deleteItem: IpItem)=>{
|
|
|
|
+ ips.value.whitelist = ips.value.whitelist.filter((item: any) => item.id != deleteItem.id);
|
|
|
|
+ ips.value.blacklist = ips.value.blacklist.filter((item: any) => item.id != deleteItem.id);
|
|
}
|
|
}
|
|
|
|
|
|
// 删除域名
|
|
// 删除域名
|
|
-const handleDelectDomain = (item)=>{
|
|
|
|
|
|
+const handleDelectDomain = (deleteItem: DomianItem)=>{
|
|
console.log('delectDomain')
|
|
console.log('delectDomain')
|
|
|
|
+ domains.value = domains.value.filter((item: any) => item.id != deleteItem.id);
|
|
}
|
|
}
|
|
|
|
|
|
// 打开弹窗
|
|
// 打开弹窗
|