Files
longdianningxing/lms/nladmin-ui/src/views/wms/pdm/bi/index.vue
2022-12-29 13:52:55 +08:00

549 lines
24 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<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="115px"
label-suffix=":"
>
<el-form-item label="物料编码">
<el-input
v-model="query.material_code"
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.material_name"
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.package_box_sn"
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.container_name"
clearable
placeholder="输入子卷号"
style="width: 185px;"
class="filter-item"
@keyup.enter.native="crud.toQuery"
/>
</el-form-item>
<el-form-item label="是否计划外子卷">
<el-select
v-model="query.is_un_plan_production"
clearable
size="mini"
placeholder="请选择"
class="filter-item"
@change="hand"
>
<el-option
v-for="item in isPlanProducList"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="sap批次">
<el-input
v-model="query.sap_pcsn"
clearable
placeholder="输入sap批次"
style="width: 185px;"
class="filter-item"
@keyup.enter.native="crud.toQuery"
/>
</el-form-item>
<el-form-item label="制造完成日期">
<el-date-picker
v-model="query.date_of_production"
type="date"
placeholder="选择日期时间"
style="width: 185px"
value-format="yyyy-MM-dd"
@change="hand"
>
</el-date-picker>
</el-form-item>
<el-form-item label="入库日期">
<el-date-picker
v-model="query.date_of_FG_inbound"
type="date"
placeholder="选择日期时间"
style="width: 185px"
value-format="yyyy-MM-dd"
@change="hand"
>
</el-date-picker>
</el-form-item>
<el-form-item label="状态">
<el-select
v-model="query.status"
clearable
size="mini"
placeholder="请选择"
class="filter-item"
@change="hand"
>
<el-option
v-for="item in dict.sub_package_relation"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="订单号">
<el-input
v-model="query.sale_order_name"
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.customer_name"
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.customer_description"
clearable
placeholder="输入客户名称"
style="width: 185px;"
class="filter-item"
@keyup.enter.native="crud.toQuery"
/>
</el-form-item>
<!-- <el-form-item label="满轴位状态">
<el-select
v-model="query.full_point_status"
clearable
filterable
size="mini"
class="filter-item"
style="width: 185px;"
@change="hand"
>
<el-option
v-for="item in dict.sch_full_point_status"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>-->
<rrOperation :crud="crud" />
</el-form>
</div>
<!--如果想在工具栏加入更多按钮可以使用插槽方式 slot = 'left' or 'right'-->
<crudOperation :permission="permission">
<el-button
slot="right"
class="filter-item"
type="success"
icon="el-icon-check"
size="mini"
@click="downdtl"
>
导出Excel
</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="1000px">
<el-form ref="form" :model="form" :rules="rules" size="mini" label-width="160px">
<el-row>
<el-col :span="12">
<el-form-item label="木箱唯一码">
<el-input v-model="form.package_box_sn" style="width: 300px;" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="箱内子卷数量">
<el-input v-model="form.quanlity_in_box" style="width: 300px;" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="木箱自身重量">
<el-input v-model="form.box_weight" style="width: 300px;" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="保质期">
<el-input v-model="form.quality_guaran_period" style="width: 300px;" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="客户编码" prop="customer_name">
<el-input v-model="form.customer_name" style="width: 300px;" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="客户名称" prop="customer_description">
<el-input v-model="form.customer_description" style="width: 300px;" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="产品编码" prop="product_name">
<el-input v-model="form.product_name" style="width: 300px;" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="产品描述" prop="product_description">
<el-input v-model="form.product_description" style="width: 300px;" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="入库日期">
<el-input v-model="form.date_of_fg_inbound" style="width: 300px;" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="子卷号" prop="container_name">
<el-input v-model="form.container_name" style="width: 300px;" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="产品规格(幅宽)" prop="width">
<el-input v-model="form.width" style="width: 300px;" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="产品厚度" prop="thickness">
<el-input v-model="form.thickness" style="width: 300px;" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="单位面积质量" prop="mass_per_unit_area">
<el-input v-model="form.mass_per_unit_area" style="width: 300px;" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="净重" prop="net_weight">
<el-input v-model="form.net_weight" style="width: 300px;" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="长度" prop="length">
<el-input v-model="form.length" style="width: 300px;" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="制造完成日期" prop="date_of_production">
<el-input v-model="form.date_of_production" style="width: 300px;" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="计划外分切的子卷" prop="is_un_plan_production">
<el-input v-model="form.is_un_plan_production" style="width: 300px;" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="子卷的物性值1">
<el-input v-model="form.un_plan_product_property1" style="width: 300px;" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="子卷的物性值2">
<el-input v-model="form.un_plan_product_property2" style="width: 300px;" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="子卷的物性值3">
<el-input v-model="form.un_plan_product_property3" style="width: 300px;" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="木箱料号">
<el-input v-model="form.box_type" style="width: 300px;" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="SAP批次">
<el-input v-model="form.sap_pcsn" style="width: 300px;" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="是否重打外包装标签">
<el-input v-model="form.isreprintpackageboxlabel" style="width: 300px;" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="是否拆包重打子卷标签">
<el-input v-model="form.isunpackbox" style="width: 300px;" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="">
<el-input-number v-model="form.box_length" :max="10000" :min="0" :precision="2" :controls="false" style="width: 300px;" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="">
<el-input-number v-model="form.box_width" :max="10000" :min="0" :precision="2" :controls="false" style="width: 300px;" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="">
<el-input-number v-model="form.box_high" :max="10000" :min="0" :precision="2" :controls="false" style="width: 300px;" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="销售订单及行号">
<el-input v-model="form.sale_order_name" style="width: 300px;" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="物料主数据厚度">
<el-input v-model="form.thickness_request" :controls="false" style="width: 300px;" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="要求幅宽">
<el-input v-model="form.width_standard" style="width: 300px;" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="备注">
<el-input type="textarea" :rows="2" v-model="form.remark" style="width: 750px;" />
</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" height v-loading="crud.loading" style="width: 100%" :data="crud.data" size="mini" @selection-change="crud.selectionChangeHandler">
<el-table-column type="selection" />
<el-table-column sortable prop="package_box_sn" label="木箱码" :min-width="flexWidth('package_box_sn',crud.data,'木箱码')" />
<el-table-column prop="quanlity_in_box" label="箱内子卷数量" :min-width="flexWidth('quanlity_in_box',crud.data,'箱内子卷数量')" />
<el-table-column prop="customer_name" label="客户编码" :min-width="flexWidth('customer_name',crud.data,'客户编码')" />
<el-table-column prop="customer_description" label="客户名称" :min-width="flexWidth('customer_description',crud.data,'客户名称')" />
<el-table-column prop="sale_order_name" label="销售订单及行号" :min-width="flexWidth('sale_order_name',crud.data,'销售订单及行号')" />
<el-table-column sortable prop="container_name" label="子卷号" :min-width="flexWidth('container_name',crud.data,'子卷号')" />
<el-table-column prop="product_name" label="产品编码" :min-width="flexWidth('product_name',crud.data,'产品描述')" />
<el-table-column prop="product_description" label="产品描述" :min-width="flexWidth('product_description',crud.data,'产品描述')" />
<el-table-column sortable prop="sap_pcsn" label="sap批次" :min-width="flexWidth('sap_pcsn',crud.data,'SAP批次')" />
<el-table-column prop="width" label="产品规格(幅宽)" :min-width="flexWidth('width',crud.data,'产品规格(幅宽)')" />
<el-table-column prop="thickness" label="产品厚度" :min-width="flexWidth('thickness',crud.data,'产品厚度')" />
<el-table-column prop="mass_per_unit_area" label="单位面积质量" :formatter="crud.formatNum3" :min-width="flexWidth('mass_per_unit_area',crud.data,'单位面积质量')" />
<el-table-column prop="net_weight" label="净重" :formatter="crud.formatNum3" :min-width="flexWidth('net_weight',crud.data,'净重')" />
<el-table-column prop="length" label="长度" :formatter="crud.formatNum3" :min-width="flexWidth('length',crud.data,'长度')" />
<el-table-column prop="date_of_production" label="制造完成日期" :min-width="flexWidth('date_of_production',crud.data,'制造完成日期')" />
<el-table-column prop="date_of_fg_inbound" label="入库日期" :min-width="flexWidth('date_of_fg_inbound',crud.data,'入库日期')" />
<el-table-column prop="status" label="状态" :min-width="flexWidth('status',crud.data,'状态')">
<template slot-scope="scope">
{{ dict.label.sub_package_relation[scope.row.status] }}
</template>
</el-table-column>
<el-table-column prop="box_weight" label="木箱自身重量" :min-width="flexWidth('box_weight',crud.data,'木箱自身重量')" :formatter="crud.formatNum3" />
<el-table-column prop="quality_guaran_period" label="保质期" :min-width="flexWidth('quality_guaran_period',crud.data,'保质期')" />
<el-table-column prop="is_un_plan_production" label="计划外分切的子卷" :min-width="flexWidth('is_un_plan_production',crud.data,'计划外分切的子卷')">
<template slot-scope="scope">
{{ dict.label.IS_OR_NOT[scope.row.is_un_plan_production] }}
</template>
</el-table-column>
<el-table-column prop="un_plan_product_property1" label="子卷的物性值1" :min-width="flexWidth('un_plan_product_property1',crud.data,'子卷的物性值1')" />
<el-table-column prop="un_plan_product_property2" label="子卷的物性值2" :min-width="flexWidth('un_plan_product_property2',crud.data,'子卷的物性值2')" />
<el-table-column prop="un_plan_product_property3" label="子卷的物性值3" :min-width="flexWidth('un_plan_product_property3',crud.data,'子卷的物性值3')" />
<el-table-column prop="box_type" label="木箱料号" :min-width="flexWidth('box_type',crud.data,'木箱料号')" />
<el-table-column prop="box_length" label="" :min-width="flexWidth('box_length',crud.data,'长')" />
<el-table-column prop="box_width" label="" :min-width="flexWidth('box_width',crud.data,'宽')" />
<el-table-column prop="box_high" label="" :min-width="flexWidth('box_high',crud.data,'高')" />
<el-table-column prop="remark" label="备注" :min-width="flexWidth('remark',crud.data,'备注')" />
<el-table-column prop="vbeln" label="来源交货单" :min-width="flexWidth('vbeln',crud.data,'来源交货单')" />
<el-table-column prop="posnr" label="来源交货单行" :min-width="flexWidth('posnr',crud.data,'来源交货单行')" />
<el-table-column prop="sale_order_description" label="销售订单描述" :min-width="flexWidth('sale_order_description',crud.data,'销售订单描述')" />
<el-table-column prop="isreprintpackageboxlabel" label="是否需要重打外包装标签" :min-width="flexWidth('isreprintpackageboxlabel',crud.data,'是否需要重打外包装标签')">
<template slot-scope="scope">
{{ dict.label.IS_OR_NOT[scope.row.isreprintpackageboxlabel] }}
</template>
</el-table-column>
<el-table-column prop="isunpackbox" label="是否需要拆包重打子卷标签" :min-width="flexWidth('isunpackbox',crud.data,'是否需要拆包重打子卷标签')">
<template slot-scope="scope">
{{ dict.label.IS_OR_NOT[scope.row.isunpackbox] }}
</template>
</el-table-column>
<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','sub:edit','sub:del']" label="操作" align="center" fixed="right" min-width="120">
<template slot-scope="scope">
<udOperation
:data="scope.row"
:permission="permission"
:disabledEdit="scope.row.status !== '0'"
:isVisiableDel = false
/>
</template>
</el-table-column>
</el-table>
<!--分页组件-->
<pagination />
</div>
</div>
</template>
<script>
import crudSubpackagerelation from './subpackagerelation'
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 { download } from '@/api/data'
import { downloadFile } from '@/utils'
const defaultForm = { workorder_id: null, package_box_sn: null, quanlity_in_box: null, box_weight: null, quality_guaran_period: null, sale_order_name: null, customer_name: null, customer_description: null, product_name: null, product_description: null, date_of_fg_inbound: null, container_name: null, width: null, thickness: null, mass_per_unit_area: null, net_weight: null, length: null, date_of_production: null, is_un_plan_production: null, un_plan_product_property1: null, un_plan_product_property2: null, un_plan_product_property3: null, box_type: null, sap_pcsn: null, remark: null, create_id: null, create_name: null, create_time: null, status: null, isreprintpackageboxlabel: null, isunpackbox: null, thickness_request: null, width_standard: null }
export default {
name: 'Subpackagerelation',
dicts: ['sub_package_relation', 'IS_OR_NOT'],
components: { pagination, crudOperation, rrOperation, udOperation },
mixins: [presenter(), header(), form(defaultForm), crud()],
cruds() {
return CRUD({ title: '子卷包装关系', url: 'api/subpackagerelation', idField: 'workorder_id', sort: 'workorder_id,desc', crudMethod: { ...crudSubpackagerelation }})
},
data() {
return {
permission: {
add: ['admin', 'sub:add'],
edit: ['admin', 'sub:edit'],
del: ['admin', 'sub:del']
},
isPlanProducList: [
{ 'label': '是', 'value': '1' },
{ 'label': '否', 'value': '0' }
],
rules: {
customer_description: [
{ required: true, message: '客户名称不能为空', trigger: 'blur' }
],
product_name: [
{ required: true, message: '产品编码不能为空', trigger: 'blur' }
],
product_description: [
{ required: true, message: '产品描述不能为空', trigger: 'blur' }
],
container_name: [
{ required: true, message: '子卷号不能为空', trigger: 'blur' }
],
width: [
{ required: true, message: '产品规格(幅宽)不能为空', trigger: 'blur' }
],
thickness: [
{ required: true, message: '产品厚度不能为空', trigger: 'blur' }
],
mass_per_unit_area: [
{ required: true, message: '单位面积质量不能为空', trigger: 'blur' }
],
net_weight: [
{ required: true, message: '净重不能为空', trigger: 'blur' }
],
length: [
{ required: true, message: '长度不能为空', trigger: 'blur' }
],
date_of_production: [
{ required: true, message: '制造完成日期不能为空', trigger: 'blur' }
],
sale_order_name: [
{ required: true, message: '销售订单及行号不能为空', trigger: 'blur' }
],
is_un_plan_production: [
{ required: true, message: '计划外分切的子卷不能为空', trigger: 'blur' }
],
status: [
{ required: true, message: '状态不能为空', trigger: 'blur' }
]
}}
},
methods: {
// 钩子在获取表格数据之前执行false 则代表不获取数据
[CRUD.HOOK.beforeRefresh]() {
return true
},
hand(value) {
this.crud.toQuery()
},
downdtl() {
if (this.currentRow !== null) {
crud.downloadLoading = true
download('/api/subpackagerelation/download', this.crud.query).then(result => {
debugger
downloadFile(result, '子卷包装', 'xlsx')
crud.downloadLoading = false
}).catch(() => {
crud.downloadLoading = false
})
}
}
}
}
</script>
<style scoped>
.tableAuto.el-table .cell {
white-space: nowrap;
}
</style>