浏览代码

fix:配置中心bug修复

luoy 1 周之前
父节点
当前提交
439be87e29

+ 2 - 2
src/components/JCollapse/index.vue

@@ -16,13 +16,13 @@
 					<div v-if="item.list.length > 0">
 					<div v-if="item.list.length > 0">
 						<div v-for="ip in item.list" :key="ip.id" class="m-2 float-left" style="color: #646464; font-size: 14px">{{ ip.value }}</div>
 						<div v-for="ip in item.list" :key="ip.id" class="m-2 float-left" style="color: #646464; font-size: 14px">{{ ip.value }}</div>
 					</div>
 					</div>
-					<div class="text-gray-400 ml-2" v-else>--</div>
+					<div class="text-gray-400 m-2" style="line-height: 24px;" v-else>--</div>
 				</div>
 				</div>
 				<div v-else>
 				<div v-else>
 					<div v-if="item.list.length > 0">
 					<div v-if="item.list.length > 0">
 						<div v-for="ip in item.list" :key="ip" class="m-2 float-left" style="color: #646464; font-size: 14px">{{ ip }}</div>
 						<div v-for="ip in item.list" :key="ip" class="m-2 float-left" style="color: #646464; font-size: 14px">{{ ip }}</div>
 					</div>
 					</div>
-					<div class="text-gray-400 ml-2" v-else>--</div>
+					<div class="text-gray-400 m-2" style="line-height: 24px;" v-else>--</div>
 
 
 				</div>
 				</div>
 			</div>
 			</div>

+ 11 - 2
src/views/marketing/config/components/ipListEdit.vue

@@ -20,9 +20,18 @@
 				<template #label>
 				<template #label>
 					<div v-if="index === 0" class="flex items-center">
 					<div v-if="index === 0" class="flex items-center">
 						<el-tooltip v-if="sign === 'ip'" effect="light" content="输入127.0.0.1/24格式代表网段" placement="top">
 						<el-tooltip v-if="sign === 'ip'" effect="light" content="输入127.0.0.1/24格式代表网段" placement="top">
-							<el-icon><Warning /> </el-icon>
+							<el-icon>
+								<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" fill="none">
+									<path d="M7 14C8.93298 14 10.683 13.2165 11.9497 11.9497C13.2165 10.683 14 8.93298 14 7C14 5.06702 13.2165 3.31702 11.9497 2.05025C10.683 0.783503 8.93298 0 7 0C5.06702 0 3.31702 0.783503 2.05025 2.05025C0.783503 3.31702 0 5.06702 0 7C0 8.93298 0.783503 10.683 2.05025 11.9497C3.31702 13.2165 5.06702 14 7 14Z" fill="#1B4D88" fill-opacity="0.4"/>
+									<path fill-rule="evenodd" clip-rule="evenodd" d="M6.99957 1.94434C7.5365 1.94434 7.97179 2.37962 7.97179 2.91656C7.97179 3.4535 7.5365 3.88878 6.99957 3.88878C6.46263 3.88878 6.02734 3.4535 6.02734 2.91656C6.02734 2.37962 6.46263 1.94434 6.99957 1.94434Z" fill="white"/>
+									<path d="M6.99957 1.94434C7.5365 1.94434 7.97179 2.37962 7.97179 2.91656C7.97179 3.4535 7.5365 3.88878 6.99957 3.88878C6.46263 3.88878 6.02734 3.4535 6.02734 2.91656C6.02734 2.37962 6.46263 1.94434 6.99957 1.94434ZM6.99957 2.33322C6.6774 2.33322 6.41623 2.5944 6.41623 2.91656C6.41623 3.23872 6.6774 3.49989 6.99957 3.49989C7.32173 3.49989 7.5829 3.23872 7.5829 2.91656C7.5829 2.5944 7.32173 2.33322 6.99957 2.33322Z" fill="white"/>
+									<path d="M7.19477 10.8888V5.44434H6.80588H6.41699" fill="white"/>
+									<path d="M6.41645 10.8887V6.22206C5.98689 6.22206 5.63867 5.87384 5.63867 5.44428C5.63867 5.01473 5.98689 4.6665 6.41645 4.6665H7.19423L7.27398 4.6703C7.66608 4.71023 7.97201 5.04164 7.97201 5.44428V10.8887C7.97201 11.3183 7.70354 11.3447 7.27398 11.3447C6.84443 11.3447 6.41645 11.3183 6.41645 10.8887Z" fill="white"/>
+									<path d="M8.55566 10C8.98522 10 9.33344 10.3482 9.33344 10.7778C9.33344 11.2073 8.98522 11.5556 8.55566 11.5556H5.83344C5.40389 11.5556 5.05566 11.2073 5.05566 10.7778C5.05566 10.3482 5.40389 10 5.83344 10H8.55566Z" fill="white"/>
+								</svg>
+							</el-icon>
 						</el-tooltip>
 						</el-tooltip>
-						{{ sign === 'domain' ? '域名集合' : 'ip集合' }}
+						&nbsp;{{ sign === 'domain' ? '域名集合' : 'ip集合' }}
 					</div>
 					</div>
 				</template>
 				</template>
 				<!-- <div v-for="(item, index) in state.ruleForm.list" :key="item.index" class="flex items-center mb-2 text-sm font-normal justify-start w-full"> -->
 				<!-- <div v-for="(item, index) in state.ruleForm.list" :key="item.index" class="flex items-center mb-2 text-sm font-normal justify-start w-full"> -->

+ 3 - 3
src/views/marketing/config/i18n/zh-cn.ts

@@ -21,8 +21,8 @@ export default {
 		deleteDomain: '删除域名',
 		deleteDomain: '删除域名',
 		deleteIp: '删除IP',
 		deleteIp: '删除IP',
 		grouping: '分组',
 		grouping: '分组',
-		domain: '域名',
-		ip: 'IP',
+		domain: '域名',
+		ip: 'IP/网段',
 		domainTip: '请输入域名',
 		domainTip: '请输入域名',
 		groupingTip: '请选择分组名称',
 		groupingTip: '请选择分组名称',
 		ipTip: '请输入IP',
 		ipTip: '请输入IP',
@@ -38,6 +38,6 @@ export default {
 		triggerFrequencyTip: '请输入触发频率',
 		triggerFrequencyTip: '请输入触发频率',
 		prompt: '提示信息',
 		prompt: '提示信息',
 		promptTip: '请输入提示信息',
 		promptTip: '请输入提示信息',
-		ipSegment: 'IP/段',
+		ipSegment: 'IP/段',
 	},
 	},
 };
 };

+ 18 - 4
src/views/marketing/config/index.vue

@@ -4,12 +4,15 @@
 			<el-tab-pane :label="t('marketingConfig.ipList')" name="IP分组" class="layout-padding-auto layout-padding-view">
 			<el-tab-pane :label="t('marketingConfig.ipList')" name="IP分组" class="layout-padding-auto layout-padding-view">
 				<Title class="ml-4" :title="t('marketingConfig.ipList')" />
 				<Title class="ml-4" :title="t('marketingConfig.ipList')" />
 				<div class="p-4 rounded">
 				<div class="p-4 rounded">
-					<el-button type="primary" @click="onClickAdd('ip')">{{ t('marketingConfig.addIpList') }}</el-button>
+					<el-button style="margin-bottom: 10px;" type="primary" @click="onClickAdd('ip')">{{ t('marketingConfig.addIpList') }}</el-button><br>
+					筛选分组:<el-input placeholder="请输入分组名称" clearable
+						style="display: inline-block; width: 200px; margin-left: 5px;"
+						v-model="queryIPName" />
 					<div v-if="ipData.length > 0" class="overflow-y-auto mt-2" style="height: calc(100vh - 250px)">
 					<div v-if="ipData.length > 0" class="overflow-y-auto mt-2" style="height: calc(100vh - 250px)">
 						<JCollapse
 						<JCollapse
 							@update="(item) => onClickEdit(item, 'ip')"
 							@update="(item) => onClickEdit(item, 'ip')"
 							@delete="(item) => onOpenDelete(item, 'ip')"
 							@delete="(item) => onOpenDelete(item, 'ip')"
-							:data="ipData"
+							:data="showIPData"
 							:activeNames="ipActiveId"
 							:activeNames="ipActiveId"
 							:deleteText="t('marketingConfig.deleteListText')"
 							:deleteText="t('marketingConfig.deleteListText')"
 							:updateText="t('marketingConfig.updateText')"
 							:updateText="t('marketingConfig.updateText')"
@@ -20,11 +23,14 @@
 			<el-tab-pane :label="t('marketingConfig.domainList')" name="域名分组" class="layout-padding-auto layout-padding-view">
 			<el-tab-pane :label="t('marketingConfig.domainList')" name="域名分组" class="layout-padding-auto layout-padding-view">
 				<Title class="ml-4" :title="t('marketingConfig.domainList')" />
 				<Title class="ml-4" :title="t('marketingConfig.domainList')" />
 				<div class="p-4 rounded">
 				<div class="p-4 rounded">
-					<el-button type="primary" @click="onClickAdd('domain')">{{ t('marketingConfig.addDomainList') }}</el-button>
+					<el-button style="margin-bottom: 10px;" type="primary" @click="onClickAdd('domain')">{{ t('marketingConfig.addDomainList') }}</el-button><br>
+					筛选分组:<el-input placeholder="请输入分组名称" clearable
+					style="display: inline-block; width: 200px; margin-left: 5px;"
+					v-model="queryDomainName" />
 					<div v-if="domainData.length > 0" class="overflow-y-auto mt-2" style="height: calc(100vh - 250px)">
 					<div v-if="domainData.length > 0" class="overflow-y-auto mt-2" style="height: calc(100vh - 250px)">
 						<JCollapse
 						<JCollapse
 							@update="(item) => onClickEdit(item, 'domain')"
 							@update="(item) => onClickEdit(item, 'domain')"
-							:data="domainData"
+							:data="showDomainData"
 							@delete="(item) => onOpenDelete(item, 'domain')"
 							@delete="(item) => onOpenDelete(item, 'domain')"
 							:activeNames="domainActiveId"
 							:activeNames="domainActiveId"
 							:deleteText="t('marketingConfig.deleteListText')"
 							:deleteText="t('marketingConfig.deleteListText')"
@@ -266,6 +272,14 @@ const JDictSelect = defineAsyncComponent(() => import('/@/components/JDictSelect
 const { t } = useI18n();
 const { t } = useI18n();
 // 定义变量内容
 // 定义变量内容
 const activeName = ref('IP分组');
 const activeName = ref('IP分组');
+const queryIPName = ref('');
+const queryDomainName = ref('');
+const showIPData = computed(() => {
+	return ipData.value.filter((item) => item.groupName.includes(queryIPName.value));
+});
+const showDomainData = computed(() => {
+	return domainData.value.filter((item) => item.groupName.includes(queryDomainName.value));
+});
 //关闭或打开tabs的关闭按钮
 //关闭或打开tabs的关闭按钮
 const closeDomainTags = ref(false);
 const closeDomainTags = ref(false);
 const closeIpTags = ref(false);
 const closeIpTags = ref(false);