| | |
| | | <ComponentContainerProperty v-model="formData.style"> |
| | | <el-form label-width="80px" :model="formData"> |
| | | <el-card header="秒杀活动" class="property-group" shadow="never"> |
| | | <el-form-item label="秒杀活动" prop="activityId"> |
| | | <el-select v-model="formData.activityId"> |
| | | <el-option |
| | | v-for="activity in activityList" |
| | | :key="activity.id" |
| | | :label="activity.name" |
| | | :value="activity.id" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <SeckillShowcase v-model="formData.activityIds" /> |
| | | </el-card> |
| | | <el-card header="商品样式" class="property-group" shadow="never"> |
| | | <el-form-item label="布局" prop="type"> |
| | | <el-radio-group v-model="formData.layoutType"> |
| | | <el-tooltip class="item" content="单列" placement="bottom"> |
| | | <el-radio-button label="oneCol"> |
| | | <el-tooltip class="item" content="单列大图" placement="bottom"> |
| | | <el-radio-button value="oneColBigImg"> |
| | | <Icon icon="fluent:text-column-one-24-filled" /> |
| | | </el-radio-button> |
| | | </el-tooltip> |
| | | <el-tooltip class="item" content="三列" placement="bottom"> |
| | | <el-radio-button label="threeCol"> |
| | | <Icon icon="fluent:text-column-three-24-filled" /> |
| | | <el-tooltip class="item" content="单列小图" placement="bottom"> |
| | | <el-radio-button value="oneColSmallImg"> |
| | | <Icon icon="fluent:text-column-two-left-24-filled" /> |
| | | </el-radio-button> |
| | | </el-tooltip> |
| | | <el-tooltip class="item" content="双列" placement="bottom"> |
| | | <el-radio-button value="twoCol"> |
| | | <Icon icon="fluent:text-column-two-24-filled" /> |
| | | </el-radio-button> |
| | | </el-tooltip> |
| | | <!--<el-tooltip class="item" content="三列" placement="bottom"> |
| | | <el-radio-button value="threeCol"> |
| | | <Icon icon="fluent:text-column-three-24-filled" /> |
| | | </el-radio-button> |
| | | </el-tooltip>--> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | <el-form-item label="商品名称" prop="fields.name.show"> |
| | |
| | | <el-checkbox v-model="formData.fields.name.show" /> |
| | | </div> |
| | | </el-form-item> |
| | | <el-form-item label="商品简介" prop="fields.introduction.show"> |
| | | <div class="flex gap-8px"> |
| | | <ColorInput v-model="formData.fields.introduction.color" /> |
| | | <el-checkbox v-model="formData.fields.introduction.show" /> |
| | | </div> |
| | | </el-form-item> |
| | | <el-form-item label="商品价格" prop="fields.price.show"> |
| | | <div class="flex gap-8px"> |
| | | <ColorInput v-model="formData.fields.price.color" /> |
| | | <el-checkbox v-model="formData.fields.price.show" /> |
| | | </div> |
| | | </el-form-item> |
| | | <el-form-item label="市场价" prop="fields.marketPrice.show"> |
| | | <div class="flex gap-8px"> |
| | | <ColorInput v-model="formData.fields.marketPrice.color" /> |
| | | <el-checkbox v-model="formData.fields.marketPrice.show" /> |
| | | </div> |
| | | </el-form-item> |
| | | <el-form-item label="商品销量" prop="fields.salesCount.show"> |
| | | <div class="flex gap-8px"> |
| | | <ColorInput v-model="formData.fields.salesCount.color" /> |
| | | <el-checkbox v-model="formData.fields.salesCount.show" /> |
| | | </div> |
| | | </el-form-item> |
| | | <el-form-item label="商品库存" prop="fields.stock.show"> |
| | | <div class="flex gap-8px"> |
| | | <ColorInput v-model="formData.fields.stock.color" /> |
| | | <el-checkbox v-model="formData.fields.stock.show" /> |
| | | </div> |
| | | </el-form-item> |
| | | </el-card> |
| | |
| | | </el-form-item> |
| | | <el-form-item label="角标" prop="badge.imgUrl" v-if="formData.badge.show"> |
| | | <UploadImg v-model="formData.badge.imgUrl" height="44px" width="72px"> |
| | | <template #tip> 建议尺寸:36 * 22 </template> |
| | | <template #tip> 建议尺寸:36 * 22</template> |
| | | </UploadImg> |
| | | </el-form-item> |
| | | </el-card> |
| | | <el-card header="按钮" class="property-group" shadow="never"> |
| | | <el-form-item label="按钮类型" prop="btnBuy.type"> |
| | | <el-radio-group v-model="formData.btnBuy.type"> |
| | | <el-radio-button value="text">文字</el-radio-button> |
| | | <el-radio-button value="img">图片</el-radio-button> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | <template v-if="formData.btnBuy.type === 'text'"> |
| | | <el-form-item label="按钮文字" prop="btnBuy.text"> |
| | | <el-input v-model="formData.btnBuy.text" /> |
| | | </el-form-item> |
| | | <el-form-item label="左侧背景" prop="btnBuy.bgBeginColor"> |
| | | <ColorInput v-model="formData.btnBuy.bgBeginColor" /> |
| | | </el-form-item> |
| | | <el-form-item label="右侧背景" prop="btnBuy.bgEndColor"> |
| | | <ColorInput v-model="formData.btnBuy.bgEndColor" /> |
| | | </el-form-item> |
| | | </template> |
| | | <template v-else> |
| | | <el-form-item label="图片" prop="btnBuy.imgUrl"> |
| | | <UploadImg v-model="formData.btnBuy.imgUrl" height="56px" width="56px"> |
| | | <template #tip> 建议尺寸:56 * 56</template> |
| | | </UploadImg> |
| | | </el-form-item> |
| | | </template> |
| | | </el-card> |
| | | <el-card header="商品样式" class="property-group" shadow="never"> |
| | | <el-form-item label="上圆角" prop="borderRadiusTop"> |
| | |
| | | import { usePropertyForm } from '@/components/DiyEditor/util' |
| | | import * as SeckillActivityApi from '@/api/mall/promotion/seckill/seckillActivity' |
| | | import { CommonStatusEnum } from '@/utils/constants' |
| | | import SeckillShowcase from '@/views/mall/promotion/seckill/components/SeckillShowcase.vue' |
| | | |
| | | // 秒杀属性面板 |
| | | defineOptions({ name: 'PromotionSeckillProperty' }) |
| | |
| | | const emit = defineEmits(['update:modelValue']) |
| | | const { formData } = usePropertyForm(props.modelValue, emit) |
| | | // 活动列表 |
| | | const activityList = ref<SeckillActivityApi.SeckillActivityVO>([]) |
| | | const activityList = ref<SeckillActivityApi.SeckillActivityVO[]>([]) |
| | | onMounted(async () => { |
| | | const { list } = await SeckillActivityApi.getSeckillActivityPage({ |
| | | status: CommonStatusEnum.ENABLE |