176 lines
5.6 KiB
Vue
176 lines
5.6 KiB
Vue
<template>
|
|
<el-dialog v-model="visible" title="条码录入" width="60%" :close-on-click-modal="false" draggable @close="">
|
|
<!-- <el-row>
|
|
<el-form :inline="true" @keyup.enter="getDataList">
|
|
<el-form-item label="商品名称" prop="name">
|
|
<el-input placeholder="请输入商品名称" v-model="state.queryForm.productName" />
|
|
</el-form-item>
|
|
<el-form-item>
|
|
<el-button icon="search" type="primary" @click="getDataList">查询</el-button>
|
|
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
|
|
</el-form-item>
|
|
</el-form>
|
|
</el-row> -->
|
|
|
|
<!-- <el-table v-loading="state.loading" :data="state.dataList" @row-click="handleRowClick" :row-style="{ cursor: 'pointer' }">
|
|
<el-table-column type="index" label="#" width="50" align="center" />
|
|
<el-table-column prop="productName" label="商品名称" width="100px" align="center" show-overflow-tooltip />
|
|
<el-table-column prop="brandId" label="商品品牌" width="100px" align="center" show-overflow-tooltip />
|
|
<el-table-column prop="categoryId" label="商品分类" width="100px" align="center" show-overflow-tooltip />
|
|
<el-table-column prop="merchantId" label="商户" width="100px" align="center" show-overflow-tooltip />
|
|
<el-table-column prop="sliderPicUrls" label="商品轮播图" align="center" show-overflow-tooltip>
|
|
<template #default="scope">
|
|
<preview-image @click.stop :src="scope.row.sliderPicUrls" />
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column prop="status" label="上架状态" align="center" show-overflow-tooltip>
|
|
<template #default="scope">
|
|
<dict-tag :options="spu_status" :value="scope.row.status" />
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column prop="barcode" label="商品条码" width="100px" align="center" show-overflow-tooltip />
|
|
<el-table-column prop="supplierId" label="供货商" width="100px" align="center" show-overflow-tooltip />
|
|
<el-table-column prop="sort" label="排序字段" align="center" show-overflow-tooltip /> -->
|
|
|
|
<!-- <el-table-column prop="price" label="商品价格" align="center" show-overflow-tooltip>
|
|
<template #default="scope">
|
|
{{ displayPrice(scope.row.price) }}
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column prop="marketPrice" label="市场价" align="center" show-overflow-tooltip>
|
|
<template #default="scope">
|
|
{{ displayPrice(scope.row.marketPrice) }}
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column prop="costPrice" label="成本价" align="center" show-overflow-tooltip />
|
|
<el-table-column prop="stock" label="库存" align="center" show-overflow-tooltip />
|
|
<el-table-column prop="salesCount" label="商品销量" align="center" show-overflow-tooltip />
|
|
<el-table-column prop="createTime" label="创建时间" align="center" show-overflow-tooltip /> -->
|
|
<!-- </el-table> -->
|
|
|
|
<!-- <pagination @size-change="sizeChangeHandle" @current-change="currentChangeHandle" v-bind="state.pagination" /> -->
|
|
|
|
<template #footer>
|
|
<div class="dialog-footer">
|
|
<el-button @click="visible = false">取消</el-button>
|
|
<!-- <el-button type="primary" @click="onSubmit" :disabled="loading">确认</el-button> -->
|
|
</div>
|
|
</template>
|
|
</el-dialog>
|
|
</template>
|
|
|
|
<script setup lang="ts" name="SmSpuDialog">
|
|
import { useDict } from "/@/hooks/dict"
|
|
import { getObj } from "/@/api/supermarket/smSpu"
|
|
import { BasicTableProps, useTable } from "/@/hooks/table"
|
|
const emit = defineEmits(["refresh"])
|
|
|
|
// 定义变量内容
|
|
const dataFormRef = ref()
|
|
const visible = ref(false)
|
|
const loading = ref(false)
|
|
// 定义字典
|
|
const { spu_status } = useDict("spu_status")
|
|
|
|
// 提交表单数据
|
|
const form = reactive({
|
|
id: "",
|
|
erpSpuId: "",
|
|
description: "<p></p>",
|
|
sliderPicUrls: "",
|
|
sort: "",
|
|
status: "0",
|
|
giveIntegral: 0,
|
|
deptId: "",
|
|
salesCount: "",
|
|
erpSpuName: "",
|
|
})
|
|
|
|
// 定义校验规则
|
|
const dataRules = ref({
|
|
// sliderPicUrls: [{ required: true, message: "请上传轮播图", trigger: "blur" }],
|
|
})
|
|
|
|
// 打开弹窗
|
|
const openDialog = (id: string) => {
|
|
visible.value = true
|
|
form.id = ""
|
|
|
|
dataFormRef.value?.resetFields()
|
|
|
|
// 获取smSpu信息
|
|
if (id) {
|
|
form.id = id
|
|
// getsmSpuData(id)
|
|
}
|
|
}
|
|
|
|
// 提交
|
|
const onSubmit = async () => {
|
|
// console.log(form)
|
|
// const valid = await dataFormRef.value.validate().catch(() => {})
|
|
// if (!valid) return false
|
|
// try {
|
|
// loading.value = true
|
|
// form.id ? await putObj(form) : await addObj(form)
|
|
// useMessage().success(form.id ? "修改成功" : "添加成功")
|
|
// visible.value = false
|
|
// emit("refresh")
|
|
// } catch (err: any) {
|
|
// useMessage().error(err.msg)
|
|
// } finally {
|
|
// loading.value = false
|
|
// }
|
|
}
|
|
|
|
// 初始化表单数据
|
|
const getsmSpuData = (id: string) => {
|
|
// 获取数据
|
|
loading.value = true
|
|
getObj(id)
|
|
.then((res: any) => {
|
|
Object.assign(form, res.data)
|
|
})
|
|
.finally(() => {
|
|
loading.value = false
|
|
})
|
|
}
|
|
|
|
const state: BasicTableProps = reactive<BasicTableProps>({
|
|
queryForm: {},
|
|
// pageList: getOnlineSpuPage,
|
|
})
|
|
|
|
const { getDataList, currentChangeHandle, sizeChangeHandle, sortChangeHandle, downBlobFile, tableStyle } = useTable(state)
|
|
|
|
// const resetQuery = () => {
|
|
// getDataList()
|
|
// }
|
|
|
|
// 点击选择库存商品
|
|
// const handleClickSelectSpu = () => {
|
|
// loading.value = true
|
|
// resetQuery()
|
|
// spuSelectDialogVisible.value = true
|
|
// try {
|
|
// getDataList()
|
|
// } catch (error) {
|
|
// state.dataList = []
|
|
// loading.value = false
|
|
// }
|
|
// loading.value = false
|
|
// }
|
|
|
|
// 线上商品列表表格行点击
|
|
const handleRowClick = (row: any) => {
|
|
// spuSelectDialogVisible.value = false
|
|
// form.erpSpuId = row.id
|
|
// form.erpSpuName = row.productName
|
|
}
|
|
|
|
// 暴露变量
|
|
defineExpose({
|
|
openDialog,
|
|
})
|
|
</script>
|