7 changed files with 818 additions and 170 deletions
@ -0,0 +1,280 @@ |
|||||
|
<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" :rules="rules" class="formaddcopy02"> |
||||
|
<!-- <div class="title"> |
||||
|
<div>基础信息</div> |
||||
|
</div> --> |
||||
|
<el-row class="first_row"> |
||||
|
<el-col :span="8"> |
||||
|
<div class="span-sty"><span class="must">*</span> 入库日期</div> |
||||
|
<el-form-item prop="storageTime"> <el-date-picker v-model="formobj.storageTime" type="date" |
||||
|
class="addinputw addinputInfo" value-format="yyyy-MM-dd" placeholder="选择日期"> |
||||
|
</el-date-picker></el-form-item> |
||||
|
</el-col> |
||||
|
<el-col :span="16"> |
||||
|
<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> |
||||
|
|
||||
|
<div class="title titleOne"> |
||||
|
<div>商品列表</div> |
||||
|
</div> |
||||
|
<el-table v-loading="listLoading" :data="formobj.list" border style="width: 100%;"> |
||||
|
<el-table-column fixed width="60" label="序号" type="index" :index="indexMethod" align="center" /> |
||||
|
<el-table-column fixed label="操作" align="center" width="80"> |
||||
|
<template slot-scope="scope"> |
||||
|
<el-button type="primary" size="mini" @click="toDelGoods(scope.$index)">删除</el-button> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
<el-table-column fixed label="商品名称" prop="goodsSkuTitle" align="center" /> |
||||
|
<el-table-column label="商品编码" prop="goodsSkuCode" align="center" /> |
||||
|
<el-table-column label="规格" prop="goodsSkuOwnSpec" align="center" /> |
||||
|
<el-table-column label="单位" prop="unit" align="center" /> |
||||
|
<el-table-column label="成本单价" align="center" width="150"> |
||||
|
<template slot-scope="scope"> |
||||
|
<el-input ref="focusAssumptionInput" @input="commodityComputeYHAndXSJE1(scope.row)" |
||||
|
v-model="scope.row.price" clearable placeholder="" |
||||
|
oninput="value=value.replace(/[^\d.]/g, '').replace(/\.{2,}/g, '.').replace('.', '$#$').replace(/\./g, '').replace('$#$', '.').replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3').replace(/^\./g, '')" /> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
<el-table-column label="总价" prop="totalPrice" align="center" /> |
||||
|
<el-table-column label="预约单号" prop="yyCode" align="center" /> |
||||
|
<el-table-column label="预约数量" prop="orderCount" align="center" /> |
||||
|
<el-table-column label="可入库数量" prop="waitInCount" align="center" /> |
||||
|
<el-table-column label="入库数量" align="center" width="120"> |
||||
|
<template slot-scope="scope"> |
||||
|
<el-input ref="focusAssumptionInput" @input="commodityComputeYHAndXSJE2(scope.row)" |
||||
|
v-model="scope.row.count" clearable placeholder="" oninput="value=value.replace(/^(0+)|[^\d]+/g,'')" /> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
<el-table-column label="生产批次号" prop="batch" align="center" /> |
||||
|
<el-table-column label="入库库位" align="center" width="180"> |
||||
|
<template slot-scope="scope"> |
||||
|
<el-select v-model="scope.row.warehouseRackCode" clearable placeholder="请选择" |
||||
|
@focus="getWarehouseAreaList(scope.row.warehouseSid)" |
||||
|
@change="selectWarehouseAreaCode(scope.row,$event)"> |
||||
|
<el-option v-for="(item,i) in warehouseRackList" :key="i" :label="item.rackCode" :value="item.sid"> |
||||
|
</el-option> |
||||
|
</el-select> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
<el-table-column label="明细备注" align="center" width="180"> |
||||
|
<template slot-scope="scope"> |
||||
|
<el-input ref="focusAssumptionInput" v-model="scope.row.remarks" clearable placeholder="" /> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
</el-table> |
||||
|
|
||||
|
</el-form> |
||||
|
|
||||
|
</div> |
||||
|
|
||||
|
|
||||
|
</div> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
import req from '@/api/inStorage/receivingGoods.js' |
||||
|
import { |
||||
|
getWarehouserack, |
||||
|
} from '@/api/Common/dictcommons' |
||||
|
export default { |
||||
|
components: {}, |
||||
|
data() { |
||||
|
return { |
||||
|
listLoading: false, |
||||
|
submitdisabled: false, |
||||
|
formobj: { |
||||
|
useOrgSid: window.sessionStorage.getItem('orgSid'), |
||||
|
createOrgSid: window.sessionStorage.getItem('orgSid'), |
||||
|
userSid: window.sessionStorage.getItem('userSid'), |
||||
|
storageTime: "", |
||||
|
remarks: "", |
||||
|
list: [] |
||||
|
}, |
||||
|
rules: { |
||||
|
storageTime: [{ |
||||
|
required: true, |
||||
|
message: '入库日期不能为空', |
||||
|
trigger: 'change' |
||||
|
}], |
||||
|
}, |
||||
|
warehouseRackList: [] |
||||
|
} |
||||
|
}, |
||||
|
methods: { |
||||
|
indexMethod(index) { |
||||
|
return index + 1 |
||||
|
}, |
||||
|
|
||||
|
handleReturn(isreload) { |
||||
|
if (isreload === 'true') this.$emit('reloadlist') |
||||
|
this.formobj = { |
||||
|
useOrgSid: window.sessionStorage.getItem('orgSid'), |
||||
|
createOrgSid: window.sessionStorage.getItem('orgSid'), |
||||
|
userSid: window.sessionStorage.getItem('userSid'), |
||||
|
storageTime: "", |
||||
|
remarks: "", |
||||
|
list: [] |
||||
|
} |
||||
|
this.submitdisabled = false |
||||
|
this.$emit('doback') |
||||
|
}, |
||||
|
|
||||
|
showEdit(goodsList) { |
||||
|
this.$nextTick(() => { |
||||
|
this.$refs['form_obj'].clearValidate() |
||||
|
}) |
||||
|
|
||||
|
this.formobj.list = JSON.parse(JSON.stringify(goodsList)) |
||||
|
|
||||
|
}, |
||||
|
toDelGoods(index) { |
||||
|
this.formobj.list.splice(index, 1) |
||||
|
}, |
||||
|
commodityComputeYHAndXSJE1(row) { |
||||
|
|
||||
|
row.totalPrice = (Number(row.price) * Number(row.orderCount)).toFixed(2) |
||||
|
|
||||
|
}, |
||||
|
commodityComputeYHAndXSJE2(row) { |
||||
|
|
||||
|
if (Number(row.count) > Number(row.waitInCount)) { |
||||
|
row.count = Number(row.waitInCount) |
||||
|
} |
||||
|
|
||||
|
}, |
||||
|
getWarehouseAreaList(sid) { |
||||
|
var query = { |
||||
|
ckSid: sid |
||||
|
} |
||||
|
getWarehouserack(query).then((res) => { |
||||
|
if (res.success) { |
||||
|
this.warehouseRackList = res.data |
||||
|
} |
||||
|
}) |
||||
|
}, |
||||
|
selectWarehouseAreaCode(row, val) { |
||||
|
console.log("selectWarehouseAreaCode", val); |
||||
|
|
||||
|
const choose = this.warehouseRackList.filter((item) => item.sid == val) |
||||
|
console.log('>>>>>>>>>selectWarehouseAreaCode', choose) |
||||
|
row.warehouseRackCode = choose[0].rackCode |
||||
|
row.warehouseRackSid = choose[0].sid |
||||
|
|
||||
|
}, |
||||
|
saveOrUpdate() { |
||||
|
console.log('>>>>>>>>>saveOrUpdate', this.formobj) |
||||
|
|
||||
|
|
||||
|
this.$refs['form_obj'].validate((valid) => { |
||||
|
if (valid) { |
||||
|
|
||||
|
for (var i = this.formobj.list.length - 1; i >= 0; i--) { |
||||
|
|
||||
|
var item = this.formobj.list[i] |
||||
|
|
||||
|
if (Number(item.price) == 0) { |
||||
|
this.$message({ |
||||
|
showClose: true, |
||||
|
type: 'warning', |
||||
|
message: '商品单价不能为0' |
||||
|
}) |
||||
|
return |
||||
|
|
||||
|
} |
||||
|
if (Number(item.count) == 0) { |
||||
|
this.$message({ |
||||
|
showClose: true, |
||||
|
type: 'warning', |
||||
|
message: '商品入库数量不能为0' |
||||
|
}) |
||||
|
return |
||||
|
|
||||
|
} |
||||
|
|
||||
|
if (item.warehouseRackSid == '' || item.warehouseRackCode == '') { |
||||
|
this.$message({ |
||||
|
showClose: true, |
||||
|
type: 'warning', |
||||
|
message: '商品入库库位不能为空' |
||||
|
}) |
||||
|
return |
||||
|
|
||||
|
} |
||||
|
} |
||||
|
|
||||
|
|
||||
|
req.createInStorageBill(this.formobj).then((res) => { |
||||
|
if (res.success) { |
||||
|
this.$message({ |
||||
|
showClose: true, |
||||
|
type: 'success', |
||||
|
message: '保存成功' |
||||
|
}) |
||||
|
this.handleReturn('true') |
||||
|
} else { |
||||
|
this.submitdisabled = false |
||||
|
} |
||||
|
}).catch(() => { |
||||
|
this.submitdisabled = false |
||||
|
}) |
||||
|
} |
||||
|
}) |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
} |
||||
|
</script> |
||||
|
<style scoped> |
||||
|
/deep/ .el-form-item__error { |
||||
|
margin-left: 120px !important; |
||||
|
} |
||||
|
|
||||
|
.must { |
||||
|
color: #f00; |
||||
|
} |
||||
|
|
||||
|
.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,181 @@ |
|||||
|
<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"> |
||||
|
<!-- <div class="title"> |
||||
|
<div>基础信息</div> |
||||
|
</div> --> |
||||
|
<el-row class="first_row"> |
||||
|
<el-col :span="8"> |
||||
|
<div class="span-sty">操作人</div> |
||||
|
<el-form-item><span class="addinputInfo">{{ formobj.operatorName }}</span></el-form-item> |
||||
|
</el-col> |
||||
|
<el-col :span="8"> |
||||
|
<div class="span-sty">操作时间</div> |
||||
|
<el-form-item><span class="addinputInfo">{{ formobj.operatorTime }}</span></el-form-item> |
||||
|
</el-col> |
||||
|
|
||||
|
<el-col :span="8"> |
||||
|
<div class="span-sty">入库时间</div> |
||||
|
<el-form-item><span class="addinputInfo">{{ formobj.storageTime }}</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.billNo }}</span></el-form-item> |
||||
|
</el-col> |
||||
|
|
||||
|
<el-col :span="8"> |
||||
|
<div class="span-sty">预约单号</div> |
||||
|
<el-form-item><span class="addinputInfo">{{ formobj.sourceBillNo }}</span></el-form-item> |
||||
|
</el-col> |
||||
|
<el-col :span="8"> |
||||
|
<div class="span-sty">入库仓库</div> |
||||
|
<el-form-item><span class="addinputInfo">{{ formobj.supplierName }}</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.supplierName }}</span></el-form-item> |
||||
|
</el-col> |
||||
|
<el-col :span="8"> |
||||
|
<div class="span-sty">承运商</div> |
||||
|
<el-form-item><span class="addinputInfo">{{ formobj.carrier }}</span></el-form-item> |
||||
|
</el-col> |
||||
|
<el-col :span="8"> |
||||
|
<div class="span-sty">运单号</div> |
||||
|
<el-form-item><span class="addinputInfo">{{ formobj.waybillNumber }}</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.billState }}</span></el-form-item> |
||||
|
</el-col> |
||||
|
<el-col :span="16"> |
||||
|
<div class="span-sty">备注</div> |
||||
|
<el-form-item><span class="addinputInfo">{{formobj.remarks}}</span></el-form-item> |
||||
|
</el-col> |
||||
|
|
||||
|
</el-row> |
||||
|
|
||||
|
<div class="title titleOne"> |
||||
|
<div>商品列表</div> |
||||
|
</div> |
||||
|
<el-table v-loading="listLoading" :data="formobj.list" border style="width: 100%;"> |
||||
|
<el-table-column fixed width="60" label="序号" type="index" :index="indexMethod" align="center" /> |
||||
|
<el-table-column fixed label="商品名称" prop="goodsName" align="center" /> |
||||
|
<el-table-column label="商品编码" prop="goodsCode" align="center" /> |
||||
|
<el-table-column label="规格" prop="specValue" align="center" /> |
||||
|
<el-table-column label="单位" prop="unitName" align="center" /> |
||||
|
<el-table-column label="成本单价" prop="price" align="center" /> |
||||
|
<el-table-column label="总价" prop="totalPrice" align="center" /> |
||||
|
<el-table-column label="数量" prop="count" align="center" /> |
||||
|
<el-table-column label="生产批次号" prop="batchNumber" align="center" /> |
||||
|
<el-table-column label="入库库位" prop="warehouseRackName" align="center" /> |
||||
|
<el-table-column label="明细备注" prop="remarks" align="center" /> |
||||
|
</el-table> |
||||
|
|
||||
|
</el-form> |
||||
|
|
||||
|
</div> |
||||
|
|
||||
|
|
||||
|
</div> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
import req from '@/api/inStorage/receivingGoods.js' |
||||
|
|
||||
|
export default { |
||||
|
components: {}, |
||||
|
data() { |
||||
|
return { |
||||
|
listLoading: false, |
||||
|
submitdisabled: false, |
||||
|
formobj: {}, |
||||
|
} |
||||
|
}, |
||||
|
methods: { |
||||
|
indexMethod(index) { |
||||
|
return index + 1 |
||||
|
}, |
||||
|
|
||||
|
handleReturn(isreload) { |
||||
|
if (isreload === 'true') this.$emit('reloadlist') |
||||
|
this.$emit('doback') |
||||
|
}, |
||||
|
|
||||
|
showAdd(row) { |
||||
|
var params = { |
||||
|
sid: row.sid |
||||
|
} |
||||
|
req.selectByBillSid(row.sid) |
||||
|
.then(resp => { |
||||
|
if (resp.success) { |
||||
|
this.formobj = resp.data |
||||
|
} |
||||
|
}) |
||||
|
.catch(e => { |
||||
|
this.formobj = {} |
||||
|
}) |
||||
|
}, |
||||
|
} |
||||
|
} |
||||
|
</script> |
||||
|
<style scoped> |
||||
|
/deep/ .el-form-item__error { |
||||
|
margin-left: 120px !important; |
||||
|
} |
||||
|
|
||||
|
.must { |
||||
|
color: #f00; |
||||
|
} |
||||
|
|
||||
|
.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> |
Loading…
Reference in new issue