mirror of
https://gitee.com/beijing_hongye_huicheng/lilishop-ui.git
synced 2026-11-13 20:38:54 +08:00
- 拼团:去除拼团规则字段、编辑页商品表补SKU编码/规格/图片、提交按钮失败卡死修复 - 秒杀:活动详情改描述列表、场次商品数徽标、当前场次提示、页签标题动态显示活动名称 - 满额:卡片分区布局、查看模式只读描述视图、去除活动描述、新建默认近七天时间 - 优惠券:查看模式只读描述视图、去除店铺承担比例与范围描述、指定商品表加SKU/规格/图片 - 商品选择器:首列改SKU编码、弹层z-index修复 - 分销订单:商品信息列重构、卡片间距、状态筛选Tab - 库存管理:筛选与列表分区、行高压缩、SPU/SKU编码列 - 全局:所有列表操作列统一右对齐
141 lines
4.0 KiB
Vue
141 lines
4.0 KiB
Vue
<template>
|
|
<div class="search">
|
|
<el-card>
|
|
<el-form
|
|
ref="searchFormRef"
|
|
:model="searchForm"
|
|
inline
|
|
label-width="70px"
|
|
class="search-form mb_10"
|
|
@keyup.enter="handleSearch"
|
|
>
|
|
<el-form-item label="商品名称" prop="goodsName">
|
|
<el-input v-model="searchForm.goodsName" placeholder="请输入商品名称" clearable style="width: 240px" />
|
|
</el-form-item>
|
|
<el-form-item label="商品编号" prop="id">
|
|
<el-input v-model="searchForm.id" placeholder="商品编号" clearable style="width: 200px" />
|
|
</el-form-item>
|
|
<el-form-item>
|
|
<el-button type="primary" @click="handleSearch">搜索</el-button>
|
|
<el-button @click="resetSearch">重置</el-button>
|
|
</el-form-item>
|
|
</el-form>
|
|
</el-card>
|
|
|
|
<el-card class="mt_10">
|
|
<el-table ref="tableRef" v-loading="loading" border :data="data" style="width: 100%">
|
|
<el-table-column prop="id" label="编号" min-width="120" />
|
|
<el-table-column label="商品原图" width="120" align="center">
|
|
<template #default="{ row }">
|
|
<img
|
|
:src="row.original"
|
|
alt="加载图片失败"
|
|
style="cursor: pointer; width: 80px; height: 60px; margin: 10px 0; object-fit: contain"
|
|
/>
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column prop="goodsName" label="商品名称" min-width="120" show-overflow-tooltip />
|
|
<el-table-column label="商品价格" width="120">
|
|
<template #default="{ row }">
|
|
<priceColorScheme :value="row.price || 0" :color="$mainColor" />
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column prop="createTime" label="创建时间" min-width="120" />
|
|
<el-table-column label="操作" align="right" width="150" fixed="right">
|
|
<template #default="{ row }">
|
|
<a class="link-text" @click="editGoods(row)">编辑</a>
|
|
<span class="op-split">|</span>
|
|
<a class="link-text" @click="removeDraft(row.id)">删除</a>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table>
|
|
|
|
<div class="mt_10" style="display: flex; justify-content: flex-end">
|
|
<el-pagination
|
|
v-model:current-page="searchForm.pageNumber"
|
|
v-model:page-size="searchForm.pageSize"
|
|
:page-sizes="[10, 20, 50]"
|
|
:total="total"
|
|
layout="total, sizes, prev, pager, next, jumper"
|
|
size="small"
|
|
@current-change="getDataList"
|
|
@size-change="() => { searchForm.pageNumber = 1; getDataList(); }"
|
|
/>
|
|
</div>
|
|
</el-card>
|
|
</div>
|
|
</template>
|
|
|
|
<script setup>
|
|
import { ref, watch } from "vue";
|
|
import { useRoute, useRouter } from "vue-router";
|
|
import { useTable } from "@/utils/useTable";
|
|
import { getDraftGoodsListData, deleteDraftGoods } from "@/api/goods";
|
|
import { Message, Modal } from "@/utils/message";
|
|
|
|
defineOptions({ name: "goods" });
|
|
|
|
const route = useRoute();
|
|
const router = useRouter();
|
|
|
|
const searchFormRef = ref(null);
|
|
const tableRef = ref(null);
|
|
|
|
const { loading, data, total, searchForm, getDataList, handleSearch, resetSearch } = useTable(
|
|
getDraftGoodsListData,
|
|
{
|
|
pageSize: 10,
|
|
sort: "create_time",
|
|
order: "desc",
|
|
form: {
|
|
goodsName: "",
|
|
id: "",
|
|
saveType: "TEMPLATE",
|
|
},
|
|
}
|
|
);
|
|
|
|
watch(
|
|
() => route.query,
|
|
() => {
|
|
getDataList();
|
|
}
|
|
);
|
|
|
|
function editGoods(v) {
|
|
router.push({
|
|
name: "goods-template-operation-edit",
|
|
query: { draftId: v.id },
|
|
});
|
|
}
|
|
|
|
function removeDraft(id) {
|
|
Modal.confirm({
|
|
title: "确认删除",
|
|
content: "您确认要删除id为 " + id + " 的模版吗?",
|
|
loading: true,
|
|
onOk: () => {
|
|
deleteDraftGoods(id).then((res) => {
|
|
Modal.remove();
|
|
if (res.success) {
|
|
Message.success("删除成功");
|
|
getDataList();
|
|
}
|
|
});
|
|
},
|
|
});
|
|
}
|
|
</script>
|
|
|
|
<style lang="scss" scoped>
|
|
.link-text {
|
|
color: #409eff;
|
|
cursor: pointer;
|
|
text-decoration: none;
|
|
}
|
|
.op-split {
|
|
margin: 0 8px;
|
|
color: #dcdee2;
|
|
}
|
|
</style>
|