fix: 提交修改
Build and Deploy Vue3 / build (push) Successful in 1m31s
Build and Deploy Vue3 / deploy (push) Successful in 1m9s

This commit is contained in:
2026-04-15 16:02:36 +08:00
parent 2f06aa9f5f
commit b3ed406f84
61 changed files with 7476 additions and 7226 deletions
+42 -7
View File
@@ -168,7 +168,7 @@
/>
</template>
</el-table-column>
<el-table-column label="操作" width="200" fixed="right">
<el-table-column label="操作" width="260" fixed="right">
<template #default="{ row }">
<div class="action-buttons">
<template v-if="row.isGroup">
@@ -437,7 +437,7 @@
<el-dialog
v-model="showTagSelector"
title="选择分组标签"
width="600px"
width="650px"
append-to-body
>
<div class="tag-selector-header">
@@ -467,6 +467,11 @@
<el-tag type="primary">{{ row.name }}</el-tag>
</template>
</el-table-column>
<el-table-column label="操作" width="100" fixed="right">
<template #default="{ row }">
<el-button type="danger" link size="small" @click.stop="handleDeleteTagFromSelector(row)">删除</el-button>
</template>
</el-table-column>
<template #empty>
<el-empty description="暂无标签数据" :image-size="60" />
</template>
@@ -551,6 +556,7 @@
v-model="coverSelectorVisible"
:user-id="1"
:current-cover-id="productForm.cover_id"
title="选择封面"
@confirm="handleProductCoverSelect"
/>
@@ -560,14 +566,20 @@
<el-form-item label="库存数量" prop="inventory">
<el-input-number v-model="productForm.inventory" :min="0" placeholder="请输入库存" style="width: 100%" />
</el-form-item>
<el-form-item label="商品价格(元)" prop="price">
<el-input-number v-model="productForm.price" :min="0" :precision="2" :step="0.01" placeholder="请输入价格(元)" style="width: 100%" />
<el-form-item label="商品价格" prop="price">
<div class="unit-input-row">
<el-input-number v-model="productForm.price" :min="0" :precision="2" :step="0.01" placeholder="请输入价格(元)" style="flex:1" />
<span class="unit-text"></span>
</div>
</el-form-item>
<el-form-item label="单个商品数量" prop="pay_num">
<el-input-number v-model="productForm.pay_num" :min="1" placeholder="请输入单个商品数量" style="width: 100%" />
</el-form-item>
<el-form-item label="有效期(天)" prop="expire_time">
<el-input-number v-model="productForm.expire_time" :min="0" placeholder="请输入有效期" style="width: 100%" />
<el-form-item label="有效期" prop="expire_time">
<div class="unit-input-row">
<el-input-number v-model="productForm.expire_time" :min="0" placeholder="请输入有效期" style="flex:1" />
<span class="unit-text"></span>
</div>
</el-form-item>
<el-form-item label="推荐" prop="recommend">
<el-switch v-model="productForm.recommend" active-text="启用" inactive-text="禁用" />
@@ -651,6 +663,7 @@ import {
hideProductGroup,
startProductGroup,
getProductGroupTagList,
deleteProductGroupTag,
getProductList,
createProduct,
updateProduct,
@@ -1117,6 +1130,25 @@ const clearTag = () => {
groupForm.tag_id = undefined
}
const handleDeleteTagFromSelector = (row) => {
ElMessageBox.confirm(`确定删除标签「${row.name}」吗?删除后使用该标签的分组将失去关联。`, '删除确认', { type: 'warning' })
.then(async () => {
try {
const res = await deleteProductGroupTag({ id: row.id })
if (res?.data?.code === 200) {
ElMessage.success('标签已删除')
fetchTagOptionsForSelector()
fetchAllTagOptions()
} else {
ElMessage.error(res?.data?.message || '删除失败')
}
} catch (e) {
ElMessage.error(e?.response?.data?.message || '删除失败')
}
})
.catch(() => {})
}
watch(showTagSelector, (val) => {
if (val) {
tagSelectorSearch.value = ''
@@ -1468,7 +1500,7 @@ const clearProductGroup = () => {
}
const handleProductCoverSelect = (file) => {
productForm.cover_id = file.id
productForm.cover_id = file.cover_id
coverSelectorVisible.value = false
}
@@ -1791,6 +1823,9 @@ onMounted(() => {
margin-top: 4px;
}
.unit-input-row { display: flex; align-items: center; gap: 6px; width: 100%; }
.unit-text { font-size: 13px; color: #606266; flex-shrink: 0; white-space: nowrap; }
.recommend-user-selector {
display: flex;
align-items: center;