14 changed files with 1355 additions and 52 deletions
@ -0,0 +1,211 @@ |
|||
<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" |
|||
@buttonOperationClick="buttonOperationClick" |
|||
:currentPageProps="oldSkipCount" |
|||
:quicklySearchOption="quicklySearchOption" |
|||
@quicklySearchClick="quicklySearchClick" |
|||
@quicklySearchClear="quicklySearchClear" |
|||
:primarySearchOption="primarySearchOption" |
|||
@overallSearchFormClick="overallSearchFormClick" |
|||
:httpOverallSearchData="httpOverallSearchData" |
|||
> |
|||
</tablePagination> |
|||
<!-- 新增与编辑 --> |
|||
<newAndEdiDialog |
|||
:loading="Loading.newAndEdiLoading" |
|||
:active="active" |
|||
:pageStatus="pageStatus" |
|||
:formReveal="formReveal" |
|||
:formTitle="formTitle" |
|||
:displayDialog="editDialog" |
|||
:FormData="formReveal ? CreateFormData : editFormData" |
|||
:Form="formReveal ? CreateForm : editForm" |
|||
:Options="editOptions" |
|||
:Handle="editHandle" |
|||
:Rules="formReveal ? editRules.cerateRule : editRules.editRule" |
|||
@FormSubmit="FormSubmit" |
|||
@close="FormClose" |
|||
@goBack="goBack" |
|||
></newAndEdiDialog> |
|||
<!-- 新导入 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" |
|||
:tableColumns="tableColumns" |
|||
:DrawerLoading="Loading.DrawerLoading" |
|||
:drawer="displayDialog.detailsDialog" |
|||
:dropdownData="dropdownData" |
|||
:propsData="propsData" |
|||
:tabsDesTions="tabsDesTions" |
|||
@drawerShut="(val) => (displayDialog.detailsDialog = val)" |
|||
@drawerbutton="drawerbutton" |
|||
@handleCommand="drawerHandle" |
|||
@close-value="closeValue" |
|||
></curren-Drawer> |
|||
<!-- 搜索按钮——窗体组件 --> |
|||
<searchPage |
|||
ref="searchTable" |
|||
:tableLoading="Loading.autoTableLoading" |
|||
:advancedFilter="advancedFilter()" |
|||
:filterPageListParams="filterPageListParams" |
|||
:formTitle="searchTitle" |
|||
:displayDialog="displayDialog.AddNewDialog" |
|||
:searchTableData="searchData" |
|||
:searchTableColumns="searchColumns" |
|||
:searchTotalCount="searchTotalCount" |
|||
:supplierItemPage="searchPageListParams" |
|||
@handleSelectionChange="prepareFormData" |
|||
@SizeChange="searchAlterResultCount($event, searchPageListParams)" |
|||
@CurrentChange="searchAlertoldSkipCount($event, searchPageListParams)" |
|||
@tableButtonClick="searchSubmit(arguments)" |
|||
></searchPage> |
|||
</div> |
|||
</template> |
|||
<script> |
|||
import { tableMixins } from "@/mixins/TableMixins" |
|||
import { LoadingMixins } from "@/mixins/LoadingMixins" |
|||
import { drawerMixins } from "@/mixins/drawerMixins" |
|||
import { TableHeaderMixins } from "@/mixins/TableHeaderMixins" |
|||
import { newAndEdiDialogMixins } from "@/mixins/newAndEdiDialogMixins" |
|||
import { mixins } from "@/mixins/mixins" |
|||
import { filterSelectMixins } from '@/mixins/filter-Select' |
|||
export default { |
|||
name: "ItemContainer", |
|||
mixins: [ |
|||
tableMixins, |
|||
LoadingMixins, |
|||
drawerMixins, |
|||
TableHeaderMixins, |
|||
mixins, |
|||
filterSelectMixins, |
|||
newAndEdiDialogMixins |
|||
], |
|||
computed: { |
|||
editDialog: { |
|||
get: function () { |
|||
return this.displayDialog.newDialog || this.displayDialog.editDialog; |
|||
}, |
|||
}, |
|||
}, |
|||
data () { |
|||
const validateQty = (rule, value, callback) => { |
|||
if (value <= 0) { |
|||
callback(new Error('最小值为1')) |
|||
} else { |
|||
callback() |
|||
} |
|||
} |
|||
return { |
|||
URL: 'basedata/item-container', |
|||
//常用按钮数据 |
|||
currenButtonData: [ |
|||
this.defaultAddBtn(),//新增 |
|||
this.defaultImportBtn(),//导入 |
|||
this.defaultExportBtn(),//导出 |
|||
this.defaultFieldSettingBtn(),//字段设置 |
|||
this.defaultFreshBtn(),//刷新 |
|||
this.defaultFilterBtn(),//筛选 |
|||
], |
|||
//新增 |
|||
CreateFormData: { |
|||
remark: null, |
|||
containerCode: null, |
|||
qty: null, |
|||
itemCode: null, |
|||
}, |
|||
//编辑 |
|||
editFormData: { |
|||
containerCode:'', |
|||
itemCode:'', |
|||
remark: null, |
|||
qty: null, |
|||
concurrencyStamp: null, |
|||
}, |
|||
editOptions: {}, |
|||
CreateForm: [ |
|||
{ type: "input", label: "收容代码", prop: 'containerCode', colSpan: 12, validType:'numberLetter' }, |
|||
{ type: "filterSelect", label: "物品代码", prop: "itemCode", optionsLabel: "name", optionsValue: "code", |
|||
focus: (type,val) => { return this.getFilterList(type, val, "basedata/Item-Basic",this.isFilterItemCode())}, |
|||
searchButton: (val) => { this.showSerarchPage(val, 'basedata/Item-Basic', 'ItemBasic', '物品选择', this.CreateFormData,this.isFilterItemCode()) }, colSpan: 12 }, |
|||
{ type: "inputNumber", label: "收容数量", prop: "qty", colSpan: 12, min:1 }, |
|||
{ type: "input", label: "备注", prop: 'remark', colSpan: 12 }, |
|||
], |
|||
editForm: [ |
|||
{ disabled:true, type: "input", label: "收容代码", prop: 'containerCode', colSpan: 12, validType:'numberLetter' }, |
|||
{ type: "input", label: "物品代码", prop: "itemCode", disabled:true, colSpan: 12 }, |
|||
{ type: "inputNumber", label: "收容数量", prop: "qty", colSpan: 12, min:1 }, |
|||
{ type: "input", label: "备注", prop: 'remark', colSpan: 12 }, |
|||
], |
|||
editRules: { |
|||
cerateRule: { |
|||
containerCode: [{ required: true, trigger: "blur", message: "不可为空" }], |
|||
itemCode: [{ required: true, trigger: "change", message: "不可为空" }], |
|||
qty: [ |
|||
{ required: true, trigger: "blur", message: "不可为空且最小值为1" }, |
|||
{ required: true, trigger: 'blur', validator: validateQty } |
|||
], |
|||
}, |
|||
editRule: { |
|||
containerCode: [{ required: true, trigger: "blur", message: "不可为空" }], |
|||
itemCode: [{ required: true, trigger: "change", message: "不可为空" }], |
|||
qty: [ |
|||
{ required: true, trigger: "blur", message: "不可为空且最小值为1" }, |
|||
{ required: true, trigger: 'blur', validator: validateQty } |
|||
], |
|||
} |
|||
}, |
|||
}; |
|||
}, |
|||
mounted () { |
|||
this.paging(); |
|||
}, |
|||
methods:{ |
|||
//过滤查询条件 |
|||
isFilterItemCode () { |
|||
let filter = [ |
|||
{ |
|||
logic: "Or", |
|||
column: "type", |
|||
action: "==", |
|||
value: "10C04" |
|||
}, |
|||
{ |
|||
logic: "Or", |
|||
column: "type", |
|||
action: "==", |
|||
value: "10C01" |
|||
} |
|||
] |
|||
return filter |
|||
}, |
|||
} |
|||
}; |
|||
</script> |
|||
<style lang="scss" scoped> |
|||
@import "../../../styles/basicData.scss"; |
|||
</style> |
@ -0,0 +1,163 @@ |
|||
|
|||
<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" |
|||
@buttonOperationClick="buttonOperationClick" |
|||
:currentPageProps="oldSkipCount" |
|||
:quicklySearchOption="quicklySearchOption" |
|||
@quicklySearchClick="quicklySearchClick" |
|||
@quicklySearchClear="quicklySearchClear" |
|||
:primarySearchOption="primarySearchOption" |
|||
@overallSearchFormClick="overallSearchFormClick" |
|||
:httpOverallSearchData="httpOverallSearchData" |
|||
> |
|||
</tablePagination> |
|||
<!-- 新增与编辑 --> |
|||
<newAndEdiDialog |
|||
:loading="Loading.newAndEdiLoading" |
|||
:active="active" |
|||
:pageStatus="pageStatus" |
|||
:formReveal="formReveal" |
|||
:formTitle="formTitle" |
|||
:displayDialog="editDialog" |
|||
:FormData="formReveal ? CreateFormData : editFormData" |
|||
:Form="formReveal ? CreateForm : editForm" |
|||
:Options="editOptions" |
|||
:Handle="editHandle" |
|||
:Rules="formReveal ? editRules.cerateRule : editRules.editRule" |
|||
@FormSubmit="FormSubmit" |
|||
@close="FormClose" |
|||
@goBack="goBack" |
|||
></newAndEdiDialog> |
|||
<!-- 搜索按钮——窗体组件 --> |
|||
<searchPage |
|||
ref="searchTable" |
|||
:tableLoading="Loading.autoTableLoading" |
|||
:advancedFilter="advancedFilter()" |
|||
:filterPageListParams="filterPageListParams" |
|||
:formTitle="searchTitle" |
|||
:displayDialog="displayDialog.AddNewDialog" |
|||
:searchTableData="searchData" |
|||
:searchTableColumns="searchColumns" |
|||
:searchTotalCount="searchTotalCount" |
|||
:supplierItemPage="searchPageListParams" |
|||
@handleSelectionChange="prepareFormData" |
|||
@SizeChange="searchAlterResultCount($event, searchPageListParams)" |
|||
@CurrentChange="searchAlertoldSkipCount($event, searchPageListParams)" |
|||
@tableButtonClick="searchSubmit(arguments)" |
|||
></searchPage> |
|||
<!-- 新导入 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" |
|||
:dropdownData="dropdownData" |
|||
:propsData="propsData" |
|||
:tabsDesTions="tabsDesTions" |
|||
:tableLoading="tableLoading" |
|||
@drawerShut="(val) => (displayDialog.detailsDialog = val)" |
|||
@drawerbutton="drawerbutton" |
|||
@handleCommand="drawerHandle" |
|||
@close-value="closeValue" |
|||
:firstTabs="firstTabs" |
|||
></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 { newAndEdiDialogMixins } from "@/mixins/newAndEdiDialogMixins" |
|||
import { mixins } from "@/mixins/mixins" |
|||
import { filterSelectMixins } from '@/mixins/filter-Select' |
|||
export default { |
|||
name: "PurchasePriceSheet", |
|||
mixins: [ |
|||
tableMixins, |
|||
LoadingMixins, |
|||
drawerMixins, |
|||
TableHeaderMixins, |
|||
mixins, |
|||
filterSelectMixins, |
|||
newAndEdiDialogMixins |
|||
], |
|||
computed: { |
|||
editDialog: { |
|||
get: function () { |
|||
return this.displayDialog.newDialog || this.displayDialog.editDialog; |
|||
}, |
|||
}, |
|||
}, |
|||
data () { |
|||
return { |
|||
URL: 'basedata/purchase-price-sheet', |
|||
tableLoading:false, |
|||
//常用按钮数据 |
|||
currenButtonData: [ |
|||
// this.defaultAddBtn(),//新增 |
|||
// this.defaultImportBtn(),//导入 |
|||
this.defaultExportBtn(),//导出 |
|||
this.defaultFieldSettingBtn(),//字段设置 |
|||
this.defaultFreshBtn(),//刷新 |
|||
this.defaultFilterBtn(),//筛选 |
|||
], |
|||
//新增 |
|||
CreateFormData: { |
|||
code: null, |
|||
}, |
|||
//编辑 |
|||
editFormData: { |
|||
code: null, |
|||
}, |
|||
editOptions: {}, |
|||
CreateForm: [ |
|||
{ type: "input", label: "物品代码", prop: 'code', colSpan: 12, validType:'numberLetter' }, |
|||
], |
|||
editForm: [ |
|||
{ type: "input", label: "物品代码", prop: 'code', disabled: true, colSpan: 12, validType:'numberLetter' }, |
|||
], |
|||
editRules: { |
|||
cerateRule: { |
|||
code: [{ required: true, trigger: "blur", message: "不可为空" }], |
|||
}, |
|||
editRule: { |
|||
code: [{ required: true, trigger: "blur", message: "不可为空" }], |
|||
} |
|||
}, |
|||
}; |
|||
}, |
|||
mounted () { |
|||
this.paging(); |
|||
}, |
|||
}; |
|||
</script> |
|||
<style lang="scss" scoped> |
|||
@import "../../../styles/basicData.scss"; |
|||
</style> |
@ -0,0 +1,163 @@ |
|||
|
|||
<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" |
|||
@buttonOperationClick="buttonOperationClick" |
|||
:currentPageProps="oldSkipCount" |
|||
:quicklySearchOption="quicklySearchOption" |
|||
@quicklySearchClick="quicklySearchClick" |
|||
@quicklySearchClear="quicklySearchClear" |
|||
:primarySearchOption="primarySearchOption" |
|||
@overallSearchFormClick="overallSearchFormClick" |
|||
:httpOverallSearchData="httpOverallSearchData" |
|||
> |
|||
</tablePagination> |
|||
<!-- 新增与编辑 --> |
|||
<newAndEdiDialog |
|||
:loading="Loading.newAndEdiLoading" |
|||
:active="active" |
|||
:pageStatus="pageStatus" |
|||
:formReveal="formReveal" |
|||
:formTitle="formTitle" |
|||
:displayDialog="editDialog" |
|||
:FormData="formReveal ? CreateFormData : editFormData" |
|||
:Form="formReveal ? CreateForm : editForm" |
|||
:Options="editOptions" |
|||
:Handle="editHandle" |
|||
:Rules="formReveal ? editRules.cerateRule : editRules.editRule" |
|||
@FormSubmit="FormSubmit" |
|||
@close="FormClose" |
|||
@goBack="goBack" |
|||
></newAndEdiDialog> |
|||
<!-- 搜索按钮——窗体组件 --> |
|||
<searchPage |
|||
ref="searchTable" |
|||
:tableLoading="Loading.autoTableLoading" |
|||
:advancedFilter="advancedFilter()" |
|||
:filterPageListParams="filterPageListParams" |
|||
:formTitle="searchTitle" |
|||
:displayDialog="displayDialog.AddNewDialog" |
|||
:searchTableData="searchData" |
|||
:searchTableColumns="searchColumns" |
|||
:searchTotalCount="searchTotalCount" |
|||
:supplierItemPage="searchPageListParams" |
|||
@handleSelectionChange="prepareFormData" |
|||
@SizeChange="searchAlterResultCount($event, searchPageListParams)" |
|||
@CurrentChange="searchAlertoldSkipCount($event, searchPageListParams)" |
|||
@tableButtonClick="searchSubmit(arguments)" |
|||
></searchPage> |
|||
<!-- 新导入 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" |
|||
:dropdownData="dropdownData" |
|||
:propsData="propsData" |
|||
:tabsDesTions="tabsDesTions" |
|||
:tableLoading="tableLoading" |
|||
@drawerShut="(val) => (displayDialog.detailsDialog = val)" |
|||
@drawerbutton="drawerbutton" |
|||
@handleCommand="drawerHandle" |
|||
@close-value="closeValue" |
|||
:firstTabs="firstTabs" |
|||
></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 { newAndEdiDialogMixins } from "@/mixins/newAndEdiDialogMixins" |
|||
import { mixins } from "@/mixins/mixins" |
|||
import { filterSelectMixins } from '@/mixins/filter-Select' |
|||
export default { |
|||
name: "SalePriceSheet", |
|||
mixins: [ |
|||
tableMixins, |
|||
LoadingMixins, |
|||
drawerMixins, |
|||
TableHeaderMixins, |
|||
mixins, |
|||
filterSelectMixins, |
|||
newAndEdiDialogMixins |
|||
], |
|||
computed: { |
|||
editDialog: { |
|||
get: function () { |
|||
return this.displayDialog.newDialog || this.displayDialog.editDialog; |
|||
}, |
|||
}, |
|||
}, |
|||
data () { |
|||
return { |
|||
URL: 'basedata/sale-price-sheet', |
|||
tableLoading:false, |
|||
//常用按钮数据 |
|||
currenButtonData: [ |
|||
// this.defaultAddBtn(),//新增 |
|||
// this.defaultImportBtn(),//导入 |
|||
this.defaultExportBtn(),//导出 |
|||
this.defaultFieldSettingBtn(),//字段设置 |
|||
this.defaultFreshBtn(),//刷新 |
|||
this.defaultFilterBtn(),//筛选 |
|||
], |
|||
//新增 |
|||
CreateFormData: { |
|||
code: null, |
|||
}, |
|||
//编辑 |
|||
editFormData: { |
|||
code: null, |
|||
}, |
|||
editOptions: {}, |
|||
CreateForm: [ |
|||
{ type: "input", label: "物品代码", prop: 'code', colSpan: 12, validType:'numberLetter' }, |
|||
], |
|||
editForm: [ |
|||
{ type: "input", label: "物品代码", prop: 'code', disabled: true, colSpan: 12, validType:'numberLetter' }, |
|||
], |
|||
editRules: { |
|||
cerateRule: { |
|||
code: [{ required: true, trigger: "blur", message: "不可为空" }], |
|||
}, |
|||
editRule: { |
|||
code: [{ required: true, trigger: "blur", message: "不可为空" }], |
|||
} |
|||
}, |
|||
}; |
|||
}, |
|||
mounted () { |
|||
this.paging(); |
|||
}, |
|||
}; |
|||
</script> |
|||
<style lang="scss" scoped> |
|||
@import "../../../styles/basicData.scss"; |
|||
</style> |
@ -0,0 +1,163 @@ |
|||
|
|||
<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" |
|||
@buttonOperationClick="buttonOperationClick" |
|||
:currentPageProps="oldSkipCount" |
|||
:quicklySearchOption="quicklySearchOption" |
|||
@quicklySearchClick="quicklySearchClick" |
|||
@quicklySearchClear="quicklySearchClear" |
|||
:primarySearchOption="primarySearchOption" |
|||
@overallSearchFormClick="overallSearchFormClick" |
|||
:httpOverallSearchData="httpOverallSearchData" |
|||
> |
|||
</tablePagination> |
|||
<!-- 新增与编辑 --> |
|||
<newAndEdiDialog |
|||
:loading="Loading.newAndEdiLoading" |
|||
:active="active" |
|||
:pageStatus="pageStatus" |
|||
:formReveal="formReveal" |
|||
:formTitle="formTitle" |
|||
:displayDialog="editDialog" |
|||
:FormData="formReveal ? CreateFormData : editFormData" |
|||
:Form="formReveal ? CreateForm : editForm" |
|||
:Options="editOptions" |
|||
:Handle="editHandle" |
|||
:Rules="formReveal ? editRules.cerateRule : editRules.editRule" |
|||
@FormSubmit="FormSubmit" |
|||
@close="FormClose" |
|||
@goBack="goBack" |
|||
></newAndEdiDialog> |
|||
<!-- 搜索按钮——窗体组件 --> |
|||
<searchPage |
|||
ref="searchTable" |
|||
:tableLoading="Loading.autoTableLoading" |
|||
:advancedFilter="advancedFilter()" |
|||
:filterPageListParams="filterPageListParams" |
|||
:formTitle="searchTitle" |
|||
:displayDialog="displayDialog.AddNewDialog" |
|||
:searchTableData="searchData" |
|||
:searchTableColumns="searchColumns" |
|||
:searchTotalCount="searchTotalCount" |
|||
:supplierItemPage="searchPageListParams" |
|||
@handleSelectionChange="prepareFormData" |
|||
@SizeChange="searchAlterResultCount($event, searchPageListParams)" |
|||
@CurrentChange="searchAlertoldSkipCount($event, searchPageListParams)" |
|||
@tableButtonClick="searchSubmit(arguments)" |
|||
></searchPage> |
|||
<!-- 新导入 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" |
|||
:dropdownData="dropdownData" |
|||
:propsData="propsData" |
|||
:tabsDesTions="tabsDesTions" |
|||
:tableLoading="tableLoading" |
|||
@drawerShut="(val) => (displayDialog.detailsDialog = val)" |
|||
@drawerbutton="drawerbutton" |
|||
@handleCommand="drawerHandle" |
|||
@close-value="closeValue" |
|||
:firstTabs="firstTabs" |
|||
></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 { newAndEdiDialogMixins } from "@/mixins/newAndEdiDialogMixins" |
|||
import { mixins } from "@/mixins/mixins" |
|||
import { filterSelectMixins } from '@/mixins/filter-Select' |
|||
export default { |
|||
name: "StdCostPriceSheet", |
|||
mixins: [ |
|||
tableMixins, |
|||
LoadingMixins, |
|||
drawerMixins, |
|||
TableHeaderMixins, |
|||
mixins, |
|||
filterSelectMixins, |
|||
newAndEdiDialogMixins |
|||
], |
|||
computed: { |
|||
editDialog: { |
|||
get: function () { |
|||
return this.displayDialog.newDialog || this.displayDialog.editDialog; |
|||
}, |
|||
}, |
|||
}, |
|||
data () { |
|||
return { |
|||
URL: 'basedata/stdcostpricesheet', |
|||
tableLoading:false, |
|||
//常用按钮数据 |
|||
currenButtonData: [ |
|||
// this.defaultAddBtn(),//新增 |
|||
// this.defaultImportBtn(),//导入 |
|||
this.defaultExportBtn(),//导出 |
|||
this.defaultFieldSettingBtn(),//字段设置 |
|||
this.defaultFreshBtn(),//刷新 |
|||
this.defaultFilterBtn(),//筛选 |
|||
], |
|||
//新增 |
|||
CreateFormData: { |
|||
code: null, |
|||
}, |
|||
//编辑 |
|||
editFormData: { |
|||
code: null, |
|||
}, |
|||
editOptions: {}, |
|||
CreateForm: [ |
|||
{ type: "input", label: "物品代码", prop: 'code', colSpan: 12, validType:'numberLetter' }, |
|||
], |
|||
editForm: [ |
|||
{ type: "input", label: "物品代码", prop: 'code', disabled: true, colSpan: 12, validType:'numberLetter' }, |
|||
], |
|||
editRules: { |
|||
cerateRule: { |
|||
code: [{ required: true, trigger: "blur", message: "不可为空" }], |
|||
}, |
|||
editRule: { |
|||
code: [{ required: true, trigger: "blur", message: "不可为空" }], |
|||
} |
|||
}, |
|||
}; |
|||
}, |
|||
mounted () { |
|||
this.paging(); |
|||
}, |
|||
}; |
|||
</script> |
|||
<style lang="scss" scoped> |
|||
@import "../../../styles/basicData.scss"; |
|||
</style> |
@ -0,0 +1,381 @@ |
|||
<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> |
|||
<curren-Drawer |
|||
:title="tableColumns" |
|||
:DrawerLoading="Loading.DrawerLoading" |
|||
:drawer="displayDialog.detailsDialog" |
|||
:propsData="propsData" |
|||
:Butttondata="DrawerButtonData" |
|||
:tabsDesTions="tabsDesTions" |
|||
@drawerShut="(val) => (displayDialog.detailsDialog = val)" |
|||
@drawerbutton="drawerbuttonHandle" |
|||
@handleCommand="drawerHandle" |
|||
@close-value="closeValue" |
|||
:tableColumns="detailsTableColumns" |
|||
:totalCount="totalCountDetails" |
|||
:MaxResultCount="MaxResultCountDetails" |
|||
@alterResultCountDetails="alterResultCountDetails" |
|||
@alertoldSkipCountDetails="alertoldSkipCountDetails" |
|||
:dropdownTabsData="[]" |
|||
:firstTabs="firstTabs" |
|||
></curren-Drawer> |
|||
<!--编辑--> |
|||
<StepsFormNotView |
|||
:formTitle="formTitle" |
|||
:displayDialog="displayDialog" |
|||
:CreateFormData="CreateFormData" |
|||
:CreateForm="CreateForm" |
|||
:Rules="editRules.cerateRule" |
|||
:Options="editOptions" |
|||
:detailsTableColumns="AddDetailsTableColumns" |
|||
:childTableData="childTableData" |
|||
@close="stepsCloseHandle(arguments)" |
|||
@detailsDataPush="detailsDataPush" |
|||
@detailsClear="detailsClear" |
|||
:isShowDeleteButton="false" |
|||
:addClickButton="false" |
|||
:successHandle="successHandle" |
|||
></StepsFormNotView> |
|||
</div> |
|||
</template> |
|||
<script> |
|||
import { |
|||
getDetailed, |
|||
getPageList, |
|||
getBomByComponentTree, |
|||
productRecycleNoteExport, |
|||
productionRecycleJobHandle, |
|||
// productionRecycleJobComplete |
|||
} from "@/api/wms-api"; |
|||
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 { filterSelectMixins } from '@/mixins/filter-Select' |
|||
import store from '@/store' |
|||
export default { |
|||
name: "customerDismantleJob", |
|||
mixins: [ |
|||
tableMixins, |
|||
LoadingMixins, |
|||
drawerMixins, |
|||
TableHeaderMixins, |
|||
mixins, |
|||
filterSelectMixins, |
|||
], |
|||
computed: { |
|||
hideButton: function () { |
|||
return function (val) { |
|||
let data = true |
|||
val.forEach(key => { |
|||
if (this.propsData.jobStatus == key) { |
|||
data = false |
|||
} |
|||
}) |
|||
return data |
|||
} |
|||
}, |
|||
}, |
|||
data () { |
|||
return { |
|||
URL: 'wms/store/production-recycle-job', |
|||
//常用按钮数据 |
|||
currenButtonData: [ |
|||
// this.defaultAddBtn(),//新增 |
|||
//导出 |
|||
this.defaultExportBtn(), |
|||
this.defaultFieldSettingBtn(),//字段设置 |
|||
this.defaultFreshBtn(),//刷新 |
|||
this.defaultFilterBtn(),//筛选 |
|||
], |
|||
DrawerButtonData: [ |
|||
{ |
|||
type: 'warning', |
|||
label: '执行', |
|||
name: "handle", |
|||
// 待处理+执行中+部分完成 |
|||
hide: () => { return this.hideButton([1,2,4]) }, |
|||
size: 'mini' |
|||
}, |
|||
// { |
|||
// type: 'success', |
|||
// label: '完成', |
|||
// name: "complete", |
|||
// // todo:什么状态可以执行,还是数量判断 |
|||
// hide: () => { return this.hideButton([1]) }, |
|||
// size: 'mini' |
|||
// }, |
|||
], |
|||
//新增 |
|||
CreateFormData: { |
|||
qty:null, |
|||
details:[] |
|||
}, |
|||
CreateForm: [ |
|||
{ type: "inputNumber", label: "数量", prop: "qty",colSpan: 12,min:1}, |
|||
], |
|||
editRules: { |
|||
cerateRule: { |
|||
qty: [ |
|||
{ required: true, trigger: "blur", message: "不可为空" }, |
|||
{ |
|||
type: "number", |
|||
trigger: ["blur"], |
|||
validator: (rule, value, callback) => { |
|||
//数量控制 |
|||
let _InventoryQty = Number(this.propsData.details[0].qty) - Number(this.propsData.details[0].executedQty) |
|||
if(_InventoryQty < value){ |
|||
return callback(new Error(`数量不能大于未完成数量${_InventoryQty}`)) |
|||
}else{ |
|||
callback() |
|||
} |
|||
} |
|||
} |
|||
], |
|||
}, |
|||
}, |
|||
AddDetailsTableColumns: [ |
|||
{ label: "子物料代码", prop: "partCode",width:"auto" }, |
|||
{ label: "数量", prop: 'qty',width:"auto" }, |
|||
{ type: "filterSelect", label: "目标库位", prop: "rawLocationCode", optionsLabel: "name", optionsValue: "code", |
|||
focus: (type,val) => { return this.getFilterList(type, val, "basedata/Location",this.isFilter("type", "5"))}, |
|||
// searchButton: (val) => { this.showSerarchPage(val, 'basedata/Location', 'InventoryBalance', '库位选择', this.CreateFormData) }, |
|||
width:"auto", |
|||
}, |
|||
], |
|||
childTableData:[{ |
|||
partCode:undefined, |
|||
qty:undefined, |
|||
rawLocationCode:undefined, |
|||
rawLocationArea:undefined, |
|||
rawLocationErpCode:undefined, |
|||
rawLocationGroup:undefined, |
|||
warehouseCode:undefined, |
|||
}], |
|||
successHandle:[ |
|||
{ |
|||
label:"下载报告", |
|||
click:(()=>{ |
|||
this.downloadReport() |
|||
}) |
|||
} |
|||
], |
|||
bomList:null, |
|||
submitRes:null,//提交后结果 |
|||
}; |
|||
}, |
|||
mounted () { |
|||
this.paging(); |
|||
}, |
|||
methods: { |
|||
drawerbuttonHandle(val){ |
|||
// 执行 |
|||
if (val == "handle") { |
|||
this.formTitle = this.$route.meta.title + "执行"; |
|||
this.CreateFormData = JSON.parse(JSON.stringify(this.propsData)); |
|||
// 默认值 |
|||
let _qty = Number(this.propsData.details[0].qty) - Number(this.propsData.details[0].executedQty) |
|||
this.$set(this.CreateFormData, "qty", _qty) |
|||
this.childTableData = [{ |
|||
partCode:undefined, |
|||
qty:undefined, |
|||
rawLocationCode:undefined, |
|||
rawLocationArea:undefined, |
|||
rawLocationErpCode:undefined, |
|||
rawLocationGroup:undefined, |
|||
warehouseCode:undefined, |
|||
}] |
|||
this.theEvent = "edit" |
|||
this.displayDialog.newDialog = true |
|||
} |
|||
// 完成 |
|||
// else if(val == "complete"){ |
|||
// // todo:强制完成,更改wsm-api中productionRecycleJobComplete的值 |
|||
// this.Loading.appMainLoading = true |
|||
// productionRecycleJobComplete(this.propsData.id).then(res => { |
|||
// this.Loading.appMainLoading = false |
|||
// this.paging() |
|||
// this.displayDialog.detailsDialog = false |
|||
// }).catch(err => { |
|||
// this.Loading.appMainLoading = false |
|||
// }) |
|||
// } |
|||
else{ |
|||
this.drawerbutton(val) |
|||
} |
|||
}, |
|||
//过滤查询条件 |
|||
isFilter (val, data) { |
|||
let filter = [ |
|||
{ |
|||
logic: "And", |
|||
column: val, |
|||
action: "==", |
|||
value: data |
|||
} |
|||
] |
|||
return filter |
|||
}, |
|||
detailsDataPush(data){ |
|||
if(data[1].prop == "rawLocationCode"){ |
|||
this.CreateFormData.details[data[3].$index].rawLocationArea = data[0].areaCode |
|||
this.CreateFormData.details[data[3].$index].rawLocationErpCode = data[0].erpLocationCode |
|||
this.CreateFormData.details[data[3].$index].rawLocationGroup = data[0].locationGroupCode |
|||
this.CreateFormData.details[data[3].$index].warehouseCode = data[0].warehouseCode |
|||
} |
|||
}, |
|||
detailsClear(data){ |
|||
console.log(data) |
|||
}, |
|||
// 成功后按钮操作 |
|||
downloadReport(){ |
|||
// 下载 |
|||
let _data = { |
|||
maxResultCount: 20, |
|||
skipCount: 0, |
|||
sorting: "", |
|||
route: "wms/store/product-recycle-note/export-product-recycle", |
|||
function: "客户退拆记录",//导出文件名称 |
|||
condition: { |
|||
filters: [ |
|||
{ |
|||
logic: "And", |
|||
column: "number", |
|||
action: "==", |
|||
value: this.submitRes.remark |
|||
} |
|||
] |
|||
} |
|||
} |
|||
this.Loading.appMainLoading = true |
|||
productRecycleNoteExport(_data) |
|||
.then(res=>{ |
|||
this.Loading.appMainLoading = false |
|||
this.blob(res,'客户退拆记录报告')//导出文件名称 |
|||
}) |
|||
.catch(err=>{ |
|||
this.Loading.appMainLoading = false |
|||
}) |
|||
}, |
|||
stepsSubmit (val) { |
|||
// 提交 |
|||
return new Promise((resolve, reject) => { |
|||
let _tableList = this.CreateFormData.details |
|||
let _empty = 0 |
|||
_tableList.forEach(item=>{ |
|||
if(!item.rawLocationCode || item.rawLocationCode.length <= 0){ |
|||
_empty ++ |
|||
} |
|||
}) |
|||
if(_empty > 0){ |
|||
this.$errorMsg("目标库位不可为空") |
|||
return |
|||
} |
|||
let _jobInfo = this.propsData |
|||
let _itemInfo = this.propsData.details[0] |
|||
let _data = JSON.parse(JSON.stringify(_jobInfo)) |
|||
_data.details[0].materialDetails = [],//目前规定明细中肯定只有一个子数据 |
|||
_data.details[0].qty = Number(this.CreateFormData.qty) |
|||
this.bomList.forEach((item,index)=>{ |
|||
let _item = { |
|||
itemCode: item.component, |
|||
qty: _tableList[index].qty, |
|||
locationCode: _tableList[index].rawLocationCode, |
|||
locationArea: _tableList[index].rawLocationArea, |
|||
locationGroup: _tableList[index].rawLocationGroup, |
|||
locationErpCode: _tableList[index].rawLocationErpCode, |
|||
warehouseCode: _tableList[index].warehouseCode, |
|||
} |
|||
_data.details[0].materialDetails.push(_item) |
|||
}) |
|||
this.Loading.appMainLoading = true |
|||
this.submitRes = null |
|||
productionRecycleJobHandle(_jobInfo.id,_data).then(res => { |
|||
this.Loading.appMainLoading = false |
|||
this.submitRes = res |
|||
resolve(); |
|||
}).catch(err => { |
|||
this.Loading.appMainLoading = false |
|||
reject(); |
|||
}) |
|||
}); |
|||
}, |
|||
stepsCloseHandle(data){ |
|||
// 关闭详情弹窗 |
|||
this.displayDialog.detailsDialog = false |
|||
this.stepsClose(data) |
|||
}, |
|||
PalletlFunction (val) { |
|||
return new Promise((resolve, reject) => { |
|||
if(val == 0){ |
|||
console.log(this.CreateFormData.qty) |
|||
this.Loading.appMainLoading = true |
|||
// 获取接口生成bom列表 |
|||
let _itemInfo = this.propsData.details[0] |
|||
getBomByComponentTree(_itemInfo.itemCode) |
|||
.then(res=>{ |
|||
this.bomList = res |
|||
this.Loading.appMainLoading = false |
|||
if(res.length > 0){ |
|||
this.CreateFormData.details = [] |
|||
res.forEach(item=>{ |
|||
let _item={ |
|||
partCode:item.component, |
|||
// details的qty是否要乘以主表的qty值 |
|||
qty:Number(item.componentQty)*this.CreateFormData.qty, |
|||
rawLocationCode:_itemInfo.rawLocationCode, |
|||
rawLocationArea:_itemInfo.rawLocationArea, |
|||
rawLocationGroup:_itemInfo.rawLocationGroup, |
|||
rawLocationErpCode:_itemInfo.rawLocationErpCode, |
|||
warehouseCode:_itemInfo.warehouseCode, |
|||
} |
|||
this.CreateFormData.details.push(_item) |
|||
}) |
|||
resolve(); |
|||
}else{ |
|||
this.$errorMsg(`并未找到${_itemInfo.itemCode}对应的bom数据`) |
|||
reject() |
|||
} |
|||
}) |
|||
.catch(err=>{ |
|||
this.Loading.appMainLoading = false |
|||
reject() |
|||
}) |
|||
} |
|||
// 提交 |
|||
if(val == 1){ |
|||
resolve() |
|||
} |
|||
}); |
|||
}, |
|||
} |
|||
}; |
|||
</script> |
|||
<style lang="scss" scoped> |
|||
@import "../../../styles/basicData.scss"; |
|||
</style> |
Loading…
Reference in new issue