no message

main
FOAM 2025-08-21 15:51:59 +08:00
parent 3c212d6476
commit 31e1990fc5
17 changed files with 682 additions and 115 deletions

View File

@ -83,12 +83,12 @@ export function sbPickdetail(data) {
}
//产线叫料
export function cxjl(data) {
export function zzjl(data) {
return request({
url: 'api/pickDetail/cxjl',
url: 'api/pickDetail/zzjl',
method: 'post',
data
})
}
export default { add, edit, del,allocatePickDetail,cancelAllocate,picking,pickBarBack,autoBcbl,sbPickdetail ,cxjl}
export default { add, edit, del,allocatePickDetail,cancelAllocate,picking,pickBarBack,autoBcbl,sbPickdetail ,zzjl}

View File

@ -1,4 +1,5 @@
import request from '@/utils/request'
import qs from "qs";
export function getPoints(data) {
return request({
@ -63,6 +64,20 @@ export function fullStockIn(data) {
})
}
export function queryPointPrintList(data) {
return request({
url: 'api/point/queryPointPrintList' + '?' + qs.stringify(data, { indices: false }),
method: 'get',
data
})
}
export function pointPrintBiaoQianList(type) {
return request({
url: `api/point/pointPrintBiaoQianList/${type}`,
method: 'get'
})
}
export function pointCallStock(data) {
return request({
url: 'api/appScene/pointCallStock',
@ -86,4 +101,4 @@ export function fullStockOut(data) {
})
}
export default { add, edit, del,getPoints,queryPointList ,fullStockIn,pointCallStock,fullStockOut,pointStockBack}
export default { add, edit, del,getPoints,queryPointList ,fullStockIn,pointCallStock,fullStockOut,pointStockBack,queryPointPrintList,pointPrintBiaoQianList}

View File

@ -12,7 +12,7 @@
<el-input v-model="query.name" clearable placeholder="名称" style="width: 185px;" class="filter-item"
@keyup.enter.native="crud.toQuery"
/>
<label class="el-form-item-label">接收工厂</label>
<!--<label class="el-form-item-label">接收工厂</label>
<el-select v-model="query.gcCode" clearable placeholder="请选择" style="width: 185px;" class="filter-item"
@keyup.enter.native="crud.toQuery">
<el-option
@ -21,7 +21,7 @@
:label="baseStatus.label"
:value="baseStatus.value"
/>
</el-select>
</el-select>-->
<label class="el-form-item-label">状态</label>
<el-select v-model="query.enabled" clearable placeholder="请选择" style="width: 185px;" class="filter-item"
@keyup.enter.native="crud.toQuery">
@ -106,7 +106,7 @@
{{ dict.label.station_type[scope.row.workingStation] }}
</template>
</el-table-column>
<el-table-column prop="pointCode" label="缓存库位"/>
<!-- <el-table-column prop="pointCode" label="缓存库位"/>-->
<!-- <el-table-column prop="posX" label="排序号">
</el-table-column>
<el-table-column prop="gcCode" label="接收工厂"/>

View File

@ -46,7 +46,7 @@
/>
</el-select>-->
<el-input v-model="query.zPointCode" clearable placeholder="制造库位" style="width: 185px;" class="filter-item" @keyup.enter.native="crud.toQuery" />
<el-input v-model="query.zPointCode" clearable placeholder="位" style="width: 185px;" class="filter-item" @keyup.enter.native="crud.toQuery" />
<date-range-picker v-model="query.createTime" class="date-item" style="width: 100px"/>
<rrOperation :crud="crud" />
<crudOperation :permission="permission" :tableKey="this.$options.name">
@ -74,6 +74,7 @@
:on-error="handleError"
:headers="headers"
:show-file-list="true">
<el-button size="mini" type="success" v-permission="permission.import" icon="el-icon-upload">()</el-button>
</el-upload>
<el-button
@ -183,19 +184,14 @@
<el-form-item label="A/C" prop="ac">
<el-input v-model="form.ac" style="width: 180px;" />
</el-form-item>
<el-form-item label="制造库位" prop="zPoint">
<el-input v-model="form.zPoint.code" style="width: 180px;" />
<el-form-item label="纳所" prop="ns">
<el-input v-model="form.ns" style="width: 180px;" />
</el-form-item>
<el-form-item label="指示纳所" prop="rArea" >
<el-select v-model="form.rArea" value-key="id" filterable placeholder="请选择" style="width: 180px;">
<el-option
v-for="item in rAreaList"
:key="item.id"
:label="item.name"
:value="item"
/>
</el-select>
<el-form-item label="税别" prop="bonded">
<el-input v-model="form.bonded" style="width: 180px;" />
</el-form-item>
<el-form-item label="货位" prop="zPoint">
<el-input v-model="form.zPoint.code" style="width: 180px;" />
</el-form-item>
<el-form-item label="描述" prop="description">
@ -219,12 +215,9 @@
<el-table-column prop="ns" label="纳所"/>
<el-table-column prop="item.code" label="部品品番" width="100"/>
<el-table-column prop="item.name" label="品名" width="150"/>
<el-table-column prop="bonded" label="税别"/>
<el-table-column prop="ac" label="A/C" width="50"/>
<el-table-column prop="process_content#contents" label="加工内容" width="70">
<template slot-scope="scope">
{{ dict.label.process_content[scope.row.contents] }}
</template>
</el-table-column>
<el-table-column prop="contents" label="加工内容" width="70"/>
<el-table-column prop="singles" label="单用" width="50"/>
<el-table-column prop="zcfq" label="制材分区" />
<el-table-column prop="zPoint.area.name" label="库区" />
@ -233,7 +226,7 @@
<el-table-column prop="srs" label="收容数"/>
<el-table-column prop="tckw" label="台车库位"/>
<el-table-column prop="bp_type" label="大小物"/>
<el-table-column prop="bonded" label="税别"/>
<el-table-column prop="supplier" label="供应商" width="120" :show-overflow-tooltip="true"/>
<!-- <el-table-column prop="cArea.code" label="出库库区" width="150" align="center" />
<el-table-column prop="out_type#outType" label="出库类型" width="70">
<template slot-scope="scope">
@ -256,7 +249,6 @@
{{getFormatDate(scope.row.createTime)}}
</template>
</el-table-column>
<el-table-column prop="supplier" label="供应商" width="120" :show-overflow-tooltip="true"/>
<el-table-column prop="createBy" label="创建人" />
<el-table-column prop="description" label="描述" />
<el-table-column v-if="checkPer(['admin','bomAccount:edit','bomAccount:del'])" fixed="right" label="操作" width="150px" align="center">

View File

@ -4,7 +4,6 @@
<div class="head-container">
<div v-if="crud.props.searchToggle">
<!-- 搜索 -->
<label class="el-form-item-label">操作类型</label>
<el-select v-model="query.operType" clearable placeholder="操作类型" style="width: 185px;" class="filter-item"
@keyup.enter.native="crud.toQuery" clearable>
<el-option
@ -14,28 +13,6 @@
:value="baseStatus.value"
/>
</el-select>
<label class="el-form-item-label">完成品番</label>
<el-input v-model="query.bigItemCode" clearable placeholder="完成品番" style="width: 185px;" class="filter-item" @keyup.enter.native="crud.toQuery" />
<label class="el-form-item-label">完成品名</label>
<el-input v-model="query.bigItemName" clearable placeholder="完成品名" style="width: 185px;" class="filter-item" @keyup.enter.native="crud.toQuery" />
<label class="el-form-item-label">部品品番</label>
<el-input v-model="query.itemCode" clearable placeholder="部品品番" style="width: 185px;" class="filter-item" @keyup.enter.native="crud.toQuery" />
<label class="el-form-item-label">部品品名</label>
<el-input v-model="query.itemName" clearable placeholder="部品品名" style="width: 185px;" class="filter-item" @keyup.enter.native="crud.toQuery" />
<label class="el-form-item-label">工位</label>
<el-select v-model="query.stationType" clearable placeholder="工位" filterable style="width: 185px;" class="filter-item"
@keyup.enter.native="crud.toQuery" clearable>
<el-option
v-for="baseStatus in dict.station_type"
:key="baseStatus.id"
:label="baseStatus.value"
:value="baseStatus.value">
<span style="float: left;width: 60px" >{{ baseStatus.value }}</span>
<span style="width: 200px; color: #8492a6; font-size: 13px">{{ baseStatus.label }}</span>
</el-option>
</el-select>
<label class="el-form-item-label">制造库位</label>
<el-input v-model="query.zPointCode" clearable placeholder="制造库位" style="width: 185px;" class="filter-item" @keyup.enter.native="crud.toQuery" />
<date-range-picker v-model="query.createTime" class="date-item" style="width: 100px"/>
<rrOperation :crud="crud" />
</div>

View File

@ -44,6 +44,17 @@
:show-file-list="true">
<el-button size="mini" type="success" v-permission="permission.import" icon="el-icon-upload"></el-button>
</el-upload>
<el-button
slot="right"
class="filter-item"
type="primary"
size="mini"
@click="savePointPrintList()"
v-permission="permission.showReport"
icon="el-icon-document-add"
>
自由标签
</el-button>
</crudOperation>
<!-- 呼叫空车 -->
<el-dialog title="地标点绑定" :visible.sync="callEmptyCarStatus" width="400px">
@ -86,9 +97,9 @@
<el-form-item label="品番">
<el-input v-model="form.itemCode" style="width: 370px;"/>
</el-form-item>
<el-form-item label="纳所">
<!--<el-form-item label="纳所">
<el-input v-model="form.beatCode" style="width: 370px;"/>
</el-form-item>
</el-form-item>-->
<el-form-item label="类型" prop="type">
<el-select v-model="form.type" filterable placeholder="请选择" style="width: 370px;"
:default-first-option="true"
@ -137,7 +148,7 @@
<el-table-column prop="code" label="代码"/>
<el-table-column prop="name" label="名称"/>
<el-table-column prop="itemCode" label="品番"/>
<el-table-column prop="beatCode" label="纳所"/>
<!-- <el-table-column prop="beatCode" label="纳所"/>-->
<el-table-column prop="point_type#type" label="类型">
<template slot-scope="scope">
{{ dict.label.point_type[scope.row.type] }}
@ -176,7 +187,7 @@
</template>
<script>
import crudPoint, { pointCallStock } from '@/api/point'
import crudPoint, { pointCallStock,queryPointPrintList,pointPrintBiaoQianList } from '@/api/point'
import CRUD, { presenter, header, form, crud } from '@crud/crud'
import crudOperation from '@crud/CRUD.operation'
import udOperation from '@crud/UD.operation'
@ -192,6 +203,7 @@ import viewFullStockOut from '@/views/base-data/point/fullStockOut.vue'
import crudStock from '@/api/stock'
import pointUrl from '@/api/point'
import {mapGetters} from "vuex";
import {queryBomPrintListX} from "@/api/bomAccount";
const defaultForm = {
id: null,
@ -237,6 +249,7 @@ export default {
pointList: [],
from1: [],
fromBack: [],
fileList:[],
pointListData: [],
headers: { 'Authorization': getToken() },
queryTypeOptions: [
@ -259,7 +272,7 @@ export default {
add: ['admin', 'point:add'],
edit: ['admin', 'point:edit'],
del: ['admin', 'point:del'],
import: ['admin', 'point:import']
import:['admin', 'point:import']
},
tableKey: 'api/point',
rules: {
@ -332,6 +345,16 @@ export default {
// })
})
},
savePointPrintList() {
console.log("打印自由货位标签")
queryPointPrintList(this.crud.getQueryParams2()).then(res => {
this.showEwmReportZy();
})
},
showEwmReportZy(){
this.$router.push({path:'/base-data/base-ware/point_print_zy',query:{tableID: '打印自由库位标签'}})
},
//
callEmpty() {
this.callStock.pointCode = this.from1.pointCode

View File

@ -1,7 +1,7 @@
<template>
<div style="background: #ffffff">
<div class="button-container">
<el-button @click="yulandayin" type="primary">打印中大物标签预览</el-button>
<el-button @click="yulandayin" style="width: 200px;height: 50px" type="primary">打印中大物标签预览</el-button>
</div>
<div id="printMe" v-for="(kw3,groupIndex) in kwfenzu" :key="groupIndex" class="group-container">
<div
@ -139,7 +139,7 @@ export default {
</script>
<style>
<style lang="scss" scoped>
* {
margin: 0;
padding: 0;

View File

@ -1,7 +1,7 @@
<template>
<div style="background: #ffffff">
<div class="button-container">
<el-button @click="yulandayin" type="primary">打印小物标签预览</el-button>
<el-button @click="yulandayin" style="width: 200px;height: 50px" type="primary">打印小物标签预览</el-button>
</div>
<div id="printMe" v-for="(kw3,groupIndex) in kwfenzu" :key="groupIndex" class="group-container">
<div class="grid-container">
@ -9,8 +9,8 @@
v-for="k2 in kw3"
class="label-item" >
<table class="label-table">
<tr style="height: 8mm">
<td class="td-item-value2" colspan="2" style="width: 46mm">{{ k2.hw }}</td>
<tr style="height: 6mm">
<td class="td-item-value" colspan="2" style="width: 46mm">{{ k2.hw }}</td>
<td class="td-item" rowspan="5" style="width: 23mm;height: 20mm;">
<vue-qrcode
:value="getQrContent(k2)"
@ -26,20 +26,20 @@
<tr style="height: 6mm">
<td class="td-item-value" colspan="2">{{ k2.pm }}</td>
</tr>
<tr style="height: 4mm">
<td class="td-item" >{{ k2.jxs[0] }}</td>
<td class="td-item" >{{ k2.jxs[1] }}</td>
<tr style="height: 4.5mm">
<td class="td-item-value3" >{{ k2.jxs[0] }}</td>
<td class="td-item-value3" >{{ k2.jxs[1] }}</td>
</tr>
<tr style="height: 4mm">
<tr style="height: 4.5mm">
<td class="td-item-value3" >{{ k2.tyls[0] }}</td>
<td class="td-item-value3" >{{ k2.tyls[1] }}</td>
</tr>
<tr style="height: 4mm">
<td class="td-item" >{{ k2.jxs[2] }}</td>
<td class="td-item" >{{ k2.jxs[3] }}</td>
<td class="td-item" >{{ k2.jxs[4] }}</td>
<tr style="height: 4.5mm">
<td class="td-item-value3" >{{ k2.jxs[2] }}</td>
<td class="td-item-value3" >{{ k2.jxs[3] }}</td>
<td class="td-item-value3" >{{ k2.jxs[4] }}</td>
</tr>
<tr style="height: 4mm">
<tr style="height: 4.5mm">
<td class="td-item-value3" >{{ k2.tyls[2] }}</td>
<td class="td-item-value3" >{{ k2.tyls[3] }}</td>
<td class="td-item-value3" >{{ k2.tyls[4] }}</td>
@ -127,7 +127,7 @@ export default {
</script>
<style>
<style lang="scss" scoped>
* {
margin: 0;
padding: 0;

View File

@ -0,0 +1,200 @@
<template>
<div style="background: #ffffff">
<div class="button-container">
<el-button @click="yulandayin" style="width: 200px;height: 50px" type="primary">自由货位标签预览</el-button>
</div>
<div id="printMe" v-for="(kw3,groupIndex) in kwfenzu" :key="groupIndex" class="group-container">
<div class="grid-container">
<div
v-for="k2 in kw3"
class="label-item" >
<table class="label-table">
<tr style="height: 6mm">
<td class="td-item-value2" colspan="1" style="width: 46mm">{{ k2.areaName }}</td>
<td class="td-item" rowspan="2" style="width: 23mm;height: 20mm;">
<vue-qrcode
:value="getQrContent(k2)"
:options="qrOptions"
tag="img"
class="qr-code"
/>
</td>
</tr>
<tr style="height: 6mm">
<td class="td-item-value" colspan="1">{{ k2.code }}</td>
</tr>
</table>
</div>
</div>
</div>
</div>
</template>
<script>
import { vPrint } from 'vue-print-next';
import { VuePrintNext } from 'vue-print-next';
import {pointPrintBiaoQianList} from "@/api/point";
import VueQrcode from '@chenfengyuan/vue-qrcode';
export default {
name: 'PointPrint',
components: {
VueQrcode
},
directives: {
print: vPrint
},
computed: {
},
data() {
return {
kkkk2: [],
kwfenzuAll: [],
kwfenzu: [],
qrOptions: {
width: 60, //
margin: 0, //
errorCorrectionLevel: 'H' //
},
qrSize: 120, //
// - API
}
},
mounted() {
this.getPrintList();
},
methods: {
getQrContent(location) {
//
return `${location.ewm}`;
//
// return location.boxType;
},
//
yulandayin(){
new VuePrintNext({
el: '#printMe', /* 其他参数 */
popTitle: '打印小物标签',
preview: false,//
paperSize: 'A4',
orientation: 'landscape'
});
},
getPrintList(){
console.log('打印自由库位标签_BiaoQian_ZY')
pointPrintBiaoQianList('_BiaoQian_ZY').then(res => {
console.log(res)
this.kkkk2=res;
this.kwfenzu=[]
for (let i = 0; i < this.kkkk2.length; i += 28) {
this.kwfenzu.push(this.kkkk2.slice(i, i + 28));
}
console.log(kwfenzu)
});
}
}
}
</script>
<style lang="scss" scoped>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: 'Microsoft YaHei', sans-serif;
}
body {
background: linear-gradient(35deg, #f5f7fa 0%, #e4edf5 100%);
padding: 20px;
min-height: 100vh;
}
.button-container {
padding-top: 20px;
display: flex;
justify-content: center; /* 水平居中 */
}
.group-container{
padding-top: 1mm;
box-shadow: none;margin-bottom:0;padding: 0;border-radius: 0;
page-break-after: always;
break-after: page;
}
.label-item {
display: flex;
flex-wrap: wrap;
background: #ffffff;
justify-content: center;
}
.td-item{
text-align: center;
border: #000000 2px solid;
font-size: 6pt;
font-weight: bold;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
}
.td-item-value{
font-size: 22pt;
font-weight: bold;
text-align: center;
border: #000000 2px solid;
}
.td-item-value2{
font-size: 13pt;
font-weight: bold;
text-align: center;
border: #000000 2px solid;
}
.td-item-value3{
font-size: 9pt;
font-weight: bold;
text-align: center;
border: #000000 2px solid;
}
.qr-code {
padding: 1mm;
width: 22mm; /* 控制显示大小 */
height: 22mm;
image-rendering: crisp-edges; /* 保持清晰度 */
display: block;
margin: 0 auto;
}
.label-table {
background: #00a0e9;
width: 69mm;
height: 25mm;
background: #ffffff;
border-collapse: collapse;
font-size: 13px;
table-layout: fixed;
}
.grid-container {
display: grid;
grid-template-columns: repeat(4, 1fr); /* 4列 */
grid-template-rows: repeat(5, 1fr); /* 7行 */
width: 100%;
height: 100%;
background: #ffffff;
gap: 1mm 1mm; /* 标签之间的间隙 */
}
</style>

View File

@ -64,7 +64,7 @@
type="primary"
size="mini"
:disabled="mutilPutawayVisible"
v-permission="permission.mutilPutaway"
v-permission="permission.inserAsn"
@click="showMutilPutawayBtn(crud.selections)">
批量上架
</el-button>
@ -75,7 +75,7 @@
type="success"
icon="el-icon-upload2"
size="mini"
v-permission="permission.import"
v-permission="permission.inserAsn"
@click="showImportDialog">
导入
</el-button>

View File

@ -44,9 +44,9 @@
<el-input v-model="query.ddbh" clearable placeholder="订单编号" style="width: 185px;" class="filter-item"
@keyup.enter.native="crud.toQuery"
/>
<el-input v-model="query.receiptCode" clearable placeholder="收货清单号" style="width: 185px;" class="filter-item"
<!-- <el-input v-model="query.receiptCode" clearable placeholder="收货清单号" style="width: 185px;" class="filter-item"
@keyup.enter.native="crud.toQuery"
/>
/>-->
<el-input v-model="query.prop_c1" clearable placeholder="批次号" style="width: 185px;" class="filter-item"
@keyup.enter.native="crud.toQuery"
/>
@ -56,7 +56,7 @@
<el-input v-model="query.ewm" clearable placeholder="现品票" style="width: 185px;" class="filter-item"
@keyup.enter.native="crud.toQuery"
/>
<label class="el-form-item-label" >采集时间
<label class="el-form-item-label" >上架时间
<date-range-picker v-model="query.createTime" class="date-item" style="width: 200px"/>
</label>
<label class="el-form-item-label" >备货时间
@ -77,7 +77,7 @@
@click="collectFromFlag = true"
icon="el-icon-document-add"
>
二维码上架
材管现品票上架
</el-button>
<!-- <el-button
slot="right"
@ -224,7 +224,7 @@
</span>
</el-dialog>
<!-- 二维码采集上架-->
<el-dialog title="现品票采集上架" :visible.sync="collectFromFlag" width="400px">
<el-dialog title="材管现品票上架" :visible.sync="collectFromFlag" width="400px">
<el-form ref="collectFrom" :model="collectFrom" :rules="rules" size="small" label-width="80px">
<el-form-item label="现品票" prop="ewm">
<el-input v-model="collectFrom.ewm" :rows="3" type="textarea" style="width: 270px;"/>
@ -282,7 +282,7 @@
>
<el-table-column type="selection" width="55"/>
<el-table-column prop="id" label="序号" width="100px"/>
<el-table-column prop="receipt_code" label="收货清单号" width="120px" v-if="false"/>
<!--<el-table-column prop="receipt_code" label="收货清单号" width="120px" v-if="false"/>-->
<el-table-column prop="rela_supplier" label="供应商" width="180"/>
<el-table-column prop="item_code" label="品番" width="100px">
</el-table-column>
@ -297,11 +297,11 @@
<el-table-column prop="ddbh" label="订单编号"/>
<el-table-column prop="fzh" label="分支号" width="60px"/>
<el-table-column prop="prop_c1" label="批次号" width="100px"/>
<el-table-column prop="boolean_status#be_fz" label="是否复制" v-if="false">
<!-- <el-table-column prop="boolean_status#be_fz" label="是否复制" v-if="false">
<template slot-scope="scope">
{{ dict.label.boolean_status[scope.row.be_fz] }}
</template>
</el-table-column>
</el-table-column>-->
<el-table-column prop="ac" label="A/C" width="60px"/>
<el-table-column prop="srs" label="收容数" width="80px"/>
<el-table-column prop="nr_date" label="纳入指示日" width="100px">
@ -310,24 +310,24 @@
</template>
</el-table-column>
<el-table-column prop="inv_point_code" label="库存库位" width="120px"/>
<el-table-column prop="cjr" label="采集人" width="60px"/>
<el-table-column prop="cj_date" label="采集时间" width="150"/>
<el-table-column prop="cjr" label="上架人" width="60px"/>
<el-table-column prop="cj_date" label="上架时间" width="150"/>
<el-table-column prop="bhr" label="备货人" width="60px"/>
<el-table-column prop="bh_code" label="备货单号" width="120px"/>
<el-table-column prop="fhr" label="发货人" width="60px"/>
<!--<el-table-column prop="fhr" label="发货人" width="60px"/>
<el-table-column prop="jsr" label="线边接收人" width="90px"/>
<el-table-column prop="jskw" label="接收库位" width="80" align="center"/>
<el-table-column prop="zztlr" label="制造投料人" width="90px"/>
<el-table-column prop="hctlr" label="缓存投料人" width="90px"/>
<el-table-column prop="hctlr" label="缓存投料人" width="90px"/>-->
<el-table-column prop="bh_date" label="备货时间" width="150px"/>
<el-table-column prop="fh_date" label="发货时间" width="150px"/>
<!-- <el-table-column prop="fh_date" label="发货时间" width="150px"/>
<el-table-column prop="js_date" label="接收时间" width="150px"/>
<el-table-column prop="zztl_date" label="投料时间" width="150px"/>
<el-table-column prop="zzkw" label="投料库位" width="80" align="center"/>
<el-table-column prop="zzkw" label="投料库位" width="80" align="center"/>-->
<el-table-column prop="ewm" :show-overflow-tooltip="true" label="现品票"/>
<el-table-column prop="description" label="描述"/>
<el-table-column prop="boolean_status#tf_ly" label="是否留样" v-if="false">
<!-- <el-table-column prop="boolean_status#tf_ly" label="是否留样" v-if="false">
<template slot-scope="scope">
{{ dict.label.boolean_status[scope.row.tf_ly] }}
</template>
@ -335,7 +335,7 @@
<el-table-column prop="ly_code" label="留样单号" width="120px" v-if="false"/>
<el-table-column prop="ly_data" label="留样日期" width="150px" v-if="false"/>
<el-table-column prop="count_code" label="盘点单号" width="120px" v-if="false"/>
<el-table-column prop="hy_data" label="还样日期" width="150px" v-if="false"/>
<el-table-column prop="hy_data" label="还样日期" width="150px" v-if="false"/>-->
</el-table>
</div>
<div style="float: right;">
@ -439,8 +439,8 @@ export default {
data() {
return {
collectFromFlag: false,
collectFrom: { ewm: null,point:null },
pointList: [],
collectFrom: { ewm: null,point:null,pointId:null,bomId:null },
pointList: [],
permission: {
add: ['admin', 'xppRecord:add'],
edit: ['admin', 'xppRecord:edit'],
@ -501,9 +501,11 @@ export default {
},
collectPutAway() {
console.log(this.collectFrom)
let date_ = {ewm: null, pointId: null};
let date_ = {ewm: null, pointId: null,bomId:null};
date_.ewm = this.collectFrom.ewm;
date_.pointId = this.collectFrom.point.id;
date_.bomId=this.collectFrom.bomId;
date_.type="1001";
console.log(date_)
crudAsnDetail.collectPutAway(date_).then(res => {
if (res.status == 200) {
@ -651,6 +653,8 @@ export default {
this.xppBdForm.xppRecord=data;
this.xppBdOnOff=true;
},
}
}
</script>

View File

@ -0,0 +1,352 @@
<template>
<div class="app-container">
<div v-if="crud.props.searchToggle">
<!-- 搜索 -->
<el-input v-model="query.itemCode" clearable placeholder="品番" style="width: 185px;" class="filter-item"
@keyup.enter.native="crud.toQuery"
/>
<el-input v-model="query.itemName" clearable placeholder="品名" style="width: 185px;" class="filter-item"
@keyup.enter.native="crud.toQuery"
/>
<el-select
v-model="query.relaSupplier"
clearable filterable
size="small"
placeholder="供应商"
class="filter-item"
style="width: 150px"
@change="crud.toQuery"
>
<el-option
v-for="item in dict.supplier_compare"
:key="item.id"
:label="item.label"
:value="item.label"
/>
</el-select>
<el-select
v-model="query.status"
clearable
size="small"
placeholder="状态"
class="filter-item"
style="width: 150px"
@change="crud.toQuery"
>
<el-option
v-for="item in dict.xxp_status"
:key="item.id"
:label="item.label"
:value="item.value"
/>
</el-select>
<el-input v-model="query.ddbh" clearable placeholder="订单编号" style="width: 185px;" class="filter-item"
@keyup.enter.native="crud.toQuery"
/>
<el-input v-model="query.inv_point_code" clearable placeholder="制造库位" style="width: 185px;" class="filter-item"
@keyup.enter.native="crud.toQuery"
/>
<el-input v-model="query.ewm" clearable placeholder="现品票" style="width: 185px;" class="filter-item"
@keyup.enter.native="crud.toQuery"
/>
<label class="el-form-item-label" >上架时间
<date-range-picker v-model="query.createTime" class="date-item" style="width: 200px"/>
</label>
<rrOperation :crud="crud"/>
</div>
<!--工具栏-->
<div class="head-container">
<!--如果想在工具栏加入更多按钮可以使用插槽方式 slot = 'left' or 'right'-->
<crudOperation :permission="permission" :tableKey="this.$options.name">
<el-button
slot="right"
v-permission="permission.collectEwm"
class="filter-item"
type="primary"
size="mini"
@click="collectFromFlag = true"
icon="el-icon-document-add"
>
制造现品票上架
</el-button>
<el-button
slot="right"
v-permission="permission.cancelPut"
class="filter-item"
type="primary"
size="mini"
:disabled="crud.selections.length <= 0"
@click="cancelPutM(crud.selections)"
>
现品票取消上架
</el-button>
</crudOperation>
<!--表单组件-->
<!-- 二维码采集上架-->
<el-dialog title="制造现品票上架" :visible.sync="collectFromFlag" width="400px">
<el-form ref="collectFrom" :model="collectFrom" :rules="rules" size="small" label-width="80px">
<el-form-item label="现品票" prop="ewm">
<el-input v-model="collectFrom.ewm" :rows="3" type="textarea" style="width: 270px;"/>
</el-form-item>
<el-form-item label="制造库位" prop="point" :rules=" { required: true, message: '制造库位不能为空', trigger: 'blur' }">
<BomAccountPointSelect v-model="collectFrom.point" :value-key="'bom_account_id'" @change="getChangeVule"/>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="collectFromFlag= false"> </el-button>
<el-button type="primary" @click="collectPutAway"> </el-button>
</div>
</el-dialog>
<!--表格渲染-->
<el-table ref="table" :height="crud.tableHeight" v-loading="crud.loading" :data="crud.data" size="small"
style="width: 100%;" @selection-change="crud.selectionChangeHandler" border
>
<el-table-column type="selection" width="55"/>
<el-table-column prop="id" label="序号" width="100px"/>
<el-table-column prop="rela_supplier" label="供应商" width="180"/>
<el-table-column prop="item_code" label="品番" width="100px"/>
<el-table-column prop="item_name" label="品名" width="150px"/>
<el-table-column prop="xxp_status#status" label="状态" width="80px">
<template slot-scope="scope">
{{ dict.label.xxp_status[scope.row.status] }}
</template>
</el-table-column>
<el-table-column prop="nrs" label="纳入数" width="60px"/>
<el-table-column prop="ddbh" label="订单编号"/>
<el-table-column prop="fzh" label="分支号" width="60px"/>
<el-table-column prop="ac" label="A/C" width="60px"/>
<el-table-column prop="srs" label="收容数" width="80px"/>
<el-table-column prop="nr_date" label="纳入指示日" width="100px">
<template slot-scope="scope">
{{ formatDate1(scope.row.nr_date) }}
</template>
</el-table-column>
<el-table-column prop="inv_point_code" label="制造库位" width="120px"/>
<el-table-column prop="cjr" label="上架人" width="60px"/>
<el-table-column prop="cj_date" label="上架时间" width="150"/>
<!--<el-table-column prop="bhr" label="备货人" width="60px"/>
<el-table-column prop="bh_code" label="备货单号" width="120px"/>
<el-table-column prop="fhr" label="发货人" width="60px"/>
<el-table-column prop="jsr" label="线边接收人" width="90px"/>
<el-table-column prop="jskw" label="接收库位" width="80" align="center"/>
<el-table-column prop="zztlr" label="制造投料人" width="90px"/>
<el-table-column prop="hctlr" label="缓存投料人" width="90px"/>
<el-table-column prop="bh_date" label="备货时间" width="150px"/>-->
<!-- <el-table-column prop="fh_date" label="发货时间" width="150px"/>
<el-table-column prop="js_date" label="接收时间" width="150px"/>
<el-table-column prop="zztl_date" label="投料时间" width="150px"/>
<el-table-column prop="zzkw" label="投料库位" width="80" align="center"/>-->
<el-table-column prop="ewm" :show-overflow-tooltip="true" label="现品票"/>
<el-table-column prop="description" label="描述"/>
<!-- <el-table-column prop="boolean_status#tf_ly" label="是否留样" v-if="false">
<template slot-scope="scope">
{{ dict.label.boolean_status[scope.row.tf_ly] }}
</template>
</el-table-column>
<el-table-column prop="ly_code" label="留样单号" width="120px" v-if="false"/>
<el-table-column prop="ly_data" label="留样日期" width="150px" v-if="false"/>
<el-table-column prop="count_code" label="盘点单号" width="120px" v-if="false"/>
<el-table-column prop="hy_data" label="还样日期" width="150px" v-if="false"/>-->
</el-table>
</div>
<div style="float: right;">
<pagination/>
</div>
</div>
</template>
<script>
import crudXppRecord, {
xpphybf,
xppLyOut,
xppHyIn,
changeFz,
cancelReceiv,
xppBd,
createReceipt,
cancelReceipt, adjustOut
} from '@/api/xppRecord'
import CRUD, { presenter, header, form, crud } from '@crud/crud'
import rrOperation from '@crud/RR.operation.vue'
import crudOperation from '@crud/CRUD.operation.vue'
import udOperation from '@crud/UD.operation.vue'
import pagination from '@crud/Pagination.vue'
import crudAsnDetail,{cancelPut} from '@/api/asnDetail'
import DonMessage from '@/utils/message'
import { formatDate } from '@/utils/commonUtils'
import DateRangePicker from "@/components/DateRangePicker/index.vue";
import {mapGetters} from "vuex";
import {queryPointList} from "@/api/point";
import BomAccountPointSelect from "@/views/generic-component/BomAccountPointSelect.vue";
const defaultForm = {
status: 'OPEN',
receipt_code:null
}
export default {
name: 'XppRecordZztl',
components: {BomAccountPointSelect, DateRangePicker, pagination, crudOperation, rrOperation, udOperation },
mixins: [presenter(), header(), form(defaultForm), crud()],
cruds() {
return CRUD({
title: 'xppRecordZztl',
url: 'api/xppRecord/queryXppRecordZztl',
idField: 'id',
sort: 'id,desc',
crudMethod: { ...crudXppRecord },
optShow: {
add: false,
edit: false,
del: false,
reset: true,
download: true
}
})
},
dicts: ['xxp_status', 'supplier_compare','boolean_status','base_staus'],
data() {
return {
collectFromFlag: false,
collectFrom: { ewm: null,point:null,pointId:null,bomId:null },
pointList: [],
permission: {
add: ['admin', 'xppRecord:add'],
edit: ['admin', 'xppRecord:edit'],
del: ['admin', 'xppRecord:del'],
collectEwm: ['admin', 'xppRecord:collectEwm'],
xppLyOut: ['admin', 'xppRecord:xppLyOut'],
xppHyIn: ['admin', 'xppRecord:xppHyIn'],
xppHyInBf: ['admin', 'xppRecord:xppHyInBf'],
copyToApro: ['admin', 'xppRecord:copyToApro'],
cancelReceiv: ['admin', 'xppRecord:cancelReceiv'],
cancelPut: ['admin', 'xppRecord:cancelPut'],
showXppBd: ['admin', 'xppRecord:showXppBd'],
createReceiptBtn: ['admin', 'xppRecord:createReceiptBtn'],
cancelReceiptBtn: ['admin', 'xppRecord:cancelReceiptBtn'],
showReportShd: ['admin', 'xppRecord:showReportShd']
},
tableKey: 'api/xppRecord',
rules: {},
selectIds: {
ids: []
},
queryTypeOptions: [
{ key: 'itemCodePf', display_name: '品番代码' }
],
xppRecordButton: {
xppRecordId: null,
ewm: null
},
xppBdForm: {
xppRecord:{ddbh:null,nrs:null,ewm:null,item_code:null,item_name:null,fzh:null},
fzh:null,
nrs:null
},
xppRecordOnOff: false,
xppBdOnOff: false
}
},
computed: {
...mapGetters([
'user'
])
},
mounted() {
this.getPointList();
},
methods: {
// false
[CRUD.HOOK.beforeRefresh]() {
return true
},
formatDate1(value) {
return formatDate(value)
},
collectPutAway() {
console.log(this.collectFrom)
let date_ = {ewm: null, pointId: null,bomId:null};
date_.ewm = this.collectFrom.ewm;
date_.pointId = this.collectFrom.pointId;
date_.bomId=this.collectFrom.bomId;
date_.type="2001";
console.log(date_)
crudAsnDetail.collectPutAway(date_).then(res => {
this.collectFromFlag = false
this.crud.toQuery()
this.resetForm()
})
},
//
resetForm() {
this.$refs['collectFrom'].resetFields()
this.$data.collectFrom = JSON.parse(JSON.stringify(this.$options.data().collectFrom))
},
//
getFormatDate(data) {
return formatDate(data)
},
getPointList() {
queryPointList({"type":"ZZKW"}).then(res => {
this.pointList = res
})
},
//
xppLyOutM(data) {
let list = []
for (const datum of data) {
list.push(datum.id)
}
xppLyOut(list).then(res => {
this.crud.toQuery()
this.$message.success(res)
})
},
xpplyBFM(data) {
let data_ = this.xppRecordButton
data_.xppRecordId = data[0].id
xpphybf(data_).then(res => {
this.xppRecordButton.xppRecordId = null;
this.crud.toQuery()
this.$message.success(res)
})
},
xppBdBtn(data) {
let data_ = this.xppBdForm
data_.id = data[0].id
data_.fzh=this.xppBdForm.xppRecord.fzh;
data_.nrs=this.xppBdForm.xppRecord.nrs;
xppBd(data_).then(res=>{
this.xppBdOnOff=false;
this.$router.push({path:'/business-asn/xpp_bd_report',query:{tableID:'现品票补打',parm: "id="+data_.id}})
})
},
showReportShd(data){
this.$router.push({path:'/business-asn/xpp_shd_report',query:{tableID:'收货单打印',parm: "code="+data.receipt_code+"&username="+this.user.username}})
},
//
adjustOutBtn(data) {
let data_ = this.selectIds;
data_.ids = data.map(v => v.id);
adjustOut(data_.ids).then(res=>{
this.crud.toQuery()
this.$message.success(res)
})
},
//
showXppBd(data){
this.xppBdForm.xppRecord=data;
this.xppBdOnOff=true;
},
getChangeVule(dben) {
this.collectFrom.bomId=dben.bom_account_id
this.collectFrom.pointId=dben.zzkw_id;
},
}
}
</script>
<style scoped>
</style>

View File

@ -196,7 +196,7 @@
>
<el-table-column type="selection" width="50"/>
<el-table-column prop="id" label="序号" align="center"/>
<el-table-column prop="area.name" label=""/>
<el-table-column prop="area.name" label="区"/>
<el-table-column prop="point.code" label="库位号" align="center"/>
<el-table-column prop="itemKey.item.code" label="品番"/>
<el-table-column prop="itemKey.item.name" label="品番名称"/>
@ -204,12 +204,13 @@
<el-table-column prop="quantity" label="数量"/>
<el-table-column prop="queuedQty" label="占用数"/>
<el-table-column prop="itemKey.propC1" label="批次号"/>
<el-table-column prop="itemKey.propC2" label="税别"/>
<!-- <el-table-column prop="zzkw.code" label="制造库位" align="center"/>
<el-table-column prop="area.pointCode" label="缓存库位" align="center"/>-->
<el-table-column label="操作" width="200px" align="center" fixed="right"
>
<template slot-scope="scope">
<el-button
<!-- <el-button
class="filter-item"
type="primary"
size="mini"
@ -217,7 +218,7 @@
@click="ywFTM(scope.row)"
>
移位
</el-button>
</el-button>-->
<el-button
class="filter-item"
type="primary"

View File

@ -152,6 +152,7 @@
<el-table-column prop="itemKey.item.code" label="品番"/>
<el-table-column prop="itemKey.item.name" label="品番名称"/>
<el-table-column prop="quantity" label="数量"/>
<el-table-column prop="itemKey.propC2" label="税别"/>
<!-- <el-table-column prop="zzkw.code" label="制造库位" align="center"/>
<el-table-column prop="area.pointCode" label="缓存库位" align="center"/>
<el-table-column v-if="checkPer(['admin','fileManagement:edit','fileManagement:del'])" label="操作"

View File

@ -152,7 +152,7 @@
>
<el-table-column type="selection" width="50"/>
<el-table-column prop="id" label="序号" align="center"/>
<el-table-column prop="area.name" label=""/>
<el-table-column prop="area.name" label="区"/>
<el-table-column prop="point.code" label="库位号" align="center"/>
<el-table-column prop="itemKey.item.code" label="品番"/>
<el-table-column prop="itemKey.item.name" label="品番名称"/>
@ -160,6 +160,7 @@
<el-table-column prop="quantity" label="数量"/>
<el-table-column prop="queuedQty" label="占用数"/>
<el-table-column prop="itemKey.propC1" label="批次号"/>
<el-table-column prop="itemKey.propC2" label="税别"/>
<!-- <el-table-column v-if="checkPer(['admin','fileManagement:edit','fileManagement:del'])" label="操作"
width="150px" align="center" fixed="right"
>

View File

@ -147,14 +147,15 @@
>
<el-table-column type="selection" width="50"/>
<el-table-column prop="id" label="序号" align="center"/>
<el-table-column prop="area.code" label="工位" width="80"/>
<el-table-column prop="area.name" label="指示纳所" width="200"/>
<!--<el-table-column prop="area.code" label="库区" width="80"/>-->
<el-table-column prop="area.name" label="库区" width="200"/>
<el-table-column prop="point.code" label="库位号" align="center"/>
<el-table-column prop="itemKey.item.code" label="品番"/>
<el-table-column prop="itemKey.item.name" label="品番名称"/>
<el-table-column prop="quantity" label="数量"/>
<el-table-column prop="zzkw.code" label="制造库位" align="center"/>
<el-table-column prop="area.pointCode" label="缓存库位" align="center"/>
<!--<el-table-column prop="zzkw.code" label="制造库位" align="center"/>
<el-table-column prop="area.pointCode" label="缓存库位" align="center"/>-->
<el-table-column prop="itemKey.propC2" label="税别"/>
<el-table-column v-if="checkPer(['admin','fileManagement:edit','fileManagement:del'])" label="操作"
width="150px" align="center" fixed="right"
>

View File

@ -23,8 +23,8 @@
<div class="statusButton" style="border-bottom: solid lightgray 1px;">
<el-radio-group v-model="radio3" @change="clickChange" size="small">
<el-radio-button label="未拣货"> 未拣货</el-radio-button>
<el-radio-button label="已拣未发">已拣未发</el-radio-button>
<el-radio-button label="已发未收"> 已发未收</el-radio-button>
<!-- <el-radio-button label="已拣未发">已拣未发</el-radio-button>
<el-radio-button label="已发未收"> 已发未收</el-radio-button>-->
<el-radio-button label="全部"> 全部</el-radio-button>
</el-radio-group>
@ -42,7 +42,7 @@
@click="cxjlFromFlag = true"
icon="el-icon-document-add"
>
产线叫料
制造叫料
</el-button>
<el-button
slot="right"
@ -76,14 +76,14 @@
@selection-change="selectionChangeHandlerTwo" border>
<el-table-column type="selection" width="50"/>
<el-table-column prop="id" label="序号"/>
<el-table-column prop="shArea.gcCode" label="工厂" width="150px"/>
<el-table-column prop="shArea.name" label="指示纳所" width="150px"/>
<el-table-column :show-overflow-tooltip="true" prop="itemName" label="物料编码">
<!-- <el-table-column prop="shArea.gcCode" label="工厂" width="150px"/>-->
<el-table-column prop="shArea.name" label="库区" width="150px"/>
<el-table-column :show-overflow-tooltip="true" prop="itemName" label="品番">
<template slot-scope="scope">
<div>{{ scope.row.item.code }}</div>
</template>
</el-table-column>
<el-table-column :show-overflow-tooltip="true" prop="itemCode" label="物料名称">
<el-table-column :show-overflow-tooltip="true" prop="itemCode" label="品名">
<template slot-scope="scope">
<div>{{ scope.row.item.name }}</div>
</template>
@ -144,10 +144,10 @@
<el-form-item label="数量">
<el-input v-model="cxjlFrom.order_qty" />
</el-form-item>
<el-form-item label="指示工厂">
<!--<el-form-item label="指示工厂">
<el-input v-model="cxjlFrom.gw_code" />
</el-form-item>
<el-form-item label="工厂名">
</el-form-item>-->
<el-form-item label="库区">
<el-input v-model="cxjlFrom.gw_name" />
</el-form-item>
@ -157,7 +157,7 @@
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="text" @click="cxjlFromFlag=false"></el-button>
<el-button type="primary" @click="btnCxjl"></el-button>
<el-button type="primary" @click="btnZzjl"></el-button>
</div>
</el-dialog>
<!--表格渲染-->
@ -171,7 +171,7 @@
</template>
<script>
import crudPickDetail,{cxjl,allocatePickDetail} from '@/api/pickDetail'
import crudPickDetail,{zzjl,allocatePickDetail} from '@/api/pickDetail'
import CRUD, {presenter, header, form, crud} from '@crud/crud'
import rrOperation from '@crud/RR.operation.vue'
import crudOperation from '@crud/CRUD.operation.vue'
@ -197,8 +197,8 @@ export default {
dicts: ['pick_status'],
cruds() {
return CRUD({
title: '产线叫料明细',
url: 'api/pickDetail',
title: '制造叫料明细',
url: 'api/pickDetail/queryPickDetailZsc',
idField: 'id',
sort: 'id,desc',
crudMethod: {...crudPickDetail},
@ -367,8 +367,8 @@ export default {
this.cxjlFrom.rk_id=dben.rk_id;
},
btnCxjl() {
cxjl(this.cxjlFrom).then(res => {
btnZzjl() {
zzjl(this.cxjlFrom).then(res => {
if (res.status == 200) {
this.crud.notify(res.message, CRUD.NOTIFICATION_TYPE.SUCCESS)
}