优化修复套餐问题

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

@@ -216,7 +216,7 @@ export function packageDel(id) {
*/ */
export function packageSureDel(id) { export function packageSureDel(id) {
return request({ return request({
url: `${Market_BaseUrl}/admin/package/sure/${id}`, url: `${Market_BaseUrl}/admin/package/${id}`,
method: 'DELETE' method: 'DELETE'
}); });
} }

View File

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

View File

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