提交 7b1d6b14 authored 作者: lhh's avatar lhh

修改配置数字营销实验

上级 06f0cb6a
...@@ -33,84 +33,84 @@ const experimentConfig: any = [ ...@@ -33,84 +33,84 @@ const experimentConfig: any = [
{ {
id: 1, id: 1,
name: '基础配置', name: '基础配置',
is_checked: false, is_checked: true,
pid: 0, pid: 0,
children: [ children: [
{ id: 2, name: '连接管理', is_checked: false, pid: 1, children: [] }, { id: 2, name: '连接管理', is_checked: true, pid: 1, children: [] },
{ id: 3, name: '用户属性管理', is_checked: false, pid: 1, children: [] }, { id: 3, name: '用户属性管理', is_checked: true, pid: 1, children: [] },
{ id: 4, name: '事件属性管理', is_checked: false, pid: 1, children: [] } { id: 4, name: '事件属性管理', is_checked: true, pid: 1, children: [] }
] ]
}, },
{ {
id: 5, id: 5,
name: '营销策划', name: '营销策划',
is_checked: false, is_checked: true,
pid: 0, pid: 0,
children: [] children: []
}, },
{ {
id: 6, id: 6,
name: '用户画像', name: '用户画像',
is_checked: false, is_checked: true,
pid: 0, pid: 0,
children: [] children: []
}, },
{ {
id: 7, id: 7,
name: '用户识别', name: '用户识别',
is_checked: false, is_checked: true,
pid: 0, pid: 0,
children: [ children: [
{ id: 8, name: '标签管理', is_checked: false, pid: 7, children: [] }, { id: 8, name: '标签管理', is_checked: true, pid: 7, children: [] },
{ id: 9, name: '群组管理', is_checked: false, pid: 7, children: [] } { id: 9, name: '群组管理', is_checked: true, pid: 7, children: [] }
] ]
}, },
{ {
id: 10, id: 10,
name: '营销内容设计', name: '营销内容设计',
is_checked: false, is_checked: true,
pid: 0, pid: 0,
children: [ children: [
{ id: 11, name: '文本资料管理', is_checked: false, pid: 10, children: [] }, { id: 11, name: '文本资料管理', is_checked: true, pid: 10, children: [] },
{ id: 12, name: '图片资料管理', is_checked: false, pid: 10, children: [] }, { id: 12, name: '图片资料管理', is_checked: true, pid: 10, children: [] },
{ id: 13, name: '卡券资料管理', is_checked: false, pid: 10, children: [] }, { id: 13, name: '卡券资料管理', is_checked: true, pid: 10, children: [] },
{ id: 14, name: '视频资料管理', is_checked: false, pid: 10, children: [] }, { id: 14, name: '视频资料管理', is_checked: true, pid: 10, children: [] },
{ id: 15, name: 'H5资料管理', is_checked: false, pid: 10, children: [] }, { id: 15, name: 'H5资料管理', is_checked: true, pid: 10, children: [] },
{ id: 16, name: '二维码资料管理', is_checked: false, pid: 10, children: [] }, { id: 16, name: '二维码资料管理', is_checked: true, pid: 10, children: [] },
{ id: 17, name: '语言资料管理', is_checked: false, pid: 10, children: [] }, { id: 17, name: '语言资料管理', is_checked: true, pid: 10, children: [] },
{ id: 18, name: '小程序资料管理', is_checked: false, pid: 10, children: [] } { id: 18, name: '小程序资料管理', is_checked: true, pid: 10, children: [] }
] ]
}, },
{ {
id: 19, id: 19,
name: '自动化营销', name: '自动化营销',
is_checked: false, is_checked: true,
pid: 0, pid: 0,
children: [] children: []
}, },
{ {
id: 20, id: 20,
name: '直播带货', name: '直播带货',
is_checked: false, is_checked: true,
pid: 0, pid: 0,
children: [ children: [
{ id: 21, name: '商品品类管理', is_checked: false, pid: 20, children: [] }, { id: 21, name: '商品品类管理', is_checked: true, pid: 20, children: [] },
{ id: 22, name: '商品属性管理', is_checked: false, pid: 20, children: [] }, { id: 22, name: '商品属性管理', is_checked: true, pid: 20, children: [] },
{ id: 23, name: '商品管理', is_checked: false, pid: 20, children: [] }, { id: 23, name: '商品管理', is_checked: true, pid: 20, children: [] },
{ id: 24, name: '直播练习', is_checked: false, pid: 20, children: [] }, { id: 24, name: '直播练习', is_checked: true, pid: 20, children: [] },
{ id: 25, name: '直播话术管理', is_checked: false, pid: 20, children: [] } { id: 25, name: '直播话术管理', is_checked: true, pid: 20, children: [] }
] ]
}, },
{ {
id: 26, id: 26,
name: '数据分析', name: '数据分析',
is_checked: false, is_checked: true,
pid: 0, pid: 0,
children: [ children: [
{ id: 27, name: '用户分析', is_checked: false, pid: 26, children: [] }, { id: 27, name: '用户分析', is_checked: true, pid: 26, children: [] },
{ id: 28, name: '标签群组分析', is_checked: false, pid: 26, children: [] }, { id: 28, name: '标签群组分析', is_checked: true, pid: 26, children: [] },
{ id: 29, name: '事件分析', is_checked: false, pid: 26, children: [] }, { id: 29, name: '事件分析', is_checked: true, pid: 26, children: [] },
{ id: 30, name: '营销分析', is_checked: false, pid: 26, children: [] } { id: 30, name: '营销分析', is_checked: true, pid: 26, children: [] }
] ]
} }
] ]
...@@ -171,7 +171,7 @@ function fetchInfo() { ...@@ -171,7 +171,7 @@ function fetchInfo() {
tag_ids, tag_ids,
group_ids, group_ids,
material_ids, material_ids,
auth_config: data.auth_config ? data.auth_config : experimentConfig, auth_config: data.auth_config && data.auth_config.length ? data.auth_config : experimentConfig,
live_commodity_ids: data?.live_commodities.reduce((a: any, b: any) => { live_commodity_ids: data?.live_commodities.reduce((a: any, b: any) => {
a.push(b.id) a.push(b.id)
return a return a
......
<script setup lang="ts"> const experimentConfig: any = [
import type { FormInstance, FormRules } from 'element-plus' {
import { ElMessage } from 'element-plus' id: 1,
import { pick } from 'lodash-es' name: '基础配置',
import { updateExam, getAllExamList } from '../api' is_checked: true,
pid: 0,
interface Props { children: [
id: string { id: 2, name: '连接管理', is_checked: true, pid: 1, children: [] },
data?: any { id: 3, name: '用户属性管理', is_checked: true, pid: 1, children: [] },
type: string { id: 4, name: '事件属性管理', is_checked: true, pid: 1, children: [] }
} ]
const props = defineProps<Props>() },
{
const emit = defineEmits<{ id: 5,
(e: 'update'): void name: '营销策划',
(e: 'update:modelValue', visible: boolean): void is_checked: true,
}>() pid: 0,
children: []
const formRef = ref<FormInstance>() },
const form = reactive<any>({ {
experiment_id: props.id, id: 6,
exam_id: '' name: '用户画像',
}) is_checked: true,
watchEffect(() => { pid: 0,
if (!props.data) return children: []
Object.assign(form, props.data) },
}) {
id: 7,
const rules = ref<FormRules>({ name: '用户识别',
exam_id: [{ required: true, message: '请选择考试', trigger: 'change' }] is_checked: true,
}) pid: 0,
const isUpdate = $computed(() => { children: [
return !!props.data?.id { id: 8, name: '标签管理', is_checked: true, pid: 7, children: [] },
}) { id: 9, name: '群组管理', is_checked: true, pid: 7, children: [] }
const title = computed(() => { ]
return isUpdate ? '编辑理论考试' : '新增理论考试' },
}) {
id: 10,
const examList = ref<Record<string, any>[]>([]) name: '营销内容设计',
// 获取关联考试列表 is_checked: true,
function fetchExamList() { pid: 0,
getAllExamList({ project: 'x1', 'per-page': 1000 }).then(res => { children: [
examList.value = res.data.list || [] { id: 11, name: '文本资料管理', is_checked: true, pid: 10, children: [] },
}) { id: 12, name: '图片资料管理', is_checked: true, pid: 10, children: [] },
} { id: 13, name: '卡券资料管理', is_checked: true, pid: 10, children: [] },
onMounted(() => { { id: 14, name: '视频资料管理', is_checked: true, pid: 10, children: [] },
fetchExamList() { id: 15, name: 'H5资料管理', is_checked: true, pid: 10, children: [] },
}) { id: 16, name: '二维码资料管理', is_checked: true, pid: 10, children: [] },
// 提交 { id: 17, name: '语言资料管理', is_checked: true, pid: 10, children: [] },
function handleSubmit() { { id: 18, name: '小程序资料管理', is_checked: true, pid: 10, children: [] }
formRef.value?.validate().then(() => { ]
const params = Object.assign({ type: props.type }, pick(form, ['experiment_id', 'exam_id'])) },
isUpdate ? handleUpdate(params) : handleUpdate(params) {
}) id: 19,
} name: '自动化营销',
is_checked: true,
// 修改 pid: 0,
function handleUpdate(params: any) { children: []
params.id = props.data?.id },
updateExam(params).then(() => { {
ElMessage({ message: '修改成功', type: 'success' }) id: 20,
emit('update') name: '直播带货',
emit('update:modelValue', false) is_checked: true,
}) pid: 0,
} children: [
</script> { id: 21, name: '商品品类管理', is_checked: true, pid: 20, children: [] },
{ id: 22, name: '商品属性管理', is_checked: true, pid: 20, children: [] },
<template> { id: 23, name: '商品管理', is_checked: true, pid: 20, children: [] },
<el-dialog :title="title" :close-on-click-modal="false" width="600px" @update:modelValue="value => $emit('update:modelValue', value)"> { id: 24, name: '直播练习', is_checked: true, pid: 20, children: [] },
<el-form ref="formRef" :model="form" :rules="rules" label-width="90px"> { id: 25, name: '直播话术管理', is_checked: true, pid: 20, children: [] }
<el-form-item label="考试名称" prop="exam_id"> ]
<el-select v-model="form.exam_id" filterable style="width: 100%"> },
<el-option v-for="item in examList" :key="item.exam_id" :label="item.name" :value="item.exam_id"></el-option> {
</el-select> id: 26,
</el-form-item> name: '数据分析',
<el-row justify="center"> is_checked: true,
<el-button type="primary" round auto-insert-space @click="handleSubmit">保存</el-button> pid: 0,
<el-button round auto-insert-space @click="$emit('update:modelValue', false)">取消</el-button> children: [
</el-row> { id: 27, name: '用户分析', is_checked: true, pid: 26, children: [] },
</el-form> { id: 28, name: '标签群组分析', is_checked: true, pid: 26, children: [] },
</el-dialog> { id: 29, name: '事件分析', is_checked: true, pid: 26, children: [] },
</template> { id: 30, name: '营销分析', is_checked: true, pid: 26, children: [] }
]
}
]
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论