绑定商品

This commit is contained in:
duan 2024-07-04 09:55:05 +08:00
parent c14f7e45c0
commit 6dd4146cc6
2 changed files with 179 additions and 128 deletions

View File

@ -112,6 +112,17 @@ export function posttbProskuCon(data) {
data
});
}
/**
* 新增商品规格耗材信息-修改后
* @returns
*/
export function posttbProskuCons(data) {
return request({
url: '/api/tbProskuCon',
method: "post",
data
});
}
/**
* 修改商品规格耗材信息状态
* @returns
@ -123,6 +134,14 @@ export function puttbProskuCon(data) {
data
});
}
// 编辑单位耗材值
// export function puttbProskuCon(data) {
// return request({
// url: '/api/tbProskuCon',
// method: "put",
// data
// });
// }
/**
* 删除商品规格耗材信息状态
* @returns

View File

@ -30,7 +30,8 @@
<div class="head-container">
<el-row>
<el-col>
<el-button type="primary" icon="el-icon-plus" @click="clickdialogframe('add')">添加</el-button>
<el-button type="primary" icon="el-icon-plus"
@click="$refs.shopList.show(tableData.list)">选择商品规格</el-button>
</el-col>
</el-row>
</div>
@ -39,6 +40,7 @@
<el-table-column prop="id" label="ID" width="50px" />
<el-table-column label="耗材信息ID" prop="conInfoId" />
<el-table-column label="耗材信息名称" prop="conName" />
<!-- <el-table-column label="价格" prop="conName" /> -->
<el-table-column label="规格名称" prop="specSnap" />
<el-table-column label="耗材信息代码" prop="conCode" />
<el-table-column label="耗材信息单位" prop="conUnit" />
@ -78,46 +80,55 @@
<el-pagination :total="tableData.total" :current-page="tableData.page + 1" :page-size="tableData.size"
layout="total, sizes, prev, pager, next, jumper" @current-change="paginationChange" />
</div>
<el-dialog :title="dialogtitle" :visible.sync="dialogshow">
<el-form ref="refruleForm" :model="ruleForm" :rules="rules" :inline="true">
<el-form-item label="商品规格" prop="productSkuIdname">
<el-input v-model="ruleForm.productSkuIdname" placeholder="请输入商品规格" disabled></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="tableDataskudialogshow = true">去选择商品规格</el-button>
</el-form-item>
<el-form-item label="耗材信息" prop="conInfoIdname">
<el-input v-model="ruleForm.conInfoIdname" placeholder="请输入耗材信息" disabled></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="informationdialogshow = true">去选择耗材信息</el-button>
</el-form-item>
<!-- <el-form-item label="是否禁用" prop="status">
<el-switch v-model="ruleForm.status" />
</el-form-item> -->
<el-form-item label="单位耗材值" prop="surplusStock">
<el-input v-model="ruleForm.surplusStock" placeholder="请输入单位耗材值"></el-input>
</el-form-item>
<el-dialog :title="dialogtitle" :visible.sync="dialogshow" width="50%">
<el-form ref="addSelect" :inline="true">
<template v-if="addSelect.length">
<template v-if="addSelect[0].isDistribute == 1">
<el-form-item label="商品规格">
<el-input v-model="addSelect[0].specSnap" style="width: 130px;" placeholder="请选择商品规格"
disabled></el-input>
</el-form-item>
<el-form-item label="耗材信息" prop="conName">
<el-input v-model="addSelect[0].conName" style="width: 130px;" placeholder="请选择耗材信息"
disabled></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="informationdialogshow = true">去选择耗材信息</el-button>
</el-form-item>
<el-form-item label="单位耗材值">
<el-input v-model="addSelect[0].surplusStock" placeholder="请输入单位耗材值"></el-input>
</el-form-item>
</template>
<template v-else>
<template v-if="addSelect[0]">
<template v-for="(item, i) in addSelect[0].skuList">
<el-form-item label="商品规格">
<el-input v-model="item.specSnap" style="width: 130px;" placeholder="请选择商品规格"
disabled></el-input>
</el-form-item>
<el-form-item label="耗材信息" prop="conName">
<el-input v-model="item.conName" style="width: 130px;" placeholder="请选择耗材信息"
disabled></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="selecthaocai(i)">去选择耗材信息</el-button>
</el-form-item>
<el-form-item label="单位耗材值">
<el-input v-model="item.surplusStock" placeholder="请输入单位耗材值"></el-input>
</el-form-item>
</template>
</template>
</template>
</template>
<el-form-item style="display: flex;justify-content: flex-end;">
<el-button @click="dialogshow = false"> </el-button>
<el-button type="primary" @click="submitForm('refruleForm')"> </el-button>
</el-form-item>
</el-form>
</el-dialog>
<el-dialog title="修改" :visible.sync="dialogshows">
<el-form ref="refruleForm" :model="ruleForm" :inline="true" :rules="rulesdialogshows">
<el-form-item label="是否禁用" prop="status">
<el-switch v-model="ruleForm.status" />
</el-form-item>
<el-form-item label="单位耗材值" prop="surplusStock">
<el-input v-model="ruleForm.surplusStock" placeholder="请输入单位耗材值"></el-input>
</el-form-item>
<el-form-item style="display: flex;justify-content: flex-end;">
<el-button @click="dialogshows = false"> </el-button>
<el-button type="primary" @click="submitForm('refruleForm')"> </el-button>
<el-button type="primary" @click="submitForm('addSelect')"> </el-button>
</el-form-item>
</el-form>
</el-dialog>
<el-dialog title="耗材信息" :visible.sync="informationdialogshow">
<div class="head-container">
<el-input v-model="queryinformation.conTypeId" size="small" clearable placeholder="请输入类型id"
@ -155,45 +166,30 @@
@current-change="paginationChangeinformation" />
</div>
</el-dialog>
<el-dialog title="选择规格" :visible.sync="tableDataskudialogshow" width="700px;">
<div class="head-container">
<el-input v-model="querytableDatasku.specSnap" size="small" clearable placeholder="请输入规格"
style="width: 100%;" class="filter-item" @keyup.enter.native="getTableDatasku" />
<el-input v-model="querytableDatasku.name" size="small" clearable placeholder="请输入商品名称"
style="width: 100%;" class="filter-item" @keyup.enter.native="getTableDatasku" />
<el-input v-model="querytableDatasku.shopName" size="small" clearable placeholder="请输入店铺名称"
style="width: 100%;" class="filter-item" @keyup.enter.native="getTableDatasku" />
<div style="display: flex; justify-content: flex-end;">
<el-button style="margin-right: 20px;" type="primary" @click="getTableDatasku">查询</el-button>
<el-button @click="resetHandlesku">重置</el-button>
</div>
</div>
<el-table ref="table" :data="tableDatasku.data" v-loading="tableDatasku.loading" row-key="id">
<el-table-column label="店铺名称" prop="shopName" />
<el-table-column label="商品名称" prop="name" />
<el-table-column label="规格" prop="specSnap" />
<el-table-column label="" width="200">
<template v-slot="scope">
<el-button @click="tableDatatablesku(scope.row)">确定</el-button>
</template>
</el-table-column>
</el-table>
<div class="head-container">
<el-pagination :total="tableDatasku.total" :current-page="tableDatasku.page + 1"
:page-size="tableDatasku.size" layout="total, sizes, prev, pager, next, jumper"
@current-change="Changeinformationsku" />
</div>
<el-dialog title="编辑" :visible.sync="informationdialogshowedit" width="20%">
<el-form ref="addSelect" :inline="true">
<el-form-item label="单位耗材值">
<el-input v-model="surplusStocks.surplusStock" placeholder="请输入单位耗材值"></el-input>
</el-form-item>
<el-form-item style="display: flex;justify-content: flex-end;">
<el-button @click="informationdialogshowedit = false"> </el-button>
<el-button type="primary" @click="submitForm('addSelect')"> </el-button>
</el-form-item>
</el-form>
</el-dialog>
<shopList ref="shopList" @success="selectShop" />
</div>
</template>
<script>
import Sortable from 'sortablejs'
import dayjs from 'dayjs'
import settings from '@/settings'
import { upProSort } from '@/api/shop'
import { getviewConSku, gettbProductSpec, gettbConsInfo, posttbProskuCon, puttbProskuCon, deletetbProskuCon } from '@/api/consumable'
import shopList from '../components/shopList'
import { upProSort, tbProduct } from '@/api/shop'
import { getviewConSku, gettbProductSpec, gettbConsInfo, posttbProskuCons, puttbProskuCon, deletetbProskuCon } from '@/api/consumable'
export default {
components: { shopList },
data() {
return {
dayjs,
@ -203,7 +199,7 @@ export default {
name: '',
status: ''
},
categorys: [],
surplusStocks: '',
typeEnums: [{
label: '正常',
value: '1'
@ -212,9 +208,9 @@ export default {
value: '0'
}],
dialogshow: false, //
dialogshows: false,
dialogtitle: '', //
informationdialogshow: false,
informationdialogshowedit: false,
tableData: {
data: [],
page: 0,
@ -258,11 +254,11 @@ export default {
status: false
},
rules: {
conInfoIdname: [
conNameS: [
{ required: true, message: '请输入耗材信息', trigger: 'blur' }
],
productSkuIdname: [
{ required: true, message: '请输入商品规格', trigger: 'blur' }
name: [
{ required: true, message: '请选择商品规格', trigger: 'blur' }
],
surplusStock: [
{ required: true, message: '请输入单位耗材值', trigger: 'blur' }
@ -271,14 +267,10 @@ export default {
{ required: true, message: '选择状态', trigger: 'blur' }
]
},
rulesdialogshows: {
surplusStock: [
{ required: true, message: '请输入单位耗材值', trigger: 'blur' }
],
status: [
{ required: true, message: '选择状态', trigger: 'blur' }
]
}
//
addSelect: [],
// index
ALLisDistribute: null
}
},
mounted() {
@ -290,6 +282,16 @@ export default {
})
},
methods: {
selectShop(res) {
this.addSelect = res
res[0]['specSnap'] = res[0].name
this.clickdialogframe('add')
},
//
selecthaocai(i) {
this.ALLisDistribute = i
this.informationdialogshow = true
},
//
tableDrag() {
const el = document.querySelector('#table_drag .el-table__body-wrapper tbody')
@ -389,21 +391,30 @@ export default {
},
//
tableDatainformationtable(item) {
this.ruleForm.conInfoId = item.id
this.ruleForm.conInfoIdname = item.conName
this.addSelect.forEach((ele, i) => {
ele.consInfoId = item.id
ele.conName = item.conName
if (this.ALLisDistribute != null) {
this.addSelect.forEach((ele, i) => {
ele.skuList[this.ALLisDistribute].skuId = item.id
ele.skuList[this.ALLisDistribute].conName = item.conName
})
}
})
// this.ruleForm.skuInfos = item
// this.ruleForm.conInfoId = item.id
// this.ruleForm.conInfoIdname = item.conName
this.informationdialogshow = false
},
tableDatatablesku(item) {///
console.log(item)
this.ruleForm.productSkuId = item.id
this.ruleForm.productSkuIdname = item.name
this.tableDataskudialogshow = false
},
// tableDatatablesku(item) {///
// this.ruleForm = item
// this.tableDataskudialogshow = false
// },
//
async getTableDatasku() {
this.tableDatasku.loading = true
try {
const res = await gettbProductSpec({
const res = await tbProduct({
page: this.tableDatasku.page,
size: this.tableDatasku.size,
shopId: localStorage.getItem('shopId'),
@ -427,52 +438,73 @@ export default {
if (type == 'add') { //
this.dialogtitle = '添加'
this.$nextTick(() => {
this.$refs.refruleForm.resetFields()
this.$refs.addSelect.resetFields()
})
this.dialogshow = true
} else {
this.dialogshows = true
this.informationdialogshowedit = true
this.dialogtitle = '编辑'
this.ruleForm.id = item.productSkuId
this.ruleForm.conInfoId = item.conInfoId
this.ruleForm.id = item.id
this.ruleForm.surplusStock = item.surplusStock
this.ruleForm.status = item.status == 0 ? true : false
// console.log(item,'11')
this.surplusStocks = item
}
},
submitForm(formName) {
this.$refs[formName].validate(async (valid) => {
if (valid) {
if (this.dialogtitle == '编辑') {
await puttbProskuCon({
id: this.ruleForm.id,
// productSkuId: this.ruleForm.productSkuId,
// conInfoId: this.ruleForm.conInfoId,
shopId: this.ruleForm.shopId,
status: this.ruleForm.status ? '0' : '1',
surplusStock: this.ruleForm.surplusStock
})
this.dialogshows = false
this.getTableData()
} else {
await posttbProskuCon({
productSkuId: this.ruleForm.productSkuId,
conInfoId: this.ruleForm.conInfoId,
shopId: this.ruleForm.shopId,
status: this.ruleForm.status ? '0' : '1',
surplusStock: this.ruleForm.surplusStock
})
this.dialogshow = false
}
this.$refs[formName].resetFields()
this.getTableData()
} else {
console.log('error submit!!')
return false
async submitForm(formName) {
if (this.dialogtitle == '编辑') {
let { id, surplusStock } = this.surplusStocks
await puttbProskuCon({
id,
surplusStock
})
this.$message({
message: '修改成功',
type: 'success'
});
this.informationdialogshowedit = false
} else {
let { id, consInfoId, surplusStock } = this.addSelect[0]
let obj = {
productId: id,
consInfoId: consInfoId,
skuInfos: null,
surplusStock: surplusStock
}
})
// 1
if (this.addSelect[0].isDistribute != 1) {
let isgongx = false
this.addSelect[0].skuList.forEach(ele => {
if (!ele.skuId || !ele.surplusStock) {
isgongx = true
} else {
isgongx = false
}
})
if (isgongx) {
this.$message.error('请选择耗材信息与输入耗材值')
return
}
obj.skuInfos = this.addSelect[0].skuList
} else {
if (!consInfoId) {
this.$message.error('请选择耗材信息')
return
}
if (!surplusStock) {
this.$message.error('请输入耗材值')
return
}
}
await posttbProskuCons(obj)
this.$message({
message: '新增成功',
type: 'success'
});
this.ALLisDistribute = null
this.dialogshow = false
}
this.$refs[formName].resetFields()
this.getTableData()
},
resetForm(formName) {
this.$refs[formName].resetFields()