提交 acd948f3 authored 作者: 王鹏飞's avatar 王鹏飞

bug fixes

上级 5cdc2a7a
......@@ -93,3 +93,9 @@ export function addSkuValue(data) {
export function deleteSkuValue(data) {
return httpRequest.post('/api/shop/spec/value/delete', data)
}
/**
* 获取商品规格
*/
export function getSkuList(data) {
return httpRequest.post('/api/shop/commodity/spu/spec/value/search', data)
}
......@@ -31,6 +31,7 @@
v-if="tr.stock"
></el-input>
</template>
<template v-else>{{ tr.stock[td.key] }}</template>
</td>
</tr>
</tbody>
......@@ -76,7 +77,8 @@ export default {
{ formType: 'input', key: 'price', value: '*价格(元)' },
{ formType: 'input', key: 'mark_price', value: '划线价(元)' },
{ formType: 'input', key: 'stock', value: '*库存' },
{ formType: 'input', key: 'prime_price', value: '成本价' }
{ formType: 'input', key: 'prime_price', value: '成本价' },
{ key: 'sales_volume', value: '销量' }
],
showBatchInput: false,
batchKey: '', // 当前批量修改的字段
......
......@@ -27,7 +27,7 @@ export default {
data() {
return {
menuList: [
{ name: '概况', icon: 'el-icon-house' },
{ name: '概况', path: '/', icon: 'el-icon-house' },
{
name: '商品',
path: '/goods',
......
......@@ -145,7 +145,7 @@ import SkuView from '@/components/goods/skuView'
import Message from '@/components/goods/message'
import Editor from '@/components/tinymce'
// 接口
import { addGoods, updateGoods, getGoodsList } from '@/api/goods'
import { addGoods, updateGoods, getGoodsList, getSkuList } from '@/api/goods'
export default {
components: { AppCard, AppUpload, AppUploadVideo, Sku, SkuView, Message, Editor },
props: { isEdit: { type: Boolean, default: false } },
......@@ -243,32 +243,7 @@ export default {
console.log('商品图片解析失败', error)
}
// 规格明细
try {
const goodStockList = data.spec ? JSON.parse(data.spec) : []
this.ruleForm.goodStockList = goodStockList
// 根据规格明细生成商品规格数据
this.ruleForm.skuKeyValueList = goodStockList.reduce((result, item, index) => {
const ids = item.spec_id.split(',')
const names = item.spec_name.split(',')
const valueIds = item.spec_value_id.split(',')
const valueNames = item.spec_value.split(',')
if (index === 0) {
result = ids.map((id, index) => {
return { spec_id: id, spec_name: names[index], spec_values: [] }
})
}
valueIds.map((valueId, index) => {
const skuValues = result[index].spec_values
const found = skuValues.find(item => item.spec_value_id === valueId)
if (!found) {
skuValues.push({ spec_value_id: valueId, spec_value: valueNames[index] })
}
})
return result
}, [])
} catch (error) {
console.log('商品规格解析失败', error)
}
this.getSkuList()
// 留言
try {
this.ruleForm.messageList = data.app_button_text ? JSON.parse(data.app_button_text) : []
......@@ -280,6 +255,44 @@ export default {
this.loading = false
})
},
getSkuList() {
getSkuList({ shop_id: this.shopId, spu_id: this.pid }).then(response => {
const goodStockList = response.data.map(item => {
return {
mark_price: item.mark_price,
price: item.price,
prime_price: item.prime_price,
sales_volume: item.sales_volume,
spec_id: item.spec_ids,
spec_name: item.spec_names,
spec_value_id: item.spec_value_ids,
spec_value: item.spec_values,
stock: item.stock
}
})
this.ruleForm.goodStockList = goodStockList
// 根据规格明细生成商品规格数据
this.ruleForm.skuKeyValueList = goodStockList.reduce((result, item, index) => {
const ids = item.spec_id.split(',')
const names = item.spec_name.split(',')
const valueIds = item.spec_value_id.split(',')
const valueNames = item.spec_value.split(',')
if (index === 0) {
result = ids.map((id, index) => {
return { spec_id: id, spec_name: names[index], spec_values: [] }
})
}
valueIds.map((valueId, index) => {
const skuValues = result[index].spec_values
const found = skuValues.find(item => item.spec_value_id === valueId)
if (!found) {
skuValues.push({ spec_value_id: valueId, spec_value: valueNames[index] })
}
})
return result
}, [])
})
},
// 上一步
prev() {
this.submit(() => {
......
......@@ -38,7 +38,8 @@
</template>
</table-list>
<div class="footer" style="padding: 10px 0">
<el-button size="medium" :disabled="!multipleSelection.length" @click="handleUpdateStatus">上架</el-button>
<el-button size="medium" :disabled="!multipleSelection.length" @click="handleUpdateStatus('2')">上架</el-button>
<el-button size="medium" :disabled="!multipleSelection.length" @click="handleUpdateStatus('4')">下架</el-button>
<el-button size="medium" :disabled="!multipleSelection.length" @click="onRemove">删除</el-button>
</div>
......@@ -172,8 +173,8 @@ export default {
this.multipleSelection = value
},
// 上架
handleUpdateStatus() {
const data = this.multipleSelection.map(item => ({ spu_id: item.spu_id, status: '2' }))
handleUpdateStatus(status) {
const data = this.multipleSelection.map(item => ({ spu_id: item.spu_id, status }))
updateGoodsStatus({ shop_id: this.shopId, data }).then(res => {
this.$refs.list.refetch()
})
......
......@@ -81,8 +81,8 @@ export default {
}
},
watch: {
'ruleForm.spu_id'(skuId) {
this.getSkuList(skuId)
'ruleForm.spu_id'(goodsId) {
this.getSkuList(goodsId)
}
},
computed: {
......
......@@ -33,7 +33,7 @@
<div class="order-fields">
<el-row>
<el-col :span="12">
<h3 class="order-fields-title">买家信息</h3>
<h3 class="order-fields-title">付款信息</h3>
<div class="order-field-item">
<div class="order-field-item__label">实付金额:</div>
<div class="order-field-item__content">{{ data.payment_money }}</div>
......@@ -48,7 +48,7 @@
</div>
</el-col>
<el-col :span="12">
<h3 class="order-fields-title">付款信息</h3>
<h3 class="order-fields-title">买家信息</h3>
<div class="order-field-item">
<div class="order-field-item__label">买家:</div>
<div class="order-field-item__content">{{ data.shipping_user || data.customer_id }}</div>
......
......@@ -25,6 +25,9 @@
<el-form-item label="店铺Logo" prop="shop_logo">
<app-upload-image v-model="ruleForm.shop_logo" accept="image/*" :show-file-list="false"></app-upload-image>
</el-form-item>
<el-form-item label="主体信息" prop="business_entity">
<el-input v-model="ruleForm.business_entity" placeholder="请输入主体信息" maxlength="20"></el-input>
</el-form-item>
<el-form-item label="店铺有效期" prop="end_time">
<el-date-picker
v-model="ruleForm.end_time"
......@@ -69,6 +72,7 @@ export default {
{ max: 20, message: '最多输入20个字符', trigger: 'blur' }
],
shop_logo: [{ required: true, message: '请上传', trigger: 'change' }],
business_entity: [{ required: true, message: '必填', trigger: 'blur' }],
end_time: [{ required: true, message: '请选择', trigger: 'change' }],
shop_desc: [
{ required: true, message: '必填', trigger: 'blur' },
......
......@@ -31,6 +31,9 @@
<el-form-item label="店铺Logo" prop="shop_logo">
<app-upload-image v-model="ruleForm.shop_logo"></app-upload-image>
</el-form-item>
<el-form-item label="主体信息" prop="business_entity">
<el-input v-model="ruleForm.business_entity" placeholder="请输入主体信息" maxlength="20"></el-input>
</el-form-item>
<el-form-item label="店铺有效期" prop="end_time">
<el-date-picker
v-model="ruleForm.end_time"
......@@ -78,6 +81,7 @@ export default {
{ max: 20, message: '最多输入20个字符', trigger: 'blur' }
],
shop_logo: [{ required: true, message: '请上传', trigger: 'change' }],
business_entity: [{ required: true, message: '必填', trigger: 'blur' }],
end_time: [{ required: true, message: '请选择', trigger: 'change' }],
shop_desc: [
{ required: true, message: '必填', trigger: 'blur' },
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论