成品入库 多选删除问题 其他问题

master
hou 4 years ago
parent 77fa0b0730
commit 345268e288

@ -1,37 +1,17 @@
<template>
<view class="page-raw-receipt">
<view
class="header"
:style="{ backgroundColor: `rgba(23, 83, 234, ${scrollTop / 100})` }"
>
<view class="header" :style="{ backgroundColor: `rgba(23, 83, 234, ${scrollTop / 100})` }">
<view class="left">
<u-icon class="icon" name="arrow-left" @click="back" />
</view>
<view class="title">{{ $t("message.product_item1") }}</view>
<view class="title">{{ $t('message.product_item1') }}</view>
<view class="right"></view>
</view>
<u-form
class="form"
ref="form"
:model="form"
:error-type="['toast']"
label-width="120rpx"
>
<u-form class="form" ref="form" :model="form" :error-type="['toast']" label-width="120rpx">
<u-row align="top">
<u-col :span="12">
<u-form-item
:required="true"
:label="this.$t('message.product_Location')"
prop="dockName"
>
<jPicker
sureColor="#ff0000"
@bindpicker="bookTypeChange"
showKey="value"
valKey="value"
:val="form.aimWl.value"
:options="model.returningTypeList"
/>
<u-form-item :required="true" :label="this.$t('message.product_Location')" prop="dockName">
<jPicker sureColor="#ff0000" @bindpicker="bookTypeChange" showKey="value" valKey="value" :val="form.aimWl.value" :options="model.returningTypeList" />
<!-- <u-input v-model="form.dockName" type="select" @click="returningTypeSelect = true" />-->
<!-- <u-select-->
<!-- v-model="returningTypeSelect"-->
@ -45,28 +25,12 @@
<!-- ></u-select>-->
</u-form-item>
<u-form-item :label="this.$t('message.product_barCode')">
<u-search
:placeholder="this.$t('message.po_PleaseInput')"
v-model="form.barCode"
@search="getBarcode"
:focus="firstFocus"
:show-action="false"
></u-search>
<u-search :placeholder="this.$t('message.po_PleaseInput')" v-model="form.barCode" @search="getBarcode" :focus="firstFocus" :show-action="false"></u-search>
</u-form-item>
</u-col>
<u-col :span="12">
<view class="table-wrapper">
<wyb-table
class="table"
ref="table"
width="100%"
enable-check="multiple"
show-left-and-right-border
:headers="headers"
:contents="materielList"
:show-vert-border="false"
@onCheck="onCheck"
></wyb-table>
<wyb-table class="table" ref="table" width="100%" enable-check="multiple" show-left-and-right-border :headers="headers" :contents="materielList" :show-vert-border="false" @onCheck="onCheck"></wyb-table>
</view>
</u-col>
</u-row>
@ -74,24 +38,20 @@
<view class="bottom-bar">
<u-row class="button-bar">
<u-col :span="3">
<u-button type="error" @click="onDelete">{{
$t("message.product_Delete")
}}</u-button>
<u-button type="error" @click="onDelete">{{ $t('message.product_Delete') }}</u-button>
</u-col>
<u-col :span="3">
<u-button type="primary" @click="clearList">
{{ $t("message.product_Empty") }}
{{ $t('message.product_Empty') }}
</u-button>
</u-col>
<u-col :span="3">
<u-button type="warning" @click="onSelectAll">
{{ $t("message.product_AllSelect") }}
{{ $t('message.product_AllSelect') }}
</u-button>
</u-col>
<u-col :span="3">
<u-button type="success" @click="onOk">{{
$t("message.product_Confirm")
}}</u-button>
<u-button type="success" @click="onOk">{{ $t('message.product_Confirm') }}</u-button>
</u-col>
</u-row>
</view>
@ -99,13 +59,13 @@
</template>
<script lang="ts">
import { Component, Ref, Watch } from "vue-property-decorator";
import { BasePage } from "@/components/base/page";
import { VForm, VFormRules } from "vue/types/form";
import model from "./model";
import { headers } from "./config";
import { session } from "@/store/modules/session";
import jPicker from "@/components/J-Picker/jPicker.vue";
import { Component, Ref, Watch } from 'vue-property-decorator';
import { BasePage } from '@/components/base/page';
import { VForm, VFormRules } from 'vue/types/form';
import model from './model';
import { headers } from './config';
import { session } from '@/store/modules/session';
import jPicker from '@/components/J-Picker/jPicker.vue';
interface OptionType {
label: string;
value: string;
@ -119,13 +79,13 @@ export default class finishProductOfflineDom extends BasePage {
/**
* 表格引用
*/
@Ref("table") readonly $table: any;
@Ref('table') readonly $table: any;
/**
* 表单引用
*/
@Ref("form") readonly $form!: VForm;
@Ref('form') readonly $form!: VForm;
@Watch("form", { immediate: true, deep: true })
@Watch('form', { immediate: true, deep: true })
onPersonChanged() {
this.isFormChange = true;
}
@ -158,8 +118,8 @@ export default class finishProductOfflineDom extends BasePage {
orderNo: null,
dockCode: null, // code
dockName: null, // name
Location: "",
barCode: "",
Location: '',
barCode: '',
aimWl: {} as OptionType,
};
//
@ -173,9 +133,7 @@ export default class finishProductOfflineDom extends BasePage {
* 表单校验
*/
rules: VFormRules<any> = {
dockName: [
{ required: false, message: this.$t("message.product_Tip1") as string },
],
dockName: [{ required: false, message: this.$t('message.product_Tip1') as string }],
};
bookTypeChange(e: any) {
this.form.aimWl = e.pickerName;
@ -190,7 +148,7 @@ export default class finishProductOfflineDom extends BasePage {
* 处理选择行 选中一条执行一次
*/
onCheck(e: any) {
console.log("e.data", e.data);
console.log('e.data', e.data);
this.selectMaterielList = [];
e.data.forEach((line: any) => {
const { lineData: item } = line;
@ -198,7 +156,7 @@ export default class finishProductOfflineDom extends BasePage {
});
}
back() {
this.form.barCode = "";
this.form.barCode = '';
this.selectMaterielList = [];
uni.navigateBack({ delta: 1 });
this.$table.onEmpty();
@ -215,10 +173,16 @@ export default class finishProductOfflineDom extends BasePage {
}
});
});
console.log("indexs", indexs);
for (let i = 0; i < indexs.length; i++) {
this.materielList.splice(indexs[i], 1);
delete this.materielList[indexs[i]];
}
let newList = [];
this.materielList.forEach((item: any) => {
if (item.barcode) {
newList.push(item);
}
});
this.materielList = newList;
this.selectMaterielList = [];
this.$table.onEmpty();
}
@ -232,7 +196,7 @@ export default class finishProductOfflineDom extends BasePage {
//
clearList() {
this.$form.resetFields();
this.form.barCode = "";
this.form.barCode = '';
this.selectMaterielList = [];
this.materielList = [];
this.$table.onEmpty();
@ -243,8 +207,8 @@ export default class finishProductOfflineDom extends BasePage {
onOk() {
if (this.selectMaterielList.length == 0) {
uni.showToast({
icon: "none",
title: this.$t("message.product_Tip2") as string,
icon: 'none',
title: this.$t('message.product_Tip2') as string,
});
} else {
this.$form.validate(async (valid: boolean) => {
@ -268,10 +232,10 @@ export default class finishProductOfflineDom extends BasePage {
});
await this.model.confirm(this.selectMaterielList);
this.$form.resetFields();
this.form.barCode = "";
this.form.barCode = '';
this.selectMaterielList = [];
this.isFormChange = false;
if (this.model.code == "1") {
if (this.model.code == '1') {
this.materielList = [];
} else {
this.materielList = this.model.data;
@ -283,12 +247,12 @@ export default class finishProductOfflineDom extends BasePage {
getBarcode() {
if (this.form.aimWl.value == undefined) {
uni.showToast({
icon: "none",
title: this.$t("message.product_Tip3") as string,
icon: 'none',
title: this.$t('message.product_Tip3') as string,
});
return;
}
console.log("this.form", this.form);
console.log('this.form', this.form);
if (this.materielList.length == 0) {
this.model.queryOrderInInfo(this.form).then(async () => {
await this.materielList.push(this.model.materielList[0]);
@ -297,7 +261,7 @@ export default class finishProductOfflineDom extends BasePage {
} else {
let flag = 0;
for (let i = 0; i < this.materielList.length; i++) {
console.log("11111", this.materielList[i]);
console.log('11111', this.materielList[i]);
if (this.form.barCode == this.materielList[i].barcode) {
flag = 1;
break;
@ -311,14 +275,14 @@ export default class finishProductOfflineDom extends BasePage {
});
} else {
uni.showToast({
icon: "none",
title: this.$t("message.product_Tip7") as string,
icon: 'none',
title: this.$t('message.product_Tip7') as string,
});
}
}
const item = {
...this.form,
barCode: String(""),
barCode: String(''),
};
this.firstFocus = false;
setTimeout(() => {
@ -331,8 +295,7 @@ export default class finishProductOfflineDom extends BasePage {
<style lang="scss" scoped>
.page-raw-receipt {
background: #f2f2f2
linear-gradient(0deg, #f2f2f2 0%, #4a78ea 51%, #1753ea 100%) no-repeat;
background: #f2f2f2 linear-gradient(0deg, #f2f2f2 0%, #4a78ea 51%, #1753ea 100%) no-repeat;
background-size: 100% 600rpx;
padding: 118rpx 30rpx 162rpx;
min-height: 100%;

@ -44,7 +44,7 @@
</u-form-item>
<!-- 文件号 -->
<u-form-item :label="$t('message.DocumentNumber')">
<u-input v-model="Some.fileNo" :disabled="true" placeholder="" />
<u-input v-model="Some.fileNo" placeholder="" />
</u-form-item>
<!-- 条码 -->
<u-form-item :label="$t('message.product_BarCode')">
@ -172,12 +172,22 @@ export default class productCheckReceipt extends BasePage {
icon: 'none',
title: this.$t('message.product_Tip8') as string,
});
this.model.recordsList.forEach((item: any) => {
item.fileNo = ' ';
});
this.wl.value = this.model.choiceCodeList[0].value;
this.Some = this.model.recordsList[0];
}
}
//
async onSubmit() {
if (!this.Some.fileNo) {
uni.showToast({
icon: 'none',
title: this.$t('message.fileNumber') as string,
});
return;
}
const orderlist = [
{
...this.model.orderInInfo,
@ -199,11 +209,12 @@ export default class productCheckReceipt extends BasePage {
icon: 'none',
title: this.$t('message.success') as string,
});
this.Some = {};
this.Some.fileNo = ' ';
this.wl = {};
this.form.order3 = '';
this.form.barcode = '';
}
this.Some = {};
this.wl = {};
this.form.order3 = '';
this.form.barcode = '';
}
//
async bill() {

@ -9,7 +9,7 @@
</view>
<u-form class="form" ref="form" style="padding-left: 30px" label-width="180rpx">
<u-form-item :label="$t('message.Transfer')">
<u-input v-model="model.userDefined" placeholder="" class="Transfer" />
<u-input v-model="userDefined4" placeholder="" class="Transfer" />
<u-button type="primary" style="height: 60rpx; margin-left: 20rpx" @click="generate">{{ $t('message.Query') }}</u-button>
</u-form-item>
</u-form>
@ -23,27 +23,31 @@ import { Component } from 'vue-property-decorator';
import { BasePage } from '@/components/base/page';
import { Headers } from './config';
import model from './model';
import { session } from '@/store/modules/session';
@Component
export default class RawReceiptDetail extends BasePage {
model = model;
headers = Headers;
detailedList: any = [];
onReady() {
this.generate();
userDefined4: any = '';
async onReady() {
this.userDefined4 = JSON.parse(sessionStorage.getItem('userDefined4'));
await this.generate();
}
async generate() {
if (model.userDefined == '') {
if (this.userDefined4 == '') {
uni.showToast({
icon: 'none',
title: this.$t('message._tips6') as any,
});
return;
}
let person = JSON.parse(localStorage.getItem('__GWMS_APP_STATE_DATA__') as any);
let content = {
loginName: person.session.user.loginName,
cpRef4: model.userDefined,
loginName: session.loginName,
factoryCode: session.factoryCode,
// cpRef4: model.userDefined,
proMoveCode: this.userDefined4,
};
await this.model.querydetaildlist(content);
let arr = this.model.detailedList;

@ -1,11 +1,11 @@
/**
*
*/
import vm from "@/main";
import vm from '@/main';
export const headers = [
{
label: vm.$t("message.Pi_OrderNo"),
key: "prdOrder",
label: vm.$t('message.Pi_OrderNo'),
key: 'prdOrder',
width: 550,
},
];
@ -15,56 +15,56 @@ export const headers = [
*/
export const resultHeaders = [
{
label: vm.$t("message.po_MaterielNo"),
key: "materialCode",
label: vm.$t('message.po_MaterielNo'),
key: 'materialCode',
width: 220,
},
{
label: vm.$t("message.po_DemandQuantity"),
key: "amount",
label: vm.$t('message.po_DemandQuantity'),
key: 'amount',
},
{
label: vm.$t("message.Pi_CumulativePickingQuantity"),
key: "totalMoAmount",
label: vm.$t('message.Pi_CumulativePickingQuantity'),
key: 'totalMoAmount',
width: 300,
},
{
label: vm.$t("message.Pi_HandoverQuantity"),
key: "totalHvAmount",
label: vm.$t('message.Pi_HandoverQuantity'),
key: 'totalHvAmount',
},
{
label: vm.$t("message.Pi_factory"),
key: "sapFactoryCode",
label: vm.$t('message.Pi_factory'),
key: 'sapFactoryCode',
},
{
label: vm.$t("message.Pi_Station"),
key: "sendSpot",
label: vm.$t('message.Pi_Station'),
key: 'sendSpot',
},
{
label: vm.$t("message.po_MaterielDes"),
key: "materialDesc",
label: vm.$t('message.po_MaterielDes'),
key: 'materialDesc',
width: 350,
},
{
label: "MRP",
key: "mrpCode",
label: 'MRP',
key: 'mrpCode',
},
{
label: vm.$t("message.Pi_unit"),
key: "unit",
label: vm.$t('message.Pi_unit'),
key: 'unit',
},
{
label: vm.$t("message.Pi_OrderNo"),
key: "prdOrder",
label: vm.$t('message.Pi_OrderNo'),
key: 'prdOrder',
},
{
label: vm.$t("message.Pi_FinishedProductModel"),
key: "prdMaterialDesc",
label: vm.$t('message.Pi_FinishedProductModel'),
key: 'prdMaterialDesc',
width: 300,
},
{
label: vm.$t("message.po_Location"),
key: "wkposCode",
label: vm.$t('message.po_Location'),
key: 'wkposCode',
},
];
@ -73,40 +73,40 @@ export const resultHeaders = [
*/
export const summaryHeaders = [
{
label: vm.$t("message.po_MaterielNo"),
key: "materialCode",
label: vm.$t('message.po_MaterielNo'),
key: 'materialCode',
width: 220,
},
{
label: vm.$t("message.po_DemandQuantity"),
key: "amount",
label: vm.$t('message.po_DemandQuantity'),
key: 'amount',
},
{
label: vm.$t("message.Pi_CurrentPickingQuantity"),
key: "currentAmount",
label: vm.$t('message.Pi_CurrentPickingQuantity'),
key: 'currentAmount',
width: 300,
},
{
label: vm.$t("message.Pi_PickedQuantity"),
key: "totalMoAmount",
label: vm.$t('message.Pi_PickedQuantity'),
key: 'totalMoAmount',
},
{
label: vm.$t("message.Pi_QuantityHandedOver"),
key: "totalHvAmount",
label: vm.$t('message.Pi_QuantityHandedOver'),
key: 'totalHvAmount',
},
{
label: vm.$t("message.po_Location"),
label: vm.$t('message.po_Location'),
// key: 'currentWkposCode',
key: "wkposCode",
key: 'wkposCode',
},
{
label: vm.$t("message.po_MaterielDes"),
key: "materialDesc",
label: vm.$t('message.po_MaterielDes'),
key: 'materialDesc',
width: 350,
},
{
label: vm.$t("message.Pi_unit"),
key: "unit",
label: vm.$t('message.Pi_unit'),
key: 'unit',
},
// {
// label: '成品型号',
@ -128,81 +128,81 @@ export const summaryHeaders = [
*/
export const orderHeaders = [
{
label: vm.$t("message.po_MaterielNo"),
key: "materialCode",
label: vm.$t('message.po_MaterielNo'),
key: 'materialCode',
width: 220,
},
{
label: vm.$t("message.po_DemandQuantity"),
key: "amount",
label: vm.$t('message.po_DemandQuantity'),
key: 'amount',
},
{
label: vm.$t("message.Pi_CurrentPickingQuantity"),
key: "currentAmount",
label: vm.$t('message.Pi_CurrentPickingQuantity'),
key: 'currentAmount',
width: 300,
},
{
label: vm.$t("message.Pi_PickedQuantity"),
key: "totalMoAmount",
label: vm.$t('message.Pi_PickedQuantity'),
key: 'totalMoAmount',
},
{
label: vm.$t("message.Pi_QuantityHandedOver"),
key: "totalHvAmount",
label: vm.$t('message.Pi_QuantityHandedOver'),
key: 'totalHvAmount',
},
{
label: vm.$t("message.po_Location"),
label: vm.$t('message.po_Location'),
// key: 'currentWkposCode',
key: "wkposCode",
key: 'wkposCode',
},
{
label: vm.$t("message.po_MaterielDes"),
key: "materialDesc",
label: vm.$t('message.po_MaterielDes'),
key: 'materialDesc',
width: 350,
},
{
label: vm.$t("message.Pi_unit"),
key: "unit",
label: vm.$t('message.Pi_unit'),
key: 'unit',
},
{
label: vm.$t("message.Pi_FinishedProductModel"),
key: "prdMaterialDesc",
label: vm.$t('message.Pi_FinishedProductModel'),
key: 'prdMaterialDesc',
width: 300,
},
{
label: vm.$t("message.Pi_factory"),
key: "sapFactoryCode",
label: vm.$t('message.Pi_factory'),
key: 'sapFactoryCode',
},
{
label: vm.$t("message.Pi_Station"),
key: "sendSpot",
label: vm.$t('message.Pi_Station'),
key: 'sendSpot',
},
{
label: vm.$t("message.Pi_OrderNo"),
key: "prdOrder",
label: vm.$t('message.Pi_OrderNo'),
key: 'prdOrder',
},
];
export const Headers = [
{
label: vm.$t("message.product_barCode"),
key: "barcode", //条码
label: vm.$t('message.product_barCode'),
key: 'barCode', //条码
width: 220,
},
{
label: vm.$t("message.transfer_barcode"),
key: "cpRef4", //移库批次
label: vm.$t('message.transfer_barcode'),
key: 'proMoveCode', //移库批次
},
{
label: vm.$t("message.Product_code"),
key: "productCode", //产品编码
label: vm.$t('message.Product_code'),
key: 'materialCode', //产品编码
width: 300,
},
{
label: vm.$t("message.Access_type"),
key: "oiType", //出入类型
label: vm.$t('message.Access_type'),
key: 'oiType', //出入类型
},
{
label: vm.$t("message.product_Location"),
key: "locCode", //库位
label: vm.$t('message.product_Location'),
key: 'wlToCode', //库位
},
];

@ -10,7 +10,7 @@
<u-form class="form" ref="form" :model="form" label-width="180rpx">
<!-- 移库码 -->
<u-form-item :label="$t('message.Transfer')">
<u-input v-model="model.userDefined" placeholder="" class="Transfer" />
<u-input v-model="userDefined4" placeholder="" class="Transfer" />
<u-button type="primary" style="height: 60rpx; margin-left: 20rpx" @click="generate">{{ $t('message.generate') }}</u-button>
</u-form-item>
<!-- 条码 -->
@ -80,6 +80,7 @@ export default class productCheckReceipt extends BasePage {
aimWl: {} as OptionType,
productCode: '',
};
userDefined4: any = '';
aimWlSelect = false;
cboPlaceSelect = false;
rules: VFormRules<any> = {
@ -115,23 +116,27 @@ export default class productCheckReceipt extends BasePage {
this.$form.setRules(this.rules);
this.model.queryLocation();
this.model.empty();
this.userDefined4 = JSON.parse(sessionStorage.getItem('userDefined4'));
sessionStorage.removeItem('userDefined4');
}
//
async generate() {
let person = JSON.parse(localStorage.getItem('__GWMS_APP_STATE_DATA__') as any);
let loginName = person.session.user.loginName;
await this.model.getCpMoveBatchNo({ loginName });
await this.model.getCpMoveBatchNo({
loginName: session.loginName,
});
this.userDefined4 = model.userDefined;
}
//
async bill() {
this.model.detailedList = [];
sessionStorage.setItem('userDefined4', JSON.stringify(this.userDefined4));
this.redirectTo(this.page.product.warehouse.wholeTransfer.Local);
}
//
onSubmit() {
this.$form.validate(async (valid: boolean) => {
if (!valid) return;
if (model.userDefined == ' ' || model.userDefined.length == 0) {
if (this.userDefined4 == ' ' || this.userDefined4.length == 0) {
uni.showToast({
icon: 'none',
title: this.$t('message.LibraryCode') as string,
@ -169,7 +174,7 @@ export default class productCheckReceipt extends BasePage {
orderType: '0',
keepBy: session.loginName as string,
factoryCode: session.factoryCode as string,
userDefined4: model.userDefined,
userDefined4: this.userDefined4,
},
];
await this.model.onTakeoutConfirm(orderlist);

@ -108,10 +108,10 @@ export class wholeTransfer extends VuexModule {
@MutationAction
async empty() {
const orderInInfo: any = [];
const userDefined = '';
// const userDefined = '';
const WlList = [];
const code = '';
return { orderInInfo, userDefined, WlList, code };
return { orderInInfo, WlList, code };
}
@MutationAction
async onTakeoutConfirm(list: any) {
@ -129,7 +129,7 @@ export class wholeTransfer extends VuexModule {
//查询明细
@Action({ commit: 'updateCheckedOrderInInfoListKw' })
async querydetaildlist(content: any) {
let res: any = await http.post('/wmspda/fg/queryListByBatchNo', content);
let res: any = await http.post('/wmspda/fg/queryListByMoveCode', content);
console.log('明细》》》》》》》》》', res.list);
this.detailedList = res.data;
return res;

Loading…
Cancel
Save