Browse Source

检验合格入库

master
han\hanst 3 months ago
parent
commit
b5bc25d635
  1. 10
      src/views/modules/automatedWarehouse/palletAssembly.vue
  2. 11
      src/views/modules/other-transaction/index.vue
  3. 14
      src/views/modules/other-transaction/inventory-move.vue
  4. 30
      src/views/modules/other-transaction/other-inbound.vue
  5. 58
      src/views/modules/other-transaction/other-outbound.vue
  6. 16
      src/views/modules/recv/inspectionResults.vue
  7. 22
      src/views/modules/recv/qualifiedStorage.vue
  8. 45
      src/views/modules/recv/recv.vue
  9. 14
      src/views/modules/recv/unqualifiedProcess.vue

10
src/views/modules/automatedWarehouse/palletAssembly.vue

@ -24,7 +24,10 @@
style="flex: 0.75;"
clearable
@keyup.enter.native="handlePalletScan"
@focus.native="$event.target.setAttribute('inputmode', 'none')"
inputmode="none"
autocomplete="off"
autocorrect="off"
spellcheck="false"
ref="palletInput"
/>
<button
@ -264,7 +267,10 @@
clearable
:disabled="operationType === 'in' && !currentSelectedPosition"
@keyup.enter.native="handleLabelScan"
@focus.native="$event.target.setAttribute('inputmode', 'none')"
inputmode="none"
autocomplete="off"
autocorrect="off"
spellcheck="false"
ref="scanInput"
/>
</div>

11
src/views/modules/other-transaction/index.vue

@ -59,13 +59,6 @@ export default {
to: "receiveFromTransit",
disabled: false,
},
{
icon: "exchange",
label: "移库",
iconClass: "inventory-move",
to: "inventory-move",
disabled: false,
},
/* {
icon: "records",
label: "单独CALL料",
@ -210,10 +203,6 @@ export default {
box-shadow: 0 4px 8px rgba(245, 34, 45, 0.3);
}
.menu-icon.inventory-move {
background: linear-gradient(135deg, #722ed1 0%, #9254de 100%);
box-shadow: 0 4px 8px rgba(114, 46, 209, 0.3);
}
.menu-text {
font-size: 10px;

14
src/views/modules/other-transaction/inventory-move.vue

@ -15,6 +15,10 @@
prefix-icon="el-icon-search"
@keyup.enter.native="handleScan"
ref="scanInput"
inputmode="none"
autocomplete="off"
autocorrect="off"
spellcheck="false"
/>
<div class="mode-switch">
<el-switch
@ -556,7 +560,7 @@ export default {
/* 物料信息卡片 */
.material-info-card {
background: white;
margin: 4px 16px;
margin: 4px 4px;
padding: 6px 20px;
border-radius: 8px;
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
@ -627,7 +631,7 @@ export default {
justify-content: space-between;
padding: 6px 8px;
background: white;
margin: 0 16px;
margin: 0 4px;
margin-top: 4px;
border-radius: 8px 8px 0 0;
border-bottom: 2px solid #17B3A3;
@ -653,7 +657,7 @@ export default {
/* 标签列表 */
.label-list {
background: white;
margin: 0 16px 12px;
margin: 0 4px 4px;
border-radius: 0 0 8px 8px;
overflow: hidden;
}
@ -685,7 +689,7 @@ export default {
text-align: center;
color: #999;
background: white;
margin: 0 16px;
margin: 0 4px;
border-radius: 8px;
}
@ -761,7 +765,7 @@ export default {
}
.material-info-card {
margin: 4px 12px;
margin: 4px 4px;
padding: 6px 16px;
}

30
src/views/modules/other-transaction/other-inbound.vue

@ -15,6 +15,10 @@
prefix-icon="el-icon-search"
@keyup.enter.native="handleScan"
ref="scanInput"
inputmode="none"
autocomplete="off"
autocorrect="off"
spellcheck="false"
/>
<div class="mode-switch">
<el-switch
@ -71,7 +75,7 @@
:key="label.id"
:class="index < scannedItems.length - 1 ? 'bottom-line-row' : ''"
style="border: 1px solid #e0e0e0; border-radius: 4px; margin-bottom: 8px; padding: 8px;">
<el-col :span="12">
<el-col :span="16">
<el-form-item label="HandlingUnit">
<span>{{ label.unitId }}</span>
</el-form-item>
@ -81,26 +85,26 @@
<span>{{ label.partNo }}</span>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="数量">
<span>{{ label.qty }} {{ label.unit || '个' }}</span>
</el-form-item>
</el-col>
<el-col :span="24" v-if="label.partDesc">
<el-form-item label="物料描述">
<span>{{ label.partDesc }}</span>
</el-form-item>
</el-col>
<el-col :span="12" v-if="label.batchNo">
<el-col :span="10" v-if="label.batchNo">
<el-form-item label="批次号">
<span>{{ label.batchNo }}</span>
</el-form-item>
</el-col>
<el-col :span="12" v-if="label.locationId">
<el-col :span="10" v-if="label.locationId">
<el-form-item label="库位">
<span>{{ label.locationId }}</span>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="数量">
<span>{{ label.qty }} {{ label.unit}}</span>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
@ -493,7 +497,7 @@ export default {
/* 物料信息卡片 */
.material-info-card {
background: white;
margin: 4px 16px;
margin: 4px 4px;
padding: 6px 20px;
border-radius: 8px;
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
@ -564,7 +568,7 @@ export default {
justify-content: space-between;
padding: 6px 8px;
background: white;
margin: 0 16px;
margin: 0 4px;
margin-top: 4px;
border-radius: 8px 8px 0 0;
border-bottom: 2px solid #17B3A3;
@ -590,7 +594,7 @@ export default {
/* 标签列表 */
.label-list {
background: white;
margin: 0 16px 12px;
margin: 0 4px 4px;
border-radius: 0 0 8px 8px;
overflow: hidden;
}
@ -622,7 +626,7 @@ export default {
text-align: center;
color: #999;
background: white;
margin: 0 16px;
margin: 0 4px;
border-radius: 8px;
}
@ -677,7 +681,7 @@ export default {
}
.material-info-card {
margin: 4px 12px;
margin: 4px 4px;
padding: 6px 16px;
}

58
src/views/modules/other-transaction/other-outbound.vue

@ -15,6 +15,10 @@
prefix-icon="el-icon-search"
@keyup.enter.native="handleScan"
ref="scanInput"
inputmode="none"
autocomplete="off"
autocorrect="off"
spellcheck="false"
/>
<div class="mode-switch">
<el-switch
@ -61,7 +65,7 @@
:key="label.id"
:class="index < scannedItems.length - 1 ? 'bottom-line-row' : ''"
style="border: 1px solid #e0e0e0; border-radius: 4px; margin-bottom: 8px; padding: 8px;">
<el-col :span="12">
<el-col :span="16">
<el-form-item label="HandlingUnit">
<span>{{ label.unitId }}</span>
</el-form-item>
@ -71,26 +75,26 @@
<span>{{ label.partNo }}</span>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="数量">
<span>{{ label.qty }} {{ label.unit || '个' }}</span>
</el-form-item>
</el-col>
<el-col :span="24" v-if="label.partDesc">
<el-form-item label="物料描述">
<span>{{ label.partDesc }}</span>
</el-form-item>
</el-col>
<el-col :span="12" v-if="label.batchNo">
<el-col :span="10" v-if="label.batchNo">
<el-form-item label="批次号">
<span>{{ label.batchNo }}</span>
</el-form-item>
</el-col>
<el-col :span="12" v-if="label.locationId">
<el-col :span="10" v-if="label.locationId">
<el-form-item label="库位">
<span>{{ label.locationId }}</span>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="数量">
<span>{{ label.qty }} {{ label.unit}}</span>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
@ -297,7 +301,7 @@ export default {
</script>
<style scoped>
/* 复用其它入库的样式 */
/* 复用unqualifiedProcess.vue的样式 */
.pda-container {
width: 100%;
height: 100vh;
@ -323,7 +327,7 @@ export default {
font-weight: 500;
}
/* 搜索容器样式 */
/* 搜索容器 */
.search-container {
padding: 12px 16px;
background: white;
@ -361,11 +365,19 @@ export default {
.custom-switch {
transform: scale(1.3);
}
/* 中间文字 */
.switch-text {
position: absolute;
left: 25%;
transform: translateX(-50%);
top: 50%;
transform: translateY(-50%) translateX(-50%);
font-size: 12px;
font-weight: 500;
color: #606266;
white-space: nowrap;
pointer-events: none;
z-index: 1;
top: 53%;
transform: translate(-50%, -50%);
font-size: 12px;
@ -378,6 +390,15 @@ export default {
.switch-text2 {
position: absolute;
left: 75%;
transform: translateX(-50%);
top: 50%;
transform: translateY(-50%) translateX(-50%);
font-size: 12px;
font-weight: 500;
color: #606266;
white-space: nowrap;
pointer-events: none;
z-index: 1;
top: 53%;
transform: translate(-50%, -50%);
font-size: 12px;
@ -396,7 +417,7 @@ export default {
/* 物料信息卡片 */
.material-info-card {
background: white;
margin: 4px 16px;
margin: 4px 4px;
padding: 6px 20px;
border-radius: 8px;
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
@ -444,11 +465,6 @@ export default {
flex-direction: column;
}
.form-item.full-width {
flex: none;
width: 100%;
}
.form-label {
font-size: 11px;
color: #666;
@ -472,7 +488,7 @@ export default {
justify-content: space-between;
padding: 6px 8px;
background: white;
margin: 0 16px;
margin: 0 4px;
margin-top: 4px;
border-radius: 8px 8px 0 0;
border-bottom: 2px solid #17B3A3;
@ -498,7 +514,7 @@ export default {
/* 标签列表 */
.label-list {
background: white;
margin: 0 16px 12px;
margin: 0 4px 4px;
border-radius: 0 0 8px 8px;
overflow: hidden;
}
@ -530,7 +546,7 @@ export default {
text-align: center;
color: #999;
background: white;
margin: 0 16px;
margin: 0 4px;
border-radius: 8px;
}
@ -585,7 +601,7 @@ export default {
}
.material-info-card {
margin: 4px 12px;
margin: 4px 4px;
padding: 6px 16px;
}

16
src/views/modules/recv/inspectionResults.vue

@ -1,6 +1,7 @@
<template>
<div>
<div class="pda-container">
<div class="pda-container" v-loading="loading" element-loading-text="查询中..."
element-loading-spinner="el-icon-loading" element-loading-background="rgba(255, 255, 255, 0.5)">
<div class="status-bar">
<div class="goBack" @click="handleBack"><i class="el-icon-arrow-left"></i>上一页</div>
<div class="goBack">检验不合格处理</div>
@ -107,7 +108,8 @@ export default {
unqualifiedList: [],
scannedItems: [],
selectedItem: {},
site: localStorage.getItem('site')
site: localStorage.getItem('site'),
loading: false // loading
};
},
methods: {
@ -132,10 +134,12 @@ export default {
//
searchUnqualifiedList() {
this.loading = true; // loading
const params = {
site: this.site
};
if (this.scanCode && (this.scanCode.startsWith('PO') || this.scanCode.startsWith('REC'))) {
if (this.scanCode) {
params.transNo = this.scanCode;
}
@ -163,6 +167,8 @@ export default {
this.$refs.scanCodeRef.blur();
}
});
}).finally(() => {
this.loading = false; // loading
});
this.scanCode = '';
@ -170,6 +176,8 @@ export default {
// HandlingUnit
scanHandlingUnit() {
this.loading = true; // loading
const params = {
site: this.site,
unitId: this.scanCode.trim()
@ -222,6 +230,8 @@ export default {
this.$refs.scanCodeRef.blur();
}
});
}).finally(() => {
this.loading = false; // loading
});
this.scanCode = '';

22
src/views/modules/recv/qualifiedStorage.vue

@ -22,6 +22,7 @@
<div v-if="processFlag === 1">
<div class="scan-box" style="margin: 2px;">
<el-input clearable v-model="scanCode" placeholder="扫描或输入采购单号"
:editable="false"
@keyup.enter.native="searchReceiptList" ref="scanCodeRef" />
</div>
<div class="item-list" v-if="receiptList.length > 0" style="margin: 2px;">
@ -69,17 +70,23 @@
<div class="form-row">
<div class="form-item">
<label class="form-label">物料编码</label>
<el-input v-model="selectedReceipt.sourcePartNo" disabled size="small" />
<span >
{{ selectedReceipt.sourcePartNo }}
</span>
</div>
<div class="form-item">
<label class="form-label">到货数量</label>
<el-input v-model="selectedReceipt.qtyArrived" disabled size="small" />
<span v-model="selectedReceipt.qtyArrived">
{{selectedReceipt.qtyArrived}}
</span>
</div>
</div>
<div class="form-row">
<div class="form-item">
<label class="form-label">物料描述</label>
<el-input v-model="selectedReceipt.description" disabled size="small" />
<span v-model="selectedReceipt.description" >
{{selectedReceipt.description}}
</span>
</div>
</div>
</div>
@ -111,7 +118,6 @@
<div class="input-form">
<div class="form-row">
<div class="form-item">
<label class="form-label">目标库位</label>
<el-input
v-model="targetLocationId"
placeholder="请扫描或输入目标库位"
@ -295,10 +301,10 @@ export default {
if (data.code === 0) {
this.receiptList = data.rows || [];
if (this.receiptList.length === 0) {
this.$message.success("暂无ARRIVED状态的接收记录");
this.$message.success("暂无To be Received状态的接收记录");
}
} else {
this.$message.error(data.msg || "查询失败");
this.$message.error("查询失败");
}
//
this.$nextTick(() => {
@ -739,10 +745,6 @@ export default {
}
/* 表单样式 */
.input-form {
margin-top: 8px;
}
.form-row {
display: flex;
gap: 12px;

45
src/views/modules/recv/recv.vue

@ -11,6 +11,10 @@
<div v-if="processFlag === 1">
<div class="scan-box" style="margin: 2px;">
<el-input clearable v-model="scanCode" placeholder="扫描PO条码或输入PO号"
inputmode="none"
autocomplete="off"
autocorrect="off"
spellcheck="false"
@keyup.enter.native="searchPoList" ref="scanCodeRef" />
</div>
<div class="item-list" v-if="poList.length > 0" style="margin: 2px;">
@ -78,7 +82,10 @@
<el-date-picker v-model="recvItem.manufactureDate"
type="date" format="yyyy-MM-dd" value-format="yyyy-MM-dd"
placeholder="选择制造日期" style="width: 100%"
:editable="false" />
inputmode="none"
autocomplete="off"
autocorrect="off"
spellcheck="false" />
</el-form-item></el-col>
<el-col :span="12"><el-form-item label="供应商批次">
<el-input v-model="recvItem.supplierBatchNo" placeholder="请输入供应商批次" />
@ -89,7 +96,10 @@
<el-col :span="12"><el-form-item label="到达日期">
<el-date-picker v-model="recvItem.arrivalDate" type="date" format="yyyy-MM-dd HH:mm:ss"
value-format="yyyy-MM-dd HH:mm:ss" placeholder="选择到达日期" style="width: 100%"
:editable="false" />
inputmode="none"
autocomplete="off"
autocorrect="off"
spellcheck="false" />
</el-form-item></el-col>
<el-col :span="12"><el-form-item label="库位"><el-input v-model="recvItem.locationNo" placeholder="请输入库位" /></el-form-item></el-col>
<el-col :span="12"><el-form-item label="批号"><el-input v-model="recvItem.batchNo" placeholder="请输入批号" /></el-form-item></el-col>
@ -199,7 +209,7 @@ export default {
});
},
async recvLine(row) {
if (row.receiveCaseDB!='INVDIR' && row.receiveCaseDB!='QAINV') {
if (row.receiveCaseDB!='INVDIR' && row.receiveCaseDB!='QAINV' && row.receiveCaseDB!='ARRINV') {
return this.$message.warning("该采购订单行的收货方式为"+row.receiveCase+",无法接收");
}
if (row.poStatus === 'Stopped' || row.poStatus === 'Closed' || row.poStatus === 'Cancelled' || row.poStatus === 'Planned') {
@ -382,38 +392,11 @@ export default {
this.$message.error(`打印失败: ${error.message || error}`)
}
},
//
blurAllInputs() {
//
const inputs = document.querySelectorAll('input, textarea, select, [contenteditable="true"]');
inputs.forEach(input => {
if (input === document.activeElement) {
input.blur();
}
});
}
},
mounted() {
this.$nextTick(() => this.$refs.scanCodeRef.focus());
//
this.handleTouchMove = () => {
this.blurAllInputs();
};
//
document.addEventListener('touchmove', this.handleTouchMove, { passive: true });
//
document.addEventListener('scroll', this.handleTouchMove, { passive: true });
},
beforeDestroy() {
//
if (this.handleTouchMove) {
document.removeEventListener('touchmove', this.handleTouchMove);
document.removeEventListener('scroll', this.handleTouchMove);
}
},
};
</script>

14
src/views/modules/recv/unqualifiedProcess.vue

@ -19,6 +19,10 @@
prefix-icon="el-icon-search"
@keyup.enter.native="handleScan"
ref="scanInput"
inputmode="none"
autocomplete="off"
autocorrect="off"
spellcheck="false"
/>
<div class="mode-switch">
<el-switch
@ -505,7 +509,7 @@ export default {
/* 物料信息卡片 */
.material-info-card {
background: white;
margin: 4px 16px;
margin: 4px 4px;
padding: 6px 20px;
border-radius: 8px;
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
@ -584,7 +588,7 @@ export default {
justify-content: space-between;
padding: 6px 8px;
background: white;
margin: 0 16px;
margin: 0 4px;
margin-top: 4px;
border-radius: 8px 8px 0 0;
border-bottom: 2px solid #17B3A3;
@ -628,7 +632,7 @@ export default {
/* 标签列表 */
.label-list {
background: white;
margin: 0 16px 12px;
margin: 0 4px 4px;
border-radius: 0 0 8px 8px;
overflow: hidden;
}
@ -898,12 +902,12 @@ export default {
}
.material-info-card {
margin: 4px 12px;
margin: 4px 4px;
padding: 6px 16px;
}
.section-title {
margin: 0 12px;
margin: 0 4px;
margin-top: 4px;
}

Loading…
Cancel
Save