Files
lanzhouhailiang_one/lms/nladmin-ui/src/views/wms/st/inbill/index.vue
2022-10-15 15:31:18 +08:00

450 lines
16 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="90px"
label-suffix=":"
>
<el-form-item label="单据编号">
<el-input
v-model="query.bill_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_code"
clearable
placeholder="物料编码、名称"
style="width: 185px;"
class="filter-item"
/>
</el-form-item>
<el-form-item label="载具编号">
<el-input
v-model="query.vehicle_code"
clearable
placeholder="载具编码"
style="width: 185px;"
class="filter-item"
/>
</el-form-item>
<el-form-item label="批次">
<el-input
v-model="query.pcsn"
clearable
placeholder="批次"
style="width: 185px;"
class="filter-item"
/>
</el-form-item>
<el-form-item label="单据状态">
<el-select
v-model="query.bill_status"
clearable
filterable
size="mini"
class="filter-item"
style="width: 185px;"
>
<el-option
v-for="item in dict.st_bill_status"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="起始点位">
<el-input
v-model="query.start_point_code"
clearable
placeholder="点位编码、名称"
style="width: 185px;"
class="filter-item"
/>
</el-form-item>
<el-form-item label="终点点位">
<el-input
v-model="query.end_point_code"
clearable
placeholder="点位编码、名称"
style="width: 185px;"
class="filter-item"
/>
</el-form-item>
<el-form-item label="起始区域">
<el-input
v-model="query.start_region_code"
clearable
placeholder="区域编码、名称"
style="width: 185px;"
class="filter-item"
/>
</el-form-item>
<el-form-item label="终点区域">
<el-input
v-model="query.end_region_code"
clearable
placeholder="区域编码、名称"
style="width: 185px;"
class="filter-item"
/>
</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-position"
size="mini"
:loading="loading"
:disabled="crud.selections.length !== 1"
@click="createTask"
>
生成任务
</el-button>
</crudOperation>
<!--表单组件-->
<el-dialog :close-on-click-modal="false" :before-close="crud.cancelCU" :visible.sync="crud.status.cu > 0 || crud.status.view > 0 " :title="crud.status.title" width="700px">
<el-form ref="form" :model="form" :rules="rules" size="mini" label-width="100px">
<el-row>
<el-col :span="12">
<el-form-item label="物料" prop="material_id">
<label slot="label">物&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;料:</label>
<el-input v-model="form.material_name" style="width: 200px;" :disabled="crud.status.view > 0" @focus="getMater" />
</el-form-item>
</el-col>
<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.pcsn" style="width: 200px;" :disabled="crud.status.view > 0" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="载具编码:">
<el-input v-model="form.vehicle_code" style="width: 200px;" :disabled="crud.status.view > 0" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="数量" prop="qty">
<label slot="label">数&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;量:</label>
<el-input v-model="form.qty" style="width: 200px;" :disabled="crud.status.view > 0" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="起始区域:" prop="start_region_id">
<el-select
v-model="form.start_region_id"
placeholder="请选择"
style="width: 200px;"
:disabled="crud.status.view > 0"
@change="changeStart"
>
<el-option
v-for="item in reginoList"
:label="item.region_name"
:value="item.region_id"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="终点区域:" prop="end_region_id">
<el-select
v-model="form.end_region_id"
placeholder="请选择"
style="width: 200px;"
:disabled="crud.status.view > 0"
@change="changeEnd"
>
<el-option
v-for="item in reginoList"
:label="item.region_name"
:value="item.region_id"
/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="起始点位:" prop="start_point_code">
<el-input v-model="form.start_point_name" style="width: 200px;" :disabled="crud.status.view > 0" @focus="openStartPonit" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="终点点位:" prop="end_point_code">
<el-input v-model="form.end_point_name" style="width: 200px;" :disabled="crud.status.view > 0" @focus="openEndPonit" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="备注:">
<el-input v-model="form.remark" type="textarea" style="width: 530px;" :disabled="crud.status.view > 0" />
</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" :disabled="crud.status.view > 0" @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 v-if="false" prop="iostorinv_id" label="出入单标识" />
<el-table-column prop="bill_code" label="单据编号" show-overflow-tooltip width="120px">
<template slot-scope="scope">
<el-link type="warning" @click="crud.toView(scope.row)">{{ scope.row.bill_code }}</el-link>
</template>
</el-table-column>
<el-table-column prop="bill_status" label="单据状态">
<template slot-scope="scope">
{{ dict.label.st_bill_status[scope.row.bill_status] }}
</template>
</el-table-column>
<el-table-column prop="material_code" label="物料编码" show-overflow-tooltip width="120px" />
<el-table-column prop="material_name" label="物料名称" show-overflow-tooltip width="120px" />
<el-table-column prop="pcsn" label="批次" />
<el-table-column prop="vehicle_code" label="载具编码" />
<el-table-column prop="qty" label="数量" :formatter="crud.formatNum2" />
<el-table-column prop="unit_name" label="单位" />
<el-table-column prop="start_point_name" label="起始点位" show-overflow-tooltip width="120px" />
<el-table-column prop="end_point_name" label="终点点位" show-overflow-tooltip width="120px" />
<el-table-column prop="start_region_name" label="起始区域" />
<el-table-column prop="end_region_name" label="终点区域" />
<el-table-column prop="task_id" label="任务标识" show-overflow-tooltip width="120px" />
<el-table-column prop="create_mode" label="生成方式">
<template slot-scope="scope">
{{ dict.label.ST_CREATE_MODE[scope.row.create_mode] }}
</template>
</el-table-column>
<el-table-column prop="remark" label="备注" show-overflow-tooltip />
<el-table-column prop="create_name" label="创建人" />
<el-table-column prop="create_time" label="创建时间" show-overflow-tooltip width="140px" />
<el-table-column prop="update_optname" label="修改人" />
<el-table-column prop="update_time" label="修改时间" show-overflow-tooltip width="140px" />
<el-table-column prop="confirm_optname" label="确认人" />
<el-table-column prop="confirm_time" label="确认时间" show-overflow-tooltip width="140px" />
<el-table-column v-permission="[]" label="操作" width="120px" align="center" fixed="right">
<template slot-scope="scope">
<udOperation
:disabled-edit="scope.row.bill_status !== '10'"
:disabled-dle="scope.row.bill_status !== '10'"
:data="scope.row"
:permission="permission"
/>
</template>
</el-table-column>
</el-table>
<!--分页组件-->
<pagination />
</div>
<MaterDialog :dialog-show.sync="materDialog" @setMaterValue="setMaterValue" />
<PointDialog :dialog-show.sync="pointDialog" :open-param="pointParam" @tableChanged2="tableChanged2" />
</div>
</template>
<script>
import crudRegionioIn from '@/views/wms/st/inbill/regionioIn'
import MaterDialog from '@/views/wms/pub/MaterDialog'
import PointDialog from '@/views/wms/pub/PointDialog'
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 crudPoint from '@/views/wms/sch/point/point'
const defaultForm = {
iostorinv_id: null,
bill_code: null,
io_type: null,
material_id: null,
material_name: null,
pcsn: null,
vehicle_code: null,
qty: null,
qty_unit_id: null,
bill_status: null,
start_point_code: null,
end_point_code: null,
start_point_name: null,
end_point_name: null,
start_region_id: null,
end_region_id: null,
cust_id: null,
create_mode: null,
task_id: null,
remark: null,
create_id: null,
create_name: null,
create_time: null,
update_optid: null,
update_optname: null,
update_time: null,
confirm_optid: null,
confirm_optname: null,
confirm_time: null,
is_delete: null
}
export default {
name: 'RegionioIn',
dicts: ['st_bill_status', 'ST_CREATE_MODE'],
components: { pagination, crudOperation, rrOperation, udOperation, MaterDialog, PointDialog },
mixins: [presenter(), header(), form(defaultForm), crud()],
cruds() {
return CRUD({
title: '区域入库',
url: 'api/regionioIn',
idField: 'iostorinv_id',
sort: 'iostorinv_id,desc',
crudMethod: { ...crudRegionioIn },
optShow: {
add: true,
edit: false,
del: false,
download: false,
reset: true
}
})
},
data() {
return {
loading: false,
is_startOrEnd: null,
pointParam: null,
end_region_param: null,
reginoList: [],
materDialog: false,
pointDialog: false,
permission: {},
rules: {
material_id: [
{ required: true, message: '物料不能为空', trigger: 'blur' }
],
qty: [
{ required: true, message: '数量不能为空', trigger: 'blur' }
],
start_region_id: [
{ required: true, message: '起点区域不能为空', trigger: 'blur' }
],
end_region_id: [
{ required: true, message: '终点区域不能为空', trigger: 'blur' }
],
start_point_code: [
{ required: true, message: '起点点位不能为空', trigger: 'blur' }
],
end_point_code: [
{ required: true, message: '终点点位不能为空', trigger: 'blur' }
]
}
}
},
created() {
crudPoint.getRegion().then(res => {
this.reginoList = res
})
},
methods: {
// 钩子在获取表格数据之前执行false 则代表不获取数据
[CRUD.HOOK.beforeRefresh]() {
return true
},
getMater() {
this.materDialog = true
},
setMaterValue(row) {
debugger
this.form.material_id = row.material_id
this.form.material_name = row.material_name
},
changeStart(val) {
this.pointParam = val
this.form.start_point_name = null
this.form.start_point_code = null
},
changeEnd(val) {
if (this.form.start_point_code === null) {
this.form.end_region_id = null
this.crud.notify('请先选择起始点位', CRUD.NOTIFICATION_TYPE.INFO)
return false
} else {
this.pointParam = val
this.form.end_point_name = null
this.form.end_point_code = null
}
},
openStartPonit() {
if (this.form.start_region_id === null) {
return this.crud.notify('请选择起始区域', CRUD.NOTIFICATION_TYPE.INFO)
}
// 1代表起始点位
this.is_startOrEnd = '1'
this.pointDialog = true
},
openEndPonit() {
if (this.form.end_region_id === null) {
return this.crud.notify('请选择终点区域', CRUD.NOTIFICATION_TYPE.INFO)
}
// 2代表终点点位
this.is_startOrEnd = '2'
this.pointDialog = true
},
tableChanged2(row) {
if (this.is_startOrEnd === '1') {
this.form.start_point_code = row.point_code
this.form.start_point_name = row.point_name
} else {
this.form.end_point_code = row.point_code
this.form.end_point_name = row.point_name
}
},
createTask() {
const _selectData = this.$refs.table.selection
if (_selectData[0].bill_status !== '10') {
return this.crud.notify('只能对生成状态的单据生成任务', CRUD.NOTIFICATION_TYPE.INFO)
}
const data = _selectData[0]
this.loading = true
crudRegionioIn.createTask(data).then(res => {
this.crud.toQuery()
this.crud.notify('操作成功', CRUD.NOTIFICATION_TYPE.SUCCESS)
this.loading = false
}).catch(() => {
this.loading = false
})
}
}
}
</script>
<style scoped>
</style>