|
@@ -7,11 +7,16 @@
|
|
|
:destroy-on-close="true"
|
|
|
draggable
|
|
|
>
|
|
|
- <el-form ref="menuDialogFormRef" :model="state.ruleForm" :rules="dataRules" label-width="90px" v-loading="loading">
|
|
|
+ <el-form ref="menuDialogFormRef" :model="state.ruleForm" :rules="dataRules" label-width="90px" :hide-required-asterisk="true" v-loading="loading">
|
|
|
<el-form-item label="名称" prop="groupName">
|
|
|
<el-input class="!w-[300px]" v-model="state.ruleForm.groupName" placeholder="请输入名称"></el-input>
|
|
|
</el-form-item>
|
|
|
- <el-form-item v-for="(item, index) in state.ruleForm.list" :key="item.id || index" :prop="'list.' + index + '.val'" :rules="dataRules.configs">
|
|
|
+ <el-form-item
|
|
|
+ v-for="(item, index) in state.ruleForm.list"
|
|
|
+ :key="item.id || index"
|
|
|
+ :prop="'list.' + index + '.val'"
|
|
|
+ :rules="sign === 'domain' ? dataRules.domain : dataRules.ip"
|
|
|
+ >
|
|
|
<template #label>
|
|
|
<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">
|
|
@@ -73,7 +78,7 @@
|
|
|
|
|
|
<script setup name="systemMenuDialog">
|
|
|
import { useI18n } from 'vue-i18n';
|
|
|
-import { saveDomains ,saveIps } from '/@/api/marketing/config';
|
|
|
+import { saveDomains, saveIps } from '/@/api/marketing/config';
|
|
|
import { useMessage } from '/@/hooks/message';
|
|
|
import { rule } from '/@/utils/validate';
|
|
|
import { parseIpRange } from '/@/utils/ipUpdate';
|
|
@@ -82,7 +87,13 @@ import { parseIpRange } from '/@/utils/ipUpdate';
|
|
|
const emit = defineEmits(['onsuccess']);
|
|
|
const { t } = useI18n();
|
|
|
|
|
|
-const inputTip = computed(() => t('marketingConfig.inputIPTip'));
|
|
|
+const inputTip = computed(() => {
|
|
|
+ if (sign.value === 'domain') {
|
|
|
+ return '请输入域名';
|
|
|
+ } else {
|
|
|
+ return t('marketingConfig.inputIPTip');
|
|
|
+ }
|
|
|
+});
|
|
|
// 定义变量内容
|
|
|
const visible = ref(false);
|
|
|
const loading = ref(false);
|
|
@@ -109,11 +120,14 @@ const onAddItem = () => {
|
|
|
|
|
|
// // 表单校验规则
|
|
|
const dataRules = computed(() => ({
|
|
|
- groupId: [{ required: true, message: '分组不能为空', trigger: 'blur' }],
|
|
|
ip: [
|
|
|
{ required: rule.ip, message: 'IP不能为空', trigger: 'blur' },
|
|
|
{ validator: rule.ip, trigger: 'blur' },
|
|
|
],
|
|
|
+ domain: [
|
|
|
+ { required: true, message: '域名不能为空', trigger: 'blur' },
|
|
|
+ { validator: rule.domain, trigger: 'blur' },
|
|
|
+ ],
|
|
|
}));
|
|
|
|
|
|
// 打开弹窗
|
|
@@ -141,10 +155,10 @@ const onSubmit = async () => {
|
|
|
if (sign.value === 'ip') {
|
|
|
state.ruleForm.ips = state.ruleForm.list.map((item) => {
|
|
|
const { start, end } = parseIpRange(item.val);
|
|
|
-
|
|
|
+
|
|
|
return {
|
|
|
...item,
|
|
|
- ipMode:start === end ? 1 : 2,
|
|
|
+ ipMode: end === '' ? 1 : 2,
|
|
|
startIp: start,
|
|
|
endIp: end,
|
|
|
};
|
|
@@ -155,10 +169,6 @@ const onSubmit = async () => {
|
|
|
domain: item.val,
|
|
|
}));
|
|
|
}
|
|
|
- console.log(state.ruleForm);
|
|
|
-
|
|
|
- // delete state.ruleForm.list;
|
|
|
- // return;
|
|
|
try {
|
|
|
loading.value = true;
|
|
|
if (sign.value === 'ip') {
|