
43 changed files with 3463 additions and 1486 deletions
@ -0,0 +1,526 @@ |
|||||
|
<template> |
||||
|
<div> |
||||
|
|
||||
|
<div class="tab-header webtop"> |
||||
|
<!-- 标题 --> |
||||
|
<div>商品信息</div> |
||||
|
<!-- start 添加修改按钮 --> |
||||
|
<div> |
||||
|
<el-button type="primary" size="small" :disabled="submitdisabled" @click="saveOrUpdate">保存</el-button> |
||||
|
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button> |
||||
|
</div> |
||||
|
<!-- end 添加修改按钮 --> |
||||
|
<!-- end 详情按钮 --> |
||||
|
</div> |
||||
|
|
||||
|
<div class="listconadd"> |
||||
|
|
||||
|
<el-form ref="form_obj" :model="formobj" class="formaddcopy02"> |
||||
|
<div class="title"> |
||||
|
<div>基础信息</div> |
||||
|
</div> |
||||
|
<el-row class="first_row"> |
||||
|
|
||||
|
<el-col :span="6"> |
||||
|
<div class="span-sty">商品名称</div> |
||||
|
<el-form-item> |
||||
|
<el-input v-model="formobj.goodsName" placeholder="商品名称" class="addinputw addinputInfo" clearable /> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
|
||||
|
<el-col :span="6"> |
||||
|
<div class="span-sty">商品编码</div> |
||||
|
<el-form-item> |
||||
|
<el-input v-model="formobj.goodsCode" placeholder="商品编码" class="addinputw addinputInfo" clearable /> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
|
||||
|
<el-col :span="6"> |
||||
|
<div class="span-sty">商品条形码</div> |
||||
|
<el-form-item> |
||||
|
<el-input v-model="formobj.barCode" placeholder="由系统自动生成" :readonly="true" class="addinputw addinputInfo" |
||||
|
clearable /> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
<el-col :span="6"> |
||||
|
<div class="span-sty">商品拼音缩写</div> |
||||
|
<el-form-item> |
||||
|
<el-input v-model="formobj.goodsPY" placeholder="由系统自动生成" :readonly="true" class="addinputw addinputInfo" |
||||
|
clearable /> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
|
||||
|
</el-row> |
||||
|
|
||||
|
<el-row> |
||||
|
|
||||
|
<el-col :span="6"> |
||||
|
<div class="span-sty">商品单位</div> |
||||
|
<el-form-item> |
||||
|
<el-select v-model="formobj.goodsUnitName" placeholder="请选择商品单位" class="addinputw" |
||||
|
@change="selectunitNameChange"> |
||||
|
<el-option v-for="item in unitNameList" :key="item.sid" :label="item.unitName" :value="item.sid" /> |
||||
|
</el-select> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
|
||||
|
<el-col :span="6"> |
||||
|
<div class="span-sty">商品类别</div> |
||||
|
<el-form-item> |
||||
|
<el-select v-model="formobj.typeName" placeholder="请选择商品类别" class="addinputw" @change="selectCateChange"> |
||||
|
<el-option v-for="item in cateList" :key="item.sid" :label="item.goodsTypeName" :value="item.sid" /> |
||||
|
</el-select> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
|
||||
|
|
||||
|
<el-col :span="6"> |
||||
|
<div class="span-sty">规格</div> |
||||
|
<el-form-item> |
||||
|
<el-input v-model="formobj.shelfLife" placeholder="规格" class="addinputw addinputInfo" clearable /> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
|
||||
|
<el-col :span="6"> |
||||
|
<div class="span-sty">保质期(天)</div> |
||||
|
<el-form-item> |
||||
|
<el-input v-model="formobj.shelfLife" placeholder="保质期(天)" class="addinputw addinputInfo" clearable |
||||
|
oninput="value=value.replace(/^(0+)|[^\d]+/g,'')" /> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
|
||||
|
</el-row> |
||||
|
|
||||
|
<el-row> |
||||
|
|
||||
|
<el-col :span="6"> |
||||
|
<div class="span-sty">商品品牌</div> |
||||
|
<el-form-item> |
||||
|
<el-select v-model="formobj.brandName" placeholder="请选择商品品牌" class="addinputw" |
||||
|
@change="selectBrandChange"> |
||||
|
<el-option v-for="item in brandList" :key="item.sid" :label="item.brandName" :value="item.sid" /> |
||||
|
</el-select> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
|
||||
|
<el-col :span="12"> |
||||
|
<div class="span-sty">商品厂家</div> |
||||
|
<el-form-item> |
||||
|
<el-select v-model="formobj.manufacturerName" placeholder="请选择商品厂家" class="addinputw" |
||||
|
@change="selectfacturerChange"> |
||||
|
<el-option v-for="item in facturerList" :key="item.sid" :label="item.manufacturerName" |
||||
|
:value="item.sid" /> |
||||
|
</el-select> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
|
||||
|
<el-col :span="6"> |
||||
|
<div class="span-sty">原厂标志</div> |
||||
|
<el-form-item> |
||||
|
<el-radio-group v-model="formobj.isListed" size="small" class="addinputw"> |
||||
|
<el-radio :label="'1'">是</el-radio> |
||||
|
<el-radio :label="'2'">否</el-radio> |
||||
|
</el-radio-group> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
|
||||
|
</el-row> |
||||
|
|
||||
|
<el-row> |
||||
|
|
||||
|
<el-col :span="6"> |
||||
|
<div class="span-sty">商品排序</div> |
||||
|
<el-form-item> |
||||
|
<el-input v-model="formobj.sortNo" placeholder="商品排序" class="addinputw addinputInfo" clearable |
||||
|
oninput="value=value.replace(/^(0+)|[^\d]+/g,'')" /> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
|
||||
|
<el-col :span="18"> |
||||
|
<div class="span-sty">商品备注</div> |
||||
|
<el-form-item> |
||||
|
<el-input v-model="formobj.remarks" placeholder="商品备注" class="addinputw addinputInfo" clearable /> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
|
||||
|
</el-row> |
||||
|
|
||||
|
<el-row> |
||||
|
|
||||
|
<el-col :span="16"> |
||||
|
<div class="span-sty">库存上限</div> |
||||
|
<el-form-item> |
||||
|
<el-input v-model="formobj.externalCode" placeholder="库存上限" class="addinputw addinputInfo" clearable |
||||
|
oninput="value=value.replace(/^(0+)|[^\d]+/g,'')" /> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
|
||||
|
<el-col :span="18"> |
||||
|
<div class="span-sty">库存下限</div> |
||||
|
<el-form-item> |
||||
|
<el-input v-model="formobj.nationalStandardCode" placeholder="库存下限" class="addinputw addinputInfo" |
||||
|
clearable oninput="value=value.replace(/^(0+)|[^\d]+/g,'')" /> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
|
||||
|
</el-row> |
||||
|
|
||||
|
<el-row> |
||||
|
|
||||
|
<el-col :span="6"> |
||||
|
<div class="span-sty">锁定销售定价</div> |
||||
|
<el-form-item> |
||||
|
<el-radio-group v-model="itemInfo.isLockingSalesPrice" size="small" class="addinputw"> |
||||
|
<el-radio :label="'1'">是</el-radio> |
||||
|
<el-radio :label="'2'">否</el-radio> |
||||
|
</el-radio-group> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
|
||||
|
<el-col :span="6"> |
||||
|
<div class="span-sty">销售底价</div> |
||||
|
<el-form-item> |
||||
|
<el-input v-model="formobj.nationalStandardCode" placeholder="国标码" class="addinputw addinputInfo" |
||||
|
clearable |
||||
|
oninput="value=value.replace(/[^\d.]/g, '').replace(/\.{2,}/g, '.').replace('.', '$#$').replace(/\./g, '').replace('$#$', '.').replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3').replace(/^\./g, '')" /> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
|
||||
|
<el-col :span="6"> |
||||
|
<div class="span-sty">三包价格</div> |
||||
|
<el-form-item> |
||||
|
<el-input v-model="formobj.externalCode" placeholder="外部编码" class="addinputw addinputInfo" clearable |
||||
|
oninput="value=value.replace(/[^\d.]/g, '').replace(/\.{2,}/g, '.').replace('.', '$#$').replace(/\./g, '').replace('$#$', '.').replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3').replace(/^\./g, '')" /> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
|
||||
|
<el-col :span="6"> |
||||
|
<div class="span-sty">首保价格</div> |
||||
|
<el-form-item> |
||||
|
<el-input v-model="formobj.nationalStandardCode" placeholder="国标码" class="addinputw addinputInfo" |
||||
|
clearable |
||||
|
oninput="value=value.replace(/[^\d.]/g, '').replace(/\.{2,}/g, '.').replace('.', '$#$').replace(/\./g, '').replace('$#$', '.').replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3').replace(/^\./g, '')" /> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
|
||||
|
</el-row> |
||||
|
|
||||
|
<el-row> |
||||
|
|
||||
|
<el-col :span="24"> |
||||
|
<div class="span-sty">规格图片</div> |
||||
|
<el-form-item> |
||||
|
<upload-img ref="uploadImg" class="addinputw addinputInfo" v-model="imgList" :limit="50" bucket="map" |
||||
|
:upload-data="{ type: '0001' }" @change="backData" /> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
|
||||
|
</el-row> |
||||
|
|
||||
|
</el-form> |
||||
|
|
||||
|
</div> |
||||
|
|
||||
|
</div> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
import req from '@/api/goods/goods.js' |
||||
|
import req2 from '@/api/goods/brand.js' |
||||
|
import req3 from '@/api/goods/category.js' |
||||
|
import req4 from '@/api/goods/factory.js' |
||||
|
import req5 from '@/api/goods/unit.js' |
||||
|
import uploadImg from '@/components/uploadFile/uploadImg' |
||||
|
export default { |
||||
|
components: { |
||||
|
uploadImg |
||||
|
}, |
||||
|
data() { |
||||
|
return { |
||||
|
listLoading: false, |
||||
|
activeNames: ['1'], |
||||
|
imgList: [], |
||||
|
submitdisabled: false, |
||||
|
formobj: { |
||||
|
sid: '', |
||||
|
goodsName: "", |
||||
|
goodsCode: "", |
||||
|
brandSid: "", |
||||
|
brand: "", |
||||
|
goodsTypeSid: "", |
||||
|
typeName: "", |
||||
|
manufacturersid: "", |
||||
|
manufacturer: "", |
||||
|
externalCode: '', |
||||
|
factoryCode: '', |
||||
|
taxRate: '', |
||||
|
shelfLife: '', |
||||
|
baseGoodsSpuDetail: { |
||||
|
goodsExplain: "", |
||||
|
goodsDescription: "" |
||||
|
}, |
||||
|
baseGoodsSkus: [] |
||||
|
}, |
||||
|
brandList: [], |
||||
|
cateList: [], |
||||
|
facturerList: [], |
||||
|
unitNameList: [], |
||||
|
hideUploadBtn: false, |
||||
|
dialogVisible: false, |
||||
|
dialogVisible2: false, |
||||
|
dialogVisible3: false, |
||||
|
itemInfo: {}, |
||||
|
orderInfo: {} |
||||
|
} |
||||
|
}, |
||||
|
created() { |
||||
|
this.initData() |
||||
|
}, |
||||
|
methods: { |
||||
|
initData() { |
||||
|
req2.getAllBrand().then(resp => { |
||||
|
this.brandList = resp.data |
||||
|
}) |
||||
|
req3.getAllType().then(resp => { |
||||
|
this.cateList = resp.data |
||||
|
}) |
||||
|
req4.getAllFacturer().then(resp => { |
||||
|
this.facturerList = resp.data |
||||
|
}) |
||||
|
req5.getAllUnit().then(resp => { |
||||
|
this.unitNameList = resp.data |
||||
|
}) |
||||
|
}, |
||||
|
backData(value) { |
||||
|
console.log('backData》》》》', value) |
||||
|
console.log('imgList', this.imgList) |
||||
|
|
||||
|
this.itemInfo.urls = this.imgList |
||||
|
|
||||
|
this.hideUploadBtn = this.imgList.length != 0 |
||||
|
console.log('this.hideUploadBtn', this.hideUploadBtn) |
||||
|
}, |
||||
|
|
||||
|
saveOrUpdate() { |
||||
|
console.log('>>>>>>>>>saveOrUpdate', this.formobj) |
||||
|
req.saveGoods(this.formobj) |
||||
|
.then(resp => { |
||||
|
if (resp.success) { |
||||
|
this.$message({ |
||||
|
showClose: true, |
||||
|
type: 'success', |
||||
|
message: resp.msg |
||||
|
}) |
||||
|
this.handleReturn('true') |
||||
|
} else { |
||||
|
// 根据resp.code进行异常情况处理 |
||||
|
} |
||||
|
}) |
||||
|
.catch(() => {}) |
||||
|
}, |
||||
|
handleReturn(isreload) { |
||||
|
if (isreload === 'true') this.$emit('reloadlist') |
||||
|
this.imgList = [] |
||||
|
this.hideUploadBtn = true |
||||
|
this.formobj = { |
||||
|
sid: '', |
||||
|
brand: "", |
||||
|
brandSid: "", |
||||
|
typeName: "", |
||||
|
goodsTypeSid: "", |
||||
|
manufacturer: "", |
||||
|
manufacturerSid: "", |
||||
|
goodsName: '', |
||||
|
goodsCode: '', |
||||
|
barcode: '', |
||||
|
producer: '', |
||||
|
unit: '', |
||||
|
specification: '', |
||||
|
remarks: '', |
||||
|
baseGoodsSpuDetail: { |
||||
|
goodsExplain: "", |
||||
|
goodsDescription: "" |
||||
|
}, |
||||
|
baseGoodsSkus: [] |
||||
|
} |
||||
|
this.$emit('doback') |
||||
|
}, |
||||
|
showAdd() { |
||||
|
var sid = require('uuid').v1() |
||||
|
console.log('>>>>>>>>>showAdd', sid) |
||||
|
|
||||
|
this.formobj.sid = sid |
||||
|
}, |
||||
|
indexMethod(index) { |
||||
|
return index + 1 |
||||
|
}, |
||||
|
showEdit(row) { |
||||
|
req.initGoods(row.sid) |
||||
|
.then(resp => { |
||||
|
if (resp.success) { |
||||
|
this.formobj = resp.data |
||||
|
} |
||||
|
}) |
||||
|
.catch(e => { |
||||
|
this.formobj = row |
||||
|
}) |
||||
|
}, |
||||
|
selectBrandChange(val) { |
||||
|
const choose = this.brandList.filter((item) => item.sid == val) |
||||
|
console.log('>>>>>>>>>selectBrandChange', choose) |
||||
|
this.formobj.brandSid = choose[0].sid |
||||
|
this.formobj.brandName = choose[0].brandName |
||||
|
}, |
||||
|
selectCateChange(val) { |
||||
|
const choose = this.cateList.filter((item) => item.sid == val) |
||||
|
console.log('>>>>>>>>>selectCateChange', choose) |
||||
|
this.formobj.goodsTypeSid = choose[0].sid |
||||
|
this.formobj.typeName = choose[0].goodsTypeName |
||||
|
}, |
||||
|
selectfacturerChange(val) { |
||||
|
const choose = this.facturerList.filter((item) => item.sid == val) |
||||
|
console.log('>>>>>>>>>selectfacturerChange', choose) |
||||
|
this.formobj.manufacturerSid = choose[0].sid |
||||
|
this.formobj.manufacturerName = choose[0].manufacturerName |
||||
|
}, |
||||
|
selectunitNameChange(val) { |
||||
|
const choose = this.unitNameList.filter((item) => item.sid == val) |
||||
|
console.log('>>>>>>>>>selectunitNameChange', choose) |
||||
|
this.formobj.goodsUnitSid = choose[0].sid |
||||
|
this.formobj.goodsUnitName = choose[0].unitName |
||||
|
}, |
||||
|
editGoodsSku(goodsSku) { |
||||
|
console.log('>>>>>>>>>editGoodsSku', goodsSku) |
||||
|
this.orderInfo = goodsSku |
||||
|
this.dialogVisible3 = true |
||||
|
}, |
||||
|
|
||||
|
showGoodsSkuDttail(goodsSkuDto) { |
||||
|
console.log('>>>>>>>>>showGoodsSkuDttail', goodsSkuDto) |
||||
|
|
||||
|
this.dialogVisible = true |
||||
|
this.itemInfo = goodsSkuDto |
||||
|
}, |
||||
|
|
||||
|
editGoodsSkuDttail(goodsSkuDto) { |
||||
|
console.log('>>>>>>>>>editGoodsSkuDttail', goodsSkuDto) |
||||
|
|
||||
|
this.dialogVisible2 = true |
||||
|
this.itemInfo = goodsSkuDto |
||||
|
this.imgList = goodsSkuDto.urls |
||||
|
}, |
||||
|
|
||||
|
handleClose() { |
||||
|
this.dialogVisible = false |
||||
|
}, |
||||
|
handleClose2() { |
||||
|
this.dialogVisible2 = false |
||||
|
}, |
||||
|
handleClose3() { |
||||
|
this.dialogVisible3 = false |
||||
|
}, |
||||
|
saveGoodsSku() { |
||||
|
|
||||
|
console.log('>>>>>>>>>saveGoodsSkuDttail', this.orderInfo) |
||||
|
|
||||
|
if (this.orderInfo.sid == '') { |
||||
|
this.orderInfo.sid = require('uuid').v1() |
||||
|
this.orderInfo.goodsSpuSid = this.formobj.sid |
||||
|
this.orderInfo.isEnable = '1' |
||||
|
var detail = { |
||||
|
sid: require('uuid').v1(), |
||||
|
isEnable: '1', |
||||
|
goodsSkuSid: this.orderInfo.sid, |
||||
|
finalPurchasePrice: "", |
||||
|
safetyStockDays: "", |
||||
|
isOriginalFactory: "", |
||||
|
isInventoryAlert: "", |
||||
|
inventoryAlertUpperLimit: "", |
||||
|
inventoryAlertLowerLimit: "", |
||||
|
costPrice: "", |
||||
|
tagPrice: "", |
||||
|
salesPrice: "", |
||||
|
standardPurchasePrice: "", |
||||
|
agencyPrice: "", |
||||
|
discount: "", |
||||
|
minimumSalesPrice: "", |
||||
|
isLockingSalesPrice: "", |
||||
|
isIntegralExchange: "", |
||||
|
integralAmount: "", |
||||
|
urls: [], |
||||
|
} |
||||
|
|
||||
|
this.orderInfo.baseGoodsSkuExtend = detail |
||||
|
|
||||
|
this.formobj.baseGoodsSkus.push(this.orderInfo) |
||||
|
|
||||
|
} else { |
||||
|
|
||||
|
var index = this.formobj.baseGoodsSkus.findIndex((item) => item.sid == this.orderInfo.sid) |
||||
|
|
||||
|
if (index > -1) { |
||||
|
|
||||
|
this.formobj.baseGoodsSkus[index].goodsSkuCode = this.orderInfo.goodsSkuCode |
||||
|
this.formobj.baseGoodsSkus[index].title = this.orderInfo.title |
||||
|
this.formobj.baseGoodsSkus[index].externalCode = this.orderInfo.externalCode |
||||
|
|
||||
|
} |
||||
|
|
||||
|
} |
||||
|
|
||||
|
|
||||
|
this.dialogVisible3 = false |
||||
|
}, |
||||
|
saveGoodsSkuDttail() { |
||||
|
|
||||
|
this.itemInfo.urls = this.imgList |
||||
|
|
||||
|
console.log('>>>>>>>>>saveGoodsSkuDttail', this.itemInfo) |
||||
|
|
||||
|
var index = this.formobj.baseGoodsSkus.findIndex((item) => item.baseGoodsSkuExtend.sid == this.itemInfo.sid) |
||||
|
|
||||
|
console.log('>>>>>>>>>saveGoodsSkuDttail', index) |
||||
|
|
||||
|
this.formobj.baseGoodsSkus[index].baseGoodsSkuExtend = this.itemInfo |
||||
|
|
||||
|
console.log('>>>>>>>>>saveGoodsSkuDttail', this.formobj.baseGoodsSkus[index].baseGoodsSkuExtend) |
||||
|
|
||||
|
this.dialogVisible2 = false |
||||
|
}, |
||||
|
addGoodsSku() { |
||||
|
this.dialogVisible3 = true |
||||
|
this.orderInfo = { |
||||
|
sid: '' |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
|
||||
|
} |
||||
|
} |
||||
|
</script> |
||||
|
<style scoped> |
||||
|
.span-sty { |
||||
|
width: 130px !important; |
||||
|
} |
||||
|
|
||||
|
.addinputInfo { |
||||
|
margin-left: 120px !important; |
||||
|
} |
||||
|
|
||||
|
.formaddcopy02 .el-row .el-col /deep/ .el-form-item .addinputw { |
||||
|
margin-left: 120px !important; |
||||
|
width: calc(100% - 115px); |
||||
|
} |
||||
|
|
||||
|
.first_row { |
||||
|
border-top: 1px solid #E0E3EB; |
||||
|
} |
||||
|
|
||||
|
.titleOne { |
||||
|
padding: 7px; |
||||
|
display: flex; |
||||
|
flex-direction: row; |
||||
|
justify-content: space-between; |
||||
|
align-items: center; |
||||
|
} |
||||
|
</style> |
@ -0,0 +1,335 @@ |
|||||
|
template> |
||||
|
<div> |
||||
|
|
||||
|
<div class="tab-header webtop"> |
||||
|
<!-- 标题 --> |
||||
|
<div>商品信息</div> |
||||
|
<!-- start 添加修改按钮 --> |
||||
|
<div> |
||||
|
<el-button type="primary" size="small" :disabled="submitdisabled" @click="saveOrUpdate">保存</el-button> |
||||
|
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button> |
||||
|
</div> |
||||
|
<!-- end 添加修改按钮 --> |
||||
|
<!-- end 详情按钮 --> |
||||
|
</div> |
||||
|
|
||||
|
<div class="listconadd"> |
||||
|
|
||||
|
<el-form ref="form_obj" :model="formobj" class="formaddcopy02"> |
||||
|
<div class="title"> |
||||
|
<div>基础信息</div> |
||||
|
</div> |
||||
|
<el-row class="first_row"> |
||||
|
|
||||
|
<el-col :span="6"> |
||||
|
<div class="span-sty">商品名称</div> |
||||
|
<el-form-item> |
||||
|
<span class="addinputInfo">{{formobj.goodsName}}</span> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
|
||||
|
<el-col :span="6"> |
||||
|
<div class="span-sty">商品编码</div> |
||||
|
<el-form-item> |
||||
|
<span class="addinputInfo">{{formobj.goodsCode}}</span> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
|
||||
|
<el-col :span="6"> |
||||
|
<div class="span-sty">商品条形码</div> |
||||
|
<el-form-item> |
||||
|
<span class="addinputInfo">{{formobj.barCode}}</span> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
<el-col :span="6"> |
||||
|
<div class="span-sty">商品拼音缩写</div> |
||||
|
<el-form-item> |
||||
|
<span class="addinputInfo">{{formobj.goodsPY}}</span> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
|
||||
|
</el-row> |
||||
|
|
||||
|
<el-row> |
||||
|
|
||||
|
<el-col :span="6"> |
||||
|
<div class="span-sty">商品单位</div> |
||||
|
<el-form-item> |
||||
|
<span class="addinputInfo">{{formobj.goodsUnitName}}</span> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
|
||||
|
<el-col :span="6"> |
||||
|
<div class="span-sty">商品类别</div> |
||||
|
<el-form-item> |
||||
|
<span class="addinputInfo">{{formobj.typeName}}</span> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
|
||||
|
<el-col :span="6"> |
||||
|
<div class="span-sty">规格</div> |
||||
|
<el-form-item> |
||||
|
<span class="addinputInfo">{{formobj.shelfLife}}</span> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
|
||||
|
<el-col :span="6"> |
||||
|
<div class="span-sty">保质期(天)</div> |
||||
|
<el-form-item> |
||||
|
<span class="addinputInfo">{{formobj.shelfLife}}</span> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
|
||||
|
</el-row> |
||||
|
|
||||
|
<el-row> |
||||
|
|
||||
|
<el-col :span="6"> |
||||
|
<div class="span-sty">商品品牌</div> |
||||
|
<el-form-item> |
||||
|
<span class="addinputInfo">{{formobj.brandName}}</span> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
|
||||
|
<el-col :span="12"> |
||||
|
<div class="span-sty">商品厂家</div> |
||||
|
<el-form-item> |
||||
|
<span class="addinputInfo">{{formobj.manufacturerName}}</span> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
|
||||
|
<el-col :span="6"> |
||||
|
<div class="span-sty">原厂标志</div> |
||||
|
<el-form-item> |
||||
|
<el-radio-group v-model="formobj.isListed" :disabled="true" size="small" class="addinputw"> |
||||
|
<el-radio :label="'1'">是</el-radio> |
||||
|
<el-radio :label="'2'">否</el-radio> |
||||
|
</el-radio-group> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
|
||||
|
</el-row> |
||||
|
|
||||
|
<el-row> |
||||
|
|
||||
|
<el-col :span="6"> |
||||
|
<div class="span-sty">商品排序</div> |
||||
|
<el-form-item> |
||||
|
<span class="addinputInfo">{{formobj.sortNo}}</span> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
|
||||
|
<el-col :span="18"> |
||||
|
<div class="span-sty">商品备注</div> |
||||
|
<el-form-item> |
||||
|
<span class="addinputInfo">{{formobj.remarks}}</span> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
|
||||
|
</el-row> |
||||
|
|
||||
|
<el-row> |
||||
|
|
||||
|
<el-col :span="16"> |
||||
|
<div class="span-sty">库存上限</div> |
||||
|
<el-form-item> |
||||
|
<span class="addinputInfo">{{formobj.externalCode}}</span> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
|
||||
|
<el-col :span="18"> |
||||
|
<div class="span-sty">库存下限</div> |
||||
|
<el-form-item> |
||||
|
<span class="addinputInfo">{{formobj.nationalStandardCode}}</span> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
|
||||
|
</el-row> |
||||
|
|
||||
|
<el-row> |
||||
|
|
||||
|
<el-col :span="6"> |
||||
|
<div class="span-sty">锁定销售定价</div> |
||||
|
<el-form-item> |
||||
|
<el-radio-group v-model="itemInfo.isLockingSalesPrice" :disabled="true" size="small" class="addinputw"> |
||||
|
<el-radio :label="'1'">是</el-radio> |
||||
|
<el-radio :label="'2'">否</el-radio> |
||||
|
</el-radio-group> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
|
||||
|
<el-col :span="6"> |
||||
|
<div class="span-sty">销售底价</div> |
||||
|
<el-form-item> |
||||
|
<span class="addinputInfo">{{formobj.nationalStandardCode}}</span> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
|
||||
|
<el-col :span="6"> |
||||
|
<div class="span-sty">三包价格</div> |
||||
|
<el-form-item> |
||||
|
<span class="addinputInfo">{{formobj.externalCode}}</span> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
|
||||
|
<el-col :span="6"> |
||||
|
<div class="span-sty">首保价格</div> |
||||
|
<el-form-item> |
||||
|
<span class="addinputInfo">{{formobj.nationalStandardCode}}</span> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
|
||||
|
</el-row> |
||||
|
|
||||
|
<el-row> |
||||
|
|
||||
|
<el-col :span="24"> |
||||
|
<div class="span-sty">规格图片</div> |
||||
|
<el-form-item> |
||||
|
<template slot-scope="scope"> |
||||
|
<span v-for="(item,index) in itemInfo.urls" :key="index" class="addinputInfo"> |
||||
|
<el-popover placement="left" trigger="click" width="300"> |
||||
|
<img :src="item.url" width="100%" /> |
||||
|
<img slot="reference" :src="item.url" :alt="item.url" |
||||
|
style="max-height: 70px;max-width: 70px; padding: 5px" /> |
||||
|
</el-popover> |
||||
|
</span> |
||||
|
</template> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
|
||||
|
</el-row> |
||||
|
|
||||
|
</el-form> |
||||
|
|
||||
|
</div> |
||||
|
|
||||
|
</div> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
import req from '@/api/goods/goods.js' |
||||
|
export default { |
||||
|
data() { |
||||
|
return { |
||||
|
listLoading: false, |
||||
|
activeNames: ['1'], |
||||
|
imgList: [], |
||||
|
submitdisabled: false, |
||||
|
formobj: { |
||||
|
sid: '', |
||||
|
goodsName: "", |
||||
|
goodsCode: "", |
||||
|
brandSid: "", |
||||
|
brand: "", |
||||
|
goodsTypeSid: "", |
||||
|
typeName: "", |
||||
|
manufacturersid: "", |
||||
|
manufacturer: "", |
||||
|
externalCode: '', |
||||
|
factoryCode: '', |
||||
|
taxRate: '', |
||||
|
shelfLife: '', |
||||
|
baseGoodsSpuDetail: { |
||||
|
goodsExplain: "", |
||||
|
goodsDescription: "" |
||||
|
}, |
||||
|
baseGoodsSkuDtos: [] |
||||
|
}, |
||||
|
hideUploadBtn: false, |
||||
|
dialogVisible: false, |
||||
|
dialogVisible2: false, |
||||
|
itemInfo: {}, |
||||
|
orderInfo: {} |
||||
|
} |
||||
|
}, |
||||
|
created() {}, |
||||
|
methods: { |
||||
|
|
||||
|
handleReturn(isreload) { |
||||
|
if (isreload === 'true') this.$emit('reloadlist') |
||||
|
this.imgList = [] |
||||
|
this.hideUploadBtn = true |
||||
|
this.formobj = { |
||||
|
sid: '', |
||||
|
brand: "", |
||||
|
brandSid: "", |
||||
|
typeName: "", |
||||
|
goodsTypeSid: "", |
||||
|
manufacturer: "", |
||||
|
manufacturerSid: "", |
||||
|
goodsName: '', |
||||
|
goodsCode: '', |
||||
|
barcode: '', |
||||
|
producer: '', |
||||
|
unit: '', |
||||
|
specification: '', |
||||
|
remarks: '', |
||||
|
baseGoodsSpuDetail: { |
||||
|
goodsExplain: "", |
||||
|
goodsDescription: "" |
||||
|
}, |
||||
|
baseGoodsSku: [] |
||||
|
} |
||||
|
this.$emit('doback') |
||||
|
}, |
||||
|
showAdd() {}, |
||||
|
indexMethod(index) { |
||||
|
return index + 1 |
||||
|
}, |
||||
|
showEdit(row) { |
||||
|
req.initGoods(row.sid) |
||||
|
.then(resp => { |
||||
|
if (resp.success) { |
||||
|
this.formobj = resp.data |
||||
|
} |
||||
|
}) |
||||
|
.catch(e => { |
||||
|
this.formobj = row |
||||
|
}) |
||||
|
}, |
||||
|
|
||||
|
showGoodsSkuDttail(goodsSkuDto) { |
||||
|
console.log('>>>>>>>>>showGoodsSkuDttail', goodsSkuDto) |
||||
|
|
||||
|
this.dialogVisible = true |
||||
|
this.itemInfo = goodsSkuDto |
||||
|
}, |
||||
|
|
||||
|
handleClose() { |
||||
|
this.dialogVisible = false |
||||
|
}, |
||||
|
handleClose2() { |
||||
|
this.dialogVisible2 = false |
||||
|
}, |
||||
|
|
||||
|
|
||||
|
} |
||||
|
} |
||||
|
</script> |
||||
|
<style scoped> |
||||
|
.span-sty { |
||||
|
width: 130px !important; |
||||
|
} |
||||
|
|
||||
|
.addinputInfo { |
||||
|
margin-left: 120px !important; |
||||
|
} |
||||
|
|
||||
|
.formaddcopy02 .el-row .el-col /deep/ .el-form-item .addinputw { |
||||
|
margin-left: 120px !important; |
||||
|
width: calc(100% - 115px); |
||||
|
} |
||||
|
|
||||
|
.first_row { |
||||
|
border-top: 1px solid #E0E3EB; |
||||
|
} |
||||
|
|
||||
|
.titleOne { |
||||
|
padding: 7px; |
||||
|
display: flex; |
||||
|
flex-direction: row; |
||||
|
justify-content: space-between; |
||||
|
align-items: center; |
||||
|
} |
||||
|
</style> |
@ -0,0 +1,265 @@ |
|||||
|
<template> |
||||
|
<div> |
||||
|
|
||||
|
<div class="tab-header webtop"> |
||||
|
<!-- 标题 --> |
||||
|
<div>仓库信息</div> |
||||
|
<!-- start 添加修改按钮 --> |
||||
|
<div> |
||||
|
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button> |
||||
|
</div> |
||||
|
<!-- end 添加修改按钮 --> |
||||
|
<!-- end 详情按钮 --> |
||||
|
</div> |
||||
|
|
||||
|
<div class="listconadd"> |
||||
|
|
||||
|
<el-form ref="form_obj" :model="formobj" class="formaddcopy02"> |
||||
|
|
||||
|
<el-row class="first_row"> |
||||
|
|
||||
|
<el-col :span="8"> |
||||
|
<div class="span-sty">仓库编码</div> |
||||
|
<el-form-item> |
||||
|
<span class="addinputInfo">{{formobj.warehouseCode}}</span> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
|
||||
|
<el-col :span="16"> |
||||
|
<div class="span-sty">仓库名称</div> |
||||
|
<el-form-item> |
||||
|
<span class="addinputInfo">{{formobj.warehouseName}}</span> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
|
||||
|
</el-row> |
||||
|
|
||||
|
<el-row > |
||||
|
|
||||
|
<el-col :span="8"> |
||||
|
<div class="span-sty">仓库类型</div> |
||||
|
<el-form-item> |
||||
|
<span class="addinputInfo">{{formobj.warehouseTypeValue}}</span> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
|
||||
|
<el-col :span="8"> |
||||
|
<div class="span-sty">仓库面积</div> |
||||
|
<el-form-item> |
||||
|
<span class="addinputInfo">{{formobj.squareMeter}}</span> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
|
||||
|
<el-col :span="8"> |
||||
|
<div class="span-sty">仓库管理员</div> |
||||
|
<el-form-item> |
||||
|
<span class="addinputInfo">{{formobj.manager}}</span> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
|
||||
|
</el-row> |
||||
|
|
||||
|
<el-row > |
||||
|
|
||||
|
<el-col :span="24"> |
||||
|
<div class="span-sty">仓库地址</div> |
||||
|
<el-form-item> |
||||
|
<span class="addinputInfo">{{formobj.address}}</span> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
|
||||
|
</el-row> |
||||
|
|
||||
|
<el-row > |
||||
|
|
||||
|
<el-col :span="8"> |
||||
|
<div class="span-sty">经度</div> |
||||
|
<el-form-item> |
||||
|
<span class="addinputInfo">{{formobj.longitude}}</span> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
|
||||
|
<el-col :span="16"> |
||||
|
<div class="span-sty">纬度</div> |
||||
|
<el-form-item> |
||||
|
<span class="addinputInfo">{{formobj.latitude}}</span> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
|
||||
|
</el-row> |
||||
|
|
||||
|
<el-row > |
||||
|
|
||||
|
<el-col :span="8"> |
||||
|
<div class="span-sty">联系人</div> |
||||
|
<el-form-item> |
||||
|
<span class="addinputInfo">{{formobj.contacts}}</span> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
|
||||
|
<el-col :span="8"> |
||||
|
<div class="span-sty">手机号码</div> |
||||
|
<el-form-item> |
||||
|
<span class="addinputInfo">{{formobj.mob}}</span> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
|
||||
|
<el-col :span="8"> |
||||
|
<div class="span-sty">联系电话</div> |
||||
|
<el-form-item> |
||||
|
<span class="addinputInfo">{{formobj.telephone}}</span> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
|
||||
|
</el-row> |
||||
|
|
||||
|
<el-row > |
||||
|
|
||||
|
<el-col :span="8"> |
||||
|
<div class="span-sty">排序</div> |
||||
|
<el-form-item> |
||||
|
<span class="addinputInfo">{{formobj.sortNo}}</span> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
|
||||
|
<el-col :span="16"> |
||||
|
<div class="span-sty">使用状态</div> |
||||
|
<el-form-item> |
||||
|
<el-radio-group v-model="formobj.usageStatus" size="small" :disabled='true' class="addinputw addinputInfo"> |
||||
|
<el-radio :label="'1'">正常</el-radio> |
||||
|
<el-radio :label="'0'">停用</el-radio> |
||||
|
</el-radio-group> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
|
||||
|
</el-row> |
||||
|
|
||||
|
<el-row > |
||||
|
|
||||
|
<el-col :span="24"> |
||||
|
<div class="span-sty">备注</div> |
||||
|
<el-form-item> |
||||
|
<span class="addinputInfo">{{formobj.remarks}}</span> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
|
||||
|
</el-row> |
||||
|
|
||||
|
</el-form> |
||||
|
|
||||
|
</div> |
||||
|
|
||||
|
</div> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
import req from '@/api/warehouse/warehouse.js' |
||||
|
export default { |
||||
|
components: {}, |
||||
|
data() { |
||||
|
return { |
||||
|
submitdisabled: false, |
||||
|
formobj: { |
||||
|
sid: '', |
||||
|
warehouseName: '', |
||||
|
warehouseCode: '', |
||||
|
contacts: "", |
||||
|
mob: "", |
||||
|
telephone: "", |
||||
|
manager: '', |
||||
|
longitude: '', |
||||
|
latitude: '', |
||||
|
usageStatus: "", |
||||
|
address: '', |
||||
|
squareMeter: '', |
||||
|
sortNo: '', |
||||
|
remarks: '', |
||||
|
warehouseType: "0" |
||||
|
}, |
||||
|
} |
||||
|
}, |
||||
|
created() {}, |
||||
|
methods: { |
||||
|
changeTheme(val) { |
||||
|
|
||||
|
}, |
||||
|
saveOrUpdate() { |
||||
|
console.log('>>>>>>>>>saveOrUpdate', this.formobj) |
||||
|
req.saveWarehouse(this.formobj) |
||||
|
.then(resp => { |
||||
|
if (resp.success) { |
||||
|
this.$message({ |
||||
|
showClose: true, |
||||
|
type: 'success', |
||||
|
message: resp.msg |
||||
|
}) |
||||
|
this.handleReturn('true') |
||||
|
} else { |
||||
|
// 根据resp.code进行异常情况处理 |
||||
|
} |
||||
|
}) |
||||
|
.catch(() => {}) |
||||
|
}, |
||||
|
handleReturn(isreload) { |
||||
|
if (isreload === 'true') this.$emit('reloadlist') |
||||
|
this.formobj = { |
||||
|
sid: '', |
||||
|
warehouseName: '', |
||||
|
warehouseCode: '', |
||||
|
contacts: "", |
||||
|
mob: "", |
||||
|
telephone: "", |
||||
|
manager: '', |
||||
|
longitude: '', |
||||
|
latitude: '', |
||||
|
usageStatus: "", |
||||
|
address: '', |
||||
|
squareMeter: '', |
||||
|
sortNo: '', |
||||
|
remarks: '', |
||||
|
warehouseType: "0" |
||||
|
} |
||||
|
this.$emit('doback') |
||||
|
}, |
||||
|
showAdd() {}, |
||||
|
showEdit(row) { |
||||
|
req.initWarehouse(row.sid) |
||||
|
.then(resp => { |
||||
|
if (resp.success) { |
||||
|
this.formobj = resp.data |
||||
|
} |
||||
|
}) |
||||
|
.catch(e => { |
||||
|
this.formobj = row |
||||
|
}) |
||||
|
}, |
||||
|
|
||||
|
} |
||||
|
} |
||||
|
</script> |
||||
|
<style scoped> |
||||
|
.span-sty { |
||||
|
width: 130px !important; |
||||
|
} |
||||
|
|
||||
|
.addinputInfo { |
||||
|
margin-left: 120px !important; |
||||
|
} |
||||
|
|
||||
|
.formaddcopy02 .el-row .el-col /deep/ .el-form-item .addinputw { |
||||
|
margin-left: 120px !important; |
||||
|
width: calc(100% - 115px); |
||||
|
} |
||||
|
|
||||
|
.first_row { |
||||
|
border-top: 1px solid #E0E3EB; |
||||
|
} |
||||
|
|
||||
|
.titleOne { |
||||
|
padding: 7px; |
||||
|
display: flex; |
||||
|
flex-direction: row; |
||||
|
justify-content: space-between; |
||||
|
align-items: center; |
||||
|
} |
||||
|
</style> |
@ -0,0 +1,22 @@ |
|||||
|
package com.yxt.wms.utils; |
||||
|
|
||||
|
import io.swagger.annotations.ApiModelProperty; |
||||
|
import lombok.Data; |
||||
|
|
||||
|
import java.io.Serializable; |
||||
|
|
||||
|
/** |
||||
|
* @Author dimengzhe |
||||
|
* @Date 2022/7/1 9:46 |
||||
|
* @Description |
||||
|
*/ |
||||
|
@Data |
||||
|
public class BillNo implements Serializable { |
||||
|
private static final long serialVersionUID = 1598887042562656350L; |
||||
|
|
||||
|
@ApiModelProperty(value = "单据名称首字母") |
||||
|
private String billType; |
||||
|
@ApiModelProperty(value = "分公司编码") |
||||
|
private String orgCode; |
||||
|
|
||||
|
} |
Loading…
Reference in new issue