add:木箱库

This commit is contained in:
2025-07-22 18:04:31 +08:00
parent cd691d7cad
commit dd13549d38
33 changed files with 1100 additions and 417 deletions

View File

@@ -21,6 +21,16 @@
@keyup.enter.native="crud.toQuery"
/>
</el-form-item>
<el-form-item label="木箱码">
<el-input
v-model="query.box_no"
clearable
placeholder="输入木箱码"
style="width: 185px;"
class="filter-item"
@keyup.enter.native="crud.toQuery"
/>
</el-form-item>
<el-form-item label="木箱规格">
<el-input
v-model="query.box_spec"
@@ -58,11 +68,11 @@
@change="hand"
/>
</el-form-item>
<rrOperation :crud="crud"/>
<rrOperation :crud="crud" />
</el-form>
</div>
<!--如果想在工具栏加入更多按钮可以使用插槽方式 slot = 'left' or 'right'-->
<crudOperation :permission="permission"/>
<crudOperation :permission="permission" />
<!--表单组件-->
<el-dialog
:close-on-click-modal="false"
@@ -74,10 +84,10 @@
<br>
<el-form ref="form" :model="form" :rules="rules" size="mini" label-width="100px">
<el-form-item label="堆叠位编码" prop="stack_code">
<el-input v-model="form.stack_code" style="width: 300px;"/>
<el-input v-model="form.stack_code" style="width: 300px;" />
</el-form-item>
<el-form-item label="堆叠位名称" prop="stack_name">
<el-input v-model="form.stack_name" style="width: 300px;"/>
<el-input v-model="form.stack_name" style="width: 300px;" />
</el-form-item>
<el-form-item label="堆叠位区域" prop="point_status">
<el-select
@@ -98,30 +108,44 @@
</el-form-item>
<el-form-item label="最大堆叠数" prop="max_layer_count">
<el-input
v-model.number="form.max_layer_count" style="width: 300px;"
v-model.number="form.max_layer_count"
style="width: 300px;"
oninput="this.value = this.value.replace(/[^0-9]/g, '')"
placeholder="请输入大于等于1的整数"
/>
</el-form-item>
<el-form-item label="当前堆叠数" prop="current_layer_count">
<el-input disabled v-model="form.current_layer_count" style="width: 300px;"/>
<el-input v-model="form.current_layer_count" disabled style="width: 300px;" />
</el-form-item>
<el-form-item label="木箱规格" prop="box_spec">
<el-input
v-model="form.box_spec"
style="width: 300px;"
clearable
@click.native="openMaterialDialog"
/>
</el-form-item>
<el-form-item label="木箱码" prop="box_no">
<el-input v-model="form.box_no" style="width: 300px;" @blur="handleBoxNoBlur(form.box_no)" />
</el-form-item>
<el-form-item label="" prop="x">
<el-input
v-model.number="form.x" style="width: 300px;"
v-model.number="form.x"
style="width: 300px;"
oninput="this.value = this.value.replace(/[^0-9]/g, '')"
placeholder="请输入大于等于1的整数"
/>
</el-form-item>
<el-form-item label="" prop="y">
<el-input
v-model.number="form.y" style="width: 300px;"
v-model.number="form.y"
style="width: 300px;"
oninput="this.value = this.value.replace(/[^0-9]/g, '')"
placeholder="请输入大于等于1的整数"
/>
</el-form-item>
<el-form-item label="是否启用" prop="is_used">
<el-switch v-model="form.is_used" active-value="1" inactive-value="0"/>
<el-switch v-model="form.is_used" active-value="1" inactive-value="0" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
@@ -139,33 +163,34 @@
style="width: 100%;"
@selection-change="crud.selectionChangeHandler"
>
<el-table-column type="selection" width="55"/>
<el-table-column type="selection" width="55" />
<el-table-column prop="stack_code" label="堆叠位编码" width="100px">
<template slot-scope="scope">
<el-link type="warning" @click="toView(scope.row)">{{ scope.row.stack_code }}</el-link>
</template>
<!-- <template slot-scope="scope">-->
<!-- <el-link type="warning" @click="toView(scope.row)">{{ scope.row.stack_code }}</el-link>-->
<!-- </template>-->
</el-table-column>
<el-table-column prop="stack_name" label="堆叠位名称" width="140px"/>
<el-table-column prop="stack_name" label="堆叠位名称" width="140px" />
<el-table-column prop="point_status" label="区域类型">
<template slot-scope="scope">
{{ dict.label.boxinfo_area[scope.row.point_status] }}
</template>
</el-table-column>
<el-table-column prop="current_layer_count" label="当前堆叠数" width="140px"/>
<el-table-column prop="max_layer_count" label="最大堆叠数" width="100px"/>
<el-table-column prop="box_spec" label="木箱规格" show-overflow-tooltip width="150px"/>
<el-table-column prop="box_spec_name" label="木箱规格名称" show-overflow-tooltip width="200px"/>
<el-table-column prop="x" label="" width="100px"/>
<el-table-column prop="y" label="" width="100px"/>
<el-table-column prop="current_layer_count" label="当前堆叠数" width="140px" />
<el-table-column prop="max_layer_count" label="最大堆叠数" width="100px" />
<el-table-column prop="box_spec" label="木箱规格" show-overflow-tooltip width="150px" />
<el-table-column prop="box_spec_name" label="木箱规格名称" show-overflow-tooltip width="200px" />
<el-table-column prop="box_no" label="木箱号" show-overflow-tooltip width="150px" />
<el-table-column prop="x" label="" width="100px" />
<el-table-column prop="y" label="" width="100px" />
<el-table-column prop="is_used" label="是否启用">
<template slot-scope="scope">
{{ dict.label.is_used[scope.row.is_used] }}
</template>
</el-table-column>
<el-table-column prop="created_name" label="创建人" min-width="150" show-overflow-tooltip/>
<el-table-column prop="created_time" label="创建时间" min-width="150" show-overflow-tooltip/>
<el-table-column prop="update_name" label="修改人" min-width="150" show-overflow-tooltip/>
<el-table-column prop="update_time" label="修改时间" min-width="150" show-overflow-tooltip/>
<el-table-column prop="created_name" label="创建人" min-width="150" show-overflow-tooltip />
<el-table-column prop="created_time" label="创建时间" min-width="150" show-overflow-tooltip />
<el-table-column prop="update_name" label="修改人" min-width="150" show-overflow-tooltip />
<el-table-column prop="update_time" label="修改时间" min-width="150" show-overflow-tooltip />
<el-table-column v-permission="[]" label="操作" width="120px" align="center" fixed="right">
<template slot-scope="scope">
<udOperation
@@ -177,7 +202,7 @@
</el-table-column>
</el-table>
<!--分页组件-->
<pagination/>
<pagination />
</div>
<mater-dialog
:key="materialDialogKey"
@@ -187,13 +212,13 @@
mater-opt-code="木箱"
@handleSetMaterialValue="handleSetMaterialValue"
/>
<LayerViewDialog ref="boxStackLayerView" @editChanged="crud.toQuery()"/>
<!-- <LayerViewDialog ref="boxStackLayerView" @editChanged="crud.toQuery()"/>-->
</div>
</template>
<script>
import crudBoxStack from './boxstack'
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'
@@ -201,7 +226,6 @@ import pagination from '@crud/Pagination'
import MaterDialog from './MaterDialog'
import LayerViewDialog from './LayerViewDialog'
const defaultForm = {
stack_id: null,
stack_code: null,
@@ -210,7 +234,8 @@ const defaultForm = {
max_layer_count: 3,
point_status: null,
box_spec: null,
is_used: "1",
box_no: null,
is_used: '1',
x: null,
y: null,
create_id: null,
@@ -223,7 +248,7 @@ const defaultForm = {
export default {
name: 'Boxstack',
components: {pagination, crudOperation, rrOperation, udOperation, MaterDialog, LayerViewDialog},
components: { pagination, crudOperation, rrOperation, udOperation, MaterDialog, LayerViewDialog },
dicts: ['boxinfo_area', 'is_used'],
mixins: [presenter(), header(), form(defaultForm), crud()],
cruds() {
@@ -232,7 +257,7 @@ export default {
url: 'api/bstIvtboxstack',
idField: 'stack_id',
sort: 'stack_id,desc',
crudMethod: {...crudBoxStack},
crudMethod: { ...crudBoxStack },
optShow: {
add: true,
edit: true,
@@ -249,28 +274,28 @@ export default {
materialDialogKey: 0,
rules: {
stack_code: [
{required: true, message: '堆叠位编码不能为空', trigger: 'blur'}
{ required: true, message: '堆叠位编码不能为空', trigger: 'blur' }
],
stack_name: [
{required: true, message: '堆叠位名称不能为空', trigger: 'blur'}
{ required: true, message: '堆叠位名称不能为空', trigger: 'blur' }
],
current_layer_count: [
{required: true, message: '当前堆叠数不能为空', trigger: 'blur'}
{ required: true, message: '当前堆叠数不能为空', trigger: 'blur' }
],
max_layer_count: [
{required: true, message: '最大堆叠数不能为空', trigger: 'blur'}
{ required: true, message: '最大堆叠数不能为空', trigger: 'blur' }
],
point_status: [
{required: true, message: '区域不能为空', trigger: 'blur'}
{ required: true, message: '区域不能为空', trigger: 'blur' }
],
x: [
{required: true, message: '木箱排不能为空', trigger: 'blur'}
{ required: true, message: '木箱排不能为空', trigger: 'blur' }
],
y: [
{required: true, message: '木箱列不能为空', trigger: 'blur'}
{ required: true, message: '木箱列不能为空', trigger: 'blur' }
],
is_used: [
{required: true, message: '是否启用不能为空', trigger: 'blur'}
{ required: true, message: '是否启用不能为空', trigger: 'blur' }
]
}
}
@@ -280,6 +305,15 @@ export default {
[CRUD.HOOK.beforeRefresh]() {
return true
},
handleBoxNoBlur(value) {
console.log(value)
if (!value || value.trim() === '') {
this.form.current_layer_count = 0
} else {
const boxNoArray = value.split(',')
this.form.current_layer_count = boxNoArray.length
}
},
toView(row) {
if (row !== null) {
this.$refs.boxStackLayerView.setForm(row)
@@ -288,25 +322,25 @@ export default {
openMaterialDialog() {
if (this.crud.status.edit > 0) return // 如果是编辑状态,则不允许重新选择
this.dialogMaterialVisible = true
this.materialDialogKey += 1;
this.materialDialogKey += 1
},
handleSetMaterialValue(material) {
this.form.box_spec = material.material_code
this.dialogMaterialVisible = false
},
rowStyle({row, index}) {
let backgroun = {}
rowStyle({ row, index }) {
const backgroun = {}
if (row.container_name != null && row.update_time != null && row.update_time != undefined) {
let now = new Date()
let before = new Date(row.update_time)
const diff = now.getTime() - before.getTime();
let min = Math.floor(diff / (1000 * 60))
const now = new Date()
const before = new Date(row.update_time)
const diff = now.getTime() - before.getTime()
const min = Math.floor(diff / (1000 * 60))
console.log(min)
if (min > 120) {
backgroun.background = 'red';
backgroun.background = 'red'
}
}
return backgroun;
return backgroun
},
hand(value) {
this.crud.toQuery()