新增出库单
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
|
||||
* @LastEditors: zwq
|
||||
* @LastEditTime: 2024-04-02 14:16:16
|
||||
* @LastEditTime: 2024-04-17 09:24:05
|
||||
* @FilePath: \basic-admin\src\filters\basicData\index.js
|
||||
* @Description:
|
||||
*/
|
||||
@ -16,38 +16,38 @@ const table = {
|
||||
1: '启用',
|
||||
0: '停用',
|
||||
},
|
||||
isOrno:{
|
||||
isOrno: {
|
||||
1: '是',
|
||||
0: '否',
|
||||
},
|
||||
quality:{
|
||||
quality: {
|
||||
2: 'C',
|
||||
1: 'B',
|
||||
0: 'A',
|
||||
},
|
||||
mainTaskType:{
|
||||
1: '入库',
|
||||
2: '出库',
|
||||
3: '移库',
|
||||
4: '出库+移库',
|
||||
5: '不带agv入库',
|
||||
6: '不带agv出库',
|
||||
7: '入库+6臂空托盘出库',
|
||||
8: '不带agv出库+移库',
|
||||
9: '入库+12臂空托盘出库',
|
||||
10: '平库移库',
|
||||
},
|
||||
mainTaskState:{
|
||||
0: '开始',
|
||||
1: '已发送agv',
|
||||
2: 'agv运行中',
|
||||
3: '已发送堆垛机',
|
||||
4: '堆垛机运行中',
|
||||
5: '完成',
|
||||
6: '已发送传输线',
|
||||
7: '传输线运行中',
|
||||
8: '暂时无空托盘',
|
||||
},
|
||||
mainTaskType: {
|
||||
1: '入库',
|
||||
2: '出库',
|
||||
3: '移库',
|
||||
4: '出库+移库',
|
||||
5: '不带agv入库',
|
||||
6: '不带agv出库',
|
||||
7: '入库+6臂空托盘出库',
|
||||
8: '不带agv出库+移库',
|
||||
9: '入库+12臂空托盘出库',
|
||||
10: '平库移库',
|
||||
},
|
||||
mainTaskState: {
|
||||
0: '开始',
|
||||
1: '已发送agv',
|
||||
2: 'agv运行中',
|
||||
3: '已发送堆垛机',
|
||||
4: '堆垛机运行中',
|
||||
5: '完成',
|
||||
6: '已发送传输线',
|
||||
7: '传输线运行中',
|
||||
8: '暂时无空托盘',
|
||||
},
|
||||
taskSource: {
|
||||
1: 'mes下发',
|
||||
2: 'wms手动',
|
||||
@ -61,9 +61,35 @@ const table = {
|
||||
2: '清洗',
|
||||
3: '润滑',
|
||||
},
|
||||
specification:{
|
||||
specification: {
|
||||
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))) {
|
||||
time = parseInt(time)
|
||||
} 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)) {
|
||||
time = time * 1000
|
||||
@ -110,17 +136,17 @@ export function parseTime(time, pattern) {
|
||||
}
|
||||
// 去除浮点相乘
|
||||
export function mul(num1, num2) {
|
||||
if (parseFloat(num1).toString() == "NaN" || parseFloat(num2).toString() == "NaN") return;
|
||||
var m = 0, s1 = num1.toString(), s2 = num2.toString();
|
||||
try {
|
||||
m += s1.split(".")[1].length
|
||||
} catch (e) {
|
||||
}
|
||||
try {
|
||||
m += s2.split(".")[1].length
|
||||
} catch (e) {
|
||||
}
|
||||
return Number(s1.replace(".", "")) * Number(s2.replace(".", "")) / Math.pow(10, m);
|
||||
if (parseFloat(num1).toString() == "NaN" || parseFloat(num2).toString() == "NaN") return;
|
||||
var m = 0, s1 = num1.toString(), s2 = num2.toString();
|
||||
try {
|
||||
m += s1.split(".")[1].length
|
||||
} catch (e) {
|
||||
}
|
||||
try {
|
||||
m += s2.split(".")[1].length
|
||||
} catch (e) {
|
||||
}
|
||||
return Number(s1.replace(".", "")) * Number(s2.replace(".", "")) / Math.pow(10, m);
|
||||
}
|
||||
export default function (dictTable) {
|
||||
return function (val) {
|
||||
|
Loading…
Reference in New Issue
Block a user