feat: 线上菜品分类的餐段类型
This commit is contained in:
1 parent
01fb67fa1b
commit
1d5413b5e5
6 files changed
+91
-47
No files matched your search
@@ -1,41 +1,48 @@
|
||||
import request from "/@/utils/request"
|
||||
|
||||
export function fetchList(query?: Object) {
|
||||
return request({
|
||||
url: '/canteen/canteenOnlineSpu/page',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
return request({
|
||||
url: "/canteen/canteenOnlineSpu/page",
|
||||
method: "get",
|
||||
params: query,
|
||||
})
|
||||
}
|
||||
|
||||
export function addObj(obj?: Object) {
|
||||
return request({
|
||||
url: '/canteen/canteenOnlineSpu',
|
||||
method: 'post',
|
||||
data: obj
|
||||
})
|
||||
return request({
|
||||
url: "/canteen/canteenOnlineSpu",
|
||||
method: "post",
|
||||
data: obj,
|
||||
})
|
||||
}
|
||||
|
||||
export function getObj(id?: string) {
|
||||
return request({
|
||||
url: '/canteen/canteenOnlineSpu/' + id,
|
||||
method: 'get'
|
||||
})
|
||||
return request({
|
||||
url: "/canteen/canteenOnlineSpu/" + id,
|
||||
method: "get",
|
||||
})
|
||||
}
|
||||
|
||||
export function delObjs(ids?: Object) {
|
||||
return request({
|
||||
url: '/canteen/canteenOnlineSpu',
|
||||
method: 'delete',
|
||||
data: ids
|
||||
})
|
||||
return request({
|
||||
url: "/canteen/canteenOnlineSpu",
|
||||
method: "delete",
|
||||
data: ids,
|
||||
})
|
||||
}
|
||||
|
||||
export function putObj(obj?: Object) {
|
||||
return request({
|
||||
url: '/canteen/canteenOnlineSpu',
|
||||
method: 'put',
|
||||
data: obj
|
||||
})
|
||||
return request({
|
||||
url: "/canteen/canteenOnlineSpu",
|
||||
method: "put",
|
||||
data: obj,
|
||||
})
|
||||
}
|
||||
|
||||
export function saveCanteenSpuBatch(obj?: Object) {
|
||||
return request({
|
||||
url: "/canteen/canteenOnlineSpu/saveCanteenSpuBatch",
|
||||
method: "post",
|
||||
data: obj,
|
||||
})
|
||||
}
|
||||
@@ -10,12 +10,7 @@
|
||||
<el-col :span="14" class="mb20">
|
||||
<el-form-item label="餐段类型" prop="categoryType">
|
||||
<el-select v-model="form.categoryType" placeholder="请选择餐段类型" multiple>
|
||||
<el-option
|
||||
:value="item.value"
|
||||
:label="item.label"
|
||||
v-for="(item, index) in daily_menu"
|
||||
:key="index"
|
||||
></el-option>
|
||||
<el-option :value="item.value" :label="item.label" v-for="(item, index) in daily_menu" :key="index"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
@@ -12,6 +12,13 @@
|
||||
<el-input v-model.trim="form.name" placeholder="请输入分类名称" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="14" class="mb20">
|
||||
<el-form-item label="餐段类型" prop="categoryType">
|
||||
<el-select v-model="form.categoryType" placeholder="请选择餐段类型" multiple>
|
||||
<el-option :value="item.value" :label="item.label" v-for="(item, index) in daily_menu" :key="index"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24" class="mb20">
|
||||
<el-form-item label="分类图" prop="picUrl">
|
||||
<upload-img v-model:imageUrl="form.picUrl" />
|
||||
@@ -44,8 +51,11 @@
|
||||
import { useMessage } from "/@/hooks/message"
|
||||
import { getObj, addObj, putObj } from "/@/api/canteen/canteenOnlineCategory"
|
||||
import { rule } from "/@/utils/validate"
|
||||
import { useDict } from "/@/hooks/dict"
|
||||
const emit = defineEmits(["refresh"])
|
||||
|
||||
const { daily_menu } = useDict("daily_menu")
|
||||
|
||||
// 定义变量内容
|
||||
const dataFormRef = ref()
|
||||
const visible = ref(false)
|
||||
@@ -61,6 +71,7 @@ const form = reactive({
|
||||
sort: 0,
|
||||
status: "",
|
||||
deptId: "",
|
||||
categoryType: [],
|
||||
})
|
||||
|
||||
// 定义校验规则
|
||||
@@ -71,6 +82,7 @@ const dataRules = ref({
|
||||
{ required: true, message: "分类排序不能为空", trigger: "blur" },
|
||||
{ validator: rule.number, trigger: "blur" },
|
||||
],
|
||||
categoryType: [{ required: true, message: "餐段类型不能为空", trigger: "blur" }],
|
||||
})
|
||||
|
||||
// 打开弹窗
|
||||
@@ -95,7 +107,9 @@ const onSubmit = async () => {
|
||||
|
||||
try {
|
||||
loading.value = true
|
||||
form.id ? await putObj(form) : await addObj(form)
|
||||
form.id
|
||||
? await putObj({ ...form, categoryType: form.categoryType.join(",") })
|
||||
: await addObj({ ...form, categoryType: form.categoryType.join(",") })
|
||||
useMessage().success(form.id ? "修改成功" : "添加成功")
|
||||
visible.value = false
|
||||
emit("refresh")
|
||||
@@ -112,7 +126,7 @@ const getcanteenOnlineCategoryData = (id: string) => {
|
||||
loading.value = true
|
||||
getObj(id)
|
||||
.then((res: any) => {
|
||||
Object.assign(form, res.data)
|
||||
Object.assign(form, res.data, { categoryType: res.data.categoryType.split(",") })
|
||||
})
|
||||
.finally(() => {
|
||||
loading.value = false
|
||||
|
||||
@@ -55,12 +55,18 @@
|
||||
<el-table-column type="selection" width="40" align="center" />
|
||||
<el-table-column type="index" label="#" width="40" />
|
||||
<el-table-column prop="name" label="分类名称" show-overflow-tooltip />
|
||||
<el-table-column prop="categoryType" label="餐段类型" show-overflow-tooltip width="180">
|
||||
<template #default="scope">
|
||||
<dict-tag :options="daily_menu" :value="scope.row.categoryType?.split(',')"></dict-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="picUrl" label="分类图" show-overflow-tooltip>
|
||||
<template #default="{ row }">
|
||||
<preview-image :src="row.picUrl" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="sort" label="分类排序" show-overflow-tooltip />
|
||||
<el-table-column prop="createTime" label="创建时间" show-overflow-tooltip min-width="160" />
|
||||
<!-- <el-table-column prop="status" label="开启状态" show-overflow-tooltip /> -->
|
||||
<el-table-column label="操作" width="150">
|
||||
<template #default="scope">
|
||||
@@ -91,10 +97,13 @@
|
||||
import { BasicTableProps, useTable } from "/@/hooks/table"
|
||||
import { fetchList, delObjs } from "/@/api/canteen/canteenOnlineCategory"
|
||||
import { useMessage, useMessageBox } from "/@/hooks/message"
|
||||
import { useDict } from "/@/hooks/dict"
|
||||
|
||||
// 引入组件
|
||||
const FormDialog = defineAsyncComponent(() => import("./form.vue"))
|
||||
|
||||
const { daily_menu } = useDict("daily_menu")
|
||||
|
||||
// 定义变量内容
|
||||
const formDialogRef = ref()
|
||||
// 搜索变量
|
||||
|
||||
@@ -95,8 +95,9 @@ import { displayPrice } from "/@/utils/formatMoney"
|
||||
import { useDict } from "/@/hooks/dict"
|
||||
import { getAllSimple as getCanteenCategory } from "/@/api/canteen/canteenCategory"
|
||||
import { useMessage } from "/@/hooks/message"
|
||||
import { saveCanteenSpuBatch } from "/@/api/canteen/canteenOnlineSpu"
|
||||
|
||||
const emit = defineEmits(["getSelectedRows", "refresh"])
|
||||
const emit = defineEmits(["refresh"])
|
||||
|
||||
const { spu_status, is_show } = useDict("spu_status", "is_show")
|
||||
|
||||
@@ -164,15 +165,37 @@ const resetQuery = () => {
|
||||
}
|
||||
|
||||
// 商品选择对话框确认
|
||||
const dialogConfirm = () => {
|
||||
const dialogConfirm = async () => {
|
||||
if (!merchantId.value) return useMessage().error("请选择商户")
|
||||
const $table = tableRef.value
|
||||
if ($table) {
|
||||
const currentSelectedRows = $table.getSelectionRows()
|
||||
|
||||
dialogVisible.value = false
|
||||
emit("getSelectedRows", currentSelectedRows)
|
||||
emit("refresh")
|
||||
const items = currentSelectedRows.map((item: any) => {
|
||||
return {
|
||||
name: item.name,
|
||||
linkSpuId: item.id,
|
||||
categoryId: item.categoryId,
|
||||
picUrl: item.picUrl,
|
||||
sort: item.sort,
|
||||
status: item.status,
|
||||
price: item.price,
|
||||
stock: item.stock,
|
||||
}
|
||||
})
|
||||
|
||||
try {
|
||||
loading.value = true
|
||||
const { code, msg } = await saveCanteenSpuBatch({ merchantId: merchantId.value, items })
|
||||
if (code != 0) return useMessage().error(msg)
|
||||
useMessage().success("保存成功")
|
||||
dialogVisible.value = false
|
||||
emit("refresh")
|
||||
} catch (error) {
|
||||
useMessage().error(error as string)
|
||||
} finally {
|
||||
loading.value = false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -88,11 +88,11 @@
|
||||
{{ displayPrice(scope.row.price) }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- <el-table-column prop="marketPrice" label="市场价" show-overflow-tooltip min-width="100">-->
|
||||
<!-- <template #default="scope">-->
|
||||
<!-- {{ displayPrice(scope.row.marketPrice) }}-->
|
||||
<!-- </template>-->
|
||||
<!-- </el-table-column>-->
|
||||
<!-- <el-table-column prop="marketPrice" label="市场价" show-overflow-tooltip min-width="100">-->
|
||||
<!-- <template #default="scope">-->
|
||||
<!-- {{ displayPrice(scope.row.marketPrice) }}-->
|
||||
<!-- </template>-->
|
||||
<!-- </el-table-column>-->
|
||||
<el-table-column prop="stock" label="库存" show-overflow-tooltip min-width="100" />
|
||||
<el-table-column prop="salesCount" label="商品销量" show-overflow-tooltip min-width="100" />
|
||||
<el-table-column prop="createTime" label="创建时间" show-overflow-tooltip min-width="160" />
|
||||
@@ -119,7 +119,7 @@
|
||||
<!-- 编辑、新增 -->
|
||||
<form-dialog ref="formDialogRef" @refresh="getDataList(false)" />
|
||||
<!-- 关联每日菜品 -->
|
||||
<export-form-dialog ref="exportFormDialogRef" @getSelectedRows="getSelectedRows" @refresh="getDataList(false)" />
|
||||
<export-form-dialog ref="exportFormDialogRef" @refresh="getDataList(false)" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -161,10 +161,6 @@ onMounted(async () => {
|
||||
|
||||
const { getDataList, currentChangeHandle, sizeChangeHandle, sortChangeHandle, downBlobFile, tableStyle } = useTable(state)
|
||||
|
||||
const getSelectedRows = (selectRows: any) => {
|
||||
console.log(selectRows)
|
||||
}
|
||||
|
||||
// 清空搜索条件
|
||||
const resetQuery = () => {
|
||||
// 清空搜索条件
|
||||
|
||||
Reference in new issue
Block a user