# Conflicts:
#	mes/hd/nladmin-system/src/main/java/org/nl/wms/mps_manage/ordermanage/controller/saleOrder/MpsSaleOrderController.java
#	mes/hd/nladmin-system/src/main/java/org/nl/wms/mps_manage/ordermanage/service/saleOrder/IMpsSaleOrderService.java
#	mes/hd/nladmin-system/src/main/java/org/nl/wms/mps_manage/ordermanage/service/saleOrder/dao/mapper/MpsSaleOrderMapper.java
#	mes/hd/nladmin-system/src/main/java/org/nl/wms/mps_manage/ordermanage/service/saleOrder/dao/mapper/xml/MpsSaleOrderMapper.xml
#	mes/hd/nladmin-system/src/main/java/org/nl/wms/mps_manage/ordermanage/service/saleOrder/impl/MpsSaleOrderServiceImpl.java
#	mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/controller/iostorInv/IStivtlostorivnCpOutController.java
#	mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/IStIvtIostorinvCpOutService.java
#	mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/impl/StIvtIostorinvCpOutServiceImpl.java
#	mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/structIvt/IStIvtStructivtCpService.java
#	mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/structIvt/impl/StIvtStructivtCpServiceImpl.java
#	mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/util/ChangeIvtUtil.java
#	mes/qd/src/views/wms/storage_manage/product/productIn/AddDtl.vue
#	mes/qd/src/views/wms/storage_manage/product/productOut/AddDialog.vue
#	mes/qd/src/views/wms/storage_manage/product/productOut/DivDialog.vue
#	mes/qd/src/views/wms/storage_manage/product/productOut/productout.js
This commit is contained in:
2023-05-25 20:40:39 +08:00
113 changed files with 1810 additions and 2254 deletions

View File

@@ -91,7 +91,7 @@
</el-select>
</el-form-item>
</el-col>
<rrOperation/>
<rrOperation />
</el-row>
</el-form>
</div>
@@ -132,19 +132,19 @@
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="仓位编码" prop="struct_code">
<el-input v-model="form.struct_code" style="width: 200px;"/>
<el-input v-model="form.struct_code" style="width: 200px;" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="仓位名称" prop="struct_name">
<el-input v-model="form.struct_name" style="width: 200px;"/>
<el-input v-model="form.struct_name" style="width: 200px;" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="仓位简称">
<el-input v-model="form.simple_name" style="width: 200px;"/>
<el-input v-model="form.simple_name" style="width: 200px;" />
</el-form-item>
</el-col>
<el-col :span="12">
@@ -163,7 +163,7 @@
<el-col :span="12">
<el-form-item label="载具号">
<label slot="label">载&nbsp;&nbsp;具&nbsp;号:</label>
<el-input v-model="form.storagevehicle_code" style="width: 200px;"/>
<el-input v-model="form.storagevehicle_code" style="width: 200px;" />
</el-form-item>
</el-col>
<el-col :span="12">
@@ -189,12 +189,12 @@
<el-col :span="12">
<el-form-item label="容量" prop="capacity">
<label slot="label">容&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;量:</label>
<el-input v-model="form.capacity" style="width: 200px;"/>
<el-input v-model="form.capacity" style="width: 200px;" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="承受重量" prop="weight">
<el-input v-model="form.weight" style="width: 200px;"/>
<el-input v-model="form.weight" style="width: 200px;" />
</el-form-item>
</el-col>
</el-row>
@@ -202,13 +202,13 @@
<el-col :span="12">
<el-form-item label="宽度" prop="width">
<label slot="label">宽&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;度:</label>
<el-input v-model="form.width" style="width: 200px;"/>
<el-input v-model="form.width" style="width: 200px;" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="深度" prop="zdepth">
<label slot="label">深&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;度:</label>
<el-input v-model="form.zdepth" style="width: 200px;"/>
<el-input v-model="form.zdepth" style="width: 200px;" />
</el-form-item>
</el-col>
</el-row>
@@ -216,7 +216,7 @@
<el-col :span="12">
<el-form-item label="高度" prop="height">
<label slot="label">高&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;度:</label>
<el-input v-model="form.height" style="width: 200px;"/>
<el-input v-model="form.height" style="width: 200px;" />
</el-form-item>
</el-col>
<el-col :span="12">
@@ -248,7 +248,7 @@
<el-col :span="12">
<el-form-item label="备注">
<label slot="label">备&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;注:</label>
<el-input v-model="form.remark" style="width: 550px;" rows="2" type="textarea"/>
<el-input v-model="form.remark" style="width: 550px;" rows="2" type="textarea" />
</el-form-item>
</el-col>
</el-row>
@@ -270,29 +270,29 @@
@select="handleSelectionChange"
@select-all="onSelectAll"
>
<el-table-column type="selection" width="55"/>
<el-table-column v-if="false" prop="workorder_id" label="生产班次工单标识"/>
<el-table-column prop="workorder_code" label="工单编号" width="140px"/>
<el-table-column type="selection" width="55" />
<el-table-column v-if="false" prop="workorder_id" label="生产班次工单标识" />
<el-table-column prop="workorder_code" label="工单编号" width="140px" />
<el-table-column prop="shift_type_scode" label="班次类型">
<template slot-scope="scope">
{{ dict.label.PDM_BI_SHIFTTYPE[scope.row.shift_type_scode] }}
</template>
</el-table-column>
<!-- <el-table-column prop="workprocedure_code" label="工序编码" />-->
<el-table-column prop="product_area" label="生产车间"/>
<el-table-column prop="plan_qty" label="计划数量"/>
<el-table-column prop="real_qty" label="实际数量"/>
<el-table-column prop="person_name" label="生产人员"/>
<el-table-column prop="person_real_qty" label="人员实际数量" width="100" show-overflow-tooltip/>
<el-table-column prop="dq_real_qty" label="电气实际数量" width="100" show-overflow-tooltip/>
<el-table-column prop="material_name" label="物料名称" width="120" show-overflow-tooltip/>
<el-table-column prop="workprocedure_name" label="工序名称" width="120" show-overflow-tooltip/>
<el-table-column prop="material_weight" label="物料单重" width="100" :formatter="crud.formatQlNum4"/>
<el-table-column prop="planproducestart_date" label="计划开始时间" width="100" show-overflow-tooltip/>
<el-table-column prop="planproduceend_date" label="计划结束时间" width="100" show-overflow-tooltip/>
<el-table-column prop="realproducestart_date" label="实际开始时间" width="100" show-overflow-tooltip/>
<el-table-column prop="realproduceend_date" label="实际结束时间" width="100" show-overflow-tooltip/>
<el-table-column prop="device_code" label="当前设备编码" width="100" show-overflow-tooltip/>
<el-table-column prop="product_area" label="生产车间" />
<el-table-column prop="plan_qty" label="计划数量" />
<el-table-column prop="real_qty" label="实际数量" />
<el-table-column prop="person_name" label="生产人员" />
<el-table-column prop="person_real_qty" label="人员实际数量" width="100" show-overflow-tooltip />
<el-table-column prop="dq_real_qty" label="电气实际数量" width="100" show-overflow-tooltip />
<el-table-column prop="material_name" label="物料名称" width="120" show-overflow-tooltip />
<el-table-column prop="workprocedure_name" label="工序名称" width="120" show-overflow-tooltip />
<el-table-column prop="material_weight" label="物料单重" width="100" :formatter="crud.formatQlNum4" />
<el-table-column prop="planproducestart_date" label="计划开始时间" width="100" show-overflow-tooltip />
<el-table-column prop="planproduceend_date" label="计划结束时间" width="100" show-overflow-tooltip />
<el-table-column prop="realproducestart_date" label="实际开始时间" width="100" show-overflow-tooltip />
<el-table-column prop="realproduceend_date" label="实际结束时间" width="100" show-overflow-tooltip />
<el-table-column prop="device_code" label="当前设备编码" width="100" show-overflow-tooltip />
<el-table-column prop="is_canupdate_update" label="操作工是否允许修改报工数量" width="200" show-overflow-tooltip>
<template slot-scope="scope">
{{ dict.label.IS_OR_NOT[scope.row.is_canupdate_update] }}
@@ -318,29 +318,29 @@
{{ dict.label.IS_OR_NOT[scope.row.is_error] }}
</template>
</el-table-column>
<el-table-column prop="error_info" label="异常信息" show-overflow-tooltip/>
<el-table-column prop="remark" label="备注"/>
<el-table-column prop="create_name" label="创建人" show-overflow-tooltip/>
<el-table-column prop="create_time" label="创建时间" show-overflow-tooltip/>
<el-table-column prop="update_name" label="修改人" show-overflow-tooltip/>
<el-table-column prop="update_time" label="修改时间" show-overflow-tooltip/>
<el-table-column prop="error_info" label="异常信息" show-overflow-tooltip />
<el-table-column prop="remark" label="备注" />
<el-table-column prop="create_name" label="创建人" show-overflow-tooltip />
<el-table-column prop="create_time" label="创建时间" show-overflow-tooltip />
<el-table-column prop="update_name" label="修改人" show-overflow-tooltip />
<el-table-column prop="update_time" label="修改时间" show-overflow-tooltip />
</el-table>
<!--分页组件-->
<pagination/>
<pagination />
</div>
</div>
</template>
<script>
import crudStructattr from '@/api/wms/basedata/st/structattr'
import CRUD, {crud, form, header, presenter} from '@crud/crud'
import CRUD, { crud, form, header, presenter } from '@crud/crud'
import rrOperation from '@crud/RR.operation'
import crudOperation from '@crud/CRUD.operation'
import udOperation from '@crud/UD.operation'
import pagination from '@crud/Pagination'
import crudSectattr from '@/api/wms/basedata/st/sectattr'
import crudProduceshiftorder from '@/views/wms/product_manage/workorder/produceshiftorder'
import {getLodop} from '@/assets/js/lodop/LodopFuncs'
import { getLodop } from '@/assets/js/lodop/LodopFuncs'
import orderExt from '@/views/wms/product_manage/workorder/orderExt'
const defaultForm = {
@@ -391,7 +391,7 @@ const defaultForm = {
export default {
name: 'Structattr',
dicts: ['ST_HEIGHT_TYPE', 'd_lock_type', 'SCH_TASK_TYPE_DTL', 'IS_OR_NOT', 'MPS_BD_ORDERSTATUS', 'WORKORDER_CREATE_TYPE', 'PDM_BI_SHIFTTYPE'],
components: {pagination, crudOperation, rrOperation, udOperation},
components: { pagination, crudOperation, rrOperation, udOperation },
mixins: [presenter(), header(), form(defaultForm), crud()],
cruds() {
return CRUD({
@@ -407,7 +407,7 @@ export default {
},
url: 'api/produceWorkorder',
idField: 'struct_id',
crudMethod: {...crudStructattr}
crudMethod: { ...crudStructattr }
})
},
data() {
@@ -433,42 +433,42 @@ export default {
permission: {},
rules: {
struct_id: [
{required: true, message: '仓位标识不能为空', trigger: 'blur'}
{ required: true, message: '仓位标识不能为空', trigger: 'blur' }
],
struct_code: [
{required: true, message: '仓位编码不能为空', trigger: 'blur'}
{ required: true, message: '仓位编码不能为空', trigger: 'blur' }
],
struct_name: [
{required: true, message: '仓位名称不能为空', trigger: 'blur'}
{ required: true, message: '仓位名称不能为空', trigger: 'blur' }
],
sect_id: [
{required: true, message: '库区标识不能为空', trigger: 'blur'}
{ required: true, message: '库区标识不能为空', trigger: 'blur' }
],
stor_id: [
{required: true, message: '仓库标识不能为空', trigger: 'blur'}
{ required: true, message: '仓库标识不能为空', trigger: 'blur' }
],
capacity: [
{required: false, message: '不能为空', trigger: 'blur'},
{validator: numberOne}
{ required: false, message: '不能为空', trigger: 'blur' },
{ validator: numberOne }
],
weight: [
{required: false, message: '不能为空', trigger: 'blur'},
{validator: numberOne}
{ required: false, message: '不能为空', trigger: 'blur' },
{ validator: numberOne }
],
width: [
{required: false, message: '不能为空', trigger: 'blur'},
{validator: numberOne}
{ required: false, message: '不能为空', trigger: 'blur' },
{ validator: numberOne }
],
height: [
{required: false, message: '不能为空', trigger: 'blur'},
{validator: numberOne}
{ required: false, message: '不能为空', trigger: 'blur' },
{ validator: numberOne }
],
zdepth: [
{required: false, message: '不能为空', trigger: 'blur'},
{validator: numberOne}
{ required: false, message: '不能为空', trigger: 'blur' },
{ validator: numberOne }
],
material_height_type: [
{required: true, message: '物料高度类型不能为空', trigger: 'blur'}
{ required: true, message: '物料高度类型不能为空', trigger: 'blur' }
]
}
}
@@ -568,23 +568,24 @@ export default {
}
orderExt.getExtList(this.currentRow).then(res => {
debugger
res.forEach((item) => {
const LODOP = getLodop()
LODOP.SET_SHOW_MODE('HIDE_DISBUTTIN_SETUP', 1)// 隐藏那些无效按钮
// 打印纸张大小设置https://www.it610.com/article/2094844.html
LODOP.SET_PRINT_PAGESIZE(1, '80mm', '50mm', '')
// LODOP.ADD_PRINT_RECT('0mm', '0mm', '48mm', '28mm', 0, 1)
LODOP.ADD_PRINT_BARCODE('10mm', '12mm', '60mm', '25mm', '128Auto', item.bar_code)
LODOP.SET_PRINT_STYLEA(0, 'ShowBarText', 0)
LODOP.ADD_PRINT_TEXT('35mm', '22mm', '40mm', '20mm', item.bar_code.substring(0, 9))
LODOP.SET_PRINT_STYLEA(0, 'FontSize', 20)
LODOP.ADD_PRINT_TEXT('42mm', '25mm', '40mm', '20mm', item.bar_code.substring(9, 16))
console.log(item.barcode)
LODOP.SET_PRINT_STYLEA(0, 'FontSize', 20)
LODOP.PRINT()// 打印
// LODOP.PREVIEW()
})
const item = res[0]
// res.forEach((item) => {
const LODOP = getLodop()
LODOP.SET_SHOW_MODE('HIDE_DISBUTTIN_SETUP', 1)// 隐藏那些无效按钮
// 打印纸张大小设置https://www.it610.com/article/2094844.html
LODOP.SET_PRINT_PAGESIZE(1, '80mm', '50mm', '')
// LODOP.ADD_PRINT_RECT('0mm', '0mm', '48mm', '28mm', 0, 1)
LODOP.ADD_PRINT_BARCODE('10mm', '12mm', '60mm', '25mm', '128Auto', item.bar_code)
LODOP.SET_PRINT_STYLEA(0, 'ShowBarText', 0)
LODOP.ADD_PRINT_TEXT('35mm', '22mm', '40mm', '20mm', item.bar_code.substring(0, 9))
LODOP.SET_PRINT_STYLEA(0, 'FontSize', 20)
LODOP.ADD_PRINT_TEXT('42mm', '25mm', '40mm', '20mm', item.bar_code.substring(9, 16))
console.log(item.barcode)
LODOP.SET_PRINT_STYLEA(0, 'FontSize', 20)
// LODOP.PRINT()// 打印
// LODOP.PREVIEW()
})
// })
this.crud.notify('打印成功', CRUD.NOTIFICATION_TYPE.SUCCESS)
this.crud.toQuery()
},

View File

@@ -2,7 +2,7 @@ import request from '@/utils/request'
export function add(data) {
return request({
url: 'api/produceWorkorder/create',
url: 'api/produceWorkorder',
method: 'post',
data
})

View File

@@ -47,10 +47,10 @@
@select-all="onSelectAll"
>
<el-table-column type="selection" width="55" />
<el-table-column prop="struct_code" label="位编码" />
<el-table-column prop="struct_name" label="位名称" />
<el-table-column prop="sect_code" label="库区编码" />
<el-table-column prop="sect_name" label="库区名称" />
<el-table-column prop="point_code" label="位编码" />
<el-table-column prop="point_name" label="位名称" />
<el-table-column prop="region_name" label="区域名称" />
<el-table-column prop="product_area" label="生产车间" />
</el-table>
<!--分页组件-->
<pagination />
@@ -66,20 +66,20 @@
import CRUD, { header, presenter } from '@crud/crud'
import rrOperation from '@crud/RR.operation'
import pagination from '@crud/Pagination'
import crudStructattr from '@/api/wms/basedata/st/structattr'
import crudRegion from '@/views/wms/scheduler_manage/region/region'
export default {
name: 'StructDialog',
components: { rrOperation, pagination },
cruds() {
return CRUD({
title: '位',
title: '位',
optShow: {},
url: 'api/structattr',
idField: 'struct_code',
sort: 'struct_code,ASC',
url: 'api/region/getPointQuery',
idField: 'region_code',
sort: 'region_code,desc',
query: { search: '', is_lock: '1', lock_type: '', sect_id: '', stor_id: '' },
crudMethod: { ...crudStructattr }
crudMethod: { ...crudRegion }
})
},
mixins: [presenter(), header()],

View File

@@ -1,20 +1,14 @@
<template>
<div class="app-container">
<!--表单组件-->
<el-dialog
append-to-body
:close-on-click-modal="false"
:before-close="crud.cancelCU"
:visible="crud.status.cu > 0"
:title="crud.status.title"
width="500px"
>
<el-dialog append-to-body :close-on-click-modal="false" :before-close="crud.cancelCU" :visible="crud.status.cu > 0"
:title="crud.status.title" width="500px">
<el-form ref="form" :model="form" :rules="rules" size="mini" label-width="80px">
<el-form-item label="物料系列/生产区域" prop="code">
<el-input v-model="form.rule_code" style="width: 370px;" />
<el-form-item label="物料系列" prop="code">
<el-input v-model="form.material_spec" style="width: 370px;"/>
</el-form-item>
<el-form-item label="工序调度编号">
<el-input v-model="form.process_id" style="width: 370px;" />
<el-input v-model="form.process_id" style="width: 370px;"/>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
@@ -28,18 +22,11 @@
<div class="head-container">
<div v-if="crud.props.searchToggle">
<!-- 搜索 -->
<el-input
v-model="query.blurry"
clearable
size="mini"
placeholder="输入名称或者描述搜索"
style="width: 200px;"
class="filter-item"
@keyup.enter.native="crud.toQuery"
/>
<rrOperation />
<el-input v-model="query.blurry" clearable size="mini" placeholder="输入名称或者描述搜索" style="width: 200px;"
class="filter-item" @keyup.enter.native="crud.toQuery"/>
<rrOperation/>
</div>
<crudOperation :permission="permission" />
<crudOperation :permission="permission"/>
</div>
<!--表格渲染-->
<el-table
@@ -49,19 +36,13 @@
highlight-current-row
style="width: 100%;"
@selection-change="crud.selectionChangeHandler"
@current-change="handleCurrentChange"
>
<el-table-column type="selection" width="55" />
<el-table-column show-overflow-tooltip prop="rule_code" label="物料系列" />
<el-table-column show-overflow-tooltip prop="process_id" label="工序调度编号" />
<el-table-column show-overflow-tooltip prop="process_name" label="工序调度名称" />
<el-table-column
v-permission="['admin','dict:edit','dict:del']"
label="操作"
width="130px"
align="center"
fixed="right"
>
@current-change="handleCurrentChange">
<el-table-column type="selection" width="55"/>
<el-table-column show-overflow-tooltip prop="material_spec" label="物料系列"/>
<el-table-column show-overflow-tooltip prop="process_id" label="工序调度编号"/>
<el-table-column show-overflow-tooltip prop="process_name" label="工序调度名称"/>
<el-table-column v-permission="['admin','dict:edit','dict:del']" label="操作" width="130px" align="center"
fixed="right">
<template slot-scope="scope">
<udOperation
:data="scope.row"
@@ -71,39 +52,39 @@
</el-table-column>
</el-table>
<!--分页组件-->
<pagination />
<pagination/>
</el-card>
</div>
</template>
<script>
import crudRoute from '@/views/wms/scheduler_manage/scheduler/schedulerRoute.js'
import CRUD, { presenter, header, form } from '@crud/crud'
import CRUD, {presenter, header, form} from '@crud/crud'
import crudOperation from '@crud/CRUD.operation'
import pagination from '@crud/Pagination'
import rrOperation from '@crud/RR.operation'
import udOperation from '@crud/UD.operation'
const defaultForm = { rule_code: null, process_id: null, process_name: null }
const defaultForm = {material_spec: null, process_id: null, process_name: null}
export default {
name: 'SchedulerRoute',
components: { crudOperation, pagination, rrOperation, udOperation },
components: {crudOperation, pagination, rrOperation, udOperation},
cruds() {
return [
CRUD({ title: '物料对应工序调度', url: '/api/shceduler/route', idField: 'rule_code', crudMethod: { ...crudRoute }})
CRUD({title: '物料对应工序调度', url: '/api/shceduler/route', idField: 'material_spec', crudMethod: {...crudRoute}})
]
},
mixins: [presenter(), header(), form(defaultForm)],
data() {
return {
queryTypeOptions: [
{ key: 'name', display_name: '字典名称' },
{ key: 'description', display_name: '描述' }
{key: 'name', display_name: '字典名称'},
{key: 'description', display_name: '描述'}
],
rules: {
rule_code: [
{ required: true, message: '请输入编码', trigger: 'blur' }
material_spec: [
{required: true, message: '请输入编码', trigger: 'blur'}
]
},
permission: {

View File

@@ -62,6 +62,28 @@
/>
</el-select>
</el-form-item>
<el-form-item label="车间" prop="workshop_id">
<label slot="label">车间</label>
<el-select
v-model="form.workshop_id"
clearable
size="mini"
placeholder="全部"
class="filter-item"
@change="crud.toQuery"
>
<el-option
v-for="item in dict.product_area"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="仓位" prop="struct_id">
<label slot="label">仓位:</label>
<el-input v-model="form.struct_id" size="mini" disabled style="width: 210px" />
</el-form-item>
<el-form-item label="单据状态" prop="bill_status">
<el-select
v-model="form.bill_status"
@@ -204,7 +226,7 @@ import CRUD, { crud, form } from '@crud/crud'
import crudProductIn from '@/views/wms/storage_manage/product/productIn/productin'
import MaterDtl from '@/views/wms/pub/MaterDialog'
import AddDtl from '@/views/wms/storage_manage/product/productIn/AddDtl'
import crudStorattr, {getStor} from '@/views/wms/storage_manage/basedata/basedata'
import crudStorattr from "@/api/wms/basedata/st/storattr"
const defaultForm = {
bill_code: '',
@@ -266,7 +288,7 @@ export default {
},
methods: {
open() {
crudStorattr.getStor({ 'stor_type': '4' }).then(res => {
crudStorattr.queryStor().then(res => {
this.storlist = res.content
})
},

View File

@@ -208,18 +208,6 @@
<el-table-column show-overflow-tooltip prop="struct_code" label="货位" align="center" />
<el-table-column show-overflow-tooltip prop="point_code" label="入库点" align="center" />
<el-table-column show-overflow-tooltip prop="task_code" label="任务号" align="center" />
<el-table-column align="center" label="操作" width="170" fixed="right">
<template scope="scope">
<el-button
type="danger"
class="filter-item"
size="mini"
:disabled="disabledIos(scope.row)"
icon="el-icon-delete"
@click.native.prevent="deleteRow(scope.$index, form.tableMater)"
/>
</template>
</el-table-column>
</el-table>
</el-card>
@@ -297,14 +285,6 @@ export default {
}
},
methods: {
disabledIos(row) {
debugger
if (row.iostorinvdis_id === undefined) {
return false
} else {
return true
}
},
open() {
crudSectattr.getSect({ 'stor_id': this.storId }).then(res => {
this.sects = res.content
@@ -401,9 +381,6 @@ export default {
this.form.tableMater.splice(-1, 0, item)
}
},
deleteRow(index, rows) {
rows.splice(index, 1)
},
tableRowClassName({ row, rowIndex }) {
row.index = rowIndex
},
@@ -464,14 +441,9 @@ export default {
return
}
crudProductIn.confirmvehicle(this.form).then(res => {
crudProductIn.getIosInvDtl({ 'iostorinv_id': this.form.dtl_row.iostorinv_id }).then(res => {
this.form.vehicle_code = ''
this.form.bucketunique = ''
this.openParam = res
this.form.tableMater = []
this.dis_row = null
this.crud.notify('组盘成功!', CRUD.NOTIFICATION_TYPE.SUCCESS)
})
this.crud.notify('组盘成功!', CRUD.NOTIFICATION_TYPE.SUCCESS)
this.form.vehicle_code = ''
this.form.bucketunique = ''
})
},
@@ -515,6 +487,25 @@ export default {
row.qty = row.storage_qty
this.bucketuniqueObj = row
},
divPoint() {
if (!this.form.point_code) {
this.crud.notify('请选择入库点', CRUD.NOTIFICATION_TYPE.INFO)
return
}
if (this.form.tableMater.length === 0) {
this.crud.notify('请先选择一条明细!', CRUD.NOTIFICATION_TYPE.INFO)
return
}
crudProductIn.divPoint(this.form).then(res => {
crudProductIn.getIODtl({ 'iostorinv_id': this.form.dtl_row.iostorinv_id, 'open_flag': '1' }).then(res => {
this.openParam = res
})
crudProductIn.getDisDtl(this.form.dtl_row).then(res => {
this.form.tableMater = res
this.crud.notify('设置起点成功!', CRUD.NOTIFICATION_TYPE.SUCCESS)
})
})
},
divStruct() {
if (this.dis_row === null) {
this.crud.notify('请先选择一条分配明细!', CRUD.NOTIFICATION_TYPE.INFO)
@@ -528,16 +519,17 @@ export default {
if (this.form.checked) {
this.divBtn = true
debugger
this.dis_row.stor_id = this.stor_id
this.dis_row.sect_id = this.sect_id
crudProductIn.divStruct(this.dis_row).then(res => {
crudProductIn.getIosInvDtl({ 'iostorinv_id': this.dis_row.iostorinv_id }).then(res => {
/* crudProductIn.getIODtl({ 'iostorinv_id': this.form.dtl_row.iostorinv_id, 'open_flag': '1' }).then(res => {
this.openParam = res
this.form.tableMater = []
this.dis_row = null
this.crud.notify('分配成功!', CRUD.NOTIFICATION_TYPE.SUCCESS)
})
crudProductIn.getDisDtl(this.form.dtl_row).then(res => {
this.form.tableMater = res
this.divBtn = false
this.crud.notify('分配货位成功!', CRUD.NOTIFICATION_TYPE.SUCCESS)
})*/
}).finally(() => {
this.divBtn = false
})
@@ -547,36 +539,23 @@ export default {
}
},
unDivStruct() {
if (this.dis_row === null) {
this.crud.notify('请先选择一条分配明细!', CRUD.NOTIFICATION_TYPE.INFO)
if (this.form.tableMater.length <= 0) {
this.crud.notify('不存在载具明细!', CRUD.NOTIFICATION_TYPE.INFO)
return
}
crudProductIn.unDivStruct(this.dis_row).then(res => {
crudProductIn.getIosInvDtl({ 'iostorinv_id': this.dis_row.iostorinv_id }).then(res => {
const flag = this.form.tableMater.some(mater => !mater.struct_code)
if (flag) {
this.crud.notify('明细存在未分配货位!', CRUD.NOTIFICATION_TYPE.INFO)
return
}
// 如果勾选了,直接跳后台
crudProductIn.unDivStruct(this.form).then(res => {
crudProductIn.getIODtl({ 'iostorinv_id': this.form.dtl_row.iostorinv_id, 'open_flag': '1' }).then(res => {
this.openParam = res
this.form.tableMater = []
this.dis_row = null
this.crud.notify('取消成功!', CRUD.NOTIFICATION_TYPE.SUCCESS)
})
})
},
divPoint() {
if (!this.form.point_code) {
this.crud.notify('请选择入库点', CRUD.NOTIFICATION_TYPE.INFO)
return
}
if (this.dis_row === null) {
this.crud.notify('请先选择一条明细!', CRUD.NOTIFICATION_TYPE.INFO)
return
}
this.dis_row.point_code = this.form.point_code
crudProductIn.setPoint(this.dis_row).then(res => {
crudProductIn.getIosInvDtl({ 'iostorinv_id': this.dis_row.iostorinv_id }).then(res => {
this.openParam = res
this.form.tableMater = []
this.dis_row = null
this.crud.notify('操作成功!', CRUD.NOTIFICATION_TYPE.SUCCESS)
crudProductIn.getDisDtl(this.form.dtl_row).then(res => {
this.form.tableMater = res
this.crud.notify('取消分配成功!', CRUD.NOTIFICATION_TYPE.SUCCESS)
})
})
}

View File

@@ -235,13 +235,13 @@ export default {
this.currentDis = current
},
queryTableDtl() {
crudProductIn.getIosInvDtl({ 'iostorinv_id': this.form.iostorinv_id }).then(res => {
crudProductIn.getIODtl({ 'iostorinv_id': this.form.iostorinv_id }).then(res => {
this.tableDtl = res
})
},
queryTableDdis() {
if (this.currentdtl !== null) {
crudProductIn.getIosInvDis({ "iostorinvdtl_id": this.currentdtl.iostorinvdtl_id }).then(res => {
crudProductIn.getDisTask({ 'iostorinvdtl_id': this.currentdtl.iostorinvdtl_id }).then(res => {
this.tabledis = res
}).catch(() => {
this.tabledis = []

View File

@@ -141,7 +141,7 @@
>
分配
</el-button>
<!-- <el-button
<el-button
slot="right"
class="filter-item"
type="success"
@@ -151,7 +151,7 @@
@click="divOpen"
>
作业任务
</el-button>-->
</el-button>
<el-button
slot="right"
class="filter-item"
@@ -186,7 +186,7 @@
</el-table-column>
<el-table-column show-overflow-tooltip prop="bill_type" min-width="120" label="单据类型" :formatter="bill_typeFormat" />
<el-table-column show-overflow-tooltip prop="stor_name" label="仓库" min-width="120"/>
<!-- <el-table-column prop="" label="生产车间" width="130" show-overflow-tooltip />-->
<el-table-column prop="" label="生产车间" width="130" show-overflow-tooltip />
<el-table-column show-overflow-tooltip min-width="120" prop="biz_date" label="业务日期" />
<el-table-column label="总重量" align="center" prop="total_qty">
<template slot-scope="scope">
@@ -235,7 +235,7 @@ import DateRangePicker from '@/components/DateRangePicker/index'
import AddDialog from '@/views/wms/storage_manage/product/productIn/AddDialog'
import DivDialog from '@/views/wms/storage_manage/product/productIn/DivDialog'
import ViewDialog from '@/views/wms/storage_manage/product/productIn/ViewDialog'
import crudStorattr, {getStor} from '@/views/wms/storage_manage/basedata/basedata'
import crudStorattr from '@/api/wms/basedata/st/storattr'
import { mapGetters } from 'vuex'
export default {
@@ -281,7 +281,7 @@ export default {
}
},
created() {
crudStorattr.getStor({ 'stor_type': '4' }).then(res => {
crudStorattr.queryStor().then(res => {
this.storlist = res.content
})
},
@@ -341,7 +341,7 @@ export default {
this.crud.notify('请选择一条单据', CRUD.NOTIFICATION_TYPE.INFO)
return
}
crudProductIn.confirm({ 'iostorinv_id': this.currentRow.iostorinv_id }).then(res => {
crudProductIn.confirm(this.currentRow).then(res => {
this.crud.notify('单据确认成功!', CRUD.NOTIFICATION_TYPE.SUCCESS)
this.crud.toQuery()
})

View File

@@ -66,31 +66,7 @@ export function getSect(data) {
export function divStruct(data) {
return request({
url: '/api/productIn/divStruct',
method: 'post',
data
})
}
export function unDivStruct(data) {
return request({
url: '/api/productIn/unDivStruct',
method: 'post',
data
})
}
export function setPoint(data) {
return request({
url: '/api/productIn/setPoint',
method: 'post',
data
})
}
export function confirm(data) {
return request({
url: '/api/productIn/confirm',
url: '/api/stIvtSectattr/divStruct',
method: 'post',
data
})
@@ -105,8 +81,5 @@ export default {
vehicleCheck,
confirmvehicle,
getSect,
divStruct,
unDivStruct,
setPoint,
confirm
divStruct
}

View File

@@ -1,3 +1,4 @@
<!--suppress ALL -->
<template>
<div class="app-container">
<!--工具栏-->
@@ -127,32 +128,6 @@
@select="handleSelectionChange"
@select-all="onSelectAll"
>
<el-table-column :selectable="checkboxT" type="selection" width="55" />
<el-table-column show-overflow-tooltip :formatter="stateFormat" prop="bill_status" label="单据状态" />
<el-table-column show-overflow-tooltip prop="bill_code" width="130" label="单据号">
<template slot-scope="scope">
<el-link type="warning" @click="toView(scope.row)">{{ scope.row.bill_code }}</el-link>
</template>
</el-table-column>
<el-table-column show-overflow-tooltip prop="bill_type" min-width="120" label="单据类型" :formatter="bill_typeFormat" />
<el-table-column show-overflow-tooltip prop="stor_name" label="仓库" min-width="120"/>
<!-- <el-table-column prop="" label="生产车间" width="130" show-overflow-tooltip />-->
<el-table-column show-overflow-tooltip min-width="120" prop="biz_date" label="业务日期" />
<el-table-column label="总重量" align="center" prop="total_qty">
<template slot-scope="scope">
{{ fun(scope.row.total_qty) }}
</template>
</el-table-column>
<el-table-column label="明细数" align="center" prop="detail_count" />
<el-table-column label="备注" align="center" prop="remark" />
<el-table-column label="创建人" align="center" prop="create_name" />
<el-table-column label="创建时间" align="center" prop="create_time" width="150" />
<el-table-column label="修改人" align="center" prop="update_name" />
<el-table-column label="修改时间" align="center" prop="update_time" width="150" />
<el-table-column label="分配人" align="center" prop="dis_name" width="140px" />
<el-table-column label="分配时间" align="center" prop="dis_time" width="150" />
<el-table-column label="确认人" align="center" prop="confirm_name" width="150" />
<el-table-column label="确认时间" align="center" prop="confirm_time" width="150" />
<el-table-column v-permission="[]" label="操作" width="120px" align="center" fixed="right">
<template slot-scope="scope">
<udOperation
@@ -163,6 +138,27 @@
/>
</template>
</el-table-column>
<el-table-column :selectable="checkboxT" type="selection" width="55" />
<el-table-column show-overflow-tooltip prop="bill_code" width="130" label="单据号">
<template slot-scope="scope">
<el-link type="warning" @click="toView(scope.$index, scope.row)">{{ scope.row.bill_code }}</el-link>
</template>
</el-table-column>
<el-table-column show-overflow-tooltip :formatter="stateFormat" width="80" prop="bill_status" label="单据状态" />
<el-table-column show-overflow-tooltip prop="product_code" label="生产车间" width="80" />
<el-table-column show-overflow-tooltip prop="bill_type" :formatter="bill_typeFormat" label="业务类型" />
<el-table-column show-overflow-tooltip width="100" prop="biz_date" label="业务日期" />
<el-table-column show-overflow-tooltip label="明细数" align="center" prop="detail_count" width="60" />
<el-table-column show-overflow-tooltip label="总重量" align="center" prop="total_qty" width="100" />
<el-table-column show-overflow-tooltip label="备注" align="center" prop="remark" width="100" />
<el-table-column show-overflow-tooltip label="制单人" align="center" prop="create_name" />
<el-table-column show-overflow-tooltip label="制单时间" align="center" prop="create_time" width="140" />
<el-table-column show-overflow-tooltip label="修改人" align="center" prop="create_name" />
<el-table-column show-overflow-tooltip label="修改时间" align="center" prop="update_time" width="140" />
<el-table-column show-overflow-tooltip label="分配人" align="center" prop="dis_name" />
<el-table-column show-overflow-tooltip label="分配时间" align="center" prop="dis_time" width="140" />
<el-table-column show-overflow-tooltip label="确认人" align="center" prop="confirm_name" />
<el-table-column show-overflow-tooltip label="确认时间" align="center" prop="confirm_time" width="140" />
</el-table>
<!--分页组件-->
<pagination />
@@ -183,7 +179,7 @@ import pagination from '@crud/Pagination'
import AddDialog from '@/views/wms/storage_manage/product/productOut/AddDialog'
import DivDialog from '@/views/wms/storage_manage/product/productOut/DivDialog'
import ViewDialog from '@//views/wms/storage_manage/product/productOut/ViewDialog'
import crudStorattr from '@/views/wms/storage_manage/basedata/basedata'
import crudProductIn from '@/views/wms/storage_manage/product/productIn/productin'
export default {
name: 'ProductOut',
@@ -234,14 +230,11 @@ export default {
}
},
created() {
crudStorattr.getStor({ 'stor_type': '4' }).then(res => {
this.storlist = res.content
crudProductIn.queryStor().then(res => {
this.storlist = res
})
},
methods: {
fun(val) {
return Number(val).toFixed(3)
},
canUd(row) {
return row.bill_status !== '10'
},
@@ -300,9 +293,9 @@ export default {
return row.bill_status !== '99'
},
divOpen() {
productOut.getIosInvDtl({ 'iostorinv_id': this.currentRow.iostorinv_id }).then(res => {
productOut.getOutBillDtl({ 'iostorinv_id': this.currentRow.iostorinv_id }).then(res => {
this.openParam = res
this.storId = this.currentRow.stor_id
this.storId = this.currentRow.product_code
this.divShow = true
this.mstrow = this.currentRow
})

View File

@@ -216,7 +216,7 @@ import AddDialog from '@/views/wms/storage_manage/rawproduct/rawProductIn/AddDia
import DivDialog from '@/views/wms/storage_manage/rawproduct/rawProductIn/DivDialog'
import ViewDialog from '@/views/wms/storage_manage/rawproduct/rawProductIn/ViewDialog'
import {mapGetters} from 'vuex'
import crudStorattr from "@/views/wms/storage_manage/basedata/basedata";
import crudStorattr from "@/api/wms/basedata/st/storattr";
export default {
name: 'RawProductIn',
@@ -262,7 +262,7 @@ export default {
}
},
created() {
crudStorattr.getStor({"stor_type": "3"}).then(res => {
crudStorattr.queryStor({"stor_type": "3"}).then(res => {
this.storlist = res.content
})
},

View File

@@ -223,10 +223,10 @@
import CRUD, {crud, form} from '@crud/crud'
import MaterDtl from '@/views/wms/pub/MaterDialog'
import BillDtl from '@/views/wms/storage_manage/rawproduct/rawProductIn/AddDtl'
import crudStorattr from "@/api/wms/basedata/st/storattr";
import crudProductOut from '@/views/wms/storage_manage/rawproduct/rawProductOut/rawproductout'
import crudStructattr from "@/api/wms/basedata/st/structattr";
import StructIvt from "@/views/wms/storage_manage/rawproduct/rawProductOut/StructIvt";
import crudStorattr from "@/views/wms/storage_manage/basedata/basedata";
const defaultForm = {
bill_code: '',
@@ -293,7 +293,7 @@ export default {
},
methods: {
open() {
crudStorattr.getStor({"stor_type": "3"}).then(res => {
crudStorattr.queryStor({"stor_type": "3"}).then(res => {
this.storlist = res.content
})
},

View File

@@ -216,7 +216,7 @@ import AddDialog from '@/views/wms/storage_manage/rawproduct/rawProductOut/AddDi
import DivDialog from '@/views/wms/storage_manage/rawproduct/rawProductOut/DivDialog'
import ViewDialog from '@/views/wms/storage_manage/rawproduct/rawProductOut/ViewDialog'
import {mapGetters} from 'vuex'
import crudStorattr from "@/views/wms/storage_manage/basedata/basedata";
import crudStorattr from "@/api/wms/basedata/st/storattr";
export default {
name: 'RawProductOut',
@@ -262,7 +262,7 @@ export default {
}
},
created() {
crudStorattr.getStor({"stor_type": "3"}).then(res => {
crudStorattr.queryStor({"stor_type": "3"}).then(res => {
this.storlist = res.content
})
},

View File

@@ -0,0 +1,410 @@
<template>
<el-dialog
:title="crud.status.title"
append-to-body
fullscreen
:before-close="crud.cancelCU"
:visible.sync="crud.status.cu > 0 || crud.status.view > 0"
width="1200px"
@open="open"
@close="close"
>
<el-row v-show="crud.status.cu > 0" :gutter="20">
<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" :loading="crud.cu === 2" type="primary" @click="crud.submitCU">保存</el-button>
<el-button icon="el-icon-close" size="mini" type="info" @click="crud.cancelCU">关闭</el-button>
</span>
</el-col>
</el-row>
<el-form ref="form" style="border: 1px solid #cfe0df;margin-top: 10px;padding-top: 10px;" :inline="true" :model="form" :rules="rules" size="mini" label-width="85px" label-suffix=":">
<el-form-item label="单据号" prop="bill_code">
<label slot="label">单&nbsp;&nbsp;据&nbsp;号:</label>
<el-input v-model="form.bill_code" disabled placeholder="系统生成" clearable style="width: 210px" />
</el-form-item>
<el-form-item label="仓库" prop="product_code">
<label slot="label">所属仓库2:</label>
<el-select
v-model="form.stor_id"
clearable
class="filter-item"
style="width: 210px"
:disabled="crud.status.view > 0"
>
<el-option
v-for="item in storlist"
:key="item.stor_id"
:label="item.stor_name"
:value="item.stor_id"
/>
</el-select>
</el-form-item>
<el-form-item label="入库点" prop="point_code">
<label slot="label">入库点:</label>
<el-select
v-model="form.point_code"
clearable
class="filter-item"
style="width: 210px"
:disabled="crud.status.view > 0"
>
<el-option
v-for="item in storlist"
:key="item.stor_id"
:label="item.stor_name"
:value="item.stor_id"
/>
</el-select>
</el-form-item>
<el-form-item label="业务类型" prop="bill_type">
<el-select
v-model="form.bill_type"
clearable
placeholder="业务类型"
style="width: 210px"
class="filter-item"
:disabled="crud.status.view > 0"
>
<el-option
v-for="item in dict.bill_type"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="单据状态" prop="bill_status">
<el-select
v-model="form.bill_status"
clearable
style="width: 210px"
placeholder="单据状态"
class="filter-item"
disabled
>
<el-option
v-for="item in dict.IO_BILL_STATUS"
:key="item.id"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="明细数" prop="detail_count">
<label slot="label">明&nbsp;&nbsp;细&nbsp;数:</label>
<el-input v-model="form.detail_count" size="mini" disabled style="width: 210px" />
</el-form-item>
<el-form-item label="总重量" prop="total_qty">
<label slot="label">总&nbsp;&nbsp;重&nbsp;量:</label>
<el-input-number
v-model="form.total_qty"
:controls="false"
:min="0"
disabled
style="width: 210px"
/>
</el-form-item>
<el-form-item label="业务日期" prop="biz_date">
<el-date-picker v-model="form.biz_date" type="date" placeholder="选择日期" style="width: 210px" value-format="yyyy-MM-dd" :disabled="crud.status.view > 0" />
</el-form-item>
<el-form-item label="备注" prop="remark">
<label slot="label">备&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;注:</label>
<el-input v-model="form.remark" style="width: 380px;" rows="2" type="textarea" :disabled="crud.status.view > 0" />
</el-form-item>
</el-form>
<!--如果想在工具栏加入更多按钮,可以使用插槽方式, slot = 'left' or 'right'-->
<div v-show="crud.status.add === 1" class="crud-opts2" style="margin-bottom: 5px;">
<span class="crud-opts-right2">
<!--左侧插槽-->
<slot name="left" />
<el-button
slot="left"
class="filter-item"
type="primary"
icon="el-icon-plus"
size="mini"
@click="insertEvent()"
>
添加物料
</el-button>
</span>
</div>
<!--表格渲染-->
<el-table
ref="table"
:data="form.tableData"
style="width: 100%;"
border
:header-cell-style="{background:'#f5f7fa',color:'#606266'}"
>
<el-table-column type="index" label="序号" width="55" align="center" />
<el-table-column show-overflow-tooltip prop="material_code" label="物料编码" />
<el-table-column show-overflow-tooltip prop="material_name" label="物料名称" />
<el-table-column show-overflow-tooltip prop="material_spec" label="物料规格" />
<el-table-column show-overflow-tooltip prop="base_bill_code" label="订单号">
<template slot-scope="scope">
<el-input
v-model="form.tableData[scope.$index].base_bill_code"
clearable
:controls="false"
controls-position="right"
size="small"
/>
</template>
</el-table-column>
<el-table-column show-overflow-tooltip prop="plan_qty" label="数量">
<template slot-scope="scope">
<el-input-number
v-model="form.tableData[scope.$index].plan_qty"
size="small"
:controls="false"
controls-position="right"
precision="3"
:min="0"
@change="changeQty"
/>
</template>
</el-table-column>
<el-table-column show-overflow-tooltip prop="unit_weight" label="单重">
<template slot-scope="scope">
<el-input-number
v-model="form.tableData[scope.$index].unit_weight"
size="small"
:controls="false"
controls-position="right"
precision="3"
:min="0"
/>
</template>
</el-table-column>
<el-table-column show-overflow-tooltip prop="storagevehicle_code" label="载具号">
<template slot-scope="scope">
<el-input
v-model="form.tableData[scope.$index].storagevehicle_code"
clearable
:controls="false"
controls-position="right"
size="small"
/>
</template>
</el-table-column>
<el-table-column v-if="crud.status.add === 1" align="center" label="操作" width="170" fixed="right">
<template scope="scope">
<el-button
type="danger"
class="filter-item"
size="mini"
icon="el-icon-delete"
@click.native.prevent="deleteRow(scope.$index, form.tableData)"
/>
</template>
</el-table-column>
</el-table>
<MaterDtl
:dialog-show.sync="materShow"
:is-single="false"
:mater-opt-code="materType"
@setMaterValue="tableChanged"
/>
</el-dialog>
</template>
<script>
import CRUD, { crud, form } from '@crud/crud'
import crudsemiproductIn from '@/views/wms/storage_manage/semiproduct/semiproductIn/semiproductIn'
import MaterDtl from '@/views/wms/pub/MaterDialog'
const defaultForm = {
bill_code: '',
product_code: 'A1',
bill_status: '1',
total_qty: '0',
detail_count: '0',
bill_type: '',
remark: '',
biz_date: new Date(),
create_mode: '',
tableData: []
}
export default {
name: 'AddDialog',
components: { MaterDtl },
mixins: [crud(), form(defaultForm)],
dicts: ['IO_BILL_STATUS', 'ST_QUALITY_SCODE', 'bill_type', 'product_area'],
cruds() {
return CRUD({ title: '入库新增', crudMethod: { ...crudsemiproductIn }})
},
props: {
dialogShow: {
type: Boolean,
default: false
},
openParam: {
type: Object
}
},
data() {
return {
dialogVisible: false,
materShow: false,
dtlShow: false,
opendtlParam: null,
materType: '03', // 关键成品
storlist: [],
billtypelist: [],
rules: {
product_code: [
{ required: true, message: '生产车间不能为空', trigger: 'blur' }
],
bill_type: [
{ required: true, message: '业务类型不能为空', trigger: 'blur' }
],
biz_date: [
{ required: true, message: '业务日期不能为空', trigger: 'blur' }
]
}
}
},
watch: {
dialogShow: {
handler(newValue, oldValue) {
this.dialogVisible = newValue
}
}
},
methods: {
open() {
crudsemiproductIn.queryStor().then(res => {
this.storlist = res.content
})
},
close() {
this.$emit('AddChanged')
},
[CRUD.HOOK.afterToEdit]() {
// 获取入库单明细
crudsemiproductIn.getIODtl({ 'iostorinv_id': this.form.iostorinv_id }).then(res => {
this.form.tableData = res
// 将明细变成不可编辑
for (let i = 0; i < this.form.tableData.length; i++) {
const row = this.form.tableData[i]
this.form.tableData.splice(i, 1, row)
}
})
},
[CRUD.HOOK.afterToView]() {
crudsemiproductIn.getIODtl({ 'bill_code': this.form.bill_code }).then(res => {
this.form.tableData = res.content
// 将明细变成不可编辑
for (let i = 0; i < this.form.tableData.length; i++) {
const row = this.form.tableData[i]
this.form.tableData.splice(i, 1, row)
}
})
},
[CRUD.HOOK.beforeSubmit]() {
// 提交前校验
if (this.form.tableData.length === 0) {
this.crud.notify('请至少选择一条明细', CRUD.NOTIFICATION_TYPE.INFO)
return false
}
for (let i = 0; i < this.form.tableData.length; i++) {
const row = this.form.tableData[i]
if (!row.base_bill_code) {
this.crud.notify('订单号', CRUD.NOTIFICATION_TYPE.INFO)
return false
}
if (!row.plan_qty) {
this.crud.notify('数量不能为空', CRUD.NOTIFICATION_TYPE.INFO)
return false
}
if (!this.form.stor_id) {
this.crud.notify('所属仓库不能为空', CRUD.NOTIFICATION_TYPE.INFO)
return false
}
if (!this.form.point_code) {
this.crud.notify('入库点不能为空', CRUD.NOTIFICATION_TYPE.INFO)
return false
}
if (!row.storagevehicle_code) {
this.crud.notify('载具不能为空', CRUD.NOTIFICATION_TYPE.INFO)
return false
}
if (!row.unit_weight) {
this.crud.notify('单重不能为空', CRUD.NOTIFICATION_TYPE.INFO)
return false
}
}
},
deleteRow(index, rows) {
const material_code = rows[index].material_code
let len = rows.length
while (len--) {
const obj = rows[len]
if (material_code === obj.material_code) {
const index = rows.indexOf(obj)
if (index > -1) { // 移除找到的指定元素
this.form.total_qty = parseFloat(this.form.total_qty) - parseFloat(rows[index].plan_qty)
rows.splice(index, 1)
this.form.detail_count = this.form.tableData.length
}
}
}
},
tableChanged(rows) {
// 对新增的行进行校验不能存在相同物料批次
rows.forEach((item) => {
let same_mater = true
this.form.tableData.forEach((row) => {
if (row.material_code === item.material_code) {
same_mater = false
}
})
if (same_mater) {
item.quality_scode = '01'
item.ivt_level = '01'
item.is_active = '1'
item.plan_qty = '1'
this.form.total_qty = parseFloat(this.form.total_qty) + parseFloat(item.plan_qty)
this.form.tableData.splice(-1, 0, item)
}
})
this.form.detail_count = this.form.tableData.length
},
insertEvent(row) {
this.materShow = true
},
changeQty() {
this.form.total_qty = 0
this.form.tableData.forEach((item) => {
this.form.total_qty = parseFloat(this.form.total_qty) + parseFloat(item.plan_qty)
})
}
}
}
</script>
<style>
.crud-opts2 {
padding: 4px 0;
display: -webkit-flex;
display: flex;
align-items: center;
}
.crud-opts2 .crud-opts-right2 {
margin-left: auto;
}
</style>