更新商品管理模块
This commit is contained in:
@@ -14,9 +14,9 @@
|
||||
<view class="">
|
||||
<template v-if="isBindGuige&&isSku">
|
||||
<view class="list">
|
||||
<view class="u-p-b-32 u-p-t-32 border-bottom" v-for="(item,index) in skuList" :key="index">
|
||||
<view class="u-p-b-32 u-p-t-32 border-bottom" v-for="(sku,index) in skuList" :key="index">
|
||||
<view>规格名称</view>
|
||||
<view class="u-m-t-16">{{item.specSnap}}</view>
|
||||
<view class="u-m-t-16">{{sku.specSnap}}</view>
|
||||
<view class="color-666 u-m-t-24 u-flex">
|
||||
<view class="xuhao">序号</view>
|
||||
<view class="u-flex u-flex-1 u-p-l-32 gap-20">
|
||||
@@ -26,29 +26,24 @@
|
||||
</view>
|
||||
</view>
|
||||
<view class="u-m-t-32 color-666">
|
||||
<view class="u-m-t-24" v-for="(haocai,haocaiIndex) in item.haoaiList"
|
||||
<view class="u-m-t-24" v-for="(item,haocaiIndex) in sku.haoCaiList"
|
||||
:key="haocaiIndex">
|
||||
<view class=" u-flex">
|
||||
<view class="xuhao">{{haocaiIndex+1}}</view>
|
||||
<view class="u-flex u-flex-1 u-p-l-32 gap-20">
|
||||
<view class="u-flex-1 ">
|
||||
<view class="u-flex input">
|
||||
<view>{{item.name}}</view>
|
||||
<up-icon :size="10" name="arrow-down-fill"></up-icon>
|
||||
</view>
|
||||
<choose-haocai @change="conInfosChange($event,item)"
|
||||
:listMap="$haocaiMap" :list="haoCaiList"
|
||||
v-model="item.conInfoId"></choose-haocai>
|
||||
</view>
|
||||
<view class="u-flex-1 ">
|
||||
<view class="u-flex input">
|
||||
<view>{{item.unit}}</view>
|
||||
<up-icon :size="10" name="arrow-down-fill"></up-icon>
|
||||
</view>
|
||||
<choose-danwei :listMap="$danweiMap" :list="danweiList"
|
||||
v-model="item.conUnit"></choose-danwei>
|
||||
</view>
|
||||
<view class="u-flex-1 ">
|
||||
<view class="u-flex input">
|
||||
<up-input border="none"></up-input>
|
||||
<up-icon color="#EB4F4F" @click="delGuigeHaocao(index,haocaiIndex)"
|
||||
:size="16" name="minus-circle-fill"></up-icon>
|
||||
</view>
|
||||
<view class="u-flex input">
|
||||
<up-input border="none" v-model="item.surplusStock"></up-input>
|
||||
<up-icon @click="delGuigeHaocao(index,haocaiIndex)" color="#EB4F4F" :size="16"
|
||||
name="minus-circle-fill"></up-icon>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
@@ -173,16 +168,20 @@
|
||||
deletetbProskuCon,
|
||||
} from "@/http/yskApi/consumable.js";
|
||||
import {
|
||||
tbShopCurrencyGet,$hasPermission
|
||||
tbShopCurrencyGet,
|
||||
$hasPermission
|
||||
} from '@/http/yskApi/shop.js'
|
||||
|
||||
import infoBox from '@/commons/utils/infoBox.js'
|
||||
import chooseHaocai from './choose-haocai.vue';
|
||||
import chooseDanwei from './choose-danwei.vue';
|
||||
import {
|
||||
$tbProskuConV2
|
||||
} from '@/http/yskApi/goods.js'
|
||||
const emits=defineEmits(['cancel'])
|
||||
function cancel(){
|
||||
import { cloneWith } from 'lodash';
|
||||
const emits = defineEmits(['cancel', 'updateGoods'])
|
||||
|
||||
function cancel() {
|
||||
emits('cancel')
|
||||
}
|
||||
const props = defineProps({
|
||||
@@ -203,27 +202,29 @@
|
||||
console.log(newval);
|
||||
conInfos.value = newval
|
||||
})
|
||||
|
||||
function conInfosChange(newval, item) {
|
||||
console.log(newval);
|
||||
item.stockNumber = newval.balance
|
||||
item.conUnit = newval.conUnit
|
||||
}
|
||||
|
||||
|
||||
const skuList = ref(props.goods.skuList)
|
||||
watch(() => props.goods.skuList, (newval) => {
|
||||
console.log(newval);
|
||||
skuList.value = newval
|
||||
})
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
const $baseicHaocaiData = {
|
||||
conInfoId: '',
|
||||
conUnit: '',
|
||||
surplusStock: ''
|
||||
}
|
||||
|
||||
function addHaocai() {
|
||||
conInfos.value.push({
|
||||
conInfoId: '',
|
||||
conUnit: '',
|
||||
surplusStock: ''
|
||||
...$baseicHaocaiData
|
||||
})
|
||||
}
|
||||
const popup = reactive({
|
||||
@@ -233,11 +234,21 @@
|
||||
})
|
||||
|
||||
function addGuigeHaocai(index) {
|
||||
console.log(index);
|
||||
if (skuList.value[index].haoCaiList) {
|
||||
skuList.value[index].haoCaiList.push({
|
||||
...$baseicHaocaiData
|
||||
})
|
||||
} else {
|
||||
skuList.value[index].haoCaiList = [{
|
||||
...$baseicHaocaiData
|
||||
}]
|
||||
}
|
||||
console.log(skuList.value[index]);
|
||||
}
|
||||
|
||||
function delHaocai(index) {
|
||||
const item = conInfos.value[index]
|
||||
console.log(item);
|
||||
uni.showModal({
|
||||
title: '提示',
|
||||
content: '是否删除该耗材',
|
||||
@@ -258,7 +269,24 @@
|
||||
}
|
||||
|
||||
function delGuigeHaocao(guigeIndex, haocaiIndex) {
|
||||
skuList.value[guigeIndex].haoaiList.splice(haocaiIndex, 1)
|
||||
const item = skuList.value[guigeIndex].haoCaiList[haocaiIndex]
|
||||
console.log(item);
|
||||
uni.showModal({
|
||||
title: '提示',
|
||||
content: '是否删除该耗材',
|
||||
success(res) {
|
||||
if (res.confirm) {
|
||||
if (item&&item.id) {
|
||||
deletetbProskuCon([item.id]).then(res1 => {
|
||||
skuList.value[guigeIndex].haoCaiList.splice(haocaiIndex, 1)
|
||||
})
|
||||
} else {
|
||||
skuList.value[guigeIndex].haoCaiList.splice(haocaiIndex, 1)
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// 是否是多规格商品
|
||||
@@ -270,30 +298,66 @@
|
||||
isBindGuige.value = isSku.value
|
||||
})
|
||||
|
||||
function save() {
|
||||
async function save() {
|
||||
console.log('save');
|
||||
const isPas= conInfos.value.every(v=>{
|
||||
return v.conInfoId&&v.conUnit&&v.surplusStock>0
|
||||
})
|
||||
console.log(isPas);
|
||||
return
|
||||
let ajaxData = ''
|
||||
let isPas=false
|
||||
if(!isBindGuige.value){
|
||||
//绑定至商品
|
||||
isPas = conInfos.value.every(v => {
|
||||
return v.conInfoId && v.conUnit && v.surplusStock > 0
|
||||
})
|
||||
}else{
|
||||
//绑定至规格
|
||||
isPas = skuList.value.filter(v=>v.haoCaiList&&v.haoCaiList.length).every(sku => {
|
||||
console.log(sku.haoCaiList);
|
||||
return sku.haoCaiList.every(v=>{
|
||||
return v.conInfoId && v.conUnit && v.surplusStock > 0
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
if (!isPas) {
|
||||
return infoBox.showToast('请填写全部耗材选项值')
|
||||
}
|
||||
let ajaxData = {
|
||||
productId: props.goods.id,
|
||||
cons: []
|
||||
}
|
||||
if (!isBindGuige.value) {
|
||||
//绑定至商品
|
||||
ajaxData = conInfos.value.map(v => {
|
||||
ajaxData.cons = conInfos.value.map(v => {
|
||||
return {
|
||||
id: v.id || '',
|
||||
conInfoId: v.conInfoId,
|
||||
productId: props.goods.id,
|
||||
shopId: uni.getStorageSync('shopId'),
|
||||
productSkuId: 0,
|
||||
surplusStock: v.surplusStock
|
||||
surplusStock: v.surplusStock * 1,
|
||||
status: 1
|
||||
}
|
||||
})
|
||||
} else {
|
||||
for(let i in skuList.value){
|
||||
const haocaiList=skuList.value[i].haoCaiList||[]
|
||||
for(let k in haocaiList){
|
||||
const v=haocaiList[k]
|
||||
ajaxData.cons.push({
|
||||
id: v.id || '',
|
||||
conInfoId: v.conInfoId,
|
||||
productId: props.goods.id,
|
||||
shopId: uni.getStorageSync('shopId'),
|
||||
productSkuId: skuList.value[i].id,
|
||||
surplusStock: v.surplusStock * 1,
|
||||
status: 1
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
console.log(ajaxData);
|
||||
$tbProskuConV2(ajaxData)
|
||||
await $tbProskuConV2(ajaxData)
|
||||
emits('updateGoods')
|
||||
infoBox.showToast('修改成功')
|
||||
}
|
||||
|
||||
let haoCaiList = ref([])
|
||||
@@ -303,12 +367,11 @@
|
||||
|
||||
function init() {
|
||||
gettbConsInfo({
|
||||
page: 0,
|
||||
size: 200
|
||||
"status": 1,
|
||||
}).then(res => {
|
||||
for (let i in res.content) {
|
||||
const item = res.content[i]
|
||||
$haocaiMap[item.consId] = item
|
||||
$haocaiMap[item.id] = item
|
||||
}
|
||||
haoCaiList.value = res.content
|
||||
|
||||
|
||||
Reference in New Issue
Block a user