jcq 2 semanas atrás
pai
commit
9e6b75b297

+ 12 - 7
src/views/marketing/config/components/listEdit.vue

@@ -5,17 +5,23 @@
 		v-model="props.open"
 		:close-on-click-modal="false"
 		:destroy-on-close="true"
-        @close="onCancel"
+		@close="onCancel"
 		draggable
 	>
 		<el-form ref="menuDialogFormRef" :rules="dataRules" :model="state.ruleForm" v-loading="loading">
+			<el-form-item label="" prop="listType" >
+				<el-radio-group v-model="state.ruleForm.listType">
+					<el-radio value="1">白名单</el-radio>
+					<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-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" />
 				</el-select>
 			</el-form-item>
-			<el-form-item label="" prop="ip" v-else> 
+			<el-form-item label="" prop="ip" v-else>
 				<el-input v-model="state.ruleForm.ip" type="text" :placeholder="t('marketingConfig.ipTip')"></el-input>
 			</el-form-item>
 		</el-form>
@@ -34,7 +40,7 @@ import { info, getAppList, save } from '/@/api/marketing/config';
 import { useMessage } from '/@/hooks/message';
 
 // 定义子组件向父组件传值/事件
-const emit = defineEmits(['update:open','onsuccess']);
+const emit = defineEmits(['update:open', 'onsuccess']);
 const { t } = useI18n();
 
 // 定义变量内容
@@ -59,6 +65,7 @@ const listSelect = ref([
 // 定义需要的数据
 const state = reactive({
 	ruleForm: {
+		listType: '1', // 1: 白名单, 2: 黑名单
 		list: [''],
 		https: [''], // 域名集合
 		ips: [''], // ip集合
@@ -81,9 +88,7 @@ const props = defineProps({
 });
 // // 表单校验规则
 const dataRules = reactive({
-	domain: [
-		{ required: true, message: '域名不能为空', trigger: 'blur' }
-	],
+	domain: [{ required: true, message: '域名不能为空', trigger: 'blur' }],
 });
 const onCancel = () => {
 	emit('update:open', false);
@@ -95,7 +100,7 @@ const onSubmit = async () => {
 		// await save(state.ruleForm);
 		useMessage().success(t(state.ruleForm.id ? 'common.editSuccessText' : 'common.addSuccessText'));
 		emit('onsuccess');
-        onCancel();
+		onCancel();
 	} catch (err) {
 		useMessage().error(err.msg);
 	} finally {

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

@@ -32,7 +32,7 @@
 				<div class="p-4 rounded">
 					<JCollapse
 						:data="[{title: 'IP集合',id: '1',}]"
-						@update="(item) => console.log(item)"
+						@update="(item) => listEditOpen = true"
 						@delete="(item) => closeIpTags = !closeIpTags"
 						:deleteText="t('marketingConfig.deleteText')"
 						:updateText="t('marketingConfig.updateText')"
@@ -96,6 +96,7 @@
 			</el-tab-pane>
 		</el-tabs>
 		<DomainEdit v-model:open="domainEditOpen" />
+		<ListEdit v-model:open="listEditOpen" />
 	</div>
 </template>
 
@@ -108,12 +109,14 @@ import { useI18n } from 'vue-i18n';
 const JCollapse = defineAsyncComponent(() => import('/@/components/JCollapse/index.vue'));
 const Title = defineAsyncComponent(() => import('/@/components/Title/index.vue'));
 const DomainEdit = defineAsyncComponent(() => import('./components/domainEdit.vue'));
+const ListEdit = defineAsyncComponent(() => import('./components/listEdit.vue'));
 const { t } = useI18n();
 // 定义变量内容
 const activeName = ref('first');
 const closeDomainTags = ref(false);
 const closeIpTags = ref(false);
 const domainEditOpen = ref(false);
+const listEditOpen = ref(false);
 const data = ref([
 	{
 		title: '分组1',