13 changed files with 878 additions and 187 deletions
@ -0,0 +1,138 @@ |
|||
#stepsForm { |
|||
width: 100%; |
|||
height: 100%; |
|||
display: flex; |
|||
flex-direction: column; |
|||
padding-bottom: 15px; |
|||
|
|||
::v-deep .el-steps { |
|||
padding-bottom: 15px; |
|||
|
|||
.el-step__main { |
|||
.el-step__title { |
|||
line-height: 24px; |
|||
font-size: 14px; |
|||
} |
|||
} |
|||
} |
|||
|
|||
.page1 { |
|||
flex: 1; |
|||
display: flex; |
|||
flex-direction: column; |
|||
justify-content: space-between; |
|||
overflow: hidden; |
|||
overflow-y: auto; |
|||
} |
|||
|
|||
.page2 { |
|||
// flex: 1; |
|||
// display: flex; |
|||
// flex-direction: column; |
|||
// justify-content: space-between; |
|||
// // padding-bottom: 54px; |
|||
// overflow: hidden; |
|||
// overflow-y: auto; |
|||
height: calc(100% - 95px); |
|||
|
|||
::v-deep .el-form { |
|||
flex: 1; |
|||
display: flex; |
|||
height: 100%; |
|||
.el-row { |
|||
display: none; |
|||
} |
|||
|
|||
.formTable-box { |
|||
flex: 1; |
|||
overflow: hidden; |
|||
overflow-y: auto; |
|||
|
|||
.el-form-item__content { |
|||
width: 100%; |
|||
height: 100%; |
|||
display: flex; |
|||
flex-direction: column; |
|||
margin: 0 !important; |
|||
|
|||
.heder { |
|||
padding: 5px 0; |
|||
text-align: center; |
|||
font-size: 18px; |
|||
|
|||
button{ |
|||
margin: 0 10px; |
|||
} |
|||
} |
|||
|
|||
.el-table { |
|||
flex: 1; |
|||
|
|||
.childTable { |
|||
display: flex; |
|||
justify-content: space-around; |
|||
|
|||
span { |
|||
cursor: pointer; |
|||
|
|||
&:nth-child(1) { |
|||
color: red; |
|||
} |
|||
|
|||
&:nth-child(2) { |
|||
color: green; |
|||
} |
|||
} |
|||
} |
|||
} |
|||
} |
|||
} |
|||
} |
|||
|
|||
::v-deep .formButton { |
|||
// position: absolute; |
|||
// bottom: 0; |
|||
// right: 0; |
|||
z-index: 3; |
|||
} |
|||
} |
|||
|
|||
.page3 { |
|||
flex: 1; |
|||
display: flex; |
|||
flex-direction: column; |
|||
// padding-bottom: 54px; |
|||
overflow: hidden; |
|||
overflow-y: auto; |
|||
|
|||
::v-deep .el-form { |
|||
flex: 1; |
|||
display: flex; |
|||
flex-direction: column; |
|||
|
|||
.el-row { |
|||
flex: 1; |
|||
flex-wrap: wrap; |
|||
} |
|||
|
|||
.formTable-box { |
|||
margin-bottom: 0; |
|||
// flex: 1; |
|||
|
|||
.el-form-item__content { |
|||
width: 100%; |
|||
height: 100%; |
|||
display: flex; |
|||
flex-direction: column; |
|||
margin: 0 !important; |
|||
} |
|||
} |
|||
} |
|||
::v-deep .formButton { |
|||
// position: absolute; |
|||
// bottom: 0; |
|||
// right: 0; |
|||
z-index: 3; |
|||
} |
|||
} |
|||
} |
@ -0,0 +1,293 @@ |
|||
<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 |
|||
:flexTableData="addPopData_YL" |
|||
:flexSearchOptions="editOptions" |
|||
:flexTableColumns="addPopColumns_YL" |
|||
@detailsDataPush="pushYL" |
|||
></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' |
|||
export default { |
|||
name: "recycledMaterialsAdjustmentApply", |
|||
mixins: [ |
|||
tableMixins, |
|||
LoadingMixins, |
|||
drawerMixins, |
|||
TableHeaderMixins, |
|||
mixins, |
|||
filterSelectMixins, |
|||
], |
|||
components:{ |
|||
currenTableFlex |
|||
}, |
|||
data () { |
|||
return { |
|||
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")}, |
|||
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, |
|||
inventoryQty:null, |
|||
location:null, |
|||
qty:null |
|||
}], |
|||
//原料表头信息 |
|||
addPopColumns_YL:[ |
|||
{ 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 |
|||
}, |
|||
// todo: 库存数量、库位:自动带出 |
|||
{ label: "库存数量", prop: "inventoryQty", width:"auto" }, |
|||
{ label: "库位", prop: "location", width:"auto" }, |
|||
// todo: 小于等于库存数量 |
|||
{ type: "input", validType:'pointNumber', label: "数量", prop: "qty", width:"auto" }, |
|||
], |
|||
//混拌料信息 |
|||
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(){ |
|||
}, |
|||
addPopSureHandle(){ |
|||
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) |
|||
}, |
|||
// 混拌料下拉 |
|||
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> |
@ -0,0 +1,108 @@ |
|||
<template> |
|||
<div class="page-box" v-loading="Loading.appMainLoading"> |
|||
<tablePagination |
|||
:currenButtonData="currenButtonData" |
|||
:tableData="tableData" |
|||
:tableLoading="Loading.tableLoading" |
|||
:tableColumns="tableColumns" |
|||
@rowDrop="rowDrop" |
|||
:totalCount="totalCount" |
|||
:multipleSelection="multipleSelection" |
|||
:MaxResultCount="PageListParams.MaxResultCount" |
|||
@topbutton="topbutton" |
|||
@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" |
|||
:tabsDesTions="tabsDesTions" |
|||
:Butttondata="DrawerButtonData" |
|||
@drawerbutton="drawerbutton" |
|||
@drawerShut="(val) => (displayDialog.detailsDialog = val)" |
|||
@close-value="closeValue" |
|||
:tableColumns="detailsTableColumns" |
|||
:totalCount="totalCountDetails" |
|||
:MaxResultCount="MaxResultCountDetails" |
|||
@alterResultCountDetails="alterResultCountDetails" |
|||
@alertoldSkipCountDetails="alertoldSkipCountDetails" |
|||
></curren-Drawer> |
|||
</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" |
|||
export default { |
|||
name: "PurchaseReturnApprove", |
|||
mixins: [ |
|||
tableMixins, |
|||
LoadingMixins, |
|||
drawerMixins, |
|||
TableHeaderMixins, |
|||
mixins, |
|||
], |
|||
computed: { |
|||
hideButton: function () { |
|||
return function (val) { |
|||
let data = true |
|||
val.forEach(key => { |
|||
if (this.propsData.requestStatus == key) { |
|||
data = false |
|||
} |
|||
}) |
|||
return data |
|||
} |
|||
}, |
|||
}, |
|||
data () { |
|||
return { |
|||
URL: 'wms/store/purchase-return-request', |
|||
//常用按钮数据 |
|||
currenButtonData: [ |
|||
// this.defaultImportBtn(),//导入 |
|||
this.defaultFieldSettingBtn(),//字段设置 |
|||
this.defaultFreshBtn(),//刷新 |
|||
this.defaultFilterBtn(),//筛选 |
|||
], |
|||
DrawerButtonData: [ |
|||
...requestData(this) |
|||
], |
|||
}; |
|||
}, |
|||
mounted () { |
|||
this.paging(); |
|||
}, |
|||
}; |
|||
</script> |
|||
<style lang="scss" scoped> |
|||
@import "../../../styles/mainbasicData.scss"; |
|||
</style> |
Loading…
Reference in new issue