提交 34dd5b87 编写于 作者: kadycui's avatar kadycui 💻

ADD: SKUS模块

上级 a841eb81
import axios from '@/axios'
export function getSkusList(page) {
return axios.get(`/admin/skus/${page}`)
}
export function createSkus(data) {
return axios.post("/admin/skus", data)
}
export function updateSkus(id, data) {
return axios.post("/admin/skus/" + id, data)
}
export function deleteSkus(ids) {
ids = !Array.isArray(ids) ? [ids] :ids
return axios.post(`/admin/skus/delete_all`, {ids})
}
export function updateSkusStatus(id, status){
return axios.post(`/admin/skus/${id}/update_status`, {status})
}
<template>
<el-card shadow="never" class="border-0">
<!-- 新增 | 刷新 -->
<ListHeader @create="handleCreate" @refresh="getData" />
<el-table :data="tableData" stripe style="width: 100%"
element-loading-text="加载中..."
element-loading-spinner="el-icon-loading"
v-loading="loading">
<el-table-column prop="name" label="规格名称" />
<el-table-column prop="default" label="规格值" width="380" />
<el-table-column prop="order" label="排序" />
<el-table-column label="状态" width="120">
<template #default="{ row }">
<el-switch :modelValue="row.status" :active-value="1" :inactive-value="0" :loading="row.statusLoading"
:disabled="row.super == 1" @change="handleStatusChange($event, row)">
</el-switch>
</template>
</el-table-column>
<el-table-column label="操作" width="250" align="center">
<template #default="scope">
<el-button type="primary" size="small" text @click="handleEdit(scope.row)">修改</el-button>
<el-popconfirm title="是否删除该规格?" confirm-button-text="确认" cancel-button-text="取消"
@confirm="handleDelete(scope.row.id)">
<template #reference>
<el-button text type="primary" size="small">删除</el-button>
</template>
</el-popconfirm>
</template>
</el-table-column>
</el-table>
<div class="flex items-center justify-center mt-5">
<el-pagination background layout="prev,pager, next" :total="total" :current-page="currentPage"
:page-size="limit" @current-change="getData" />
</div>
<FormDrawer ref="formDrawerRef" :title="drawerTitle" @submit="handleSubmit">
<el-form :model="form" ref="formRef" :rules="rules" label-width="80px" :inline="false">
<el-form-item label="规格名称" prop="name">
<el-input v-model="form.name" placeholder="规格名称"></el-input>
</el-form-item>
<el-form-item label="排序" prop="order">
<el-input-number v-model="form.order" :min="0" :max="10000"></el-input-number>
</el-form-item>
<el-form-item label="状态" prop="status">
<el-switch v-model="form.status" :active-value="1" :inactive-value="0" >
</el-switch>
</el-form-item>
<el-form-item label="规格值" prop="default">
<el-input v-model="form.default" placeholder="规格值"></el-input>
</el-form-item>
</el-form>
</FormDrawer>
</el-card>
</template>
<script setup>
import {
getSkusList,
createSkus,
updateSkus,
deleteSkus,
updateSkusStatus,
} from "@/api/skus"
import FormDrawer from "@/components/FormDrawer.vue"
import ListHeader from "@/components/ListHeader.vue"
import { useInitTable, useInitForm } from "@/composables/useCommon.js"
const {
tableData,
loading,
currentPage,
total,
limit,
getData,
handleDelete,
handleStatusChange
} = useInitTable({
getList: getSkusList,
delete: deleteSkus,
updateStatus:updateSkusStatus
})
const {
formDrawerRef,
formRef,
form,
rules,
drawerTitle,
handleSubmit,
handleCreate,
handleEdit
} = useInitForm(
{
form: {
name: "",
status:1,
default:"",
order: 50
},
rules: {
name: [
{
required: true,
message: '规格名称不能为空',
trigger: 'blur'
}
],
default: [
{
required: true,
message: '规格值不能为空',
trigger: 'blur'
}
]
},
getData,
update: updateSkus,
create: createSkus
})
</script>
\ No newline at end of file
...@@ -18,6 +18,7 @@ import CouponList from '@/pages/coupon/list.vue' ...@@ -18,6 +18,7 @@ import CouponList from '@/pages/coupon/list.vue'
import ManagerList from '@/pages/manager/list.vue' import ManagerList from '@/pages/manager/list.vue'
import AccessList from '@/pages/access/list.vue' import AccessList from '@/pages/access/list.vue'
import RoleList from '@/pages/role/list.vue' import RoleList from '@/pages/role/list.vue'
import SkusList from '@/pages/skus/list.vue'
...@@ -195,6 +196,13 @@ const asyncRoutes = [{ ...@@ -195,6 +196,13 @@ const asyncRoutes = [{
meta: { meta: {
title: "角色管理" title: "角色管理"
} }
},{
path: "/skus/list",
name: "/skus/list",
component: SkusList,
meta: {
title: "规格管理"
}
}] }]
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册