提交 b9274fe0 authored 作者: 王鹏飞's avatar 王鹏飞

chore: 营销内容创作的在线设计增加使用场景

上级 f07ee38f
...@@ -5,6 +5,8 @@ import { uploadFileByUrl } from '@/utils/upload' ...@@ -5,6 +5,8 @@ import { uploadFileByUrl } from '@/utils/upload'
const ChuangKitDesign = defineAsyncComponent(() => import('@/components/ChuangKitDesign.vue')) const ChuangKitDesign = defineAsyncComponent(() => import('@/components/ChuangKitDesign.vue'))
defineProps({ kindId: { type: Number, default: 447 } })
const userStore = useUserStore() const userStore = useUserStore()
const model = defineModel() const model = defineModel()
...@@ -17,7 +19,7 @@ const data = reactive({ ...@@ -17,7 +19,7 @@ const data = reactive({
async function fetchList() { async function fetchList() {
const res = await getChuanKitDesignList({ const res = await getChuanKitDesignList({
user_flag: userStore.user.id, user_flag: userStore.user.id,
kind_id: 447, // kind_id: props.kindId,
page_no: 1, page_no: 1,
page_size: 1000, page_size: 1000,
time_order: 1, time_order: 1,
...@@ -49,7 +51,7 @@ function onClose() { ...@@ -49,7 +51,7 @@ function onClose() {
<img :src="item.thumbUrl" /> <img :src="item.thumbUrl" />
</li> </li>
</ul> </ul>
<ChuangKitDesign v-model="model" @close="onClose" v-if="designVisible"></ChuangKitDesign> <ChuangKitDesign v-model="model" :kindId="kindId" @close="onClose" v-if="designVisible"></ChuangKitDesign>
</div> </div>
</template> </template>
......
...@@ -17,7 +17,7 @@ const form = defineModel() ...@@ -17,7 +17,7 @@ const form = defineModel()
const formRef = ref() const formRef = ref()
const rules = ref({ const rules = ref({
content: [{ required: true, message: '请输入' }] content: [{ required: true, message: '请输入' }],
}) })
const typeName = computed(() => { const typeName = computed(() => {
...@@ -60,7 +60,7 @@ async function handleSubmit() { ...@@ -60,7 +60,7 @@ async function handleSubmit() {
<template v-if="['2', '6', '7', '8'].includes(form.type)"> <template v-if="['2', '6', '7', '8'].includes(form.type)">
<!-- 图片|二维码|小程序|卡券 --> <!-- 图片|二维码|小程序|卡券 -->
<template v-if="form.way == 3"> <template v-if="form.way == 3">
<ImageDesign v-model="form.content"></ImageDesign> <ImageDesign v-model="form.content" :kindId="parseInt(form.scenario_type)"></ImageDesign>
</template> </template>
<template v-else> <template v-else>
<AppUpload v-model="form.content" accept="image/*"></AppUpload> <AppUpload v-model="form.content" accept="image/*"></AppUpload>
......
...@@ -6,9 +6,10 @@ import { ...@@ -6,9 +6,10 @@ import {
getNameByValue, getNameByValue,
materialMethodList, materialMethodList,
materialUsageList, materialUsageList,
materialDesignUsageList,
materialUsersList, materialUsersList,
materialPictureStyleList, materialPictureStyleList,
textPurposeList textPurposeList,
} from '@/utils/dictionary' } from '@/utils/dictionary'
defineProps(['action']) defineProps(['action'])
...@@ -32,7 +33,7 @@ const rules = ref({ ...@@ -32,7 +33,7 @@ const rules = ref({
'extend_info.person_des': [{ required: true, message: '请输入人物描述' }], 'extend_info.person_des': [{ required: true, message: '请输入人物描述' }],
'extend_info.scene_des': [{ required: true, message: '请输入场景描述' }], 'extend_info.scene_des': [{ required: true, message: '请输入场景描述' }],
'extend_info.important_info_desc': [{ required: true, message: '请输入突出重点信息描述' }], 'extend_info.important_info_desc': [{ required: true, message: '请输入突出重点信息描述' }],
'extend_info.text_use': [{ required: true, message: '请选择文本用途' }] 'extend_info.text_use': [{ required: true, message: '请选择文本用途' }],
}) })
async function handleValidate() { async function handleValidate() {
...@@ -64,8 +65,7 @@ async function handleNext() { ...@@ -64,8 +65,7 @@ async function handleNext() {
:model="form" :model="form"
:rules="rules" :rules="rules"
ref="formRef" ref="formRef"
:disabled="action === 'view'" :disabled="action === 'view'">
>
<template v-if="form.type == 2 && form.way == 1"> <template v-if="form.type == 2 && form.way == 1">
<!-- 图片AI --> <!-- 图片AI -->
<el-form-item label="图片风格" prop="extend_info.picture_style"> <el-form-item label="图片风格" prop="extend_info.picture_style">
...@@ -85,6 +85,20 @@ async function handleNext() { ...@@ -85,6 +85,20 @@ async function handleNext() {
<el-input type="textarea" :rows="3" v-model="form.extend_info.important_info_desc" /> <el-input type="textarea" :rows="3" v-model="form.extend_info.important_info_desc" />
</el-form-item> </el-form-item>
</template> </template>
<template v-else-if="form.way == 3">
<el-form-item label="所属行业" prop="industry_id">
<el-select v-model="form.industry_id">
<el-option v-for="item in industryList" :key="item.id" :label="item.name" :value="item.id + ''"></el-option>
</el-select>
</el-form-item>
<el-form-item label="使用场景" prop="extend_info.scenario_type">
<el-radio-group v-model="form.extend_info.scenario_type">
<el-radio v-for="item in materialDesignUsageList" :key="item.id" :value="item.value">{{
item.label
}}</el-radio>
</el-radio-group>
</el-form-item>
</template>
<template v-else> <template v-else>
<el-form-item label="文本用途" prop="extend_info.text_use"> <el-form-item label="文本用途" prop="extend_info.text_use">
<el-radio-group v-model="form.extend_info.text_use"> <el-radio-group v-model="form.extend_info.text_use">
...@@ -133,8 +147,7 @@ async function handleNext() { ...@@ -133,8 +147,7 @@ async function handleNext() {
type="textarea" type="textarea"
:rows="4" :rows="4"
v-model="form.key_points" v-model="form.key_points"
placeholder="请输入内容的核心内容或者关键点,多个请使用英文“,”号进行隔离。" placeholder="请输入内容的核心内容或者关键点,多个请使用英文“,”号进行隔离。" />
/>
</el-form-item> </el-form-item>
</template> </template>
</el-form> </el-form>
......
...@@ -24,7 +24,7 @@ const form: any = reactive({ ...@@ -24,7 +24,7 @@ const form: any = reactive({
channel: '', channel: '',
key_points: '', key_points: '',
content: '', content: '',
extend_info: {} extend_info: {},
}) })
const detail = ref() const detail = ref()
...@@ -50,7 +50,7 @@ function handleNext() { ...@@ -50,7 +50,7 @@ function handleNext() {
// 下一步提交 // 下一步提交
async function handleNextAndSubmit() { async function handleNextAndSubmit() {
if (!form.id && form.way == 1) { if (!form.id && form.way == 1) {
const params = pickBy(form, item => item !== '' && item != '0') const params = pickBy(form, (item) => item !== '' && item != '0')
const res = await createMaterial(params) const res = await createMaterial(params)
form.id = res.data.id form.id = res.data.id
} }
...@@ -62,7 +62,7 @@ async function handleSubmit() { ...@@ -62,7 +62,7 @@ async function handleSubmit() {
} }
// 创建 // 创建
async function handleCreate() { async function handleCreate() {
const params = pickBy(form, item => item !== '' && item != '0') const params = pickBy(form, (item) => item !== '' && item != '0')
await createMaterial(params) await createMaterial(params)
ElMessage.success('创建成功') ElMessage.success('创建成功')
router.replace('/material') router.replace('/material')
...@@ -70,7 +70,7 @@ async function handleCreate() { ...@@ -70,7 +70,7 @@ async function handleCreate() {
// 修改 // 修改
async function handleUpdate() { async function handleUpdate() {
const params = pickBy(form, item => item !== '' && item != '0') const params = pickBy(form, (item) => item !== '' && item != '0')
await updateMaterial(params) await updateMaterial(params)
ElMessage.success('修改成功') ElMessage.success('修改成功')
router.replace('/material') router.replace('/material')
...@@ -83,10 +83,15 @@ async function handleUpdate() { ...@@ -83,10 +83,15 @@ async function handleUpdate() {
<el-tab-pane lazy label="第1步" :name="1" disabled> <el-tab-pane lazy label="第1步" :name="1" disabled>
<StepOne v-model="form" :action="action" style="max-width: 1000px; margin: 0 auto" @next="handleNext"></StepOne> <StepOne v-model="form" :action="action" style="max-width: 1000px; margin: 0 auto" @next="handleNext"></StepOne>
</el-tab-pane> </el-tab-pane>
<el-tab-pane lazy label="第2步" :name="2" disabled v-if="form.way !== '3'"> <el-tab-pane lazy label="第2步" :name="2" disabled>
<StepTwo v-model="form" :action="action" style="max-width: 1000px; margin: 0 auto" @prev="handlePrev" @next="handleNextAndSubmit"></StepTwo> <StepTwo
v-model="form"
:action="action"
style="max-width: 1000px; margin: 0 auto"
@prev="handlePrev"
@next="handleNextAndSubmit"></StepTwo>
</el-tab-pane> </el-tab-pane>
<el-tab-pane lazy :label="form.way === '3' ? '第二步' : '第3步'" :name="form.way === '3' ? 2 : 3" disabled> <el-tab-pane lazy label="第3步" :name="3" disabled>
<StepThree v-model="form" :action="action" @prev="handlePrev" @submit="handleSubmit"></StepThree> <StepThree v-model="form" :action="action" @prev="handlePrev" @submit="handleSubmit"></StepThree>
</el-tab-pane> </el-tab-pane>
</el-tabs> </el-tabs>
......
...@@ -126,6 +126,29 @@ export const materialUsageList = [ ...@@ -126,6 +126,29 @@ export const materialUsageList = [
{ label: '系统通知 ', value: '4' }, { label: '系统通知 ', value: '4' },
] ]
// 在线设计使用场景
export const materialDesignUsageList = [
{ label: '手机海报 ', value: '447' },
{ label: '公众号首图 ', value: '216' },
{ label: '小红书配图', value: '502' },
{ label: '每日一签', value: '209' },
{ label: '全屏海报', value: '581' },
{ label: '邀请函', value: '170' },
{ label: 'PPT16:9', value: '1' },
{ label: '简历', value: '38' },
{ label: '长图海报', value: '35' },
{ label: '公众号次图', value: '40' },
{ label: '主图图标', value: '503' },
{ label: '商品主图', value: '29' },
{ label: '名片', value: '12' },
{ label: '长页H5', value: '166' },
{ label: '直播贴片', value: '511' },
{ label: '视频海报', value: '498' },
{ label: '竖版直播背景', value: '572' },
{ label: '横版海报', value: '20' },
{ label: '竖版插画', value: '233' },
]
// 使用人员 // 使用人员
export const materialUsersList = [ export const materialUsersList = [
{ label: '销售人员 ', value: '1' }, { label: '销售人员 ', value: '1' },
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论