套餐启用增加生效时间

This commit is contained in:
wuweihua
2026-09-17 14:42:48 +08:00
parent 51c8013cd9
commit f3ef2df949
25 changed files with 684 additions and 287 deletions
@@ -3,6 +3,7 @@
<el-tabs v-model="statusTab" class="ver-tabs">
<el-tab-pane :label="tabLabel('all')" name="all" />
<el-tab-pane :label="tabLabel('0')" name="0" />
<el-tab-pane :label="tabLabel('3')" name="3" />
<el-tab-pane :label="tabLabel('1')" name="1" />
<el-tab-pane :label="tabLabel('2')" name="2" />
</el-tabs>
@@ -31,28 +32,28 @@
<template #default="{ row }">
<el-button link type="primary" @click="openDetails(row)">查看详情</el-button>
<el-button
v-if="String(row.status) === '0'"
v-if="isPriceEditableVersion(row)"
link
type="primary"
@click="emit('edit', row)"
v-hasPermi="['price:set:edit']"
>继续配置</el-button>
<el-button
v-if="String(row.status) === '0'"
v-if="isDraftVersion(row)"
link
type="success"
@click="emit('activate', row)"
v-hasPermi="['price:set:edit']"
>启动</el-button>
<el-button
v-if="String(row.status) === '0'"
v-if="isDraftVersion(row)"
link
type="danger"
@click="emit('remove', row)"
v-hasPermi="['price:set:edit']"
>删除</el-button>
<el-button
v-if="String(row.status) === '1'"
v-if="String(row.status) === '1' && !hasDraft"
link
type="primary"
@click="emit('copy-version', row)"
@@ -66,7 +67,7 @@
<script setup name="SetVersionTable">
import SetSectionCard from './SetSectionCard.vue'
import { versionStatusLabel, versionStatusTag } from '../../utils/priceSet'
import { versionStatusLabel, versionStatusTag, isDraftVersion, isPriceEditableVersion } from '../../utils/priceSet'
const props = defineProps({
versions: { type: Array, default: () => [] },
@@ -84,7 +85,7 @@ const colAction = '操作'
const statusTab = ref('all')
const counts = computed(() => {
const map = { all: 0, '0': 0, '1': 0, '2': 0 }
const map = { all: 0, '0': 0, '3': 0, '1': 0, '2': 0 }
;(props.versions || []).forEach(v => {
map.all++
const s = String(v.status == null ? '' : v.status)
@@ -97,12 +98,15 @@ function tabLabel(key) {
const labels = {
all: '全部',
'0': '草稿',
'3': '待生效',
'1': '生效',
'2': '失效'
}
return labels[key] + ' (' + (counts.value[key] || 0) + ')'
}
const hasDraft = computed(() => (props.versions || []).some(v => isDraftVersion(v)))
const filteredVersions = computed(() => {
const list = props.versions || []
if (statusTab.value === 'all') return list