no message
parent
435620059b
commit
9b61dab6c6
|
|
@ -0,0 +1,18 @@
|
||||||
|
/**
|
||||||
|
* 入库明细 api 封装
|
||||||
|
*
|
||||||
|
* @Author: 霍锦
|
||||||
|
* @Date: 2025-03-26 15:16:28
|
||||||
|
* @Copyright 友仓
|
||||||
|
*/
|
||||||
|
import {postRequest} from '/@/lib/axios';
|
||||||
|
|
||||||
|
export const shippingApi = {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分配明细 @author 霍锦
|
||||||
|
*/
|
||||||
|
allocationPickDetail: (param: any) => {
|
||||||
|
return postRequest('/shipping/allocationPickDetail', param);
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
@ -19,7 +19,7 @@
|
||||||
<a-radio-group button-style="solid" v-model:value="queryForm.status" @change="onSearch">
|
<a-radio-group button-style="solid" v-model:value="queryForm.status" @change="onSearch">
|
||||||
<a-radio-button :value="undefined">全部</a-radio-button>
|
<a-radio-button :value="undefined">全部</a-radio-button>
|
||||||
<a-radio-button :value="ASN_ORDER_STATUS_ENUM.CREATED.value">已创建</a-radio-button>
|
<a-radio-button :value="ASN_ORDER_STATUS_ENUM.CREATED.value">已创建</a-radio-button>
|
||||||
<a-radio-button :value="ASN_ORDER_STATUS_ENUM.PARTIALLY_IN.value">部分入库</a-radio-button>
|
<a-radio-button :value="ASN_ORDER_STATUS_ENUM.PARTIALLY_IN.value">入库中</a-radio-button>
|
||||||
<a-radio-button :value="ASN_ORDER_STATUS_ENUM.COMPLETED.value">已完成</a-radio-button>
|
<a-radio-button :value="ASN_ORDER_STATUS_ENUM.COMPLETED.value">已完成</a-radio-button>
|
||||||
</a-radio-group>
|
</a-radio-group>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@
|
||||||
<div class="header">
|
<div class="header">
|
||||||
<div>
|
<div>
|
||||||
关键字:
|
关键字:
|
||||||
<a-input style="width: 250px" v-model:value="queryForm.keywords" placeholder="物料/库位/容器"/>
|
<a-input style="width: 250px" v-model:value="queryForm.keywords" placeholder="物料/库位/容器" @change="onSearch"/>
|
||||||
<a-button class="button-style" type="primary" @click="onSearch" v-privilege="'task:query'">搜索</a-button>
|
<a-button class="button-style" type="primary" @click="onSearch" v-privilege="'task:query'">搜索</a-button>
|
||||||
<a-button class="button-style" type="default" @click="resetQuery" v-privilege="'task:query'">重置</a-button>
|
<a-button class="button-style" type="default" @click="resetQuery" v-privilege="'task:query'">重置</a-button>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -24,8 +24,8 @@
|
||||||
<a-row :gutter="24">
|
<a-row :gutter="24">
|
||||||
<a-col :span="8">
|
<a-col :span="8">
|
||||||
<a-form-item label="客户" name="customerId">
|
<a-form-item label="客户" name="customerId">
|
||||||
<CustomerSelect style="width: 100%" v-model:value="form.customerId" :disabled-flag="true"
|
<CustomerSelect style="width: 100%" v-model:value="form.customerId" :disabled-flag="true" />
|
||||||
@change="changeCustomerSelect"/>
|
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="8">
|
<a-col :span="8">
|
||||||
|
|
@ -140,13 +140,6 @@ const rules = {
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
//选择客户
|
|
||||||
function changeCustomerSelect(selectValue: any) {
|
|
||||||
if (selectValue) {
|
|
||||||
form.customerId = selectValue.customerId;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//选择收货单位
|
//选择收货单位
|
||||||
function changeAddressSelect(selectValue: any) {
|
function changeAddressSelect(selectValue: any) {
|
||||||
if (selectValue) {
|
if (selectValue) {
|
||||||
|
|
|
||||||
|
|
@ -10,21 +10,38 @@
|
||||||
<a-form class="smart-query-form">
|
<a-form class="smart-query-form">
|
||||||
<a-row class="smart-query-form-row">
|
<a-row class="smart-query-form-row">
|
||||||
<a-form-item label="客户订单号" class="smart-query-form-item">
|
<a-form-item label="客户订单号" class="smart-query-form-item">
|
||||||
<a-input style="width: 200px" v-model:value="queryForm.customerNumber" placeholder="客户订单号"/>
|
<a-input style="width: 200px" v-model:value="queryForm.customerNumber" placeholder="客户订单号"
|
||||||
|
@change="onSearch"/>
|
||||||
|
</a-form-item>
|
||||||
|
<a-form-item label="单据类型" class="smart-query-form-item">
|
||||||
|
<SmartEnumSelect style="width: 200px" enum-name="PICK_ORDER_TYPE_ENUM" v-model:value="queryForm.orderType"
|
||||||
|
@change="onSearch"/>
|
||||||
|
</a-form-item>
|
||||||
|
<a-form-item label="状态" class="smart-query-form-item">
|
||||||
|
<a-radio-group button-style="solid" v-model:value="queryForm.status" @change="onSearch">
|
||||||
|
<a-radio-button :value="undefined">全部</a-radio-button>
|
||||||
|
<a-radio-button :value="PICK_ORDER_STATUS_ENUM.CREATED.value">已创建</a-radio-button>
|
||||||
|
<a-radio-button :value="PICK_ORDER_STATUS_ENUM.PARTIALLY_ALLOCATED.value">分配中</a-radio-button>
|
||||||
|
<a-radio-button :value="PICK_ORDER_STATUS_ENUM.ALLOCATED.value">已分配</a-radio-button>
|
||||||
|
<a-radio-button :value="PICK_ORDER_STATUS_ENUM.PARTIALLY_PICKED.value">拣货中</a-radio-button>
|
||||||
|
<a-radio-button :value="PICK_ORDER_STATUS_ENUM.COMPLETED.value">已完成</a-radio-button>
|
||||||
|
</a-radio-group>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<a-form-item class="smart-query-form-item">
|
<a-form-item class="smart-query-form-item">
|
||||||
<a-button type="primary" @click="onSearch" class="smart-margin-left10" v-privilege="'pick:query'">
|
<a-button-group>
|
||||||
|
<a-button type="primary" @click="onSearch" v-privilege="'pick:query'">
|
||||||
<template #icon>
|
<template #icon>
|
||||||
<SearchOutlined/>
|
<SearchOutlined/>
|
||||||
</template>
|
</template>
|
||||||
查询
|
查询
|
||||||
</a-button>
|
</a-button>
|
||||||
<a-button @click="resetQuery" class="smart-margin-left10" v-privilege="'pick:query'">
|
<a-button @click="resetQuery" v-privilege="'pick:query'">
|
||||||
<template #icon>
|
<template #icon>
|
||||||
<ReloadOutlined/>
|
<ReloadOutlined/>
|
||||||
</template>
|
</template>
|
||||||
重置
|
重置
|
||||||
</a-button>
|
</a-button>
|
||||||
|
</a-button-group>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-row>
|
</a-row>
|
||||||
</a-form>
|
</a-form>
|
||||||
|
|
@ -159,6 +176,8 @@ import {pickApi} from '/@/api/business/wms/shipping/pick/pick-api';
|
||||||
import {pickDetailApi} from '/@/api/business/wms/shipping/pickDetail/pick-detail-api'
|
import {pickDetailApi} from '/@/api/business/wms/shipping/pickDetail/pick-detail-api'
|
||||||
import {TABLE_ID_CONST} from "/@/constants/support/table-id-const";
|
import {TABLE_ID_CONST} from "/@/constants/support/table-id-const";
|
||||||
import {useRoute, useRouter} from "vue-router";
|
import {useRoute, useRouter} from "vue-router";
|
||||||
|
import SmartEnumSelect from "/@/components/framework/smart-enum-select/index.vue";
|
||||||
|
import {PICK_ORDER_STATUS_ENUM} from "/@/api/business/wms/shipping/pick/pick-const";
|
||||||
|
|
||||||
// ---------------------------- 表格列 ----------------------------
|
// ---------------------------- 表格列 ----------------------------
|
||||||
|
|
||||||
|
|
@ -300,6 +319,8 @@ const totals = computed(() => {
|
||||||
|
|
||||||
const queryFormState = {
|
const queryFormState = {
|
||||||
customerNumber: undefined, //客户订单号
|
customerNumber: undefined, //客户订单号
|
||||||
|
status: undefined,//状态
|
||||||
|
orderType: undefined,//订单类型
|
||||||
pageNum: 1,
|
pageNum: 1,
|
||||||
pageSize: 10,
|
pageSize: 10,
|
||||||
};
|
};
|
||||||
|
|
@ -417,7 +438,7 @@ async function requestBatchDelete() {
|
||||||
SmartLoading.show();
|
SmartLoading.show();
|
||||||
const response = await pickApi.batchDelete(selectedRowKeyList.value);
|
const response = await pickApi.batchDelete(selectedRowKeyList.value);
|
||||||
console.log(response)
|
console.log(response)
|
||||||
const {error, success} = JSON.parse(response.msg);
|
const {error, success} = JSON.parse(response.data);
|
||||||
if (success) {
|
if (success) {
|
||||||
message.success(success);
|
message.success(success);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@
|
||||||
<div class="header">
|
<div class="header">
|
||||||
<div>
|
<div>
|
||||||
关键字:
|
关键字:
|
||||||
<a-input style="width: 250px" v-model:value="queryForm.keyword" placeholder="姓名/手机号/登录账号"/>
|
<a-input style="width: 250px" v-model:value="queryForm.keywords" placeholder="" @change="onSearch"/>
|
||||||
<a-button class="button-style" type="primary" @click="onSearch" v-privilege="'pickDetail:query'">搜索</a-button>
|
<a-button class="button-style" type="primary" @click="onSearch" v-privilege="'pickDetail:query'">搜索</a-button>
|
||||||
<a-button class="button-style" type="default" @click="resetQuery" v-privilege="'pickDetail:query'">重置
|
<a-button class="button-style" type="default" @click="resetQuery" v-privilege="'pickDetail:query'">重置
|
||||||
</a-button>
|
</a-button>
|
||||||
|
|
@ -35,6 +35,14 @@
|
||||||
</template>
|
</template>
|
||||||
批量移除
|
批量移除
|
||||||
</a-button>
|
</a-button>
|
||||||
|
<a-button class="button-style" type="primary" v-privilege="'shipping:allocationPickDetail'"
|
||||||
|
@click="confirmAllocationPickDetail"
|
||||||
|
:disabled="props.pickId==0 || selectedRowKeyList.length == 0">
|
||||||
|
<template #icon>
|
||||||
|
<EditOutlined/>
|
||||||
|
</template>
|
||||||
|
分配明细
|
||||||
|
</a-button>
|
||||||
<TableOperator class="smart-margin-bottom5" v-model="columns" :tableId="TABLE_ID_CONST.BUSINESS.WMS.PICK_DETAIL"
|
<TableOperator class="smart-margin-bottom5" v-model="columns" :tableId="TABLE_ID_CONST.BUSINESS.WMS.PICK_DETAIL"
|
||||||
:refresh="queryData"/>
|
:refresh="queryData"/>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -100,6 +108,7 @@ import {smartSentry} from '/@/lib/smart-sentry';
|
||||||
import {TABLE_ID_CONST} from "/@/constants/support/table-id-const";
|
import {TABLE_ID_CONST} from "/@/constants/support/table-id-const";
|
||||||
import TableOperator from '/@/components/support/table-operator/index.vue';
|
import TableOperator from '/@/components/support/table-operator/index.vue';
|
||||||
import {pickDetailApi} from "/@/api/business/wms/shipping/pickDetail/pick-detail-api";
|
import {pickDetailApi} from "/@/api/business/wms/shipping/pickDetail/pick-detail-api";
|
||||||
|
import {shippingApi} from '/@/api/business/wms/shipping/shipping-api'
|
||||||
import PICKDetailForm from "/@/views/business/wms/shipping/pickDetail/pick-detail-form.vue";
|
import PICKDetailForm from "/@/views/business/wms/shipping/pickDetail/pick-detail-form.vue";
|
||||||
import {message, Modal} from "ant-design-vue";
|
import {message, Modal} from "ant-design-vue";
|
||||||
import {SmartLoading} from '/@/components/framework/smart-loading';
|
import {SmartLoading} from '/@/components/framework/smart-loading';
|
||||||
|
|
@ -153,7 +162,7 @@ const defaultQueryForm = {
|
||||||
pageNum: 1,
|
pageNum: 1,
|
||||||
pageSize: PAGE_SIZE,
|
pageSize: PAGE_SIZE,
|
||||||
pickId: 0,
|
pickId: 0,
|
||||||
keyword: undefined,
|
keywords: undefined,
|
||||||
}
|
}
|
||||||
|
|
||||||
// 查询表单
|
// 查询表单
|
||||||
|
|
@ -281,6 +290,46 @@ async function requestBatchDelete() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//批量分配明细
|
||||||
|
function confirmAllocationPickDetail() {
|
||||||
|
Modal.confirm({
|
||||||
|
title: '提示',
|
||||||
|
content: '确定要批量分配这些数据吗?',
|
||||||
|
okText: '分配',
|
||||||
|
okType: 'danger',
|
||||||
|
onOk() {
|
||||||
|
requestAllocationPickDetail();
|
||||||
|
},
|
||||||
|
cancelText: '取消',
|
||||||
|
onCancel() {
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
//请求批量分配明细
|
||||||
|
async function requestAllocationPickDetail() {
|
||||||
|
try {
|
||||||
|
SmartLoading.show();
|
||||||
|
const response = await shippingApi.allocationPickDetail({
|
||||||
|
pickId: props.pickId,
|
||||||
|
pickDetailIds: selectedRowKeyList.value
|
||||||
|
});
|
||||||
|
const {error, success} = JSON.parse(response.data);
|
||||||
|
if (error) {
|
||||||
|
message.error(error);
|
||||||
|
}
|
||||||
|
if (success) {
|
||||||
|
message.success(success);
|
||||||
|
}
|
||||||
|
await queryData();
|
||||||
|
selectedRowKeyList.value=[];
|
||||||
|
} catch (e) {
|
||||||
|
smartSentry.captureError(e);
|
||||||
|
} finally {
|
||||||
|
SmartLoading.hide();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
watch(
|
watch(
|
||||||
() => props.pickId,
|
() => props.pickId,
|
||||||
(value) => {
|
(value) => {
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,7 @@
|
||||||
<a-form ref="formRef" :model="form" :rules="rules" :label-col="{ span: 5 }">
|
<a-form ref="formRef" :model="form" :rules="rules" :label-col="{ span: 5 }">
|
||||||
|
|
||||||
<a-form-item label="物料" name="itemId">
|
<a-form-item label="物料" name="itemId">
|
||||||
<ItemSelect style="width: 100%" v-model:value="form.itemId" :disabledFlag="true" @change="changeItemSelect"/>
|
<ItemSelect style="width: 100%" v-model:value="form.itemId" :disabledFlag="true"/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
|
||||||
<a-form-item label="数量" name="orderQuantity">
|
<a-form-item label="数量" name="orderQuantity">
|
||||||
|
|
@ -73,13 +73,6 @@ function onClose() {
|
||||||
visibleFlag.value = false;
|
visibleFlag.value = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
//选择物料
|
|
||||||
function changeItemSelect(selectValue: any) {
|
|
||||||
if (selectValue) {
|
|
||||||
form.itemId = selectValue.itemId;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 获取当前日期并去除符号作为批次
|
// 获取当前日期并去除符号作为批次
|
||||||
function getCurrentDateWithoutSymbols() {
|
function getCurrentDateWithoutSymbols() {
|
||||||
const now = new Date();
|
const now = new Date();
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue