|
@@ -20,9 +20,8 @@
|
|
|
<div class="p-4 rounded">
|
|
|
<el-button type="primary" @click="onClickAdd('domain')">{{ t('marketingConfig.addDomainList') }}</el-button>
|
|
|
<JCollapse
|
|
|
- :activeNames="['1', '2', '3']"
|
|
|
@update="(item) => onClickEdit(item, 'domain')"
|
|
|
- :data="data"
|
|
|
+ :data="domainData"
|
|
|
@delete="(item) => console.log(item)"
|
|
|
:deleteText="t('marketingConfig.deleteListText')"
|
|
|
:updateText="t('marketingConfig.updateText')"
|
|
@@ -84,7 +83,7 @@
|
|
|
:updateText="t('marketingConfig.addDomain')"
|
|
|
>
|
|
|
<template #default>
|
|
|
- <div class="border-b p-2 items-center flex flex-wrap">
|
|
|
+ <div class="p-2 items-center flex flex-wrap">
|
|
|
<el-tag
|
|
|
v-for="item in whiteList"
|
|
|
:key="item"
|
|
@@ -100,7 +99,7 @@
|
|
|
</template>
|
|
|
</JCollapse>
|
|
|
</div>
|
|
|
- <div class="w-[66%] ml-4">
|
|
|
+ <div class="w-[66%] ml-[-8px] mt-5">
|
|
|
<el-form ref="menuDialogFormRef" :model="formData" :rule="dataRules" label-width="90px" class="flex flex-wrap">
|
|
|
<el-form-item :label="t('marketingConfig.jumpMode')" prop="jumpMode" class="w-1/3">
|
|
|
<el-select v-model="formData.jumpMode" :placeholder="t('marketingConfig.jumpModeTip')" clearable>
|
|
@@ -112,12 +111,35 @@
|
|
|
<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 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 :label="t('marketingConfig.triggerFrequency')" prop="triggerFrequency" class="w-1/3">
|
|
|
+ <el-input-number
|
|
|
+ v-model="formData.triggerFrequency"
|
|
|
+ class="!w-40"
|
|
|
+ :min="1"
|
|
|
+ :max="20"
|
|
|
+ controls-position="right"
|
|
|
+ :placeholder="t('marketingConfig.triggerFrequencyTip')"
|
|
|
+ />
|
|
|
</el-form-item>
|
|
|
+
|
|
|
+ <div class="w-full mb-[18px]">
|
|
|
+ <el-form-item
|
|
|
+ v-if="formData.jumpMode == '2' || formData.jumpMode == '3'"
|
|
|
+ :label="t('marketingConfig.prompt')"
|
|
|
+ prop="prompt"
|
|
|
+ class="w-1/3"
|
|
|
+ >
|
|
|
+ <el-input v-model="formData.prompt" type="text" :placeholder="t('marketingConfig.promptTip')"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item
|
|
|
+ v-if="formData.jumpMode == '1' || formData.jumpMode == '3'"
|
|
|
+ :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>
|
|
|
<div class="w-full">
|
|
|
<el-button type="primary" @click="onSubmit" class="w-[80px] ml-5">{{ t('common.saveBtn') }}</el-button>
|
|
|
</div>
|
|
@@ -133,11 +155,12 @@
|
|
|
</template>
|
|
|
|
|
|
<script lang="ts" name="marketingConfig" setup>
|
|
|
-import { delObj, pageList, update } from '/@/api/marketing/config';
|
|
|
+import { delObj, pageListDomain, 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 { identity } from '@vueuse/core';
|
|
|
|
|
|
// 引入组件
|
|
|
const JCollapse = defineAsyncComponent(() => import('/@/components/JCollapse/index.vue'));
|
|
@@ -157,19 +180,20 @@ const closeIpTags = ref(false);
|
|
|
const domainEditOpen = ref(false);
|
|
|
const listEditOpen = ref(false);
|
|
|
const groupingEditOpen = ref(false);
|
|
|
-const ipListEditOpen = ref(false);
|
|
|
+// const ipListEditOpen = ref(false);
|
|
|
+const domainData = ref([]);
|
|
|
|
|
|
const listSelect = ref([
|
|
|
{
|
|
|
- value: 'group1',
|
|
|
+ value: '1',
|
|
|
label: '跳转链接',
|
|
|
},
|
|
|
{
|
|
|
- value: 'group2',
|
|
|
+ value: '2',
|
|
|
label: '提示信息',
|
|
|
},
|
|
|
{
|
|
|
- value: 'group3',
|
|
|
+ value: '3',
|
|
|
label: '提示并跳转',
|
|
|
},
|
|
|
]);
|
|
@@ -186,10 +210,11 @@ const triggerSelect = ref([
|
|
|
|
|
|
const menuDialogFormRef = ref();
|
|
|
const formData = ref({
|
|
|
- jumpMode: '',
|
|
|
+ jumpMode: '1',
|
|
|
triggerType: '',
|
|
|
jumpLink: '',
|
|
|
triggerFrequency: '',
|
|
|
+ prompt: '',
|
|
|
});
|
|
|
|
|
|
// // 表单校验规则
|
|
@@ -218,12 +243,11 @@ const data = ref([
|
|
|
const whiteList = ref([{ label: '站大' }, { label: '站而' }, { label: '站撒' }, { label: '站爱' }]);
|
|
|
|
|
|
const menuDialogRef = ref();
|
|
|
-const state: BasicTableProps = reactive<BasicTableProps>({
|
|
|
- // pageList: pageList, // H
|
|
|
- queryForm: {
|
|
|
- domain: '',
|
|
|
- },
|
|
|
+const state = reactive({
|
|
|
+ pageListDomain: pageListDomain(),
|
|
|
});
|
|
|
+state.pageListDomain;
|
|
|
+
|
|
|
const onSubmit = () => {
|
|
|
useMessage().success(t(formData.value ? 'common.editSuccessText' : 'common.addSuccessText'));
|
|
|
};
|
|
@@ -238,15 +262,32 @@ const onClickEdit = (item: any, type: string) => {
|
|
|
onOpenEditMenu(type, item);
|
|
|
};
|
|
|
|
|
|
-const { getDataList, currentChangeHandle, sizeChangeHandle, tableStyle } = useTable(state);
|
|
|
-
|
|
|
// 打开编辑菜单弹窗
|
|
|
const onOpenEditMenu = (type: string, row: any) => {
|
|
|
menuDialogRef.value.openDialog(type, row);
|
|
|
};
|
|
|
|
|
|
-// 删除操作
|
|
|
-const handleDelete = async (ids: string[]) => {};
|
|
|
+onMounted(() => {
|
|
|
+ // 获取域名列表
|
|
|
+ state.pageListDomain.then((val) => {
|
|
|
+ domainData.value = val.data.map((item :any) => {
|
|
|
+ console.log(item);
|
|
|
+ return {
|
|
|
+ title: item.groupName,
|
|
|
+ ips: item.domains.map((items :any) => {
|
|
|
+ return{
|
|
|
+ id:items.id,
|
|
|
+ value:items.domain
|
|
|
+ }
|
|
|
+ }),
|
|
|
+ };
|
|
|
+ });
|
|
|
+ console.log(domainData.value);
|
|
|
+
|
|
|
+ });
|
|
|
+
|
|
|
+ //获取IP列表
|
|
|
+});
|
|
|
</script>
|
|
|
<style lang="scss">
|
|
|
.is-top {
|
|
@@ -255,4 +296,11 @@ const handleDelete = async (ids: string[]) => {};
|
|
|
.el-collapse-item__content {
|
|
|
padding-bottom: 0 !important;
|
|
|
}
|
|
|
+.el-tabs--card > .el-tabs__header .el-tabs__item {
|
|
|
+ background-color: #fff;
|
|
|
+}
|
|
|
+.el-tabs--card > .el-tabs__header .el-tabs__item.is-active {
|
|
|
+ background-color: #e8f2fe;
|
|
|
+ border-bottom-color: #e8f2fe;
|
|
|
+}
|
|
|
</style>
|