Pre Merge pull request !847 from wuKong/feat(promotion)-添加DIY模板类型功能支持

pull/847/MERGE
wuKong 2026-05-02 03:21:54 +00:00 committed by Gitee
commit 2eb61d009e
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F
3 changed files with 34 additions and 3 deletions

View File

@ -198,6 +198,7 @@ export enum DICT_TYPE {
PROMOTION_BARGAIN_RECORD_STATUS = 'promotion_bargain_record_status', // 砍价记录的状态 PROMOTION_BARGAIN_RECORD_STATUS = 'promotion_bargain_record_status', // 砍价记录的状态
PROMOTION_COMBINATION_RECORD_STATUS = 'promotion_combination_record_status', // 拼团记录的状态 PROMOTION_COMBINATION_RECORD_STATUS = 'promotion_combination_record_status', // 拼团记录的状态
PROMOTION_BANNER_POSITION = 'promotion_banner_position', // banner 定位 PROMOTION_BANNER_POSITION = 'promotion_banner_position', // banner 定位
PROMOTION_DIY_TEMPLATE_PLATFORM = 'promotion_diy_template_platform', // 装修模板平台
// ========== CRM - 客户管理模块 ========== // ========== CRM - 客户管理模块 ==========
CRM_AUDIT_STATUS = 'crm_audit_status', // CRM 审批状态 CRM_AUDIT_STATUS = 'crm_audit_status', // CRM 审批状态

View File

@ -10,6 +10,16 @@
<el-form-item label="模板名称" prop="name"> <el-form-item label="模板名称" prop="name">
<el-input v-model="formData.name" placeholder="请输入模板名称" /> <el-input v-model="formData.name" placeholder="请输入模板名称" />
</el-form-item> </el-form-item>
<el-form-item label="模板平台" prop="type">
<el-select v-model="formData.platform" clearable placeholder="请选择模板平台" class="w-46!">
<el-option
v-for="dict in getStrDictOptions(DICT_TYPE.PROMOTION_DIY_TEMPLATE_PLATFORM)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="备注" prop="remark"> <el-form-item label="备注" prop="remark">
<el-input v-model="formData.remark" placeholder="请输入备注" type="textarea" /> <el-input v-model="formData.remark" placeholder="请输入备注" type="textarea" />
</el-form-item> </el-form-item>
@ -25,6 +35,7 @@
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import * as DiyTemplateApi from '@/api/mall/promotion/diy/template' import * as DiyTemplateApi from '@/api/mall/promotion/diy/template'
import { DICT_TYPE, getStrDictOptions } from '@/utils/dict'
/** 装修模板表单 */ /** 装修模板表单 */
defineOptions({ name: 'DiyTemplateForm' }) defineOptions({ name: 'DiyTemplateForm' })
@ -39,11 +50,13 @@ const formType = ref('') // 表单的类型create - 新增update - 修改
const formData = ref({ const formData = ref({
id: undefined, id: undefined,
name: undefined, name: undefined,
platform: undefined,
remark: undefined, remark: undefined,
previewPicUrls: [] previewPicUrls: []
}) })
const formRules = reactive({ const formRules = reactive({
name: [{ required: true, message: '模板名称不能为空', trigger: 'blur' }] name: [{ required: true, message: '模板名称不能为空', trigger: 'blur' }],
platform: [{ required: true, message: '模板平台不能为空', trigger: 'blur' }]
}) })
const formRef = ref() // Ref const formRef = ref() // Ref
@ -96,9 +109,10 @@ const resetForm = () => {
formData.value = { formData.value = {
id: undefined, id: undefined,
name: undefined, name: undefined,
platform: undefined,
remark: undefined, remark: undefined,
previewPicUrls: [] previewPicUrls: []
} }
formRef.value?.resetFields() formRef.value?.resetFields()
} }
</script> </script>

View File

@ -30,6 +30,16 @@
class="!w-240px" class="!w-240px"
/> />
</el-form-item> </el-form-item>
<el-form-item label="模板平台" prop="platform">
<el-select v-model="queryParams.platform" clearable placeholder="请选择模板平台" class="!w-240px">
<el-option
v-for="dict in getStrDictOptions(DICT_TYPE.PROMOTION_DIY_TEMPLATE_PLATFORM)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item> <el-form-item>
<el-button @click="handleQuery"><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button> <el-button @click="handleQuery"><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button>
<el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button> <el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button>
@ -63,6 +73,11 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="模板名称" align="center" prop="name" min-width="180" /> <el-table-column label="模板名称" align="center" prop="name" min-width="180" />
<el-table-column label="模板平台" align="center" prop="platform" min-width="100">
<template #default="scope">
<dict-tag :type="DICT_TYPE.PROMOTION_DIY_TEMPLATE_PLATFORM" :value="scope.row.platform" />
</template>
</el-table-column>
<el-table-column label="是否使用" align="center" prop="used"> <el-table-column label="是否使用" align="center" prop="used">
<template #default="scope"> <template #default="scope">
<dict-tag :type="DICT_TYPE.INFRA_BOOLEAN_STRING" :value="scope.row.used" /> <dict-tag :type="DICT_TYPE.INFRA_BOOLEAN_STRING" :value="scope.row.used" />
@ -132,7 +147,7 @@
import { dateFormatter } from '@/utils/formatTime' import { dateFormatter } from '@/utils/formatTime'
import * as DiyTemplateApi from '@/api/mall/promotion/diy/template' import * as DiyTemplateApi from '@/api/mall/promotion/diy/template'
import DiyTemplateForm from './DiyTemplateForm.vue' import DiyTemplateForm from './DiyTemplateForm.vue'
import { DICT_TYPE } from '@/utils/dict' import { DICT_TYPE, getStrDictOptions } from '@/utils/dict'
/** 装修模板 */ /** 装修模板 */
defineOptions({ name: 'DiyTemplate' }) defineOptions({ name: 'DiyTemplate' })
@ -147,6 +162,7 @@ const queryParams = reactive({
pageNo: 1, pageNo: 1,
pageSize: 10, pageSize: 10,
name: null, name: null,
platform: null,
createTime: [] createTime: []
}) })
const queryFormRef = ref() // const queryFormRef = ref() //