You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
864 lines
28 KiB
864 lines
28 KiB
<template> |
|
<el-dialog |
|
title="新增其他出库" |
|
append-to-body |
|
:modelValue="openShow" |
|
width="70%" |
|
@close="closeDialog" |
|
fullscreen |
|
> |
|
<el-form ref="form" :model="stOtherOutRecord" :rules="rules" label-width="100px"> |
|
<el-row> |
|
<el-col :span="6"> |
|
<el-form-item label="出库原因" prop="outType"> |
|
<el-select |
|
v-model="stOtherOutRecord.outType" |
|
@change="changeUseType" |
|
class="item-choose" |
|
> |
|
<el-option |
|
v-for="(item, index) in useTypeOptions" |
|
:key="index" |
|
:label="item.label" |
|
:value="item.value" |
|
/> |
|
</el-select> |
|
</el-form-item> |
|
</el-col> |
|
<el-col :span="6"> |
|
<el-form-item label="出库仓库" prop="shId"> |
|
<el-select |
|
v-model="stOtherOutRecord.shId" |
|
@change="storeHouseChange" |
|
class="item-choose" |
|
> |
|
<el-option |
|
v-for="(item, index) in wareList" |
|
:key="item.id" |
|
:label="item.shName" |
|
:value="item.id" |
|
/> |
|
</el-select> |
|
</el-form-item> |
|
</el-col> |
|
<el-col :span="6"> |
|
<el-form-item label="领料人员" prop="picker"> |
|
<el-select v-model="stOtherOutRecord.picker" filterable class="item-choose"> |
|
<el-option |
|
v-for="(item, index) in userData" |
|
:key="item.id" |
|
:label="`${item.realName}(${item.workNo})`" |
|
:value="item.id" |
|
/> |
|
</el-select> |
|
</el-form-item> |
|
</el-col> |
|
<el-col :span="6"> |
|
<el-form-item label="工装编号" prop="mid"> |
|
<el-select v-model="stOtherOutRecord.mid" value-key="id" filterable class="item-choose"> |
|
<el-option |
|
v-for="item in treeData" |
|
:key="item.mid" |
|
:label="item.toolingCode" |
|
:value="item.mid" |
|
/> |
|
</el-select> |
|
</el-form-item> |
|
</el-col> |
|
<el-col :span="6" v-if="isShowInput"> |
|
<el-form-item label="出库工作订单"> |
|
<el-input v-model="stOtherOutRecord.woCode" class="item-choose" /> |
|
</el-form-item> |
|
</el-col> |
|
<el-col :span="12"> |
|
<el-form-item label="备注" prop="memo" class="auto-fit"> |
|
<el-input |
|
placeholder="请输入" |
|
:rows="2" |
|
v-model="stOtherOutRecord.memo" |
|
type="textarea" |
|
minlength="0" |
|
maxlength="100" |
|
show-word-limit |
|
style="width: 100%" |
|
/> |
|
</el-form-item> |
|
</el-col> |
|
</el-row> |
|
<el-row> </el-row> |
|
<div slot="left" style="margin-bottom: 12px"> |
|
<el-button type="primary" @click="insertEvent()">插入一行</el-button> |
|
<el-button type="danger" @click="deleteRow()">删除一行</el-button> |
|
</div> |
|
<el-table ref="xTable" :data="outbankList" border @select="selectChange"> |
|
<el-table-column type="selection" width="40" /> |
|
<el-table-column |
|
label="出库单号" |
|
prop="sirCode" |
|
width="120" |
|
align="center" |
|
></el-table-column> |
|
<el-table-column label="仓库物料" prop="goodsCode" width="150" align="center"> |
|
<template #header> |
|
<span><i style="color: red">*</i>仓库物料</span> |
|
</template> |
|
<template #default="scope"> |
|
<!-- <el-select v-model="scope.row.goodsCode" @change="val => changeCode(val, scope.$index)"> |
|
<el-option |
|
v-for="item in goodsList" |
|
:key="item.id" |
|
:label="item.goodsCode" |
|
:value="item.goodsCode" |
|
></el-option> |
|
</el-select> --> |
|
|
|
<jhSelect |
|
@input="val => (scope.row.goodsCode = val)" |
|
:value="scope.row.goodsCode" |
|
placeholder="请搜索选择" |
|
api-url="/blade-wms/stGoods/list" |
|
echo-api="/blade-wms/stGoods/list" |
|
echoParamsKey="goodsCode" |
|
echo-method="get" |
|
api-method="get" |
|
list-key="records" |
|
total-key="total" |
|
label-key="goodsCode" |
|
value-key="goodsCode" |
|
search-key="goodsCode" |
|
:debounce-time="100" |
|
@change="(val, item) => changeCode(val, item, scope.$index)" |
|
:title="'修改'" |
|
/> |
|
</template> |
|
</el-table-column> |
|
|
|
<el-table-column label="物料名称" prop="goodsName" align="center"> |
|
<template #header> |
|
<span><i style="color: red">*</i>物料名称</span> |
|
</template> |
|
</el-table-column> |
|
<el-table-column label="型号/牌号" prop="materialModel" align="center"> |
|
<template #header> |
|
<span><i style="color: red">*</i>型号/牌号</span> |
|
</template> |
|
</el-table-column> |
|
<el-table-column label="库位号" prop="slId" align="center"> |
|
<template #header> |
|
<span><i style="color: red">*</i>库位号</span> |
|
</template> |
|
<template #default="scope"> |
|
<el-select v-model="scope.row.slId" @change="val => changeLocation(val, scope.$index)"> |
|
<el-option |
|
v-for="item in scope.row.locationList" |
|
:key="item.id" |
|
:label="item.location" |
|
:value="item.slId" |
|
></el-option> |
|
</el-select> |
|
</template> |
|
</el-table-column> |
|
<el-table-column label="批次号" prop="piNo" align="center"> |
|
<template #header> |
|
<span><i style="color: red">*</i>批号</span> |
|
</template> |
|
<template #default="scope"> |
|
<el-select v-model="scope.row.piNo" @change="val => changePiNo(val, scope.$index)"> |
|
<el-option |
|
v-for="item in scope.row.piNoList" |
|
:key="item.piNo" |
|
:label="item.piNo" |
|
:value="item.piNo" |
|
></el-option> |
|
</el-select> |
|
</template> |
|
</el-table-column> |
|
<el-table-column label="炉批号" prop="stovePiNo" align="center"> |
|
<template #header> |
|
<span><i style="color: red">*</i>炉批号</span> |
|
</template> |
|
</el-table-column> |
|
<el-table-column label="库存数量" prop="quantity" align="center"> |
|
<template #header> |
|
<span><i style="color: red">*</i>库存数量</span> |
|
</template> |
|
</el-table-column> |
|
|
|
<el-table-column label="出库件数" prop="outQuantity" align="center"> |
|
<template #header> |
|
<span><i style="color: red">*</i>出库件数</span> |
|
</template> |
|
<template #default="scope"> |
|
<el-input-number |
|
style="width: 90%" |
|
v-model="scope.row.outQuantity" |
|
:max="scope.row.quantity" |
|
placeholder="请输入" |
|
controls-position="right" |
|
></el-input-number> |
|
</template> |
|
</el-table-column> |
|
<el-table-column label="计量单位" prop="unitName" align="center"> |
|
<template #header> |
|
<span><i style="color: red">*</i>计量单位</span> |
|
</template> |
|
</el-table-column> |
|
<el-table-column label="到期日期" prop="scrapCycle" align="center"> |
|
<template #header> |
|
<span><i style="color: red">*</i>到期日期</span> |
|
</template> |
|
<template #default="scope"> |
|
<el-date-picker |
|
disabled |
|
v-model="scope.row.scrapCycle" |
|
format="YYYY-MM-DD HH:mm:ss" |
|
value-format="YYYY-MM-DD HH:mm:ss" |
|
type="date" |
|
placeholder="选择日期" |
|
style="width: 100%" |
|
/> |
|
</template> |
|
</el-table-column> |
|
<el-table-column label="入库日期" prop="inOutDate" align="center"> |
|
<template #header> |
|
<span><i style="color: red">*</i>入库日期</span> |
|
</template> |
|
<template #default="scope"> |
|
<el-date-picker |
|
disabled |
|
v-model="scope.row.inOutDate" |
|
format="YYYY-MM-DD HH:mm:ss" |
|
value-format="YYYY-MM-DD HH:mm:ss" |
|
type="date" |
|
placeholder="选择日期" |
|
style="width: 100%" |
|
/> |
|
</template> |
|
</el-table-column> |
|
</el-table> |
|
</el-form> |
|
|
|
<template #footer> |
|
<span class="dialog-footer"> |
|
<el-button @click="closeDialog">取 消</el-button> |
|
<el-button type="primary" @click="submit">确 定</el-button> |
|
</span> |
|
</template> |
|
</el-dialog> |
|
</template> |
|
<script> |
|
import { dateFormat } from '@/utils/date'; |
|
import { |
|
getOtherOutNo, |
|
getWarehouseList, |
|
getKeeperList, |
|
getGoodsOutList, |
|
getLocationList, |
|
completeIssue, |
|
getLocationData, |
|
addIssue, |
|
getShList, |
|
} from '@/api/storeManagement/otherIssuing'; |
|
export default { |
|
props: { |
|
showDialog: { |
|
type: Boolean, |
|
default: false, |
|
}, |
|
checkCode: { |
|
type: String, |
|
default: '', |
|
}, |
|
}, |
|
data() { |
|
const assQuantityValid = ({ cellValue, rule, rules, row, rowIndex, column, columnIndex }) => { |
|
return new Promise((resolve, reject) => { |
|
if (row.coGoods) { |
|
if (row.coGoods.numAcc) { |
|
if (cellValue == null) { |
|
reject(new Error(this.$t('store.goodsMustInputAssQuatity'))); |
|
} |
|
} |
|
} |
|
resolve(); |
|
}); |
|
}; |
|
return { |
|
openShow: false, |
|
billCode: null, |
|
userOption: [], |
|
wareList: [], |
|
shOption: [], |
|
moldOption: {}, |
|
treeData: [], |
|
goodsList: [], |
|
stOtherOutRecord: { |
|
// billDate:dateFormat(new Date(),'yyyy-MM-dd'), |
|
// stAccBill: { |
|
// billDate: new Date(), |
|
// pfUserInfo: { dept: {} }, |
|
// coStorehouse: { shId: null } |
|
// }, |
|
mid: null, |
|
outType: 4, |
|
woCode: null, |
|
memo: null, |
|
}, |
|
btnLoading: false, |
|
outbankList: [], |
|
oldShId: null, |
|
disableTaskCode: true, |
|
billDatePicker: '', |
|
useTypeOptions: [ |
|
{ |
|
value: 0, |
|
label: '报废出库', |
|
}, |
|
{ |
|
value: 1, |
|
label: '料头出库', |
|
}, |
|
{ |
|
value: 2, |
|
label: '超额出库', |
|
}, |
|
{ |
|
value: 3, |
|
label: '复检出库', |
|
}, |
|
{ |
|
value: 4, |
|
label: '领用出库', |
|
}, |
|
{ |
|
value: 5, |
|
label: '库转移', |
|
}, |
|
{ |
|
value: 6, |
|
label: '退货出库', |
|
}, |
|
{ |
|
value: 7, |
|
label: '物料出库', |
|
}, |
|
{ |
|
value: 8, |
|
label: '班组提请', |
|
}, |
|
], |
|
goodsParams: {}, |
|
piNoParams: {}, |
|
rules: { |
|
// stAccBill: { |
|
// coStorehouse: { |
|
shId: [{ required: true, message: '请选择仓库', trigger: 'blur' }], |
|
// }, |
|
// pfUserInfo: { |
|
picker: [{ required: true, message: '请选择领料人', trigger: 'blur' }], |
|
// } |
|
// }, |
|
// moId: [], |
|
|
|
outType: [{ required: true, message: '请选择出库原因', trigger: 'blur' }], |
|
}, |
|
gridRules: { |
|
rlsId: [{ required: true }], |
|
shelfNo: [{ required: true }], |
|
assQuantity: [{ validator: assQuantityValid }], |
|
}, |
|
isShowInput: false, |
|
userData: [], |
|
}; |
|
}, |
|
mounted() { |
|
this.openShow = this.showDialog; |
|
this.getCode(); |
|
if (this.checkCode == '') { |
|
this.getWare(); |
|
this.getKeeper(); |
|
this.getGoods(); |
|
} else { |
|
this.getKeeper(); |
|
this.getShData(); |
|
} |
|
}, |
|
methods: { |
|
getShData() { |
|
getShList({ |
|
goodsCode: this.checkCode, |
|
}).then(res => { |
|
this.wareList = res.data.data; |
|
}); |
|
}, |
|
getBasicData() { |
|
completeIssue({ |
|
barCode: this.checkCode, |
|
}).then(res => { |
|
this.outbankList = [{ sirCode: this.billCode, ...res.data.data }]; |
|
this.stOtherOutRecord.shId = res.data.data.shId; |
|
}); |
|
}, |
|
getCode() { |
|
getOtherOutNo().then(res => { |
|
this.billCode = res.data.data.sirCode; |
|
if (this.checkCode != '') { |
|
this.getBasicData(); |
|
} |
|
}); |
|
}, |
|
uniqueById(arr) { |
|
const seen = new Map(); |
|
for (const item of arr) { |
|
if (!seen.has(item.slId)) { |
|
seen.set(item.slId, item); |
|
} |
|
} |
|
return Array.from(seen.values()); |
|
}, |
|
changeCode(val, item, index) { |
|
// let tmp = this.goodsList.find(item => item.goodsCode == val); |
|
// console.log('tmp------------', tmp); |
|
|
|
if (item != undefined) { |
|
this.outbankList[index].goodsName = item.goodsName; |
|
this.outbankList[index].materialModel = item.materialModel; |
|
this.outbankList[index].unitName = item.unitName; |
|
this.outbankList[index].goodsId = item.id; |
|
this.outbankList[index].slId = ''; |
|
this.outbankList[index].piNo = ''; |
|
this.outbankList[index].quantity = ''; |
|
} |
|
getLocationData({ |
|
shId: this.stOtherOutRecord.shId, |
|
goodsId: item.id, |
|
}).then(res => { |
|
console.log('res--------', res); |
|
let data = this.uniqueById(res.data.data.records); |
|
this.outbankList[index].locationList = data; |
|
}); |
|
}, |
|
changeLocation(val, index) { |
|
this.outbankList[index].piNo = ''; |
|
getLocationData({ |
|
shId: this.stOtherOutRecord.shId, |
|
goodsId: this.outbankList[index].goodsId, |
|
slId: val, |
|
}).then(res => { |
|
this.outbankList[index].piNoList = res.data.data.records; |
|
}); |
|
}, |
|
changePiNo(val, index) { |
|
let tmp = this.outbankList[index].piNoList.find(item => item.piNo == val); |
|
if (tmp) { |
|
this.outbankList[index].stovePiNo = tmp.stovePiNo; |
|
this.outbankList[index].quantity = tmp.quantity; |
|
this.outbankList[index].scrapCycle = tmp.scrapCycle; |
|
this.outbankList[index].inOutDate = tmp.inOutDate; |
|
this.outbankList[index].id = tmp.id; |
|
} |
|
}, |
|
getGoods() { |
|
getGoodsOutList().then(res => { |
|
this.goodsList = res.data.data.records; |
|
}); |
|
}, |
|
getKeeper() { |
|
getKeeperList().then(res => { |
|
this.userData = res.data.data; |
|
}); |
|
}, |
|
getWare() { |
|
getWarehouseList().then(res => { |
|
this.wareList = res.data.data.records; |
|
}); |
|
}, |
|
closeDialog(val) { |
|
this.openShow = false; |
|
this.$emit('closeDialog', val); |
|
}, |
|
userDataFn() { |
|
// this.$ajax.post("sysComBox/user", { "filterValue": null, "paging": { "pageSize": 9999999, "pageNumber": 1 }, "baseParams": {} }).then(res => { |
|
// if (this.$ifAjax(res)) { |
|
// this.userData = res.data.list; |
|
// } |
|
// }); |
|
}, |
|
opened() { |
|
this.stOtherOutRecord = { |
|
stAccBill: { |
|
billDate: new Date(), |
|
pfUserInfo: { dept: {} }, |
|
coStorehouse: { shId: null }, |
|
}, |
|
mid: null, |
|
outType: 4, |
|
memo: null, |
|
}; |
|
this.oldShId = null; |
|
this.outbankList = []; |
|
this.$refs.form.resetFields(); |
|
if (this.abId == null) { |
|
this.queryDataForAdd(); |
|
} else { |
|
this.queryData(); |
|
} |
|
this.changeUseType(this.stOtherOutRecord.outType); |
|
this.moldList(); |
|
}, |
|
moldList() { |
|
// this.$ajax.post("stOtherReceiptRecord/queryMoldList").then(res => { |
|
// if (this.$ifAjax(res)) { |
|
// this.loading = false; |
|
// this.treeData = res.data.list; |
|
// } |
|
// }); |
|
// this.$ajax.post("stOtherOutRecord/generateCode").then(res => { |
|
// if (this.$ifAjax(res)) { |
|
// this.stOtherOutRecord.stAccBill.billCode = |
|
// res.data.stAccBill.billCode; |
|
// } |
|
// }); |
|
}, |
|
queryDataForAdd() { |
|
this.$ajax.get('stOtherOutRecord/preparedForAdd').then(res => { |
|
this.stOtherOutRecord = res.data; |
|
this.userOption = [ |
|
{ |
|
userId: this.stOtherOutRecord.stAccBill.pfUserInfo.userId, |
|
userName: this.stOtherOutRecord.stAccBill.pfUserInfo.userName, |
|
}, |
|
]; |
|
}); |
|
}, |
|
queryData() { |
|
// 根据凭证单ID查询入库数据 |
|
this.$ajax.get('stOtherOutRecord/queryForEdit/' + this.abId).then(res => { |
|
const { stOtherOutRecord, outbankList, prMoldOrder } = res.data; |
|
this.stOtherOutRecord = stOtherOutRecord; |
|
this.outbankList = outbankList; |
|
this.oldShId = this.stOtherOutRecord.stAccBill.coStorehouse.shId; |
|
this.userOption = [ |
|
{ |
|
userId: this.stOtherOutRecord.stAccBill.pfUserInfo.userId, |
|
userName: this.stOtherOutRecord.stAccBill.pfUserInfo.userName, |
|
}, |
|
]; |
|
this.shOption = [ |
|
{ |
|
shId: this.stOtherOutRecord.stAccBill.coStorehouse.shId, |
|
shName: this.stOtherOutRecord.stAccBill.coStorehouse.shName, |
|
}, |
|
]; |
|
this.stOtherOutRecord.moId = prMoldOrder.moId; |
|
this.moldOption[prMoldOrder.moId] = prMoldOrder; |
|
}); |
|
}, |
|
insertEvent(row = -1) { |
|
if (!this.stOtherOutRecord.shId || this.stOtherOutRecord.shId == '') { |
|
this.$message.error('请选择仓库!'); |
|
return; |
|
} |
|
// 新增一行 |
|
// 创建一个新行对象,包含所有必要的字段 |
|
let sirCode = ''; |
|
const len = this.outbankList; |
|
if (len.length === 0) { |
|
sirCode = this.billCode; |
|
} else { |
|
const newBoCode = len[len.length - 1].sirCode; |
|
sirCode = Number(newBoCode) + 1; |
|
} |
|
const newRow = { |
|
sirCode: sirCode, |
|
_select: false, |
|
}; |
|
this.outbankList.push(newRow); |
|
}, |
|
selectChange(list, row) { |
|
row._select = !row._select; |
|
}, |
|
// 删除选中行 |
|
deleteRow() { |
|
this.$confirm('确定将选择数据删除?', { |
|
confirmButtonText: '确定', |
|
cancelButtonText: '取消', |
|
type: 'warning', |
|
}).then(() => { |
|
this.outbankList = this.outbankList.filter(row => !row._select); |
|
}); |
|
}, |
|
editActived({ row, rowIndex, column, columnIndex, $columnIndex, cell }) {}, |
|
editClosed({ row, rowIndex, column, columnIndex, $columnIndex, cell }) { |
|
// 编辑完成后触发 |
|
if ( |
|
column.property === 'quantity' || |
|
column.property === 'unitPrice' || |
|
column.property === 'abdMoney' || |
|
column.property === 'assQuantity' |
|
) { |
|
this.changeData(row, column.property); |
|
} |
|
}, |
|
activeCellMethod({ column, columnIndex }) { |
|
// 文本禁止编辑 |
|
if (this.stOtherOutRecord.stAccBill.coStorehouse.shId == null) { |
|
this.$message.error(this.$t('store.pleaseChoseStore')); |
|
return false; |
|
} |
|
|
|
var row = this.$refs.xTable.getCurrentRecord(); |
|
|
|
if (column.property === 'assQuantity') { |
|
if (!row.coGoods.numAcc) { |
|
this.$message.error(this.$t('store.pleaseChoseGoodsForNumAcc')); |
|
return false; |
|
} |
|
} |
|
return true; |
|
}, |
|
close(isRefresh) { |
|
this.$emit('cancel', isRefresh === true); |
|
}, |
|
goodsItemValue(item) { |
|
// 选择完数据,对关联数据进行修改 |
|
var row = this.$refs.xTable.getCurrentRecord(); |
|
|
|
if (item.storageLocation != null) { |
|
this.$set(row, 'storageLocation', item.storageLocation); |
|
} |
|
|
|
this.$set(row, 'quantity', item.quantity); |
|
this.$set(row, 'coGoods', item.coGoods); |
|
this.$set(row, 'rlsId', item.rlsId); |
|
this.$set(row, 'piNo', item.piNo); |
|
this.$set(row, 'stovePiNo', item.stovePiNo); |
|
this.$set(row, 'goodsCodeAndGoodsName', item.goodsCodeAndGoodsName); |
|
this.$set(row, 'createTime', item.createTime); |
|
this.$set(row, 'scrapCycle', item.scrapCycle); |
|
}, |
|
storeHouseChange(val) { |
|
// console.log("item", item) |
|
console.log('wareList---------', this.wareList); |
|
|
|
let tmp = this.wareList.find(item => item.id == val); |
|
if (tmp.shName.indexOf('玻璃饼') !== -1) { |
|
this.isShowInput = true; |
|
} else { |
|
this.isShowInput = false; |
|
} |
|
if (this.outbankList.length == 1) { |
|
this.outbankList[0].slId = ''; |
|
this.outbankList[0].piNo = ''; |
|
this.outbankList[0].quantity = ''; |
|
getGoodsOutList({ |
|
shId: val, |
|
}).then(res => { |
|
this.goodsList = res.data.data.records; |
|
if (this.outbankList[0].goodsCode != '') { |
|
let tmp = this.goodsList.find(item => item.goodsCode == this.outbankList[0].goodsCode); |
|
this.outbankList[0].goodsId = tmp.id; |
|
if (tmp) { |
|
getLocationData({ |
|
shId: val, |
|
goodsId: tmp.id, |
|
}).then(res => { |
|
console.log('res--------', res); |
|
let data = this.uniqueById(res.data.data.records); |
|
this.outbankList[0].locationList = data; |
|
}); |
|
} |
|
} |
|
}); |
|
} else { |
|
this.outbankList = []; |
|
} |
|
}, |
|
changeUseType(outType) {}, |
|
|
|
changeData(row, fieldName) { |
|
// 数量 |
|
let quantityVal = row.quantity; |
|
// 件数 |
|
let assQuantityVal = row.assQuantity; |
|
// 单价 |
|
let priceVal = row.unitPrice; |
|
// 金额 |
|
let abdMoneyVal = row.abdMoney; |
|
// 件数核算 |
|
const numAcc = row.coGoods.numAcc; |
|
|
|
if (quantityVal === undefined || quantityVal === null) { |
|
quantityVal = 0; |
|
} |
|
if (assQuantityVal === undefined || assQuantityVal === null) { |
|
assQuantityVal = 0; |
|
} |
|
if (priceVal === undefined || priceVal === null) { |
|
priceVal = 0; |
|
} |
|
|
|
const n = this.$number; |
|
if (fieldName === 'quantity' || fieldName === 'unitPrice' || fieldName === 'assQuantity') { |
|
if (numAcc) { |
|
abdMoneyVal = n.floatMul(priceVal, assQuantityVal, 2); |
|
} else { |
|
abdMoneyVal = n.floatMul(priceVal, quantityVal, 2); |
|
} |
|
this.$set(row, 'abdMoney', abdMoneyVal); |
|
} else { |
|
if (numAcc) { |
|
priceVal = n.floatDiv(abdMoneyVal, assQuantityVal, 6); |
|
} else { |
|
priceVal = n.floatDiv(abdMoneyVal, quantityVal, 6); |
|
} |
|
this.$set(row, 'abdMoney', abdMoneyVal); |
|
} |
|
}, |
|
getMinBillDate() { |
|
const self = this; |
|
|
|
return { |
|
disabledDate(time) { |
|
if (self.stOtherOutRecord.stAccBill.billDate) { |
|
return new Date(self.stOtherOutRecord.stAccBill.billDate).getTime() > time.getTime(); |
|
} |
|
}, |
|
}; |
|
}, |
|
submit() { |
|
this.$refs.form.validate(valid => { |
|
if (valid) { |
|
this.outbankList.map(item => { |
|
if (item.outQuantity > item.quantity) { |
|
this.$message.error('出库数量不可大于库存数量'); |
|
return; |
|
} |
|
}); |
|
// 校验通过:准备提交数据(过滤无用字段) |
|
const submitData = this.outbankList.map(row => { |
|
const { piNoList, locationList, _select, ...validData } = row; // 剔除选择状态字段 |
|
return validData; |
|
}); |
|
let params = { |
|
outList: submitData, |
|
stOtherOutRecord: this.stOtherOutRecord, |
|
}; |
|
console.log('params', params); |
|
addIssue(params).then(res => { |
|
if (res.data.code == 200) { |
|
this.$message.success('保存成功'); |
|
|
|
this.outbankList.map((item, index) => { |
|
getLocationData({ |
|
shId: this.stOtherOutRecord.shId, |
|
goodsId: item.goodsId, |
|
slId: item.slId, |
|
}).then(res => { |
|
item.piNoList = res.data.data.records; |
|
let tmp = item.piNoList.find(item1 => item1.piNo == item.piNo); |
|
item.quantity = tmp.quantity; |
|
}); |
|
}); |
|
// this.outbankList = [] |
|
// this.stOtherOutRecord = {} |
|
// this.closeDialog(true) |
|
// this.onLoad() |
|
} |
|
}); |
|
} |
|
}); |
|
// this.$message.success("保存成功"); |
|
// this.$refs.form.validate(formValid => { |
|
// if (formValid) { |
|
// if (this.isShowInput) { |
|
// if ( |
|
// this.stOtherOutRecord.woCode == null && |
|
// this.stOtherOutRecord.woCode == undefined |
|
// ) { |
|
// return this.$message.warning("请填写工作订单号"); |
|
// } |
|
// } |
|
|
|
// let submitList = []; |
|
// const deleteIds = []; |
|
|
|
// if ( |
|
// this.oldShId != null && |
|
// this.stOtherOutRecord.stAccBill.coStorehouse.shId !== this.oldShId |
|
// ) { |
|
// const { fullData } = this.$refs.xTable.getTableData(); |
|
// if (fullData.length > 0) { |
|
// submitList = submitList.concat(fullData); |
|
// } |
|
// } else { |
|
// const { |
|
// insertRecords, |
|
// updateRecords |
|
// } = this.$refs.xTable.getRecordset(); |
|
// if (insertRecords.length > 0) { |
|
// insertRecords.forEach(item => { |
|
// if (item.coGoods.goodsId != null) { |
|
// submitList.push(item); |
|
// } |
|
// }); |
|
// } |
|
// if (updateRecords.length > 0) { |
|
// submitList = submitList.concat(updateRecords); |
|
// } |
|
// } |
|
|
|
// const removeRecords = this.$refs.xTable.getRemoveRecords(); |
|
// if (removeRecords.length) { |
|
// removeRecords.forEach(obj => { |
|
// if (obj.stAccBillDetail.abdId) { |
|
// deleteIds.push(obj.stAccBillDetail.abdId); |
|
// } |
|
// }); |
|
// } |
|
|
|
// if ( |
|
// (this.stOtherOutRecord.abId === undefined || |
|
// this.stOtherOutRecord.abId === null) && |
|
// submitList.length === 0 |
|
// ) { |
|
// this.$message.warning( |
|
// this.$t("videaVueLib.publics.message.noDataToSave") |
|
// ); |
|
// } else { |
|
// this.$refs.xTable.validate(submitList, errMap => { |
|
// if (errMap) { |
|
// return; |
|
// } |
|
// this.btnLoading = true; |
|
// this.$ajax |
|
// .post("stOtherOutRecord/addStOtherOutRecord", { |
|
// stOtherOutRecord: this.stOtherOutRecord, |
|
// list: submitList, |
|
// deleteIds: deleteIds |
|
// }) |
|
// .then(res => { |
|
// if (this.$ifAjax(res)) { |
|
// this.$message.success( |
|
// this.$t("videaVueLib.publics.message.success") |
|
// ); |
|
// this.close(true); |
|
// } |
|
// this.btnLoading = false; |
|
// }); |
|
// }); |
|
// } |
|
// } |
|
// }); |
|
}, |
|
piCodeChange(id, item) { |
|
this.stOtherOutRecord.taskCode = item.moCode; |
|
}, |
|
}, |
|
}; |
|
</script> |
|
<style lang="scss" scoped> |
|
.item-choose { |
|
width: 250px; |
|
} |
|
</style> |