到货登记,质量检验来料合并,不合格记录添加时间筛选

master
guoshuang 10 months ago
parent 60d0181c7a
commit 5216a337f8

@ -607,7 +607,25 @@
"navigationStyle": "custom",
"navigationBarTextStyle": "white"
}
},
{
"path": "pages/wms/Raw/ArrivalRegistration/index",
"style": {
"navigationBarTitleText": "到货登记",
"navigationStyle": "custom",
"navigationBarTextStyle": "white"
}
},
{
"path": "pages/wms/Raw/ArrivalRegistration/detail",
"style": {
"navigationBarTitleText": "到货登记详细",
"navigationStyle": "custom",
"navigationBarTextStyle": "white"
}
}
],

@ -142,7 +142,7 @@ export default class LoginPage extends BasePage {
// console.log('Version////', this.Version);
}
///******************
version = '0.0.98'; //
version = '0.0.99'; //
//version = '0.0.11'; //
//*************** false true ****************
//isTest = true;

@ -9,9 +9,13 @@
</view>
<u-form class="form" ref="form" label-width="180rpx">
<!-- 订单 -->
<!-- <u-form-item label="检验节点"> -->
<jPicker sureColor="#ff0000" :moren="moren" @bindpicker="selectProductlocCode" showKey="label" valKey="value" :val="selectList.value" :options="model.selectList" />
<!-- </u-form-item> -->
<u-form-item>
<jPicker sureColor="#ff0000" :moren="moren" @bindpicker="selectProductlocCode" showKey="label" valKey="value" :val="selectList.value" :options="model.selectList" />
</u-form-item>
<u-form-item label="日期">
<u-input @click="onfocuscalender" placeholder="请选择日期" v-model="checkTime" :clearable="false" />
<u-icon name="close-circle-fill" @click="clear" color="rgb(96, 98, 102)" size="28"></u-icon>
</u-form-item>
</u-form>
<view class="scroll">
<view v-for="(item, index) in list" :key="index">
@ -62,65 +66,38 @@
<view>
<u-popup v-model="show" mode="center" width="98%" :closeable="true">
<view class="selectlist">
<div class="item-name">
<div class="quest">来料不合格处理:</div>
<div class="details" style="display: flex; justify-content: space-between">
<div>厂区{{ formdata.factoryCode }}</div>
<div>OEM厂名{{ formdata.supplierCode }}</div>
</div>
<div class="details">
<div>来料类别{{ formdata.supplierCode }}</div>
<div>物料名称{{ formdata.materialName }}</div>
</div>
<div class="details">
<div>供应商编码{{ formdata.supplierCode }}</div>
<div>供应商名称{{ formdata.supplierName }}</div>
</div>
<div class="details">
<div>来料批次号{{ formdata.incomeBatchNo }}</div>
<div>来料日期{{ formdata.incomeTime }}</div>
</div>
<div class="details" style="display: flex; justify-content: space-between">
<div>物料数量{{ formdata.quality }}</div>
<div>单位{{ formdata.unit }}</div>
</div>
<div class="details" style="display: flex; justify-content: space-between">
<div>检验编号{{ formdata.orderNo }}</div>
<div>检验人{{ formdata.checkManName }}</div>
</div>
<div class="details">
<div>物料来源{{ formdata.supplierCode }}</div>
</div>
</div>
</view>
<u-form class="Belowsform3" ref="form" label-width="230rpx" label-position="top">
<u-form-item label="不合格情况描述:">
<u-input v-model="formdata.workCost" placeholder="请输入内容" :border="true" height="100" :auto-height="true" type="textarea" />
</u-form-item>
<div class="title">处理人1 姓名1 2023-01-01 11:11:11</div>
<u-form-item class="input1">
<u-input v-model="formdata.workCost" :disabled="true" placeholder="处理意见:退货" />
</u-form-item>
<div class="title">处理人2 姓名1 2023-01-01 11:11:11</div>
<u-form-item class="input1">
<u-input v-model="formdata.workCost" :disabled="true" placeholder="处理意见:退货" />
</u-form-item>
<u-form-item label="处理人3:">
<u-input v-model="formdata.workCost" placeholder="请输入内容" :border="true" height="100" :auto-height="true" type="textarea" />
</u-form-item>
</u-form>
<view class="poupbutton" style="margin-top: 10px">
<div>
<u-button style="width: 100px; height: 35px" @click="onOk" size="mini" type="primary">提交</u-button>
</div>
<div>
<u-button style="width: 100px; height: 35px" size="mini" type="error" @click="nopoup"></u-button>
</div>
<view v-for="(item, index) in detailList" :key="index">
<u-form style="margin-top: 10rpx" class="form2">
<view class="list">
<view class="row-list">
<view class="list-item"> 操作日期: </view>
<view> {{ item.operatedate }} </view>
</view>
<view class="row-list">
<view class="list-item"> 操作时间: </view>
<view> {{ item.operatetime }} </view>
</view>
<view class="row-list">
<view class="list-item" style="white-space: nowrap"> 操作者: </view>
<view> {{ item.operator }} </view>
</view>
<view class="row-list">
<view class="list-item" style="white-space: nowrap"> 接收者: </view>
<view> {{ item.receivedpersons }} </view>
</view>
<view class="row-list">
<view class="list-item" style="white-space: nowrap"> 签字类型: </view>
<view> {{ item.logtype }} </view>
</view>
</view>
</u-form>
</view>
</view>
</u-popup>
<view v-if="show" class="mask"></view>
</view>
<u-select v-model="showselect" mode="mutil-column-auto" :list="selectlist" @confirm="confirmselect"></u-select>
<u-calendar v-model="iscalendar" :mode="mode" @change="changetime"></u-calendar>
</view>
</template>
<script lang="ts">
@ -128,6 +105,7 @@ import { Component } from 'vue-property-decorator';
import { BasePage } from '@/components/base/page';
import jPicker from '@/components/J-Picker/jPicker.vue';
import model from './model';
import moment from 'moment';
//import { any } from 'lodash/fp';
import { session } from '@/store/modules/session';
@Component({
@ -139,6 +117,9 @@ export default class PurchaseWHSRM extends BasePage {
model = model;
moren = '请选择检验节点';
list: any = [];
checkTime: any = moment().format('YYYY-MM-DD');
iscalendar = false;
mode = 'date';
show = false;
showselect = false;
isshow = false;
@ -220,266 +201,7 @@ export default class PurchaseWHSRM extends BasePage {
],
},
];
detailList: any = [
{
createBy: 'job',
createTime: '2023-12-01 09:25:38',
updateBy: null,
updateTime: null,
remark: null,
poolName: null,
deptId: null,
id: '0d28bb4dc1b14186a0ad7610c4ea98a4',
code: null,
orderCode: 'O20231201001',
parentCode: null,
itemCode: '20231128002',
itemName: '纸盒料架',
itemMethod: '目视、触摸',
itemType: 'spotInspection',
itemTypeName: '点检',
factoryCode: '1000',
attr1: null,
attr2: null,
attr3: null,
delFlag: '0',
standardList: [
{
createBy: 'job',
createTime: '2023-12-01 09:25:38',
updateBy: null,
updateTime: '2023-12-01 09:30:55',
remark: null,
poolName: null,
deptId: null,
id: 'c0c4cc8a651f49ae9a63b4397c8745f4',
code: null,
parentCode: '0d28bb4dc1b14186a0ad7610c4ea98a4',
orderCode: 'O20231201001',
standardType: 'qualitative',
standardName: '检查料架有没有松动,目视有没有异物堵塞线体',
detailUpLimit: null,
detailDownLimit: null,
detailUnit: null,
detailReach: '1',
actualValue: null,
detailError: null,
factoryCode: '1000',
attr1: null,
attr2: null,
attr3: null,
delFlag: '0',
picturePath: null,
picturePaths: null,
standardTypeName: null,
errorFlag: '0',
faultType: null,
repairReach: null,
repairValue: null,
repairPicture: null,
itemName: null,
checkPictrueList: [],
},
],
itemTools: null,
},
{
createBy: 'job',
createTime: '2023-12-01 09:25:38',
updateBy: null,
updateTime: null,
remark: null,
poolName: null,
deptId: null,
id: '34220cb558004bd09e08fdf14fada352',
code: null,
orderCode: 'O20231201001',
parentCode: null,
itemCode: '20231128003',
itemName: '入盒机构',
itemMethod: '目视、触摸',
itemType: 'spotInspection',
itemTypeName: '点检',
factoryCode: '1000',
attr1: null,
attr2: null,
attr3: null,
delFlag: '0',
standardList: [
{
createBy: 'job',
createTime: '2023-12-01 09:25:38',
updateBy: null,
updateTime: '2023-12-01 09:30:55',
remark: null,
poolName: null,
deptId: null,
id: '0b2277d4760c4063b3981a52675ca96b',
code: null,
parentCode: '34220cb558004bd09e08fdf14fada352',
orderCode: 'O20231201001',
standardType: 'qualitative',
standardName: '打开入盒机前用气枪清理表面灰尘、废料',
detailUpLimit: null,
detailDownLimit: null,
detailUnit: null,
detailReach: '1',
actualValue: null,
detailError: null,
factoryCode: '1000',
attr1: null,
attr2: null,
attr3: null,
delFlag: '0',
picturePath: null,
picturePaths: null,
standardTypeName: null,
errorFlag: '0',
faultType: null,
repairReach: null,
repairValue: null,
repairPicture: null,
itemName: null,
checkPictrueList: [],
},
{
createBy: 'job',
createTime: '2023-12-01 09:25:38',
updateBy: null,
updateTime: '2023-12-01 09:30:55',
remark: null,
poolName: null,
deptId: null,
id: '6152eff58de14a86af1cb52a010c8bf7',
code: null,
parentCode: '34220cb558004bd09e08fdf14fada352',
orderCode: 'O20231201001',
standardType: 'qualitative',
standardName: '检查入盒机构传动部、螺丝有没有松动',
detailUpLimit: null,
detailDownLimit: null,
detailUnit: null,
detailReach: '1',
actualValue: null,
detailError: null,
factoryCode: '1000',
attr1: null,
attr2: null,
attr3: null,
delFlag: '0',
picturePath: null,
picturePaths: null,
standardTypeName: null,
errorFlag: '0',
faultType: null,
repairReach: null,
repairValue: null,
repairPicture: null,
itemName: null,
checkPictrueList: [],
},
],
itemTools: null,
},
{
createBy: 'job',
createTime: '2023-12-04 14:32:04',
updateBy: null,
updateTime: null,
remark: null,
poolName: null,
deptId: null,
id: '32e34709fd2846e79b46fce9c1dad477',
code: null,
orderCode: 'O20231204005',
parentCode: null,
itemCode: '20231117006',
itemName: '皮带、轴承、齿轮',
itemMethod: '试机',
itemType: 'spotInspection',
itemTypeName: '点检',
factoryCode: '1000',
attr1: null,
attr2: null,
attr3: null,
delFlag: '0',
standardList: [
{
createBy: 'job',
createTime: '2023-12-04 14:32:04',
updateBy: null,
updateTime: '2023-12-04 14:34:01',
remark: null,
poolName: null,
deptId: null,
id: '8a107dae72d1469590cba36066f46621',
code: null,
parentCode: '32e34709fd2846e79b46fce9c1dad477',
orderCode: 'O20231204005',
standardType: 'quantify',
standardName: '机油量',
detailUpLimit: 30.0,
detailDownLimit: 10.0,
detailUnit: 'ml',
detailReach: '0',
actualValue: 0.0,
detailError: null,
factoryCode: '1000',
attr1: null,
attr2: null,
attr3: null,
delFlag: '0',
picturePath: null,
picturePaths: null,
standardTypeName: null,
errorFlag: null,
faultType: null,
repairReach: null,
repairValue: null,
repairPicture: null,
itemName: null,
checkPictrueList: [],
},
{
createBy: 'job',
createTime: '2023-12-04 14:32:04',
updateBy: null,
updateTime: '2023-12-04 14:34:01',
remark: null,
poolName: null,
deptId: null,
id: '99ed048515a0456c9126bd83da298e5d',
code: null,
parentCode: '32e34709fd2846e79b46fce9c1dad477',
orderCode: 'O20231204005',
standardType: 'qualitative',
standardName: '运行流畅无异响',
detailUpLimit: null,
detailDownLimit: null,
detailUnit: null,
detailReach: '0',
actualValue: null,
detailError: null,
factoryCode: '1000',
attr1: null,
attr2: null,
attr3: null,
delFlag: '0',
picturePath: null,
picturePaths: null,
standardTypeName: null,
errorFlag: null,
faultType: null,
repairReach: null,
repairValue: null,
repairPicture: null,
itemName: null,
checkPictrueList: ['http://localhost:9300/downLoadFile?id=656d72d339e7164f038e8baa&fileName=cc764c41967d4cc199193090f4a1b443_th.jpg', 'http://localhost:9300/downLoadFile?id=656d72d639e7164f038e8bac&fileName=dda84cfe50dc462ba731490000c6d6bc.png'],
},
],
itemTools: null,
},
];
detailList: any = [];
equipmentindex: any = [];
tagsvalue: any = '';
tagslist: any = [];
@ -493,6 +215,27 @@ export default class PurchaseWHSRM extends BasePage {
tagClick(index) {
this.tagslist.splice(index, 1);
}
clear() {
this.checkTime = null;
}
onfocuscalender() {
this.iscalendar = true;
}
async changetime(e) {
console.log(e);
this.checkTime = e.result;
let query = {
factoryCode: session.PoolName,
checkManCode: session.userName,
checkStatus: 0,
checkType: this.selectList.value,
checkTime: this.checkTime,
};
await this.model.getCheckTaskListall(query);
this.list = this.model.CheckTaskListall;
// this.tagslist = JSON.parse(JSON.stringify(item.babtype));
// this.tagslistcopy = JSON.parse(JSON.stringify(item.babtype));
}
ontagsadd() {
if (this.tagsvalue == '' || this.tagsvalue == undefined) {
// this.customToast('');
@ -530,6 +273,7 @@ export default class PurchaseWHSRM extends BasePage {
checkManCode: session.userName,
checkStatus: 0,
checkType: this.selectList.value,
checkTime: this.checkTime,
};
await this.model.getCheckTaskListall(query);
console.log(model.CheckTaskListall);
@ -541,8 +285,9 @@ export default class PurchaseWHSRM extends BasePage {
console.log('1234567', item);
this.clickitem = item;
// let belongTo = item.recordId;
// await this.model.getCheckTaskList(belongTo);
// this.detailList = this.model.CheckTaskListall
let belongTo = item.requestid;
await this.model.getCheckTaskList(belongTo);
this.detailList = this.model.CheckTaskList;
this.show = true;
}
radioGroupChange(item, value, index) {
@ -558,6 +303,7 @@ export default class PurchaseWHSRM extends BasePage {
checkManCode: session.userName,
checkStatus: 0,
checkType: this.selectList.value,
checkTime: this.checkTime,
};
await this.model.getCheckTaskListall(query);
this.list = this.model.CheckTaskListall;
@ -816,80 +562,60 @@ export default class PurchaseWHSRM extends BasePage {
// background-color: #ffffff;
padding: 7px 8px 7px 12px;
box-sizing: border-box;
.item-name {
background-color: #ffffff;
.quest {
// width: 367px;
// border-radius: 5px;
// border: rgba(121, 121, 121, 1) solid 1px;
// background-color: #ffffff;
padding: 7px 8px 7px 12px;
box-sizing: border-box;
text-align: center;
font-size: 18px;
}
.details {
// display: flex;
font-size: 15px;
// justify-content: space-between;
align-items: center;
margin-bottom: 8px;
}
}
.single-left {
display: flex;
// align-items: center;
// justify-content: space-around;
border: rgba(121, 121, 121, 1) solid 1px;
text-align: center;
margin-top: 12px;
margin-bottom: 20px;
border: 1px solid #eee;
}
.item {
margin-top: 15px;
width: 344px;
border-radius: 5px;
border: rgba(121, 121, 121, 1) solid 1px;
// background-color: #ffffff;
padding: 7px 8px 7px 8px;
box-sizing: border-box;
.item1 {
margin-bottom: 3px;
white-space: 1px;
font-size: 15px;
font-weight: 600;
}
.item2 {
.form2 {
background-color: #fff;
padding: 0rpx 25rpx 25rpx;
border-radius: 10rpx;
box-shadow: 0 0 20rpx 0 rgba(128, 128, 128, 0.2);
color: #8d8989;
.row-list {
display: flex;
align-content: center;
flex-direction: row;
justify-content: space-between;
.select {
font-size: 15px;
font-weight: 400;
.row-list-item {
display: flex;
// margin-left: 19px;
flex-direction: row;
justify-content: space-between;
width: 40%;
}
.input-box {
font-size: 13px;
font-weight: 400;
.list-item {
display: flex;
align-content: center;
margin-top: 2px;
.input {
font-size: 12px;
width: 65px;
padding: 1px 8px;
height: 20px;
box-sizing: border-box;
border: 1px solid #b6b6b6;
margin-left: 6px;
display: inline-block;
margin-right: 6px;
border-radius: 4px;
position: relative;
}
flex-direction: row;
flex: 1;
}
}
.righttitle {
display: flex;
justify-content: flex-end;
.boder-icon-rigth {
border: 1rpx solid #fa3534;
width: 130rpx;
text-align: center;
background: #fa3534;
color: #ffffff;
margin-top: 10px;
}
.zhuangtai {
background: #a7a0a04a;
width: 224rpx;
margin-right: -27rpx;
border: 2rpx solid #a7a0a04a;
border-radius: 12rpx;
text-align: center;
margin-bottom: 10rpx;
}
.zhuangtai[data-state='1'] {
color: green;
}
.zhuangtai[data-state='0'] {
color: blue;
}
}
}

@ -31,7 +31,7 @@ export class Belowstandard extends VuexModule {
CheckTaskListall: any = [];
@MutationAction
async getCheckTaskListall(query: any) {
const result: any = await http.get(url.lanjuquality.Materialinspection.getCheckTaskListall, {
const result: any = await http.get(url.lanjuquality.Materialinspection.getUnqualifiedListMobile, {
//loginName: session.loginName,
params: query,
});
@ -41,14 +41,13 @@ export class Belowstandard extends VuexModule {
CheckTaskList: any = [];
@MutationAction
async getCheckTaskList(belongTo: any) {
const result: any = await http.get(url.lanjuquality.Materialinspection.getCheckTaskList, {
const result: any = await http.get(url.lanjuquality.Materialinspection.getOAInfoListMobile, {
//loginName: session.loginName,
params: {
factoryCode: session.PoolName,
belongTo: belongTo,
taskId: belongTo,
},
});
const CheckTaskList = result.data;
const CheckTaskList = result;
return { CheckTaskList };
}
SubmitCode: any = '';

@ -24,54 +24,56 @@
<!-- </u-form-item> -->
</u-form>
<view class="scroll">
<view v-for="item in list" :key="item.id">
<u-form style="margin-top: 10rpx" class="form2">
<view v-for="(item, index) in list" :key="item.id">
<u-form :style="`margin-top: 10rpx; background-color: ${selectedFormIndexes.includes(index) ? 'rgb(192 229 218)' : '#fff'};`" class="form2">
<view class="list">
<view class="righttitle">
<view class="boder-icon-top zhuangtai" data-state="0">{{ item.checkStatus == 0 ? '待检验' : '检验完成' }}</view>
</view>
<view class="row-list">
<view class="list-item" style="white-space: nowrap">批次号: </view>
<view>
{{ item.incomeBatchNo }}
<view @click="toggleFormSelection(index, item)">
<view class="righttitle">
<view class="boder-icon-top zhuangtai" data-state="0">{{ item.checkStatus == 0 ? '待检验' : '检验完成' }}</view>
</view>
</view>
<view class="row-list">
<view class="list-item"> 任务号: </view>
<view> {{ item.checkNo }} </view>
</view>
<view class="row-list">
<view class="list-item"> 订单号: </view>
<view> {{ item.workorderCodeSap }} </view>
</view>
<view class="row-list">
<view class="list-item"> 物料号: </view>
<view> {{ item.materialCode }} </view>
</view>
<view class="row-list">
<view class="list-item" style="white-space: nowrap"> 物料名称: </view>
<view> {{ item.materialName }} </view>
</view>
<view class="row-list">
<view class="list-item"> 创建时间: </view>
<view> {{ item.createTime }} </view>
</view>
<view class="row-list">
<view class="row-list-item">
<view class="list-item"> 数量: </view>
<view> {{ item.quality }} </view>
<view class="row-list">
<view class="list-item" style="white-space: nowrap">批次号: </view>
<view>
{{ item.incomeBatchNo }}
</view>
</view>
</view>
<view class="row-list">
<view class="row-list-item">
<view class="list-item"> 检验位置: </view>
<view> {{ item.checkLocName }} </view>
<view class="row-list">
<view class="list-item"> 任务号: </view>
<view> {{ item.checkNo }} </view>
</view>
</view>
<view class="row-list">
<view class="row-list-item">
<view class="list-item"> 供应商单位: </view>
<view> {{ item.supplierName }} </view>
<view class="row-list">
<view class="list-item"> 订单号: </view>
<view> {{ item.workorderCodeSap }} </view>
</view>
<view class="row-list">
<view class="list-item"> 物料号: </view>
<view> {{ item.materialCode }} </view>
</view>
<view class="row-list">
<view class="list-item" style="white-space: nowrap"> 物料名称: </view>
<view> {{ item.materialName }} </view>
</view>
<view class="row-list">
<view class="list-item"> 创建时间: </view>
<view> {{ item.createTime }} </view>
</view>
<view class="row-list">
<view class="row-list-item">
<view class="list-item"> 数量: </view>
<view> {{ item.quality }} </view>
</view>
</view>
<view class="row-list">
<view class="row-list-item">
<view class="list-item"> 检验位置: </view>
<view> {{ item.checkLocName }} </view>
</view>
</view>
<view class="row-list">
<view class="row-list-item">
<view class="list-item"> 供应商单位: </view>
<view> {{ item.supplierName }} </view>
</view>
</view>
</view>
<view a:if="true" class="righttitle">
@ -138,7 +140,7 @@
<div class="input-box" id="input-box1" style="display: flex; align-items: center">
实际值:
<input class="input" v-model="item.actualValue" @focus="focus(item, item.actualValue, index)" type="text" name="" id="" />
单位:mm
单位:{{ item.unitCode }}
</div>
<view v-if="item.weight == '1'" @click.stop="WeightInfo(item)" class="boder-icon-rigth1"> </view>
</div>
@ -221,44 +223,46 @@
<u-form-item label="缺陷分类:">
<jPicker sureColor="#ff0000" :moren="moren19" @bindpicker="selectdisqualification" showKey="label" valKey="value" :val="formdata.remarkCode" :options="SJLLdefectList" />
</u-form-item>
<u-form-item label="是否发起oa:">
<u-radio-group v-model="formdata.startOA">
<u-radio v-for="(n, indexn) in listselectoa" :key="indexn" :name="n.type" :disabled="n.disabled">
{{ n.name }}
</u-radio>
</u-radio-group>
</u-form-item>
<div v-show="formdata.checkResult == 'N'">
<u-form-item label="不合格描述:">
<u-input style="background: #fafafa; border: 1px dashed #e2e2e2; padding: 10px 5px" v-model="formdata.remark" placeholder="" type="textarea" />
<view v-show="formdata.checkResult == 'N'">
<u-form-item label="是否发起oa:">
<u-radio-group v-model="formdata.startOA">
<u-radio v-for="(n, indexn) in listselectoa" :key="indexn" :name="n.type" :disabled="n.disabled">
{{ n.name }}
</u-radio>
</u-radio-group>
</u-form-item>
</div>
<div v-show="formdata.startOA == '1'">
<u-form-item label="来料类别:">
<jPicker sureColor="#ff0000" :moren="moren5" @bindpicker="selectProductlocCode4" showKey="label" valKey="value" :val="selectmaterialType.value" :options="model.locList2" />
</u-form-item>
<u-form-item label="物料来源:">
<jPicker sureColor="#ff0000" :moren="moren6" @bindpicker="selectProductlocCode5" showKey="label" valKey="value" :val="selectmaterialFromList.value" :options="model.locList3" />
</u-form-item>
<u-form-item label="仓储报检人:">
<jPicker sureColor="#ff0000" :moren="moren9" @bindpicker="selectstorageCode" showKey="label" valKey="value" :val="selectstorageList.value" :options="locList6" />
</u-form-item>
<u-form-item label="转出方:">
<jPicker sureColor="#ff0000" :moren="moren10" @bindpicker="selectTransferCode" showKey="label" valKey="value" :val="selectTransferList.value" :options="ZCFList" />
</u-form-item>
<u-form-item label="转出OEM厂名:">
<u-input v-model="formdata.oem" placeholder="" />
</u-form-item>
<u-form-item label="QC主管:">
<jPicker sureColor="#ff0000" :moren="moren11" @bindpicker="selectqcCode" showKey="label" valKey="value" :val="selectQCList.value" :options="QCZGList" />
</u-form-item>
<u-form-item label="厂区:">
<jPicker sureColor="#ff0000" :moren="moren12" @bindpicker="selectworkCode" showKey="label" valKey="value" :val="selectworkList.value" :options="CQList" />
</u-form-item>
</div>
<div v-show="formdata.checkResult == 'N'">
<u-form-item label="不合格描述:">
<u-input style="background: #fafafa; border: 1px dashed #e2e2e2; padding: 10px 5px" v-model="formdata.remark" placeholder="" type="textarea" />
</u-form-item>
</div>
<div v-show="formdata.startOA == '1'">
<u-form-item label="来料类别:">
<jPicker sureColor="#ff0000" :moren="moren5" @bindpicker="selectProductlocCode4" showKey="label" valKey="value" :val="selectmaterialType.value" :options="model.locList2" />
</u-form-item>
<u-form-item label="物料来源:">
<jPicker sureColor="#ff0000" :moren="moren6" @bindpicker="selectProductlocCode5" showKey="label" valKey="value" :val="selectmaterialFromList.value" :options="model.locList3" />
</u-form-item>
<u-form-item label="仓储报检人:">
<jPicker sureColor="#ff0000" :moren="moren9" @bindpicker="selectstorageCode" showKey="label" valKey="value" :val="selectstorageList.value" :options="locList6" />
</u-form-item>
<u-form-item label="转出方:">
<jPicker sureColor="#ff0000" :moren="moren10" @bindpicker="selectTransferCode" showKey="label" valKey="value" :val="selectTransferList.value" :options="ZCFList" />
</u-form-item>
<u-form-item label="转出OEM厂名:">
<u-input v-model="formdata.oem" placeholder="" />
</u-form-item>
<u-form-item label="QC主管:">
<jPicker sureColor="#ff0000" :moren="moren11" @bindpicker="selectqcCode" showKey="label" valKey="value" :val="selectQCList.value" :options="QCZGList" />
</u-form-item>
<u-form-item label="厂区:">
<jPicker sureColor="#ff0000" :moren="moren12" @bindpicker="selectworkCode" showKey="label" valKey="value" :val="selectworkList.value" :options="CQList" />
</u-form-item>
</div>
</view>
</div>
<!-- 过程/首见 -->
<div class="" v-show="selectList.value == 'checkTypeSC' || selectList.value == 'checkTypeSCXJ' || selectList.value == 'checkTypeCP'">
<div class="" v-show="selectList.value == 'checkTypeSC' || selectList.value == 'checkTypeSCXJ' || selectList.value == 'checkTypeCP' || selectList.value == 'checkTypeCC'">
<u-form-item label="最终判定:">
<!-- <u-input v-model="formdata.checkResult" placeholder="" type="text" /> -->
<u-radio-group v-model="formdata.checkResult" @change="changeradio1(formdata.checkResult)">
@ -270,47 +274,49 @@
<u-form-item v-show="selectList.value == 'checkTypeSC'" label="缺陷分类:">
<jPicker sureColor="#ff0000" :moren="moren19" @bindpicker="selectdisqualification" showKey="label" valKey="value" :val="formdata.remarkCode" :options="SJLLdefectList" />
</u-form-item>
<u-form-item label="是否发起oa:">
<u-radio-group v-model="formdata.startOA">
<u-radio v-for="(n, indexn) in listselectoa" :key="indexn" :name="n.type" :disabled="n.disabled">
{{ n.name }}
</u-radio>
</u-radio-group>
</u-form-item>
<div v-show="formdata.checkResult == 'N'">
<u-form-item label="不合格描述:">
<u-input style="background: #fafafa; border: 1px dashed #e2e2e2; padding: 10px 5px" v-model="formdata.remark" placeholder="" type="textarea" />
<view v-show="formdata.checkResult == 'N'">
<u-form-item label="是否发起oa:">
<u-radio-group v-model="formdata.startOA">
<u-radio v-for="(n, indexn) in listselectoa" :key="indexn" :name="n.type" :disabled="n.disabled">
{{ n.name }}
</u-radio>
</u-radio-group>
</u-form-item>
</div>
<div v-show="formdata.startOA == '1'">
<u-form-item label="生产数量:">
<u-input v-model="formdata.quality" placeholder="" />
</u-form-item>
<u-form-item label="申请部门:">
<jPicker sureColor="#ff0000" :moren="moren13" @bindpicker="selectdept" showKey="label" valKey="value" :val="selectdeptType.value" :options="deptlist" />
</u-form-item>
<u-form-item label="发现地点:">
<u-input v-model="formdata.checkLoc" placeholder="" />
</u-form-item>
<u-form-item label="是否供应商问题:">
<jPicker sureColor="#ff0000" :moren="moren14" @bindpicker="selectsupplier" showKey="label" valKey="value" :val="selectsupplierType.value" :options="supplierlist" />
</u-form-item>
<u-form-item label="异常范围:">
<jPicker sureColor="#ff0000" :moren="moren15" @bindpicker="selectabnormal" showKey="label" valKey="value" :val="selectabnormalType.value" :options="abnormallist" />
</u-form-item>
<u-form-item label="所属车间:">
<jPicker sureColor="#ff0000" :moren="moren18" @bindpicker="selectSSCJCode" showKey="label" valKey="value" :val="selectSSCJType.value" :options="SSCJlist" />
</u-form-item>
<u-form-item label="是否需要主管审核:">
<jPicker sureColor="#ff0000" :moren="moren16" @bindpicker="selectischeck" showKey="label" valKey="value" :val="selectischeckType.value" :options="ischecklist" />
</u-form-item>
<u-form-item label="QC主管:" v-show="selectischeckType.value == '0'">
<jPicker sureColor="#ff0000" :moren="moren11" @bindpicker="selectpgzgCode" showKey="label" valKey="value" :val="selectpgzgList.value" :options="pgzgList" />
</u-form-item>
<u-form-item label="质量主管:">
<jPicker sureColor="#ff0000" :moren="moren17" @bindpicker="selectZLCode" showKey="label" valKey="value" :val="selectZLType.value" :options="pgzgList" />
</u-form-item>
</div>
<div v-show="formdata.checkResult == 'N'">
<u-form-item label="不合格描述:">
<u-input style="background: #fafafa; border: 1px dashed #e2e2e2; padding: 10px 5px" v-model="formdata.remark" placeholder="" type="textarea" />
</u-form-item>
</div>
<div v-show="formdata.startOA == '1'">
<u-form-item label="生产数量:">
<u-input v-model="formdata.quality" placeholder="" />
</u-form-item>
<u-form-item label="申请部门:">
<jPicker sureColor="#ff0000" :moren="moren13" @bindpicker="selectdept" showKey="label" valKey="value" :val="selectdeptType.value" :options="deptlist" />
</u-form-item>
<u-form-item label="发现地点:">
<u-input v-model="formdata.checkLoc" placeholder="" />
</u-form-item>
<u-form-item label="是否供应商问题:">
<jPicker sureColor="#ff0000" :moren="moren14" @bindpicker="selectsupplier" showKey="label" valKey="value" :val="selectsupplierType.value" :options="supplierlist" />
</u-form-item>
<u-form-item label="异常范围:">
<jPicker sureColor="#ff0000" :moren="moren15" @bindpicker="selectabnormal" showKey="label" valKey="value" :val="selectabnormalType.value" :options="abnormallist" />
</u-form-item>
<u-form-item label="所属车间:">
<jPicker sureColor="#ff0000" :moren="moren18" @bindpicker="selectSSCJCode" showKey="label" valKey="value" :val="selectSSCJType.value" :options="SSCJlist" />
</u-form-item>
<u-form-item label="是否需要主管审核:">
<jPicker sureColor="#ff0000" :moren="moren16" @bindpicker="selectischeck" showKey="label" valKey="value" :val="selectischeckType.value" :options="ischecklist" />
</u-form-item>
<u-form-item label="QC主管:" v-show="selectischeckType.value == '0'">
<jPicker sureColor="#ff0000" :moren="moren11" @bindpicker="selectpgzgCode" showKey="label" valKey="value" :val="selectpgzgList.value" :options="pgzgList" />
</u-form-item>
<u-form-item label="质量主管:">
<jPicker sureColor="#ff0000" :moren="moren17" @bindpicker="selectZLCode" showKey="label" valKey="value" :val="selectZLType.value" :options="pgzgList" />
</u-form-item>
</div>
</view>
</div>
<u-form-item label="备注描述:">
<u-input v-model="formdata.attr3" placeholder="" type="textarea" :border="border" :height="height" :auto-height="autoHeight" />
@ -380,6 +386,18 @@
<u-popup v-model="showsing" mode="center" width="98%">
<f-signature @getImg="getImg" @cancel="cancelsing"></f-signature>
</u-popup>
<view v-show="selectList.value == 'checkTypeLL'" class="bottom-bar">
<u-row class="button-bar">
<!-- 确定 -->
<u-col :span="6">
<u-button @click="hebingsubmit" type="primary">合并</u-button>
</u-col>
<!-- 返回 -->
<u-col :span="6">
<u-button type="error" @click="uni.navigateBack()"></u-button>
</u-col>
</u-row>
</view>
</view>
</template>
<script lang="ts">
@ -391,6 +409,8 @@ import badtable from '@/components/bad-table/bad-table.vue';
import model from './model';
import { session } from '@/store/modules/session';
import fSignature from '@/components/f-signature/f-signature.vue';
//
//import UniTable from '@/components/uni-table/components/uni-table/uni-table.vue';
const mpaasScanModule: any = uni.requireNativePlugin('Mpaas-Scan-Module');
@ -406,6 +426,7 @@ const mpaasScanModule: any = uni.requireNativePlugin('Mpaas-Scan-Module');
export default class PurchaseWHSRM extends BasePage {
model = model;
border = true;
vbase64data = '';
height = 100;
autoHeight = true;
showsing = false;
@ -569,9 +590,53 @@ export default class PurchaseWHSRM extends BasePage {
deptlist: any = [];
supplierlist: any = [];
abnormallist: any = [];
selectedFormIndexes: any = [];
selectedForms: any = [];
//sampleQuality = null; //
//
// mpaasScan
//
toggleFormSelection(index, item) {
if (this.selectList.value == 'checkTypeLL') {
const isAlreadySelected = this.selectedFormIndexes.includes(index);
if (isAlreadySelected) {
this.selectedFormIndexes = this.selectedFormIndexes.filter((i) => i !== index);
this.selectedForms = this.selectedForms.filter((f) => f !== item);
} else {
this.selectedFormIndexes.push(index);
this.selectedForms.push(item);
}
console.log(this.selectedFormIndexes, '选中索引');
console.log(this.selectedForms, '选中表单');
}
}
async hebingsubmit() {
let ids = [];
this.selectedForms.forEach((item) => {
ids.push(item.recordId);
});
const joinedIds = ids.join(','); // joinedId//
console.log(joinedIds, '选中id');
await this.model.mergeCheckTask(joinedIds);
if (this.model.togetherTaskcode == '200') {
(this.$refs.uToast as any).show({
title: model.togetherTaskmsg,
type: 'default',
});
let query = {
factoryCode: session.PoolName,
checkManCode: session.userName,
checkStatus: 0,
checkType: this.detailsinfo.checkType,
checkLoc: this.selectList1.value,
};
await this.model.getCheckTaskListall(query);
this.list = this.model.CheckTaskListall;
this.selectedFormIndexes = [];
this.selectedForms = [];
}
}
//
tagClick(index) {
@ -676,7 +741,7 @@ export default class PurchaseWHSRM extends BasePage {
workorderCode: this.clickitem.orderNo,
};
//debugger;
if (this.selectList.value == 'checkTypeSC' || this.selectList.value == 'checkTypeSCXJ' || this.selectList.value == 'checkTypeCP') {
if (this.selectList.value == 'checkTypeSC' || this.selectList.value == 'checkTypeSCXJ' || this.selectList.value == 'checkTypeCP' || this.selectList.value == 'checkTypeCC') {
console.log('走到这了吗');
await model.getdeptFromListPDA();
this.deptlist = model.deptlist;
@ -1248,7 +1313,7 @@ export default class PurchaseWHSRM extends BasePage {
}
}
//oa
if (this.selectList.value == 'checkTypeSC' || this.selectList.value == 'checkTypeSCXJ' || this.selectList.value == 'checkTypeCP') {
if (this.selectList.value == 'checkTypeSC' || this.selectList.value == 'checkTypeSCXJ' || this.selectList.value == 'checkTypeCP' || this.selectList.value == 'checkTypeCC') {
if (this.formdata.startOA == '1') {
if (this.formdata.checkLoc === null || this.formdata.checkLoc === '') {
(this.$refs.uToast as any).show({
@ -1361,7 +1426,7 @@ export default class PurchaseWHSRM extends BasePage {
// }
});
let query: any = {};
if (this.selectList.value == 'checkTypeSC' || this.selectList.value == 'checkTypeSCXJ' || this.selectList.value == 'checkTypeCP') {
if (this.selectList.value == 'checkTypeSC' || this.selectList.value == 'checkTypeSCXJ' || this.selectList.value == 'checkTypeCP' || this.selectList.value == 'checkTypeCC') {
//
query = {
sampleQuality: this.formdata.sampleQuality,
@ -1903,7 +1968,7 @@ export default class PurchaseWHSRM extends BasePage {
await model.commitDraft(params); //99999
}
singname(singmark) {
async singname(singmark) {
this.showsing = true;
this.singmark = singmark;
}
@ -1912,7 +1977,7 @@ export default class PurchaseWHSRM extends BasePage {
}
async getImg(e) {
uni.uploadFile({
url: '/prod-api/file/upload',
url: 'http://192.168.202.34:30000/prod-api/file/upload',
filePath: e, // You may need to save the blob as a file first or use a temp path
name: 'file',
formData: {
@ -1923,15 +1988,10 @@ export default class PurchaseWHSRM extends BasePage {
// 'cosmo-env-sitecode': this.$store.state.siteCode
},
success: (uploadFileRes) => {
(this.$refs.uToast as any).show({
title: '签名成功',
// url: '/pages/user/index'
});
let dataobj = JSON.parse(uploadFileRes.data);
console.log('uploadFileRes', dataobj);
if (this.singmark === '1') {
this.formdata.cxzz = dataobj.data.url;
console.log('this.formdata.cxzz', this.formdata.cxzz);
} else if (this.singmark === '2') {
this.formdata.jgy = dataobj.data.url;
} else if (this.singmark === '3') {
@ -1939,9 +1999,14 @@ export default class PurchaseWHSRM extends BasePage {
}
},
fail: (error) => {
(this.$refs.uToast as any).show({
title: '签名失败',
// url: '/pages/user/index'
});
console.error(error);
},
});
this.showsing = false;
}
}
@ -2055,13 +2120,13 @@ export default class PurchaseWHSRM extends BasePage {
// margin-bottom: 20rpx;
// overflow: scroll;
// padding-top: 20rpx;
.form2 {
background-color: #fff;
// background-color: #fff;
padding: 0rpx 25rpx 25rpx;
border-radius: 10rpx;
box-shadow: 0 0 20rpx 0 rgba(128, 128, 128, 0.2);
color: #8d8989;
.row-list {
display: flex;
flex-direction: row;
@ -2417,5 +2482,8 @@ export default class PurchaseWHSRM extends BasePage {
width: 97%;
border: 1px solid #dcdfe6;
}
.selected-form {
background-color: #f0f0f0; /* 示例背景色 */
}
}
</style>

@ -428,6 +428,22 @@ export class Materialinspection extends VuexModule {
}));
return { SSCJlist };
}
//合并
togetherTaskcode: any = '';
togetherTaskmsg: any = '';
@MutationAction
async mergeCheckTask(params: any) {
const result: any = await http.post(url.lanjuquality.Materialinspection.togetherTask, {
recordId: params,
factoryCode: session.PoolName,
});
const togetherTaskcode = result.code;
const togetherTaskmsg = result.msg;
return {
togetherTaskcode,
togetherTaskmsg,
};
}
}
export default getModule(Materialinspection);

@ -16,10 +16,14 @@
</u-form>
<u-form class="form" ref="form" label-width="180rpx" style="margin-top: 10px" v-show="selectList.value != 'checkTypeLL'">
<!-- 订单 -->
<!-- <u-form-item label="检验节点"> -->
<jPicker sureColor="#ff0000" :moren="moren4" @bindpicker="selectProductlocCode3" showKey="label" valKey="value" :val="selectList1.value" :options="model.selectList1" />
<!-- <u-input @blur="onblur()" @focus="onfocus" @click="onclick" :border="true" v-model="selectvalue" placeholder="请选择检验节点" style="overflow: hidden" /> -->
<!-- </u-form-item> -->
<u-form-item>
<jPicker sureColor="#ff0000" :moren="moren4" @bindpicker="selectProductlocCode3" showKey="label" valKey="value" :val="selectList1.value" :options="model.selectList1" />
<!-- <u-input @blur="onblur()" @focus="onfocus" @click="onclick" :border="true" v-model="selectvalue" placeholder="请选择检验节点" style="overflow: hidden" /> -->
</u-form-item>
<u-form-item label="日期">
<u-input @click="onfocuscalender" placeholder="请选择日期" v-model="checkTime" :clearable="false" />
<u-icon name="close-circle-fill" @click="clear" color="rgb(96, 98, 102)" size="28"></u-icon>
</u-form-item>
</u-form>
<view class="scroll">
<view v-for="item in list" :key="item.id">
@ -198,6 +202,7 @@
</div>
</u-modal>
<u-toast ref="uToast" />
<u-calendar v-model="iscalendar" :mode="mode" @change="changetime"></u-calendar>
</view>
</template>
<script lang="ts">
@ -205,6 +210,7 @@ import { Component } from 'vue-property-decorator';
import { BasePage } from '@/components/base/page';
import jPicker from '@/components/J-Picker/jPicker.vue';
import model from './model';
import moment from 'moment';
//import { any } from 'lodash/fp';
import { session } from '@/store/modules/session';
@Component({
@ -219,6 +225,9 @@ export default class PurchaseWHSRM extends BasePage {
moren4 = '请选择检验位置';
moren5 = '请选择来料类别';
moren6 = '请选择物料来源';
checkTime: any = moment().format('YYYY-MM-DD');
iscalendar = false;
mode = 'date';
selectList1: any = {};
list: any = [];
show = false;
@ -358,6 +367,29 @@ export default class PurchaseWHSRM extends BasePage {
tagClick(index) {
this.tagslist.splice(index, 1);
}
clear() {
this.checkTime = null;
}
onfocuscalender() {
this.iscalendar = true;
}
async changetime(e) {
console.log(e);
this.checkTime = e.result;
let query = {
factoryCode: session.PoolName,
checkManCode: session.userName,
checkStatus: '1,2',
checkType: this.selectList.value,
checkLoc: this.selectList1.value,
checkTimeStart: this.checkTime,
};
this.getDefectListPDA();
await this.model.getCheckTaskListall(query);
this.list = this.model.CheckTaskListall;
// this.tagslist = JSON.parse(JSON.stringify(item.babtype));
// this.tagslistcopy = JSON.parse(JSON.stringify(item.babtype));
}
ontagsadd() {
if (this.tagsvalue == '' || this.tagsvalue == undefined) {
// this.customToast('');
@ -386,6 +418,7 @@ export default class PurchaseWHSRM extends BasePage {
checkManCode: session.userName,
checkStatus: '1,2',
checkType: this.detailsinfo.checkType,
checkTimeStart: this.checkTime,
};
await this.model.getCheckTaskListall(query);
this.list = this.model.CheckTaskListall;
@ -481,6 +514,7 @@ export default class PurchaseWHSRM extends BasePage {
checkStatus: '1,2',
checkType: this.selectList.value,
checkLoc: this.selectList1.value,
checkTimeStart: this.checkTime,
};
this.getDefectListPDA();
await this.model.getCheckTaskListall(query);
@ -499,6 +533,7 @@ export default class PurchaseWHSRM extends BasePage {
checkStatus: '1,2',
checkType: this.selectList.value,
checkLoc: this.selectList1.value,
checkTimeStart: this.checkTime,
};
this.getDefectListPDA();
await this.model.getCheckTaskListall(query);

@ -0,0 +1,304 @@
<template>
<view class="page-product-receipt">
<view class="header" :style="{ backgroundColor: `rgba(250, 53, 52, ${scrollTop / 100})` }">
<view class="left">
<u-icon class="icon" name="arrow-left" @click="uni.navigateBack({})" />
</view>
<view class="title">采购收获(SRM)详细</view>
<view class="right"></view>
</view>
<view class="scroll">
<view v-for="item in orderNoItemListdes" :key="item.id">
<u-form style="margin-top: 10rpx" class="form2">
<view class="list">
<view class="row-list">
<view class="list-item"> 物资编码: </view>
<view>{{ item.materialCode }} </view>
</view>
<view class="row-list">
<view class="list-item"> 物料描述: </view>
<view> {{ item.materialDesc }} </view>
</view>
<view class="row-list">
<view class="row-list-item">
<view class="list-item">数量: </view>
<view> {{ item.amount }} </view>
</view>
<view class="row-list-item">
<view class="list-item"> 单位: </view>
<view>{{ item.userDefined4 }} </view>
</view>
</view>
<view class="row-list">
<view class="list-item"> 托盘号: </view>
<view>{{ item.sn }} </view>
</view>
</view>
</u-form>
</view>
</view>
</view>
</template>
<script lang="ts">
import { Component } from 'vue-property-decorator';
import { BasePage } from '@/components/base/page';
import jPicker from '@/components/J-Picker/jPicker.vue';
import model from './model';
//import { session } from '@/store/modules/session';
@Component({
components: {
jPicker,
},
})
export default class ArrivalRegistration extends BasePage {
model = model;
list: any = [{ id: 1 }, { id: 2 }, { id: 3 }, { id: 4 }];
form3: any = {};
// remove: any = {};
// async onReady() {
// await this.model.queryLocation();
// this.remove = this.model.WlList[0];
// }
// selectItem(e: any) {
// this.remove = e.pickerName;
// }
orderNo: any = '';
border = true;
height = 100;
autoHeight = true;
imgList: any = [];
imgUrlList: any = [];
isqualified = [
{
label: '合格',
value: '1',
},
{
label: '不合格',
value: '0',
},
];
detailsinfo: any = '';
orderNoItemListdes: any = '';
productCodeList: any = {};
histroyItem: any = {};
async onLoad(options) {
let str = decodeURIComponent(options.listitem);
if (str) {
this.detailsinfo = JSON.parse(str);
let query = {
id: this.detailsinfo.id,
factoryCode: this.session.FactoryCode,
};
await this.model.PurchaseOrderdetailPda(query);
this.orderNoItemListdes = this.model.orderNoItemListdes;
}
}
selectProductCode(e: any) {
this.model.orderNoItemList.forEach((item: any) => {
if (item.productCode == e.pickerName.value) {
this.histroyItem = item;
}
});
}
barcode: any = '';
}
</script>
<style lang="scss" scoped>
.page-product-receipt {
background: #f2f2f2 linear-gradient(0deg, #f2f2f2 0%, #f8262c 51%, #d9001b 100%) no-repeat;
background-size: 100% 600rpx;
padding: 118rpx 30rpx 162rpx;
min-height: 100%;
.header {
position: fixed;
top: 0rpx;
left: 0;
right: 0;
z-index: 99;
display: flex;
height: 120rpx;
line-height: 88rpx;
color: #fff;
font-size: 34rpx;
font-weight: 500;
text-align: center;
padding: 45rpx 0rpx 0rpx;
.title {
flex: 3;
}
.left,
.right {
flex: 1;
}
.icon {
display: flex;
justify-content: center;
align-items: center;
width: 88rpx;
height: 88rpx;
}
}
.scroll {
// margin-top: 120rpx;
// padding-left: 30rpx;
// padding-right: 16rpx;
// margin-bottom: 20rpx;
// overflow: scroll;
// padding-top: 20rpx;
.form2 {
background-color: #fff;
padding: 25rpx 25rpx 25rpx;
border-radius: 10rpx;
box-shadow: 0 0 20rpx 0 rgba(128, 128, 128, 0.2);
.row-list {
display: flex;
flex-direction: row;
justify-content: space-between;
.row-list-item {
display: flex;
flex-direction: row;
justify-content: space-between;
width: 40%;
}
.list-item {
display: flex;
flex-direction: row;
flex: 1;
}
}
.righttitle {
display: flex;
justify-content: flex-end;
.boder-icon-rigth {
border: 1rpx solid #fa3534;
width: 130rpx;
text-align: center;
background: #fa3534;
color: #ffffff;
margin-top: 10px;
}
.zhuangtai {
background: #a7a0a04a;
width: 224rpx;
margin-right: -27rpx;
border: 2rpx solid #a7a0a04a;
border-radius: 12rpx;
text-align: center;
margin-bottom: 10rpx;
}
.zhuangtai[data-state='1'] {
color: green;
}
.zhuangtai[data-state='0'] {
color: blue;
}
}
}
}
.bottom-bar {
position: fixed;
bottom: 0;
left: 0;
right: 0;
z-index: 99;
background: #ffffff;
box-shadow: 0 1rpx 20rpx 0 rgba(128, 128, 128, 0.2);
padding: 20rpx;
}
.button-bar {
}
.photoList {
display: flex;
padding-top: 12rpx;
.chooseBtn {
width: 202rpx;
height: 202rpx;
background: #fafafa;
border-radius: 12rpx;
border: 2rpx dashed #e2e2e2;
display: flex;
justify-content: center;
align-items: center;
.inner {
text-align: center;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
}
.desc {
font-size: 28rpx;
font-weight: 400;
color: #24252a;
line-height: 40rpx;
}
.img {
width: 50rpx;
height: 50rpx;
margin-bottom: 6rpx;
}
}
.photoBox {
width: 202rpx;
height: 202rpx;
background: #fafafa;
border-radius: 12rpx;
position: relative;
.closeBtn {
position: absolute;
top: -12rpx;
right: -12rpx;
z-index: 2;
width: 36rpx;
height: 36rpx;
.img {
width: 36rpx;
height: 36rpx;
}
}
.img {
width: 202rpx;
height: 202rpx;
border-radius: 12rpx;
}
}
.itemBox {
flex: 0 0 202rpx;
margin-right: 20rpx;
&:last-child {
margin-right: 0;
}
}
// /deep/ .remarksBox textarea {
// font-size: 24rpx;
// }
}
}
</style>

@ -0,0 +1,906 @@
<template>
<view class="page-product-receipt">
<view class="header" :style="{ backgroundColor: `rgba(250, 53, 52, ${scrollTop / 100})` }">
<view class="left">
<u-icon class="icon" name="arrow-left" @click="uni.navigateBack({})" />
</view>
<view class="title">到货登记</view>
<view class="right"></view>
</view>
<u-form class="form" ref="form" label-width="180rpx">
<!-- 送货单 -->
<view class="single">
<view class="single-left">
<view>送货单号:</view>
<u-search placeholder="请扫描" v-model="userDefined5" @search="query" :show-action="false"></u-search>
</view>
<view class="single-right">
<u-button type="primary" @click="tidandelivery"></u-button>
</view>
</view>
<u-form-item label="采购单">
<!-- <u-input :border="true" v-model="materialCode" placeholder="" @confirm="query" style="overflow: hidden" /> -->
<jPicker sureColor="#ff0000" @bindpicker="bookprodeChange" showKey="procureCode" valKey="procureCode" :val="prodobj.procureCode" :options="prodlist" />
</u-form-item>
<!-- 订单 -->
<u-form-item label="物料描述">
<!-- <u-input :border="true" v-model="materialCode" placeholder="" @confirm="query" style="overflow: hidden" /> -->
<jPicker sureColor="#ff0000" :showCode="true" @bindpicker="bookTypeChange" duoyukey="procureCode" showKey="label" valKey="value" :val="aimWl.value" :options="materilist" />
</u-form-item>
<!-- <view class="creatshow">
<u-button class="buttonshow" type="primary" @click="generate"></u-button>
<u-input border placeholder="" class="inputshow" disabled v-model="receiptNoCode" />
</view> -->
</u-form>
<view class="matshow">
<view v-for="item in list" :key="item.id">
<u-form style="margin-top: 10rpx" class="form2">
<view class="list">
<view class="righttitle">
<!-- 0是未收货1是正在收货2是收货完成 -->
<view class="boder-icon-top zhuangtai" data-state="0">{{ item.orderStatus == 0 ? '未收货' : item.orderStatus == 1 ? '正在收货' : '收货完成' }}</view>
</view>
<view v-if="item.userDefined5" class="row-list">
<view class="list-item"> 送货单号: </view>
<view> {{ item.userDefined5 }} </view>
</view>
<view class="row-list">
<view class="list-item"> 行项目: </view>
<view> {{ item.userDefined3 }} </view>
</view>
<view class="row-list">
<view class="list-item"> 物料编码: </view>
<view> {{ item.handlematerialCode }}</view>
</view>
<view class="row-list">
<view class="list-item"> 物料描述: </view>
<view>{{ item.materialDesc }}</view>
</view>
<view class="row-list">
<view class="list-item"> 工厂号: </view>
<view>{{ item.siteCode }}</view>
</view>
<view class="row-list">
<view class="list-item"> 应收/已收: </view>
<view>{{ item.planNumber }}/{{ item.realityNumber }}</view>
</view>
<!-- <view a:if="true" class="righttitle">
<view @click.stop="onPass(item)" class="boder-icon-rigth"> 收货 </view>
</view> -->
</view>
</u-form>
</view>
</view>
<!-- <view class="scroll">
<view v-for="item in receivedlist" :key="item.id" @dblclick="onFormDoubleClick(item)">
<u-form style="margin-top: 10rpx" class="form2">
<view class="list">
<view class="righttitle">
<view class="boder-icon-top zhuangtai" data-state="0">已收货</view>
</view>
<view v-if="item.userDefined5" class="row-list">
<view class="list-item"> 送货单号: </view>
<view> {{ item.userDefined5 }} </view>
</view>
<view v-if="item.procureCode" class="row-list">
<view class="list-item"> 采购单号: </view>
<view> {{ item.procureCode }} </view>
</view>
<view class="row-list">
<view class="list-item"> 行项目: </view>
<view> {{ item.userDefined3 }} </view>
</view>
<view class="row-list">
<view class="list-item"> 物料编码: </view>
<view> {{ item.handlematerialCode }}</view>
</view>
<view class="row-list">
<view class="list-item"> 物料描述: </view>
<view>{{ item.materialDesc }}</view>
</view>
<view class="row-list">
<view class="list-item"> 工厂号: </view>
<view>{{ item.siteCode }}</view>
</view>
<view class="row-list">
<view class="list-item"> 应收/已收: </view>
<view>{{ item.planNumber }}/{{ item.realityNumber }}</view>
</view>
</view>
</u-form>
</view>
</view> -->
<view class="bottom-bar">
<u-row class="button-bar">
<u-col :span="12">
<u-button type="error" @click="SignIn"></u-button>
</u-col>
<!-- 确定 -->
<!-- <u-col :span="6">
<u-button @click="onSubmit" type="primary">确认收货</u-button>
</u-col> -->
<!-- 返回 -->
</u-row>
</view>
<!-- <view>
<u-popup v-model="show" mode="center" width="580rpx" height="650rpx">
<view class="form3">
<view class="poupitem">
<view class="pouptitle">标识码</view>
<u-search placeholder="请扫描" v-model="form3.userDefined6" :show-action="false"></u-search>
</view>
<view class="poupitem">
<view class="pouptitle">数量</view>
<u-input class="poupcontent" :clearable="false" v-model="form3.planNumber" placeholder="" style="overflow: hidden" />
</view>
<view class="poupitem">
<view class="pouptitle">收货方式</view>
<jPicker sureColor="#ff0000" @bindpicker="bookTypeChangeway" showKey="lable" valKey="value" :val="bimWl.value" :options="waylist" />
</view>
<view v-show="showshow">
<view v-show="!selectway" class="poupitem">
<view class="pouptitle">物料号</view>
<u-input disabled class="poupcontent" :clearable="false" v-model="aimWl.value" placeholder="" style="overflow: hidden" />
</view>
<view v-show="selectway" class="poupitem">
<view class="pouptitle">托盘号</view>
<u-input class="poupcontent" :clearable="false" v-model="form3.sn" placeholder="" style="overflow: hidden" />
</view>
</view>
<view class="poupitem">
<view class="pouptitle">收货仓库</view>
<jPicker sureColor="#ff0000" :moren="moren" @bindpicker="selectProductlocCode" showKey="label" valKey="value" :val="productCodeTypeList.value" :options="whList" />
</view>
<view class="poupitem">
<view class="pouptitle">库区</view>
<jPicker sureColor="#ff0000" :moren="moren1" @bindpicker="selectProductwaCode" showKey="label" valKey="value" :val="waCodeTypeList.value" :options="waCodeList" />
</view>
</view>
<view class="poupbutton" style="margin-top: 10px">
<div>
<u-button style="width: 100px; height: 35px" @click="onOk" size="mini" type="primary">确定</u-button>
</div>
<div>
<u-button style="width: 100px; height: 35px" size="mini" type="error" @click="nopoup"></u-button>
</div>
</view>
</u-popup>
<view v-if="show" class="mask"></view>
</view> -->
<u-toast ref="uToast" />
<view>
<u-popup v-model="singshow" mode="center" width="580rpx" height="500rpx">
<view class="form4">
<view class="poupitem">
<view class="pouptitle">已登记数量</view>
<u-input disabled class="poupcontent" :clearable="false" v-model="operationNumber" placeholder="" style="overflow: hidden; background-color: #ddd" />
</view>
<view class="poupitem">
<view class="pouptitle">未登记数量</view>
<u-input disabled class="poupcontent" :clearable="false" v-model="nooperationNumber" placeholder="" style="overflow: hidden; background-color: #ddd" />
</view>
<view class="poupitem">
<view class="pouptitle">登记数量</view>
<u-input class="poupcontent" :clearable="false" v-model="czNumber" placeholder="" style="overflow: hidden" />
</view>
<view class="poupbutton" style="margin-top: 10px">
<div>
<u-button style="width: 100px; height: 35px" @click="onOksing" size="mini" type="primary">确定</u-button>
</div>
<div>
<u-button style="width: 100px; height: 35px" size="mini" type="error" @click="nopoupsing"></u-button>
</div>
</view>
</view>
</u-popup>
<view v-if="singshow" class="mask"></view>
</view>
</view>
</template>
<script lang="ts">
import { Component } from 'vue-property-decorator';
import { BasePage } from '@/components/base/page';
import jPicker from '@/components/J-Picker/jPicker.vue';
import model from './model';
import { session } from '@/store/modules/session';
//import dayjs from 'dayjs';
interface OptionType {
label: string;
value: string;
}
@Component({
components: {
jPicker,
},
})
export default class ArrivalRegistration extends BasePage {
model = model;
list: any = [];
receivedlist: any = [];
operationNumber = 0;
nooperationNumber = 0;
czNumber = '';
whList: any = [];
waCodeList: any = [];
show = false;
singshow = false;
form3: any = {};
aimWl = {} as OptionType;
prodobj: any = {} as OptionType;
materilist = [];
prodlist: any = [];
productCodeTypeList: any = {};
waCodeTypeList: any = {};
moren = '选择仓库';
moren1 = '选择库区';
bimWl: any = {};
selectway = true;
showshow = true;
// remove: any = {};
// async onReady() {
// await this.model.queryLocation();
// this.remove = this.model.WlList[0];
// }
// selectItem(e: any) {
// this.remove = e.pickerName;
// }
procureCode: any = '';
userDefined5: any = '';
materialCode: any = '';
border = true;
height = 100;
autoHeight = true;
imgList: any = [];
imgUrlList: any = [];
isqualified = [
{
label: '合格',
value: '1',
},
{
label: '不合格',
value: '0',
},
];
clickitem: any = '';
productCodeList: any = {};
//receiptNoCode = '';
async onReady() {
// await this.model.Stashlist();
// this.whList = model.DictTypeList;
//this.remove = this.model.WlList[0];
}
//
// generate() {
// const today = dayjs().format('YYYYMMDDHHmmss');
// this.receiptNoCode = `sn${today}`;
// }
//
nopoup() {
this.show = false;
this.form3 = {};
this.productCodeTypeList = {};
}
nopoupsing() {
this.singshow = false;
this.operationNumber = 0;
this.nooperationNumber = 0;
this.czNumber = '';
}
// async onFormDoubleClick(item) {
// console.log('', item);
// this.uni.navigateTo({
// url: this.page.wms.ReceivePODetail + '?listitem=' + encodeURIComponent(JSON.stringify(item)),
// });
// }
//
async query() {
console.log(session);
if (this.userDefined5 == '' || this.userDefined5.length == 0) {
(this.$refs.uToast as any).show({
title: '请输入送货单',
type: 'default',
});
return;
}
this.prodobj = {} as OptionType;
this.aimWl = {} as OptionType;
let query = {
materialCode: this.aimWl.value ? this.aimWl.value : '',
userDefined5: this.userDefined5,
//this.materialCode,
factoryCode: session.FactoryCode,
};
await this.model.PurchaseOrderPda(query);
let prodlist = model.orderNoItemList;
this.prodlist = prodlist.map((item) => {
let newmaterialCode = item.materialCode.slice(item.materialCode.search(/[1-9]/));
return {
...item,
handlematerialCode: newmaterialCode,
};
});
//this.list = [];
if (this.prodlist.length) {
this.prodobj = this.prodlist[0];
//this.list.push(this.materilist[0]);
this.procureCode = this.prodobj.procureCode;
} else {
this.prodobj = {} as OptionType;
}
this.querybyprod();
//this.ProcureOrderAlready();
//this.list = model.orderNoItemList;
}
async querybyprod() {
console.log(session);
// if (this.procureCode == '' || this.procureCode.length == 0) {
// (this.$refs.uToast as any).show({
// title: 'rfid',
// type: 'default',
// });
// return;
// }
this.aimWl = {} as OptionType;
let query = {
materialCode: this.aimWl.value ? this.aimWl.value : '',
userDefined5: this.userDefined5,
procureCode: this.prodobj.procureCode,
//this.materialCode,
factoryCode: session.FactoryCode,
};
await this.model.PurchaseOrderPda(query);
let materilist = model.orderNoItemList;
this.materilist = materilist.map((item) => {
let newmaterialCode = item.materialCode.slice(item.materialCode.search(/[1-9]/));
return {
...item,
handlematerialCode: newmaterialCode,
};
});
this.list = [];
if (this.prodlist.length) {
this.aimWl = this.materilist[0];
this.list.push(this.materilist[0]);
this.procureCode = this.list[0].procureCode;
} else {
this.prodobj = {} as OptionType;
}
//this.ProcureOrderAlready();
//this.list = model.orderNoItemList;
}
// async querydelivery() {
// console.log(session);
// if (this.userDefined5 == '' || this.userDefined5.length == 0) {
// (this.$refs.uToast as any).show({
// title: '',
// type: 'default',
// });
// return;
// }
// this.aimWl = {} as OptionType;
// let query = {
// userDefined5: this.userDefined5,
// procureCode: this.procureCode,
// materialCode: this.aimWl.value ? this.aimWl.value : '',
// //this.materialCode,
// factoryCode: session.FactoryCode,
// };
// await this.model.PurchaseOrderPda(query);
// let materilist = model.orderNoItemList;
// this.materilist = materilist.map((item) => {
// let newmaterialCode = item.materialCode.slice(item.materialCode.search(/[1-9]/));
// return {
// ...item,
// handlematerialCode: newmaterialCode,
// };
// });
// this.list = [];
// if (this.materilist.length) {
// this.aimWl = this.materilist[0];
// this.list.push(this.materilist[0]);
// } else {
// this.aimWl = {} as OptionType;
// }
// this.ProcureOrderAlready();
// //this.list = model.orderNoItemList;
// }
//
async tidandelivery() {
if (this.userDefined5 == '' || this.userDefined5.length == 0) {
(this.$refs.uToast as any).show({
title: '请输入送货单',
type: 'default',
});
return;
}
let item = {
userDefined5: this.userDefined5,
factoryCode: session.FactoryCode,
createBy: session.loginName,
};
await this.model.getDeliveryNoteDetail(item);
if (model.deliverycode == '200') {
(this.$refs.uToast as any).show({
title: '提单成功',
type: 'success',
});
this.query();
}
}
//
// async ProcureOrderAlready() {
// let item = {
// procureCode: this.procureCode,
// factoryCode: session.FactoryCode,
// userDefined5: this.userDefined5,
// };
// await this.model.selectOdsProcureOrderAlready(item);
// if (model.Alreadycode == '200') {
// let alreadyList = model.ProcureOrderAlreadylist;
// this.receivedlist = alreadyList.map((item) => {
// let newmsrmMater = item.materialCode.slice(item.materialCode.search(/[1-9]/));
// return {
// ...item,
// handlematerialCode: newmsrmMater,
// };
// });
// }
// }
histroyItem: any = {};
barcode: any = '';
// async selectProductlocCode(e: any) {
// this.productCodeTypeList = e.pickerName;
// let params = {
// factoryCode: session.FactoryCode,
// whCode: this.productCodeTypeList.value,
// };
// await this.model.WarehouseList(params);
// let whlist = model.wacodelist;
// if (whlist.length) {
// this.waCodeList = whlist;
// this.waCodeTypeList = this.waCodeList[0];
// } else {
// this.waCodeList = [];
// this.waCodeTypeList = {} as OptionType;
// }
// }
// selectProductwaCode(e: any) {
// this.waCodeTypeList = e.pickerName;
// }
bookprodeChange(e: any) {
this.prodobj = e.pickerName;
this.procureCode = this.prodobj.procureCode;
this.querybyprod();
}
bookTypeChange(e: any) {
this.aimWl = e.pickerName;
this.list = [];
this.list.push(e.pickerName);
this.procureCode = this.list[0].procureCode;
//
//this.queryinformation();
//this.getlist();
}
bookTypeChangeway(e) {
//this.showshow = true;
this.bimWl.value = e.pickerName.value;
console.log(e);
// if (e.pickerName.value == '0') {
// this.selectway = false;
// } else {
// this.selectway = true;
// }
}
//
async SignIn() {
let params = {
factoryCode: session.FactoryCode,
id: this.list[0].id,
};
await this.model.selectArrivalRegistration(params);
if (this.model.singcode == 200) {
this.singshow = true;
this.operationNumber = model.singobj.operationNumber;
this.nooperationNumber = model.singobj.planNumber - model.singobj.operationNumber;
}
}
//
async onOksing() {
if (this.procureCode == '' || this.procureCode.length == 0) {
(this.$refs.uToast as any).show({
title: '请输入采购单号',
type: 'default',
});
return;
}
if (parseFloat(this.czNumber) == 0 || this.czNumber == '') {
(this.$refs.uToast as any).show({
title: '填写登记数量且不能为0',
type: 'default',
duration: 4000,
});
return;
}
let params = {
factoryCode: session.FactoryCode,
procureCode: this.procureCode,
id: this.list[0].id,
czNumber: this.czNumber,
lastUpdateBy: session.loginName,
};
//console.log('99999',params);
await this.model.ArrivalRegistration(params);
if (this.model.Arrivalcode == 200) {
(this.$refs.uToast as any).show({
title: model.Arrivalmsg,
duration: 4000,
});
this.nopoupsing();
}
}
}
</script>
<style lang="scss" scoped>
.page-product-receipt {
background: #f2f2f2 linear-gradient(0deg, #f2f2f2 0%, #f8262c 51%, #d9001b 100%) no-repeat;
background-size: 100% 600rpx;
padding: 118rpx 30rpx 162rpx;
min-height: 100%;
.header {
position: fixed;
top: 0rpx;
left: 0;
right: 0;
z-index: 99;
display: flex;
height: 120rpx;
line-height: 88rpx;
color: #fff;
font-size: 34rpx;
font-weight: 500;
text-align: center;
padding: 45rpx 0rpx 0rpx;
.title {
flex: 3;
}
.left,
.right {
flex: 1;
}
.icon {
display: flex;
justify-content: center;
align-items: center;
width: 88rpx;
height: 88rpx;
}
}
.form {
background-color: #fff;
padding: 20rpx;
border-radius: 10rpx;
box-shadow: 0 0 20rpx 0 rgba(128, 128, 128, 0.2);
.u-form-item {
padding: 30rpx 0;
line-height: 35rpx;
.Transfer {
width: 280rpx;
height: 64rpx;
background: rgb(242, 242, 242);
border-radius: 110rpx;
}
}
.single {
width: 100%;
height: 100rpx;
display: flex;
.single-left {
width: 80%;
height: 100%;
display: flex;
view {
width: 142rpx;
height: 100%;
line-height: 100rpx;
}
}
.single-right {
button {
margin-top: 15rpx;
width: 140rpx;
height: 70rpx;
background-color: #fa3534;
}
}
}
.row {
display: flex;
flex-direction: row;
justify-content: space-around;
flex: 1;
}
.creatshow {
display: flex;
margin-top: 5px;
.buttonshow {
flex: 1;
}
.inputshow {
flex: 4;
//border: 1px solid #9f9a9a8f;
border-radius: 5px;
margin-left: 4px;
}
}
}
.matshow {
// margin-top: 120rpx;
// padding-left: 30rpx;
// padding-right: 16rpx;
// margin-bottom: 20rpx;
// overflow: scroll;
// padding-top: 20rpx;
.form2 {
background-color: #fff;
padding: 0rpx 25rpx 25rpx;
border-radius: 10rpx;
box-shadow: 0 0 20rpx 0 rgba(128, 128, 128, 0.2);
color: #292c32;
.row-list {
display: flex;
flex-direction: row;
justify-content: space-between;
}
.righttitle {
display: flex;
justify-content: flex-end;
.boder-icon-rigth {
border: 1rpx solid #fa3534;
width: 130rpx;
text-align: center;
background: #fa3534;
color: #ffffff;
margin-top: 10px;
}
.zhuangtai {
background: #a7a0a04a;
width: 224rpx;
margin-right: -25rpx;
border: 2rpx solid #a7a0a04a;
border-radius: 12rpx;
text-align: center;
margin-bottom: 10rpx;
}
.zhuangtai[data-state='1'] {
color: green;
}
.zhuangtai[data-state='0'] {
color: blue;
}
}
}
}
.scroll {
height: 590rpx;
overflow: scroll;
// padding-top: 20rpx;
.form2 {
background-color: #fff;
padding: 0rpx 25rpx 25rpx;
border-radius: 10rpx;
box-shadow: 0 0 20rpx 0 rgba(128, 128, 128, 0.2);
color: #8d8989;
.row-list {
display: flex;
flex-direction: row;
justify-content: space-between;
}
.righttitle {
display: flex;
justify-content: flex-end;
.boder-icon-rigth {
border: 1rpx solid #fa3534;
width: 130rpx;
text-align: center;
background: #fa3534;
color: #ffffff;
margin-top: 10px;
}
.zhuangtai {
background: #a7a0a04a;
width: 224rpx;
margin-right: -25rpx;
border: 2rpx solid #a7a0a04a;
border-radius: 12rpx;
text-align: center;
margin-bottom: 10rpx;
}
.zhuangtai[data-state='1'] {
color: green;
}
.zhuangtai[data-state='0'] {
color: blue;
}
}
}
}
.bottom-bar {
position: fixed;
bottom: 0;
left: 0;
right: 0;
z-index: 99;
background: #ffffff;
box-shadow: 0 1rpx 20rpx 0 rgba(128, 128, 128, 0.2);
padding: 20rpx;
}
.button-bar {
}
.photoList {
display: flex;
padding-top: 12rpx;
.chooseBtn {
width: 202rpx;
height: 202rpx;
background: #fafafa;
border-radius: 12rpx;
border: 2rpx dashed #e2e2e2;
display: flex;
justify-content: center;
align-items: center;
.inner {
text-align: center;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
}
.desc {
font-size: 28rpx;
font-weight: 400;
color: #24252a;
line-height: 40rpx;
}
.img {
width: 50rpx;
height: 50rpx;
margin-bottom: 6rpx;
}
}
.photoBox {
width: 202rpx;
height: 202rpx;
background: #fafafa;
border-radius: 12rpx;
position: relative;
.closeBtn {
position: absolute;
top: -12rpx;
right: -12rpx;
z-index: 2;
width: 36rpx;
height: 36rpx;
.img {
width: 36rpx;
height: 36rpx;
}
}
.img {
width: 202rpx;
height: 202rpx;
border-radius: 12rpx;
}
}
.itemBox {
flex: 0 0 202rpx;
margin-right: 20rpx;
&:last-child {
margin-right: 0;
}
}
// /deep/ .remarksBox textarea {
// font-size: 24rpx;
// }
}
.form3 {
padding: 20rpx;
//border-radius: 10rpx;
//box-shadow: 0 0 20rpx 0 rgba(128, 128, 128, 0.2);
.poupitem {
display: flex;
flex-direction: row;
justify-content: space-around;
margin: 20rpx;
.pouptitle {
min-width: 30%;
white-space: nowrap;
}
.poupcontent {
border: 1px solid rgba(128, 128, 128, 0.2);
}
}
}
.form4 {
padding: 20rpx;
//border-radius: 10rpx;
//box-shadow: 0 0 20rpx 0 rgba(128, 128, 128, 0.2);
.poupitem {
display: flex;
flex-direction: row;
justify-content: space-around;
margin: 20rpx;
.pouptitle {
width: 40%;
white-space: nowrap;
}
.poupcontent {
border: 1px solid rgba(128, 128, 128, 0.2);
}
}
}
.poupbutton {
display: flex;
justify-content: space-around;
}
.mask {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.5); /* 半透明的黑色背景 */
z-index: 9999; /* 确保遮罩层在最上层 */
}
}
</style>

@ -0,0 +1,130 @@
import { getModule, Module, MutationAction, VuexModule } from 'vuex-module-decorators';
import store from '@/store';
import http from '@/utils/request';
import { url } from '@/utils/url';
import { session } from '@/store/modules/session';
@Module({
namespaced: true,
dynamic: true,
store,
name: 'page.raw.ArrivalRegistration',
})
export class ArrivalRegistration extends VuexModule {
WlList = [];
orderNoItemList: any = [];
orderNoItemListdes: any = [];
@MutationAction
async PurchaseOrderPda(data: any) {
const result: any = await http.post(url.lanjuwms.raw.ReceiveSRM.PurchaseOrderPda, data);
let orderNoItemList: any = [];
if (result.data.length) {
orderNoItemList = result.data.map((item: any) => ({
label: item.materialDesc,
value: item.materialCode,
...item,
}));
} else {
orderNoItemList = [];
}
return { orderNoItemList };
}
Alreadycode: any = '';
ProcureOrderAlreadylist: any = '';
@MutationAction
async selectOdsProcureOrderAlready(data: any) {
const result: any = await http.post(url.lanjuwms.raw.ReceiveSRM.selectOdsProcureOrderAlready, data);
const Alreadycode = result.code;
const ProcureOrderAlreadylist = result.data;
return { Alreadycode, ProcureOrderAlreadylist };
}
sapPurchasecode: any = '';
@MutationAction
async sapPurchaseOrderSync(data: any) {
const result: any = await http.post(url.lanjuwms.raw.ReceiveSRM.sapPurchaseOrderSync, data);
const sapPurchasecode = result.code;
return { sapPurchasecode };
}
deliverycode: any = '';
@MutationAction
async getDeliveryNoteDetail(data: any) {
const result: any = await http.post(url.lanjuwms.raw.ReceiveSRM.getDeliveryNoteDetail, data);
const deliverycode = result.code;
return { deliverycode };
}
SubmitCode: any = '';
@MutationAction
async PurchaseOrderdeliPda(data: any) {
const result: any = await http.post(url.lanjuwms.raw.ReceiveSRM.PurchaseOrderdeliPda, data);
const SubmitCode: [] = result;
return { SubmitCode };
}
@MutationAction
async PurchaseOrderdetailPda(data: any) {
const result: any = await http.post(url.lanjuwms.raw.ReceiveSRM.PurchaseOrderdetailPda, data);
const orderNoItemListdes = result.data;
return { orderNoItemListdes };
}
DictTypeList: any = [];
@MutationAction
async Stashlist() {
const result: any = await http.post(url.lanjuwms.raw.ReceiveSRM.list, {
factoryCode: session.FactoryCode,
});
const DictTypeListoild: [] = result.data;
const DictTypeList = DictTypeListoild.map((item: any) => ({
label: item.warehouseName,
value: item.warehouseCode,
...item,
}));
return { DictTypeList };
}
//库区查询
wacodelist: any = [];
@MutationAction
async WarehouseList(data: any) {
const result: any = await http.post(url.lanjuwms.raw.ReceiveSRM.WarehouseList, data);
const oldwacode = result.data;
let wacodelist = oldwacode.map((item: any) => ({
label: item.areaDesc,
value: item.areaCode,
...item,
}));
if (!wacodelist.length) {
wacodelist = [];
}
return { wacodelist };
}
submitcode: any = '';
@MutationAction
async OnSubmit(data: any) {
const result: any = await http.post(url.lanjuwms.raw.ReceiveSRM.PurchaseOrderdeliPdaConfirm, data);
const submitcode = result.code;
return {
submitcode,
};
}
Arrivalcode: any = '';
Arrivalmsg: any = '';
@MutationAction
async ArrivalRegistration(data: any) {
const result: any = await http.post(url.lanjuwms.raw.ReceiveSRM.ArrivalRegistration, data);
const Arrivalcode = result.code;
const Arrivalmsg = result.msg;
return {
Arrivalcode,
Arrivalmsg,
};
}
singcode: any = '';
singobj: any = {};
@MutationAction
async selectArrivalRegistration(data: any) {
const result: any = await http.post(url.lanjuwms.raw.ReceiveSRM.selectArrivalRegistration, data);
const singcode = result.code;
const singobj = result.data;
return { singcode, singobj };
}
}
export default getModule(ArrivalRegistration);

@ -7,78 +7,94 @@
<view class="title">采购收货(SRM)</view>
<view class="right"></view>
</view>
<u-form class="form" ref="form" label-width="180rpx">
<!-- 送货单 -->
<view class="single">
<view class="single-left">
<view>送货单号:</view>
<u-search placeholder="请扫描" v-model="userDefined5" @search="query" :show-action="false"></u-search>
</view>
<view class="single-right">
<u-button type="primary" @click="tidandelivery"></u-button>
</view>
</view>
<u-form-item label="采购单">
<!-- <u-input :border="true" v-model="materialCode" placeholder="" @confirm="query" style="overflow: hidden" /> -->
<jPicker sureColor="#ff0000" @bindpicker="bookprodeChange" showKey="procureCode" valKey="procureCode" :val="prodobj.procureCode" :options="prodlist" />
</u-form-item>
<!-- 订单 -->
<u-form-item label="物料描述">
<!-- <u-input :border="true" v-model="materialCode" placeholder="" @confirm="query" style="overflow: hidden" /> -->
<jPicker sureColor="#ff0000" :showCode="true" @bindpicker="bookTypeChange" duoyukey="procureCode" showKey="label" valKey="value" :val="aimWl.value" :options="materilist" />
</u-form-item>
<view class="creatshow">
<u-button class="buttonshow" type="primary" @click="generate"></u-button>
<u-input border placeholder="" class="inputshow" disabled v-model="receiptNoCode" />
</view>
</u-form>
<view class="matshow">
<view v-for="item in list" :key="item.id" @dblclick="onFormDoubleClick(item)">
<u-form style="margin-top: 10rpx" class="form2">
<view class="list">
<view class="righttitle">
<!-- 0是未收货1是正在收货2是收货完成 -->
<view class="boder-icon-top zhuangtai" data-state="0">{{ item.orderStatus == 0 ? '未收货' : item.orderStatus == 1 ? '正在收货' : '收货完成' }}</view>
</view>
<view v-if="item.userDefined5" class="row-list">
<view class="list-item"> 送货单号: </view>
<view> {{ item.userDefined5 }} </view>
</view>
<view class="row-list">
<view class="list-item"> 行项目: </view>
<view> {{ item.userDefined3 }} </view>
</view>
<view class="row-list">
<view class="list-item"> 物料编码: </view>
<view> {{ item.handlematerialCode }}</view>
</view>
<view class="row-list">
<view class="list-item"> 物料描述: </view>
<view>{{ item.materialDesc }}</view>
</view>
<view class="row-list">
<view class="list-item"> 工厂号: </view>
<view>{{ item.siteCode }}</view>
</view>
<view class="row-list">
<view class="list-item"> 应收/已收: </view>
<view>{{ item.planNumber }}/{{ item.realityNumber }}</view>
</view>
<view a:if="true" class="righttitle">
<view @click.stop="onPass(item)" class="boder-icon-rigth"> 收货 </view>
</view>
<view>
<u-form class="form" ref="form" label-width="180rpx">
<!-- 送货单 -->
<view class="single">
<view class="single-left">
<view>送货单号:</view>
<u-search placeholder="请扫描" v-model="userDefined5" @search="query" :show-action="false"></u-search>
</view>
</u-form>
<view class="single-right">
<u-button type="primary" @click="tidandelivery"></u-button>
</view>
</view>
<u-form-item label="库区">
<u-search placeholder="请扫描" v-model="areaCode" @search="queryloc" :show-action="false"></u-search>
<!-- <jPicker sureColor="#ff0000" :moren="moren" @bindpicker="selectProductlocCode" showKey="label" valKey="value" :val="productCodeTypeList.value" :options="whList" /> -->
</u-form-item>
<u-form-item label="仓库">
{{ waCodeList.warehouseName }}
<!-- <jPicker sureColor="#ff0000" :moren="moren1" @bindpicker="selectProductwaCode" showKey="label" valKey="value" :val="waCodeTypeList.value" :options="waCodeList" /> -->
</u-form-item>
<u-form-item label="采购单">
<jPicker sureColor="#ff0000" @bindpicker="bookprodeChange" showKey="procureCode" valKey="procureCode" :val="prodobj.procureCode" :options="prodlist" />
</u-form-item>
<!-- 订单 -->
<u-form-item label="物料描述">
<u-input border height="50" placeholder="" class="inputshow" disabled v-model="prodobj.handlematerialCode" />
<!-- <jPicker sureColor="#ff0000" :showCode="true" @bindpicker="bookTypeChange" duoyukey="procureCode" showKey="label" valKey="value" :val="aimWl.value" :options="materilist" /> -->
</u-form-item>
<u-form-item label="标志卡">
<u-search placeholder="请扫描" v-model="Idcard" @search="querybyidcard" :show-action="false"></u-search>
</u-form-item>
<view class="creatshow">
<u-button class="buttonshow" type="primary" @click="generate"></u-button>
<u-input border height="50" placeholder="" class="inputshow" disabled v-model="receiptNoCode" />
</view>
</u-form>
<view class="matshow">
<view v-for="item in list" :key="item.id" @dblclick="onFormDoubleClick(item)">
<u-form :style="{ marginTop: '10rpx', backgroundColor: item.planNumber <= item.realityNumber ? '#4eea9b59' : '#ffffff' }" class="form2">
<view class="list">
<view class="righttitle">
<!-- 0是未收货1是正在收货2是收货完成 -->
<view class="boder-icon-top zhuangtai" data-state="0">{{ item.orderStatus == 0 ? '未收货' : item.orderStatus == 1 ? '正在收货' : '收货完成' }}</view>
</view>
<view v-if="item.userDefined5" class="row-list">
<view class="list-item"> 送货单号: </view>
<view> {{ item.userDefined5 }} </view>
</view>
<view v-if="item.procureCode" class="row-list">
<view class="list-item"> 采购单号: </view>
<view> {{ item.procureCode }} </view>
</view>
<view class="row-list">
<view class="list-item"> 行项目: </view>
<view> {{ item.userDefined3 }} </view>
</view>
<view class="row-list">
<view class="list-item"> 物料编码: </view>
<view> {{ item.handlematerialCode }}</view>
</view>
<view class="row-list">
<view class="list-item"> 物料描述: </view>
<view>{{ item.materialDesc }}</view>
</view>
<view class="row-list">
<view class="list-item"> 工厂号: </view>
<view>{{ item.siteCode }}</view>
</view>
<view class="row-list">
<view class="list-item"> 应收/实收: </view>
<view>{{ item.planNumber }}/{{ item.realityNumber }}</view>
</view>
<!-- <view a:if="true" class="righttitle">
<view @click.stop="onPass(item)" class="boder-icon-rigth"> 收货 </view>
</view> -->
</view>
</u-form>
</view>
</view>
</view>
<view class="scroll">
<view v-for="item in receivedlist" :key="item.id" @dblclick="onFormDoubleClick(item)">
<view v-for="item in receivedlist" :key="item.id">
<u-form style="margin-top: 10rpx" class="form2">
<view class="list">
<view class="righttitle">
<!-- 0是未收货1是正在收货2是收货完成 -->
<view class="boder-icon-top zhuangtai" data-state="0">已收货</view>
<view class="boder-icon-top zhuangtai" data-state="0">{{ item.userDefined10 == '0' ? '未收货' : '已收货' }}</view>
</view>
<view v-if="item.userDefined5" class="row-list">
<view class="list-item"> 送货单号: </view>
@ -105,8 +121,12 @@
<view>{{ item.siteCode }}</view>
</view>
<view class="row-list">
<view class="list-item"> 应收/已收: </view>
<view>{{ item.planNumber }}/{{ item.realityNumber }}</view>
<view class="list-item"> 托盘: </view>
<view>{{ item.sn }}</view>
</view>
<view class="row-list">
<view class="list-item">实际收货: </view>
<u-input border placeholder="" @blur="confirmNumber" v-model="item.planNumber" />
</view>
<!-- <view a:if="true" class="righttitle">
<view @click.stop="onPass(item)" class="boder-icon-rigth"> 收货 </view>
@ -117,91 +137,17 @@
</view>
<view class="bottom-bar">
<u-row class="button-bar">
<u-col :span="6">
<u-button type="error" @click="SignIn"></u-button>
</u-col>
<!-- 确定 -->
<u-col :span="6">
<u-button @click="onSubmit" type="primary">确认收货</u-button>
</u-col>
<!-- 返回 -->
<u-col :span="6">
<u-button type="error" @click="uni.navigateBack()"></u-button>
</u-col>
</u-row>
</view>
<view>
<u-popup v-model="show" mode="center" width="580rpx" height="650rpx">
<view class="form3">
<view class="poupitem">
<view class="pouptitle">标识码</view>
<u-search placeholder="请扫描" v-model="form3.userDefined6" :show-action="false"></u-search>
</view>
<view class="poupitem">
<view class="pouptitle">数量</view>
<u-input class="poupcontent" :clearable="false" v-model="form3.planNumber" placeholder="" style="overflow: hidden" />
</view>
<view class="poupitem">
<view class="pouptitle">收货方式</view>
<jPicker sureColor="#ff0000" @bindpicker="bookTypeChangeway" showKey="lable" valKey="value" :val="bimWl.value" :options="waylist" />
<!-- <u-select mode="single-column" :list="waylist" @confirm="bookTypeChangeway"></u-select> -->
</view>
<view v-show="showshow">
<view v-show="!selectway" class="poupitem">
<view class="pouptitle">物料号</view>
<u-input disabled class="poupcontent" :clearable="false" v-model="aimWl.value" placeholder="" style="overflow: hidden" />
</view>
<view v-show="selectway" class="poupitem">
<view class="pouptitle">托盘号</view>
<u-input class="poupcontent" :clearable="false" v-model="form3.sn" placeholder="" style="overflow: hidden" />
</view>
</view>
<view class="poupitem">
<view class="pouptitle">收货仓库</view>
<jPicker sureColor="#ff0000" :moren="moren" @bindpicker="selectProductlocCode" showKey="label" valKey="value" :val="productCodeTypeList.value" :options="whList" />
</view>
<view class="poupitem">
<view class="pouptitle">库区</view>
<jPicker sureColor="#ff0000" :moren="moren1" @bindpicker="selectProductwaCode" showKey="label" valKey="value" :val="waCodeTypeList.value" :options="waCodeList" />
</view>
</view>
<view class="poupbutton" style="margin-top: 10px">
<div>
<u-button style="width: 100px; height: 35px" @click="onOk" size="mini" type="primary">确定</u-button>
</div>
<div>
<u-button style="width: 100px; height: 35px" size="mini" type="error" @click="nopoup"></u-button>
</div>
</view>
</u-popup>
<view v-if="show" class="mask"></view>
</view>
<u-toast ref="uToast" />
<view>
<u-popup v-model="singshow" mode="center" width="580rpx" height="500rpx">
<view class="form4">
<view class="poupitem">
<view class="pouptitle">已登记数量</view>
<u-input disabled class="poupcontent" :clearable="false" v-model="operationNumber" placeholder="" style="overflow: hidden; background-color: #ddd" />
</view>
<view class="poupitem">
<view class="pouptitle">未登记数量</view>
<u-input disabled class="poupcontent" :clearable="false" v-model="nooperationNumber" placeholder="" style="overflow: hidden; background-color: #ddd" />
</view>
<view class="poupitem">
<view class="pouptitle">登记数量</view>
<u-input class="poupcontent" :clearable="false" v-model="czNumber" placeholder="" style="overflow: hidden" />
</view>
<view class="poupbutton" style="margin-top: 10px">
<div>
<u-button style="width: 100px; height: 35px" @click="onOksing" size="mini" type="primary">确定</u-button>
</div>
<div>
<u-button style="width: 100px; height: 35px" size="mini" type="error" @click="nopoupsing"></u-button>
</div>
</view>
</view>
</u-popup>
<view v-if="singshow" class="mask"></view>
</view>
</view>
</template>
<script lang="ts">
@ -223,10 +169,13 @@ interface OptionType {
export default class receiveSRM extends BasePage {
model = model;
list: any = [];
realityaddNumber = 0;
receivedlist: any = [];
operationNumber = 0;
nooperationNumber = 0;
czNumber = '';
Idcard = '';
areaCode = '';
// receivedlist=[{
// orderStatus:'1',
// procureCode:'111',
@ -255,7 +204,7 @@ export default class receiveSRM extends BasePage {
// }
// ]
whList: any = [];
waCodeList: any = [];
waCodeList: any = {};
show = false;
singshow = false;
form3: any = {};
@ -310,8 +259,8 @@ export default class receiveSRM extends BasePage {
productCodeList: any = {};
receiptNoCode = '';
async onReady() {
await this.model.Stashlist();
this.whList = model.DictTypeList;
//await this.model.Stashlist();
// this.whList = model.DictTypeList;
//this.remove = this.model.WlList[0];
}
//
@ -320,17 +269,17 @@ export default class receiveSRM extends BasePage {
this.receiptNoCode = `sn${today}`;
}
//
onPass(item) {
this.clickitem = item;
this.show = true;
this.form3 = {};
this.productCodeTypeList = {};
this.waCodeTypeList = {};
this.waCodeList = [];
this.showshow = true;
this.bimWl = this.waylist[0];
this.selectway = true;
}
// onPass(item) {
// this.clickitem = item;
// this.show = true;
// this.form3 = {};
// this.productCodeTypeList = {};
// this.waCodeTypeList = {};
// this.waCodeList = [];
// this.showshow = true;
// this.bimWl = this.waylist[0];
// this.selectway = true;
// }
nopoup() {
this.show = false;
this.form3 = {};
@ -466,6 +415,7 @@ export default class receiveSRM extends BasePage {
this.prodobj = {} as OptionType;
}
this.querybyprod();
this.receivedlist = [];
//this.ProcureOrderAlready();
//this.list = model.orderNoItemList;
}
@ -481,9 +431,10 @@ export default class receiveSRM extends BasePage {
// }
this.aimWl = {} as OptionType;
let query = {
materialCode: this.aimWl.value ? this.aimWl.value : '',
userDefined5: this.userDefined5,
procureCode: this.prodobj.procureCode,
// materialCode: this.aimWl.value ? this.aimWl.value : '',
// userDefined5: this.userDefined5,
id: this.prodobj.id,
//procureCode: this.prodobj.procureCode,
//this.materialCode,
factoryCode: session.FactoryCode,
@ -501,50 +452,14 @@ export default class receiveSRM extends BasePage {
if (this.prodlist.length) {
this.aimWl = this.materilist[0];
this.list.push(this.materilist[0]);
this.realityaddNumber = this.list[0].realityNumber;
this.procureCode = this.list[0].procureCode;
} else {
this.prodobj = {} as OptionType;
}
this.ProcureOrderAlready();
//this.ProcureOrderAlready();
//this.list = model.orderNoItemList;
}
// async querydelivery() {
// console.log(session);
// if (this.userDefined5 == '' || this.userDefined5.length == 0) {
// (this.$refs.uToast as any).show({
// title: '',
// type: 'default',
// });
// return;
// }
// this.aimWl = {} as OptionType;
// let query = {
// userDefined5: this.userDefined5,
// procureCode: this.procureCode,
// materialCode: this.aimWl.value ? this.aimWl.value : '',
// //this.materialCode,
// factoryCode: session.FactoryCode,
// };
// await this.model.PurchaseOrderPda(query);
// let materilist = model.orderNoItemList;
// this.materilist = materilist.map((item) => {
// let newmaterialCode = item.materialCode.slice(item.materialCode.search(/[1-9]/));
// return {
// ...item,
// handlematerialCode: newmaterialCode,
// };
// });
// this.list = [];
// if (this.materilist.length) {
// this.aimWl = this.materilist[0];
// this.list.push(this.materilist[0]);
// } else {
// this.aimWl = {} as OptionType;
// }
// this.ProcureOrderAlready();
// //this.list = model.orderNoItemList;
// }
//
async tidandelivery() {
if (this.userDefined5 == '' || this.userDefined5.length == 0) {
@ -569,82 +484,115 @@ export default class receiveSRM extends BasePage {
}
}
//
async ProcureOrderAlready() {
async querybyidcard() {
// if(this.receivedlist.length!=0){
// const result = this.receivedlist.every(item => item.userDefined4 == this.prodobj.id);
// (this.$refs.uToast as any).show({
// title: '',
// type: 'default',
// });
// return;
// }
let item = {
procureCode: this.procureCode,
factoryCode: session.FactoryCode,
userDefined5: this.userDefined5,
userDefined1: this.Idcard,
};
await this.model.selectOdsProcureOrderAlready(item);
if (model.Alreadycode == '200') {
let alreadyList = model.ProcureOrderAlreadylist;
this.receivedlist = alreadyList.map((item) => {
let newmsrmMater = item.materialCode.slice(item.materialCode.search(/[1-9]/));
return {
...item,
handlematerialCode: newmsrmMater,
};
});
await this.model.getByidcard(item);
if (model.getidcardcode == '200') {
let alreadyList = model.byidcardobj;
alreadyList.handlematerialCode = alreadyList.materialCode.slice(alreadyList.materialCode.search(/[1-9]/));
this.receivedlist.push(alreadyList);
this.confirmNumber();
this.Idcard = '';
}
}
histroyItem: any = {};
barcode: any = '';
async selectProductlocCode(e: any) {
this.productCodeTypeList = e.pickerName;
async queryloc() {
let params = {
factoryCode: session.FactoryCode,
whCode: this.productCodeTypeList.value,
areaCode: this.areaCode,
};
await this.model.WarehouseList(params);
let whlist = model.wacodelist;
if (whlist.length) {
this.waCodeList = whlist;
this.waCodeTypeList = this.waCodeList[0];
} else {
this.waCodeList = [];
this.waCodeTypeList = {} as OptionType;
}
await this.model.getworkloc(params);
this.waCodeList = model.workloclist;
}
selectProductwaCode(e: any) {
this.waCodeTypeList = e.pickerName;
}
//
async onSubmit() {
if (this.procureCode == '' || this.procureCode.length == 0) {
if (Object.keys(this.prodobj).length == 0) {
(this.$refs.uToast as any).show({
title: '请输入采购单号',
title: '请选择采购单或者用送货单去查询',
type: 'default',
});
return;
}
if (this.receiptNoCode == '' || this.receiptNoCode.length == 0) {
if (this.areaCode == '') {
(this.$refs.uToast as any).show({
title: '请先扫描或输入库区',
type: 'default',
});
return;
}
if (Object.keys(this.waCodeList).length == 0) {
(this.$refs.uToast as any).show({
title: '没有仓库信息',
type: 'default',
});
return;
}
if (this.receiptNoCode == '') {
(this.$refs.uToast as any).show({
title: '请先生成收货单号',
type: 'default',
});
return;
}
let filteredList = [];
if (this.receivedlist.length == 0) {
(this.$refs.uToast as any).show({
title: '没有扫描标志卡收货',
type: 'default',
});
return;
} else {
filteredList = this.receivedlist.filter((item) => item.userDefined10 !== '1');
filteredList.forEach((item) => {
item.userDefined6 = item.userDefined1;
});
}
let params = {
id: this.prodobj.id, //id
factoryCode: session.FactoryCode,
procureCode: this.procureCode,
receiptNoCode: this.receiptNoCode,
id: this.list[0].id,
whCode: this.waCodeList.warehouseCode, //
waCode: this.areaCode, //
receiptNoCode: this.receiptNoCode, //
poLine: this.prodobj.userDefined3, //
createBy: session.loginName,
list: filteredList,
};
//console.log('----',params);
await this.model.OnSubmit(params);
if (this.model.submitcode == '200') {
(this.$refs.uToast as any).show({
title: '成功',
type: 'success',
title: model.submitmsg,
type: 'primary',
});
await this.query();
this.receiptNoCode = '';
this.receivedlist = [];
this.Idcard = '';
this.areaCode = '';
this.waCodeList = {};
this.query();
}
}
bookprodeChange(e: any) {
this.prodobj = e.pickerName;
this.procureCode = this.prodobj.procureCode;
this.querybyprod();
this.receivedlist = [];
}
bookTypeChange(e: any) {
this.aimWl = e.pickerName;
@ -665,52 +613,15 @@ export default class receiveSRM extends BasePage {
// this.selectway = true;
// }
}
//
async SignIn() {
let params = {
factoryCode: session.FactoryCode,
id: this.list[0].id,
};
await this.model.selectArrivalRegistration(params);
if (this.model.singcode == 200) {
this.singshow = true;
this.operationNumber = model.singobj.operationNumber;
this.nooperationNumber = model.singobj.planNumber - model.singobj.operationNumber;
}
}
//
async onOksing() {
if (this.procureCode == '' || this.procureCode.length == 0) {
(this.$refs.uToast as any).show({
title: '请输入采购单号',
type: 'default',
});
return;
}
if (parseFloat(this.czNumber) == 0 || this.czNumber == '') {
(this.$refs.uToast as any).show({
title: '填写登记数量且不能为0',
type: 'default',
duration: 4000,
});
return;
}
let params = {
factoryCode: session.FactoryCode,
procureCode: this.procureCode,
id: this.list[0].id,
czNumber: this.czNumber,
lastUpdateBy: session.loginName,
};
//console.log('99999',params);
await this.model.ArrivalRegistration(params);
if (this.model.Arrivalcode == 200) {
(this.$refs.uToast as any).show({
title: model.Arrivalmsg,
duration: 4000,
});
this.nopoupsing();
}
confirmNumber() {
let addNumber = 0;
this.receivedlist.forEach((item) => {
addNumber += parseFloat(item.planNumber ? item.planNumber : '0');
});
this.list[0].realityNumber = this.realityaddNumber + addNumber;
//console.log('1239999999',this.list[0].realityNumber)
}
}
</script>
@ -761,7 +672,7 @@ export default class receiveSRM extends BasePage {
box-shadow: 0 0 20rpx 0 rgba(128, 128, 128, 0.2);
.u-form-item {
padding: 30rpx 0;
padding: 10rpx 0;
line-height: 35rpx;
.Transfer {
@ -810,6 +721,7 @@ export default class receiveSRM extends BasePage {
margin-top: 5px;
.buttonshow {
flex: 1;
height: 60rpx;
}
.inputshow {
flex: 4;

@ -79,6 +79,20 @@ export class receiveSRM extends VuexModule {
}));
return { DictTypeList };
}
//最新仓库查询
workloclist: any = {};
@MutationAction
async getworkloc(data: any) {
const result: any = await http.post(url.lanjuwms.raw.ReceiveSRM.listTableCK, data);
const workloclist = result.data;
// let workloclist = oldworkloclist.map((item: any) => ({
// label: item.warehouseName,
// value: item.warehouseCode,
// ...item,
// }));
//let wacode = oldwacode[0].areaCode;
return { workloclist };
}
//库区查询
wacodelist: any = [];
@MutationAction
@ -96,12 +110,15 @@ export class receiveSRM extends VuexModule {
return { wacodelist };
}
submitcode: any = '';
submitmsg: any = '';
@MutationAction
async OnSubmit(data: any) {
const result: any = await http.post(url.lanjuwms.raw.ReceiveSRM.PurchaseOrderdeliPdaConfirm, data);
const result: any = await http.post(url.lanjuwms.raw.ReceiveSRM.addOrderCard, data);
const submitcode = result.code;
const submitmsg = result.msg;
return {
submitcode,
submitmsg,
};
}
Arrivalcode: any = '';
@ -125,6 +142,16 @@ export class receiveSRM extends VuexModule {
const singobj = result.data;
return { singcode, singobj };
}
///扫描标志卡
getidcardcode: any = '';
byidcardobj: any = {};
@MutationAction
async getByidcard(data: any) {
const result: any = await http.post(url.lanjuwms.raw.ReceiveSRM.selectOrderCard, data);
const getidcardcode = result.code;
const byidcardobj = result.data;
return { getidcardcode, byidcardobj };
}
}
export default getModule(receiveSRM);

@ -131,6 +131,9 @@ export const url = {
selectArrivalRegistration: qianzhuione + '/wms/WmsToWCSmission/selectArrivalRegistration',
getDeliveryNoteDetail: qianzhuione + '/wms/WmsToWCSmission/getDeliveryNoteDetail',
WarehouseList: qianzhuione + '/wms/WmsToWCSmission/listTableDataInfo',
listTableCK: qianzhuione + '/wms/WmsToWCSmission/listTableCK',
selectOrderCard: qianzhuione + '/wms/WmsToWCSmission/selectOrderCard',
addOrderCard: qianzhuione + '/wms/WmsToWCSmission/addOrderCard',
},
PurchaseWHPO: {
// 手持 --包材采购单采购收货查询
@ -301,6 +304,9 @@ export const url = {
getClassInfoList: qianzhuione + '/quality/defectClass/getClassInfoList',
getCheckTaskDetailListCg: qianzhuione + '/quality/handCheck/getCheckTaskDetailListCg',
getSJLLdefect: qianzhuione + '/quality/defectClass/getClassInfoListByCheckType',
getOAInfoListMobile: qianzhuione + '/quality/unqualified/getOAInfoListMobile',
togetherTask: qianzhuione + '/quality/qcIncome/togetherTask',
getUnqualifiedListMobile: qianzhuione + '/quality/unqualified/getUnqualifiedListMobile',
},
// 历史记录
Records: {

Loading…
Cancel
Save