|
|
|
<template>
|
|
|
|
<div class="page-box recycledAdjustmentPage" v-loading="Loading.appMainLoading">
|
|
|
|
<!-- <tablePagination
|
|
|
|
:currenButtonData="currenButtonData"
|
|
|
|
:tableData="tableData"
|
|
|
|
:tableLoading="Loading.tableLoading"
|
|
|
|
:tableColumns="tableColumns"
|
|
|
|
@rowDrop="rowDrop"
|
|
|
|
:totalCount="totalCount"
|
|
|
|
:multipleSelection="multipleSelection"
|
|
|
|
:MaxResultCount="PageListParams.MaxResultCount"
|
|
|
|
@topbutton="topbuttonHandle"
|
|
|
|
@inlineDialog="inlineDialog"
|
|
|
|
@sortChange="sortChange"
|
|
|
|
@alertoldSkipCount="alertoldSkipCount"
|
|
|
|
@alterResultCount="alterResultCount"
|
|
|
|
@handleSelectionChange="handleSelectionChange"
|
|
|
|
:currentPageProps="oldSkipCount"
|
|
|
|
:quicklySearchOption="quicklySearchOption"
|
|
|
|
@quicklySearchClick="quicklySearchClick"
|
|
|
|
@quicklySearchClear="quicklySearchClear"
|
|
|
|
:primarySearchOption="primarySearchOption"
|
|
|
|
@overallSearchFormClick="overallSearchFormClick"
|
|
|
|
:httpOverallSearchData="httpOverallSearchData"
|
|
|
|
>
|
|
|
|
</tablePagination> -->
|
|
|
|
<!-- 新导入 disabledMethod 导入方式禁用 disabledIsAllowPartImport 是否局部导入禁用-->
|
|
|
|
<!-- methodValue 导入方式默认选项 是否局部导入 默认选项 -->
|
|
|
|
<!-- <importFile
|
|
|
|
:loading="Loading.importLoading"
|
|
|
|
:show="displayDialog.importDialog"
|
|
|
|
:URL="URL"
|
|
|
|
:disabledMethod="{ method1: false, method2: false, method3: false }"
|
|
|
|
:disabledIsAllowPartImport="{ isAllowPartImport1: false, isAllowPartImport2: false, }"
|
|
|
|
isAllowPartImportValue="1"
|
|
|
|
@importClick="postImportMergeClick(arguments)"
|
|
|
|
@postImportDown="importDown"
|
|
|
|
></importFile> -->
|
|
|
|
<!-- <curren-Drawer
|
|
|
|
:title="tableColumns"
|
|
|
|
:DrawerLoading="Loading.DrawerLoading"
|
|
|
|
:drawer="displayDialog.detailsDialog"
|
|
|
|
:propsData="propsData"
|
|
|
|
:Butttondata="DrawerButtonData"
|
|
|
|
:tabsDesTions="tabsDesTions"
|
|
|
|
@drawerShut="(val) => (displayDialog.detailsDialog = val)"
|
|
|
|
@close-value="closeValue"
|
|
|
|
@drawerbutton="drawerbutton"
|
|
|
|
:tableColumns="detailsTableColumns"
|
|
|
|
:totalCount="totalCountDetails"
|
|
|
|
:MaxResultCount="MaxResultCountDetails"
|
|
|
|
@alterResultCountDetails="alterResultCountDetails"
|
|
|
|
@alertoldSkipCountDetails="alertoldSkipCountDetails"
|
|
|
|
></curren-Drawer> -->
|
|
|
|
<!-- 新增弹窗 -->
|
|
|
|
<el-dialog
|
|
|
|
:visible="addPopShow"
|
|
|
|
:modal-append-to-body="false"
|
|
|
|
:append-to-body="false"
|
|
|
|
:modal="false"
|
|
|
|
:fullscreen="true">
|
|
|
|
<div class="addPopMain">
|
|
|
|
<div class="addPopContent addPopContent_FS">
|
|
|
|
<span class="addPopTypeTitle">粉碎料</span>
|
|
|
|
<currenTableFlex
|
|
|
|
:flexTableData="addPopData_FS"
|
|
|
|
:flexSearchOptions="editOptions"
|
|
|
|
:flexTableColumns="addPopColumns_FS"
|
|
|
|
@detailsDataPush="pushFS"
|
|
|
|
></currenTableFlex>
|
|
|
|
</div>
|
|
|
|
<div class="addPopContent addPopContent_YL">
|
|
|
|
<span class="addPopTypeTitle">原料</span>
|
|
|
|
<currenTableFlex
|
|
|
|
:isUpdate="isUpdate"
|
|
|
|
:flexTableData="addPopData_YL"
|
|
|
|
:flexSearchOptions="editOptions"
|
|
|
|
:flexTableColumns="addPopColumns_YL"
|
|
|
|
@detailsDataPush="pushYL"
|
|
|
|
@updateSelectListTable="updateSelectListTable"
|
|
|
|
@changeSelect="changeSelect"
|
|
|
|
@clearHandle="clearHandle"
|
|
|
|
></currenTableFlex>
|
|
|
|
</div>
|
|
|
|
<div class="addPopContent addPopContent_HB">
|
|
|
|
<span class="addPopTypeTitle">混拌料</span>
|
|
|
|
<currenTableFlex
|
|
|
|
:flexTableData="addPopData_HB"
|
|
|
|
:flexSearchOptions="editOptions"
|
|
|
|
:flexTableColumns="addPopColumns_HB"
|
|
|
|
:showAddBtn="false"
|
|
|
|
:showAllDeleteButton="false"
|
|
|
|
@detailsDataPush="pushHB"
|
|
|
|
></currenTableFlex>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<span slot="footer" class="dialog-footer">
|
|
|
|
<el-button @click="addPopResetHandle">重 置</el-button>
|
|
|
|
<el-button type="primary" @click="addPopSureHandle">确 定</el-button>
|
|
|
|
</span>
|
|
|
|
</el-dialog>
|
|
|
|
</div>
|
|
|
|
</template>
|
|
|
|
<script>
|
|
|
|
import { tableMixins } from "@/mixins/TableMixins"
|
|
|
|
import { LoadingMixins } from "@/mixins/LoadingMixins"
|
|
|
|
import { drawerMixins } from "@/mixins/drawerMixins"
|
|
|
|
import { TableHeaderMixins } from "@/mixins/TableHeaderMixins"
|
|
|
|
import { mixins } from "@/mixins/mixins"
|
|
|
|
import { requestData } from "@/utils/processButtonData"
|
|
|
|
import currenTableFlex from "@/components/currenTableFlex"
|
|
|
|
import { filterSelectMixins } from '@/mixins/filter-Select'
|
|
|
|
import detailsRules from '@/utils/rules';
|
|
|
|
import { getPageList } from "@/api/wms-api"
|
|
|
|
export default {
|
|
|
|
name: "materialsAdjustmentFunc",
|
|
|
|
mixins: [
|
|
|
|
tableMixins,
|
|
|
|
LoadingMixins,
|
|
|
|
drawerMixins,
|
|
|
|
TableHeaderMixins,
|
|
|
|
mixins,
|
|
|
|
filterSelectMixins,
|
|
|
|
],
|
|
|
|
components:{
|
|
|
|
currenTableFlex
|
|
|
|
},
|
|
|
|
watch: {
|
|
|
|
'packingsYL_Options':{
|
|
|
|
handler(val) {
|
|
|
|
console.log(128,val)
|
|
|
|
this.addPopColumns_YL[1].userOptions = val;
|
|
|
|
},
|
|
|
|
deep: true,
|
|
|
|
immediate: true,
|
|
|
|
},
|
|
|
|
},
|
|
|
|
data () {
|
|
|
|
return {
|
|
|
|
isUpdate:false,
|
|
|
|
URL: 'wms/store/item-transform-request',
|
|
|
|
//常用按钮数据
|
|
|
|
currenButtonData: [
|
|
|
|
this.defaultAddBtn(),//新增
|
|
|
|
this.defaultImportBtn(),//导入
|
|
|
|
this.defaultFieldSettingBtn(),//字段设置
|
|
|
|
this.defaultFreshBtn(),//刷新
|
|
|
|
this.defaultFilterBtn(),//筛选
|
|
|
|
],
|
|
|
|
DrawerButtonData: requestData(this),
|
|
|
|
addPopShow:true,//新增弹窗显隐
|
|
|
|
//粉碎料信息
|
|
|
|
addPopData_FS:[{
|
|
|
|
itemCode:null,
|
|
|
|
qty:null,
|
|
|
|
locationCode:null,
|
|
|
|
}],
|
|
|
|
//粉碎料表头信息
|
|
|
|
addPopColumns_FS:[
|
|
|
|
{ type: "filterSelect", label: "物品代码", prop: "itemCode", optionsLabel: "name", optionsValue: "code",
|
|
|
|
focus: (type,val) => { return this.getFilterList(type, val, "basedata/Item-Basic")},//this.isFilter("isRecycled","true")
|
|
|
|
searchButton: (val) => { this.showSerarchPage(val, 'basedata/Item-Basic', 'ItemBasic', '物品选择', this.addPopData_HB) },
|
|
|
|
width:"auto", searchButton:false
|
|
|
|
},
|
|
|
|
{ type: "filterSelect", label: "目标库位", prop: "locationCode", optionsLabel: "name", optionsValue: "code",
|
|
|
|
focus: (type,val) => { return this.getFilterList(type, val, "basedata/Location",this.isFilter("type", "2"))},
|
|
|
|
searchButton: (val) => { this.showSerarchPage(val, 'basedata/Location', 'InventoryBalance', '库位选择', this.addPopData_HB) },
|
|
|
|
width:"auto", searchButton:false
|
|
|
|
},
|
|
|
|
{ type: "input", validType:'pointNumber', label: "数量", prop: "qty", width:"auto" },
|
|
|
|
],
|
|
|
|
//原料信息
|
|
|
|
addPopData_YL:[{
|
|
|
|
itemCode:null,
|
|
|
|
packingCode:null,
|
|
|
|
inventoryQty:null,
|
|
|
|
locationCode:null,
|
|
|
|
qty:null
|
|
|
|
}],
|
|
|
|
packingsYL_Options:[],
|
|
|
|
itemPackings_YL:{},
|
|
|
|
//原料表头信息
|
|
|
|
addPopColumns_YL:[
|
|
|
|
{ type: "filterSelect", label: "物品代码", prop: "itemCode", optionsLabel: "name", optionsValue: "code",
|
|
|
|
focus: (type,val) => { return this.getFilterList(type, val, "basedata/Item-Basic",this.isFilter("type", "10C02"))},
|
|
|
|
width:"auto"
|
|
|
|
},
|
|
|
|
// { type: "filterSelect", label: "箱标签", prop: "packingCode",
|
|
|
|
// // optionsLabel: "itemCode", optionsValue: "packingCode",
|
|
|
|
// focus: (type,val) => { return this.getFilterList(type, val, "wms/inventory/Inventory-Balance")},
|
|
|
|
// colSpan: 12
|
|
|
|
// },
|
|
|
|
{ type: "select", label: "箱码", prop: "packingCode",
|
|
|
|
optionsLabel: "packingCode", optionsValue: "packingCode",
|
|
|
|
userOptions:this.packingsYL_Options,width:"auto"
|
|
|
|
},
|
|
|
|
// todo: 库存数量、库位:自动带出
|
|
|
|
{ label: "库存数量", prop: "inventoryQty", width:"auto" },
|
|
|
|
{ label: "库位", prop: "locationCode", width:"auto" },
|
|
|
|
// todo: 小于等于库存数量
|
|
|
|
{ type: "input", validType:'pointNumber', label: "数量", prop: "qty", width:"auto",
|
|
|
|
rules: detailsRules.numberInput
|
|
|
|
// rules: [{
|
|
|
|
// type: "number",
|
|
|
|
// trigger: "blur",
|
|
|
|
// validator: (rule, value, callback) => {
|
|
|
|
// console.log(7,rule,value)
|
|
|
|
// }
|
|
|
|
// }]
|
|
|
|
},
|
|
|
|
],
|
|
|
|
//混拌料信息
|
|
|
|
addPopData_HB:[{
|
|
|
|
itemCode:null,
|
|
|
|
qty:null,
|
|
|
|
locationCode:null,
|
|
|
|
}],
|
|
|
|
//混拌料表头信息
|
|
|
|
addPopColumns_HB:[
|
|
|
|
{ type: "filterSelect", label: "物品代码", prop: "itemCode", optionsLabel: "name", optionsValue: "code",
|
|
|
|
focus: (type,val) => { return this.getFilterList(type, val, "basedata/Item-Basic")},
|
|
|
|
searchButton: (val) => { this.showSerarchPage(val, 'basedata/Item-Basic', 'ItemBasic', '物品选择', this.addPopData_HB) },
|
|
|
|
width:"auto", searchButton:false
|
|
|
|
},
|
|
|
|
{ type: "filterSelect", label: "目标库位", prop: "locationCode", optionsLabel: "name", optionsValue: "code",
|
|
|
|
focus: (type,val) => { return this.getFilterList(type, val, "basedata/Location")},
|
|
|
|
searchButton: (val) => { this.showSerarchPage(val, 'basedata/Location', 'InventoryBalance', '库位选择', this.addPopData_HB) },
|
|
|
|
width:"auto", searchButton:false
|
|
|
|
},
|
|
|
|
{ type: "input", validType:'pointNumber', label: "数量", prop: "qty", width:"auto" },
|
|
|
|
],
|
|
|
|
};
|
|
|
|
},
|
|
|
|
mounted () {
|
|
|
|
// this.paging();
|
|
|
|
},
|
|
|
|
methods:{
|
|
|
|
//过滤查询条件
|
|
|
|
isFilter (val, data) {
|
|
|
|
let filter = [
|
|
|
|
{
|
|
|
|
logic: "And",
|
|
|
|
column: val,
|
|
|
|
action: "==",
|
|
|
|
value: data
|
|
|
|
}
|
|
|
|
]
|
|
|
|
return filter
|
|
|
|
},
|
|
|
|
topbuttonHandle(val){
|
|
|
|
if(val == 'newly'){
|
|
|
|
}else{
|
|
|
|
this.topbutton(val)
|
|
|
|
}
|
|
|
|
},
|
|
|
|
addPopResetHandle(){
|
|
|
|
this.$confirm('重置后,字段设置将恢复初始设置,是否继续?', '提示', {
|
|
|
|
confirmButtonText: '确定',
|
|
|
|
cancelButtonText: '取消',
|
|
|
|
type: 'warning',
|
|
|
|
}).then(() => {
|
|
|
|
this.addPopData_FS=[{
|
|
|
|
itemCode:null,
|
|
|
|
qty:null,
|
|
|
|
locationCode:null,
|
|
|
|
}]
|
|
|
|
this.addPopData_YL=[{
|
|
|
|
itemCode:null,
|
|
|
|
inventoryQty:null,
|
|
|
|
locationCode:null,
|
|
|
|
qty:null
|
|
|
|
}]
|
|
|
|
this.addPopData_HB=[{
|
|
|
|
itemCode:null,
|
|
|
|
qty:null,
|
|
|
|
locationCode:null,
|
|
|
|
}]
|
|
|
|
}).catch(() => {
|
|
|
|
|
|
|
|
});
|
|
|
|
},
|
|
|
|
addPopSureHandle(){
|
|
|
|
this.addPopData_YL.forEach(item=>{
|
|
|
|
console.log(item)
|
|
|
|
})
|
|
|
|
// console.log(this.addPopData_FS)
|
|
|
|
// console.log(this.addPopData_YL)
|
|
|
|
// console.log(this.addPopData_HB)
|
|
|
|
},
|
|
|
|
// 粉碎料下拉
|
|
|
|
pushFS(data){
|
|
|
|
console.log(data)
|
|
|
|
},
|
|
|
|
// 原料下拉
|
|
|
|
pushYL(data){
|
|
|
|
console.log(data)
|
|
|
|
if(data[1].prop="itemCode"){
|
|
|
|
let params = {
|
|
|
|
Sorting: "",
|
|
|
|
MaxResultCount: 1000,
|
|
|
|
SkipCount: 0,
|
|
|
|
condition: {
|
|
|
|
filters: [{
|
|
|
|
logic: "And",
|
|
|
|
column: "itemCode",
|
|
|
|
action: "==",
|
|
|
|
value: data[0].code
|
|
|
|
}]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
this.Loading.appMainLoading = true
|
|
|
|
// todo:字段确定+清空失效处理
|
|
|
|
console.log(311,data[3].$index)
|
|
|
|
this.addPopData_YL[data[3].$index].packingCode = null
|
|
|
|
this.addPopData_YL[data[3].$index].inventoryQty = null
|
|
|
|
this.addPopData_YL[data[3].$index].locationCode = null
|
|
|
|
this.isUpdate = !this.isUpdate
|
|
|
|
getPageList(params, "wms/inventory/inventory-balance").then((res)=>{
|
|
|
|
this.itemPackings_YL[data[0].code] = res.items
|
|
|
|
this.isUpdate = !this.isUpdate
|
|
|
|
// this.$set(this.addPopColumns_YL[1], 'loading', false)
|
|
|
|
// this.packingsYL_Options = []
|
|
|
|
// this.packingsYL_Options.push({packingCode:1111})
|
|
|
|
// this.addPopColumns_YL[1].userOptions.push({packingCode:222})
|
|
|
|
// this.$set(this.addPopColumns_YL, 1, { type: "select", label: "箱码", prop: "packingCode",
|
|
|
|
// // optionsLabel: "packingCode", optionsValue: "packingCode",
|
|
|
|
// userOptions:[{label:1111,value:1111}],width:"auto",loading:false
|
|
|
|
// })
|
|
|
|
// this.$forceUpdate()
|
|
|
|
|
|
|
|
// // this.packingsYL_Options = this.itemPackings_YL[data[0].code]
|
|
|
|
// console.log(111)
|
|
|
|
// this.packingsYL_Options = [{label:1111,value:1111}]
|
|
|
|
// this.addPopColumns_YL[1].userOptions = [{label:1111,value:1111}]
|
|
|
|
this.Loading.appMainLoading = false
|
|
|
|
// this.$forceUpdate()
|
|
|
|
// console.log(11111111,this.addPopColumns_YL[1])
|
|
|
|
})
|
|
|
|
.catch(err=>{
|
|
|
|
// console.log(2222)
|
|
|
|
this.Loading.appMainLoading = false
|
|
|
|
})
|
|
|
|
}
|
|
|
|
},
|
|
|
|
changeSelect(prop, val,item,searchData,scope){
|
|
|
|
console.log(341,prop, val,item,searchData,scope)
|
|
|
|
if(prop == 'packingCode'){
|
|
|
|
let _currentRow = this.itemPackings_YL[searchData.itemCode].filter(item=>{
|
|
|
|
return val == item.packingCode
|
|
|
|
})
|
|
|
|
console.log(347,_currentRow)
|
|
|
|
// todo:字段确定
|
|
|
|
this.addPopData_YL[scope.$index].inventoryQty = _currentRow[0].qty
|
|
|
|
this.addPopData_YL[scope.$index].locationCode = _currentRow[0].locationCode
|
|
|
|
}
|
|
|
|
},
|
|
|
|
clearHandle(item,scope){
|
|
|
|
// todo:测试
|
|
|
|
this.addPopData_YL[scope.$index].packingCode = null
|
|
|
|
this.addPopData_YL[scope.$index].inventoryQty = null
|
|
|
|
this.addPopData_YL[scope.$index].locationCode = null
|
|
|
|
},
|
|
|
|
updateSelectListTable(data,item,scope,tableData){
|
|
|
|
// if(!data){ return }
|
|
|
|
// if(item.prop == "packingCode"){
|
|
|
|
// this.packingsYL_Options = this.itemPackings_YL[tableData[scope.$index].itemCode]
|
|
|
|
// console.log(318,this.itemPackings_YL)
|
|
|
|
// console.log(326,this.addPopColumns_YL[1])
|
|
|
|
// }
|
|
|
|
// 展开
|
|
|
|
if(data){
|
|
|
|
if(item.prop == "packingCode"){
|
|
|
|
this.packingsYL_Options = []
|
|
|
|
if(!tableData[scope.$index].itemCode || tableData[scope.$index].itemCode.length == 0){
|
|
|
|
this.$warningMsg("请先选择物料")
|
|
|
|
}
|
|
|
|
// console.log(tableData[scope.$index].itemCode)
|
|
|
|
if(this.itemPackings_YL[tableData[scope.$index].itemCode]){
|
|
|
|
this.packingsYL_Options = this.itemPackings_YL[tableData[scope.$index].itemCode]
|
|
|
|
}
|
|
|
|
// this.isUpdate = !this.isUpdate
|
|
|
|
// let params = {
|
|
|
|
// Sorting: "",
|
|
|
|
// MaxResultCount: 1000,
|
|
|
|
// SkipCount: 0,
|
|
|
|
// condition: {
|
|
|
|
// filters: [{
|
|
|
|
// logic: "And",
|
|
|
|
// column: "itemCode",
|
|
|
|
// action: "==",
|
|
|
|
// value: tableData[scope.$index].itemCode
|
|
|
|
// }]
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
// this.addPopColumns_YL[1].userOptions = [{packingCode:222}]
|
|
|
|
// getPageList(params, "wms/inventory/inventory-balance")
|
|
|
|
// .then(res=>{
|
|
|
|
// console.log(11111111111111111111)
|
|
|
|
// // this.packingsYL_Options = res.items
|
|
|
|
// this.addPopColumns_YL[1].userOptions = [{packingCode:111}]
|
|
|
|
// // this.$forceUpdate()
|
|
|
|
// })
|
|
|
|
// .catch(err=>{
|
|
|
|
// })
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else{
|
|
|
|
// this.addPopColumns_YL[1].userOptions = []
|
|
|
|
}
|
|
|
|
},
|
|
|
|
// 混拌料下拉
|
|
|
|
pushHB(data){
|
|
|
|
console.log(data)
|
|
|
|
},
|
|
|
|
}
|
|
|
|
};
|
|
|
|
</script>
|
|
|
|
<style lang="scss" scoped>
|
|
|
|
@import "../../../styles/mainbasicData.scss";
|
|
|
|
|
|
|
|
.addPopMain{
|
|
|
|
height:100%;
|
|
|
|
|
|
|
|
.addPopContent{
|
|
|
|
position:relative;
|
|
|
|
padding:0 20px;
|
|
|
|
|
|
|
|
.addPopTypeTitle{
|
|
|
|
position:absolute;
|
|
|
|
left:0;
|
|
|
|
top:10px;
|
|
|
|
border-left:#66b1ff solid 6px;
|
|
|
|
padding-left:10px;
|
|
|
|
height:28px;
|
|
|
|
line-height:28px;
|
|
|
|
overflow:hidden;
|
|
|
|
font-size:18px;
|
|
|
|
margin-left: 20px;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.addPopContent_FS{
|
|
|
|
height:calc(50% - 100px);
|
|
|
|
margin-bottom:10px;
|
|
|
|
}
|
|
|
|
|
|
|
|
.addPopContent_YL{
|
|
|
|
height: calc(50% - 70px);
|
|
|
|
padding: 15px 20px;
|
|
|
|
background: #d4e6fd;
|
|
|
|
}
|
|
|
|
|
|
|
|
.addPopContent_HB{
|
|
|
|
height:160px;
|
|
|
|
padding-top:28px
|
|
|
|
}
|
|
|
|
}
|
|
|
|
</style>
|
|
|
|
<style lang="scss" >
|
|
|
|
.recycledAdjustmentPage {
|
|
|
|
.el-dialog .el-dialog__body {
|
|
|
|
padding: 0 !important;
|
|
|
|
}
|
|
|
|
|
|
|
|
.el-form-item{
|
|
|
|
margin-bottom:0 !important
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
</style>
|