提交2025-05-19版本

This commit is contained in:
zds
2025-05-19 16:33:07 +08:00
parent fc0bfb745e
commit c9d0f5fb0f
1937 changed files with 271118 additions and 0 deletions

View File

@@ -0,0 +1,27 @@
import request from '@/utils/request'
export function add(data) {
return request({
url: 'api/bstIvtCutpointivt',
method: 'post',
data
})
}
export function del(ids) {
return request({
url: 'api/bstIvtCutpointivt/',
method: 'delete',
data: ids
})
}
export function edit(data) {
return request({
url: 'api/bstIvtCutpointivt',
method: 'put',
data
})
}
export default { add, edit, del }

View File

@@ -0,0 +1,308 @@
<template>
<div class="app-container">
<!--工具栏-->
<div class="head-container">
<div v-if="crud.props.searchToggle">
<el-form
:inline="true"
class="demo-form-inline"
label-position="right"
label-width="90px"
label-suffix=":"
>
<el-form-item label="点位编码">
<el-input
v-model="query.point_code"
clearable
placeholder="输入点位编码"
class="filter-item"
@keyup.enter.native="crud.toQuery"
/>
</el-form-item>
<el-form-item label="点位类型">
<el-select
v-model="query.point_type"
clearable
filterable
size="mini"
class="filter-item"
@change="hand"
>
<el-option
v-for="item in dict.BCUT_POINT_TYPE"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="生产区域">
<el-select
v-model="query.product_area"
clearable
filterable
size="mini"
class="filter-item"
@change="hand"
>
<el-option
v-for="item in dict.product_area"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="区域位置">
<el-select
v-model="query.point_location"
clearable
filterable
size="mini"
class="filter-item"
@change="hand"
>
<el-option
v-for="item in dict.point_location"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="是否启用">
<el-switch
v-model="query.is_used"
active-value="0"
inactive-value="1"
active-color="#C0CCDA"
inactive-color="#409EFF"
@change="hand"
/>
</el-form-item>
<rrOperation />
</el-form>
</div>
<!--如果想在工具栏加入更多按钮可以使用插槽方式 slot = 'left' or 'right'-->
<crudOperation :permission="permission" />
<!--表单组件-->
<el-dialog :close-on-click-modal="false" :before-close="crud.cancelCU" :visible.sync="crud.status.cu > 0" :title="crud.status.title" width="790px">
<el-form ref="form" :model="form" :inline="true" :rules="rules" size="mini" label-width="120px">
<el-form-item label="AGV点位编码">
<el-input v-model="form.point_code" disabled style="width: 240px;" />
</el-form-item>
<el-form-item label="AGV点位名称">
<el-input v-model="form.point_name" disabled style="width: 240px;" />
</el-form-item>
<el-form-item label="桁架点位编码1 ">
<el-input v-model="form.truss_point_code1" disabled style="width: 240px;" />
</el-form-item>
<el-form-item label="桁架点位编码2">
<el-input v-model="form.truss_point_code2" disabled style="width: 240px;" />
</el-form-item>
<el-form-item label="气胀轴编码1">
<el-input v-model="form.qzz_no1" style="width: 240px;" />
</el-form-item>
<el-form-item label="气胀轴编码2">
<el-input v-model="form.qzz_no2" style="width: 240px;" />
</el-form-item>
<el-form-item label="点位类型">
<el-select
v-model="form.point_type"
clearable
filterable
size="mini"
style="width: 240px;"
>
<el-option
v-for="item in dict.BCUT_POINT_TYPE"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="生产区域">
<el-select
v-model="form.product_area"
clearable
filterable
size="mini"
style="width: 240px;"
>
<el-option
v-for="item in dict.product_area"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="点位状态">
<el-select
v-model="form.point_status"
clearable
filterable
size="mini"
style="width: 240px;"
>
<el-option
v-for="item in dict.CUT_POINT_STATUS"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="位置">
<el-select
v-model="form.point_location"
clearable
filterable
size="mini"
style="width: 240px;"
>
<el-option
v-for="item in dict.point_location"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="规划">
<el-input v-model="form.plan" style="width: 240px;" />
</el-form-item>
<el-form-item label="是否启用" prop="is_used">
<el-switch v-model="form.is_used" active-value="1" inactive-value="0" style="width: 240px;" />
</el-form-item>
<el-form-item label="备注">
<el-input v-model="form.remark" type="textarea" :autosize="{ minRows: 2, maxRows: 4}" style="width: 240px;" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="text" @click="crud.cancelCU">取消</el-button>
<el-button :loading="crud.cu === 2" type="primary" @click="crud.submitCU">确认</el-button>
</div>
</el-dialog>
<!--表格渲染-->
<el-table ref="table" v-loading="crud.loading" :data="crud.data" size="mini" style="width: 100%;" @selection-change="crud.selectionChangeHandler">
<el-table-column type="selection" width="55" />
<el-table-column prop="point_code" label="AGV点位编码" :min-width="flexWidth('point_code',crud.data,'AGV点位编码')"/>
<el-table-column prop="point_name" label="AGV点位名称" :min-width="flexWidth('point_name',crud.data,'AGV点位名称')"/>
<el-table-column prop="truss_point_code1" label="桁架点位编码1 " :min-width="flexWidth('truss_point_code1',crud.data,'桁架点位编码1 ')"/>
<el-table-column prop="truss_point_code2" label="桁架点位编码2" :min-width="flexWidth('truss_point_code2',crud.data,'桁架点位编码2')"/>
<el-table-column prop="qzz_no1" label="气胀轴编码1" :min-width="flexWidth('qzz_no1',crud.data,'气胀轴编码1')"/>
<el-table-column prop="qzz_no2" label="气胀轴编码2" :min-width="flexWidth('qzz_no2',crud.data,'气胀轴编码2')"/>
<el-table-column prop="point_type" label="点位类型" :min-width="flexWidth('point_type',crud.data,'点位类型型')">
<template slot-scope="scope">
{{ dict.label.BCUT_POINT_TYPE[scope.row.point_type] }}
</template>
</el-table-column>
<el-table-column prop="point_status" label="点位状态" :min-width="flexWidth('point_type',crud.data,'点位类型型')">
<template slot-scope="scope">
{{ dict.label.CUT_POINT_STATUS[scope.row.point_status] }}
</template>
</el-table-column>
<el-table-column prop="product_area" label="生产区域" :min-width="flexWidth('product_area',crud.data,'生产区域')"/>
<el-table-column prop="point_location" label="位置" :min-width="flexWidth('point_location',crud.data,'位置')">
<template slot-scope="scope">
{{ dict.label.point_location[scope.row.point_location] }}
</template>
</el-table-column>
<el-table-column prop="sort_seq" label="顺序号" :min-width="flexWidth('sort_seq',crud.data,'顺序号')"/>
<el-table-column prop="is_used" label="是否启用" :min-width="flexWidth('is_used',crud.data,'是否启用')">
<template slot-scope="scope">
{{ dict.label.IS_OR_NOT[scope.row.is_used] }}
</template>
</el-table-column>
<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="update_optname" label="修改人姓名" :min-width="flexWidth('update_optname',crud.data,'修改人姓名')"/>
<el-table-column prop="update_time" label="修改时间" :min-width="flexWidth('update_time',crud.data,'修改时间')"/>
<el-table-column prop="plan" label="规划" :min-width="flexWidth('plan',crud.data,'规划')"/>
<el-table-column v-permission="[]" label="操作" width="120px" align="center" fixed="right">
<template slot-scope="scope">
<udOperation
:data="scope.row"
:is-visiable-del="false"
:permission="permission"
/>
</template>
</el-table-column>
</el-table>
<!--分页组件-->
<pagination />
</div>
</div>
</template>
<script>
import crudBstIvtCutpointivt from './bstIvtCutpointivt'
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'
const defaultForm = {
ivt_id: null,
point_code: null,
point_name: null,
truss_point_code1: null,
truss_point_code2: null,
qzz_no1: null,
qzz_no2: null,
point_type: null,
point_status: null,
product_area: null,
point_location: null,
sort_seq: null,
is_used: null,
remark: null,
create_id: null,
create_name: null,
create_time: null,
update_optid: null,
update_optname: null,
update_time: null,
plan: null
}
export default {
name: 'BstIvtCutpointivt',
components: { pagination, crudOperation, rrOperation, udOperation },
mixins: [presenter(), header(), form(defaultForm), crud()],
dicts: ['IS_OR_NOT', 'product_area', 'BCUT_POINT_TYPE', 'CUT_POINT_STATUS', 'point_location'],
cruds() {
return CRUD({
title: '分切区缓存点位库存',
url: 'api/bstIvtCutpointivt',
idField: 'ivt_id',
sort: 'ivt_id,desc',
crudMethod: { ...crudBstIvtCutpointivt },
optShow: {
add: false,
edit: true,
del: false,
download: false,
reset: true
}
})
},
data() {
return {
permission: {
},
rules: {
}
}
},
methods: {
// 钩子在获取表格数据之前执行false 则代表不获取数据
[CRUD.HOOK.beforeRefresh]() {
return true
},
hand(value) {
this.crud.toQuery()
}
}
}
</script>
<style scoped>
</style>

View File

@@ -0,0 +1,120 @@
<template>
<div class="app-container">
<!--工具栏-->
<div class="head-container">
<!--如果想在工具栏加入更多按钮可以使用插槽方式 slot = 'left' or 'right'-->
<crudOperation :permission="permission" />
<!--表单组件-->
<el-dialog :close-on-click-modal="false" :before-close="crud.cancelCU" :visible.sync="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="载具标识">
<el-input v-model="form.ivt_id" style="width: 370px;" />
</el-form-item>
<el-form-item label="托盘号">
<el-input v-model="form.vehicle_code" style="width: 370px;" />
</el-form-item>
<el-form-item label="">
<el-input v-model="form.row_num" style="width: 370px;" />
</el-form-item>
<el-form-item label="物料号">
<el-input v-model="form.material_code" style="width: 370px;" />
</el-form-item>
<el-form-item label="物料名称">
<el-input v-model="form.material_name" style="width: 370px;" />
</el-form-item>
<el-form-item label="数量">
<el-input v-model="form.qty" style="width: 370px;" />
</el-form-item>
<el-form-item label="修改时间">
<el-input v-model="form.update_optid" style="width: 370px;" />
</el-form-item>
<el-form-item label="修改人">
<el-input v-model="form.update_optname" style="width: 370px;" />
</el-form-item>
<el-form-item label="修改人姓名">
<el-input v-model="form.update_time" style="width: 370px;" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="text" @click="crud.cancelCU">取消</el-button>
<el-button :loading="crud.cu === 2" type="primary" @click="crud.submitCU">确认</el-button>
</div>
</el-dialog>
<!--表格渲染-->
<el-table ref="table" v-loading="crud.loading" :data="crud.data" size="mini" style="width: 100%;" @selection-change="crud.selectionChangeHandler">
<el-table-column type="selection" width="55" />
<el-table-column prop="ivt_id" label="载具标识" :min-width="flexWidth('ivt_id',crud.data,'载具标识')" />
<el-table-column prop="vehicle_code" label="托盘号" :min-width="flexWidth('vehicle_code',crud.data,'托盘号')" />
<el-table-column prop="row_num" label="" :min-width="flexWidth('row_num',crud.data,'排')" />
<el-table-column prop="material_code" label="物料号" :min-width="flexWidth('material_code',crud.data,'物料号')" />
<el-table-column prop="material_name" label="物料名称" :min-width="flexWidth('material_name',crud.data,'物料名称')" />
<el-table-column prop="qty" label="数量" :min-width="flexWidth('qty',crud.data,'数量')" />
<el-table-column prop="update_optid" label="修改时间" :min-width="flexWidth('update_optid',crud.data,'修改时间')" />
<el-table-column prop="update_optname" label="修改人" :min-width="flexWidth('update_optname',crud.data,'修改人')" />
<el-table-column prop="update_time" label="修改人姓名" :min-width="flexWidth('update_time',crud.data,'修改人姓名')" />
<el-table-column v-permission="[]" label="操作" width="120px" align="center" fixed="right">
<template slot-scope="scope">
<udOperation
:data="scope.row"
:permission="permission"
/>
</template>
</el-table-column>
</el-table>
<!--分页组件-->
<pagination />
</div>
</div>
</template>
<script>
import crudMdPbPapervehicle from './mdPbPapervehicle'
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'
const defaultForm = {
ivt_id: null,
vehicle_code: null,
row_num: null,
material_code: null,
material_name: null,
qty: null,
update_optid: null,
update_optname: null,
update_time: null
}
export default {
name: 'MdPbPapervehicle',
components: { pagination, crudOperation, rrOperation, udOperation },
mixins: [presenter(), header(), form(defaultForm), crud()],
cruds() {
return CRUD({
title: '管芯托盘库存',
url: 'api/mdPbPapervehicle',
idField: 'ivt_id',
sort: 'ivt_id,desc',
crudMethod: { ...crudMdPbPapervehicle }
})
},
data() {
return {
permission: {
},
rules: {
}}
},
methods: {
// 钩子在获取表格数据之前执行false 则代表不获取数据
[CRUD.HOOK.beforeRefresh]() {
return true
}
}
}
</script>
<style scoped>
</style>

View File

@@ -0,0 +1,27 @@
import request from '@/utils/request'
export function add(data) {
return request({
url: 'api/mdPbPapervehicle',
method: 'post',
data
})
}
export function del(ids) {
return request({
url: 'api/mdPbPapervehicle/',
method: 'delete',
data: ids
})
}
export function edit(data) {
return request({
url: 'api/mdPbPapervehicle',
method: 'put',
data
})
}
export default { add, edit, del }

View File

@@ -0,0 +1,27 @@
import request from '@/utils/request'
export function add(data) {
return request({
url: 'api/bstIvtScalebound',
method: 'post',
data
})
}
export function del(ids) {
return request({
url: 'api/bstIvtScalebound/',
method: 'delete',
data: ids
})
}
export function edit(data) {
return request({
url: 'api/bstIvtScalebound',
method: 'put',
data
})
}
export default { add, edit, del }

View File

@@ -0,0 +1,86 @@
<template>
<div class="app-container">
<!--工具栏-->
<div class="head-container">
<!--如果想在工具栏加入更多按钮可以使用插槽方式 slot = 'left' or 'right'-->
<crudOperation :permission="permission" />
<!--表单组件-->
<el-dialog :close-on-click-modal="false" :before-close="crud.cancelCU" :visible.sync="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="设备编码">
<el-input v-model="form.device_code" style="width: 370px;" />
</el-form-item>
<el-form-item label="称重机编码">
<el-input v-model="form.scale_code" style="width: 370px;" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="text" @click="crud.cancelCU">取消</el-button>
<el-button :loading="crud.cu === 2" type="primary" @click="crud.submitCU">确认</el-button>
</div>
</el-dialog>
<!--表格渲染-->
<el-table ref="table" v-loading="crud.loading" :data="crud.data" size="mini" style="width: 100%;" @selection-change="crud.selectionChangeHandler">
<el-table-column type="selection" width="55" />
<el-table-column prop="device_code" label="设备编码" :min-width="flexWidth('device_code',crud.data,'设备编码')"/>
<el-table-column prop="scale_code" label="称重机编码" :min-width="flexWidth('scale_code',crud.data,'称重机编码')"/>
<el-table-column v-permission="[]" label="操作" width="120px" align="center" fixed="right">
<template slot-scope="scope">
<udOperation
:data="scope.row"
:permission="permission"
/>
</template>
</el-table-column>
</el-table>
<!--分页组件-->
<pagination />
</div>
</div>
</template>
<script>
import crudBstIvtScalebound from './bstIvtScalebound'
import CRUD, {crud, form, header, presenter} from '@crud/crud'
import rrOperation from '@crud/RR.operation.vue'
import crudOperation from '@crud/CRUD.operation.vue'
import udOperation from '@crud/UD.operation.vue'
import pagination from '@crud/Pagination.vue'
const defaultForm = {
scale_id: null,
device_code: null,
scale_code: null
}
export default {
name: 'BstIvtScalebound',
components: { pagination, crudOperation, rrOperation, udOperation },
mixins: [presenter(), header(), form(defaultForm), crud()],
cruds() {
return CRUD({
title: '设备与称重机绑定',
url: 'api/bstIvtScalebound',
idField: 'scale_id',
sort: 'scale_id,desc',
crudMethod: { ...crudBstIvtScalebound }
})
},
data() {
return {
permission: {
},
rules: {
} }
},
methods: {
// 钩子在获取表格数据之前执行false 则代表不获取数据
[CRUD.HOOK.beforeRefresh]() {
return true
}
}
}
</script>
<style scoped>
</style>

View File

@@ -0,0 +1,27 @@
import request from '@/utils/request'
export function add(data) {
return request({
url: 'api/bstIvtScalehistory',
method: 'post',
data
})
}
export function del(ids) {
return request({
url: 'api/bstIvtScalehistory/',
method: 'delete',
data: ids
})
}
export function edit(data) {
return request({
url: 'api/bstIvtScalehistory',
method: 'put',
data
})
}
export default { add, edit, del }

View File

@@ -0,0 +1,106 @@
<template>
<div class="app-container">
<!--工具栏-->
<div class="head-container">
<!--如果想在工具栏加入更多按钮可以使用插槽方式 slot = 'left' or 'right'-->
<crudOperation :permission="permission" />
<!--表单组件-->
<el-dialog :close-on-click-modal="false" :before-close="crud.cancelCU" :visible.sync="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="设备编码">
<el-input v-model="form.device_code" style="width: 370px;" />
</el-form-item>
<el-form-item label="称重机编码">
<el-input v-model="form.scale_code" style="width: 370px;" />
</el-form-item>
<el-form-item label="当前重量">
<el-input v-model="form.current_weight" style="width: 370px;" />
</el-form-item>
<el-form-item label="上次重量">
<el-input v-model="form.last_weight" style="width: 370px;" />
</el-form-item>
<el-form-item label="重量差">
<el-input v-model="form.weight_gap" style="width: 370px;" />
</el-form-item>
<el-form-item label="记录时间">
<el-input v-model="form.record_time" style="width: 370px;" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="text" @click="crud.cancelCU">取消</el-button>
<el-button :loading="crud.cu === 2" type="primary" @click="crud.submitCU">确认</el-button>
</div>
</el-dialog>
<!--表格渲染-->
<el-table ref="table" v-loading="crud.loading" :data="crud.data" size="mini" style="width: 100%;" @selection-change="crud.selectionChangeHandler">
<el-table-column type="selection" width="55" />
<el-table-column prop="device_code" label="设备编码" :min-width="flexWidth('device_code',crud.data,'设备编码')"/>
<el-table-column prop="scale_code" label="称重机编码" :min-width="flexWidth('scale_code',crud.data,'称重机编码')"/>
<el-table-column prop="current_weight" label="当前重量" :min-width="flexWidth('current_weight',crud.data,'当前重量')"/>
<el-table-column prop="last_weight" label="上次重量" :min-width="flexWidth('last_weight',crud.data,'上次重量')"/>
<el-table-column prop="weight_gap" label="重量差" :min-width="flexWidth('weight_gap',crud.data,'重量差')"/>
<el-table-column prop="record_time" label="记录时间" :min-width="flexWidth('record_time',crud.data,'记录时间')"/>
<el-table-column v-permission="[]" label="操作" width="120px" align="center" fixed="right">
<template slot-scope="scope">
<udOperation
:data="scope.row"
:permission="permission"
/>
</template>
</el-table-column>
</el-table>
<!--分页组件-->
<pagination />
</div>
</div>
</template>
<script>
import crudBstIvtScalehistory from './bstIvtScalehistory'
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'
const defaultForm = {
history_id: null,
device_code: null,
scale_code: null,
current_weight: null,
last_weight: null,
weight_gap: null,
record_time: null
}
export default {
name: 'BstIvtScalehistory',
components: { pagination, crudOperation, rrOperation, udOperation },
mixins: [presenter(), header(), form(defaultForm), crud()],
cruds() {
return CRUD({
title: '称重历史记录',
url: 'api/bstIvtScalehistory',
idField: 'history_id',
sort: 'history_id,desc',
crudMethod: { ...crudBstIvtScalehistory }
})
},
data() {
return {
permission: {
},
rules: {
} }
},
methods: {
// 钩子在获取表格数据之前执行false 则代表不获取数据
[CRUD.HOOK.beforeRefresh]() {
return true
}
}
}
</script>
<style scoped>
</style>

View File

@@ -0,0 +1,35 @@
import request from '@/utils/request'
export function add(data) {
return request({
url: 'api/bstIvtShafttubeivt',
method: 'post',
data
})
}
export function del(ids) {
return request({
url: 'api/bstIvtShafttubeivt/',
method: 'delete',
data: ids
})
}
export function edit(data) {
return request({
url: 'api/bstIvtShafttubeivt',
method: 'put',
data
})
}
export function setHaveShaft(data) {
return request({
url: 'api/bstIvtShafttubeivt/setHaveShaft',
method: 'post',
data
})
}
export default { add, edit, del, setHaveShaft }

View File

@@ -0,0 +1,310 @@
<template>
<div class="app-container">
<!--工具栏-->
<div class="head-container">
<div v-if="crud.props.searchToggle">
<el-form
:inline="true"
class="demo-form-inline"
label-position="right"
label-width="90px"
label-suffix=":"
>
<el-form-item label="点位编码">
<el-input
v-model="query.point_code"
clearable
placeholder="输入点位编码"
class="filter-item"
@keyup.enter.native="crud.toQuery"
/>
</el-form-item>
<el-form-item label="点位类型">
<el-select
v-model="query.point_type"
clearable
filterable
size="mini"
class="filter-item"
@change="hand"
>
<el-option
v-for="item in dict.SHAFT_POINT_TYPE"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="区域位置">
<el-select
v-model="query.point_location"
clearable
filterable
size="mini"
class="filter-item"
@change="hand"
>
<el-option
v-for="item in dict.point_location"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="是否启用">
<el-switch
v-model="query.is_used"
active-value="0"
inactive-value="1"
active-color="#C0CCDA"
inactive-color="#409EFF"
@change="hand"
/>
</el-form-item>
<rrOperation />
</el-form>
</div>
<!--如果想在工具栏加入更多按钮可以使用插槽方式 slot = 'left' or 'right'-->
<crudOperation :permission="permission">
<el-button
v-if="crud.query.point_type === '6'"
slot="right"
class="filter-item"
size="mini"
type="primary"
icon="el-icon-circle-check"
:disabled="crud.selections.length === 0"
@click="setHaveShaft(crud.selections, '1')"
>
放轴
</el-button>
<el-button
v-if="crud.query.point_type === '6'"
slot="right"
class="filter-item"
size="mini"
type="danger"
icon="el-icon-circle-close"
:disabled="crud.selections.length === 0"
@click="setHaveShaft(crud.selections, '0')"
>
清轴
</el-button>
</crudOperation>
<!--表单组件-->
<el-dialog :close-on-click-modal="false" :before-close="crud.cancelCU" :visible.sync="crud.status.cu > 0" :title="crud.status.title" width="790px">
<el-form ref="form" :model="form" :inline="true" :rules="rules" size="mini" label-width="120px">
<el-form-item label="点位编码">
<el-input v-model="form.point_code" disabled style="width: 240px;" />
</el-form-item>
<el-form-item label="点位名称">
<el-input v-model="form.point_name" disabled style="width: 240px;" />
</el-form-item>
<el-form-item label="气涨轴尺寸">
<el-input v-model="form.qzz_size" :disabled="form.point_type == '1' || form.point_type == '6'" style="width: 240px;" />
</el-form-item>
<el-form-item label="气涨轴代数">
<el-input v-model="form.qzz_generation" disabled style="width: 240px;" />
</el-form-item>
<el-form-item label="纸管1编码">
<el-input v-model="form.tube_code1" style="width: 240px;" />
</el-form-item>
<el-form-item label="纸管1描述">
<el-input v-model="form.tube_name1" style="width: 240px;" />
</el-form-item>
<el-form-item label="纸管2编码">
<el-input v-model="form.tube_code2" style="width: 240px;" />
</el-form-item>
<el-form-item label="纸管2描述">
<el-input v-model="form.tube_name2" style="width: 240px;" />
</el-form-item>
<el-form-item label="子卷号1">
<el-input v-model="form.container_name1" style="width: 240px;" />
</el-form-item>
<el-form-item label="子卷号2">
<el-input v-model="form.container_name2" style="width: 240px;" />
</el-form-item>
<el-form-item label="点位类型">
<el-select
v-model="form.point_type"
clearable
filterable
size="mini"
style="width: 240px;"
>
<el-option
v-for="item in dict.SHAFT_POINT_TYPE"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="位置">
<el-select
v-model="form.point_location"
clearable
filterable
size="mini"
style="width: 240px;"
>
<el-option
v-for="item in dict.point_location"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="是否有轴">
<el-switch v-model="form.have_qzz" active-value="1" inactive-value="0" style="width: 240px;" />
</el-form-item>
<el-form-item label="是否启用">
<el-switch v-model="form.is_used" active-value="1" inactive-value="0" style="width: 240px;" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="text" @click="crud.cancelCU">取消</el-button>
<el-button :loading="crud.cu === 2" type="primary" @click="crud.submitCU">确认</el-button>
</div>
</el-dialog>
<!--表格渲染-->
<el-table ref="table" v-loading="crud.loading" :data="crud.data" size="mini" style="width: 100%;" @selection-change="crud.selectionChangeHandler">
<el-table-column type="selection" width="55" />
<el-table-column prop="point_code" label="点位编码" :min-width="flexWidth('point_code',crud.data,'点位编码')" />
<el-table-column prop="point_name" label="点位名称" :min-width="flexWidth('point_name',crud.data,'点位名称')" />
<el-table-column prop="qzz_size" label="气涨轴尺寸" :min-width="flexWidth('qzz_size',crud.data,'气涨轴尺寸')" />
<el-table-column prop="qzz_generation" label="气涨轴代数" :min-width="flexWidth('qzz_generation',crud.data,'气涨轴代数')" />
<el-table-column prop="tube_code1" label="纸管1编码" :min-width="flexWidth('tube_code1',crud.data,'纸管1编码')" />
<el-table-column prop="tube_name1" label="纸管1描述" :min-width="flexWidth('tube_name1',crud.data,'纸管1描述')" />
<el-table-column prop="tube_code2" label="纸管2编码" :min-width="flexWidth('tube_code2',crud.data,'纸管2编码')" />
<el-table-column prop="tube_name2" label="纸管2描述" :min-width="flexWidth('tube_name2',crud.data,'纸管2描述')" />
<el-table-column prop="container_name1" label="子卷号1" :min-width="flexWidth('container_name1',crud.data,'子卷号1')" />
<el-table-column prop="container_name2" label="子卷号2" :min-width="flexWidth('container_name2',crud.data,'子卷号2')" />
<el-table-column prop="point_type" label="点位类型" :min-width="flexWidth('point_type',crud.data,'气涨轴设备位')">
<template slot-scope="scope">
{{ dict.label.SHAFT_POINT_TYPE[scope.row.point_type] }}
</template>
</el-table-column>
<el-table-column prop="point_location" label="位置" :min-width="flexWidth('point_location',crud.data,'位置')">
<template slot-scope="scope">
{{ dict.label.point_location[scope.row.point_location] }}
</template>
</el-table-column>
<el-table-column prop="have_qzz" label="是否有轴" :min-width="flexWidth('have_qzz',crud.data,'是否有轴')">
<template slot-scope="scope">
{{ scope.row.have_qzz === '1' ? '是' : '否' }}
</template>
</el-table-column>
<el-table-column prop="is_used" label="是否启用" :min-width="flexWidth('is_used',crud.data,'是否启用')">
<template slot-scope="scope">
{{ scope.row.is_used === '1' ? '是' : '否' }}
</template>
</el-table-column>
<el-table-column prop="sort_seq" label="顺序号" :min-width="flexWidth('sort_seq',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="update_optname" label="修改人" :min-width="flexWidth('update_optname',crud.data,'修改人')" />
<el-table-column prop="update_time" label="修改时间" :min-width="flexWidth('update_time',crud.data,'修改时间')" />
<el-table-column prop="plan" label="规划" :min-width="flexWidth('plan',crud.data,'规划')" />
<el-table-column v-permission="[]" label="操作" width="120px" align="center" fixed="right">
<template slot-scope="scope">
<udOperation
:data="scope.row"
:is-visiable-del="false"
:permission="permission"
/>
</template>
</el-table-column>
</el-table>
<!--分页组件-->
<pagination />
</div>
</div>
</template>
<script>
import crudBstIvtShafttubeivt from './bstIvtShafttubeivt'
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'
const defaultForm = {
ivt_id: null,
point_code: null,
point_name: null,
qzz_size: null,
qzz_generation: null,
tube_code1: null,
tube_name1: null,
tube_code2: null,
tube_name2: null,
container_name1: null,
container_name2: null,
point_type: null,
point_location: null,
have_qzz: null,
is_used: null,
sort_seq: null,
create_id: null,
create_name: null,
create_time: null,
update_optid: null,
update_optname: null,
update_time: null,
plan: null
}
export default {
name: 'BstIvtShafttubeivt',
components: { pagination, crudOperation, rrOperation, udOperation },
mixins: [presenter(), header(), form(defaultForm), crud()],
dicts: ['SHAFT_POINT_TYPE', 'point_location'],
cruds() {
return CRUD({
title: '穿拔轴区点位库存管理',
url: 'api/bstIvtShafttubeivt',
idField: 'ivt_id',
sort: 'ivt_id,desc',
crudMethod: { ...crudBstIvtShafttubeivt },
optShow: {
add: false,
edit: true,
del: false,
download: false,
reset: true
}
})
},
data() {
return {
permission: {
},
rules: {
}
}
},
methods: {
// 钩子在获取表格数据之前执行false 则代表不获取数据
[CRUD.HOOK.beforeRefresh]() {
return true
},
hand(value) {
this.crud.toQuery()
},
setHaveShaft(data, falg) {
const param = {
data: data,
have_qzz: falg
}
crudBstIvtShafttubeivt.setHaveShaft(param).then(res => {
this.crud.notify('操作成功', CRUD.NOTIFICATION_TYPE.SUCCESS)
this.crud.toQuery()
})
}
}
}
</script>
<style scoped>
</style>

View File

@@ -0,0 +1,50 @@
import request from '@/utils/request'
export function add(data) {
return request({
url: 'api/bstIvtStockingivt',
method: 'post',
data
})
}
export function del(ids) {
return request({
url: 'api/bstIvtStockingivt/',
method: 'delete',
data: ids
})
}
export function edit(data) {
return request({
url: 'api/bstIvtStockingivt',
method: 'put',
data
})
}
export function showDetail(data) {
return request({
url: 'api/bstIvtStockingivt/showDetail',
method: 'post',
data
})
}
export function showDetail2(params) {
return request({
url: 'api/bstIvtStockingivt/showDetail2',
method: 'get',
params
})
}
export function showBom2(params) {
return request({
url: 'api/bstIvtStockingivt/showBom2',
method: 'get',
params
})
}
export default { add, edit, del, showDetail, showDetail2, showBom2 }

View File

@@ -0,0 +1,251 @@
<template>
<div class="app-container">
<!--工具栏-->
<div class="head-container">
<!--如果想在工具栏加入更多按钮可以使用插槽方式 slot = 'left' or 'right'-->
<crudOperation :permission="permission" />
<!--表单组件-->
<el-dialog :close-on-click-modal="false" :before-close="crud.cancelCU" :visible.sync="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="point_code">
<el-input v-model="form.point_code" style="width: 370px;" />
</el-form-item>
<el-form-item label="点位名称">
<el-input v-model="form.point_name" style="width: 370px;" />
</el-form-item>
<el-form-item label="托盘号">
<el-input v-model="form.vehicle_code" style="width: 370px;" />
</el-form-item>
<el-form-item label="区域">
<el-input v-model="form.product_area" style="width: 370px;" />
</el-form-item>
<el-form-item label="点位类型">
<el-select
v-model="form.point_type"
size="mini"
placeholder="点位类型"
class="filter-item"
style="width: 370px;"
>
<el-option
v-for="item in dict.STOCK_POINT_TYPE"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="点位状态">
<el-select
v-model="form.ivt_status"
size="mini"
placeholder="点位状态"
class="filter-item"
style="width: 370px;"
>
<el-option
v-for="item in dict.STOCK_POINT_STATUS"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="位置">
<el-select
v-model="form.point_location"
size="mini"
placeholder="位置"
class="filter-item"
style="width: 370px;"
>
<el-option
v-for="item in dict.point_location"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="顺序号" prop="sort_seq">
<el-input v-model="form.sort_seq" style="width: 370px;" />
</el-form-item>
<el-form-item label="是否启用" prop="is_used">
<el-switch v-model="form.is_used" active-value="1" inactive-value="0" style="width: 240px;" />
</el-form-item>
<el-form-item label="备注">
<el-input v-model="form.remark" style="width: 370px;" />
</el-form-item>
<el-form-item label="规划">
<el-input v-model="form.plan" style="width: 370px;" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="text" @click="crud.cancelCU">取消</el-button>
<el-button :loading="crud.cu === 2" type="primary" @click="crud.submitCU">确认</el-button>
</div>
</el-dialog>
<!--表格渲染-->
<el-table
ref="table"
v-loading="crud.loading"
:data="crud.data"
size="mini"
style="width: 100%;"
:highlight-current-row="true"
@selection-change="crud.selectionChangeHandler"
>
<el-table-column type="selection" width="55" />
<el-table-column prop="point_code" label="点位编码" :min-width="flexWidth('point_code',crud.data,'点位编码')"/>
<!-- <template slot-scope="scope">
<el-link type="primary" @click="toView(scope.$index, scope.row)">{{ scope.row.point_code }}</el-link>
</template>
</el-table-column>-->
<el-table-column prop="point_name" label="点位名称" :min-width="flexWidth('point_name',crud.data,'点位名称')" />
<el-table-column prop="vehicle_code" label="托盘号" :min-width="flexWidth('vehicle_code',crud.data,'托盘号')">
<template slot-scope="scope">
<el-link type="primary" @click="toView2(scope.$index, scope.row)">{{ scope.row.vehicle_code }}</el-link>
</template>
</el-table-column>
<el-table-column prop="point_type" label="点位类型" :min-width="flexWidth('point_type',crud.data,'点位类型')">
<template slot-scope="scope">
{{ dict.label.STOCK_POINT_TYPE[scope.row.point_type] }}
</template>
</el-table-column>
<el-table-column prop="ivt_status" label="点位状态" :min-width="flexWidth('ivt_status',crud.data,'点位状态')">
<template slot-scope="scope">
{{ dict.label.STOCK_POINT_STATUS[scope.row.ivt_status] }}
</template>
</el-table-column>
<el-table-column prop="point_location" label="位置" :min-width="flexWidth('point_location',crud.data,'位置')">
<template slot-scope="scope">
{{ dict.label.point_location[scope.row.point_location] }}
</template>
</el-table-column>
<el-table-column prop="sort_seq" label="顺序号" :min-width="flexWidth('sort_seq',crud.data,'顺序号')" />
<el-table-column prop="is_used" label="是否启用" :min-width="flexWidth('is_used',crud.data,'是否启用')">
<template slot-scope="scope">
{{ scope.row.is_used === '1' ? '启用' : '禁用' }}
</template>
</el-table-column>
<el-table-column prop="remark" label="备注" :min-width="flexWidth('remark',crud.data,'备注')" />
<el-table-column prop="update_optname" label="修改人" :min-width="flexWidth('update_optname',crud.data,'修改人')" />
<el-table-column prop="update_time" label="修改时间" :min-width="flexWidth('update_time',crud.data,'修改时间')" />
<el-table-column prop="plan" label="规划" :min-width="flexWidth('plan',crud.data,'规划')" />
<el-table-column v-permission="[]" label="操作" width="120px" align="center" fixed="right">
<template slot-scope="scope">
<udOperation
:data="scope.row"
:disabled-dle="true"
:permission="permission"
/>
</template>
</el-table-column>
</el-table>
<!--分页组件-->
<pagination />
</div>
<tube-dialog2 :dialog-show.sync="showView2" :rowmst="mstrow" @AddChanged="querytable" />
</div>
</template>
<script>
import crudBstIvtStockingivt from './bstIvtStockingivt'
import CRUD, { crud, form, header, presenter } from '@crud/crud'
import crudOperation from '@crud/CRUD.operation'
import udOperation from '@crud/UD.operation'
import pagination from '@crud/Pagination'
import TubeDialog2 from '@/views/b_lms/bst/ivt/stockingivt/tubeDialog2.vue'
const defaultForm = {
ivt_id: null,
point_code: null,
point_name: null,
vehicle_code: null,
product_area: null,
point_type: null,
ivt_status: null,
point_location: null,
sort_seq: null,
is_used: null,
remark: null,
create_id: null,
create_name: null,
create_time: null,
update_optid: null,
update_optname: null,
update_time: null,
plan: null
}
export default {
name: 'BstIvtStockingivt',
dicts: ['STOCK_POINT_STATUS', 'STOCK_POINT_TYPE', 'point_location'],
components: { TubeDialog2, pagination, crudOperation, udOperation },
mixins: [presenter(), header(), form(defaultForm), crud()],
cruds() {
return CRUD({
title: '备货区点位库存表',
url: 'api/bstIvtStockingivt',
idField: 'ivt_id',
sort: 'ivt_id,desc',
crudMethod: { ...crudBstIvtStockingivt },
optShow: {
add: false,
edit: true,
del: false,
download: false,
reset: true
}
})
},
data() {
return {
permission: {
},
rules: {
ivt_id: [
{ required: true, message: '库存记录标识不能为空', trigger: 'blur' }
],
point_code: [
{ required: true, message: '点位编码不能为空', trigger: 'blur' }
],
sort_seq: [
{ required: true, message: '顺序号不能为空', trigger: 'blur' }
],
is_used: [
{ required: true, message: '是否启用不能为空', trigger: 'blur' }
],
create_id: [
{ required: true, message: '创建人不能为空', trigger: 'blur' }
],
create_name: [
{ required: true, message: '创建人不能为空', trigger: 'blur' }
],
create_time: [
{ required: true, message: '创建时间不能为空', trigger: 'blur' }
]
},
showView: false,
vehicle_code: '',
showView2: false,
rows: [],
mstrow: {}
}
},
methods: {
// 钩子在获取表格数据之前执行false 则代表不获取数据
[CRUD.HOOK.beforeRefresh]() {
return true
},
querytable() {
this.$refs.table.clearSelection()
this.crud.toQuery()
},
toView2(index, row) {
this.showView2 = true
this.mstrow = row
}
}
}
</script>
<style scoped>
</style>

View File

@@ -0,0 +1,125 @@
<template>
<el-dialog :visible.sync="dialogVisible" title="托盘详情">
<div class="grid-container">
<div
v-for="(row, rowIndex) in grid"
:key="rowIndex"
class="grid-row"
>
<div
v-for="(cell, colIndex) in row"
:key="colIndex"
class="grid-cell"
>
<img
:src="cell.have_qzz == '0' ? imageC : cell.have_qzz == '1' ? imageA : imageB"
alt="方块"
class="grid-image"
>
</div>
</div>
</div>
</el-dialog>
</template>
<script>
import crudBstIvtStockingivt from './bstIvtStockingivt'
export default {
name: 'TubeDialog',
props: {
dialogShow: {
type: Boolean,
default: false
},
rows: {
type: Object
},
vehicleCode: {
type: String
}
},
data() {
return {
dialogVisible: false,
form: {},
imageA: require('@/assets/images/empty.png'), // 默认图片路径
imageC: require('@/assets/images/empty2.png'), // 默认图片路径
imageB: require('@/assets/images/showTube.png'), // 特殊状态图片路径
grid: Array(5).fill().map(() =>
Array(5).fill().map(() => ({
have_qzz: false
}))
)
}
},
watch: {
dialogShow: {
handler(newValue) {
this.dialogVisible = newValue
}
},
rows: {
handler(newValue) {
this.grid = newValue
}
}
},
methods: {
open() {
// this.queryTableDtl()
},
close() {
this.$emit('update:dialogShow', false)
this.currentDis = {}
this.currentdtl = null
this.tableDtl = []
this.tabledis = []
this.$emit('AddChanged')
},
// toggleCell(row, col) {
// console.log(this.grid)
// this.$set(this.grid[row], col, {
// ...this.grid[row][col],
// have_qzz: !this.grid[row][col].have_qzz
// })
// },
queryTableDtl() {
const param = {
vehicle_code: this.vehicle_code
}
crudBstIvtStockingivt.showDetail(param).then(res => {
this.grid = res
})
}
}
}
</script>
<style scoped>
.grid-container {
display: flex;
flex-direction: column;
gap: 5px;
}
.grid-row {
display: flex;
gap: 5px;
justify-content: center;
}
.grid-cell {
width: 50px;
height: 50px;
cursor: pointer;
border: 1px solid #ddd;
transition: all 0.3s;
}
.grid-image {
width: 100%;
height: 100%;
object-fit: cover;
}
</style>

View File

@@ -0,0 +1,114 @@
<template>
<el-dialog
append-to-body
title="托盘详情"
:visible.sync="dialogVisible"
destroy-on-close
fullscreen
@close="close"
@open="open"
>
<div class="grid-container">
<el-table
ref="table2"
:data="tableDtl"
style="width: 100%;"
max-height="300"
size="mini"
border
:highlight-current-row="true"
:header-cell-style="{background:'#f5f7fa',color:'#606266'}"
>
<el-table-column min-width="50" show-overflow-tooltip prop="vehicle_code" label="托盘号" align="center" />
<el-table-column min-width="50" show-overflow-tooltip prop="row_num" label="排" align="center" />
<el-table-column prop="material_code" label="物料号" align="center" width="150" />
<el-table-column prop="material_name" label="物料名称" align="center" />
<el-table-column min-width="50" prop="qty" label="数量" align="center" :formatter="crud.formatNum0" />
<el-table-column prop="update_time" label="修改时间" align="center" />
<el-table-column prop="update_optname" label="修改人" align="center" />
</el-table>
</div>
</el-dialog>
</template>
<script>
import crudBstIvtStockingivt from './bstIvtStockingivt'
import { crud } from '@crud/crud'
export default {
name: 'TubeDialog2',
components: { },
mixins: [crud()],
props: {
dialogShow: {
type: Boolean,
default: false
},
rowmst: {
type: Object
}
},
data() {
return {
dialogVisible: false,
tableDtl: [],
form: {}
}
},
watch: {
dialogShow: {
handler(newValue) {
this.dialogVisible = newValue
}
},
rowmst: {
handler(newValue) {
this.form = newValue
}
}
},
methods: {
open() {
this.queryTableDtl()
},
close() {
this.$emit('update:dialogShow', false)
this.tableDtl = []
this.$emit('AddChanged')
},
queryTableDtl() {
crudBstIvtStockingivt.showDetail2({ 'vehicle_code': this.form.vehicle_code }).then(res => {
this.tableDtl = res
})
}
}
}
</script>
<style scoped>
.grid-container {
display: flex;
flex-direction: column;
gap: 5px;
}
.grid-row {
display: flex;
gap: 5px;
justify-content: center;
}
.grid-cell {
width: 50px;
height: 50px;
cursor: pointer;
border: 1px solid #ddd;
transition: all 0.3s;
}
.grid-image {
width: 100%;
height: 100%;
object-fit: cover;
}
</style>