新增出库单
This commit is contained in:
parent
89e51af775
commit
baa2094fb6
100
src/api/oth/delivery.js
Normal file
100
src/api/oth/delivery.js
Normal file
@ -0,0 +1,100 @@
|
|||||||
|
/*
|
||||||
|
* @Author: zwq
|
||||||
|
* @Date: 2024-04-16 15:08:37
|
||||||
|
* @LastEditors: zwq
|
||||||
|
* @LastEditTime: 2024-04-16 16:22:00
|
||||||
|
* @Description:
|
||||||
|
*/
|
||||||
|
import request from '@/utils/request'
|
||||||
|
// 创建出库单
|
||||||
|
export function createDelivery(data) {
|
||||||
|
return request({
|
||||||
|
url: '/asrs/delivery/create',
|
||||||
|
method: 'post',
|
||||||
|
data: data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 更新出库单
|
||||||
|
export function updateDelivery(data) {
|
||||||
|
return request({
|
||||||
|
url: '/asrs/delivery/update',
|
||||||
|
method: 'put',
|
||||||
|
data: data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 删除出库单
|
||||||
|
export function deleteDelivery(id) {
|
||||||
|
return request({
|
||||||
|
url: '/asrs/delivery/delete?id=' + id,
|
||||||
|
method: 'delete'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获得出库单
|
||||||
|
export function getDelivery(id) {
|
||||||
|
return request({
|
||||||
|
url: '/asrs/delivery/get?id=' + id,
|
||||||
|
method: 'get'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
// 获得出库单分页
|
||||||
|
export function getDeliveryPage(query) {
|
||||||
|
return request({
|
||||||
|
url: '/asrs/delivery/page',
|
||||||
|
method: 'get',
|
||||||
|
params: query
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// 重启当前出库单
|
||||||
|
export function restartDelivery(data) {
|
||||||
|
return request({
|
||||||
|
url: '/asrs/delivery/restart',
|
||||||
|
method: 'put',
|
||||||
|
data: data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
// 暂停当前出库单
|
||||||
|
export function pauseDelivery(data) {
|
||||||
|
return request({
|
||||||
|
url: '/asrs/delivery/pause',
|
||||||
|
method: 'put',
|
||||||
|
data: data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
// 提升当前出库单
|
||||||
|
export function improveDelivery(data) {
|
||||||
|
return request({
|
||||||
|
url: '/asrs/delivery/improve',
|
||||||
|
method: 'put',
|
||||||
|
data: data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
// 取消当前出库单
|
||||||
|
export function cancelDelivery(data) {
|
||||||
|
return request({
|
||||||
|
url: '/asrs/delivery/cancel',
|
||||||
|
method: 'put',
|
||||||
|
data: data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获得出库单分页
|
||||||
|
export function getDeliveryHisPage(query) {
|
||||||
|
return request({
|
||||||
|
url: '/asrs/delivery-history/page',
|
||||||
|
method: 'get',
|
||||||
|
params: query
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获得code
|
||||||
|
export function getCode() {
|
||||||
|
return request({
|
||||||
|
url: '/asrs/delivery/getCode',
|
||||||
|
method: 'post'
|
||||||
|
})
|
||||||
|
}
|
241
src/views/asrs/delivery/add-or-updata.vue
Normal file
241
src/views/asrs/delivery/add-or-updata.vue
Normal file
@ -0,0 +1,241 @@
|
|||||||
|
<!--
|
||||||
|
* @Author: zwq
|
||||||
|
* @Date: 2021-11-18 14:16:25
|
||||||
|
* @LastEditors: zwq
|
||||||
|
* @LastEditTime: 2024-04-17 14:13:36
|
||||||
|
* @Description:
|
||||||
|
-->
|
||||||
|
<template>
|
||||||
|
<el-form
|
||||||
|
:model="dataForm"
|
||||||
|
:rules="dataRule"
|
||||||
|
ref="dataForm"
|
||||||
|
@keyup.enter.native="dataFormSubmit()"
|
||||||
|
label-width="100px">
|
||||||
|
<el-form-item label="出库单号" prop="deliveryCode">
|
||||||
|
<el-input
|
||||||
|
v-model="dataForm.deliveryCode"
|
||||||
|
clearable
|
||||||
|
placeholder="请输入出库单号" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="货物名称" prop="productName">
|
||||||
|
<el-select
|
||||||
|
v-model="dataForm.productName"
|
||||||
|
filterable
|
||||||
|
style="display: inline-block"
|
||||||
|
@change="setShowTrayType"
|
||||||
|
placeholder="请选择货物名称">
|
||||||
|
<el-option
|
||||||
|
v-for="item in productArr"
|
||||||
|
:key="item.id"
|
||||||
|
:label="item.goodSpecificationName"
|
||||||
|
:value="item.goodSpecificationName"></el-option>
|
||||||
|
</el-select>
|
||||||
|
<div style="display: inline-block;margin-left: 10px;">
|
||||||
|
<el-tag size="mini" type="warning">
|
||||||
|
<i class="el-icon-question" />
|
||||||
|
出空托盘请选择无产品
|
||||||
|
</el-tag>
|
||||||
|
</div>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="出库类型" prop="deliveryType">
|
||||||
|
<el-radio-group
|
||||||
|
v-model="dataForm.deliveryType"
|
||||||
|
@input="setNeedTrayNumber">
|
||||||
|
<el-radio :label="1">单托盘出库</el-radio>
|
||||||
|
<el-radio :label="2">多托盘出库</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="所需托盘数" prop="needTrayNumber">
|
||||||
|
<el-input-number
|
||||||
|
v-model="dataForm.needTrayNumber"
|
||||||
|
:min="dataForm.deliveryType === 2 ? 2 : 1"
|
||||||
|
:disabled="dataForm.deliveryType === 1" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="已补托盘数" prop="alreadyOutNumber">
|
||||||
|
<el-input-number v-model="dataForm.alreadyOutNumber" disabled />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item
|
||||||
|
label="发货位置"
|
||||||
|
prop="lineEdgeLibraryCode"
|
||||||
|
key="lineEdgeLibraryCode"
|
||||||
|
v-if="dataForm.deliveryType === 1">
|
||||||
|
<el-select
|
||||||
|
v-model="dataForm.lineEdgeLibraryCode"
|
||||||
|
filterable
|
||||||
|
placeholder="请选择">
|
||||||
|
<el-option
|
||||||
|
v-for="item in potArr"
|
||||||
|
:key="item.id"
|
||||||
|
:label="item.lineEdgeLibraryCode"
|
||||||
|
:value="item.lineEdgeLibraryCode"></el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item
|
||||||
|
label="发货区域"
|
||||||
|
prop="region"
|
||||||
|
key="region"
|
||||||
|
v-if="dataForm.deliveryType === 2">
|
||||||
|
<el-select v-model="dataForm.region" placeholder="请选择">
|
||||||
|
<el-option
|
||||||
|
v-for="item in regionArr"
|
||||||
|
:key="item.id"
|
||||||
|
:label="item.name"
|
||||||
|
:value="item.id"></el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item
|
||||||
|
label="货物品质"
|
||||||
|
prop="productQuality"
|
||||||
|
key="productQuality"
|
||||||
|
v-if="!showTrayType">
|
||||||
|
<el-input
|
||||||
|
v-model="dataForm.productQuality"
|
||||||
|
clearable
|
||||||
|
placeholder="请输入货物品质" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item
|
||||||
|
label="膜卷号"
|
||||||
|
prop="rollCode"
|
||||||
|
key="rollCode"
|
||||||
|
v-if="dataForm.deliveryType === 1 && !showTrayType">
|
||||||
|
<el-input
|
||||||
|
v-model="dataForm.rollCode"
|
||||||
|
clearable
|
||||||
|
placeholder="请输入膜卷号" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item
|
||||||
|
label="托盘类型"
|
||||||
|
key="trayType"
|
||||||
|
prop="trayType"
|
||||||
|
v-if="showTrayType">
|
||||||
|
<el-select v-model="dataForm.trayType" placeholder="请选择">
|
||||||
|
<el-option
|
||||||
|
v-for="item in trayTypeArr"
|
||||||
|
:key="item.id"
|
||||||
|
:label="item.name"
|
||||||
|
:value="item.id"></el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import basicAdd from '../mixins/basic-add';
|
||||||
|
import {
|
||||||
|
createDelivery,
|
||||||
|
updateDelivery,
|
||||||
|
getDelivery,
|
||||||
|
getCode,
|
||||||
|
} from '@/api/oth/delivery';
|
||||||
|
import { getLineList } from '@/api/asrs/warehouseStorehouse';
|
||||||
|
import { getGoodSpecificationPage } from '@/api/asrs/goodSpecification';
|
||||||
|
|
||||||
|
const regionArr = [
|
||||||
|
{ name: '一次分切区域', id: 1 },
|
||||||
|
{ name: '一次分拣区域', id: 2 },
|
||||||
|
{ name: '二次分切区域', id: 3 },
|
||||||
|
{ name: '二次分拣区域', id: 4 },
|
||||||
|
{ name: '手动包装区域', id: 5 },
|
||||||
|
{ name: '涂覆区域', id: 6 },
|
||||||
|
{ name: '其他', id: 7 },
|
||||||
|
{ name: '自动包装区域', id: 8 },
|
||||||
|
];
|
||||||
|
export default {
|
||||||
|
mixins: [basicAdd],
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
urlOptions: {
|
||||||
|
isGetCode: true,
|
||||||
|
codeURL: getCode,
|
||||||
|
codeName: 'deliveryCode',
|
||||||
|
createURL: createDelivery,
|
||||||
|
updateURL: updateDelivery,
|
||||||
|
infoURL: getDelivery,
|
||||||
|
getOption: true,
|
||||||
|
},
|
||||||
|
dataForm: {
|
||||||
|
id: undefined,
|
||||||
|
deliveryCode: undefined,
|
||||||
|
productName: undefined,
|
||||||
|
deliveryType: 1,
|
||||||
|
needTrayNumber: 1,
|
||||||
|
alreadyOutNumber: 0,
|
||||||
|
status: 2,
|
||||||
|
lineEdgeLibraryCode: null,
|
||||||
|
productQuality: null,
|
||||||
|
rollCode: null,
|
||||||
|
trayType: null,
|
||||||
|
},
|
||||||
|
regionArr,
|
||||||
|
potArr: [],
|
||||||
|
productArr: [],
|
||||||
|
showTrayType: false,
|
||||||
|
trayTypeArr: [
|
||||||
|
{ id: 1, name: '6臂' },
|
||||||
|
{ id: 2, name: '12臂' },
|
||||||
|
],
|
||||||
|
dataRule: {
|
||||||
|
deliveryCode: [
|
||||||
|
{ required: true, message: '出库单号不能为空', trigger: 'blur' },
|
||||||
|
],
|
||||||
|
productQuality: [
|
||||||
|
{ required: true, message: '货物品质不能为空', trigger: 'blur' },
|
||||||
|
],
|
||||||
|
lineEdgeLibraryCode: [
|
||||||
|
{ required: true, message: '发货位置不能为空', trigger: 'change' },
|
||||||
|
],
|
||||||
|
productName: [
|
||||||
|
{ required: true, message: '货物名称不能为空', trigger: 'change' },
|
||||||
|
],
|
||||||
|
region: [
|
||||||
|
{ required: true, message: '发货区域不能为空', trigger: 'change' },
|
||||||
|
],
|
||||||
|
trayType: [
|
||||||
|
{ required: true, message: '托盘类型不能为空', trigger: 'change' },
|
||||||
|
],
|
||||||
|
},
|
||||||
|
};
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
getArr() {
|
||||||
|
this.showTrayType = false;
|
||||||
|
this.dataForm.rollCode = null;
|
||||||
|
this.dataForm.trayType = null;
|
||||||
|
getLineList({ warehouseId: this.aId }).then((response) => {
|
||||||
|
this.potArr = response.data;
|
||||||
|
});
|
||||||
|
const params = {
|
||||||
|
pageSize: 100,
|
||||||
|
pageNo: 1,
|
||||||
|
warehouseId: this.aId,
|
||||||
|
};
|
||||||
|
getGoodSpecificationPage(params).then((response) => {
|
||||||
|
this.productArr = response.data.list;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
setNeedTrayNumber(val) {
|
||||||
|
if (val === 1) {
|
||||||
|
this.dataForm.needTrayNumber = 1;
|
||||||
|
this.dataForm.region = null;
|
||||||
|
if (this.dataForm.productName !== '无产品') {
|
||||||
|
this.showTrayType = false;
|
||||||
|
} else {
|
||||||
|
this.showTrayType = true;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
this.dataForm.needTrayNumber = 2;
|
||||||
|
this.dataForm.lineEdgeLibraryCode = null;
|
||||||
|
this.showTrayType = true;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
setShowTrayType(val) {
|
||||||
|
if (val === '无产品') {
|
||||||
|
this.showTrayType = true;
|
||||||
|
} else {
|
||||||
|
this.showTrayType = false;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
493
src/views/asrs/delivery/index.vue
Normal file
493
src/views/asrs/delivery/index.vue
Normal file
@ -0,0 +1,493 @@
|
|||||||
|
<template>
|
||||||
|
<div class="app-container">
|
||||||
|
<el-tabs v-model="activeName" @tab-click="toggleTab">
|
||||||
|
<el-tab-pane label="单托盘出库" name="one">
|
||||||
|
<search-bar
|
||||||
|
:formConfigs="formConfig"
|
||||||
|
ref="searchBarForm"
|
||||||
|
@headBtnClick="buttonClick" />
|
||||||
|
</el-tab-pane>
|
||||||
|
<el-tab-pane label="多托盘出库" name="more">
|
||||||
|
<search-bar
|
||||||
|
:formConfigs="formConfig2"
|
||||||
|
ref="searchBarForm2"
|
||||||
|
@headBtnClick="buttonClick" />
|
||||||
|
</el-tab-pane>
|
||||||
|
</el-tabs>
|
||||||
|
<div v-if="activeName === 'one'">
|
||||||
|
<base-table
|
||||||
|
v-loading="dataListLoading"
|
||||||
|
:table-props="tableProps"
|
||||||
|
:page="listQuery.pageNo"
|
||||||
|
:limit="listQuery.pageSize"
|
||||||
|
:table-data="tableData">
|
||||||
|
<method-btn
|
||||||
|
v-if="tableBtn.length"
|
||||||
|
slot="handleBtn"
|
||||||
|
:width="200"
|
||||||
|
label="操作"
|
||||||
|
:method-list="tableBtn"
|
||||||
|
@clickBtn="handleClick" />
|
||||||
|
</base-table>
|
||||||
|
</div>
|
||||||
|
<div v-if="activeName === 'more'">
|
||||||
|
<base-table
|
||||||
|
v-loading="dataListLoading"
|
||||||
|
:table-props="tableProps2"
|
||||||
|
:page="listQuery.pageNo"
|
||||||
|
:limit="listQuery.pageSize"
|
||||||
|
:table-data="tableData">
|
||||||
|
<method-btn
|
||||||
|
v-if="tableBtn.length"
|
||||||
|
slot="handleBtn"
|
||||||
|
:width="200"
|
||||||
|
label="操作"
|
||||||
|
:method-list="tableBtn"
|
||||||
|
@clickBtn="handleClick" />
|
||||||
|
</base-table>
|
||||||
|
</div>
|
||||||
|
<pagination
|
||||||
|
:limit.sync="listQuery.pageSize"
|
||||||
|
:page.sync="listQuery.pageNo"
|
||||||
|
:total="listQuery.total"
|
||||||
|
@pagination="getDataList" />
|
||||||
|
<base-dialog
|
||||||
|
:dialogTitle="addOrEditTitle"
|
||||||
|
:dialogVisible="addOrUpdateVisible"
|
||||||
|
@cancel="handleCancel"
|
||||||
|
@confirm="handleConfirm"
|
||||||
|
:before-close="handleCancel"
|
||||||
|
width="50%">
|
||||||
|
<add-or-update ref="addOrUpdate" @refreshDataList="successSubmit" />
|
||||||
|
</base-dialog>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import basicPage from '../mixins/basic-page';
|
||||||
|
import AddOrUpdate from './add-or-updata';
|
||||||
|
import { parseTime } from '../mixins/code-filter';
|
||||||
|
import {
|
||||||
|
getDeliveryPage,
|
||||||
|
restartDelivery,
|
||||||
|
pauseDelivery,
|
||||||
|
improveDelivery,
|
||||||
|
cancelDelivery,
|
||||||
|
deleteDelivery,
|
||||||
|
} from '@/api/oth/delivery';
|
||||||
|
import { getLineList } from '@/api/asrs/warehouseStorehouse';
|
||||||
|
import { getGoodSpecificationPage } from '@/api/asrs/goodSpecification';
|
||||||
|
import codeFilter from '../mixins/code-filter';
|
||||||
|
|
||||||
|
const tableProps = [
|
||||||
|
{
|
||||||
|
prop: 'deliveryCode',
|
||||||
|
label: '出库单号',
|
||||||
|
fixed: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
prop: 'productName',
|
||||||
|
label: '货物名称',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
prop: 'needTrayNumber',
|
||||||
|
label: '所需托盘数',
|
||||||
|
width: 90,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
prop: 'alreadyOutNumber',
|
||||||
|
label: '已补托盘数',
|
||||||
|
width: 90,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
prop: 'status',
|
||||||
|
label: '出库单状态',
|
||||||
|
filter: codeFilter('status'),
|
||||||
|
width: 90,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
prop: 'deliveryType',
|
||||||
|
label: '出库类型',
|
||||||
|
filter: codeFilter('deliveryType'),
|
||||||
|
width: 95,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
prop: 'lineEdgeLibraryCode',
|
||||||
|
label: '码头位置',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
prop: 'productQuality',
|
||||||
|
label: '货物品质',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
prop: 'rollCode',
|
||||||
|
label: '膜卷号',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
prop: 'trayType',
|
||||||
|
label: '托盘类型',
|
||||||
|
filter: codeFilter('trayType'),
|
||||||
|
width: 80,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
prop: 'updateTime',
|
||||||
|
label: '更新时间',
|
||||||
|
filter: parseTime,
|
||||||
|
width: 150,
|
||||||
|
},
|
||||||
|
];
|
||||||
|
const tableProps2 = [
|
||||||
|
{
|
||||||
|
prop: 'deliveryCode',
|
||||||
|
label: '出库单号',
|
||||||
|
fixed: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
prop: 'productName',
|
||||||
|
label: '货物名称',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
prop: 'needTrayNumber',
|
||||||
|
label: '所需托盘数',
|
||||||
|
width: 90,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
prop: 'alreadyOutNumber',
|
||||||
|
label: '已补托盘数',
|
||||||
|
width: 90,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
prop: 'status',
|
||||||
|
label: '出库单状态',
|
||||||
|
filter: codeFilter('status'),
|
||||||
|
width: 90,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
prop: 'deliveryType',
|
||||||
|
label: '出库类型',
|
||||||
|
filter: codeFilter('deliveryType'),
|
||||||
|
width: 95,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
prop: 'region',
|
||||||
|
label: '发货区域',
|
||||||
|
filter: codeFilter('region'),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
prop: 'productQuality',
|
||||||
|
label: '货物品质',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
prop: 'trayType',
|
||||||
|
label: '托盘类型',
|
||||||
|
filter: codeFilter('trayType'),
|
||||||
|
width: 80,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
prop: 'updateTime',
|
||||||
|
label: '更新时间',
|
||||||
|
filter: parseTime,
|
||||||
|
width: 150,
|
||||||
|
},
|
||||||
|
];
|
||||||
|
const regionArr = [
|
||||||
|
{ name: '一次分切区域', id: 1 },
|
||||||
|
{ name: '一次分拣区域', id: 2 },
|
||||||
|
{ name: '二次分切区域', id: 3 },
|
||||||
|
{ name: '二次分拣区域', id: 4 },
|
||||||
|
{ name: '手动包装区域', id: 5 },
|
||||||
|
{ name: '涂覆区域', id: 6 },
|
||||||
|
{ name: '其他', id: 7 },
|
||||||
|
{ name: '自动包装区域', id: 8 },
|
||||||
|
];
|
||||||
|
export default {
|
||||||
|
mixins: [basicPage],
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
urlOptions: {
|
||||||
|
getDataListURL: getDeliveryPage,
|
||||||
|
deleteURL: deleteDelivery,
|
||||||
|
},
|
||||||
|
regionArr,
|
||||||
|
tableProps,
|
||||||
|
tableProps2,
|
||||||
|
tableData: [],
|
||||||
|
activeName: 'one',
|
||||||
|
listQuery: {
|
||||||
|
deliveryType: '1',
|
||||||
|
},
|
||||||
|
tableBtn: [
|
||||||
|
{
|
||||||
|
type: 'restart',
|
||||||
|
btnName: '重启',
|
||||||
|
showParam: {
|
||||||
|
type: '&',
|
||||||
|
data: [
|
||||||
|
{
|
||||||
|
type: 'equal',
|
||||||
|
name: 'status',
|
||||||
|
value: 3,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 'pause',
|
||||||
|
btnName: '暂停',
|
||||||
|
showParam: {
|
||||||
|
type: '&',
|
||||||
|
data: [
|
||||||
|
{
|
||||||
|
type: 'unequal',
|
||||||
|
name: 'status',
|
||||||
|
value: 3,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 'improve',
|
||||||
|
btnName: '提升',
|
||||||
|
showParam: {
|
||||||
|
type: '&',
|
||||||
|
data: [
|
||||||
|
{
|
||||||
|
type: 'equal',
|
||||||
|
name: 'status',
|
||||||
|
value: 2,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 'cancel',
|
||||||
|
btnName: '取消',
|
||||||
|
},
|
||||||
|
].filter((v) => v),
|
||||||
|
formConfig: [
|
||||||
|
{
|
||||||
|
type: 'select',
|
||||||
|
label: '货物名称',
|
||||||
|
selectOptions: [],
|
||||||
|
param: 'productName',
|
||||||
|
defaultSelect: '',
|
||||||
|
filterable: true,
|
||||||
|
labelField: 'goodSpecificationName',
|
||||||
|
valueField: 'goodSpecificationName',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 'select',
|
||||||
|
label: '发货位置',
|
||||||
|
selectOptions: [],
|
||||||
|
param: 'lineEdgeLibraryCode',
|
||||||
|
defaultSelect: '',
|
||||||
|
filterable: true,
|
||||||
|
labelField: 'lineEdgeLibraryCode',
|
||||||
|
valueField: 'lineEdgeLibraryCode',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 'button',
|
||||||
|
btnName: '搜索',
|
||||||
|
name: 'search',
|
||||||
|
color: 'primary',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 'separate',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 'button',
|
||||||
|
btnName: '新增',
|
||||||
|
name: 'add',
|
||||||
|
color: 'success',
|
||||||
|
plain: true,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
formConfig2: [
|
||||||
|
{
|
||||||
|
type: 'select',
|
||||||
|
label: '货物名称',
|
||||||
|
selectOptions: [],
|
||||||
|
param: 'productName',
|
||||||
|
defaultSelect: '',
|
||||||
|
filterable: true,
|
||||||
|
labelField: 'goodSpecificationName',
|
||||||
|
valueField: 'goodSpecificationName',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 'select',
|
||||||
|
label: '发货区域',
|
||||||
|
selectOptions: regionArr,
|
||||||
|
param: 'region',
|
||||||
|
defaultSelect: '',
|
||||||
|
filterable: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 'button',
|
||||||
|
btnName: '搜索',
|
||||||
|
name: 'search',
|
||||||
|
color: 'primary',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 'separate',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 'button',
|
||||||
|
btnName: '新增',
|
||||||
|
name: 'add',
|
||||||
|
color: 'success',
|
||||||
|
plain: true,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
};
|
||||||
|
},
|
||||||
|
components: { AddOrUpdate },
|
||||||
|
created() {
|
||||||
|
const params = {
|
||||||
|
pageSize: 100,
|
||||||
|
pageNo: 1,
|
||||||
|
warehouseId: this.listQuery.warehouseId,
|
||||||
|
};
|
||||||
|
getGoodSpecificationPage(params).then((response) => {
|
||||||
|
this.formConfig[0].selectOptions = response.data.list;
|
||||||
|
});
|
||||||
|
getLineList({ warehouseId: this.listQuery.warehouseId }).then(
|
||||||
|
(response) => {
|
||||||
|
this.formConfig[1].selectOptions = response.data;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
buttonClick(val) {
|
||||||
|
switch (val.btnName) {
|
||||||
|
case 'search':
|
||||||
|
this.listQuery.pageNo = 1;
|
||||||
|
this.listQuery.pageSize = 10;
|
||||||
|
this.listQuery.productName = val.productName;
|
||||||
|
if (this.listQuery.deliveryType === '1') {
|
||||||
|
this.listQuery.lineEdgeLibraryCode = val.lineEdgeLibraryCode;
|
||||||
|
this.listQuery.region = null;
|
||||||
|
} else {
|
||||||
|
this.listQuery.lineEdgeLibraryCode = null;
|
||||||
|
this.listQuery.region = val.region;
|
||||||
|
}
|
||||||
|
this.getDataList();
|
||||||
|
break;
|
||||||
|
case 'add':
|
||||||
|
this.addOrEditTitle = '新增';
|
||||||
|
this.addOrUpdateVisible = true;
|
||||||
|
this.addOrUpdateHandle();
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
console.log(val);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
toggleTab() {
|
||||||
|
if (this.activeName === 'one') {
|
||||||
|
this.listQuery.deliveryType = '1';
|
||||||
|
this.listQuery.region = null;
|
||||||
|
} else {
|
||||||
|
this.listQuery.deliveryType = '2';
|
||||||
|
this.listQuery.lineEdgeLibraryCode = null;
|
||||||
|
}
|
||||||
|
this.listQuery.pageNo = 1;
|
||||||
|
this.getDataList();
|
||||||
|
},
|
||||||
|
//tableBtn点击
|
||||||
|
otherMethods(val) {
|
||||||
|
if (val.type === 'restart') {
|
||||||
|
this.$confirm(
|
||||||
|
`确定对出库单号:${val.data.deliveryCode}进行重启操作?`,
|
||||||
|
'提示',
|
||||||
|
{
|
||||||
|
confirmButtonText: '确定',
|
||||||
|
cancelButtonText: '取消',
|
||||||
|
type: 'warning',
|
||||||
|
}
|
||||||
|
)
|
||||||
|
.then(() => {
|
||||||
|
restartDelivery(val.data).then((response) => {
|
||||||
|
this.$message({
|
||||||
|
message: '重启操作成功',
|
||||||
|
type: 'success',
|
||||||
|
duration: 1500,
|
||||||
|
onClose: () => {
|
||||||
|
this.getDataList();
|
||||||
|
},
|
||||||
|
});
|
||||||
|
});
|
||||||
|
})
|
||||||
|
.catch(() => {});
|
||||||
|
} else if (val.type === 'pause') {
|
||||||
|
this.$confirm(
|
||||||
|
`确定对出库单号:${val.data.deliveryCode}进行暂停操作?`,
|
||||||
|
'提示',
|
||||||
|
{
|
||||||
|
confirmButtonText: '确定',
|
||||||
|
cancelButtonText: '取消',
|
||||||
|
type: 'warning',
|
||||||
|
}
|
||||||
|
)
|
||||||
|
.then(() => {
|
||||||
|
pauseDelivery(val.data).then((response) => {
|
||||||
|
this.$message({
|
||||||
|
message: '暂停操作成功',
|
||||||
|
type: 'success',
|
||||||
|
duration: 1500,
|
||||||
|
onClose: () => {
|
||||||
|
this.getDataList();
|
||||||
|
},
|
||||||
|
});
|
||||||
|
});
|
||||||
|
})
|
||||||
|
.catch(() => {});
|
||||||
|
} else if (val.type === 'improve') {
|
||||||
|
this.$confirm(
|
||||||
|
`确定对出库单号:${val.data.deliveryCode}进行提升操作?`,
|
||||||
|
'提示',
|
||||||
|
{
|
||||||
|
confirmButtonText: '确定',
|
||||||
|
cancelButtonText: '取消',
|
||||||
|
type: 'warning',
|
||||||
|
}
|
||||||
|
)
|
||||||
|
.then(() => {
|
||||||
|
improveDelivery(val.data).then((response) => {
|
||||||
|
this.$message({
|
||||||
|
message: '提升操作成功',
|
||||||
|
type: 'success',
|
||||||
|
duration: 1500,
|
||||||
|
onClose: () => {
|
||||||
|
this.getDataList();
|
||||||
|
},
|
||||||
|
});
|
||||||
|
});
|
||||||
|
})
|
||||||
|
.catch(() => {});
|
||||||
|
} else {
|
||||||
|
this.$confirm(
|
||||||
|
`确定对出库单号:${val.data.deliveryCode}进行取消操作?`,
|
||||||
|
'提示',
|
||||||
|
{
|
||||||
|
confirmButtonText: '确定',
|
||||||
|
cancelButtonText: '取消',
|
||||||
|
type: 'warning',
|
||||||
|
}
|
||||||
|
)
|
||||||
|
.then(() => {
|
||||||
|
cancelDelivery(val.data).then((response) => {
|
||||||
|
this.$message({
|
||||||
|
message: '取消操作成功',
|
||||||
|
type: 'success',
|
||||||
|
duration: 1500,
|
||||||
|
onClose: () => {
|
||||||
|
this.getDataList();
|
||||||
|
},
|
||||||
|
});
|
||||||
|
});
|
||||||
|
})
|
||||||
|
.catch(() => {});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
157
src/views/asrs/deliveryHis/index.vue
Normal file
157
src/views/asrs/deliveryHis/index.vue
Normal file
@ -0,0 +1,157 @@
|
|||||||
|
<template>
|
||||||
|
<div class="app-container">
|
||||||
|
<search-bar
|
||||||
|
:formConfigs="formConfig"
|
||||||
|
ref="searchBarForm"
|
||||||
|
@headBtnClick="buttonClick" />
|
||||||
|
<base-table
|
||||||
|
v-loading="dataListLoading"
|
||||||
|
:table-props="tableProps"
|
||||||
|
:page="listQuery.pageNo"
|
||||||
|
:limit="listQuery.pageSize"
|
||||||
|
:table-data="tableData"></base-table>
|
||||||
|
<pagination
|
||||||
|
:limit.sync="listQuery.pageSize"
|
||||||
|
:page.sync="listQuery.pageNo"
|
||||||
|
:total="listQuery.total"
|
||||||
|
@pagination="getDataList" />
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import basicPage from '../mixins/basic-page';
|
||||||
|
import { parseTime } from '../mixins/code-filter';
|
||||||
|
import { getDeliveryHisPage } from '@/api/oth/delivery';
|
||||||
|
import codeFilter from '../mixins/code-filter';
|
||||||
|
import { getGoodSpecificationPage } from '@/api/asrs/goodSpecification';
|
||||||
|
|
||||||
|
const tableProps = [
|
||||||
|
{
|
||||||
|
prop: 'deliveryCode',
|
||||||
|
label: '出库单号',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
prop: 'productName',
|
||||||
|
label: '货物名称',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
prop: 'needTrayNumber',
|
||||||
|
label: '所需托盘数',
|
||||||
|
width: 90
|
||||||
|
},
|
||||||
|
{
|
||||||
|
prop: 'alreadyOutNumber',
|
||||||
|
label: '已补托盘数',
|
||||||
|
width: 90
|
||||||
|
},
|
||||||
|
{
|
||||||
|
prop: 'status',
|
||||||
|
label: '出库单状态',
|
||||||
|
filter: codeFilter('status'),
|
||||||
|
width: 90
|
||||||
|
},
|
||||||
|
{
|
||||||
|
prop: 'deliveryType',
|
||||||
|
label: '出库类型',
|
||||||
|
filter: codeFilter('deliveryType'),
|
||||||
|
width: 95
|
||||||
|
},
|
||||||
|
{
|
||||||
|
prop: 'lineEdgeLibraryCode',
|
||||||
|
label: '码头位置',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
prop: 'region',
|
||||||
|
label: '发货区域',
|
||||||
|
filter: codeFilter('region'),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
prop: 'productQuality',
|
||||||
|
label: '货物品质',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
prop: 'rollCode',
|
||||||
|
label: '膜卷号',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
prop: 'trayType',
|
||||||
|
label: '托盘类型',
|
||||||
|
filter: codeFilter('trayType'),
|
||||||
|
width: 80
|
||||||
|
},
|
||||||
|
{
|
||||||
|
prop: 'createTime',
|
||||||
|
label: '创建时间',
|
||||||
|
filter: parseTime,
|
||||||
|
width: 150,
|
||||||
|
},
|
||||||
|
];
|
||||||
|
const deliveryTypeArr = [
|
||||||
|
{ name: '单托盘出库', id: 1 },
|
||||||
|
{ name: '多托盘出库', id: 2 },
|
||||||
|
];
|
||||||
|
export default {
|
||||||
|
mixins: [basicPage],
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
urlOptions: {
|
||||||
|
getDataListURL: getDeliveryHisPage,
|
||||||
|
},
|
||||||
|
tableProps,
|
||||||
|
tableData: [],
|
||||||
|
formConfig: [
|
||||||
|
{
|
||||||
|
type: 'select',
|
||||||
|
label: '货物名称',
|
||||||
|
selectOptions: [],
|
||||||
|
param: 'productName',
|
||||||
|
defaultSelect: '',
|
||||||
|
filterable: true,
|
||||||
|
labelField: 'goodSpecificationName',
|
||||||
|
valueField: 'goodSpecificationName',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 'select',
|
||||||
|
label: '出库类型',
|
||||||
|
selectOptions: deliveryTypeArr,
|
||||||
|
param: 'deliveryType',
|
||||||
|
defaultSelect: '',
|
||||||
|
filterable: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 'button',
|
||||||
|
btnName: '搜索',
|
||||||
|
name: 'search',
|
||||||
|
color: 'primary',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
};
|
||||||
|
},
|
||||||
|
components: {},
|
||||||
|
created() {
|
||||||
|
const params = {
|
||||||
|
pageSize: 100,
|
||||||
|
pageNo: 1,
|
||||||
|
warehouseId: this.listQuery.warehouseId,
|
||||||
|
};
|
||||||
|
getGoodSpecificationPage(params).then((response) => {
|
||||||
|
this.formConfig[0].selectOptions = response.data.list;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
buttonClick(val) {
|
||||||
|
switch (val.btnName) {
|
||||||
|
case 'search':
|
||||||
|
this.listQuery.pageNo = 1;
|
||||||
|
this.listQuery.pageSize = 10;
|
||||||
|
this.listQuery.productName = val.productName;
|
||||||
|
this.listQuery.deliveryType = val.deliveryType;
|
||||||
|
this.getDataList();
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
console.log(val);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
@ -2,7 +2,7 @@
|
|||||||
/*
|
/*
|
||||||
* @Date: 2020-12-29 16:49:28
|
* @Date: 2020-12-29 16:49:28
|
||||||
* @LastEditors: zwq
|
* @LastEditors: zwq
|
||||||
* @LastEditTime: 2024-04-02 14:16:16
|
* @LastEditTime: 2024-04-17 09:24:05
|
||||||
* @FilePath: \basic-admin\src\filters\basicData\index.js
|
* @FilePath: \basic-admin\src\filters\basicData\index.js
|
||||||
* @Description:
|
* @Description:
|
||||||
*/
|
*/
|
||||||
@ -16,38 +16,38 @@ const table = {
|
|||||||
1: '启用',
|
1: '启用',
|
||||||
0: '停用',
|
0: '停用',
|
||||||
},
|
},
|
||||||
isOrno:{
|
isOrno: {
|
||||||
1: '是',
|
1: '是',
|
||||||
0: '否',
|
0: '否',
|
||||||
},
|
},
|
||||||
quality:{
|
quality: {
|
||||||
2: 'C',
|
2: 'C',
|
||||||
1: 'B',
|
1: 'B',
|
||||||
0: 'A',
|
0: 'A',
|
||||||
},
|
},
|
||||||
mainTaskType:{
|
mainTaskType: {
|
||||||
1: '入库',
|
1: '入库',
|
||||||
2: '出库',
|
2: '出库',
|
||||||
3: '移库',
|
3: '移库',
|
||||||
4: '出库+移库',
|
4: '出库+移库',
|
||||||
5: '不带agv入库',
|
5: '不带agv入库',
|
||||||
6: '不带agv出库',
|
6: '不带agv出库',
|
||||||
7: '入库+6臂空托盘出库',
|
7: '入库+6臂空托盘出库',
|
||||||
8: '不带agv出库+移库',
|
8: '不带agv出库+移库',
|
||||||
9: '入库+12臂空托盘出库',
|
9: '入库+12臂空托盘出库',
|
||||||
10: '平库移库',
|
10: '平库移库',
|
||||||
},
|
},
|
||||||
mainTaskState:{
|
mainTaskState: {
|
||||||
0: '开始',
|
0: '开始',
|
||||||
1: '已发送agv',
|
1: '已发送agv',
|
||||||
2: 'agv运行中',
|
2: 'agv运行中',
|
||||||
3: '已发送堆垛机',
|
3: '已发送堆垛机',
|
||||||
4: '堆垛机运行中',
|
4: '堆垛机运行中',
|
||||||
5: '完成',
|
5: '完成',
|
||||||
6: '已发送传输线',
|
6: '已发送传输线',
|
||||||
7: '传输线运行中',
|
7: '传输线运行中',
|
||||||
8: '暂时无空托盘',
|
8: '暂时无空托盘',
|
||||||
},
|
},
|
||||||
taskSource: {
|
taskSource: {
|
||||||
1: 'mes下发',
|
1: 'mes下发',
|
||||||
2: 'wms手动',
|
2: 'wms手动',
|
||||||
@ -61,9 +61,35 @@ const table = {
|
|||||||
2: '清洗',
|
2: '清洗',
|
||||||
3: '润滑',
|
3: '润滑',
|
||||||
},
|
},
|
||||||
specification:{
|
specification: {
|
||||||
0: '卷',
|
0: '卷',
|
||||||
},
|
},
|
||||||
|
status: {
|
||||||
|
1: '优先执行',
|
||||||
|
2: '正常运行',
|
||||||
|
3: '暂停',
|
||||||
|
4: '完成',
|
||||||
|
5: '取消',
|
||||||
|
},
|
||||||
|
region: {
|
||||||
|
1: '一次分切区域',
|
||||||
|
2: '一次分拣区域',
|
||||||
|
3: '二次分切区域',
|
||||||
|
4: '二次分拣区域',
|
||||||
|
5: '手动包装区域',
|
||||||
|
6: '涂覆区域',
|
||||||
|
7: '其他',
|
||||||
|
8: '自动包装区域',
|
||||||
|
},
|
||||||
|
deliveryType: {
|
||||||
|
1: '单托盘出库',
|
||||||
|
2: '多托盘出库',
|
||||||
|
},
|
||||||
|
trayType: {
|
||||||
|
2: '12臂',
|
||||||
|
1: '6臂',
|
||||||
|
0: '无要求',
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
// 日期格式化
|
// 日期格式化
|
||||||
@ -79,7 +105,7 @@ export function parseTime(time, pattern) {
|
|||||||
if ((typeof time === 'string') && (/^[0-9]+$/.test(time))) {
|
if ((typeof time === 'string') && (/^[0-9]+$/.test(time))) {
|
||||||
time = parseInt(time)
|
time = parseInt(time)
|
||||||
} else if (typeof time === 'string') {
|
} else if (typeof time === 'string') {
|
||||||
time = time.replace(new RegExp(/-/gm), '/').replace('T', ' ').replace(new RegExp(/\.\d{3}/gm),'');
|
time = time.replace(new RegExp(/-/gm), '/').replace('T', ' ').replace(new RegExp(/\.\d{3}/gm), '');
|
||||||
}
|
}
|
||||||
if ((typeof time === 'number') && (time.toString().length === 10)) {
|
if ((typeof time === 'number') && (time.toString().length === 10)) {
|
||||||
time = time * 1000
|
time = time * 1000
|
||||||
@ -110,17 +136,17 @@ export function parseTime(time, pattern) {
|
|||||||
}
|
}
|
||||||
// 去除浮点相乘
|
// 去除浮点相乘
|
||||||
export function mul(num1, num2) {
|
export function mul(num1, num2) {
|
||||||
if (parseFloat(num1).toString() == "NaN" || parseFloat(num2).toString() == "NaN") return;
|
if (parseFloat(num1).toString() == "NaN" || parseFloat(num2).toString() == "NaN") return;
|
||||||
var m = 0, s1 = num1.toString(), s2 = num2.toString();
|
var m = 0, s1 = num1.toString(), s2 = num2.toString();
|
||||||
try {
|
try {
|
||||||
m += s1.split(".")[1].length
|
m += s1.split(".")[1].length
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
m += s2.split(".")[1].length
|
m += s2.split(".")[1].length
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
}
|
}
|
||||||
return Number(s1.replace(".", "")) * Number(s2.replace(".", "")) / Math.pow(10, m);
|
return Number(s1.replace(".", "")) * Number(s2.replace(".", "")) / Math.pow(10, m);
|
||||||
}
|
}
|
||||||
export default function (dictTable) {
|
export default function (dictTable) {
|
||||||
return function (val) {
|
return function (val) {
|
||||||
|
Loading…
Reference in New Issue
Block a user