add:PC桶记录

This commit is contained in:
2026-01-13 20:06:12 +08:00
parent 841aa2b367
commit bf1f191be9
19 changed files with 782 additions and 53 deletions

View File

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

View File

@@ -0,0 +1,287 @@
<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="80px"
label-suffix=":"
>
<el-form-item label="物料查询">
<el-input
v-model="query.material_code"
clearable
size="mini"
placeholder="物料编码、名称"
@keyup.enter.native="crud.toQuery"
/>
</el-form-item>
<el-form-item label="批次号">
<el-input
v-model="query.pcsn"
clearable
size="mini"
placeholder="批次"
@keyup.enter.native="crud.toQuery"
/>
</el-form-item>
<el-form-item label="桶码">
<el-input
v-model="query.bucket_code"
clearable
size="mini"
placeholder="载具编码"
@keyup.enter.native="crud.toQuery"
/>
</el-form-item>
<rrOperation />
</el-form>
</div>
<rrOperation />
<!--如果想在工具栏加入更多按钮可以使用插槽方式 slot = 'left' or 'right'-->
<crudOperation :permission="permission">
<el-button
slot="right"
class="filter-item"
type="success"
icon="el-icon-printer"
size="mini"
:disabled="crud.selections.length !== 1"
@click="printTable"
>
桶标签
</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="1200px"
>
<el-form ref="form" :model="form" :rules="rules" size="mini" label-width="110px">
<el-row>
<el-col :span="8">
<el-form-item label="物料编码" prop="material_code">
<el-select
v-model="form.material_code"
size="mini"
placeholder="全部"
style="width: 200px"
class="filter-item"
filterable
:disabled="crud.status.edit > 0"
@change="queryMater"
>
<el-option
v-for="item in materList"
:key="item.material_code"
:label="item.material_name"
:value="item.material_code"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="物料名称" prop="material_name">
<el-input v-model="form.material_name" disabled style="width: 200px;" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="物料规格" prop="material_spec">
<el-input v-model="form.material_spec" disabled style="width: 200px;" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="桶码" prop="bucket_code">
<el-input v-model="form.bag_code" disabled placeholder="系统生成" style="width: 200px;" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="物料批号" prop="pcsn">
<el-input v-model="form.pcsn" style="width: 200px;" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="物料重量" prop="qty">
<el-input-number v-model="form.qty" :precision="2" :controls="false" :min="1" style="width: 200px" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="桶自重" prop="qty">
<el-input-number v-model="form.bucket_weight" :precision="2" :controls="false" :min="1" style="width: 200px" />
</el-form-item>
</el-col>
</el-row>
</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="bucket_code" label="桶码" :min-width="flexWidth('bucket_code',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="material_spec" label="物料规格" :min-width="flexWidth('material_spec',crud.data,'物料规格')" />
<el-table-column prop="pcsn" label="批次" :min-width="flexWidth('pcsn',crud.data,'批次')" />
<el-table-column prop="qty" label="重量" :formatter="crud.formatNum3" :min-width="100" />
<el-table-column prop="bucket_weight" label="桶自重" :formatter="crud.formatNum3" :min-width="100" />
<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
v-permission="['admin','Supplierbase:edit','Supplierbase:del']"
label="操作"
width="150px"
lign="center"
fixed="right"
>
<template slot-scope="scope">
<udOperation
:is-visiable-del="false"
:data="scope.row"
:permission="permission"
/>
</template>
</el-table-column>
</el-table>
<!--分页组件-->
<pagination />
</div>
</div>
</template>
<script>
import crudBucked from '@/views/wms/basedata/bucked/bucked'
import crudGroup from '@/views/wms/basedata/group/group'
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 rrOperation from '@crud/RR.operation'
import {getLodop} from '@/assets/js/lodop/LodopFuncs'
const defaultForm = {
id: null,
bucket_code: null,
bucket_weight: null,
material_id: null,
pcsn: null,
qty: null,
qty_unit_id: null,
qty_unit_name: null,
create_id: null,
create_name: null,
create_time: null,
material_spec: null,
material_name: null
}
export default {
name: 'Bucked',
components: { pagination, crudOperation, rrOperation, udOperation },
mixins: [presenter(), header(), form(defaultForm), crud()],
// 数据字典
dicts: [],
cruds() {
return CRUD({
title: '组桶记录',
url: 'api/bucked',
optShow: {
add: true,
edit: false,
del: false,
download: false,
reset: true
},
idField: 'id',
sort: 'id,desc',
crudMethod: { ...crudBucked }
})
},
data() {
return {
permission: {},
materList: [],
rules: {
material_code: [
{ required: true, message: '物料不能为空', trigger: 'blur' }
],
vehicle_code: [
{ required: true, message: '载具不能为空', trigger: 'blur' }
],
pcsn: [
{ required: true, message: '批次不能为空', trigger: 'blur' }
],
supp_code: [
{ required: true, message: '供应商不能为空', trigger: 'blur' }
]
}
}
},
created() {
crudGroup.queryMaterList({}).then(res => {
this.materList = res
})
},
methods: {
// 钩子在获取表格数据之前执行false 则代表不获取数据
[CRUD.HOOK.beforeRefresh]() {
return true
},
queryMater(value) {
crudGroup.queryMater({ 'material_code': value }).then(row => {
this.form.material_spec = row.material_spec
this.form.material_name = row.material_name
this.form.material_id = row.material_id
}).catch(() => {
this.form.material_spec = ''
this.form.material_name = ''
this.form.material_code = ''
this.form.material_id = ''
})
},
printTable() {
const row = this.$refs.table.selection[0]
const LODOP = getLodop()
LODOP.SET_SHOW_MODE('HIDE_DISBUTTIN_SETUP', 1)// 隐藏那些无效按钮
// 打印纸张大小设置https://www.it610.com/article/2094844.html
LODOP.PRINT_INIT('')
LODOP.SET_PRINT_PAGESIZE(1, '94mm', '119mm', '')
LODOP.ADD_PRINT_RECT('1mm', '3mm', '92mm', '117mm', 0, 1)
LODOP.ADD_PRINT_BARCODE('42.57mm', '15.05mm', '69.8mm', '23.97mm', '128A', row.bucket_code + '')
LODOP.PRINT()// 打印
// LODOP.PREVIEW()// 预览
// LODOP.PRINT_DESIGN()
this.crud.notify('打印成功', CRUD.NOTIFICATION_TYPE.SUCCESS)
this.crud.toQuery()
}
}
}
</script>
<style scoped>
</style>

View File

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

View File

@@ -58,7 +58,7 @@
</div>
<!--如果想在工具栏加入更多按钮可以使用插槽方式 slot = 'left' or 'right'-->
<crudOperation :permission="permission">
<el-button
<!-- <el-button
slot="right"
class="filter-item"
type="success"
@@ -68,7 +68,7 @@
@click="printTable"
>
物料标签
</el-button>
</el-button>-->
</crudOperation>
<!--表格渲染-->
<el-table

View File

@@ -59,7 +59,7 @@
<rrOperation />
<!--如果想在工具栏加入更多按钮可以使用插槽方式 slot = 'left' or 'right'-->
<crudOperation :permission="permission">
<!-- <el-button
<!-- <el-button
slot="right"
class="filter-item"
type="primary"
@@ -129,7 +129,7 @@
<el-row>
<el-col :span="8">
<el-form-item label="袋码" prop="bag_code">
<el-input v-model="form.bag_code" :disabled="crud.status.edit > 0" style="width: 200px;" />
<el-input v-model="form.bag_code" disabled placeholder="系统生成" style="width: 200px;" />
</el-form-item>
</el-col>
@@ -277,6 +277,7 @@ export default {
permission: {},
openParam: {},
materList: [],
recordNo: null,
openAddDtlDialog: false,
suppList: [],
rules: {
@@ -286,9 +287,6 @@ export default {
vehicle_code: [
{ required: true, message: '载具不能为空', trigger: 'blur' }
],
bag_code: [
{ required: true, message: '袋码不能为空', trigger: 'blur' }
],
pcsn: [
{ required: true, message: '批次不能为空', trigger: 'blur' }
],
@@ -305,6 +303,9 @@ export default {
crudGroup.queryMaterList({}).then(res => {
this.materList = res
})
crudGroup.queryRecordNo({}).then(res => {
this.recordNo = res.recordNo
})
},
methods: {
// 钩子在获取表格数据之前执行false 则代表不获取数据
@@ -327,45 +328,79 @@ export default {
return this.dict.label.GROUP_STATUS[row.status]
},
printTable() {
let row = this.$refs.table.selection[0]
var bake_num = row.bake_num
if (row.out_type === '1004') {
bake_num += 1
}
const row = this.$refs.table.selection[0]
const LODOP = getLodop()
LODOP.SET_SHOW_MODE('HIDE_DISBUTTIN_SETUP', 1)// 隐藏那些无效按钮
// 打印纸张大小设置https://www.it610.com/article/2094844.html
LODOP.PRINT_INIT('')
LODOP.SET_PRINT_PAGESIZE(1, '100mm', '80mm', '')
LODOP.ADD_PRINT_RECT('1mm', '3mm', '94mm', '74mm', 0, 1)
LODOP.SET_PRINT_STYLE('FontSize', 11)
LODOP.SET_PRINT_STYLE('Bold', 1)
LODOP.ADD_PRINT_BARCODE('5mm', '5mm', '40mm', '40mm', 'QRCode', row.material_code + '##' + row.material_name + '##' +
row.material_spec + '##' + row.material_model + '##' + row.quality_time_day + '##' + row.produce_time + '##' +
row.supp_name + '##' + row.bake_num + '##' + row.supp_code + '##' + row.pcsn + '##' + row.execution_stand
)
LODOP.ADD_PRINT_TEXT('7mm', '48mm', '80mm', '15mm', '物料编码:' + row.material_code + '')
LODOP.ADD_PRINT_TEXT('16mm', '48mm', '80mm', '15mm', '物料名称:' + row.material_name + '')
LODOP.ADD_PRINT_TEXT('25mm', '48mm', '80mm', '15mm', '规格:' + row.material_spec + '')
LODOP.ADD_PRINT_TEXT('34mm', '48mm', '80mm', '15mm', '型号:' + row.material_model + '')
LODOP.ADD_PRINT_TEXT('43mm', '48mm', '80mm', '15mm', '有效期(天)' + row.quality_time_day + '')
LODOP.ADD_PRINT_TEXT('52mm', '48mm', '80mm', '15mm', '生产日期:' + row.produce_time + '')
LODOP.ADD_PRINT_TEXT('61mm', '48mm', '80mm', '15mm', '供应商名称:' + row.supp_name + '')
LODOP.SET_PRINT_PAGESIZE(1, '94mm', '119mm', '')
LODOP.ADD_PRINT_RECT('1mm', '3mm', '92mm', '117mm', 0, 1)
LODOP.ADD_PRINT_RECT('1.01mm', '2.99mm', '92mm', '117mm', 0, 1)
LODOP.ADD_PRINT_RECT('1.01mm', '2.99mm', '92mm', '117mm', 0, 1)
LODOP.ADD_PRINT_RECT('1.01mm', '2.99mm', '92mm', '117mm', 0, 1)
LODOP.ADD_PRINT_RECT('1.01mm', '2.99mm', '92mm', '117mm', 0, 1)
LODOP.ADD_PRINT_TEXT('2.88mm', '35.4mm', '32.65mm', '5.95mm', '中 美 华 东 制 药')
LODOP.ADD_PRINT_TEXT('6.56mm', '22.33mm', '62.02mm', '5.69mm', 'Zhongmei Huadong Pharmaceutical')
LODOP.ADD_PRINT_TEXT('10.45mm', '26.83mm', '56.73mm', '7.01mm', '物 料 卡 Material Card')
LODOP.SET_PRINT_STYLEA(0, 'FontSize', 11)
LODOP.ADD_PRINT_TEXT('15.48mm', '5.13mm', '93.24mm', '5.69mm', '依据《状态标识牌的有关规定》QA-SMP-B005制定此记录')
LODOP.SET_PRINT_STYLEA(0, 'FontSize', 8)
LODOP.ADD_PRINT_TEXT('19.45mm', '5.13mm', '128.69mm', '7.01mm', 'Establish this record according to “SMP for status signboard”')
LODOP.SET_PRINT_STYLEA(0, 'FontSize', 8)
LODOP.ADD_PRINT_TEXT('22.89mm', '5.13mm', '27.62mm', '4.37mm', '(QA-SMP-B005)')
LODOP.SET_PRINT_STYLEA(0, 'FontSize', 8)
LODOP.ADD_PRINT_TEXT('26.86mm', '5.13mm', '66.78mm', '4.37mm', '记录编号 Record No.: ' + this.recordNo + '')
LODOP.SET_PRINT_STYLEA(0, 'FontSize', 8)
LODOP.ADD_PRINT_TEXT('31.64mm', '4.87mm', '87.95mm', '5.69mm', '物 料 名 称 Material Name: ' + row.material_name + '')
LODOP.ADD_PRINT_TEXT('37.17mm', '4.74mm', '42.44mm', '5.69mm', '物 料 批 号 及 代 码')
LODOP.ADD_PRINT_TEXT('40.9mm', '4.74mm', '86.1mm', '5.69mm', 'Material Batch No. and Code: ' + row.pcsn + '')
LODOP.ADD_PRINT_TEXT('46.78mm', '4.47mm', '27.09mm', '5.69mm', '有 效 期 至 口')
LODOP.ADD_PRINT_TEXT('46.78mm', '47.33mm', '27.62mm', '5.69mm', '复 验 期 至 口')
LODOP.ADD_PRINT_TEXT('51.01mm', '47.33mm', '21.54mm', '5.69mm', 'Expory Date')
LODOP.ADD_PRINT_TEXT('51.01mm', '4.47mm', '27.09mm', '5.69mm', 'Retest Date')
LODOP.ADD_PRINT_TEXT('56.83mm', '4.47mm', '86.62mm', '7.01mm', '经 销 商 Distributor:')
LODOP.ADD_PRINT_TEXT('62.92mm', '4.47mm', '85.3mm', '7.01mm', '生 产 商 Manufacturer:')
LODOP.ADD_PRINT_TEXT('69.74mm', '9.5mm', '11.22mm', '5.69mm', '日 期')
LODOP.SET_PRINT_STYLEA(0, 'FontSize', 10)
LODOP.ADD_PRINT_TEXT('73.42mm', '10.82mm', '9.63mm', '5.69mm', 'Date')
LODOP.ADD_PRINT_TEXT('69.61mm', '28.55mm', '20.48mm', '5.69mm', '重量(数量)')
LODOP.SET_PRINT_STYLEA(0, 'FontSize', 10)
LODOP.ADD_PRINT_TEXT('73.53mm', '31.46mm', '13.6mm', '4.37mm', 'Weight')
LODOP.ADD_PRINT_TEXT('69.69mm', '54.48mm', '14.92mm', '5.69mm', '经手人')
LODOP.SET_PRINT_STYLEA(0, 'FontSize', 10)
LODOP.ADD_PRINT_TEXT('73.03mm', '53.95mm', '15.72mm', '4.37mm', 'Operator')
LODOP.ADD_PRINT_TEXT('69.72mm', '75.38mm', '14.13mm', '5.69mm', '复核人')
LODOP.SET_PRINT_STYLEA(0, 'FontSize', 10)
LODOP.ADD_PRINT_TEXT('72.79mm', '74.59mm', '16.25mm', '4.37mm', 'Reviewer')
LODOP.ADD_PRINT_TEXT('79.27mm', '5mm', '19.16mm', '5.69mm', row.create_time.slice(0, 10) + '')
LODOP.SET_PRINT_STYLEA(0, 'Alignment', 2)
LODOP.ADD_PRINT_TEXT('79.27mm', '31.46mm', '15mm', '5.69mm', row.qty + '')
LODOP.SET_PRINT_STYLEA(0, 'Alignment', 2)
LODOP.ADD_PRINT_TEXT('86.47mm', '5.27mm', '35.03mm', '5.69mm', '合 格 Qualified 口')
LODOP.ADD_PRINT_TEXT('86.47mm', '45.22mm', '40.06mm', '5.69mm', '不 合 格 Unqualified 口')
LODOP.ADD_PRINT_TEXT('91.49mm', '5.27mm', '27.09mm', '5.69mm', '储 存 条 件:')
LODOP.ADD_PRINT_TEXT('95.73mm', '5.27mm', '36.35mm', '5.69mm', 'Stroage conditions')
LODOP.ADD_PRINT_TEXT('101.28mm', '5.27mm', '27.09mm', '5.69mm', '备 注 Remarks:')
LODOP.ADD_PRINT_LINE(114, 11, 114, 360, 0, 0)
LODOP.ADD_PRINT_LINE(136, 11, 136, 360, 0, 0)
LODOP.ADD_PRINT_LINE(171, 11, 171, 360, 0, 0)
LODOP.ADD_PRINT_LINE(209, 11, 209, 360, 0, 0)
LODOP.ADD_PRINT_LINE(231, 11, 231, 360, 0, 0)
LODOP.ADD_PRINT_LINE(254, 11, 254, 360, 0, 0)
LODOP.ADD_PRINT_LINE(291, 11, 291, 360, 0, 0)
LODOP.ADD_PRINT_LINE(320, 11, 320, 360, 0, 0)
LODOP.ADD_PRINT_LINE(378, 11, 378, 360, 0, 0)
LODOP.ADD_PRINT_LINE(401, 11, 401, 360, 0, 0)
LODOP.ADD_PRINT_LINE(320, 96, 254, 96, 0, 1)
LODOP.ADD_PRINT_LINE(320, 182, 254, 182, 0, 1)
LODOP.ADD_PRINT_LINE(320, 265, 254, 265, 0, 1)
LODOP.ADD_PRINT_BARCODE('107.13mm', '22.99mm', '57.1mm', '10.74mm', '128A', row.bag_code + '')
LODOP.ADD_PRINT_TEXT('43mm', '5mm', '80mm', '15mm', '烘干次数:' + bake_num + '')
LODOP.ADD_PRINT_TEXT('52mm', '5mm', '80mm', '15mm', '供应商编码:' + row.supp_code + '')
LODOP.ADD_PRINT_TEXT('61mm', '5mm', '80mm', '15mm', '批号:' + row.pcsn + '')
LODOP.ADD_PRINT_TEXT('69mm', '5mm', '80mm', '15mm', '执行标准:' + row.execution_stand + '')
LODOP.PRINT()// 打印
// LODOP.PREVIEW()// 预览
// LODOP.PRINT_DESIGN()
// LODOP.PRINT()// 打印
LODOP.PREVIEW()// 预览
// 调用删除
if (row.out_type === '1004' && row.is_need_delete === '1') {
crudGroup.printDelete(row).then(res => {
})
}
this.crud.notify('操作成功!', CRUD.NOTIFICATION_TYPE.SUCCESS)
this.crud.notify('打印成功', CRUD.NOTIFICATION_TYPE.SUCCESS)
this.crud.toQuery()
}
}