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