yyw提交 #22

Merged
vivanlina merged 1 commits from yyw into master 2025-12-06 12:05:48 +00:00
5 changed files with 60 additions and 15 deletions

View File

@ -16,5 +16,5 @@ createApp(App)
.use(ElementPlus, { locale: zhCn, zIndex: 3000, size: 'default' })
.mount('#app')
document.title = 'ERP-管理系统';
document.title = '妙选ERP';
document.execCommand("BackgroundImageCache", false, true);

View File

@ -105,12 +105,12 @@
<div v-for="(item, i) in goodsSkus" :key="i" class="skuBox">
<el-form label-width="110px" :inline="true">
<el-form-item label="规格:">
<el-select v-model="item.sku_id" placeholder="请选择" clearable filterable style="width: 160px;">
<el-select v-model="item.sku_id" placeholder="请选择" clearable filterable style="width: 160px;" @change="computeCost()">
<el-option v-for="it in skusList" :key="it.id" :label="it.goods && it.goods.title + '' + it.title + ''" :value="it.id" />
</el-select>
</el-form-item>
<el-form-item label="数量:">
<el-input-number v-model="item.num" :min="0" />
<el-input-number v-model="item.num" :min="0" @change="computeCost()" />
</el-form-item>
<el-form-item label=" ">
<el-button type="danger" @click="handleSkuDelete(i)" size="small"><el-icon><Delete /></el-icon>&nbsp;删除</el-button>
@ -252,6 +252,7 @@ export default {
function handleSkuDelete(index) {
data.goodsSkus.splice(index, 1)
computeCost()
}
function toAddSku() {
@ -265,6 +266,10 @@ export default {
function getSkusList() {
get(`/api/all/goods-skus`).then((res) => {
data.skusList = res.data
data.skuObj = {}
res.data.forEach(item => {
data.skuObj[item.id] = item
})
})
}
@ -280,6 +285,20 @@ export default {
})
}
function computeCost() {
let val = 0
data.goodsSkus.forEach(item => {
if(item.sku_id) {
let goods_cost = data.skuObj[item.sku_id].goods_cost || 0
let other_cost = data.skuObj[item.sku_id].other_cost || 0
let cost_factor = data.skuObj[item.sku_id].cost_factor || 0
let cost = (goods_cost * 100 + other_cost * 100) * cost_factor
val += cost * item.num
}
})
data.itemInfo.goods_cost = (val / 100).toFixed(2)
}
onMounted(() => {
fetchData()
getSkusList()
@ -297,8 +316,8 @@ export default {
handleSkuDelete,
toAddSku,
getSkusList,
handleUpload
handleUpload,
computeCost
}
}
}

View File

@ -159,14 +159,24 @@
</el-radio-group>
</el-form-item>
<el-form-item label="运费类型:">
<el-radio-group v-model="item.freight_type">
<el-radio-group v-model="item.freight_type" style="width: 250px;">
<el-radio :label="1">有运费</el-radio>
<el-radio :label="3">无运费</el-radio>
<el-radio :label="2">后补</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="商品成本:">
<el-input placeholder="商品成本" v-model="item.goods_cost" clearable style="width: 250px;"></el-input>
<el-form-item label="成本系数:">
<el-select v-model="item.cost_factor" placeholder="请选择" clearable style="width: 250px;">
<el-option label="1" :value="1" />
<el-option label="1.02" :value="1.02" />
<el-option label="1.05" :value="1.05" />
</el-select>
</el-form-item>
<el-form-item label="采购成本:">
<el-input placeholder="采购成本" v-model="item.goods_cost" clearable style="width: 250px;"></el-input>
</el-form-item>
<el-form-item label="其他成本:">
<el-input placeholder="其他成本" v-model="item.other_cost" clearable style="width: 250px;"></el-input>
</el-form-item>
<el-form-item label="运费成本:">
<el-input placeholder="运费成本" v-model="item.freight_cost" clearable style="width: 250px;"></el-input>
@ -317,7 +327,7 @@ export default {
let item = data.skusList[index]
item.freight_cost = item.freight_cost || 0
if(!item.goods_cost || item.goods_cost * 1 == 0) {
return ElMessage({ type: 'info', message: '商品成本必填' })
// return ElMessage({ type: 'info', message: '' })
}
}
data.opa_loading = true
@ -395,8 +405,10 @@ export default {
sort: 0,
gift: 0,
goods_cost: '',
other_cost: '',
freight_cost: '',
freight_type: 1
freight_type: 1,
cost_factor: ''
}
data.skusList.push(sku)
}

View File

@ -95,7 +95,7 @@
</template>
</el-table-column>
<el-table-column prop="created_at" label="添加时间" align="center" />
<el-table-column label="操作" align="center" width="150">
<el-table-column label="操作" align="center" width="150" fixed="right">
<template #default="scope">
<el-button type="primary" circle @click="handleEdit(scope.row)"><el-icon><Edit /></el-icon></el-button>
@ -195,9 +195,19 @@
<el-radio :label="2">后补</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="商品成本:">
<el-input v-model="itemInfo.goods_cost" clearable></el-input>
</el-form-item>
<el-form-item label="成本系数:">
<el-select v-model="itemInfo.cost_factor" placeholder="请选择" clearable style="width: 200px;">
<el-option label="1" :value="1" />
<el-option label="1.02" :value="1.02" />
<el-option label="1.05" :value="1.05" />
</el-select>
</el-form-item>
<el-form-item label="采购成本:">
<el-input placeholder="采购成本" v-model="itemInfo.goods_cost" clearable></el-input>
</el-form-item>
<el-form-item label="其他成本:">
<el-input placeholder="其他成本" v-model="itemInfo.other_cost" clearable></el-input>
</el-form-item>
<el-form-item label="运费成本:">
<el-input v-model="itemInfo.freight_cost" clearable></el-input>
</el-form-item>
@ -363,7 +373,8 @@ export default {
status: 1,
sort: 0,
gift: 0,
freight_type: 1
freight_type: 1,
cost_factor: ''
}
data.showDialog = true
}

View File

@ -148,6 +148,9 @@
<el-table-column prop="total_profit" label="利润" align="center" />
<el-table-column prop="order_rate" label="订单占比" align="center" />
<el-table-column prop="number_rate" label="销量占比" align="center" />
<el-table-column prop="goods_cost" label="采购成本" align="center" />
<el-table-column prop="other_cost" label="其他成本" align="center" />
<el-table-column prop="freight_cost" label="运费(退款后)" align="center" />
<el-table-column label="趋势图" align="center" width="80">
<template #default="scope">
<el-button type="primary" circle @click="getDataLine(scope.row)" :loading="scope.row.loading"><el-icon><TrendCharts /></el-icon></el-button>