优化修复套餐问题

This commit is contained in:
gyq
2025-12-20 16:54:35 +08:00
parent b41ea6645d
commit 3c00ff7a33
4 changed files with 43 additions and 22 deletions

View File

@@ -1,8 +1,9 @@
<!-- 添加团购商品 -->
<template>
<div>
<el-dialog :title="form.id ? '编辑商品' : '添加商品'" width="800px" v-model="visible" @submit.prevent @closed="resetHandle">
<div class="form_warap">
<el-dialog :title="form.id ? '编辑商品' : '添加商品'" width="800px" v-model="visible" @submit.prevent @closed="resetHandle"
@open="openDialog">
<div class="form_warap" ref="targetScrollRef">
<el-form ref="formRef" :model="form" :rules="rules" label-position="right" label-width="120">
<el-form-item label="可用门店">
<el-radio-group v-model="form.useShopType" @change="useShopTypeChange">
@@ -247,8 +248,10 @@ function submitHandle() {
try {
if (vaild) {
const data = { ...form.value }
if (form.value.useShopType == 'custom') {
if (form.value.useShopType == 'custom' && form.value.useShops.length) {
data.useShops = form.value.useShops.join(',')
} else {
data.useShops = ''
}
loading.value = true
if (form.value.id) {
@@ -282,6 +285,14 @@ function resetHandle() {
formRef.value.resetFields()
}
const targetScrollRef = ref(null)
function openDialog() {
if (targetScrollRef.value) {
targetScrollRef.value.scrollTop = 0
}
}
function show(obj) {
visible.value = true
if (obj && obj.id) {

View File

@@ -1,9 +1,9 @@
<!-- 添加套餐推广商品 -->
<template>
<div>
<el-dialog :title="form.id ? '编辑套餐' : '添加套餐'" width="1000px" v-model="visible" @submit.prevent
@closed="resetHandle">
<div class="form_warap">
<el-dialog :title="form.id ? '编辑套餐' : '添加套餐'" width="1000px" v-model="visible" @submit.prevent @closed="resetHandle"
@open="openDialog">
<div class="form_warap" ref="targetScrollRef">
<el-form ref="formRef" :model="form" :rules="rules" label-position="right" label-width="150">
<el-form-item label="可用门店">
<el-radio-group v-model="form.useShopType" @change="useShopTypeChange">
@@ -17,26 +17,26 @@
<el-form-item v-if="form.useShopType == 'custom'" prop="useShops">
<selectBranchs all v-model="form.useShops" />
</el-form-item>
<el-form-item label="商品名称" prop="packageName">
<el-form-item label="套餐名称" prop="packageName">
<div class="column">
<el-input v-model="form.packageName" placeholder="请输入商品名称" :maxlength="30"
<el-input v-model="form.packageName" placeholder="请输入套餐名称" :maxlength="30"
style="width: 300px;"></el-input>
</div>
</el-form-item>
<el-form-item label="商品描述">
<el-input type="textarea" :rows="5" placeholder="请输入商品描述" :maxlength="50" show-password
<el-form-item label="套餐描述">
<el-input type="textarea" :rows="5" placeholder="请输入套餐描述" :maxlength="50" show-password
v-model="form.description" style="width: 300px;"></el-input>
</el-form-item>
<el-form-item label="商品图片" prop="images">
<el-form-item label="套餐图片" prop="images">
<MultiImageUpload v-model="form.images" @uploadStart="loading = true"
@uploadAllSuccess="wareImgsMultiOnSuccess" />
</el-form-item>
<el-form-item label="原价" prop="originPrice">
<el-input v-model="form.originPrice" placeholder="请输入商品原价" :maxlength="8"
<el-input v-model="form.originPrice" placeholder="请输入套餐原价" :maxlength="8"
@input="e => form.originPrice = filterNumberInput(e)" style="width: 300px;"></el-input>
</el-form-item>
<el-form-item label="价格" prop="price">
<el-input v-model="form.price" placeholder="请输入商品价格" :maxlength="8"
<el-input v-model="form.price" placeholder="请输入套餐价格" :maxlength="8"
@input="e => form.price = filterNumberInput(e)" style="width: 300px;"></el-input>
</el-form-item>
<el-form-item label="选择商品" prop="packageContent">
@@ -131,7 +131,7 @@
<div class="row">
<el-button type="primary" @click="addStepHandle" :disabled="!form.price"
v-if="form.tieredDiscount.length < 3">
{{ form.price ? '添加阶梯' : '请填写商品价格' }}
{{ form.price ? '添加阶梯' : '请填写套餐价格后添加阶梯' }}
</el-button>
</div>
</div>
@@ -531,9 +531,8 @@ const rules = ref({
],
expireHours: [
{
required: true,
validator: (rule, value, callback) => {
if (form.value.expireHours < 1 || !form.value.expireHours) {
if (form.value.tieredDiscount.length && (form.value.expireHours < 1 || !form.value.expireHours)) {
callback(new Error('请输入分享期限'))
} else if (form.value.expireHours > 72) {
callback(new Error('最大不超过72小时'))
@@ -567,8 +566,10 @@ function submitHandle() {
try {
if (vaild) {
const data = { ...form.value }
if (form.value.useShopType == 'custom') {
if (form.value.useShopType == 'custom' && form.value.useShops.length) {
data.useShops = form.value.useShops.join(',')
} else {
data.useShops = ''
}
loading.value = true
await packageAddEdit(data)
@@ -594,6 +595,14 @@ function resetHandle() {
form.value = _.cloneDeep(formObj)
formRef.value.resetFields()
useTimeScope.value = []
}
const targetScrollRef = ref(null)
function openDialog() {
if (targetScrollRef.value) {
targetScrollRef.value.scrollTop = 0
}
}
function show(obj) {

View File

@@ -11,8 +11,8 @@
<el-option :label="item.label" :value="item.value" v-for="item in statusList" :key="item.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="商品名称">
<el-input v-model="queryForm.packageName" placeholder="请输入商品名称"></el-input>
<el-form-item label="套餐名称">
<el-input v-model="queryForm.packageName" placeholder="请输入套餐名称"></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="Search" :loading="tableData.loading" @click="searchHandle">搜索</el-button>
@@ -22,7 +22,7 @@
</div>
<div class="row">
<el-table :data="tableData.list" stripe border v-loading="tableData.loading">
<el-table-column label="商品图片">
<el-table-column label="套餐图片" width="120">
<template v-slot="scope">
<div class="wareImgs">
<el-image :src="scope.row.images[0]" style="width: 100%;height: 100%;" fit="cover"
@@ -48,7 +48,8 @@
<el-table-column label="上架状态" prop="onlineStatus" width="100">
<template v-slot="scope">
<el-switch v-model="scope.row.onlineStatus" :active-value="1" :inactive-value="0"
@change="editOnlineStatusAjax($event, scope.row)"></el-switch>
@change="editOnlineStatusAjax($event, scope.row)"
:disabled="!(scope.row.shopId === shopInfo.id)"></el-switch>
</template>
</el-table-column>
<el-table-column label="创建时间" prop="createTime" width="200"></el-table-column>