页面调整

main
FOAM 2025-09-16 14:59:01 +08:00
parent 6db922b794
commit 2d52775207
25 changed files with 751 additions and 586 deletions

View File

@ -47,4 +47,4 @@ export function edit(data) {
})
}
export default { add, edit, del }
export default { add, edit, del, getAres, getAreas, queryAreaList }

View File

@ -7,6 +7,13 @@ export function getBillType() {
})
}
export function queryBillTypeList(params) {
return request({
url: 'api/billType/queryBillTypeList',
method: 'get',
params
})
}
export function add(data) {
return request({
@ -32,4 +39,4 @@ export function edit(data) {
})
}
export default { add, edit, del }
export default { add, edit, del ,queryBillTypeList}

View File

@ -15,6 +15,13 @@ export function queryBigItemByStationType(stationType) {
})
}
export function queryByAreaId(areaId) {
return request({
url: `api/bomAccount/queryByAreaId/${areaId}`,
method: 'get'
})
}
export function queryItemByArea(areaId) {
return request({
url: `api/bomAccount/queryItemByArea/${areaId}`,
@ -76,4 +83,4 @@ export function bomPrintBiaoQianList(dxw) {
})
}
export default { add, edit, del, queryBomAccountPoints, bomPrintBiaoQianList,queryBomPrintListD,queryBomPrintListX }
export default { add, edit, del, queryBomAccountPoints, bomPrintBiaoQianList,queryBomPrintListD,queryBomPrintListX ,queryByAreaId}

View File

@ -106,24 +106,10 @@
<el-dialog :close-on-click-modal="false" :before-close="crud.cancelCU" :visible.sync="crud.status.cu > 0" :title="crud.status.title" width="700px">
<el-form ref="form" :model="form" :inline="true" :rules="rules" size="small" label-width="100px">
<el-form-item label="完成品品番" prop="bigItem">
<el-select v-model="form.bigItem" value-key="id" filterable placeholder="请选择完成品品番" style="width: 180px;">
<el-option
v-for="item in bigItemList"
:key="item.id"
:label="item.name"
:value="item"
/>
</el-select>
<BigItemSelect :value-key="'id'" v-model="form.bigItem" />
</el-form-item>
<el-form-item label="部品品番" prop="item">
<el-select v-model="form.item" value-key="id" filterable placeholder="请选择部品品番" style="width: 180px;">
<el-option
v-for="item in itemList"
:key="item.id"
:label="item.name"
:value="item"
/>
</el-select>
<ItemSelect :value-key="'id'" v-model="form.item" />
</el-form-item>
<!-- <el-form-item label="出库类型" prop="outType">
<el-select v-model="form.outType" filterable placeholder="请选择" style="width: 180px;">
@ -169,12 +155,32 @@
<el-input v-model="form.ns" style="width: 180px;" />
</el-form-item>
<el-form-item label="税别" prop="bonded">
<el-input v-model="form.bonded" style="width: 180px;" />
<!--<el-input v-model="form.bonded" style="width: 180px;" />-->
<el-select v-model="form.bonded" clearable placeholder="税别" style="width: 185px;" class="filter-item"
@keyup.enter.native="crud.toQuery">
<el-option
v-for="baseStatus in dict.bonded_type"
:key="baseStatus.id"
:label="baseStatus.label"
:value="baseStatus.value"
/>
</el-select>
</el-form-item>
<el-form-item label="货位" prop="zPoint">
<el-input v-model="form.zPoint.code" style="width: 180px;" />
<PointSelect :value-key="'id'" v-model="form.zPoint" :point_type="'ZZKW'"/>
</el-form-item>
<el-form-item label="台车库位" prop="tckw">
<el-input v-model="form.tckw" style="width: 180px;" />
</el-form-item>
<el-form-item label="供应商" prop="supplier">
<el-input v-model="form.supplier" style="width: 180px;" />
</el-form-item>
<el-form-item label="箱种" prop="xz">
<el-input v-model="form.xz" style="width: 180px;" />
</el-form-item>
<el-form-item label="刻印" prop="kyQz">
<el-input v-model="form.kyQz" style="width: 180px;" />
</el-form-item>
<el-form-item label="描述" prop="description">
<el-input v-model="form.description" :rows="3" type="textarea" style="width: 380px;" />
</el-form-item>
@ -220,17 +226,9 @@
{{ dict.label.bp_type[scope.row.bp_type] }}
</template>
</el-table-column>-->
<el-table-column prop="updateTime" label="操作日期" width="135">
<template slot-scope="scope">
{{getFormatDate(scope.row.updateTime)}}
</template>
</el-table-column>
<el-table-column prop="updateTime" label="操作日期" width="135"/>
<el-table-column prop="updateBy" label="操作人" />
<el-table-column prop="createTime" label="创建日期" width="135">
<template slot-scope="scope">
{{getFormatDate(scope.row.createTime)}}
</template>
</el-table-column>
<el-table-column prop="createTime" label="创建日期" width="135"/>
<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">
@ -269,10 +267,13 @@ import Link from "@/layout/components/Sidebar/Link.vue";
import excelUtil from "@/api/tools/excelUtil"
import { formatDate } from '@/utils/commonUtils'
import {mapGetters} from "vuex";
const defaultForm = { id: null, bigItem: null, supplier: null,item: null, contents: null, singles: null, rArea: null, cArea: null, outType: null, station_type: null, bp_type: null, dept: null, enabled: null, createBy: null, updateBy: null, createTime: null, updateTime: null, description: null, ac: null, bonded: null, zPoint: { code: null }}
import ItemSelect from "@/views/generic-component/ItemSelect.vue";
import BigItemSelect from "@/views/generic-component/BigItemSelect.vue";
import PointSelect from "@/views/generic-component/PointSelect.vue";
const defaultForm = { id: null, bigItem: null, supplier: null,item: null, contents: null, singles: null, rArea: null, zPoint:null,cArea: null, outType: null, station_type: null, bp_type: null, dept: null, enabled: null, createBy: null, updateBy: null, createTime: null, updateTime: null, description: null, ac: null, bonded: null,kyQz:null,tckw:null}
export default {
name: 'BomAccount',
components: {Link, DateRangePicker, pagination, crudOperation, rrOperation, udOperation },
components: {PointSelect, ItemSelect,BigItemSelect, Link, DateRangePicker, pagination, crudOperation, rrOperation, udOperation },
mixins: [presenter(), header(), form(defaultForm), crud()],
dicts: ['process_content', 'out_type', 'station_type', 'bp_type','bonded_type','ac_type','zdw_type'],
cruds() {
@ -287,11 +288,6 @@ export default {
return {
headers: { 'Authorization': getToken() },
fileList: [],
//
bigItemList: [],
itemList: [],
rAreaList: [],
cAreaList: [],
permission: {
add: ['admin', 'bomAccount:add'],
edit: ['admin', 'bomAccount:edit'],
@ -315,31 +311,18 @@ export default {
bigItem: [
{ required: true, message: '完成品品番不能为空', trigger: 'blur' }
],
outType: [
{ required: true, message: '出库类型不能为空', trigger: 'blur' }
item: [
{ required: true, message: '部品品番不能为空', trigger: 'blur' }
],
zPoint: [
{ required: true, message: '货位不能为空', trigger: 'blur' }
],
bonded: [
{ required: true, message: '税别不能为空', trigger: 'blur' }
],
bp_type: [
{ required: true, message: '部品种类不能为空', trigger: 'blur' }
],
zPoint: [
{ required: true, message: '制造库位不能为空', trigger: 'blur' }
],
rArea: [
{ required: true, message: '接受库区不能为空', trigger: 'blur' }
],
cArea: [
{ required: true, message: '出库库区不能为空', trigger: 'blur' }
]
}}
},
mounted() {
this.getBigItemList()
this.getItemList()
this.getRAreaList()
this.getCAreaList()
//
},
@ -368,54 +351,6 @@ export default {
[CRUD.HOOK.beforeRefresh]() {
return true
},
getBigItemList() {
bigItem.getBigItem(1).then(res => {
this.bigItemList = res.map(function(obj) {
if (obj.hasChildren) {
obj.children = null
}
return obj
})
})
},
getRAreaList() {
queryAreaList({enabled:true}).then(res=>{
this.rAreaList = res
})
// getAreas().then(res => {
// this.rAreaList = res.map(function(obj) {
// if (obj.hasChildren) {
// obj.children = null
// }
// return obj
// })
// })
},
getCAreaList() {
queryAreaList({bexb:false,enabled:true}).then(res=>{
this.cAreaList = res
})
// getAreas().then(res => {
// this.cAreaList = res.map(function(obj) {
// if (obj.hasChildren) {
// obj.children = null
// }
// return obj
// })
// })
},
getItemList() {
getItemsList().then(res => {
this.itemList = res.map(function(obj) {
if (obj.hasChildren) {
obj.children = null
}
return obj
})
})
},
saveBomPrintD() {
console.log("打印中大物标签")
queryBomPrintListD(this.crud.getQueryParams2()).then(res => {

View File

@ -172,6 +172,7 @@ body {
font-weight: bold;
text-align: center;
border: #000000 2px solid;
white-space: nowrap;
}
.td-item-value2{

View File

@ -16,10 +16,7 @@
<el-input v-model="query.idno" clearable placeholder="IDNO" style="width: 150px;" class="filter-item"
@keyup.enter.native="crud.toQuery"
/>
<el-input v-model="query.monthlyNo" clearable placeholder="月度序号" style="width: 150px;" class="filter-item"
@keyup.enter.native="crud.toQuery"
/>
<el-select v-model="query.rkCode" value-key="id" filterable placeholder="指示纳所" style="width: 185px;" class="filter-item" @keyup.enter.native="crud.toQuery" clearable>
<el-select v-model="query.rkCode" value-key="id" filterable placeholder="库区" style="width: 185px;" class="filter-item" @keyup.enter.native="crud.toQuery" clearable>
<el-option
v-for="item in rAreaList"
:key="item.id"
@ -39,8 +36,6 @@
:value="baseStatus.value"
/>
</el-select>
<el-input v-model.trim="query.projectNo" clearable placeholder="计划单号" style="width: 150px;" class="filter-item"
@keyup.enter.native="crud.toQuery"/>
<rrOperation :crud="crud"/>
</div>
<!--如果想在工具栏加入更多按钮可以使用插槽方式 slot = 'left' or 'right'-->
@ -50,7 +45,7 @@
ref="upload"
slot='right'
style="float: right;padding-left: 5px"
:action="baseApi+'/api/productionPlan/import_data'"
:action="baseApi+'/api/importData/importProductionPlan'"
:file-list="fileList"
:on-success=handleSuccess
:on-error="handleError"
@ -60,13 +55,13 @@
<el-button size="mini" type="success" icon="el-icon-upload">导入</el-button>
</el-upload>
<!-- dict.label.hy_status[scope.row.statue]-->
<el-button size="mini" type="success" slot="right" class="upload-demo" style="float: right;"
<!-- <el-button size="mini" type="success" slot="right" class="upload-demo" style="float: right;"
:disabled="sgscDisabled" v-permission="permission.sgscM"
@click="sgscM(crud.selections[0])"
>手工生成
</el-button>
</el-button>-->
<el-button size="mini" type="success" slot="left" class="upload-demo" style="float: right;"
<el-button size="mini" type="success" slot="right" class="upload-demo" style="float: right;"
:disabled="crud.selections.length !== 1"
@click="haoYongM(crud.selections[0])" v-permission="permission.haoYong"
>批量耗用
@ -112,15 +107,11 @@
</el-input>
</el-form-item>
<el-form-item label="起始机号" prop="id">
<el-input v-model="productionPlanVo.machineNo" placeholder="起始机号" disabled>
</el-input>
</el-form-item>
<el-form-item label="工位" prop="workingStation" style="display: none">
<el-input v-model="productionPlanVo.workingStation" placeholder="工位" disabled >
<el-input v-model="productionPlanVo.machineNo" placeholder="工件" disabled>
</el-input>
</el-form-item>
<el-form-item label="工位名" prop="name">
<el-input v-model="productionPlanVo.name" disabled>
<el-input v-model="productionPlanVo.workingStation" disabled>
</el-input>
</el-form-item>
<el-form-item label="数量" prop="number">
@ -183,58 +174,28 @@
:height="crud.tableHeight" @selection-change="crud.selectionChangeHandler" @select="selectTableM" @select-all="selectAllTableM"
>
<el-table-column type="selection" width="55"/>
<el-table-column prop="no" label="No" width="60"/>
<el-table-column prop="id" label="ID" width="100"/>
<el-table-column prop="no" label="序号" width="60"/>
<el-table-column prop="makeLine" label="制造线" width="65"/>
<el-table-column prop="rkArea.code" label="工位" width="80"/>
<el-table-column prop="rkArea.name" label="指示纳所" width="150"/>
<el-table-column :show-overflow-tooltip="true" prop="downlineDate" label="下线日期" width="100">
<template slot-scope="scope">
{{getFormatDate(scope.row.downlineDate)}}
</template>
</el-table-column>
<el-table-column prop="idno" label="IDNO" width="160"/>
<el-table-column prop="monthlyNo" label="月度序号" width="150"/>
<el-table-column prop="bigItem.code" label="机型" width="100px">
</el-table-column>
<el-table-column prop="bigItem.name" label="机型名称" width="150px">
<template slot-scope="scope" >
{{ scope.row.bigItem.name}}
</template>
</el-table-column>
<el-table-column prop="bigItem.country" label="国别" width="50">
</el-table-column>
<el-table-column prop="machineNo" label="机号" width="80"/>
<el-table-column prop="rkArea.code" label="库区" width="80"/>
<el-table-column prop="rkArea.name" label="库区名" width="100"/>
<el-table-column :show-overflow-tooltip="true" prop="downlineDate" label="下线日期" width="100"/>
<el-table-column prop="idno" label="ID NO./刻印号" width="120"/>
<el-table-column prop="bigItem.code" label="机型" width="120px"/>
<el-table-column prop="bigItem.name" label="机型名称" width="150px"/>
<el-table-column prop="machineNo" label="工件" width="120"/>
<el-table-column prop="hy_status#statue" label="耗用状态" width="70px">
<template slot-scope="scope">
{{ dict.label.hy_status[scope.row.statue] }}
</template>
</el-table-column>
<el-table-column prop="orderNo" label="序号" width="50"/>
<el-table-column prop="projectNo" label="计划单号" width="120"/>
<el-table-column :show-overflow-tooltip="true" prop="takeUpTime" label="耗用时间">
<template slot-scope="scope">
{{getFormatDate(scope.row.takeUpTime)}}
</template>
</el-table-column>
<el-table-column :show-overflow-tooltip="true" prop="importDate" label="导入日期">
<template slot-scope="scope">
{{getFormatDate(scope.row.importDate)}}
</template>
</el-table-column>
<el-table-column prop="type" label="出库类型"/>
<el-table-column :show-overflow-tooltip="true" prop="takeUpTime" label="耗用时间"/>
<el-table-column :show-overflow-tooltip="true" prop="description" label="描述"/>
<el-table-column prop="createBy" label="创建人" width="60"/>
<el-table-column prop="updateBy" label="更新人" width="60"/>
<el-table-column :show-overflow-tooltip="true" prop="createTime" label="创建时间">
<template slot-scope="scope">
{{getFormatDate(scope.row.createTime)}}
</template>
</el-table-column>
<el-table-column :show-overflow-tooltip="true" prop="updateTime" label="修改日期">
<template slot-scope="scope">
{{getFormatDate(scope.row.updateTime)}}
</template>
</el-table-column>
<el-table-column :show-overflow-tooltip="true" prop="createTime" label="创建时间"/>
<el-table-column :show-overflow-tooltip="true" prop="updateTime" label="修改日期"/>
<el-table-column v-if="checkPer(['admin','productionPlan:edit','productionPlan:del'])" fixed="right"
label="操作" width="150px" align="center"
>
@ -459,12 +420,9 @@ export default {
this.productionPlanVo.id = data.id
//
this.productionPlanVo.machineNo = data.machineNo
//
this.productionPlanVo.workingStation = data.workingStation
//
this.productionPlanVo.name = this.dict.label.station_type[data.workingStation]
console.log(this.productionPlanVo)
console.log(this.$options.dicts)
this.productionPlanVo.workingStation = data.rkArea.name
this.productionPlanVo.areaId = data.rkArea.id
this.haoYongOnOff = true
},
submitHaoYongForm() {

View File

@ -7,17 +7,11 @@
<!-- <label class="el-form-item-label">单号</label>-->
<el-input v-model="query.code" clearable placeholder="单号" style="width: 185px;" class="filter-item"
@keyup.enter.native="crud.toQuery"/>
<el-select v-model="query.areaCode" clearable placeholder="库区" value-key="id" class="filter-item"
@keyup.enter.native="crud.toQuery">
<el-option
style="width: 180px"
v-for="item in areaOptions"
:key="item.id"
:label="item.code"
:value="item.code"
>
</el-option>
</el-select>
<el-input v-model="query.cusCode" clearable placeholder="箱单号" style="width: 185px;" class="filter-item"
@keyup.enter.native="crud.toQuery"/>
<el-input v-model="query.relatedBill1" clearable placeholder="发票号" style="width: 185px;" class="filter-item"
@keyup.enter.native="crud.toQuery"/>
<AreaSelect v-model="query.areaCode" :value-key="'id'" :bexb=false placeholder="请选择库区" style="width: 150px;" class="filter-item" @change="getChangeAreaVule"/>
<!-- <el-input v-model="query.orderDate" clearable placeholder="订单日期" style="width: 185px;" class="filter-item" @keyup.enter.native="crud.toQuery" />-->
<!-- <label class="el-form-item-label">状态</label>-->
@ -101,7 +95,7 @@
<el-form-item label="单号" prop="code">
<el-input :disabled="true" v-model="form.code" style="width: 200px;"/>
</el-form-item>
<el-form-item label="托盘号" prop="code">
<el-form-item label="箱单号" prop="code">
<el-input v-model="form.cusCode" style="width: 200px;"/>
</el-form-item>
<el-form-item label="发票号" prop="code">
@ -242,7 +236,7 @@
<el-table-column type="selection" width="55"/>
<el-table-column prop="id" label="序号" width="80px" align="center"/>
<el-table-column prop="code" label="单号" align="center"/>
<el-table-column prop="cusCode" label="托盘号" align="center"/>
<el-table-column prop="cusCode" label="箱单号" align="center"/>
<el-table-column prop="relatedBill1" label="发票号" align="center"/>
<el-table-column prop="billType.name" label="单据类型"/>
<el-table-column prop="status" label="状态" align="center">
@ -304,6 +298,7 @@ import UploadExcelComponent from '@/components/UploadExcel/index.vue'
import {cancelReceiv} from "@/api/xppRecord";
import BomAccountPointSelect from "@/views/generic-component/BomAccountPointSelect.vue";
import PointSelect from "@/views/generic-component/PointSelect.vue";
import AreaSelect from "@/views/generic-component/AreaSelect.vue";
const defaultForm = {
id: null,
@ -336,6 +331,7 @@ const defaultForm = {
export default {
name: 'Asn',
components: {
AreaSelect,
PointSelect,
BomAccountPointSelect,
pagination, crudOperation, rrOperation, udOperation, DateRangePicker, UploadExcelComponent},
@ -598,6 +594,9 @@ export default {
getChangeVule(dben) {
this.plsjForm.pointId = dben.id;
},
getChangeAreaVule(dben) {
this.query.areaCode = dben.code;
},
//

View File

@ -3,35 +3,40 @@
<el-card class="box-card">
<div slot="header" class="clearfix">
<!-- 卡片头 -->
<div style="width: 100%;height: 180px;position: relative;">
<div style="width: 100%;height: 100px;position: relative;">
<el-form ref="asnFromRes" :model="asnFrom" :rules="rules" size="small" label-width="80px">
<div style="width: 60%;height: 180px;float: left">
<el-form-item label="库区" prop="area">
<el-select v-model="asnFrom.area" prop="area" value-key="id" style="width: 100%"
placeholder="请选择出库库区" clearable
>
<el-option v-for="item in areaOptions" :key="item.id" :label="item.code" :value="item"/>
</el-select>
</el-form-item>
<div style="width: 100%;position: relative;height: 45px;">
<div style="width: 50%;float: left">
<el-row :gutter="20">
<el-col :span="8">
<el-form-item label="单据类型" prop="billType">
<el-select v-model="asnFrom.billType" value-key="id" style="width:100%"
placeholder="请选择单据类型" clearable
>
<el-option
v-for="item in billTypeOptions"
:key="item.id"
:label="item.name"
:value="item"
/>
</el-select>
<BillTypeSelect v-model="asnFrom.billType" :value-key="'id'" :bill_code="'XDRK'"/>
</el-form-item>
</div>
<div style="width: 50%;float: right">
</el-col>
<el-col :span="8">
<el-form-item label="箱单号" prop="cusCode">
<el-input :disabled="false" v-model="asnFrom.cusCode" style="width: 200px;"/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="发票号" prop="relatedBill1">
<el-input :disabled="false" v-model="asnFrom.relatedBill1" style="width: 200px;"/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="8">
<el-form-item label="单号" prop="code">
<el-input :disabled="true" v-model="asnFrom.code" style="width: 200px;"/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="订单数量">
<el-input :disabled="true" v-model="asnFrom.orderQuantity" style="width: 200px;"/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="订单日期" prop="orderDate" >
<el-date-picker
style="width: 100%"
style="width: 200px;"
v-model="asnFrom.orderDate"
type="date"
value-format="yyyy-MM-dd"
@ -39,42 +44,26 @@
>
</el-date-picker>
</el-form-item>
</div>
</div>
<div style="width: 100%;position: relative;height: 45px;">
<div style="width: 50%;float: left">
<el-form-item label="单号" prop="code">
<el-input :disabled="true" v-model="asnFrom.code" style="width: 100%"/>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="14">
<el-form-item label="备注:">
<el-input v-model="asnFrom.description" placeholder="请输入备注"
/>
</el-form-item>
</div>
<div style="width: 50%;float: right">
<el-form-item label="订单数量">
<el-input :disabled="true" v-model="asnFrom.orderQuantity" style="width: 100%;"/>
</el-form-item>
</div>
</div>
<div style="width: 100%;position: relative;">
</el-col>
</el-row>
<div style="width: 50%;float: left">
<el-button type="primary" :disabled="asnFrom.code != null" @click="submitFromAsn(asnFrom)">
</el-button>
</div>
</div>
</div>
<div style="width: 40%;height: 180px;float: right">
<el-form-item label="备注:">
</el-form-item>
<el-input v-model="asnFrom.description" type="textarea" :autosize="{ minRows: 5, maxRows: 8}"
placeholder="请输入备注" style="width: 90%;height: 100%;float: right"
/>
</div>
</el-form>
</div>
</div>
<!--如果想在工具栏加入更多按钮可以使用插槽方式 slot = 'left' or 'right'-->
<crudOperation :permission="permission" :tableKey="this.$options.name">
<el-button
<!--<el-button
slot="right"
class="filter-item"
type="primary"
@ -94,7 +83,7 @@
:loading="logining3"
>
取消上架
</el-button>
</el-button>-->
<!-- <el-upload
class="upload-demo"
ref="upload"
@ -154,34 +143,20 @@
<el-form ref="form" :rules="asnDetailRules" :model="form" size="small" label-width="80px"
style="height: 200px"
>
<el-form-item label="物料" prop="item" style="float: left">
<el-select v-model="form.item" value-key="id" filterable placeholder="请选择品番" style="width: 200px;"
@change="getPointList($event.code,asn)"
clearable
>
<el-option
v-for="item in itemOptions"
:key="item.id"
:label="item.code"
:value="item"
>
<span style="float: left">{{ item.code }}</span>
<span style="float: right; color: #8492a6; font-size: 13px">{{ item.name }}</span>
</el-option>
</el-select>
<el-form-item label="部品品番" prop="item" style="float: left">
<ItemSelect :value-key="'id'" v-model="form.item" />
</el-form-item>
<el-form-item label="订单数量" prop="orderQty" style="float: left">
<el-input v-model="form.orderQty" style="width: 200px;"/>
</el-form-item>
<el-form-item v-if="pointTF" label="库位" prop="point" style="float: left">
<el-select v-model="form.point" value-key="id" filterable placeholder="请选择库位" clearable
style="width: 200px;"
>
<el-form-item label="税别" prop="propC2" style="float: left">
<el-select v-model="form.propC2" clearable placeholder="税别" style="width: 185px;" class="filter-item"
@keyup.enter.native="crud.toQuery">
<el-option
v-for="item in pointOptions"
:key="item.id"
:label="item.code"
:value="item"
v-for="baseStatus in dict.bonded_type"
:key="baseStatus.id"
:label="baseStatus.label"
:value="baseStatus.value"
/>
</el-select>
</el-form-item>
@ -248,6 +223,9 @@ import { getBillType } from '@/api/billType'
import crudAsn from '@/api/asn'
import { queryBomAccountList } from '@/api/bomAccount'
import {mapGetters} from "vuex";
import PointSelect from "@/views/generic-component/PointSelect.vue";
import BillTypeSelect from "@/views/generic-component/BillTypeSelect.vue";
import ItemSelect from "@/views/generic-component/ItemSelect.vue";
const defaultForm = {
id: null,
@ -286,9 +264,12 @@ const asnQuery = {
}
export default {
name: 'viewAsnDetail',
components: { DateRangePicker, AsnTask, Search, pagination, crudOperation, rrOperation, udOperation },
components: {
ItemSelect,
BillTypeSelect,
PointSelect, DateRangePicker, AsnTask, Search, pagination, crudOperation, rrOperation, udOperation },
mixins: [presenter(), header(), form(defaultForm), crud()],
dicts: ['asn_status'],
dicts: ['asn_status','bonded_type'],
cruds() {
return CRUD({
title: '收货数据',
@ -333,8 +314,8 @@ export default {
del: ['admin', 'asnDetail:del']
},
rules: {
area: [
{ required: true, message: '出库库区不能为空', trigger: 'blur' }
cusCode: [
{ required: true, message: '箱单号不能为空', trigger: 'blur' }
],
orderDate: [{
required: true, message: '订单日期不能为空', trigger: 'blur'

View File

@ -3,35 +3,30 @@
<el-card class="box-card">
<div slot="header" class="clearfix">
<!-- 卡片头 -->
<div style="width: 100%;height: 180px;position: relative;">
<div style="width: 100%;height: 100px;position: relative;">
<el-form ref="asnFromRes" :model="asnFrom" :rules="rules" size="small" label-width="80px">
<div style="width: 60%;height: 180px;float: left">
<el-form-item label="库区" prop="area">
<el-select v-model="asnFrom.area" prop="area" value-key="id" style="width: 100%"
placeholder="请选择出库库区" clearable
>
<el-option v-for="item in areaOptions" :key="item.id" :label="item.code" :value="item"/>
</el-select>
</el-form-item>
<div style="width: 100%;position: relative;height: 45px;">
<div style="width: 50%;float: left">
<el-row :gutter="20">
<el-col :span="8">
<el-form-item label="单据类型" prop="billType">
<el-select v-model="asnFrom.billType" value-key="id" style="width:100%"
placeholder="请选择单据类型" clearable
>
<el-option
v-for="item in billTypeOptions"
:key="item.id"
:label="item.name"
:value="item"
/>
</el-select>
<BillTypeSelect v-model="asnFrom.billType" :value-key="'id'" :bill_code="'XBRK'"/>
</el-form-item>
</div>
<div style="width: 50%;float: right">
</el-col>
<el-col :span="8">
<el-form-item label="单号" prop="code">
<el-input :disabled="true" v-model="asnFrom.code" style="width: 200px;"/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="订单数量">
<el-input :disabled="true" v-model="asnFrom.orderQuantity" style="width: 200px;"/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="8">
<el-form-item label="订单日期" prop="orderDate" >
<el-date-picker
style="width: 100%"
style="width: 200px;"
v-model="asnFrom.orderDate"
type="date"
value-format="yyyy-MM-dd"
@ -39,36 +34,18 @@
>
</el-date-picker>
</el-form-item>
</div>
</div>
<div style="width: 100%;position: relative;height: 45px;">
<div style="width: 50%;float: left">
<el-form-item label="单号" prop="code">
<el-input :disabled="true" v-model="asnFrom.code" style="width: 100%"/>
</el-col>
<el-col :span="14">
<el-form-item label="备注:">
<el-input v-model="asnFrom.description" placeholder="请输入备注"
/>
</el-form-item>
</div>
<div style="width: 50%;float: right">
<el-form-item label="订单数量">
<el-input :disabled="true" v-model="asnFrom.orderQuantity" style="width: 100%;"/>
</el-form-item>
</div>
</div>
<div style="width: 100%;position: relative;">
</el-col>
</el-row>
<div style="width: 50%;float: left">
<el-button type="primary" :disabled="asnFrom.code != null" @click="submitFromAsn(asnFrom)">
</el-button>
</div>
</div>
</div>
<div style="width: 40%;height: 180px;float: right">
<el-form-item label="备注:">
</el-form-item>
<el-input v-model="asnFrom.description" type="textarea" :autosize="{ minRows: 5, maxRows: 8}"
placeholder="请输入备注" style="width: 90%;height: 100%;float: right"
/>
</div>
</el-form>
</div>
</div>
@ -82,18 +59,7 @@
@click="rkAndQxButtonM(1)"
:loading="logining1"
>
整单入库
</el-button>
<el-button
slot="right"
class="filter-item"
type="primary"
size="mini"
:disabled="!(crud.selections.length === 1)"
@click="dyrkM(crud.selections)"
:loading="logining2"
>
单一入库
整单上架
</el-button>
<el-button
slot="right"
@ -104,9 +70,9 @@
@click="qxshM(crud.selections)"
:loading="logining3"
>
取消收货
取消上架
</el-button>
<el-upload
<!-- <el-upload
class="upload-demo"
ref="upload"
slot='right'
@ -118,86 +84,32 @@
:headers="headers"
:show-file-list="true">
<el-button size="mini" type="success" icon="el-icon-upload">导入</el-button>
</el-upload>
</el-upload>-->
</crudOperation>
<!-- 单一入库 -->
<el-dialog title="单一入库" :visible.sync="dyrkTf" width="500px">
<!-- <el-dialog-->
<!-- width="30%"-->
<!-- title="内层 Dialog"-->
<!-- :visible.sync="innerVisible"-->
<!-- append-to-body>-->
<!-- </el-dialog>-->
<el-form ref="formdyrk" :model="asnDetailButton" label-width="80px">
<el-form-item label="数量" prop="oneRNumber" :rules="[
{ required: true, message: '数量不能为空'},
{ type: 'number', message: '数量必须为数字值'}
]"
>
<el-input v-model.number="asnDetailButton.oneRNumber" placeholder="请输入数量" style="width: 250px"/>
</el-form-item>
<el-form-item label="库位" prop="oneRPoint" :rules="[
{ required: true, message: '库位不能为空'}
]"
>
<el-select v-model="asnDetailButton.oneRPoint" value-key="id" placeholder="请选择库位" style="width: 250px">
<el-option
v-for="(item,index) in pointOptions"
:key="item.id+''+item.code"
:label="item.code"
:value="item"
>
</el-option>
</el-select>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="dyrkTf = false"> </el-button>
<el-button type="primary" @click="rkAndQxButtonM(2)"></el-button>
</div>
</el-dialog>
<!--表单组件-->
<el-dialog :close-on-click-modal="false" :before-close="crud.cancelCU" :visible.sync="crud.status.cu > 0"
:title="crud.status.title" width="400px"
>
<el-form ref="form" :rules="asnDetailRules" :model="form" size="small" label-width="80px"
style="height: 200px"
<el-form ref="form" :rules="asnDetailRules" :model="form" size="small" label-width="100px"
style="height: 300px"
>
<el-form-item label="物料" prop="item" style="float: left">
<el-select v-model="form.item" value-key="id" filterable placeholder="请选择品番" style="width: 200px;"
@change="getPointList($event.code,asn)"
clearable
>
<el-option
v-for="item in itemOptions"
:key="item.id"
:label="item.code"
:value="item"
>
<span style="float: left">{{ item.code }}</span>
<span style="float: right; color: #8492a6; font-size: 13px">{{ item.name }}</span>
</el-option>
</el-select>
<el-form-item label="制造库位" prop="zzkwCode">
<BomAccountPointSelect v-model="form.point.code" :value-key="'bom_account_id'" @change="getChangeVule"/>
</el-form-item>
<el-form-item label="订单数量" prop="orderQty" style="float: left">
<el-input v-model="form.orderQty" style="width: 200px;"/>
<el-form-item label="品番">
<el-input v-model="form.item.code" />
</el-form-item>
<el-form-item v-if="pointTF" label="库位" prop="point" style="float: left">
<el-select v-model="form.point" value-key="id" filterable placeholder="请选择库位" clearable
style="width: 200px;"
>
<el-option
v-for="item in pointOptions"
:key="item.id"
:label="item.code"
:value="item"
/>
</el-select>
<el-form-item label="品名">
<el-input v-model="form.item.name" />
</el-form-item>
<el-form-item label="备注" prop="remark" style="float: left">
<el-input type="textarea" :rows="2" v-model="form.remark" style="width: 200px;"/>
<el-form-item label="数量">
<el-input v-model="form.orderQty" />
</el-form-item>
<el-form-item label="税别">
<el-input v-model="form.propC2"/>
</el-form-item>
<el-form-item label="备注">
<el-input v-model="form.remark" :rows="3" type="textarea" style="width: 270px;"/>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
@ -210,47 +122,15 @@
@selection-change="crud.selectionChangeHandler" :height="crud.tableHeight"
>
<el-table-column type="selection" width="55"/>
<el-table-column prop="item.code " label="品番号" width="100px">
<template slot-scope="scope">
<div>{{ scope.row.item == null ? '' : scope.row.item.code }}</div>
</template>
</el-table-column>
<el-table-column prop="item.name" label="品番" width="100px">
<template slot-scope="scope">
<div>{{ scope.row.item == null ? '' : scope.row.item.name }}</div>
</template>
</el-table-column>
<el-table-column :show-overflow-tooltip="true" prop="item.unit" label="单位">
<template slot-scope="scope">
<div>{{ scope.row.item == null ? '' : scope.row.item.unit }}</div>
</template>
</el-table-column>
<el-table-column :show-overflow-tooltip="true" prop="orderQty" label="订单数量">
<template slot-scope="scope">
<div>{{ scope.row == null ? '' : scope.row.orderQty }}</div>
</template>
</el-table-column>
<el-table-column :show-overflow-tooltip="true" prop="receivedQty" label="收货数量">
<template slot-scope="scope">
<div>{{ scope.row == null ? '' : scope.row.receivedQty }}</div>
</template>
</el-table-column>
<el-table-column :show-overflow-tooltip="true" prop="point.code" label="库位">
<template slot-scope="scope">
<div>{{ scope.row.point == null ? '' : scope.row.point.code }}</div>
</template>
</el-table-column>
<el-table-column :show-overflow-tooltip="true" prop="propC1" label="批次号">
<template slot-scope="scope">
<div>{{ scope.row.propC1 }}</div>
</template>
</el-table-column>
<el-table-column :show-overflow-tooltip="true" prop="propD1" label="生产日期">
<template slot-scope="scope">
<div>{{ scope.row.propD1 }}</div>
</template>
</el-table-column>
<el-table-column :show-overflow-tooltip="true" prop="remark" label="备注">
<el-table-column prop="item.code" label="品番"/>
<el-table-column prop="item.name" label="品名"/>
<el-table-column prop="po" label="po"/>
<el-table-column prop="orderQty" label="订单数量"/>
<el-table-column prop="receivedQty" label="收货数量"/>
<el-table-column prop="point.code" label="库位"/>
<el-table-column prop="propC1" label="批次号"/>
<el-table-column prop="propC2" label="税别"/>
<el-table-column prop="remark" label="备注">
<template slot-scope="scope">
<div>{{ scope.row.remark }}</div>
</template>
@ -291,16 +171,26 @@ import { getBillType } from '@/api/billType'
import crudAsn from '@/api/asn'
import { queryBomAccountList } from '@/api/bomAccount'
import {mapGetters} from "vuex";
import PointSelect from "@/views/generic-component/PointSelect.vue";
import BillTypeSelect from "@/views/generic-component/BillTypeSelect.vue";
import ItemSelect from "@/views/generic-component/ItemSelect.vue";
import BomAccountPointSelect from "@/views/generic-component/BomAccountPointSelect.vue";
const defaultForm = {
id: null,
asn: null,
item: null,
item: {id:null,code:null,name:null},
bom_account_id: null,
item_code:null,
item_name:null,
item_id:null,
zzkw_code:null,
point_id:null,
stock: null,
lineNo: null,
po: null,
status: 'OPEN',
point: null,
point: {id:null,code:null},
orderQty: 0,
receivedQty: 0,
moveQty: 0,
@ -329,9 +219,13 @@ const asnQuery = {
}
export default {
name: 'viewXbDetail',
components: { DateRangePicker, AsnTask, Search, pagination, crudOperation, rrOperation, udOperation },
components: {
BomAccountPointSelect,
ItemSelect,
BillTypeSelect,
PointSelect, DateRangePicker, AsnTask, Search, pagination, crudOperation, rrOperation, udOperation },
mixins: [presenter(), header(), form(defaultForm), crud()],
dicts: ['asn_status'],
dicts: ['asn_status','bonded_type'],
cruds() {
return CRUD({
title: '收货数据',
@ -376,8 +270,8 @@ export default {
del: ['admin', 'asnDetail:del']
},
rules: {
area: [
{ required: true, message: '出库库区不能为空', trigger: 'blur' }
cusCode: [
{ required: true, message: '箱单号不能为空', trigger: 'blur' }
],
orderDate: [{
required: true, message: '订单日期不能为空', trigger: 'blur'
@ -387,9 +281,6 @@ export default {
}]
},
asnDetailRules: {
item: [
{ required: true, message: '物料不能为空', trigger: 'blur' }
],
orderQty: [
{ required: true, message: '订单数量不能为空', trigger: 'blur' }
]
@ -457,17 +348,7 @@ export default {
// clearInterval(this.clearTimeSet);
// },
mounted() {
//
this.getOnceOptionAll()
//
// setTimeout(() => {
// //
// this.asnTF()
// this.crud.toQuery()
// }, 100);
// this.asnTF()
// 1000 1s
// this.setTime();
},
methods: {
// false
@ -489,38 +370,6 @@ export default {
//
this.asnFrom.orderDate = `${year}-${month}-${day}`
},
//
getPointList(code, data) {
if (data.area.bexb) {
this.pointTF=true;
let selectDate = { rAreaCode: null, itemCode: null }
selectDate.rAreaCode = data.area.code
selectDate.itemCode = code
// if (selectDate.rAreaCode === null) {
// if (selectDate.rAreaCode === null) {
// this.$message.error('')
// return
// }
queryBomAccountList(selectDate).then(res => {
this.pointOptions = []
if (res != null) {
console.log(res)
let data_ = []
for (const re of res) {
data_.push(re.zPoint)
}
this.pointOptions = this.filterListObj(data_)
}
if (!(this.pointOptions.length > 0)) {
queryPointList({ code: 'ZZKW' }).then(re => {
this.pointOptions = re
})
}
})
}else {
this.pointTF=false;
}
},
//
filterListObj(listObj) {
let date = []
@ -538,32 +387,6 @@ export default {
})
return date
},
//
getOnceOptionAll() {
//
queryItemAll({}).then(res => {
this.itemOptions = res
}).catch(e => {
this.$message({
showClose: true,
message: '物料加载失败',
type: 'error'
})
})
//
getAreas().then(res => {
this.areaOptions = res
})
//
getBillType().then(res => {
this.billTypeOptions = res
for (const re of res) {
if (re.code === 'RK') {
this.asnFrom.billType = re
}
}
})
},
//
asnTF() {
if (this.asnId != 0) {
@ -574,8 +397,6 @@ export default {
//
this.asnFrom = res
asnQuery.asnId = res.id
//
this.pointTF = res.area.bexb
// if (res.area.besh){
// this.getPointList(res)
// }
@ -596,7 +417,7 @@ export default {
this.asnTF()
this.$message.success('添加成功')
// this.crud.toQuery()
this.$router.push({ path: '/business-asn/viewAsnDetail', query: { ids: res.id } })
this.$router.push({ path: '/business-asn/viewXbDetail', query: { ids: res.id } })
})
} else {
return false
@ -662,6 +483,16 @@ export default {
this.asnDetailButton.asnDetailDataS = data
this.rkAndQxButtonM(3)
},
getChangeVule(dben) {
this.form.orderQty=dben.srs;
this.form.item.code=dben.item_code;
this.form.item.name=dben.item_name;
this.form.sourceId=dben.bom_account_id
this.form.item.id=dben.item_id;
this.form.point.id=dben.zzkw_id;
this.form.point.code=dben.zzkw_code;
this.form.propC2=dben.bonded;
},
handleSuccess(response, file, fileList) {
this.crud.notify('上传成功', CRUD.NOTIFICATION_TYPE.SUCCESS)
this.$refs.upload.clearFiles()

View File

@ -385,7 +385,7 @@ export default {
name: 'Xbrk',
components: {pagination, crudOperation, rrOperation, udOperation, DateRangePicker, UploadExcelComponent},
mixins: [presenter(), header(), form(defaultForm), crud()],
dicts: ['asn_status'],
dicts: ['asn_status','bonded_type'],
cruds() {
return CRUD({
title: 'asn', url: 'api/asn', idField: 'id', sort: 'id,desc', crudMethod: {...crudAsn}, optShow: {

View File

@ -40,6 +40,22 @@
:value="item.value"
/>
</el-select>
<el-select
v-model="query.bonded"
clearable
size="small"
placeholder="税别"
class="filter-item"
style="width: 150px"
@change="crud.toQuery"
>
<el-option
v-for="item in dict.bonded_type"
: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"
@ -430,7 +446,7 @@ export default {
}
})
},
dicts: ['xxp_status', 'supplier_compare','boolean_status','base_staus'],
dicts: ['xxp_status', 'supplier_compare','boolean_status','bonded_type','base_staus'],
data() {
return {
collectFromFlag: false,

View File

@ -40,6 +40,22 @@
:value="item.value"
/>
</el-select>
<el-select
v-model="query.bonded"
clearable
size="small"
placeholder="税别"
class="filter-item"
style="width: 150px"
@change="crud.toQuery"
>
<el-option
v-for="item in dict.bonded_type"
: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"
/>
@ -116,6 +132,8 @@
<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="contents" label="加工内容" width="60px"/>
<el-table-column prop="bonded" label="税别" width="60px"/>
<el-table-column prop="srs" label="收容数" width="80px"/>
<el-table-column prop="nr_date" label="纳入指示日" width="100px">
<template slot-scope="scope">
@ -205,7 +223,7 @@ export default {
}
})
},
dicts: ['xxp_status', 'supplier_compare','boolean_status','base_staus'],
dicts: ['xxp_status', 'supplier_compare','boolean_status','base_staus','bonded_type'],
data() {
return {
collectFromFlag: false,

View File

@ -35,6 +35,20 @@
<el-input v-model="query.stockCode" clearable placeholder="箱单号" style="width: 150px;"
@keyup.enter.native="crud.toQuery"
/>
<el-select
v-model="query.bonded"
clearable
placeholder="税别"
style="width: 150px"
@change="crud.toQuery"
>
<el-option
v-for="item in dict.bonded_type"
:key="item.id"
:label="item.label"
:value="item.value"
/>
</el-select>
<el-date-picker
v-model="query.propD1"
type="date"
@ -311,6 +325,7 @@ export default {
}
})
},
dicts: ['bonded_type'],
data() {
return {
points: [],

View File

@ -27,6 +27,21 @@
<el-input v-model="query.pointCode" clearable placeholder="库位号" style="width: 150px;"
@keyup.enter.native="crud.toQuery"
/>
<el-select
v-model="query.bonded"
clearable
size="small"
placeholder="税别"
style="width: 150px"
@change="crud.toQuery"
>
<el-option
v-for="item in dict.bonded_type"
:key="item.id"
:label="item.label"
:value="item.value"
/>
</el-select>
<el-date-picker
v-model="query.propD1"
type="date"
@ -250,6 +265,7 @@ export default {
},
})
},
dicts: ['bonded_type'],
data() {
return {
points: [],

View File

@ -35,6 +35,21 @@
<el-input v-model="query.stockCode" clearable placeholder="箱单号" style="width: 150px;"
@keyup.enter.native="crud.toQuery"
/>
<el-select
v-model="query.bonded"
clearable
size="small"
placeholder="税别"
style="width: 150px"
@change="crud.toQuery"
>
<el-option
v-for="item in dict.bonded_type"
:key="item.id"
:label="item.label"
:value="item.value"
/>
</el-select>
<el-date-picker
v-model="query.propD1"
type="date"
@ -284,6 +299,7 @@ export default {
},
})
},
dicts: ['bonded_type'],
data() {
return {
points: [],

View File

@ -28,6 +28,21 @@
<el-input v-model="query.pointCode" clearable placeholder="库位号" style="width: 150px;"
@keyup.enter.native="crud.toQuery"
/>
<el-select
v-model="query.bonded"
clearable
size="small"
placeholder="税别"
style="width: 150px"
@change="crud.toQuery"
>
<el-option
v-for="item in dict.bonded_type"
:key="item.id"
:label="item.label"
:value="item.value"
/>
</el-select>
<el-date-picker
v-model="query.propD1"
type="date"
@ -300,6 +315,7 @@ export default {
},
})
},
dicts: ['bonded_type'],
data() {
return {
points: [],

View File

@ -38,6 +38,22 @@
</el-select>
<el-input v-model="query.propC1" clearable placeholder="请输入批次号" style="width: 120px;" class="filter-item"
@keyup.enter.native="crud.toQuery"/>
<el-select
v-model="query.bonded"
clearable
size="small"
placeholder="税别"
class="filter-item"
style="width: 150px"
@change="crud.toQuery"
>
<el-option
v-for="item in dict.bonded_type"
:key="item.id"
:label="item.label"
:value="item.value"
/>
</el-select>
<date-range-picker v-model="query.createTime" class="date-item" style="width: 100px"/>
<rrOperation :crud="crud"/>
<!--如果想在工具栏加入更多按钮可以使用插槽方式 slot = 'left' or 'right'-->
@ -69,7 +85,8 @@
{{ dict.label.inc_dec[scope.row.incDec] }}
</template>
</el-table-column>
<el-table-column prop="itemKey.propC1" label="批次号" width="100"/>
<el-table-column prop="itemKey.propC1" label="批次号"/>
<el-table-column prop="itemKey.propC2" label="税别"/>
<el-table-column prop="srcPointCode" label="源库位" width="80px" align="center"/>
<!-- <el-table-column prop="srcStockCode" label="源容器号"/>-->
<el-table-column prop="dstPointCode" label="目标库位" width="80px" align="center"/>
@ -146,7 +163,7 @@ export default {
name: 'InventoryLog',
components: {DateRangePicker, pagination, crudOperation, rrOperation, udOperation},
mixins: [presenter(), header(), form(defaultForm), crud()],
dicts: ['inv_log_type', 'inc_dec'],
dicts: ['inv_log_type', 'inc_dec','bonded_type'],
cruds() {
return CRUD({
title: 'inventoryLog', url: 'api/inventoryLog', idField: 'id', sort: 'id,desc', crudMethod: {...crudInventoryLog},

View File

@ -94,7 +94,9 @@
</el-table-column>
<el-table-column prop="item.extendD3" label="收容数" width="60px" align="center"/>
<el-table-column prop="point.code" label="制造库位" width="100px"/>
<el-table-column prop="propC2" label="税别"/>
<el-table-column prop="area.name" label="拣货库区" width="150px"/>
<el-table-column prop="ckPoint.code" label="拣货库位" width="150px"/>
<el-table-column prop="orderQty" label="订单数量"/>
<el-table-column prop="allocatedQty" label="分配数量"/>
<el-table-column prop="pickedQty" label="拣货数量"/>
@ -129,7 +131,7 @@
<!--表单组件-->
<el-dialog title="制造叫料" :visible.sync="cxjlFromFlag" width="500px" >
<el-form ref="cxjlFrom" :model="cxjlFrom" :rules="rules" size="small" label-width="80px">
<el-form-item label="制造库位" prop="zzkwCode" :rules=" { required: true, message: '制造库位不能为空', trigger: 'blur' }">
<el-form-item label="制造库位" prop="zzkwCode">
<BomAccountPointSelect v-model="cxjlFrom.zzkw_code" :value-key="'bom_account_id'" @change="getChangeVule"/>
</el-form-item>
<el-form-item label="品番">
@ -141,13 +143,15 @@
<el-form-item label="数量">
<el-input v-model="cxjlFrom.order_qty" />
</el-form-item>
<!--<el-form-item label="指示工厂">
<el-input v-model="cxjlFrom.gw_code" />
</el-form-item>-->
<el-form-item label="税别">
<el-input v-model="cxjlFrom.bonded"/>
</el-form-item>
<el-form-item label="叫料库区">
<el-input v-model="cxjlFrom.gw_name" />
</el-form-item>
<el-form-item label="箱单品番">
<el-checkbox v-model="cxjlFrom.beXdPf"/>
</el-form-item>
<el-form-item label="备注">
<el-input v-model="cxjlFrom.remark" :rows="3" type="textarea" style="width: 370px;"/>
</el-form-item>
@ -220,13 +224,16 @@ export default {
radio3: '未拣货',
items: [],
cxjlFromFlag: false,
cxjlFrom: { bom_account_id: null,order_qty:0, item_code:null, item_name:null, zzkw_id:null, zzkw_code:null, gw_code:null, gw_name:null, status:null, remark:null,srs:0 },
cxjlFrom: { bom_account_id: null,order_qty:0, item_code:null, item_name:null, zzkw_id:null, bonded:null,zzkw_code:null, gw_code:null, gw_name:null, status:null, remark:null,srs:0,beXdPf:false },
permission: {
},
rules: {
item: [
{required: true, message: '物料必填', trigger: 'blur'}
{required: true, message: '品番必填', trigger: 'blur'}
],
zzkwCode: [
{required: true, message: '制造库位必填', trigger: 'blur'}
]
},
itemListData: [],
@ -370,9 +377,11 @@ export default {
this.cxjlFrom.item_id=dben.item_id;
this.cxjlFrom.zzkw_id=dben.zzkw_id;
this.cxjlFrom.rk_id=dben.rk_id;
this.cxjlFrom.bonded=dben.bonded;
},
btnZzjl() {
console.log(this.cxjlFrom)
zzjl(this.cxjlFrom).then(res => {
if (res.status == 200) {
this.crud.notify(res.message, CRUD.NOTIFICATION_TYPE.SUCCESS)

View File

@ -4,7 +4,7 @@
<div class="head-container" v-loading="this.loading_add" element-loading-text="拼命加载中" element-loading-background="rgba(0, 0, 0, 0.1)">
<div v-if="crud.props.searchToggle">
<!-- 搜索 -->
<el-select v-model="query.stationType" clearable filterable placeholder="工位" style="width: 150px;" class="filter-item"
<!-- <el-select v-model="query.stationType" clearable filterable placeholder="工位" style="width: 150px;" class="filter-item"
@keyup.enter.native="crud.toQuery"
>
<el-option
@ -13,7 +13,8 @@
:label="baseStatus.label"
:value="baseStatus.value"
/>
</el-select>
</el-select>-->
<AreaSelect v-model="query.areaId" :value-key="'id'" :bexb=true placeholder="请选择库区" style="width: 150px;" class="filter-item" />
<el-input v-model="query.bigItemIdModes" clearable placeholder="型式品番" style="width: 150px;"
class="filter-item"
@keyup.enter.native="crud.toQuery"
@ -22,13 +23,13 @@
class="filter-item"
@keyup.enter.native="crud.toQuery"
/>
<el-input v-model="query.startNumber" clearable placeholder="起始机号" style="width: 150px;"
<!-- <el-input v-model="query.startNumber" clearable placeholder="起始机号" style="width: 150px;"
class="filter-item"
@keyup.enter.native="crud.toQuery"
/> <el-input v-model="query.endNumber" clearable placeholder="" style="width: 150px;"
class="filter-item"
@keyup.enter.native="crud.toQuery"
/>
/>-->
<el-select v-model="query.status" clearable placeholder="耗用状态" style="width: 120px;" class="filter-item"
@keyup.enter.native="crud.toQuery"
>
@ -71,7 +72,7 @@
:title="crud.status.title" width="500px" @close="fromeClose()"
>
<el-form ref="form" :model="form" :rules="rules" size="small" label-width="80px">
<el-form-item label="工位" prop="stationType" >
<!-- <el-form-item label="工位" prop="stationType" >
<el-select v-model="form.stationType" @change="getBigItem(form.stationType)" value-key="id" filterable
placeholder="请选择" style="width: 370px;"
>
@ -82,9 +83,12 @@
:value="item.value"
/>
</el-select>
</el-form-item>-->
<el-form-item label="库区" prop="shArea">
<AreaSelect v-model="form.shArea" :value-key="'id'" :bexb=true @change="getChangeVule"/>
</el-form-item>
<el-form-item label="型号品番" prop="bigItemId">
<el-select v-model="form.bigItemId" value-key="id" @change="getBigItemName(form.bigItemId.name)" filterable
<el-select v-model="form.bigItemId" value-key="id" @change="getBigItemName" filterable
placeholder="请选择" style="width: 370px;"
>
<el-option
@ -111,12 +115,15 @@
>
</el-date-picker>
</el-form-item>
<el-form-item label="起始机号" prop="startNumber">
<el-form-item label="刻印前缀" prop="kyQz">
<el-input v-model="form.kyQz" style="width: 370px;"/>
</el-form-item>
<!-- <el-form-item label="起始机号" prop="startNumber">
<el-input v-model="form.startNumber" style="width: 370px;"/>
</el-form-item>
<el-form-item label="结束机号" prop="endNumber">
<el-input v-model="form.endNumber" style="width: 370px;"/>
</el-form-item>
</el-form-item>-->
<el-form-item label="备注">
<el-input
type="textarea"
@ -150,11 +157,9 @@
@selection-change="crud.selectionChangeHandler" :height="crud.tableHeight" border @select="selectData" @select-all="selectAllData"
>
<el-table-column type="selection" width="55"/>
<el-table-column prop="station_type#stationType" label="工位" width="120">
<template slot-scope="scope">
{{ dict.label.station_type[scope.row.stationType] }}
</template>
</el-table-column>
<el-table-column prop="id" label="ID" width="80"/>
<el-table-column prop="shArea.code" label="库区" width="120"/>
<el-table-column prop="shArea.name" label="库区名称" width="120"/>
<el-table-column prop="date" label="下线日期">
<template slot-scope="scope">
{{ getFormatDate(scope.row.date) }}
@ -162,14 +167,15 @@
</el-table-column>
<el-table-column prop="bigItemId.code" label="型式品番" width="120"/>
<el-table-column prop="bigItemId.name" label="型式名" width="120"/>
<el-table-column prop="kyQz" label="刻印前缀" width="80"/>
<el-table-column prop="orderQuantity" label="数量" width="70"/>
<el-table-column prop="hy_status#status" label="状态" width="70">
<template slot-scope="scope">
{{ dict.label.hy_status[scope.row.status] }}
</template>
</el-table-column>
<el-table-column prop="startNumber" label="起始机号" width="80"/>
<el-table-column prop="endNumber" label="结束机号" width="80"/>
<!--<el-table-column prop="startNumber" label="起始机号" width="80"/>
<el-table-column prop="endNumber" label="结束机号" width="80"/>-->
<el-table-column prop="description" label="备注"/>
<el-table-column prop="updateTime" label="操作日期" width="140"/>
<el-table-column prop="updateBy" label="操作人" width="70"/>
@ -209,9 +215,12 @@ import rrOperation from '@crud/RR.operation'
import crudOperation from '@crud/CRUD.operation'
import udOperation from '@crud/UD.operation'
import pagination from '@crud/Pagination'
import { queryBigItemByStationType } from '@/api/bomAccount'
import {queryBigItemByStationType, queryByAreaId} from '@/api/bomAccount'
import { formatDate } from '@/utils/commonUtils'
import DateRangePicker from "@/components/DateRangePicker/index.vue";
import BomAccountPointSelect from "@/views/generic-component/BomAccountPointSelect.vue";
import AreaSelect from "@/views/generic-component/AreaSelect.vue";
import PointSelect from "@/views/generic-component/PointSelect.vue";
const defaultForm = {
id: null,
@ -227,11 +236,15 @@ const defaultForm = {
updateBy: null,
createTime: null,
updateTime: null,
deptId: null
deptId: null,
shArea: null,
kyQz:null,
}
export default {
name: 'Spareparts',
components: {DateRangePicker, pagination, crudOperation, rrOperation, udOperation },
components: {
PointSelect,
AreaSelect, BomAccountPointSelect, DateRangePicker, pagination, crudOperation, rrOperation, udOperation },
mixins: [presenter(), header(), form(defaultForm), crud()],
dicts: ['hy_status', 'station_type'],
cruds() {
@ -326,7 +339,10 @@ export default {
})
},
getBigItemName(dben) {
this.bigItemName = dben
console.log(dben)
this.bigItemName = dben.name
this.form.bigItemId.name = dben.name
this.form.kyQz=dben.kyQz;
},
doXiuGai(dben) {
this.getBigItem(dben.stationType)
@ -376,7 +392,15 @@ export default {
//
getFormatDate(data) {
return formatDate(data)
}
},
getChangeVule(dben) {
this.form.shAreaId = dben.id;
this.form.shArea=dben;
this.bigItems = null
queryByAreaId(this.form.shAreaId).then(res => {
this.bigItems = res
})
},
}
}
</script>

View File

@ -0,0 +1,84 @@
<template>
<el-select
v-model="selected"
@focus="fetchItems"
:placeholder="placeholder"
:filterable="filterable"
:value-key="valueKey"
:style="selectStyle"
@change="onChange"
>
<el-option
v-for="item in items"
:key="item.id"
:label="item.code"
:value="item"
>
<span>{{ item.code }}</span>
<span>{{ item.name }}</span>
</el-option>
</el-select>
</template>
<script>
import curdArea, {queryAreaList} from '@/api/area'
export default {
name: 'AreaSelect',
props: {
value: null, // v-model
placeholder: {
type: String,
default: '请选择库位'
},
filterable: {
type: Boolean,
default: true
},
valueKey: {
type: String,
default: 'id'
},
isEnabled:{
type: Boolean,
default: true
},
bexb:{
type: Boolean,
default: true
},
selectStyle: {
type: String,
default: 'width: 200px;'
}
},
data() {
return {
items: [],
selected: this.value
}
},
watch: {
value(val) {
this.selected = val
},
/* selected(val) {
this.$emit('input', val)
this.$emit('change', val)
}*/
},
methods: {
fetchItems() {
if (this.items.length === 0) {
curdArea.queryAreaList({ bexb: this.bexb }).then(res => {
this.items = res
})
}
},
onChange(val) {
this.$emit('change', val)
}
}
}
</script>

View File

@ -0,0 +1,95 @@
<template>
<el-select
v-model="selected"
@focus="fetchItems"
:placeholder="placeholder"
:filterable="filterable"
:value-key="valueKey"
:style="styles"
@change="onChange"
:filterMethod="filterMethod"
>
<el-option
v-for="item in items"
:key="item.id"
:label="item.code"
:value="item"
>
<span>{{ item.code }}</span>
<span>{{ item.name }}</span>
</el-option>
</el-select>
</template>
<script>
import crudItem, {queryBigItemAll} from '@/api/bigItem'
export default {
name: 'BigItemSelect',
props: {
value: null, // v-model
placeholder: {
type: String,
default: '请选择完成品品番'
},
filterable: {
type: Boolean,
default: true
},
valueKey: {
type: String,
default: 'id'
},
isEnabled:{
type: Boolean,
default: true
},
styles: {
type: String,
default: 'width: 200px;'
}
},
data() {
return {
items: [],
filteredItems: [],
selected: this.value
}
},
watch: {
value(val) {
this.selected = val
},
selected(val) {
this.$emit('input', val)
this.$emit('change', val)
}
},
methods: {
fetchItems() {
if (this.items.length === 0) {
queryBigItemAll({ enabled: this.isEnabled }).then(res => {
this.items = res
this.filteredItems = [...this.items];
})
}
},
onChange(val) {
this.$emit('change', val)
},
filterMethod(query) {
console.log(query)
if (!query) {
this.filteredItems = [...this.items];
return;
}
const lowerQuery = query.toLowerCase();
this.items = this.filteredItems.filter(item =>
item.code.toLowerCase().includes(lowerQuery) ||
item.name.toLowerCase().includes(lowerQuery)
);
},
}
}
</script>

View File

@ -0,0 +1,102 @@
<template>
<el-select
v-model="selected"
@focus="fetchItems"
:placeholder="placeholder"
:filterable="filterable"
:value-key="valueKey"
:style="styles"
@change="onChange"
:filterMethod="filterMethod"
>
<el-option
v-for="item in items"
:key="item.id"
:label="item.code"
:value="item"
>
<span>{{ item.code }}</span>
<span>{{ item.name }}</span>
</el-option>
</el-select>
</template>
<script>
import crudBillType, {queryBillTypeList} from '@/api/billType'
export default {
name: 'BillTypeSelect',
props: {
value: null, // v-model
placeholder: {
type: String,
default: '请选择单据类型'
},
filterable: {
type: Boolean,
default: true
},
valueKey: {
type: String,
default: 'id'
},
isEnabled:{
type: Boolean,
default: true
},
bill_code:{
type: String, //
default: '' //
},
styles: {
type: String,
default: 'width: 200px;'
}
},
data() {
return {
items: [],
filteredItems: [],
selected: this.value
}
},
watch: {
value: {
handler(val) {
this.selected = val;
},
immediate: true // selected
},
selected(val) {
this.$emit('input', val);
this.$emit('change', val);
}
},
methods: {
fetchItems() {
if (this.items.length === 0) {
queryBillTypeList({ code: this.bill_code }).then(res => {
this.items = res;
this.filteredItems = [...this.items];
});
}
},
onChange(val) {
console.log(val);
this.$emit('change', val);
},
filterMethod(query) {
if (!query) {
this.filteredItems = [...this.items];
return;
}
const lowerQuery = query.toLowerCase();
this.items = this.filteredItems.filter(item =>
item.code.toLowerCase().includes(lowerQuery) ||
item.name.toLowerCase().includes(lowerQuery)
);
}
}
}
</script>

View File

@ -5,7 +5,7 @@
:placeholder="placeholder"
:filterable="filterable"
:value-key="valueKey"
:style="style"
:style="styles"
@change="onChange"
:filterMethod="filterMethod"
>
@ -47,7 +47,7 @@ export default {
type: Boolean,
default: true
},
style: {
styles: {
type: String,
default: 'width: 200px;'
}

View File

@ -5,15 +5,19 @@
:placeholder="placeholder"
:filterable="filterable"
:value-key="valueKey"
:style="style"
:style="styles"
@change="onChange"
:filterMethod="filterMethod"
>
<el-option
v-for="item in items"
:key="item.id"
:label="item.code"
:value="item"
/>
>
<span>{{ item.code }}</span>
<span>{{ item.name }}</span>
</el-option>
</el-select>
</template>
@ -26,7 +30,7 @@ export default {
value: null, // v-model
placeholder: {
type: String,
default: '请选择物料'
default: '请选择部品品番'
},
filterable: {
type: Boolean,
@ -40,7 +44,7 @@ export default {
type: Boolean,
default: true
},
style: {
styles: {
type: String,
default: 'width: 200px;'
}
@ -48,6 +52,7 @@ export default {
data() {
return {
items: [],
filteredItems: [],
selected: this.value
}
},
@ -63,14 +68,27 @@ export default {
methods: {
fetchItems() {
if (this.items.length === 0) {
crudItem.getItemsList({ enabled: this.isEnabled }).then(res => {
getItemsList({ enabled: this.isEnabled }).then(res => {
this.items = res
this.filteredItems = [...this.items];
})
}
},
onChange(val) {
this.$emit('change', val)
},
filterMethod(query) {
if (!query) {
this.filteredItems = [...this.items];
return;
}
const lowerQuery = query.toLowerCase();
this.items = this.filteredItems.filter(item =>
item.code.toLowerCase().includes(lowerQuery) ||
item.name.toLowerCase().includes(lowerQuery)
);
},
}
}
</script>

View File

@ -65,10 +65,10 @@ export default {
value(val) {
this.selected = val
},
/* selected(val) {
selected(val) {
this.$emit('input', val)
this.$emit('change', val)
}*/
}
},
methods: {
fetchItems() {