二次编辑商品

This commit is contained in:
yml2213
2026-06-12 21:43:02 +08:00
parent c8b8922c8d
commit f1ae72cc7a
9 changed files with 251 additions and 20 deletions
@@ -1,7 +1,8 @@
<script setup lang="ts">
import { CopyDocument, Plus, Refresh } from '@element-plus/icons-vue'
import { CopyDocument, Edit, Plus, Refresh } from '@element-plus/icons-vue'
import { ElMessage, ElMessageBox } from 'element-plus'
import { computed, onMounted, ref } from 'vue'
import { useRoute } from 'vue-router'
import {
fetchSellerListings,
@@ -18,6 +19,7 @@ const submittingID = ref<number | null>(null)
const offliningID = ref<number | null>(null)
const listings = ref<Listing[]>([])
const statusFilter = ref('all')
const route = useRoute()
const displayListings = computed(() => {
if (statusFilter.value === 'all') return listings.value
@@ -125,10 +127,20 @@ function canSubmit(row: Listing) {
return !isPendingReview(row) && row.status !== 'rented' && row.status !== 'published'
}
function canEdit(row: Listing) {
return !isPendingReview(row) && row.status !== 'rented' && row.status !== 'published'
}
function canOffline(row: Listing) {
return row.status !== 'rented' && row.status !== 'offline'
}
function editPath(row: Listing) {
return route.path.startsWith('/m/')
? `/m/seller/listings/${row.id}/edit`
: `/seller/listings/${row.id}/edit`
}
function statusTone(status: string) {
const tones: Record<string, string> = {
published: 'success',
@@ -235,6 +247,9 @@ function isPendingReview(row: Listing) {
</div>
<div class="listing-actions">
<RouterLink v-if="canEdit(item)" :to="editPath(item)">
<el-button :icon="Edit">编辑</el-button>
</RouterLink>
<el-button
:disabled="!canSubmit(item)"
:loading="submittingID === item.id"