rev:需求变更开发

This commit is contained in:
2026-01-05 19:15:57 +08:00
parent c057cffea9
commit 0c1619b6b7
36 changed files with 2053 additions and 132 deletions

View File

@@ -0,0 +1,438 @@
<template>
<el-dialog
title="退料组盘"
append-to-body
:visible.sync="dialogVisible"
:before-close="handleClose"
width="1200px"
destroy-on-close
@close="close"
@open="open"
>
<el-form ref="form2" :model="formMst" :rules="rules" size="mini" label-width="110px">
<el-row>
<el-col :span="8">
<el-form-item label="物料编码" prop="material_code">
<el-select
v-model="formMst.material_code"
size="mini"
placeholder="全部"
style="width: 220px"
class="filter-item"
filterable
@change="queryMater"
>
<el-option
v-for="item in materList"
:key="item.material_code"
:label="item.material_name"
:value="item.material_code"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="物料名称" prop="material_name">
<el-input v-model="formMst.material_name" disabled style="width: 220px;" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="物料规格" prop="material_spec">
<el-input v-model="formMst.material_spec" disabled style="width: 220px;" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="载具编码" prop="storagevehicle_code">
<el-input v-model="formMst.storagevehicle_code" style="width: 220px;" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="焊材批号" prop="pcsn">
<el-select
v-model="formMst.pcsn"
size="mini"
placeholder="全部"
style="width: 220px"
class="filter-item"
filterable
allow-create
>
<el-option
v-for="item in pcsnList"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="物料重量" prop="qty">
<el-input-number v-model="formMst.qty" :precision="2" :controls="false" :min="1" style="width: 220px" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="供应商" prop="supp_code">
<el-select
v-model="formMst.supp_code"
size="mini"
style="width: 220px;"
class="filter-item"
>
<el-option
v-for="item in suppList"
:label="item.supp_name"
:value="item.supp_code"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="有效日期" prop="quality_time">
<el-date-picker v-model="formMst.quality_time" type="date" placeholder="选择日期" style="width: 220px" value-format="yyyy-MM-dd" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="生产日期" prop="produce_time">
<el-date-picker v-model="formMst.produce_time" type="date" placeholder="选择日期" style="width: 220px" value-format="yyyy-MM-dd" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="烘干次数" prop="bake_num">
<el-input-number v-model="formMst.bake_num" :precision="0" :controls="false" :min="0" :max="3" style="width: 220px" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="品质类型" prop="quality_type">
<el-select
v-model="formMst.quality_type"
size="mini"
style="width: 220px;"
class="filter-item"
@change="crud.toQuery"
>
<el-option
v-for="item in dict.QUALITY_TYPE"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="料箱类型" prop="box_type">
<el-select
v-model="formMst.box_type"
size="mini"
style="width: 220px;"
class="filter-item"
@change="crud.toQuery"
>
<el-option
v-for="item in dict.storagevehicle_type"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="关联工单" prop="bom_list">
<el-select
v-model="formMst.bom_list"
multiple
size="mini"
style="width: 280px;"
class="filter-item"
>
<el-option
v-for="item in bomList"
:label="item.bom_code"
:value="item.bom_code"
>
<span style="float: left">{{ item.bom_code }}</span>
<span style="float: right; color: #8492a6; font-size: 13px">{{'可退重量:'+ item.real_weigh_qty }}</span>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="机台编码" prop="device_code">
<el-select
v-model="formMst.device_code"
size="mini"
style="width: 220px;"
class="filter-item"
@change="crud.toQuery"
>
<el-option
v-for="item in deviceList"
:key="item.device_code"
:label="item.device_code"
:value="item.device_code"
/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="执行标准" prop="execution_stand">
<el-input v-model="formMst.execution_stand" style="width: 380px;" rows="2" type="textarea" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="备注" prop="remark">
<label slot="label">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</label>
<el-input v-model="formMst.remark" style="width: 380px;" rows="2" type="textarea" />
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-row :gutter="24" style="padding-top: 20px">
<el-col :span="20" style="border: 1px solid white">
<span />
</el-col>
<el-col :span="4">
<span>
<el-button icon="el-icon-check" size="mini" type="primary" @click="outReceiveGroup">保存</el-button>
<el-button icon="el-icon-close" size="mini" type="info" @click="close">关闭</el-button>
</span>
</el-col>
</el-row>
<el-row :gutter="18">
<el-col :span="18" style="border: 10px solid white">
<span />
</el-col>
</el-row>
</el-dialog>
</template>
<script>
import CRUD, { crud } from '@crud/crud'
import crudGroup from '@/views/wms/basedata/group/group'
import crudDeviceinfo from '@/views/wms/basedata/deviceInfo/deviceinfo'
import crudCallMaterial from '@/views/wms/pdm/callmaterial/callmaterial'
export default {
name: 'WeighDialog',
mixins: [crud()],
dicts: ['storagevehicle_type', 'QUALITY_TYPE'],
props: {
dialogShow: {
type: Boolean,
default: false
}
},
data() {
return {
formMst: {
group_id: null,
storagevehicle_code: null,
material_id: null,
pcsn: null,
qty_unit_id: null,
qty_unit_name: null,
qty: null,
remark: null,
status: null,
supp_code: null,
quality_time: null,
produce_time: new Date(),
execution_stand: null,
bake_num: 0,
quality_type: '1',
box_type: null,
create_id: null,
create_name: null,
create_time: null,
material_spec: null,
material_name: null,
device_code: null,
bom_list: []
},
suppList: [],
pcsnList: [],
materList: [],
deviceList: [],
bomList: [],
current: null,
dialogVisible: false,
rules: {
material_code: [
{ required: true, message: '物料不能为空', trigger: 'blur' }
],
storagevehicle_code: [
{ required: true, message: '载具不能为空', trigger: 'blur' }
],
pcsn: [
{ required: true, message: '批次不能为空', trigger: 'blur' }
],
qty: [
{ required: true, message: '物料重量不能为空', trigger: 'blur' }
],
supp_code: [
{ required: true, message: '供应商不能为空', trigger: 'blur' }
],
quality_time: [
{ required: true, message: '有效日期不能为空', trigger: 'blur' }
],
produce_time: [
{ required: true, message: '生产日期不能为空', trigger: 'blur' }
],
bom_list: [
{ required: true, message: '关联工单不能为空', trigger: 'blur' }
],
bake_num: [
{ required: true, message: '烘干次数不能为空', trigger: 'blur' }
],
quality_type: [
{ required: true, message: '品质类型不能为空', trigger: 'blur' }
],
device_code: [
{ required: true, message: '机台编码不能为空', trigger: 'blur' }
],
box_type: [
{ required: true, message: '料箱类型不能为空', trigger: 'blur' }
]
}
}
},
watch: {
dialogShow: {
handler(newValue, oldValue) {
this.dialogVisible = newValue
this.formMst.storagevehicle_code = ''
this.formMst.qty = 1
}
}
},
methods: {
handleClose(done) {
this.$confirm('确认关闭?')
.then(_ => {
done()
})
.catch(_ => {
})
},
close() {
this.$refs['form2'].resetFields()
this.$emit('update:dialogShow', false)
this.crud.toQuery()
},
open() {
crudGroup.querySupp({}).then(row => {
this.suppList = row
})
crudGroup.queryMaterList({}).then(res => {
this.materList = res
})
crudGroup.getPcsn({}).then(res => {
this.pcsnList = res.data
})
crudDeviceinfo.getDevice({}).then(res => {
this.deviceList = res
})
},
outReceiveGroup() {
if (!this.formMst.material_id) {
this.crud.notify('物料不能为空!', CRUD.NOTIFICATION_TYPE.INFO)
return
}
if (!this.formMst.storagevehicle_code) {
this.crud.notify('载具不能为空!', CRUD.NOTIFICATION_TYPE.INFO)
return
}
if (!this.formMst.pcsn) {
this.crud.notify('批号不能为空!', CRUD.NOTIFICATION_TYPE.INFO)
return
}
if (!this.formMst.supp_code) {
this.crud.notify('供应商不能为空!', CRUD.NOTIFICATION_TYPE.INFO)
return
}
if (!this.formMst.quality_time) {
this.crud.notify('有效日期不能为空!', CRUD.NOTIFICATION_TYPE.INFO)
return
}
if (!this.formMst.produce_time) {
this.crud.notify('生产日期不能为空!', CRUD.NOTIFICATION_TYPE.INFO)
return
}
if (!this.formMst.box_type) {
this.crud.notify('料箱类型不能为空!', CRUD.NOTIFICATION_TYPE.INFO)
return
}
if (this.formMst.bom_list.length === 0) {
this.crud.notify('关联工单不能为空!', CRUD.NOTIFICATION_TYPE.INFO)
return
}
if (!this.formMst.device_code) {
this.crud.notify('机台编码不能为空!', CRUD.NOTIFICATION_TYPE.INFO)
return
}
crudGroup.outReceiveGroup(this.formMst).then(row => {
this.crud.notify('操作成功!', CRUD.NOTIFICATION_TYPE.SUCCESS)
this.close()
this.crud.toQuery()
})
},
queryMater(value) {
crudGroup.queryMater({ 'material_code': value }).then(row => {
this.formMst.material_spec = row.material_spec
this.formMst.material_name = row.material_name
this.formMst.material_id = row.material_id
// 查询工单信息
crudCallMaterial.queryMaterialBom({ 'material_id': this.formMst.material_id }).then(res => {
if (res.length === 0) {
this.formMst.bom_list = []
}
this.bomList = res
})
}).catch(() => {
this.formMst.material_spec = ''
this.formMst.material_name = ''
this.formMst.material_code = ''
this.formMst.material_id = ''
})
}
}
}
</script>
<style>
.crud-opts2 .crud-opts-right2 {
margin-left: auto;
padding: 4px 4px;
}
.input-with-select {
background-color: #fff;
}
</style>

View File

@@ -88,4 +88,13 @@ export function getPcsn(data) {
})
}
export default { add, edit, del, queryMater, queryMaterList, checkVehicle, querySupp, copySave, printDelete, excelImport, getPcsn }
export function outReceiveGroup(data) {
return request({
url: 'api/group/outReceiveGroup',
method: 'post',
data
})
}
export default { add, edit, del, queryMater, queryMaterList, checkVehicle,
querySupp, copySave, printDelete, excelImport, getPcsn, outReceiveGroup }

View File

@@ -70,6 +70,16 @@
>
复制新增
</el-button>
<el-button
slot="right"
class="filter-item"
type="primary"
icon="el-icon-plus"
size="mini"
@click="openReceiveDialog = true"
>
退料组盘
</el-button>
<el-button
slot="right"
class="filter-item"
@@ -355,12 +365,14 @@
</div>
<AddDtl :dialog-show.sync="openAddDtlDialog" :open-param="openParam" />
<UploadDialog :dialog-show.sync="viewShow" />
<AddReceiveDtl :dialog-show.sync="openReceiveDialog" />
</div>
</template>
<script>
import crudGroup from '@/views/wms/basedata/group/group'
import AddDtl from '@/views/wms/basedata/group/AddDtl'
import AddReceiveDtl from '@/views/wms/basedata/group/AddReceiveDtl'
import UploadDialog from '@/views/wms/basedata/group/UploadDialog'
import CRUD, { crud, form, header, presenter } from '@crud/crud'
import crudOperation from '@crud/CRUD.operation'
@@ -391,11 +403,12 @@ const defaultForm = {
create_name: null,
create_time: null,
material_spec: null,
bom_list: null,
material_name: null
}
export default {
name: 'Group',
components: { pagination, crudOperation, rrOperation, udOperation, AddDtl, UploadDialog },
components: { pagination, crudOperation, rrOperation, udOperation, AddDtl, UploadDialog, AddReceiveDtl },
mixins: [presenter(), header(), form(defaultForm), crud()],
// 数据字典
dicts: ['is_used', 'GROUP_STATUS', 'storagevehicle_type', 'QUALITY_TYPE'],
@@ -420,6 +433,7 @@ export default {
permission: {},
openParam: {},
openAddDtlDialog: false,
openReceiveDialog: false,
printVisible: false,
viewShow: false,
suppList: [],
@@ -470,6 +484,12 @@ export default {
[CRUD.HOOK.beforeRefresh]() {
return true
},
// 编辑之前
[CRUD.HOOK.beforeToEdit]() {
if (this.form.bom_list !== '') {
this.form.bom_list = JSON.parse(this.form.bom_list)
}
},
queryMater(value) {
crudGroup.queryMater({ 'material_code': value }).then(row => {
this.form.material_spec = row.material_spec

View File

@@ -40,4 +40,12 @@ export function startBom(data) {
})
}
export default { add, edit, del, confirm, startBom }
export function queryMaterialBom(data) {
return request({
url: 'api/bomCallMaterial/queryMaterialBom',
method: 'post',
data
})
}
export default { add, edit, del, confirm, startBom, queryMaterialBom }

View File

@@ -145,6 +145,7 @@
<el-table-column prop="out_qty" label="出库重量" :formatter="crud.formatNum3" :min-width="100" />
<el-table-column prop="weigh_qty" label="称重重量" :formatter="crud.formatNum3" :min-width="100" />
<el-table-column prop="device_code" label="机台编码" :min-width="flexWidth('device_code',crud.data,'机台编码')" />
<el-table-column prop="remark" label="备注" :min-width="flexWidth('remark',crud.data,'备注')" />
<el-table-column prop="create_name" label="创建人" :min-width="flexWidth('create_name',crud.data,'叫料人')" />
<el-table-column prop="create_time" label="创建时间" :min-width="flexWidth('create_time',crud.data,'叫料时间')" />
<el-table-column prop="confirm_time" label="结束时间" :min-width="flexWidth('confirm_time',crud.data,'结束时间')" />

View File

@@ -0,0 +1,135 @@
<template>
<el-dialog
title="直接退料"
append-to-body
:visible.sync="dialogVisible"
:before-close="handleClose"
width="600px"
destroy-on-close
@close="close"
@open="open"
>
<el-form ref="form2" :model="formMst" :rules="rules" size="mini" label-width="130px">
<el-row>
<el-col :span="8">
<el-form-item label="退料载具:">
<el-select
v-model="formMst.vehicle_code"
size="mini"
placeholder="全部"
style="width: 200px"
class="filter-item"
filterable
allow-create
>
<el-option
v-for="item in vehicleList"
:key="item.vehicle_code"
:label="item.vehicle_code"
:value="item.vehicle_code"
/>
</el-select>
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-row :gutter="24">
<el-col :span="14" style="border: 1px solid white">
<span />
</el-col>
<el-col :span="4">
<span>
<el-button icon="el-icon-close" size="mini" type="info" @click="close">关闭</el-button>
</span>
</el-col>
<el-col :span="4">
<span>
<el-button icon="el-icon-check" size="mini" type="primary" @click="confirmReceive">确认</el-button>
</span>
</el-col>
</el-row>
<el-row :gutter="18">
<el-col :span="18" style="border: 10px solid white">
<span />
</el-col>
</el-row>
</el-dialog>
</template>
<script>
import CRUD, { crud } from '@crud/crud'
import crudSchBasePoint from '@/views/wms/sch/point/schBasePoint'
export default {
name: 'ConfirmReceiveDialog',
mixins: [crud()],
dicts: [],
props: {
dialogShow: {
type: Boolean,
default: false
}
},
watch: {
dialogShow: {
handler(newValue, oldValue) {
this.dialogVisible = newValue
}
}
},
data() {
return {
formMst: {
},
vehicleList: [],
dialogVisible: false
}
},
methods: {
handleClose(done) {
this.$confirm('确认关闭?')
.then(_ => {
done()
})
.catch(_ => {
})
},
close() {
this.$refs['form2'].resetFields()
this.$emit('update:dialogShow', false)
},
confirmReceive() {
crudSchBasePoint.confirmReceive(this.formMst).then(res => {
this.crud.toQuery()
this.crud.notify('操作成功', CRUD.NOTIFICATION_TYPE.SUCCESS)
this.formMst = {}
this.close()
})
},
open() {
crudSchBasePoint.getVehicleCode().then(res => {
this.vehicleList = res
})
}
}
}
</script>
<style>
.crud-opts2 {
padding: 0 0;
display: -webkit-flex;
display: flex;
align-items: center;
}
.crud-opts2 .crud-opts-right2 {
margin-left: auto;
padding: 4px 4px;
}
.input-with-select {
background-color: #fff;
}
</style>

View File

@@ -0,0 +1,135 @@
<template>
<el-dialog
title="二次退料"
append-to-body
:visible.sync="dialogVisible"
:before-close="handleClose"
width="600px"
destroy-on-close
@close="close"
@open="open"
>
<el-form ref="form2" :model="formMst" :rules="rules" size="mini" label-width="130px">
<el-row>
<el-col :span="8">
<el-form-item label="退料载具:">
<el-select
v-model="formMst.vehicle_code"
size="mini"
placeholder="全部"
style="width: 200px"
class="filter-item"
filterable
allow-create
>
<el-option
v-for="item in vehicleList"
:key="item.vehicle_code"
:label="item.vehicle_code"
:value="item.vehicle_code"
/>
</el-select>
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-row :gutter="24">
<el-col :span="14" style="border: 1px solid white">
<span />
</el-col>
<el-col :span="4">
<span>
<el-button icon="el-icon-close" size="mini" type="info" @click="close">关闭</el-button>
</span>
</el-col>
<el-col :span="4">
<span>
<el-button icon="el-icon-check" size="mini" type="primary" @click="confirmReceive">确认</el-button>
</span>
</el-col>
</el-row>
<el-row :gutter="18">
<el-col :span="18" style="border: 10px solid white">
<span />
</el-col>
</el-row>
</el-dialog>
</template>
<script>
import CRUD, { crud } from '@crud/crud'
import crudSchBasePoint from '@/views/wms/sch/point/schBasePoint'
export default {
name: 'ConfirmReceiveDialog',
mixins: [crud()],
dicts: [],
props: {
dialogShow: {
type: Boolean,
default: false
}
},
watch: {
dialogShow: {
handler(newValue, oldValue) {
this.dialogVisible = newValue
}
}
},
data() {
return {
formMst: {
},
vehicleList: [],
dialogVisible: false
}
},
methods: {
handleClose(done) {
this.$confirm('确认关闭?')
.then(_ => {
done()
})
.catch(_ => {
})
},
close() {
this.$refs['form2'].resetFields()
this.$emit('update:dialogShow', false)
},
confirmReceive() {
crudSchBasePoint.confirmTwoReceive(this.formMst).then(res => {
this.crud.toQuery()
this.crud.notify('操作成功', CRUD.NOTIFICATION_TYPE.SUCCESS)
this.formMst = {}
this.close()
})
},
open() {
crudSchBasePoint.getTwoVehicleCode().then(res => {
this.vehicleList = res
})
}
}
}
</script>
<style>
.crud-opts2 {
padding: 0 0;
display: -webkit-flex;
display: flex;
align-items: center;
}
.crud-opts2 .crud-opts-right2 {
margin-left: auto;
padding: 4px 4px;
}
.input-with-select {
background-color: #fff;
}
</style>

View File

@@ -53,6 +53,26 @@
>
确认放货
</el-button>
<el-button
slot="right"
class="filter-item"
type="success"
icon="el-icon-position"
size="mini"
@click="reveiveDialog = true"
>
直接退料
</el-button>
<el-button
slot="right"
class="filter-item"
type="success"
icon="el-icon-position"
size="mini"
@click="twoReveiveDialog = true"
>
二次退料
</el-button>
</crudOperation>
<!--表格渲染-->
<el-table
@@ -82,12 +102,16 @@
<pagination />
</div>
<PutConfirmDialog :dialog-show.sync="openParamDialog" :open-param="openParam" />
<ConfirmReceiveDialog :dialog-show.sync="reveiveDialog" />
<TwoReceiveDialog :dialog-show.sync="twoReveiveDialog" />
</div>
</template>
<script>
import crudSchBasePoint from '@/views/wms/sch/point/schBasePoint'
import PutConfirmDialog from '@/views/wms/sch/pickandplace/PutConfirmDialog'
import ConfirmReceiveDialog from '@/views/wms/sch/pickandplace/ConfirmReceiveDialog'
import TwoReceiveDialog from '@/views/wms/sch/pickandplace/TwoReceiveDialog'
import CRUD, { crud, form, header, presenter } from '@crud/crud'
import rrOperation from '@crud/RR.operation'
import crudOperation from '@crud/CRUD.operation'
@@ -98,7 +122,7 @@ const defaultForm = {
}
export default {
name: 'PickAndPlace',
components: { pagination, crudOperation, rrOperation, PutConfirmDialog },
components: { pagination, crudOperation, rrOperation, PutConfirmDialog, ConfirmReceiveDialog, TwoReceiveDialog },
mixins: [presenter(), header(), form(defaultForm), crud()],
cruds() {
return CRUD({
@@ -118,6 +142,8 @@ export default {
return {
openParam: null,
openParamDialog: false,
reveiveDialog: false,
twoReveiveDialog: false,
permission: {},
rules: {
}

View File

@@ -88,5 +88,39 @@ export function cleanMaterial(data) {
})
}
export function getVehicleCode(data) {
return request({
url: 'api/schBasePoint/getVehicleCode',
method: 'post',
data: data
})
}
export function confirmReceive(data) {
return request({
url: 'api/schBasePoint/confirmReceive',
method: 'post',
data: data
})
}
export function getTwoVehicleCode(data) {
return request({
url: 'api/schBasePoint/getTwoVehicleCode',
method: 'post',
data: data
})
}
export function confirmTwoReceive(data) {
return request({
url: 'api/schBasePoint/confirmTwoReceive',
method: 'post',
data: data
})
}
export default { add, edit, del, changeUsed, getPointList, changeLock,
getConfirm, putConfirm, getPointDtl, cleanVehicle, cleanMaterial }
getConfirm, putConfirm, getPointDtl, cleanVehicle, cleanMaterial, getVehicleCode,
confirmReceive, getTwoVehicleCode, confirmTwoReceive
}

View File

@@ -149,7 +149,7 @@
<el-col :span="8">
<el-form-item label="载具编码" prop="vehicle_code">
<el-input v-model="form.vehicle_code" disabled style="width: 200px;">
<el-button slot="append" icon="el-icon-search" @click="queryIvt()" />
<el-button slot="append" icon="el-icon-search" @click="queryIvt()" style="color: #ff0000" />
</el-input>
</el-form-item>
</el-col>

View File

@@ -0,0 +1,157 @@
<template>
<el-dialog
title="呼叫退料空料箱"
append-to-body
:visible.sync="dialogVisible"
:before-close="handleClose"
width="500px"
destroy-on-close
@close="close"
@open="open"
>
<el-form ref="form2" :model="formMst" :rules="rules" size="mini" label-width="130px">
<el-row>
<el-col :span="8">
<el-form-item label="出库点位" prop="point_code">
<el-select
v-model="formMst.point_code"
clearable
placeholder="请选择"
class="filter-item"
style="width: 200px;"
>
<el-option
v-for="item in pointlist"
:key="item.point_code"
:label="item.point_name"
:value="item.point_code"
/>
</el-select>
</el-form-item>
<el-form-item label="出库库区" prop="sect_code">
<el-select
v-model="formMst.sect_code"
size="mini"
style="width: 200px;"
class="filter-item"
>
<el-option
v-for="item in dict.SECT_CODE"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-row :gutter="24">
<el-col :span="14" style="border: 1px solid white">
<span />
</el-col>
<el-col :span="4">
<span>
<el-button icon="el-icon-close" size="mini" type="info" @click="close">关闭</el-button>
</span>
</el-col>
<el-col :span="4">
<span>
<el-button icon="el-icon-check" size="mini" type="primary" @click="confirmOutEmp">确认</el-button>
</span>
</el-col>
</el-row>
<el-row :gutter="18">
<el-col :span="18" style="border: 10px solid white">
<span />
</el-col>
</el-row>
</el-dialog>
</template>
<script>
import CRUD, { crud } from '@crud/crud'
import crudPoint from '@/views/wms/sch/point/schBasePoint'
import crudVehicleOut from '@/views/wms/st/vehicleout/vehicleOut'
export default {
name: 'ConfirmReceiveDialog',
mixins: [crud()],
dicts: ['SECT_CODE'],
props: {
dialogShow: {
type: Boolean,
default: false
}
},
watch: {
dialogShow: {
handler(newValue, oldValue) {
this.dialogVisible = newValue
}
}
},
data() {
return {
formMst: {
},
pointlist: [],
dialogVisible: false
}
},
methods: {
handleClose(done) {
this.$confirm('确认关闭?')
.then(_ => {
done()
})
.catch(_ => {
})
},
close() {
this.$refs['form2'].resetFields()
this.$emit('update:dialogShow', false)
},
open() {
const area_type = 'INOUR01'
crudPoint.getPointList({ 'region_code': area_type }).then(res => {
this.pointlist = res
})
},
confirmOutEmp() {
if (!this.formMst.point_code) {
this.crud.notify('出库点位不能为空!', CRUD.NOTIFICATION_TYPE.ERROR)
return
}
if (!this.formMst.sect_code) {
this.crud.notify('出库库区不能为空!', CRUD.NOTIFICATION_TYPE.ERROR)
return
}
crudVehicleOut.confirmOutEmp(this.formMst).then(res => {
this.crud.toQuery()
this.crud.notify('操作成功', CRUD.NOTIFICATION_TYPE.SUCCESS)
this.close()
})
}
}
}
</script>
<style>
.crud-opts2 {
padding: 0 0;
display: -webkit-flex;
display: flex;
align-items: center;
}
.crud-opts2 .crud-opts-right2 {
margin-left: auto;
padding: 4px 4px;
}
.input-with-select {
background-color: #fff;
}
</style>

View File

@@ -24,7 +24,18 @@
</div>
<rrOperation />
<!--如果想在工具栏加入更多按钮可以使用插槽方式 slot = 'left' or 'right'-->
<crudOperation :permission="permission" />
<crudOperation :permission="permission">
<el-button
slot="right"
class="filter-item"
type="primary"
icon="el-icon-plus"
size="mini"
@click="CallOutReceiveDialog = true"
>
呼叫退料空料箱
</el-button>
</crudOperation>
<el-dialog
:close-on-click-modal="false"
:before-close="crud.cancelCU"
@@ -100,11 +111,13 @@
<!--分页组件-->
<pagination />
</div>
<CallOutReceiveDialog :dialog-show.sync="CallOutReceiveDialog" />
</div>
</template>
<script>
import crudVehicleOut from '@/views/wms/st/vehicleout/vehicleOut'
import CallOutReceiveDialog from '@/views/wms/st/vehicleout/CallOutReceiveDialog'
import CRUD, { crud, form, header, presenter } from '@crud/crud'
import crudOperation from '@crud/CRUD.operation'
import udOperation from '@crud/UD.operation'
@@ -119,7 +132,7 @@ const defaultForm = {
}
export default {
name: 'VehicleOut',
components: { pagination, crudOperation, rrOperation, udOperation },
components: { pagination, crudOperation, rrOperation, udOperation, CallOutReceiveDialog },
mixins: [presenter(), header(), form(defaultForm), crud()],
// 数据字典
dicts: ['SECT_CODE'],
@@ -142,6 +155,7 @@ export default {
data() {
return {
permission: {},
CallOutReceiveDialog: false,
taskStatusList: [],
pointlist: [],
rules: {

View File

@@ -24,4 +24,12 @@ export function edit(data) {
})
}
export default { add, edit, del }
export function confirmOutEmp(data) {
return request({
url: 'api/vehicleOut/confirmOutEmp',
method: 'post',
data
})
}
export default { add, edit, del, confirmOutEmp }