Ver código fonte

fix: 提交哦啊

jcq 2 semanas atrás
pai
commit
9fe1321fe6

+ 1 - 1
src/views/marketing/config/components/domainEdit.vue

@@ -9,7 +9,7 @@
 		draggable
 	>
 		<el-form ref="menuDialogFormRef" :rules="dataRules" :model="state.ruleForm" v-loading="loading">
-			<el-segmented v-model="activeName" :options="[t('marketingConfig.grouping'), t('marketingConfig.domain')]" size="large" />
+			<el-segmented v-model="activeName" :options="[t('marketingConfig.grouping'), t('marketingConfig.domain')]" size="default" />
 			<el-form-item label="" prop="grouping" v-if="activeName === t('marketingConfig.grouping')">
 				<el-select v-model="state.ruleForm.groupingTip" :placeholder="t('marketingConfig.groupingTip')" clearable>
 					<el-option v-for="item in listSelect" :key="item.value" :label="item.label" :value="item.value" />

+ 0 - 1
src/views/marketing/config/components/ipGroupingEdit.vue

@@ -9,7 +9,6 @@
 		draggable
 	>
 		<el-form ref="menuDialogFormRef" :rules="dataRules" :model="state.ruleForm" v-loading="loading">
-		
 			<el-form-item :label="t('marketingConfig.groupingName')" prop="grouping" >
 				<el-input v-model="state.ruleForm.grouping" type="text" :placeholder="t('marketingConfig.groupingNameTip')"></el-input>
 			</el-form-item>

+ 18 - 8
src/views/marketing/config/components/ipListEdit.vue

@@ -8,7 +8,15 @@
 		draggable
 	>
 		<el-form ref="menuDialogFormRef" :model="state.ruleForm" label-width="90px" v-loading="loading">
-			<el-form-item :label="sign === 'domain' ? '域名集合' : 'ip集合'" prop="configs">
+			<el-form-item  prop="configs">
+				<template #label>
+					<div class="flex items-center">
+                        <el-tooltip effect="light" content="输入127.0.0.1/24格式代表网段" placement="top">
+						<el-icon><Warning /> </el-icon>
+					</el-tooltip>
+                    {{sign === 'domain' ? '域名集合' : 'ip集合'  }}
+                    </div>
+				</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">
 					<el-input style="width: 300px; margin-right: 20px" v-model="item.val" clearable :placeholder="t('marketingConfig.inputIPTip')"></el-input>
 					<div class="config-actions w-[50px] flex items-center justify-between">
@@ -78,9 +86,11 @@ const menuDialogFormRef = ref();
 // 定义需要的数据
 const state = reactive({
 	ruleForm: {
-		list: [{
-            val:'192.168.0.32',
-        }],
+		list: [
+			{
+				val: '192.168.0.32',
+			},
+		],
 		https: [''], // 域名集合
 		ips: [''], // ip集合
 		// {
@@ -96,10 +106,10 @@ const state = reactive({
 
 // // 表单校验规则
 const dataRules = reactive({
-  domain: [
-    {required: true, message: sign.value == 'domain' ? '域名':'ip'+'不能为空', trigger: 'blur'},
-    { validator: sign.value == 'domain'?rule.domain : rule.ip, trigger: 'blur' }
-  ],
+	domain: [
+		{ required: true, message: sign.value == 'domain' ? '域名' : 'ip' + '不能为空', trigger: 'blur' },
+		{ validator: sign.value == 'domain' ? rule.domain : rule.ip, trigger: 'blur' },
+	],
 });
 
 // 分页参数

+ 1 - 1
src/views/marketing/config/components/listEdit.vue

@@ -15,7 +15,7 @@
 					<el-radio value="2">黑名单</el-radio>
 				</el-radio-group>
 			</el-form-item>
-			<el-segmented v-model="activeName" :options="[t('marketingConfig.grouping'), t('marketingConfig.domain')]" size="large" />
+			<el-segmented v-model="activeName" :options="[t('marketingConfig.grouping'), t('marketingConfig.ip')]" size="default" />
 			<el-form-item label="" prop="grouping" v-if="activeName === t('marketingConfig.grouping')">
 				<el-select v-model="state.ruleForm.groupingTip" :placeholder="t('marketingConfig.groupingTip')" clearable>
 					<el-option v-for="item in listSelect" :key="item.value" :label="item.label" :value="item.value" />

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

@@ -17,10 +17,12 @@ export default {
 		deleteText: '删除',
 		cancel: '取消',
 		addDomain: '添加域名',
+		addIp: '添加IP',
 		deleteDomain: '删除域名',
 		deleteIp: '删除IP',
 		grouping: '分组',
 		domain: '单域名',
+		ip: '单IP',
 		domainTip: '请输入域名',
 		groupingTip: '请选择分组名称',
 		ipTip: '请输入IP',

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

@@ -6,9 +6,10 @@
 				<div class="p-4 rounded">
 					<el-button type="primary" @click="onClickAdd('ip')">{{ t('marketingConfig.addIpList') }}</el-button>
 					<JCollapse
-						@update="(item) =>  onClickEdit(item,'ip')"
+						@update="(item) => onClickEdit(item, 'ip')"
 						@delete="(item) => console.log(item)"
 						:data="data"
+						:activeNames="['1', '2', '3']"
 						:deleteText="t('marketingConfig.deleteListText')"
 						:updateText="t('marketingConfig.updateText')"
 					/>
@@ -19,7 +20,8 @@
 				<div class="p-4 rounded">
 					<el-button type="primary" @click="onClickAdd('domain')">{{ t('marketingConfig.addDomainList') }}</el-button>
 					<JCollapse
-						@update="(item) => onClickEdit(item,'domain')"
+						:activeNames="['1', '2', '3']"
+						@update="(item) => onClickEdit(item, 'domain')"
 						:data="data"
 						@delete="(item) => console.log(item)"
 						:deleteText="t('marketingConfig.deleteListText')"
@@ -32,10 +34,11 @@
 				<div class="p-4 rounded">
 					<JCollapse
 						:data="[{ title: 'IP集合', id: '1' }]"
+						:activeNames="['1']"
 						@update="(item) => (listEditOpen = true)"
 						@delete="(item) => (closeIpTags = !closeIpTags)"
-						:deleteText="t('marketingConfig.deleteText')"
-						:updateText="t('marketingConfig.updateText')"
+						:deleteText="closeIpTags ? t('marketingConfig.cancel') : t('marketingConfig.deleteIp')"
+						:updateText="t('marketingConfig.addIp')"
 					>
 						<template #default>
 							<div class="border-b p-2 items-center flex flex-wrap">
@@ -73,15 +76,11 @@
 
 					<JCollapse
 						class="mt-4"
-						:data="[
-							{
-								title: '域名集合',
-								id: '1',
-							},
-						]"
+						:data="[{ title: '域名集合', id: '1' }]"
+						:activeNames="['1']"
 						@update="(item) => (domainEditOpen = true)"
 						@delete="(item) => (closeDomainTags = !closeDomainTags)"
-						:deleteText="closeTags ? t('marketingConfig.cancel') : t('marketingConfig.deleteDomain')"
+						:deleteText="closeDomainTags ? t('marketingConfig.cancel') : t('marketingConfig.deleteDomain')"
 						:updateText="t('marketingConfig.addDomain')"
 					>
 						<template #default>
@@ -113,14 +112,14 @@
 								<el-option v-for="item in triggerSelect" :key="item.value" :label="item.label" :value="item.value" />
 							</el-select>
 						</el-form-item>
-						<el-form-item :label="t('marketingConfig.triggerFrequency')" prop="triggerFrequency" class="w-1/3">
-							<el-input v-model="formData.triggerFrequency" type="text" :placeholder="t('marketingConfig.triggerFrequencyTip')"></el-input>
+						<el-form-item :label="t('marketingConfig.triggerFrequency')" prop="triggerFrequency" class="w-1/3 justify-start flex">
+							<el-input-number v-model="formData.triggerFrequency" class="!w-40" :min="1" :max="20" controls-position="right" :placeholder="t('marketingConfig.triggerFrequencyTip')"/>
 						</el-form-item>
 						<el-form-item :label="t('marketingConfig.jumpLink')" prop="jumpLink" class="w-1/3">
 							<el-input v-model="formData.jumpLink" type="text" :placeholder="t('marketingConfig.jumpLinkTip')"></el-input>
 						</el-form-item>
 						<div class="w-full">
-							<el-button type="primary" @click="onSubmit" class="w-[80px]">{{ t('common.saveBtn') }}</el-button>
+							<el-button type="primary" @click="onSubmit" class="w-[80px] ml-5">{{ t('common.saveBtn') }}</el-button>
 						</div>
 					</el-form>
 				</div>
@@ -129,7 +128,7 @@
 		<DomainEdit v-model:open="domainEditOpen" />
 		<ListEdit v-model:open="listEditOpen" />
 		<GroupingEdit v-model:open="groupingEditOpen" :type="openType" />
-		<IpListEdit :type="openType"  ref="menuDialogRef"/>
+		<IpListEdit :type="openType" ref="menuDialogRef" />
 	</div>
 </template>
 
@@ -138,8 +137,7 @@ import { delObj, pageList, update } from '/@/api/marketing/config';
 import { BasicTableProps, useTable } from '/@/hooks/table';
 import { useI18n } from 'vue-i18n';
 import { useMessage } from '/@/hooks/message';
-import {rule} from '/@/utils/validate';
-
+import { rule } from '/@/utils/validate';
 
 // 引入组件
 const JCollapse = defineAsyncComponent(() => import('/@/components/JCollapse/index.vue'));
@@ -191,7 +189,7 @@ const formData = ref({
 	jumpMode: '',
 	triggerType: '',
 	jumpLink: '',
-	triggerFrequency:''
+	triggerFrequency: '',
 });
 
 // // 表单校验规则
@@ -234,10 +232,10 @@ const onClickAdd = (type: string) => {
 	openType.value = type;
 	groupingEditOpen.value = true;
 };
-const onClickEdit = (item: any,type: string) => {
+const onClickEdit = (item: any, type: string) => {
 	openType.value = type;
 	// ipListEditOpen.value = true;
-	onOpenEditMenu(type,item)
+	onOpenEditMenu(type, item);
 };
 
 const { getDataList, currentChangeHandle, sizeChangeHandle, tableStyle } = useTable(state);