Browse Source

【NEV-PC】功能暂存

ag_report_nev
安虹睿 1 year ago
parent
commit
172d3d591c
  1. 1
      fe/PC/src/components/StepsForm/index.vue
  2. 213
      fe/PC/src/components/StepsFormNotView/index.vue
  3. 138
      fe/PC/src/components/StepsFormNotView/style/index.scss
  4. 32
      fe/PC/src/router/index.js
  5. 35
      fe/PC/src/utils/tableColumns/index.js
  6. 27
      fe/PC/src/utils/tabsDesTions/index.js
  7. 2
      fe/PC/src/utils/utils.js
  8. 11
      fe/PC/src/views/basicData/ItemsManage/Kitting.vue
  9. 201
      fe/PC/src/views/basicData/ItemsManage/Kitting_hasView.vue
  10. 2
      fe/PC/src/views/inventoryManage/InventoryQuery/splitPackingList.vue
  11. 293
      fe/PC/src/views/inventoryManage/recycledMaterials/materialsAdjustmentFunc.vue
  12. 108
      fe/PC/src/views/rawMaterialManage/purchaseReturn/returnApprove.vue
  13. 2
      fe/PC/src/views/rawMaterialManage/purchaseReturn/returnRequest.vue

1
fe/PC/src/components/StepsForm/index.vue

@ -93,7 +93,6 @@
</el-form-item>
</template>
</curren-Form>
<!-- todo:是否需要预览这部如果不可动态就新建一个组件删除预览 -->
<curren-Form
v-if="active === 2"
size="medium"

213
fe/PC/src/components/StepsForm/_index.vue → fe/PC/src/components/StepsFormNotView/index.vue

@ -50,8 +50,22 @@
>
<template>
<el-form-item class="formTable-box" prop="details" v-if="active == 1">
<div class="heder" v-if="addClick">
<span @click="openAddNew">添加一行</span>
<div class="heder">
<el-button
v-if="addClick"
type="primary"
@click="openAddNew"
icon="el-icon-plus"
size="mini"
>添加一行</el-button>
<el-button
v-if="importFormButton"
type="success"
icon="el-icon-download"
@click="openImportForm"
size="mini"
>导入</el-button>
</div>
<currenTable
:tableData="CreateFormData.details"
@ -59,6 +73,7 @@
:tableColumns="detailsTableColumns"
:selectionTable="false"
@push="detailsDataPush(arguments)"
@clear="detailsClear(arguments)"
>
<template v-if="showDeleteButton">
<el-table-column
@ -78,27 +93,6 @@
</el-form-item>
</template>
</curren-Form>
<curren-Form
v-if="active === 2"
size="medium"
class="page3"
:searchData="previewFormData"
:searchForm="CreateForm | formData"
:searchHandle="editHandle"
:rules="Rules"
@submitForm="editFormClick(arguments)"
>
<template>
<el-form-item class="formTable-box" prop="details">
<currenTable
:tableData="previewFormData.details"
:tableColumns="detailsTableColumns | formDataDetails"
:selectionTable="false"
>
</currenTable>
</el-form-item>
</template>
</curren-Form>
<div
v-if="active === step.length - 1 && pageStatus === 'success'"
class="page4"
@ -135,6 +129,9 @@
>
<el-result icon="error" title="错误提示" :subTitle="formTitle + '失败'">
<template slot="extra">
<el-button type="primary" size="medium" @click="resubmit()"
>重新提交</el-button
>
<el-button type="primary" size="medium" @click="close(1)"
>退出</el-button
>
@ -148,17 +145,29 @@
import currenForm from "@/components/currenForm"
import currenTable from "@/components/currenTable"
export default {
name: 'stepsForm',
name: 'StepsFormNotView',
components: {
currenForm,
currenTable
},
watch: {
active (val) {
if (val != 0) {
this.editHandle[0].label = '上一步'
} else {
this.editHandle[0].label = '取消'
if(val == 0){
if(this.hideFirstActiveCancel){
this.editHandle=[
{ label: "下一步", type: "primary", name: "determine" },
];
}else{
this.editHandle=[
{ label: "取消", name: "cancel" },
{ label: "下一步", type: "primary", name: "determine" },
];
}
}else if(val == 1){
this.editHandle=[
{ label: "上一步", name: "cancel" },
{ label: "提交", type: "primary", name: "determine" },
];
}
},
stepArray(newVal, oldVal){
@ -226,13 +235,6 @@ export default {
return []
}
},
//
previewFormData: {
type: Object,
default: () => {
return {}
}
},
//
Rules: {
type: Object,
@ -272,7 +274,7 @@ export default {
stepArray: {
type: Array,
default: () => {
return ["总体信息", "明细", "预览", "结果"]
return ["总体信息", "明细", "结果"]
}
},
//
@ -282,13 +284,27 @@ export default {
return true
}
},
//
importFormButton: {
type: Boolean,
default: () => {
return false
}
},
//
isShowDeleteButton: {
type: Boolean,
default: () => {
return true
}
}
},
//
isHideFirstActiveCancel:{
type: Boolean,
default: () => {
return false
}
},
},
computed: {
stepFilters () {
@ -306,8 +322,10 @@ export default {
formReveal: 1,
activeStep: 1,
pageStatus: '',
addClick: this.addClickButton,
showDeleteButton: this.isShowDeleteButton,
addClick: this.addClickButton,//
importForm:this.importFormButton,//
showDeleteButton: this.isShowDeleteButton,//-
hideFirstActiveCancel:this.isHideFirstActiveCancel,//
loading: false,
session: null,
step: this.stepArray,
@ -319,6 +337,11 @@ export default {
},
mounted () {
this.session = JSON.parse(JSON.stringify(this.CreateFormData))
if(this.hideFirstActiveCancel){
this.editHandle=[
{ label: "下一步", type: "primary", name: "determine" },
];
}
},
methods: {
//退
@ -336,6 +359,9 @@ export default {
detailsDataPush (val) {
this.$emit("detailsDataPush", val)
},
detailsClear(val) {
this.$emit("detailsClear", val)
},
// //
// tuoFormPrint () {
// this.$emit('tuoFormPrint')
@ -350,85 +376,61 @@ export default {
this.loading = false
}, reason => {
this.loading = false
}).catch(err=>{
this.loading = false
})
},
editFormClick (val) {
// Moment(this.CreateFormData.arriveTime).format()
if (val[0] == 0) {
// if (val[0] == 0) {
if (val[2].name == "cancel") {
if (this.active == 0) {
// debugger
// this.active = ''
this.close(0)
} else {
if (this.active == 2) {
this.active = this.active - this.activeStep
} else {
// if (this.active == 2) {
// this.active = this.active - this.activeStep
// } else {
this.active--
}
// }
}
} else {
val[1].validate((valid) => {
if (valid) {
const parent = this.$parent
if (this.active < this.step.length - 1) {
this.loading = true
if (this.active == this.step.length - 2) {
if(this.active == 0){
parent.PalletlFunction().then(res => {
//
this.active++
this.loading = false
}, reason => {
this.loading = false
}).catch(err=>{
this.loading = false
})
}else{
parent.PalletlFunction().then(res => {
//
this.loading = false
parent.stepsSubmit().then(res => {
if (res == '质检校验返回') {
this.loading = false
} else {
this.pageStatus = 'success'
this.active++
this.loading = false
}
}, reason => {
this.pageStatus = 'error'
this.active++
this.loading = false
}).catch(err=>{
this.loading = false
})
} else if (this.active == this.step.length - 3) {
parent.PalletlFunction().then(res => {
//
if (res == '质检任务跳过详情') {
parent.stepsSubmit().then(res => {
this.pageStatus = 'success'
this.active = this.active + 2
this.loading = false
}, reason => {
this.pageStatus = 'error'
this.active = this.active + 2
this.loading = false
}).catch(err=>{
this.loading = false
})
} else {
this.active++
}
this.pageStatus = 'success'
this.active++
this.loading = false
}, reason => {
this.loading = false
}).catch(err=>{
this.loading = false
})
} else {
parent.stepsHandelOne().then(res => {
if (res) {
this.addClick = res.open
this.active = this.active + res.index
this.activeStep = res.index
} else {
this.activeStep = 1
this.active++
}
this.loading = false
}, reason => {
if(reason=="return")return
this.pageStatus = 'error'
this.active++
this.loading = false
}).catch(err=>{
this.loading = false
})
}
}, reason => {
this.loading = false
}).catch(err=>{
this.loading = false
})
}
} else {
this.$errorMsg('请检查表单')
@ -436,11 +438,32 @@ export default {
})
}
},
resubmit(){
const parent = this.$parent
this.loading = true
parent.stepsSubmit().then(res => {
this.pageStatus = 'success'
this.loading = false
}, reason => {
this.loading = false
if(reason=="return")return
this.pageStatus = 'error'
this.loading = false
}).catch(err=>{
this.loading = false
})
},
//
openAddNew () {
const parent = this.$parent
parent.openAddNew()
},
//
openImportForm(){
const parent = this.$parent
parent.openImportFormHandle()
// this.displayDialog.importDialog = true
},
childTable (e, val) {
const parent = this.$parent
parent.childTable(e, val)

138
fe/PC/src/components/StepsFormNotView/style/index.scss

@ -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;
}
}
}

32
fe/PC/src/router/index.js

@ -190,6 +190,38 @@ export const constantRoutes = [
}
}]
},
{
path: '/',
component: Layout,
redirect: '/gridlayout',
hidden: true,
children: [{
path: 'PurchaseReturnApprove',
component: () => import('@/views/rawMaterialManage/purchaseReturn/returnApprove.vue'),
name: 'PurchaseReturnApprove',
meta: {
keepAlive : true,
title: '上架后退货审批',
icon: '系统首页',
}
}]
},
{
path: '/',
component: Layout,
redirect: '/gridlayout',
hidden: true,
children: [{
path: 'materialsAdjustmentFunc',
component: () => import('@/views/inventoryManage/recycledMaterials/materialsAdjustmentFunc.vue'),
name: 'materialsAdjustmentFunc',
meta: {
keepAlive : true,
title: '回收料功能页面',
icon: '系统首页',
}
}]
},
]
/**

35
fe/PC/src/utils/tableColumns/index.js

@ -1254,7 +1254,8 @@ export const unqualifiedInfo = [
{ label: "物品描述2", prop: "itemDesc2" },
{ label: "数量", prop: "qty" },
{ label: "物品单位", prop: "uom" },
{ label: "箱码", prop: "packingCode" },
{ label: "原箱箱码", prop: "packingCode" },
{ label: "拆箱箱码", prop: "packingCode2" },//todo:拆箱箱码的值确定
{ label: "ERP储位", prop: "locationErpCode" },
{ label: "不合格原因代码", prop: 'failedReason' },
{ label: "不合格原因说明", prop: 'failedReason', type: "filter", filters: "getDict" , dictType:"UnqualifiedReason" },
@ -1774,6 +1775,38 @@ export const PurchaseReturnRequest = [
// { label: "returnType", prop: 'returnType' },
// ************** 确认隐藏 ************************
]
// 上架后退货审批 20240229
export const PurchaseReturnApprove = [
{ label: "退货申请单号",
prop: "number",
fixed: "left",
type: "name",
width: orderWidth
},
{ label: "状态", prop: "requestStatus",type: "tagFilter", filters: "requestStatus" },
{ label: "创建时间", prop: "creationTime",type:"dateTime" },
{ label: "发货单号", prop: "asnNumber", width: orderWidth },
{ label: "订单号", prop: "poNumber",width: orderWidth },
{ label: "供应商代码", prop: "supplierCode" },
{ label: "退货时间", prop: "returnTime", type:"dateTime" },
{ label: "操作员", prop: "worker" },
{ label: "备注", prop: 'remark' },
{ label: "上次修改时间", prop: 'lastModificationTime', type: "dateTime" },
{ label: "生效日期", prop: 'activeDate', type: "dateTime" },
{ label: "收货单号", prop: 'rpNumber' },
// ************** 确认隐藏 ************************
// { label: "自动提交审批", prop: 'autoSubmit', type: "filter", filters: "whetherOrNot" },
// { label: "自动审批通过", prop: 'autoAgree', type: "filter", filters: "whetherOrNot" },
// { label: "自动执行", prop: 'autoHandle', type: "filter", filters: "whetherOrNot" },
// { label: "自动完成任务", prop: 'autoCompleteJob', type: "filter", filters: "whetherOrNot" },
// { label: "直接生成记录", prop: 'directCreateNote', type: "filter", filters: "whetherOrNot" },
// { label: "创建者ID", prop: 'creatorId' },
// { label: "上次修改者ID", prop: "lastModifierId" },
// { label: "returnType", prop: 'returnType' },
// { label: "事务ID", prop: "tenantId" },
// { label: "returnType", prop: 'returnType' },
// ************** 确认隐藏 ************************
]
// 上架后退货任务 20230412
export const PurchaseReturnJob = [
{

27
fe/PC/src/utils/tabsDesTions/index.js

@ -1217,6 +1217,33 @@ export const PurchaseReturnRequest = [
// { label: "returnType", prop: 'returnType' },
// ************** 确认隐藏 ************************
]
// 上架后退货审批 20240229
export const PurchaseReturnApprove = [
{ label: "退货申请单号", prop: "number" },
{ label: "状态", prop: "requestStatus", type: "filter", filters: "requestStatus" },
{ label: "发货单号", prop: "asnNumber" },
{ label: "订单号", prop: "poNumber" },
{ label: "供应商代码", prop: "supplierCode" },
{ label: "退货时间", prop: "returnTime",type:"dateTime" },
{ label: "自动提交审批", prop: 'autoSubmit', type: "filter", filters: "whetherOrNot" },
{ label: "自动审批通过", prop: 'autoAgree', type: "filter", filters: "whetherOrNot" },
{ label: "自动执行", prop: 'autoHandle', type: "filter", filters: "whetherOrNot" },
{ label: "自动完成任务", prop: 'autoCompleteJob', type: "filter", filters: "whetherOrNot" },
{ label: "直接生成记录", prop: 'directCreateNote', type: "filter", filters: "whetherOrNot" },
{ label: "操作员", prop: 'worker' },
{ label: "创建时间", prop: "creationTime",type:"dateTime" },
{ label: "创建者ID", prop: "creatorId" },
{ label: "上次修改时间", prop: 'lastModificationTime', type: "dateTime" },
{ label: "上次修改者ID", prop: "lastModifierId" },
{ label: "生效日期", prop: 'activeDate', type: "dateTime" },
{ label: "备注", prop: 'remark' },
{ label: "事务ID", prop: "tenantId" },
{ label: "收货单号", prop: 'rpNumber' },
// ************** 确认隐藏 ************************
// { label: "ID", prop: 'id' },
// { label: "returnType", prop: 'returnType' },
// ************** 确认隐藏 ************************
]
// 上架后退货任务 20230412
export const PurchaseReturnJob = [
{ label: "退货任务单号", prop: "number" },

2
fe/PC/src/utils/utils.js

@ -60,6 +60,7 @@ import conditionFilters from "@/components/conditionFilters" //高级筛选
import searchPage from '@/components/searchPage' //autocomplete拉取数据探弹窗
import newAndEdiDialog from '@/components/newAndEdiDialog' //普通新增与编辑
import stepsForm from '@/components/StepsForm' //步骤新增
import StepsFormNotView from '@/components/StepsFormNotView' //步骤新增(没有预览界面)
import handelFrom from '@/components/handelFrom' //执行表单
import umyTable from '@/components/umyTable' // 用于数据量过大table
@ -111,6 +112,7 @@ Vue.component('conditionFilters', conditionFilters)
Vue.component('searchPage', searchPage)
Vue.component('newAndEdiDialog', newAndEdiDialog)
Vue.component('stepsForm', stepsForm)
Vue.component('StepsFormNotView', StepsFormNotView)
Vue.component('handelFrom', handelFrom)
Vue.component('umyTable', umyTable)
Vue.prototype.$echarts = eCharts

11
fe/PC/src/views/basicData/ItemsManage/Kitting.vue

@ -26,11 +26,10 @@
>
</tablePagination>
<!--新增-->
<stepsForm
<StepsFormNotView
:formTitle="formTitle"
:displayDialog="displayDialog"
:CreateFormData="CreateFormData"
:previewFormData="previewFormData"
:CreateForm="CreateForm"
:Rules="editRules.cerateRule"
:Options="editOptions"
@ -39,7 +38,7 @@
@close="stepsClose(arguments)"
@detailsDataPush="detailsDataPush"
@detailsClear="detailsClear"
></stepsForm>
></StepsFormNotView>
<!-- @DataPush="DataPush" -->
<!-- @detailsDataPush="detailsDataPush"
@autocompleteChange="autocompleteChange"
@ -197,6 +196,7 @@ export default {
})
},
PalletlFunction (val) {
console.log(19999,val)
return new Promise((resolve, reject) => {
let array = []
let _isEmpty = 0
@ -209,6 +209,7 @@ export default {
if(_isEmpty > 0){
this.$errorMsg('【包装数量】与【物料代码】不能为空!')
reject()
return
}
let arraySort = array.sort()
for(let i=0; i<arraySort.length; i++){
@ -218,16 +219,14 @@ export default {
break
}
}
this.previewFormData = this.CreateFormData;
resolve();
});
},
stepsSubmit (val) {
return new Promise((resolve, reject) => {
console.log(259,this.previewFormData)
console.log(260,this.CreateFormData)
reject();
// postCreate(this.previewFormData, this.URL).then((res) => {
// postCreate(this.CreateFormData, this.URL).then((res) => {
// this.stepsPrint = res
// this.propsData = res
// resolve();

201
fe/PC/src/views/basicData/ItemsManage/Kitting_old.vue → fe/PC/src/views/basicData/ItemsManage/Kitting_hasView.vue

@ -25,25 +25,25 @@
:httpOverallSearchData="httpOverallSearchData"
>
</tablePagination>
<!-- 新增与编辑 -->
<newAndEdiDialog
:loading="Loading.newAndEdiLoading"
:active="active"
:pageStatus="pageStatus"
:formReveal="formReveal"
<!--新增-->
<stepsForm
:formTitle="formTitle"
:displayDialog="editDialog"
:FormData="formReveal ? CreateFormData : editFormData"
:Form="formReveal ? CreateForm : editForm"
:displayDialog="displayDialog"
:CreateFormData="CreateFormData"
:previewFormData="previewFormData"
:CreateForm="CreateForm"
:Rules="editRules.cerateRule"
:Options="editOptions"
:Handle="editHandle"
:Rules="formReveal ? editRules.cerateRule : editRules.editRule"
@push="addNewDataPush"
@clear="addNewDataClear"
@FormSubmit="FormSubmit"
@close="FormClose"
@goBack="goBack"
></newAndEdiDialog>
:detailsTableColumns="AddDetailsTableColumns"
:childTableData="childTableData"
@close="stepsClose(arguments)"
@detailsDataPush="detailsDataPush"
@detailsClear="detailsClear"
></stepsForm>
<!-- @DataPush="DataPush" -->
<!-- @detailsDataPush="detailsDataPush"
@autocompleteChange="autocompleteChange"
@typeSelectOptionClick="typeSelectOptionClick" -->
<!-- 新导入 disabledMethod 导入方式禁用 disabledIsAllowPartImport 是否局部导入禁用-->
<!-- methodValue 导入方式默认选项 是否局部导入 默认选项 -->
<importFile
@ -83,7 +83,7 @@
:propsData="propsData"
:tabsDesTions="tabsDesTions"
@drawerShut="(val) => (displayDialog.detailsDialog = val)"
@drawerbutton="drawerbutton"
@drawerbutton="drawerbuttonHandle"
@handleCommand="drawerHandle"
@close-value="closeValue"
></curren-Drawer>
@ -98,7 +98,7 @@ import { newAndEdiDialogMixins } from "@/mixins/newAndEdiDialogMixins"
import { mixins } from "@/mixins/mixins"
import { filterSelectMixins } from '@/mixins/filter-Select'
export default {
name: "TotalQuantity",
name: "Kitting",
mixins: [
tableMixins,
LoadingMixins,
@ -130,87 +130,124 @@ export default {
//
CreateFormData: {
code:null,
stdPackQty:null,
itemCode:null,
locationCode:null,
},
//
editFormData: {
code:null,
stdPackQty:null,
itemCode:null,
locationCode:null,
concurrencyStamp: ""
remark:null,
details:[]
},
editOptions: {},
CreateForm: [
{ type:"inputNumber", label: "包装数量", prop: 'stdPack',colSpan: 12, min:1 },
{ 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.CreateFormData) },
colSpan: 12
},
{ type:"input", disabled:true, label: "物料名称", prop: "itemName",colSpan: 12 },
{ type:"input", disabled:true, label: "物料描述1", prop: "itemDesc1",colSpan: 12 },
{ type:"input", disabled:true, label: "物料描述2", prop: "itemDesc2",colSpan: 12 },
{ type:"input", disabled:true, label: "配置", prop: 'configuration',colSpan: 12 },
{ type: "input", label: "编码", prop: "code",colSpan: 12 },
{ type: "input", label: "备注", prop: "remark", colSpan: 12 },
],
editForm: [
{ type:"inputNumber", label: "包装数量", prop: 'stdPack',colSpan: 12, min:1 },
editRules: {
cerateRule: {
code: [{ required: true, trigger: "blur", message: "不可为空" }],
},
},
AddDetailsTableColumns: [
{ type:"input", label: "包装数量", prop: 'stdPack',width:"auto" },
{ 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.CreateFormData) },
colSpan: 12
width: "auto",searchButton:false
},
{ type:"input", disabled:true, label: "物料名称", prop: "itemName",colSpan: 12 },
{ type:"input", disabled:true, label: "物料描述1", prop: "itemDesc1",colSpan: 12 },
{ type:"input", disabled:true, label: "物料描述2", prop: "itemDesc2",colSpan: 12 },
{ type:"input", disabled:true, label: "配置", prop: 'configuration',colSpan: 12 },
{ label: "物料名称", prop: "itemName",width:"auto" },
{ label: "物料描述1", prop: "itemDesc1",width:"auto" },
{ label: "物料描述2", prop: "itemDesc2",width:"auto" },
{ label: "配置", prop: 'configuration',width:"auto" },
],
editRules: {
cerateRule: {
stdPack: [{ required: true, trigger: "blur", message: "不可为空" }],
itemCode: [{ required: true, trigger: "blur", message: "不可为空" }],
},
editRule: {
stdPack: [{ required: true, trigger: "blur", message: "不可为空" }],
itemCode: [{ required: true, trigger: "blur", message: "不可为空" }],
}
},
childTableData:[{
stdPack:null,
itemCode:null,
itemName:null,
itemDesc1:null,
itemDesc2:null,
configuration:null,
}],
};
},
mounted () {
this.paging();
},
methods:{
addNewDataPush(data){
if(data[1].prop == "itemCode"){
if(this.formReveal){
this.CreateFormData.itemName = data[0].name
this.CreateFormData.itemDesc1 = data[0].desc1
this.CreateFormData.itemDesc2 = data[0].desc2
this.CreateFormData.configuration = data[0].configuration
}else{
this.editFormData.itemName = data[0].name
this.editFormData.itemDesc1 = data[0].desc1
this.editFormData.itemDesc2 = data[0].desc2
this.editFormData.configuration = data[0].configuration
methods: {
addNewDataPush(val){
console.log(201,val)
},
drawerbuttonHandle(val){
if(val == "edit"){
this.formTitle = this.$route.meta.title + "编辑";
this.displayDialog.newDialog = true
this.CreateFormData = this.propsData
this.childTableData = [{
stdPack:null,
itemCode:null,
itemName:null,
itemDesc1:null,
itemDesc2:null,
configuration:null,
}]
// this.formReveal = false
// this.theEvent = "edit"
}else{
this.drawerbutton(val)
}
},
FormSubmitHandle(val){
this.$nextTick(()=>{
this.FormSubmit(val)
})
},
PalletlFunction (val) {
return new Promise((resolve, reject) => {
let array = []
let _isEmpty = 0
this.CreateFormData.details.forEach(item => {
array.push(item.itemCode)
if(!item.itemCode || item.itemCode.length <= 0 || !item.stdPack || item.stdPack.length <= 0 || Number(item.stdPack) == 0){
_isEmpty ++
}
})
if(_isEmpty > 0){
this.$errorMsg('【包装数量】与【物料代码】不能为空!')
reject()
}
let arraySort = array.sort()
for(let i=0; i<arraySort.length; i++){
if(arraySort[i] == arraySort[i+1]){
this.$errorMsg('物料:【' + arraySort[i] + '】重复,请删除后,再操作!')
reject()
break
}
}
this.previewFormData = this.CreateFormData;
resolve();
});
},
stepsSubmit (val) {
return new Promise((resolve, reject) => {
reject();
// postCreate(this.previewFormData, this.URL).then((res) => {
// this.stepsPrint = res
// this.propsData = res
// resolve();
// }).catch(err => {
// reject();
// });
});
},
detailsDataPush(data){
if(data[1].prop == "itemCode"){
this.CreateFormData.details[data[3].$index].itemName = data[0].name
this.CreateFormData.details[data[3].$index].itemDesc1 = data[0].desc1
this.CreateFormData.details[data[3].$index].itemDesc2 = data[0].desc2
this.CreateFormData.details[data[3].$index].configuration = data[0].configuration
}
},
addNewDataClear(data){
detailsClear(data){
if(data[0].prop == "itemCode"){
if(this.formReveal){
this.CreateFormData.itemName = ""
this.CreateFormData.itemDesc1 = ""
this.CreateFormData.itemDesc2 = ""
this.CreateFormData.configuration = ""
}else{
this.editFormData.itemName = ""
this.editFormData.itemDesc1 = ""
this.editFormData.itemDesc2 = ""
this.editFormData.configuration = ""
}
this.CreateFormData.details[data[1].$index].itemName = ""
this.CreateFormData.details[data[1].$index].itemDesc1 = ""
this.CreateFormData.details[data[1].$index].itemDesc2 = ""
this.CreateFormData.details[data[1].$index].configuration = ""
}
}
}

2
fe/PC/src/views/inventoryManage/InventoryQuery/splitPackingList.vue

@ -88,7 +88,7 @@
//
currenButtonData: [
// this.defaultImportBtn(),//
// this.defaultExportBtn(),//
this.defaultExportBtn(),//
this.defaultFieldSettingBtn(),//
this.defaultFreshBtn(),//
this.defaultFilterBtn(),//

293
fe/PC/src/views/inventoryManage/recycledMaterials/materialsAdjustmentFunc.vue

@ -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>

108
fe/PC/src/views/rawMaterialManage/purchaseReturn/returnApprove.vue

@ -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>

2
fe/PC/src/views/rawMaterialManage/purchaseReturn/returnRequest.vue

@ -94,7 +94,7 @@ export default {
this.defaultFilterBtn(),//
],
DrawerButtonData: [
...requestData(this)
// ...requestData(this)
],
};
},

Loading…
Cancel
Save